Commit Graph

48 Commits

Author SHA1 Message Date
Kartik Agaram 9a524793ee 6618 - new docs 2020-07-06 01:05:10 -07:00
Kartik Agaram c09c91e185 6612 - reorganize layers 2020-07-05 12:13:28 -07:00
Kartik Agaram 27a5b1a892 6527 - increase stack limits
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.
2020-06-15 16:16:00 -07:00
Kartik Agaram 56f3649194 6395 2020-05-24 22:18:21 -07:00
Kartik Agaram d1179723a9 6394 - a catastrophic bug
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.
2020-05-24 20:54:12 -07:00
Kartik Agaram 4d14c3fefd 6393 - start running .mu apps in CI 2020-05-24 20:36:31 -07:00
Kartik Agaram 6b43542f6c 6385 2020-05-23 00:01:25 -07:00
Kartik Agaram 06b6e9d813 6382 - re-enable mu.subx in 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)
2020-05-22 22:50:39 -07:00
Kartik Agaram cea79ae180 handles don't seem to have slowed down test_apps
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.
2020-05-22 16:34:33 -07:00
Kartik Agaram a2af4dedac mu.subx: start tracking remaining failing tests
We're now passing CI again.
2020-05-20 11:39:19 -07:00
Kartik Agaram 27cced79be all syntax sugar now working
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)
2020-05-18 00:44:46 -07:00
Kartik Agaram 99c3cfddff core translator phases now emit identical binaries 2020-05-18 00:44:46 -07:00
Kartik Agaram 5dc0ddfc9d Rebuild phases of self-hosted SubX translator
For this one commit we need to bootstrap ourselves with subx_translate_debug.
2020-05-18 00:44:46 -07:00
Kartik Agaram ba7e8121c2 assort.subx now working 2020-05-18 00:44:46 -07:00
Kartik Agaram d430778711 dquotes.subx now working 2020-05-18 00:44:46 -07:00
Kartik Agaram 94fca7058a tests.subx now working 2020-05-18 00:44:46 -07:00
Kartik Agaram d538b29302 apps that currently work
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
2020-05-18 00:44:46 -07:00
Kartik Agaram ca358b17a3 table primitives working
$ ./translate_subx init.linux 0*.subx  &&  ./a.elf test
2020-05-18 00:44:46 -07:00
Kartik Agaram c0bde5f826 6213
Some minor tweaks while preparing presentation to Mek's Junto group.
2020-04-26 22:59:59 -07:00
Kartik Agaram ead8f1b89b 6183
Bugfix in CI setup.
2020-04-03 22:36:04 -07:00
Kartik Agaram 5c26afb1de 6088 - start using setCC instructions 2020-03-06 17:42:17 -08:00
Kartik Agaram 928f71d294 5890 2020-01-14 01:52:54 -08:00
Kartik Agaram 51858e5d46 5887 - reorganize library
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.
2020-01-14 01:52:54 -08:00
Kartik Agaram 9e5e87ca37 5865
Give the bootstrap C++ program a less salient name.
2020-01-02 02:01:41 -08:00
Kartik Agaram 113bae7311 5856 2020-01-01 17:23:29 -08:00
Kartik Agaram 23fd294d85 5851
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.
2020-01-01 16:45:30 -08:00
Kartik Agaram 1d7d6e2ee7 5829 2019-12-26 02:43:05 -08:00
Kartik Agaram 4d20c9ee94 5761 2019-11-26 17:41:25 -08:00
Kartik Agaram ddb8334fef 5739
Add mu.subx to CI.
2019-11-10 21:12:22 -08:00
Kartik Agaram 915aaa21a1 5677 2019-09-19 23:34:21 -07:00
Kartik Agaram fd91f7f61b 5675 - move helpers from subx-common into layers
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.
2019-09-19 23:25:49 -07:00
Kartik Agaram dfbe155087 5672 - move hex out of apps 2019-09-19 15:59:22 -07:00
Kartik Agaram 6ecddbaa92 5666 - start of sugar for structured control flow 2019-09-19 00:33:21 -07:00
Kartik Agaram 368212b1c3 5665
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.
2019-09-19 00:13:02 -07:00
Kartik Agaram 46bb1d3157 5650 - support a second OS: soso
https://github.com/ozkl/soso

+ Much smaller than Linux; builds instantly
+ Supports graphics
- No network support
- Doesn't work on a cloud server (yet?)
2019-09-14 01:45:55 -07:00
Kartik Agaram ecfbbfb5b5 5647 - experimental support for swapping OS 2019-09-11 19:53:23 -07:00
Kartik Agaram 099f0d5d55 5631 - syntax for calls starting to work!
Now added to CI.
2019-09-06 17:58:53 -07:00
Kartik Agaram e97b446ac3 5594 - rename 'desugar' to 'sigils'
There's going to be multiple forms of syntax sugar going forward.
2019-08-31 20:43:41 -07:00
Kartik Agaram dac833572b 5585 2019-08-25 20:07:15 -07:00
Kartik Agaram 0d3b3ef04a Merge branch 'master' into desugar 2019-08-25 15:04:26 -07:00
Kartik Agaram a8adfff398 fix a missing test of desugar in CI 2019-08-16 00:28:44 -07:00
Kartik Agaram b6c7f4816b 5515
Drop a bash-ism.
2019-08-14 16:57:00 -07:00
Kartik Agaram 5bd6dc8e32 5514 - disable emulated runs on Linux 2019-08-14 16:43:48 -07:00
Kartik Agaram f550d20196 5513 2019-08-14 16:10:05 -07:00
Kartik Agaram 4557b0737a 5511 2019-08-14 16:05:16 -07:00
Kartik Agaram f902aa09c2 5510
Stop supporting CFLAGS in CI scripts; they're now meaty enough that I
never run them locally in debug mode.
2019-08-14 15:45:24 -07:00
Kartik Agaram dbb380b87f add desugar to CI 2019-08-13 22:32:54 -07:00
Kartik Agaram 6e1eeeebfb 5485 - promote SubX to top-level 2019-07-27 17:47:59 -07:00