Commit Graph

1152 Commits

Author SHA1 Message Date
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
04bf1c6249 Website reformat - content still TBD 2023-03-18 14:57:31 -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
46e6e27f88 pre change 2023-03-14 20:05:39 -04:00
d836a66e66 more numbers of evals/calls 2023-03-01 00:33:43 -05:00
3df2d02286 Merge branch 'master' into partially_broken 2023-02-28 01:15:48 -05:00
3d6082503c track evals, dyn 0 calls, dyn 1 calls 2023-02-28 01:15:36 -05:00
af2fb537c7 saving remaining before 2023-02-28 01:14:03 -05:00
4752dde4af Added recursive If tracking, but that still doesn't seem to have solved the problem. Have to dig deeper into the actual failed tests now... 2023-02-24 01:19:55 -05:00
abddf1db06 transition to fake-ids instead of rec-hashes. Still have infinate recursion, need to check on it 2023-02-23 13:14:10 -05:00
6357297cd1 been going down withat's probs the wrong path for solving infinate recursion for bvau, did a lot on suspended IF but that doesn't seem to be the issue... Not sure if this was done in vain 2023-02-23 02:48:40 -05:00
bb6b15c156 some bugfixes, and moving towards a reconstruct-on-error. More bugs remain though, ?uncovered? by this, including another infinate loop. Fixed a tricky one where a function would recursively call it self for real while evaluating itself fake, and create an environment that had a loop indirected through subbing itself in for SuspendedEnv (since the real and the fake had the same ID). 2023-02-23 01:38:46 -05:00
e327ed7314 Found the bug. All tests pass PE, except for those that overflow the stack. Those are disabled, and the remaning must be run with --release. Can maybe improve PE tail call to prevent that 2023-02-22 20:16:08 -05:00
bde04e94df Still buggy, but implemented a more tail-recursive PE with non-recursive drop_redundent_veval, special forms SuspendedEval and SuspendedIf, simplification of how primitives work, and more 2023-02-22 01:22:57 -05:00
45a869b09b Remove year and weird (c) from copyright line, concensus is it's not needed these days 2023-02-21 10:53:07 -05:00
21fb47470a Too much debugging to find out PE assert was broken and debugging printlns were overflowing the stack. Some of the other tests also overflow the stack if not built in release mode, and I disabled the stack-testing tests for PE 2023-02-21 10:32:26 -05:00
67feab10bc Add rec-hash-stopping for SuspendedPair calls 2023-02-21 01:48:04 -05:00
76b68e28d8 Implement cached hashes 2023-02-20 22:20:00 -05:00
7f10d111ac Fix attempted in SuspendedPair, a lot more tests also work PE-wise now. Many are overflowing the stack, might be recursion causing or just really bad lack of tail calls, or a bug... 2023-02-20 00:22:29 -05:00
5107c1d7e4 Add in evaling of DeriComb, first let test in fib passes now (but not fib itself) 2023-02-19 23:16:10 -05:00
4d251964a2 Sketch combiner_return_ok and fix DeriComb ids 2023-02-19 20:33:09 -05:00
5df87a53cf Proper progress decisionmaking via NeededIDs and DCtx taking into account ids and hashes (not that we're storing hashes yet) 2023-02-19 19:28:48 -05:00
71326738fa First basic use of suspended lookup progress using the environment, basic tests passing again for pe 2023-02-19 18:52:39 -05:00
91e0641045 Split Ctx into BCtx (bi-directional ctx, must be returned) and DCtx (downwards-ctx, only passed down). Env goes in DCtx, so you don't have to play a replace-back game with ctx when returning from function calls. 2023-02-19 12:37:12 -05:00
283c0232b0 Some steps forward, some back - add sanity testing that eval(e,x) == parial_eval(ctx, x.unval()), start fixing the bugs it reveals, split SuspendedLookup into SuspendedEnvLookup and SuspendedParamLookup 2023-02-19 01:18:59 -05:00
fdaca7f807 Implement basic derived calls, and fix eval not unvaling bug 2023-02-19 00:46:54 -05:00
c5f7a52a38 Implment basic function calling pe 2023-02-18 22:46:23 -05:00
b893787a1b move towards just MarkedForm (with no Value(Form)), with Attempted and MarkedIDs, and sketch out the MarkedForm::PrimComb versions of all the primitives with translation from PrimComb 2023-02-18 19:32:59 -05:00
8b59d5a16a reorginze, start sketching partial eval 2023-02-16 18:21:13 -05:00
520e473415 Add RBTREE and test, along with <, >, <=, >= 2023-02-14 13:18:19 -05:00
f568ee3d50 Add len, finish match 2023-02-14 12:47:48 -05:00
66fc1db606 Implemented Display for Form, then first sketch of MarkedForm, NeededIds, and unval, and Display for MarkedForm 2023-02-14 00:50:05 -05:00
ad3c251ba9 implement non-varidic and/or and start porting match. Need to make and/or varidac and continue match work 2023-02-13 01:08:34 -05:00
3df7d6e0ec Finish converting into individual tests (mostly) - might need to split out and uncomment some should-fail tests 2023-02-13 00:42:54 -05:00
e9b8f636cf Start splitting out the tests into multiples, with the library code at top level in once_cell's Lazy 2023-02-12 16:16:59 -05:00
5838cf0bdd Added 'assert', and changed match_params to assert that when the param tree is nil so are the passed params, which should handle exact length for functions etc.
Added unwrap, lapply, array, the Y combinator, and rlambda. Y and rlambda were almost verbatim copies from old Kraken, with a change for how variadic functions are declared ( '( & args )' vs 'args' ) and a name change.
2023-02-12 13:30:45 -05:00
5512ab8804 Fix warnings, add destructuring let1 2023-02-12 12:19:56 -05:00
30964bf4ec Better BVAU, which does full trees-of-symbols destructuring with varidic support! 2023-02-12 11:56:32 -05:00