These changes have been sitting here uncommitted for a almost a couple of
years now. It's become clear that, while this project deeply interests me,
I do not have time for it. Implementing a full-fledged Scheme is simply not
something I have time to do.
The original goal of this project is also something I'm still interested in,
but will not have time to do any time soon. But it has been folded into
broader, more grand ideas.
I hope that this will, at the very least, be interested to someone else. It
is terribly lacking in certain cases, e.g. it does not even implement pairs
properly, because I never needed to.
See also https://github.com/google/schism, which compiles to WASM.
Happy hacking!
This bootstraps up to the final Rebirth generation. I had been doing this
manually from the command line for far too long.
This also includes an ASCII Ulambda logo.
* README.md: Add Ulabmda logo
* build-aux/bootstrap/Bootstrap.js:
(bootstrap): Extract majority of existing code into separate methods.
Add invocation of `_rebirth'.
(_birth): Extracted from `bootstrap'. Extracted compiler function
creation into separate method `_makeCompiler'. Extract self-
verification into `_verifyBirthOutput'.
(_verifyBirthOutput, _makeCompiler): Extracted from `_birth'/`bootstrap'.
(_rebirth, _compileRebirth): New methods.
(_loadPath)[desc]: Default param value to empty string.
(_strmap)[header]: Change logo.
[loadingf]: Account for optional empty `desc'.
[prebirthDesc, birthCompiled, birthVerifyOk]: Prefix with "+".
[prebirthComplete]: Remove prefix "[prebirth]".
[birthSelfCompiling, birthVerify]: Remove prefix "[birth]".
[rebirthCompiling, rebirthCompiled, rebirthDone]: New keys.
[ok]: Update to indicate that bootstrapping isn't complete yet.
(_supmap): New field.
Gibble is still the ultimate goal, but since I seem to have gone down
precisely the path that I did _not_ want to go down (implementing a full
Scheme), this deserves to be its own project.
Oh, and Gibble is the "{General=>Graphical} Block-Based Learning
Environment".