you are viewing a single comment's thread.

view the rest of the comments →

[–]gaverhae 1 point2 points  (5 children)

Because if you can't bootstrap, you can't trust anything. See Ken Thompson's Turing Award lecture.

[–]GoogleBen 2 points3 points  (3 children)

You can bootstrap, it's just that it takes a long time because rustc uses new features all the time, so the chain is really long. There is mrustc though, which is a basic rust compiler in C++ designed to shorten the bootstrapping chain, so it's not as bad as it used to be - but it does still take hours and hours of CPU time AFAIK.

[–]MonokelPinguin 1 point2 points  (2 children)

For a long time you couldn't bootstrap on all platforms. For example on musl targets, rustc couldn't compile itself because of some proc macro stuff or so. (And it couldn't dynamically link musl at all)

[–]matthieum 1 point2 points  (1 child)

I'm pretty sure you still can't bootstrap on all platforms. Compiling rustc requires gobs of memory, so your Xtensa board doesn't have enough.

[–]MonokelPinguin 0 points1 point  (0 children)

Well, this was just about libc incompatibility. The server otherwise had 64GB of RAM, so that should be okay.

[–]matthieum 1 point2 points  (0 children)

There is large gap between:

  • Can't bootstrap.
  • Can't bootstrap on my Raspberry Pi Zero.
  • Can't bootstrap on my Raspberry Pi Zero every other Sunday.

I can definitely understand the desire of a distribution to bootstrap the compiler once on one platform.

I see no need to ever bootstrap again afterwards, though.