Commit Graph

16 Commits

Author SHA1 Message Date
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