Commit Graph

188 Commits

Author SHA1 Message Date
Scott Richmond
813a79a415 add a sandbox file to replace in-code Rust string 2025-06-22 14:40:27 -04:00
Scott Richmond
0b27944d11 improve bytecode readability by reporting patterns 2025-06-22 14:39:52 -04:00
Scott Richmond
f58a5f14b5 improve bytecode readability by reporting patterns 2025-06-22 14:38:29 -04:00
Scott Richmond
2f60de79a2 keep grinding on loop/recur/jif stack mismatch; add ast->code printer 2025-06-22 14:04:43 -04:00
Scott Richmond
398b140d79 grind on bugs 2025-06-22 01:24:52 -04:00
Scott Richmond
25a0c62dcf lots of bugs fixed--upvalues, bindings, stack manipulations, tail calls, etc. 2025-06-21 22:25:08 -04:00
Scott Richmond
583262f9e8 fix one-up closure resolution 2025-06-21 18:33:14 -04:00
Scott Richmond
ce11f1cd0f start work on getting prelude working; discover closure bug 2025-06-21 17:43:47 -04:00
Scott Richmond
3fe5365586 moar thoughts 2025-06-20 17:11:08 -04:00
Scott Richmond
23d9945c48 fix if alternative unconditional jump len 2025-06-20 17:09:41 -04:00
Scott Richmond
92d0915a71 prelude compiles: WAT 2025-06-20 16:02:48 -04:00
Scott Richmond
b3e0af41bb constants need 16 bits 2025-06-20 15:56:13 -04:00
Scott Richmond
121861cc8e fix function scoping bug 2025-06-20 15:35:09 -04:00
Scott Richmond
a2ae53f8e4 wire up stub:w prelude from external file 2025-06-20 14:43:14 -04:00
Scott Richmond
e06a24cf20 base and stub prelude wired up 2025-06-20 14:30:39 -04:00
Scott Richmond
1e3fcde57a work on prelude; update tailcall to deal properly with base fns 2025-06-20 14:29:31 -04:00
Scott Richmond
c73c7e0d6a load base into a compiler 2025-06-20 12:53:16 -04:00
Scott Richmond
ef134c0335 fix argument order in base fns 2025-06-20 12:49:31 -04:00
Scott Richmond
e580d68809 recursion works, so does mutual recursion; function call bugfixes 2025-06-20 12:32:15 -04:00
Scott Richmond
f4ade4938c notes and todos 2025-06-20 00:56:43 -04:00
Scott Richmond
fa587e38cd fix binding bug 2025-06-20 00:33:25 -04:00
Scott Richmond
8b004b45fa find a bug in function bindings; TCO is maybe complete?; things are in a shambles 2025-06-19 21:47:58 -04:00
Scott Richmond
7e4ddd3dc4 improve panic traces; tail calls work for simpel calls 2025-06-19 21:13:18 -04:00
Scott Richmond
2f5dab84a7 tail calls work now? also print stack trace on panic 2025-06-19 20:52:19 -04:00
Scott Richmond
94b7f98362 Merge branch 'bytecode' of alea.ludus.dev:scott/rudus into bytecode 2025-06-19 20:29:41 -04:00
Scott Richmond
1af75bc516 fix upvalue resolution, start work on TCO 2025-06-19 20:29:15 -04:00
Scott Richmond
807b2e6ce0 fix upvalue resolution 2025-06-19 20:26:16 -04:00
Scott Richmond
bf1e7e4072 rought draft of splatted fn args 2025-06-19 18:26:44 -04:00
Scott Richmond
442532ecd3 dict splatterns first draft 2025-06-19 15:56:23 -04:00
Scott Richmond
4dd4b8ff7e pseudocode splatted dict algo 2025-06-19 12:44:29 -04:00
Scott Richmond
35d7d3b1c8 first draft of tuple splatterns 2025-06-19 12:37:29 -04:00
Scott Richmond
a4d68fa02e first draft of list splatterns 2025-06-19 12:18:09 -04:00
Scott Richmond
2b95094eca first stab at splatted lists 2025-06-19 12:06:47 -04:00
Scott Richmond
4871dbd048 add match splatted list opcode 2025-06-19 11:54:26 -04:00
Scott Richmond
647f3d4463 update punch list 2025-06-19 11:48:50 -04:00
Scott Richmond
fb2488c850 rough draft of new version of loop w/ 16 bit jumps 2025-06-18 19:03:45 -04:00
Scott Richmond
f6bfe0975b update repeat w/ new jumps 2025-06-18 17:50:30 -04:00
Scott Richmond
ffe5d2ad61 panic on wrong number of args to functions 2025-06-18 16:47:53 -04:00
Scott Richmond
23298c8538 match now uses new jump; micro-optimize pop_n 2025-06-18 15:24:30 -04:00
Scott Richmond
77f1627132 update dict pattern for new jumps 2025-06-18 15:00:46 -04:00
Scott Richmond
6bd419125f update list pattern compiling to reflect new jump logic 2025-06-18 14:52:15 -04:00
Scott Richmond
a5f2e2a9bd tuple patterns now use jump_stub and patch_jump, with 16 bit jump values 2025-06-18 14:47:00 -04:00
Scott Richmond
a0ef6d2777 chip away at 16-bit jump instructions 2025-06-18 14:12:54 -04:00
Scott Richmond
d727096422 VM instructions now take 3 bytes 2025-06-18 14:12:10 -04:00
Scott Richmond
979afdbcb9 add jump fn for 16 bit jump 2025-06-18 13:15:57 -04:00
Scott Richmond
316e8a6a58 remove unused pattern.rs 2025-06-18 13:15:39 -04:00
Scott Richmond
ecd16e3aef update thoughts 2025-06-10 15:44:47 -04:00
Scott Richmond
e3b5b96dc2 test out 16 bit operand math 2025-06-06 00:11:08 -04:00
Scott Richmond
6ded94f7d0 oops: put working document under version control 2025-06-06 00:06:23 -04:00
Scott Richmond
0347d10db7 first draft of complex string matching, discover jump mistake 2025-06-05 23:26:42 -04:00