aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README23
1 files changed, 23 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..56f12a0
--- /dev/null
+++ b/README
@@ -0,0 +1,23 @@
+# neb
+
+now in bytecode
+
+## broken things
+[ ] VM immediately returns after a `def`
+[ ] 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
+[ ] 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