Bootstrappable Builds: How and Why

(lwn.net)

24 points | by signa11 3 hours ago

3 comments

  • robalni 13 minutes ago
    I am working on a project that will be like a whole environment bootstrapped from the smallest possible beginning.

    I thought a hex-to-binary converter like hex0 was too much like machine code, and I wanted everything to be source code, so I chose to instead start with a super simple interpreted language that is described in english and the user is supposed to write an interpreter for it themselves in any way they want. This way I connect the human to the computer using the language of the human which I thought felt better and easier to understand.

    This super simple interpreted language then builds a super simple RISC-V assembler. Here I came up with a nice technique where the functions in the assembler are called through pointers, which makes them replacable while the asesmbler is running. So as soon as the assembler has compiled a better version of one of its own functions, that function is then replaced with the better version while the asesmbler is running and it continues to compile the rest of the code which can then use the new features. So it evolves without having to restart.

  • Panzerschrek 40 minutes ago
    Are chain-of-trust attacks real? Is it necessary to make so much effort to avoid what supposedly never happened?
  • andrewchambers 1 hour ago
    Would love to see someone try to automate the bootstrap chain from a working C89 compiler to Rust.

    At this point I think current LLMs are able help these incredible feats of bootstrapping as they can grind out the impossibly long built times over multiple days/weeks.

    I am very optimistic for deterministic builds in general.