this post was submitted on 25 Aug 2024
110 points (97.4% liked)
Rust
6029 readers
1 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The deeper reasoning is still not explained. C is just terrible for this. Rust is very complicated and writing a new implementation is a big project even in good languages. So using C seems tragic.
I'm going to go further and say that TinyCC isn't bootstrapped either, since the compiler writer's thought processes aren't bootstrapped. You would have to use something like CompCert (i.e. all the reasoning that the programs works is embedded in the program and machine checked) and bootstrap that. It is probably doable, but not as a 1 person hobby project.
Okay. That's just imposing a different (and at least equally arbitrary, if not moreso) definition of bootstrapping. Why does it matter that the author didn't explain their "deeper reasoning" for having an interest in bootstrapping, or the Bootstrappable Builds project specifically? If you feel like that project isn't meeting a sufficient bar for what counts as "bootstrapping", or that using C as the first high-level language they bootstrap is "tragic", take it up with that project, I guess.
I will take a look at the bootstrapping project page, but "bootstrappability" is a philosophical notion whose extent depends on what you are trying to get from it. Certainly someone who pursues it should give that some thought and reach a conclusion, rather than just following a recipe on some web site. So that's the deeper reasoning I felt was missing.
As for C being terrible, well, why would I want to take that up with anyone? It's simply that we know from 50 years of experience with C that writing bug-free C programs, or noticing the existence of bugs in them, is extremely difficult. If someone decides to use it for bootstrapability anyway, xkcd.com/386 would seem to apply.
collapseos.org (which uses Forth) might also be of some interest, though I think that was another questionable decision. Real transparency and boostrapability requires that the reasoning process be written out and matched up with the code. C does a pretty poor job of that compared to some alternatives.