Bootstrapping Rust
Published in 2018, this chronicle by @darnir details the mechanics of building a profitable, self-funded business without venture backing.
Core Principles for Independent Builders:
Charging customers from day one acts as the ultimate filter for building software that solves genuine, high-urgency problems.
Keeping fixed overhead low and leveraging lean infrastructure allows founders to stay alive until market tailwinds kick in.
Small, repetitive improvements in customer retention and conversion rates yield massive returns over multi-year horizons.
Community Debate Themes:
The community focused on B2B customer acquisition channels, cold email vs SEO distribution, and balancing full-time employment with side-project development.
CATEGORY Bootstrapping & MRR →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE 194 points
TOTAL DISCUSSIONS 46 comments
The "bootstrapable.org" project that OP refers to is an interesting practical result from the infamous "Reflections on Trusting Trust."[1] If you have the source compiler, which is itself bootstrapped from source, then you effectively sidestep the problem brought up in the paper -- someone sneaks in a boobytrapped compiler somewhere in the process resulting in a chain of tainted compilers.
This is the kind of work that seems pretty thankless, but I'm glad someone is doing it.
[1] https://www.archive.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf ↗
So bootstrap chain here is g++->mrustc->several iterations of rust. (Rather than original bootstrap chain via ocaml.)
Bootstrap for g++ is presumably something like machine code->asm->c->g++.
And the overall goal is something like shortening or simplifying the chain from machine code to rust compiler.
Ideally I suppose this would be something like machine code->proto rust->rust compiler.
Haskell seems to have a relatively good pipeline, with clean division between core and non-core.
https://ghc.haskell.org/trac/ghc/wiki/Commentary ↗
writing mrustc in C++ seems like such a mistake.
It compiles rust to C, so why not write it in rust? then compile itself to C.
Another idea, just compile rustc to web assembly then use https://github.com/WebAssembly/wabt/tree/master/wasm2c ↗ to convert it to your bootstrap source.
Was some feature added to rust 1.20.0 that was particularly difficult to implement? Or is this just a 'have to stop somewhere' situation.
https://dwheeler.com/trusting-trust/ ↗ is the page on Diverse Double-Compiling as a counter to the trusting trust attack