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
|
e3b5b96dc2
|
test out 16 bit operand math
|
2025-06-06 00:11:08 -04:00 |
|
Scott Richmond
|
0347d10db7
|
first draft of complex string matching, discover jump mistake
|
2025-06-05 23:26:42 -04:00 |
|
Scott Richmond
|
77faf67191
|
fix InterpolatedPattern compilation
|
2025-06-05 21:23:08 -04:00 |
|
Scott Richmond
|
f8adaa7971
|
first draft of partial application, is working in easy cases
|
2025-06-05 16:45:23 -04:00 |
|
Scott Richmond
|
dee9bcfc33
|
start work on partial application, fix/abstract binding resolution
|
2025-06-05 16:10:40 -04:00 |
|
Scott Richmond
|
f3bf55fe72
|
add dict splats
|
2025-06-05 13:24:32 -04:00 |
|
Scott Richmond
|
b557c487cc
|
add list splats
|
2025-06-05 13:05:07 -04:00 |
|
Scott Richmond
|
b8b720b877
|
add do forms
|
2025-06-05 12:15:49 -04:00 |
|
Scott Richmond
|
23b8beb291
|
fix extra pop regression
|
2025-06-05 12:04:02 -04:00 |
|
Scott Richmond
|
5ae4742840
|
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
|
0f8645d2eb
|
guards work in match forms
|
2025-06-04 18:55:40 -04:00 |
|
Scott Richmond
|
01ce043379
|
guards work in match forms
|
2025-06-04 18:51:07 -04:00 |
|
Scott Richmond
|
2ce2e2c2d3
|
let as last expr in block now returns rhs; clean up some comment cruft
|
2025-06-04 18:27:17 -04:00 |
|
Scott Richmond
|
61b1b7bf90
|
closures work?!
|
2025-06-04 17:53:38 -04:00 |
|
Scott Richmond
|
bf2b16c30f
|
add a print builtin/opcode
|
2025-06-03 19:26:01 -04:00 |
|
Scott Richmond
|
c497b90a16
|
implement multiterm synthetic expressions
|
2025-06-03 19:13:40 -04:00 |
|
Scott Richmond
|
fc245348b4
|
start pulling base fns into bytecode interpreter
|
2025-06-03 18:54:33 -04:00 |
|
Scott Richmond
|
615fef6ebc
|
function calls: first draft, worked out the obvious bugs
|
2025-06-03 17:30:00 -04:00 |
|
Scott Richmond
|
86992078e9
|
keywords and interned strings use &'static str instead of indexes into vecs
|
2025-06-03 16:23:37 -04:00 |
|
Scott Richmond
|
681176282c
|
basic function calls, still with bugs!
|
2025-06-03 15:48:13 -04:00 |
|
Scott Richmond
|
22d1ceb3e8
|
vm.chunk -> vm.callframe.chunk
|
2025-06-02 13:34:23 -04:00 |
|
Scott Richmond
|
de3d7e834c
|
maybe properly compile functions? need to start work on fn calls to test
|
2025-06-01 20:01:42 -04:00 |
|
Scott Richmond
|
b6f9b35b4c
|
start major work on function compilation
|
2025-05-30 17:02:55 -04:00 |
|
Scott Richmond
|
34ab24c4c9
|
add as patterns
|
2025-05-30 14:57:51 -04:00 |
|
Scott Richmond
|
cda217f6ef
|
add string interpolation
|
2025-05-30 11:44:32 -04:00 |
|
Scott Richmond
|
82ac6744ca
|
or and and are now reserved words
|
2025-05-28 16:37:25 -04:00 |
|
Scott Richmond
|
182b14e5f4
|
add builtins, fix basic synthetic expressions
|
2025-05-27 14:15:12 -04:00 |
|
Scott Richmond
|
74cc0025d6
|
first draft loop/recur, seems to work?
|
2025-05-26 11:03:37 -04:00 |
|
Scott Richmond
|
db7eb5965d
|
return register now an 8-member array
|
2025-05-26 09:16:47 -04:00 |
|
Scott Richmond
|
1e1593298d
|
update repeat
|
2025-05-26 08:32:33 -04:00 |
|
Scott Richmond
|
04c96c9edb
|
dict patterns prolly work? one-level nested patterns work
|
2025-05-25 19:14:34 -04:00 |
|
Scott Richmond
|
45d2e7e742
|
rough, not yet working, draft of dict patterns
|
2025-05-25 19:09:21 -04:00 |
|
Scott Richmond
|
cf51822128
|
add list patterns, fix dict stack mechanics
|
2025-05-25 16:30:20 -04:00 |
|
Scott Richmond
|
4f7ba56d1f
|
properly compile when expressions?
|
2025-05-23 17:59:09 -04:00 |
|
Scott Richmond
|
ce1612a30c
|
compiler: decouple stack & bindings resetting
|
2025-05-23 13:43:35 -04:00 |
|
Scott Richmond
|
1ef0da5dd1
|
compiler: decouple stack & bindings resetting
|
2025-05-23 13:42:29 -04:00 |
|
Scott Richmond
|
4a4b2b22ed
|
oh god, so many changes. working on tuple matching
|
2025-05-23 00:09:35 -04:00 |
|
Scott Richmond
|
6c803cdf5a
|
take some loop notes
|
2024-12-27 00:54:31 -05:00 |
|
Scott Richmond
|
a7ee8f8e57
|
vm::run is now a loop, not vm::interpret as a tailcall
|
2024-12-27 00:47:22 -05:00 |
|
Scott Richmond
|
8908630a21
|
add match_depth to vm
|
2024-12-27 00:22:01 -05:00 |
|
Scott Richmond
|
6f582bff06
|
refactor if/else to match in guard compilation
|
2024-12-26 23:48:38 -05:00 |
|
Scott Richmond
|
f5965fdb44
|
compile guards in match forms
|
2024-12-26 23:46:06 -05:00 |
|
Scott Richmond
|
cfe0b83192
|
fix block compilation; compile & run repeat
|
2024-12-26 23:33:57 -05:00 |
|
Scott Richmond
|
4fa2ce5e78
|
separate compiler & chunk
|
2024-12-26 19:03:09 -05:00 |
|
Scott Richmond
|
40d4f48878
|
notes and comments
|
2024-12-26 18:41:54 -05:00 |
|
Scott Richmond
|
ef0ac40dbe
|
working & thinking
|
2024-12-24 12:35:44 -05:00 |
|
Scott Richmond
|
a4f12c8f7d
|
continue work on compiling functions
|
2024-12-23 10:55:28 -05:00 |
|
Scott Richmond
|
9f4e630544
|
get lifetime out of Chunk, thus out of Value
|
2024-12-22 19:51:02 -05:00 |
|
Scott Richmond
|
be23ee6c44
|
get simple match forms done
|
2024-12-22 19:33:59 -05:00 |
|
Scott Richmond
|
d943185db8
|
do lots of work
|
2024-12-22 19:07:42 -05:00 |
|
Scott Richmond
|
d4342b0623
|
get binding & pretty debugging working
|
2024-12-18 01:28:23 -05:00 |
|
Scott Richmond
|
48754f92a4
|
do work
|
2024-12-17 23:45:39 -05:00 |
|
Scott Richmond
|
096d8d00bc
|
add untracked from opening bytecode branch
|
2024-12-15 23:50:12 -05:00 |
|
Scott Richmond
|
9c3205d4c1
|
DRY out validator, simplify code
|
2024-12-15 23:49:43 -05:00 |
|
Scott Richmond
|
6c78cffe56
|
finish list of valid types
|
2024-12-15 23:49:27 -05:00 |
|
Scott Richmond
|
35fc591c76
|
make some progress: atoms and ifs
|
2024-12-15 23:28:57 -05:00 |
|
Scott Richmond
|
eff2ed90d5
|
some simple bytecodes!
|
2024-12-15 17:54:40 -05:00 |
|
Scott Richmond
|
86aea78c21
|
start working on a bytecode interpreter!
|
2024-12-15 16:37:51 -05:00 |
|
Scott Richmond
|
d4af160f80
|
things & stuff
|
2024-12-14 13:43:08 -05:00 |
|
Scott Richmond
|
8535225167
|
fix print!
|
2024-12-13 13:47:03 -05:00 |
|
Scott Richmond
|
73e60b8ced
|
bring full prelude into Ludus.
|
2024-12-12 19:43:56 -05:00 |
|
Scott Richmond
|
49a0b0f8a7
|
fix loop validation bugs
|
2024-12-12 19:28:55 -05:00 |
|
Scott Richmond
|
ac4bd0fb55
|
improve panic reports
|
2024-12-12 19:01:51 -05:00 |
|
Scott Richmond
|
273267f61d
|
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
|
5e73c5cb3b
|
ariadne hooked up to panic messages
|
2024-12-12 00:31:57 -05:00 |
|
Scott Richmond
|
b2e08fe207
|
fiddle
|
2024-12-11 19:13:06 -05:00 |
|
Scott Richmond
|
229470fee3
|
refactor process to use visit method everywhere
|
2024-12-11 19:11:40 -05:00 |
|
Scott Richmond
|
ecc7b26b66
|
process now uses spans, for to give panic locations
|
2024-12-11 18:58:59 -05:00 |
|
Scott Richmond
|
5f154fe56f
|
stash changes before ripping up a bunch of stuff
|
2024-12-11 17:37:42 -05:00 |
|
Scott Richmond
|
7431cbf380
|
start debugging full prelude
|
2024-12-11 17:32:31 -05:00 |
|
Scott Richmond
|
6a01089973
|
closing works, so does importing from Prelude!
|
2024-12-11 17:22:37 -05:00 |
|
Scott Richmond
|
567d3da4be
|
get closing working?
|
2024-12-11 16:43:13 -05:00 |
|
Scott Richmond
|
65492d0810
|
follow clippy
|
2024-12-11 15:48:24 -05:00 |
|
Scott Richmond
|
5b41365caa
|
add args to processes
|
2024-12-11 15:45:34 -05:00 |
|
Scott Richmond
|
f4fbae10e6
|
context -> process
|
2024-12-11 15:42:50 -05:00 |
|
Scott Richmond
|
36c5d125fb
|
validator validates recursive functions
|
2024-12-11 15:36:23 -05:00 |
|
Scott Richmond
|
35e9d0373d
|
arity checking--of local functions
|
2024-12-11 00:20:34 -05:00 |
|
Scott Richmond
|
eafe7a7fa9
|
complete first draft of validator
|
2024-12-10 23:42:05 -05:00 |
|
Scott Richmond
|
9542dcf5e2
|
cover all Ast branches
|
2024-12-10 22:40:57 -05:00 |
|
Scott Richmond
|
f5a6facb1c
|
move patterns, clauses into AST
|
2024-12-10 22:26:52 -05:00 |
|
Scott Richmond
|
cab1b3f173
|
start moving Patterns into Ast
|
2024-12-10 18:40:43 -05:00 |
|
Scott Richmond
|
dde9ac4bff
|
loop arity checking
|
2024-12-10 18:07:31 -05:00 |
|
Scott Richmond
|
e9b52e1488
|
improve do & recur errs
|
2024-12-10 17:39:02 -05:00 |
|
Scott Richmond
|
4c9659271b
|
first draft of synthetic validation
|
2024-12-10 17:23:15 -05:00 |
|
Scott Richmond
|
ec38bcdc8c
|
start testing, fixing
|
2024-12-10 17:14:26 -05:00 |
|
Scott Richmond
|
d48a787447
|
all the work trying to write a validator
|
2024-12-10 16:44:52 -05:00 |
|
Scott Richmond
|
f063d55404
|
actually commit the big new file
|
2024-12-08 23:33:46 -05:00 |
|
Scott Richmond
|
383f21fbd8
|
many refactorings; unfucked lifetimes?
|
2024-12-08 23:33:02 -05:00 |
|
Scott Richmond
|
525ca2c8cb
|
type alias for Context
|
2024-12-08 00:02:01 -05:00 |
|
Scott Richmond
|
6ba05f31e6
|
finish fighting with lifetimes: string pattern matching works!
|
2024-12-07 23:56:19 -05:00 |
|
Scott Richmond
|
5a64c6623c
|
fighting with lifetimes
|
2024-12-07 22:29:10 -05:00 |
|
Scott Richmond
|
2a26316b50
|
parse string patterns, perhaps correctly, perhaps not
|
2024-12-07 18:26:25 -05:00 |
|