|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
5512ab8804
|
Fix warnings, add destructuring let1
|
2023-02-12 12:19:56 -05:00 |
|
|
|
3c2dfbf8a7
|
Add tail call recursion - works, but if a datastructure is too deep (say, because env keeps growing on the heap) Rc::drop will end up overflowing the stack when trying to deallocate
|
2023-02-10 19:38:44 -05:00 |
|
|
|
ba67b8c67b
|
Add "!" syntatic form - a bit like the single quote, but !(a b c) d => !(a b c d). Useful for like !(let a 1) (+ a 3) or w/e. Break out some of the infinate nesting"
|
2023-02-10 01:01:04 -05:00 |
|
|
|
02e359f42d
|
Finish out the basic primitives along with testing infra for both parsing and evalaution, with some slick Into<> impls to make Rust values Kraken values, which is esp useful for testing
|
2023-02-08 23:37:23 -05:00 |
|
|
|
d861d91397
|
Fix ', add if and = along with bools
|
2023-02-08 01:54:53 -05:00 |
|
|
|
c801f604c2
|
Add derived combiners and fix some bugs with eval, vau, quote, cons, car, cdr
|
2023-02-07 13:00:15 -05:00 |
|
|
|
60dad101f8
|
Speed sketch beginnings of a Rust implementation of new stripped-down Scheme-like Kraken
|
2023-02-07 02:07:53 -05:00 |
|