From bf44744480707e7c9e3c36a379f41138b2041047 Mon Sep 17 00:00:00 2001 From: Ben Winston Date: Tue, 23 May 2023 23:02:04 -0400 Subject: add some reference material --- README | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 README (limited to 'README') 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 -- cgit v1.2.3