| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
A new phase for baremetal compilations. Doesn't work yet, but it passes
all its tests, so we can add it to CI.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Turns out the default 8MB stack is quite enough for the programs I'm
currently running.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turns out I've been including some unnecessary files when building apps/mu!
Treeshaken stats before:
LoC 26258 => 9717
LoC including common libraries: 29736 => 12719
binary size: 406K => 79K
After:
LoC 26258 => 9717
LoC including common libraries: 28322 => 12370
binary size: 406K => 77K
So our treeshaking isn't perfect. No surprise there..
The treeshaken build also starts to fail without the one-liner change to
mu.subx, which looks like a bug in the treeshaker.
|
| |
|
| |
|
|
|
|
|
|
| |
We haven't run into this limit yet, but everytime I see a 'stream overflow'
error I run into it while going over all the knobs in apps/subx-params.subx,
if I increase Input-size (used by survey.subx) too much.
|
| |
|
|
|
|
|
|
|
| |
How did new-literal ever work?! Somehow we had eax silently being clobbered
without affecting behavior over like 5 apps. Unsafe languages suck.
Anyways, factorial.mu is now part of CI.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
I thought I'd done this in the previous commit, but I hadn't. And, what's
more, there was a bug that seemed pretty tough for a time. Turns out my
self-hosted translator doesn't support '.' comment tokens in data segments.
Hopefully I'm past the valley of the shadow of death now.
"I HAVE NO TOOLS BECAUSE I’VE DESTROYED MY TOOLS WITH MY TOOLS."
-- James Mickens (https://www.usenix.org/system/files/1311_05-08_mickens.pdf)
|
|
|
|
|
|
| |
At least the non-native first phase which takes longer. But maybe a shorter
baseline is the right thing to check. I need to resize some buffers to
get Mu natively translating again.
|
|
|
|
| |
We're now passing CI again.
|
|
|
|
|
|
|
|
| |
I just needed to adjust row-sizes when accessing the Registers table.
This commit dedicated to a fun hour on https://hn.town.siempre.io. Thanks
Cyrus!
(via https://news.ycombinator.com/item?id=22818300)
|
| |
|
|
|
|
| |
For this one commit we need to bootstrap ourselves with subx_translate_debug.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here are the obvious dependencies of different apps:
allocate: mu
slice-to-string: mu survey
new-stream: mu assort dquotes tests
get-or-insert-slice: mu survey assort
get-or-insert: mu survey
So we'll get these working in the following order:
tests
dquotes
assort
survey
It doesn't look like sigils uses any functions with modified signatures,
but it doesn't work at the moment. Let's get the core self-hosted passes
working first before we look at syntax sugar.
examples -> self-hosted passes -> syntax sugar -> mu
|
|
|
|
| |
$ ./translate_subx init.linux 0*.subx && ./a.elf test
|
|
|
|
| |
Some minor tweaks while preparing presentation to Mek's Junto group.
|
|
|
|
| |
Bugfix in CI setup.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Layers 0-89 are used in self-hosting SubX.
Layers 90-99 are not needed for self-hosting SubX, and therefore could
use transitional levels of syntax sugar.
Layers 100 and up use all SubX syntax sugar.
|
|
|
|
| |
Give the bootstrap C++ program a less salient name.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename a few scripts to be more consistent.
I'm also starting to feel the urge to bud off `subx run` into its own program,
say tools/emulate_x86. It doesn't really rely on the SubX notation at all.
And then I could rename `subx translate` to `translate_subx_bootstrap`.
Only problem: the commands in the Readme get verbose. But the Readme is
gonna need surgery soon anyway to put translate_mu front and center.
|
| |
|
| |
|
|
|
|
| |
Add mu.subx to CI.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This undoes 5672 in favor of a new plan:
Layers 000 - 099 are for running without syntax sugar. We use them for
building syntax-sugar passes.
Layers 100 and up are for running with all syntax sugar.
The layers are arranged in approximate order so more phases rely on earlier
layers than later ones.
I plan to not use intermediate syntax sugar (just sigils without calls,
or sigils and calls without braces) anywhere except in the specific passes
implementing them.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The core library is a mess right now, because it can't use syntax sugar.
I need some way to tier the library so that later layers can use syntax
sugar, but without adding cognitive load.
A shell pipeline is pretty, but maybe I need to drop it. Just add functions
to layers. Get all of the translator out of the apps/ sub-directory.
|
|
|
|
|
|
|
|
|
| |
https://github.com/ozkl/soso
+ Much smaller than Linux; builds instantly
+ Supports graphics
- No network support
- Doesn't work on a cloud server (yet?)
|
| |
|
|
|
|
| |
Now added to CI.
|
|
|
|
| |
There's going to be multiple forms of syntax sugar going forward.
|
| |
|
|\ |
|
| |
| |
| |
| | |
Drop a bash-ism.
|
| | |
|
| | |
|