Welcome to the bootstrapping wiki!
This wiki is about bootstrapping, i.e., building up compilers and interpreters and tools from nothing.
To use an analogy from the world of food production:
"Recipe for yogurt: Add yogurt to milk." - Anon.
In simple technical terms:
Bootstrapping is about building a compiler using tools smaller than itself, as opposed to building a compiler using an already built version of itself. The problem with the second is: Where did that prebuilt binary come from?
The short sci-fi story Coding Machines (Lawrence Kesteloot, January 2009) has bootstrapping as a theme.
Also see the homepage of the Bootstrappable project, which has pointers to a mailing list and IRC channel.
Current topics being considered include:
- mes by janneke, repo
- live-bootstrap by fossy and stikonas, repo
- stage0 by Jeremiah Orians, repo
- Boot2Now by Rick Masters, repo
- Coquillage by bms_
- Aesop by unmatched-paren
- Descent principle
- The Semantics Assignment Problem
- Build Systems
- Build Inputs
- C compilers
- Below C Level
- Boostrapping Specific Languages
- Projects List
The Groups page has links related to various areas of interest including:
- Karger-Thompson Attack
- Ubiquitous Implementations
- Small C Compilers
- Grammars, Parsing, and Term Rewriting
- Virtual Machines, Instruction Sets
- CPU's for Bootstrapping
- Minimal Operating Systems
- Biology / Other?
- AIM-039.pdf The first self hosted lisp
- lambda-the-ultimate thread asking for info on bootstrapping
- awesome-compilers github list with a lot of information (copy the relevant parts to this wiki)
- Tombstone diagram
- bootstrappable a community hub for bootstrapping, with mailing list.
- bootstrappable mailing list
- yabfc - Generating-executable-files-from-scratch
- ELF visualization
- Cfront - converts C++ to C; developed by Bjarne Stroustrup.
- How do I install all of the GNU C Library project libraries that I just built
- Formal Compiler Verification with ACL2 - proving a compiler correct with ACL2 and discussion about correctness and self compiling.