Scott Richmond
|
32f7a036cd
|
save work, working on function clause guards, extra pop instructions are showing up after function definitions
|
2025-06-04 19:02:19 -04:00 |
|
Scott Richmond
|
1e295cb483
|
guards work in match forms
|
2025-06-04 18:55:40 -04:00 |
|
Scott Richmond
|
e32f4a0226
|
guards work in match forms
|
2025-06-04 18:51:07 -04:00 |
|
Scott Richmond
|
5660d62aff
|
let as last expr in block now returns rhs; clean up some comment cruft
|
2025-06-04 18:27:17 -04:00 |
|
Scott Richmond
|
8909f7350b
|
closures work?!
|
2025-06-04 17:53:38 -04:00 |
|
Scott Richmond
|
911702f4bf
|
add a print builtin/opcode
|
2025-06-03 19:26:01 -04:00 |
|
Scott Richmond
|
3f48d2e49f
|
implement multiterm synthetic expressions
|
2025-06-03 19:13:40 -04:00 |
|
Scott Richmond
|
aaa9ab2e98
|
start pulling base fns into bytecode interpreter
|
2025-06-03 18:54:33 -04:00 |
|
Scott Richmond
|
6e6fc1030b
|
function calls: first draft, worked out the obvious bugs
|
2025-06-03 17:30:00 -04:00 |
|
Scott Richmond
|
1b462ce8ce
|
keywords and interned strings use &'static str instead of indexes into vecs
|
2025-06-03 16:23:37 -04:00 |
|
Scott Richmond
|
85338bcbf9
|
basic function calls, still with bugs!
|
2025-06-03 15:48:13 -04:00 |
|
Scott Richmond
|
5075e118c0
|
vm.chunk -> vm.callframe.chunk
|
2025-06-02 13:34:23 -04:00 |
|
Scott Richmond
|
d85fce26da
|
maybe properly compile functions? need to start work on fn calls to test
|
2025-06-01 20:01:42 -04:00 |
|
Scott Richmond
|
da9a71e85e
|
start major work on function compilation
|
2025-05-30 17:02:55 -04:00 |
|
Scott Richmond
|
d9eedb7ba0
|
add as patterns
|
2025-05-30 14:57:51 -04:00 |
|
Scott Richmond
|
663435e223
|
add string interpolation
|
2025-05-30 11:44:32 -04:00 |
|
Scott Richmond
|
e2617de4e9
|
or and and are now reserved words
|
2025-05-28 16:37:25 -04:00 |
|
Scott Richmond
|
0d48509c51
|
add builtins, fix basic synthetic expressions
|
2025-05-27 14:15:12 -04:00 |
|
Scott Richmond
|
472010c526
|
first draft loop/recur, seems to work?
|
2025-05-26 11:03:37 -04:00 |
|
Scott Richmond
|
efefa77b6e
|
return register now an 8-member array
|
2025-05-26 09:16:47 -04:00 |
|
Scott Richmond
|
bccafbd4ab
|
update repeat
|
2025-05-26 08:32:33 -04:00 |
|
Scott Richmond
|
943eaf22fe
|
dict patterns prolly work? one-level nested patterns work
|
2025-05-25 19:14:34 -04:00 |
|
Scott Richmond
|
7725e5546c
|
rough, not yet working, draft of dict patterns
|
2025-05-25 19:09:21 -04:00 |
|
Scott Richmond
|
9d1ccb1c00
|
add list patterns, fix dict stack mechanics
|
2025-05-25 16:30:20 -04:00 |
|
Scott Richmond
|
47b553a300
|
properly compile when expressions?
|
2025-05-23 17:59:09 -04:00 |
|
Scott Richmond
|
9921d02945
|
compiler: decouple stack & bindings resetting
|
2025-05-23 13:43:35 -04:00 |
|
Scott Richmond
|
db4c537db6
|
compiler: decouple stack & bindings resetting
|
2025-05-23 13:42:29 -04:00 |
|
Scott Richmond
|
55361dd7c1
|
oh god, so many changes. working on tuple matching
|
2025-05-23 00:09:35 -04:00 |
|
Scott Richmond
|
2b39b1b54b
|
take some loop notes
|
2024-12-27 00:54:31 -05:00 |
|
Scott Richmond
|
6cbe253f6e
|
vm::run is now a loop, not vm::interpret as a tailcall
|
2024-12-27 00:47:22 -05:00 |
|
Scott Richmond
|
420415f984
|
add match_depth to vm
|
2024-12-27 00:22:01 -05:00 |
|
Scott Richmond
|
ce77b25ac7
|
refactor if/else to match in guard compilation
|
2024-12-26 23:48:38 -05:00 |
|
Scott Richmond
|
9ae2e8eca2
|
compile guards in match forms
|
2024-12-26 23:46:06 -05:00 |
|
Scott Richmond
|
0719e4a276
|
fix block compilation; compile & run repeat
|
2024-12-26 23:33:57 -05:00 |
|
Scott Richmond
|
774df695d9
|
separate compiler & chunk
|
2024-12-26 19:03:09 -05:00 |
|
Scott Richmond
|
e37b562c93
|
notes and comments
|
2024-12-26 18:41:54 -05:00 |
|
Scott Richmond
|
05abe64e45
|
working & thinking
|
2024-12-24 12:35:44 -05:00 |
|
Scott Richmond
|
d3df1e8ed2
|
continue work on compiling functions
|
2024-12-23 10:55:28 -05:00 |
|
Scott Richmond
|
5618cf9ef8
|
get lifetime out of Chunk, thus out of Value
|
2024-12-22 19:51:02 -05:00 |
|
Scott Richmond
|
e8a90c5356
|
get simple match forms done
|
2024-12-22 19:33:59 -05:00 |
|
Scott Richmond
|
068a8aa724
|
do lots of work
|
2024-12-22 19:07:42 -05:00 |
|
Scott Richmond
|
27443444e3
|
get binding & pretty debugging working
|
2024-12-18 01:28:23 -05:00 |
|
Scott Richmond
|
044c7264f8
|
do work
|
2024-12-17 23:45:39 -05:00 |
|
Scott Richmond
|
e61d07efa6
|
add untracked from opening bytecode branch
|
2024-12-15 23:50:12 -05:00 |
|
Scott Richmond
|
bbe38e6bf6
|
DRY out validator, simplify code
|
2024-12-15 23:49:43 -05:00 |
|
Scott Richmond
|
e13c5a5ba3
|
finish list of valid types
|
2024-12-15 23:49:27 -05:00 |
|
Scott Richmond
|
d0afa3a547
|
make some progress: atoms and ifs
|
2024-12-15 23:28:57 -05:00 |
|
Scott Richmond
|
2aa9892d25
|
some simple bytecodes!
|
2024-12-15 17:54:40 -05:00 |
|
Scott Richmond
|
3cddbac42c
|
start working on a bytecode interpreter!
|
2024-12-15 16:37:51 -05:00 |
|
Scott Richmond
|
6388aae0fa
|
things & stuff
|
2024-12-14 13:43:08 -05:00 |
|
Scott Richmond
|
70ecebcbe9
|
fix print!
|
2024-12-13 13:47:03 -05:00 |
|
Scott Richmond
|
0d741ee6fa
|
bring full prelude into Ludus.
|
2024-12-12 19:43:56 -05:00 |
|
Scott Richmond
|
90493f4346
|
fix loop validation bugs
|
2024-12-12 19:28:55 -05:00 |
|
Scott Richmond
|
1e74ef8237
|
improve panic reports
|
2024-12-12 19:01:51 -05:00 |
|
Scott Richmond
|
78266114e7
|
a slow and brute-force approach to the problem of re-binding closed-over forward declarations
|
2024-12-12 01:19:39 -05:00 |
|
Scott Richmond
|
ac119a848c
|
ariadne hooked up to panic messages
|
2024-12-12 00:31:57 -05:00 |
|
Scott Richmond
|
d28a7adbfa
|
fiddle
|
2024-12-11 19:13:06 -05:00 |
|
Scott Richmond
|
c1a594a939
|
refactor process to use visit method everywhere
|
2024-12-11 19:11:40 -05:00 |
|
Scott Richmond
|
b85df7a83c
|
process now uses spans, for to give panic locations
|
2024-12-11 18:58:59 -05:00 |
|
Scott Richmond
|
a248a56f6e
|
stash changes before ripping up a bunch of stuff
|
2024-12-11 17:37:42 -05:00 |
|
Scott Richmond
|
ddff9b6884
|
start debugging full prelude
|
2024-12-11 17:32:31 -05:00 |
|
Scott Richmond
|
7dab0e0637
|
closing works, so does importing from Prelude!
|
2024-12-11 17:22:37 -05:00 |
|
Scott Richmond
|
ca0c4062c3
|
get closing working?
|
2024-12-11 16:43:13 -05:00 |
|
Scott Richmond
|
6f4b269bdb
|
follow clippy
|
2024-12-11 15:48:24 -05:00 |
|
Scott Richmond
|
9410997886
|
add args to processes
|
2024-12-11 15:45:34 -05:00 |
|
Scott Richmond
|
3eb9178854
|
context -> process
|
2024-12-11 15:42:50 -05:00 |
|
Scott Richmond
|
4b783bc5ef
|
validator validates recursive functions
|
2024-12-11 15:36:23 -05:00 |
|
Scott Richmond
|
acaf726675
|
arity checking--of local functions
|
2024-12-11 00:20:34 -05:00 |
|
Scott Richmond
|
2f8f3f687c
|
complete first draft of validator
|
2024-12-10 23:42:05 -05:00 |
|
Scott Richmond
|
dd57f49f80
|
cover all Ast branches
|
2024-12-10 22:40:57 -05:00 |
|
Scott Richmond
|
c40f0f45d2
|
move patterns, clauses into AST
|
2024-12-10 22:26:52 -05:00 |
|
Scott Richmond
|
07096abc7d
|
start moving Patterns into Ast
|
2024-12-10 18:40:43 -05:00 |
|
Scott Richmond
|
26f3b66b33
|
loop arity checking
|
2024-12-10 18:07:31 -05:00 |
|
Scott Richmond
|
1e88d803a3
|
improve do & recur errs
|
2024-12-10 17:39:02 -05:00 |
|
Scott Richmond
|
8016f9f0bd
|
first draft of synthetic validation
|
2024-12-10 17:23:15 -05:00 |
|
Scott Richmond
|
c5ec437452
|
start testing, fixing
|
2024-12-10 17:14:26 -05:00 |
|
Scott Richmond
|
7a800c7905
|
all the work trying to write a validator
|
2024-12-10 16:44:52 -05:00 |
|
Scott Richmond
|
1e48de112c
|
actually commit the big new file
|
2024-12-08 23:33:46 -05:00 |
|
Scott Richmond
|
fc8896908d
|
many refactorings; unfucked lifetimes?
|
2024-12-08 23:33:02 -05:00 |
|
Scott Richmond
|
df4fc68326
|
type alias for Context
|
2024-12-08 00:02:01 -05:00 |
|
Scott Richmond
|
1a620c3682
|
finish fighting with lifetimes: string pattern matching works!
|
2024-12-07 23:56:19 -05:00 |
|
Scott Richmond
|
fec57635e3
|
fighting with lifetimes
|
2024-12-07 22:29:10 -05:00 |
|
Scott Richmond
|
cb66806cae
|
parse string patterns, perhaps correctly, perhaps not
|
2024-12-07 18:26:25 -05:00 |
|
Scott Richmond
|
74db9a7f53
|
finish base, I think
|
2024-12-06 14:08:34 -05:00 |
|
Scott Richmond
|
a739dfd794
|
keep adding to base, pull type function from value to base
|
2024-12-06 13:21:25 -05:00 |
|
Scott Richmond
|
fb572e4acc
|
tick some boxes
|
2024-12-05 14:02:41 -05:00 |
|
Scott Richmond
|
531e79d482
|
add concat
|
2024-12-05 11:51:42 -05:00 |
|
Scott Richmond
|
04a09c5ccc
|
add some functions, base fns return values, not results
|
2024-12-04 20:19:41 -05:00 |
|
Scott Richmond
|
1e18da7bd1
|
ensure inlined and allocated strings are equal
|
2024-12-04 19:13:25 -05:00 |
|
Scott Richmond
|
d3e026733a
|
complete string interpolation
|
2024-12-04 19:07:03 -05:00 |
|
Scott Richmond
|
4b3da3d8ba
|
parse interpolated strings
|
2024-12-04 18:31:13 -05:00 |
|
Scott Richmond
|
045f8cd579
|
parse interpolated strings
|
2024-12-04 18:30:03 -05:00 |
|
Scott Richmond
|
da60fed78d
|
add ref-counted string type
|
2024-12-04 15:03:09 -05:00 |
|
Scott Richmond
|
69583e29d3
|
parse docstrings
|
2024-11-21 22:36:57 -05:00 |
|
Scott Richmond
|
03864d5878
|
update todos
|
2024-11-21 20:09:37 -05:00 |
|
Scott Richmond
|
b645c7daa6
|
get right with clippy
|
2024-11-21 20:00:49 -05:00 |
|
Scott Richmond
|
2801916473
|
follow clippy
|
2024-11-21 19:54:50 -05:00 |
|
Scott Richmond
|
eb3b4d487b
|
start looking into memory layout
|
2024-11-21 18:50:13 -05:00 |
|
Scott Richmond
|
fa0a793458
|
clean up most warnings
|
2024-11-21 17:10:50 -05:00 |
|
Scott Richmond
|
b7398a290a
|
interpret loop & recur
|
2024-11-21 17:02:54 -05:00 |
|
Scott Richmond
|
1c589dcc4a
|
parse loop and recur
|
2024-11-21 16:57:52 -05:00 |
|
Scott Richmond
|
a4c37582b9
|
parse loop and recur
|
2024-11-21 16:41:46 -05:00 |
|
Scott Richmond
|
42b81afef9
|
add guard clauses to match and fn
|
2024-11-20 20:10:17 -05:00 |
|
Scott Richmond
|
bf9efc0501
|
list splatterns!
|
2024-11-18 20:01:27 -05:00 |
|
Scott Richmond
|
bf2c585d9e
|
tuple splatterns now work
|
2024-11-18 13:25:54 -05:00 |
|
Scott Richmond
|
2a8b858ff6
|
update todo list
|
2024-11-14 22:19:52 -05:00 |
|
Scott Richmond
|
d801b063b5
|
add as patterns
|
2024-11-14 21:55:19 -05:00 |
|
Scott Richmond
|
9ccb1b29e4
|
remove test cruft
|
2024-11-14 21:31:26 -05:00 |
|
Scott Richmond
|
f2ce24febc
|
get base functions working
|
2024-11-14 21:30:42 -05:00 |
|
Scott Richmond
|
ef7b5ca9ac
|
lots of work, need to fix cloning closures in base
|
2024-11-11 17:50:58 -05:00 |
|
Scott Richmond
|
691c333e09
|
lots of new things! almost a language
|
2024-11-10 20:12:19 -05:00 |
|
Scott Richmond
|
c9eb23770a
|
futz, but mostly take notes
|
2024-11-09 14:10:08 -05:00 |
|
Scott Richmond
|
ba1640cc3f
|
actually remove catchall pattern in eval
|
2024-11-07 20:41:38 -05:00 |
|
Scott Richmond
|
472b67363d
|
actually remove catchall pattern in eval
|
2024-11-07 19:05:24 -05:00 |
|
Scott Richmond
|
9c6de741d0
|
remove catchall pattern in eval
|
2024-11-07 19:04:58 -05:00 |
|
Scott Richmond
|
f285a782cb
|
keep working on some things
|
2024-11-07 18:57:01 -05:00 |
|
Scott Richmond
|
40a9c815ea
|
get the vm basically working!
|
2024-11-06 18:28:29 -05:00 |
|
Scott Richmond
|
cdc72b2f37
|
keep working on vm
|
2024-11-06 17:37:57 -05:00 |
|
Scott Richmond
|
8f2737400b
|
grind on lifetimes, don't get it working
|
2024-10-31 23:53:48 -04:00 |
|
Scott Richmond
|
a0b20ad19d
|
break out into separate modules
|
2024-10-31 16:59:26 -04:00 |
|
Scott Richmond
|
d92fb2e4b7
|
Use chumsky::recursive::Recursive in place of fn recursive
|
2024-10-31 16:28:15 -04:00 |
|
Scott Richmond
|
40c21c9f6c
|
Fix Stream::from_iter call
|
2024-10-31 15:38:55 -04:00 |
|
Scott Richmond
|
0f45dd06c1
|
lots of work, not in working state
|
2024-10-28 23:59:50 -04:00 |
|
Scott Richmond
|
6e334f002c
|
lexing?
|
2024-10-27 17:45:17 -04:00 |
|