Recipe for yogurt: Add yogurt to milk.
The bootstrap problem we have set out to solve is that none of our modern software distributions, and Guix in particular, can be created all from source code. In addition to the carefully signed source code of all the programs (the ‘milk’) an opaque binary seed (the ‘yogurt’) is injected as an essential dependency.
Why would this be a problem, I hear you ask? This is how it is done, we always did it this way, everyone does it like this! Indeed, a popular way of handling the bootstrapping issue is by ignoring it.
Your compiler becoming self-hosting…a language creator’s wet dream.
It seems that writing a self-hosting compiler is considered to be a language creator’s ultimate goal. It means that their language and compiler have become powerful enough to not depend on a pre-exising language that possibly is—but certainly was until now—more powerful; it feels like passing the rite to adulthood.
When you see the irony, you grasp what our bootstrapping effort means in practice. Creating bootstrappable software is not hard; actually most softwares’ first releases are bootstrappable. The problem of bootstrapping is not a technical one, it is a lack of awareness and responsibility.
|• The Mes Bootstrap Process||How Mes will make you yogurt from pure milk.|
|• Invoking mes||Running Mes, a minimalist Guile lookalike.|
|• Invoking mescc||Running the MesCC bootstrap compiler.|
|• Invoking mesar|