Commit Graph

1190 Commits

Author SHA1 Message Date
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
9ec99a94eb presentation updates 2023-04-24 10:48:24 -04:00
c994f1b1af forgot the images 2023-04-23 17:25:45 -04:00
febe356575 new slides 2023-04-23 13:02:01 -04:00
0df6ce49fe spell checks, adjenda 2023-04-18 13:02:13 -04:00
87763fad40 Tons of slide work, unfortunately depend on external MathJax - need to pull that down later 2023-04-18 01:47:10 -04:00
5054441625 More work including brain dumping more slides and bugfixes for memo - have found current problem, which is that a non-env se can prevent a DeriComb from pulling in valeus from a real Env frame which it's being returned from - even though this is caught, the resulting call still depends on it, marks it as such, and then it depends on a call that was real and now no longer exists. 2023-04-16 00:02:29 -04:00
3dcebe5297 Bunch of new slides with examples comparing Fexprs to Lisp's macros and special forms 2023-04-15 15:41:11 -04:00
f55dd236b6 Fix one bug, or part of one - dericomb wasn't advancing if se wasn't a legal env, but was still unioning the body IDs into it's ids which could convince it that it should be able to progress 2023-04-15 00:52:52 -04:00
f4b99067d4 More working memo that tracks used env-ids and env, fixed bugs with it too. Currently trying to track down some infinate loops caused by something that thinks it should make progress and doesn't, have an assert that notices doubles 2023-04-15 00:19:51 -04:00
a990809e21 Some slide work 2023-04-11 23:17:55 -04:00
f567172099 share background color 2023-04-08 14:23:56 -04:00
ee4add2fee Gah my comment messed up the CSS again 2023-04-08 14:16:59 -04:00
ab700c12b1 and the RemarkJS license 2023-04-08 14:07:41 -04:00
cad202551b Forgot we moved out to the standalone js 2023-04-08 14:06:07 -04:00
4e7825cb2b Hack in copying code between the two editors and fix recursive.css's body style overridding the slides 2023-04-08 14:05:48 -04:00
6ef3392aa0 prototype remarkjs slides with Kraken formatting and auto-execute code in browser on slide change! Some rough edges, including two different editors between the first slide and the reveal slide 2023-04-08 13:38:21 -04:00
b89b831983 Website with changes made with/based on my graphic designer Mom's suggestions (thanks Mom!) 2023-04-05 21:10:04 -04:00
a06c5854c8 The big exponential thing was ironically Hash which was being called for memo which existed to prevent exponential behavior. Reimplmenented the caching hash, and much much faster. Still some failing tests, and bvau might be looping 2023-04-04 23:40:09 -04:00
8ccdfd8ab2 new invariant: when returned, each form is as evaluated as it can be. This means that union_into_tail is more rare, and only for recursion (if or deri) stopped items. If now also captures its environment if it's rec_stopped. Added memoization for legal env forms to try to deal with it, has helped some, still exponential behavior. 2023-04-02 12:48:02 -04:00
3c5bb127e2 Work on saving env on calls and suspended symbols, only use as env if legal. Seemingly causing exponential behavior, need to have it done incrementally... todo 2023-03-29 01:58:07 -04:00
8fa7acbdf1 Actually using the evaled param lookups with cons pairs etc - Tests failing - need to figure out how to really handle the *weird* case, and also the failing tests if the *wierd* case isn't the cause. Not sure if we need to track to prevent the dropping of the *not* redundant veval, or if the suspended symbol should hold onto the half-done env, or what 2023-03-27 01:27:25 -04:00
664b336a48 trac suspended param eval, with proper back conversion 2023-03-27 00:28:44 -04:00
70ac3e3633 Add theming and a 'slick' theme based on Inter and JetBrains Mono 2023-03-25 16:59:24 -04:00
049624a840 Baby steps towards handling non-val car/cdr (eventually cons) 2023-03-22 01:06:24 -04:00
85454fda79 unneeded anchors 2023-03-22 00:27:22 -04:00
30c4d4b28c some website edits 2023-03-22 00:24:38 -04:00
92bcb6f358 All tests passing when run with --release. Not sure if this is really correct, or if the algorithm is being too wasteful and re-executing versions of functions taht should have been inlined or something (this may esp be true without the parameter/wrap_level stuff, and also I'm a little sus of the env chains - oh hay, it might even just be becasue only legal env chains are allowed which prevents pe-ing) 2023-03-20 01:06:24 -04:00
48de9517c9 An unvaled Pair should have a True override for its IDs 2023-03-19 11:15:22 -04:00
9162b456d2 Oh some were just changes in formatting. First real issue looks like it's VMAP 2023-03-19 02:03:41 -04:00
1df3acccd7 Some tests passing again, namely all of basic and fact 2023-03-19 01:52:18 -04:00
7b334e96df Finally finished sketching out the new version, lets get on the compile errors 2023-03-19 00:59:46 -04:00