aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..def2951
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+# neb
+
+now in bytecode
+
+## broken things
+[x] VM immediately returns after a `def` (fixed with [d13ae11c4f](https://git.rawtext.club/mryouse/neb-d/commit/d13ae11c4f7cccd8f5e3ad072597c55c9471a638)?)
+[ ] lists work for atoms like `(list 1 2 3)` but not evaluated expressions
+ like `(list (+ 2 3) 4 5)` (i think that only includes 3 4 5). might need
+ something like a MAKE_LIST op, followed by a length of how many items?
+ i feel like i'm really bastardizing bytecode instructions.
+[ ] the emitted code is lousy with runtime typechecks. these are good to have,
+ generally speaking, but a) should be able to do more compile time type
+ checks to avoid some of them, b) should only need to type check certain
+ things once (so long as variables can't change type), and c) should probably
+ generalize the typecheck op with a parameter to enable more flexibility
+[ ] compiler errors don't stop the VM from running, and are not particularly helpful
+[ ] defining multiple functions in a script doesn't seem to work?
+[ ] i mean, nearly nothing works
+
+## things that hopefully work
+[x] addition!
+[x] subtraction!
+[x] `if`/`and`/`or`!
+[x] `>`/`<` and co.
+[x] `func` to define a function, assuming it only has ^^ those things
+[x] `def`, globally and locally
+[x] `block`? maybe?