|
|
c3315f04e5
|
Working basic guard that falls back to interp on fail
|
2024-02-07 23:21:29 -05:00 |
|
|
|
ff95c5d9e7
|
implemented Lookup (also fix passing wrong function to one of the stack functions or something)
|
2024-02-07 02:03:57 -05:00 |
|
|
|
23fbfe9db3
|
add JIT support for Define, Drop, and Const
|
2024-02-06 02:13:19 -05:00 |
|
|
|
525b103f38
|
swap ret_stack to a repr(C) struct for manipulation from JIT
|
2024-02-05 01:41:55 -05:00 |
|
|
|
fd843bc807
|
Swap ID to NonZeroI64 so Option<ID> is a single word and we can test for 0 in JIT for if we have an ID (for looking at ret_stack)
|
2024-02-05 01:34:53 -05:00 |
|
|
|
a4500fed36
|
Implement (but have not tested) all primitive functions in JIT)
|
2024-02-05 01:26:57 -05:00 |
|
|
|
99d4fa5021
|
first jitted instruction!
|
2024-02-04 21:45:42 -05:00 |
|
|
|
776fc7c921
|
integrated JIT compiler with simple generated do-nothing JIT traces. Modified JIT trace interface so that it can return a trace-id and offset to jump to, allowing the trace interpreter to handle hard cases, etc. (or in this case, all cases, as it just immediatly returns the current id and offset 0).
|
2024-02-02 01:46:13 -05:00 |
|
|
|
9cd46a31eb
|
had trouble getting going again today. Did create a compiled_traces map and integrated using it into execute_trace, with ideas for what the api there should be.
|
2024-02-01 02:09:04 -05:00 |
|
|
|
0ce6d90aa9
|
minor cleanup to wrap JIT stuff in a struct with a compile function and move to lib, in anticipation of actually JIT compiling. Not a ton of work today, was pretty tired / didn't get going.
|
2024-01-31 01:21:57 -05:00 |
|
|
|
facd9a34b9
|
Cranelift JIT experiments, with multiple functions, tail calls, non-tail-calls, calling host functions, etc
|
2024-01-30 02:36:06 -05:00 |
|
|
|
8e06037b4a
|
Finished porting everything over to new packed, JIT-friendly Form, with all the tracing!
|
2024-01-29 02:22:56 -05:00 |
|
|
|
069c9775e1
|
Ported interpreter (without trace execution) to use new packed, JIT-friendly Form, with all needed additions
|
2024-01-29 02:03:59 -05:00 |
|
|
|
0696ad5594
|
Finished-ish writing the new JIT-friendly, packed Form, this time with extra repr(C) Vec implementation
|
2024-01-28 21:51:01 -05:00 |
|
|
|
a16e126aa1
|
Started writing our new Form designed to be used from JIT with repr(C) and packed into a single word, and our own repr(C) Rc implementation to go with it.
|
2024-01-28 02:46:08 -05:00 |
|
|
|
56cd4f7088
|
cleanup, fix closure scope error
|
2024-01-27 17:41:53 -05:00 |
|
|
|
3002bd9237
|
Working ExtendedBasicBlock tracing/lazy-construction! Not all constructs traceable, and no inlining, but it works!
|
2024-01-07 00:15:44 -05:00 |
|
|
|
1e59c8ed94
|
Small one today, getting started was hard but glad I got a tiny bit done to continue the streak. Modifed follow-on data to be stored on Ctx itself and only pass an ID around so it can be on the return stack multiple times without wasting a lot of space.
|
2024-01-04 01:15:42 -05:00 |
|
|
|
c15e857171
|
First barely-working trace replay! Need to clean up, finish implementing, have trace-reply restore traces, jump directly to other traces, eventually inline and concat traces, etc etc
|
2024-01-03 01:55:40 -05:00 |
|
|
|
71a2272f34
|
mostly correct looking traces. given up on actual constant prop during tracing, only constant tracking. Will need later pass to optimize. Also, want to shift the post-call trace to after the innermost return instead of tracking with the return stack.
|
2024-01-02 01:35:55 -05:00 |
|
|
|
2d5315f880
|
tracing/cont rework main
|
2023-12-29 23:37:04 -05:00 |
|
|
|
88e3fa9d39
|
Move dynamic stuff out of Cont and into two stacks so that Cont is good for resuming traces (having them depend only on code). Remove currently unneeded IDs from Symbol and Pair. Added an InlinePrim Op to tracing, and a nc: Cont to Call. IDs are probs only for trace points now (function starts and side-exits).
|
2023-12-26 01:03:56 -05:00 |
|
|
|
b40c928026
|
Reorganize naming scheme
|
2023-12-10 12:50:44 -05:00 |
|
|
|
3f3ea56375
|
Start working on calls
|
2023-12-10 00:56:02 -05:00 |
|
|
|
63a5b019ed
|
Website typing improvements, uncommitted JIT work
|
2023-12-09 19:03:22 -05:00 |
|
|
|
56c6b3f5f7
|
Messing around with fancy splash page
|
2023-12-09 01:23:30 -05:00 |
|
|
|
82c38a32cf
|
Basic tracing structure sketched with stubs in cases - need to add constant tracking and implement stubs. Still need some thought on tracing a closure vs tracing the code that created the closure
|
2023-12-01 21:36:37 -05:00 |
|
|
|
2787b95837
|
Rewrite into non-recursive defunctionalized-continuations style
|
2023-11-25 11:35:36 -05:00 |
|
|
|
656cfe95ae
|
Initial ID & func call stats!
|
2023-11-24 20:35:57 -05:00 |
|
|
|
75d025bcb2
|
Div and mod, why not
|
2023-11-19 21:56:42 -05:00 |
|
|
|
41aa05dc97
|
setup a simple lisp
|
2023-11-19 21:53:51 -05:00 |
|
|
|
774eb668de
|
Clean out, start sl JIT project (no jit yet)
|
2023-11-19 16:33:19 -05:00 |
|
|
|
c1a0608b7c
|
threading trace throughout
|
2023-07-13 23:38:42 -04:00 |
|
|
|
15cab8799d
|
swap to single struct wrapper scaffolding
|
2023-07-13 22:52:49 -04:00 |
|
|
|
6edbe7d2c8
|
Continue moving stuff around to simplify before opt, and then start sketching out wrapped values and trace - just realized we might need all values to be wrapped tohande side effects that don't depend on input but still have effects (mutation, now ugh and assert)
|
2023-07-09 00:24:50 -04:00 |
|
|
|
b077daf12e
|
Split eval.rs out of ast.rs, and rename ast.rs to basic.rs. Copy it over to opt.rs, and hook up a From<> impl and a congruent(x)->bool function, and add to main.rs and test.rs. Now we actually have to make opt.rs optimize...
|
2023-07-06 01:11:56 -04:00 |
|
|
|
f4ae4db92d
|
Move call inside form to allow for tracing (might still need a way to get out of the end of tracing)
|
2023-07-04 12:23:31 -04:00 |
|
|
|
b03122c7b8
|
Move entire Form out of eval into Trait
|
2023-07-04 10:16:38 -04:00 |
|
|
|
d6cf6a6b64
|
Dependency update
|
2023-07-02 18:09:34 -04:00 |
|
|
|
3b858eda98
|
Move primitives to enum - defunctionalized
|
2023-06-06 01:10:01 -04:00 |
|
|
|
8b9a0a0f2d
|
Start sketching bytecode generation
|
2023-05-25 02:07:01 -04:00 |
|
|
|
ce5ab1dd99
|
Implemented shift/reset delimited continuations using a defunctionalized double-CPS transformation! Basic tests work at least, there certinally could be bugs
|
2023-05-22 01:23:17 -04:00 |
|
|
|
4126e25463
|
everything uses continuations now, skeleton for shift/reset
|
2023-05-21 04:14:29 -04:00 |
|
|
|
d44480bf6c
|
contemplate parameter eval cont
|
2023-05-16 23:48:26 -04:00 |
|
|
|
093f3c0453
|
Basic continuation-ification of primitives, finally work out the Cursor/Cont devide. Still need to figure out which Cont's we need for evaluation (possibly a subset of) parameters
|
2023-05-16 23:31:58 -04:00 |
|
|
|
f82101e63f
|
Start moving eval to explicit continuation based
|
2023-05-16 01:15:09 -04:00 |
|
|
|
ea1516fbd1
|
Started new kv impl with support for mutable cells, just the basic interpreter. Going to add the lazy bytecode interperter next
|
2023-05-14 23:50:27 -04:00 |
|
|
|
82bfb5bc7b
|
small syntax expl in How it works
|
2023-04-26 00:39:08 -04:00 |
|
|
|
7431dbe4b7
|
Add examples
|
2023-04-26 00:33:08 -04:00 |
|
|
|
b2216f7574
|
Implemented many of Chris and Sharjeel's suggestions - still need to insert a worked example, and if I have time, benchmarks re-run with numbers and memory usage
|
2023-04-25 21:58:25 -04:00 |
|