Commit Graph

12 Commits

Author SHA1 Message Date
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
049624a840 Baby steps towards handling non-val car/cdr (eventually cons) 2023-03-22 01:06:24 -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
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
d4920ec4b6 Notes for hopefully the full simple kraken PE, with initial implementation of new NeededIds (split between head and tails (heads are ids for which progress will be made, tails might not progress but are contained), body_under and if_under). 2023-03-15 01:16:37 -04:00
865fc1b4b6 Update flake, split ast out into ast & pe_ast, and main into main & test 2023-03-14 20:14:17 -04:00