The OftLisp bootstrapper.
Requires Rust version 1.26.0 or later.
Note that build.py
performs all of these steps.
First, oftb
is built.
This is a potentially time-consuming process; Rust code takes a long time to build.
You can skip this step (if you've already run it) by passing --no-oftb-build
to build.py
.
oftb
performs bytecode compilation to ofta
files, and interprets ofta
files.
It does not (currently) include a garbage collector.
Since these two modules both rely on every export from the prelude (and are therefore a pain to update), they're generated.
To ensure that up-to-date versions are used, the generation process runs every time build.py
is run.
macro-expander
is an interpreter that performs macro expansion.
There's also a macro expanding interpreter written in OftLisp here, for bootstrapping.
This repo also contains ministd, the trimmed-down version of the standard library used when bootstrapping. Notably, ministd does not provide any macros. Functions that normally exist as a variadic macro version and a fixed-arity function version are usually defined with a fixed arity.
Licensed under either of
- Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.