Skip to content
The OftLisp bootstrapper.
Rust Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
fuzz
macro-expander
ministd
src
.gitignore
.travis.yml
Cargo.lock
Cargo.toml
Justfile
README.md
build.py

README.md

oftb

Build Status Dependency Status

The OftLisp bootstrapper.

Requires Rust version 1.26.0 or later.

Bootstrapping Process

Note that build.py performs all of these steps.

Stage 0: oftb

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.

Stage 0.5: Generate ministd/prelude and macro-expander/interpreter/env

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.

Stage 1: macro-expander

macro-expander is an interpreter that performs macro expansion.

Stage 2: oftc bootstrap

Stage 3: oftc

Subprojects

macro-expander

There's also a macro expanding interpreter written in OftLisp here, for bootstrapping.

ministd

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.

License

Licensed under either of

at your option.

Contribution

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.

You can’t perform that action at this time.