Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It means that the compiled binary can be used to compile updated versions of its own source code, so you no longer need to keep around a secondary compiler for that purpose.

This is known as "self-hosting"[0], and is typically a desirable property of compilers that target their own runtime environment.

[0]: https://en.wikipedia.org/wiki/Self-hosting_(compilers)



Unfortunately self-hosting breaks the ability to bootstrap solely from source code, so it is usually recommended to keep that secondary compiler working (or included it as part of the build process for your compiler) so you can trust the compiler binaries aren't tampered with.

https://bootstrappable.org/


For the record: C* is a subset of C. Selfie is trivially bootstrapple by any C compiler. Moreover, it's very easy to implement the subset of RISC-V used by Selfie if you don't trust its emulator.

Bootstrapping vs self-hosting is a false dichotomy here.


Good to hear. Usually self-hosting means the maintainers will drop bootstrapping, thanks for being the exception to that rule. If you aren't verifying bootstrapping works in your CI, it might be worth adding that.


> so you can trust the compiler binaries aren't tampered with.

Hehe, I love reflections on trusting trust~




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: