aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 399b14235f2ecf0db14ee58f6e2b0bbef7ce6d3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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)?)
 - [x] ~~lists work for atoms like `(list 1 2 3)` but not evaluated expressions
       like `(list (+ 2 3) 4 5)`~~ fixed with [d95e4f6f98](https://git.rawtext.club/mryouse/neb-d/commit/d95e4f6f988b16bbd95a9c78c0355d190390f003)
       and [9fe6496202](https://git.rawtext.club/mryouse/neb-d/commit/9fe6496202bd95d252ed2323a88fd24781780b64).
       i'm almost definitely still bastardizing bytecode.
 - [ ] 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~~
       stopped running with [11e9f1d854](https://git.rawtext.club/mryouse/neb-d/commit/11e9f1d854602aae7cb895cfb2f9fc5dd338e6f8),
       helful? not really, not yet.
 - [ ] 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, `lambda` to make one on the fly
 - [x] `def`, globally and locally
 - [x] `block`? maybe?
 - [-] lists/strings:
    - [x] `first`
    - [x] `rest`
    - [x] `length`
    - [x] `concat`/`append`
    - [x] `in?` (membership for lists, substrings for strings)