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".
This allows bootstrapping in either a development environment (Node.js) or
simply using the intended runtime environment: the user's browser.
* bootstrap.html: Add file (browser).
* bootstrap.js: Add file (command-line).
* bootstrap/Bootstrap.js: Add class. Formalize bootstrap process.
* bootstrap/libprebirth.js
(fsdata): Add variable to serve as filesystem stub.
(fs): Always throw error when `fs' module is unavailable.
($$js$file$_$$g$string): Consider `fsdata'.
* bootstrap/prebirth.js: Export as CommonJS module if in proper
environment. Abort automatic processing via stdin if root CommonJS
module.