about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-07-24 01:17:46 -0700
committerKartik Agaram <vc@akkartik.com>2019-07-24 01:17:46 -0700
commit070cac028c5e098fada47f280cb677406a43b7ea (patch)
tree095486be0edf2a98cc24453406b1d884afc4f220
parenteea61cc12c1e020c3f273cb858edf02772fe78e8 (diff)
downloadmu-070cac028c5e098fada47f280cb677406a43b7ea.tar.gz
5462 - What's next for Mu? Look here.
-rw-r--r--subx/Readme.md41
1 files changed, 13 insertions, 28 deletions
diff --git a/subx/Readme.md b/subx/Readme.md
index 28bef860..53b12ca4 100644
--- a/subx/Readme.md
+++ b/subx/Readme.md
@@ -337,31 +337,12 @@ runnable on a Linux system running on Intel x86 processors, either 32- or
 
 ## Roadmap and status
 
-* Bootstrapping a SubX-\>ELF translator in SubX
-  - examples/ex1.subx (✓)
-  - examples/ex2.subx (✓)
-  - examples/ex3.subx (✓)
-  - examples/ex4.subx (✓)
-  - examples/ex5.subx (✓)
-  - examples/ex6.subx (✓)
-  - examples/ex7.subx (✓)
-  - examples/ex8.subx (✓)
-  - examples/ex9.subx (✓)
-  - examples/ex10.subx (✓)
-  - examples/ex11.subx (✓)
-  - examples/ex12.subx (✓)
-  - apps/factorial.subx (✓)
-  - apps/crenshaw2-1.subx (✓)
-  - apps/crenshaw2-1b.subx (✓)
-  - apps/handle.subx (✓)
-  - apps/hex.subx
-  - apps/survey.subx
-  - apps/pack.subx
-  - apps/assort.subx
-  - apps/dquotes.subx
-  - apps/tests.subx
-
-  SubX in SubX: `tests |dquotes |assort |pack |survey |hex`
+* Self-hosting. (✓)
+
+  `tests |dquotes |assort |pack |survey |hex`
+
+* A script to package SubX together with a minimal Linux kernel image
+  (compiled from source, of course).
 
 * Testable, dependency-injected vocabulary of primitives
   - Streams: `read()`, `write()`. (✓)
@@ -370,11 +351,15 @@ runnable on a Linux system running on Intel x86 processors, either 32- or
   - Files
   - Concurrency, and a framework for testing blocking code
 
-* Using the trace in [white-box tests](https://git.sr.ht/~akkartik/basic-whitebox-test/tree/master/Readme.md)
-  for performance, fault tolerance, etc.
-
 * Higher-level notations. Like programming languages, but with thinner
   implementations that you can -- and are expected to! -- modify.
+  - syntax for addressing modes: `%reg`, `*reg`, `*(reg+disp)`,
+    `*(reg+reg+disp)`, `*(reg+reg<<n + disp)`
+  - function calls in a single line, using addressing modes for arguments
+  - syntax for controlling a type checker, akin to the top-level Mu language
+  - a register allocation _verifier_. Programmer provides registers for
+    variables; verifier checks that register reads are for the same type that
+    was last written -- across all control flow paths.
 
 ## Running