| 28 Jan 2026 |
Ramses 🇵🇸 | Wait, we have a bootstrap chain for rust now, starting from C? | 22:31:25 |
Atemu | Oh sorry, I missed the first word somehow | 22:32:03 |
Atemu | We still use bootstrap binaries for those | 22:33:10 |
Ramses 🇵🇸 | Yeah, ok, that's what I thought | 22:33:23 |
Atemu | There were a few efforts to build rust compilers in C but I don't think they went anywhere | 22:33:34 |
Ramses 🇵🇸 | I think the GCC backed is still being worked on upstream | 22:34:02 |
Ramses 🇵🇸 | * I think the GCC backend is still being worked on upstream | 22:34:15 |
Atemu | Like, you could use them but you'd need to chain through way too many rustcs to get to the current version | 22:34:20 |
Atemu | Yeah, that's my hope too | 22:34:31 |
whispers [& it/fae] | mrustc does currently work for rustc bootstrap, but it still tends to lag behind some number of versions (e.g. the current release supports 1.74.0, which means we'd have to build ≈20 versions to get to latest stable) | 22:35:16 |
Atemu | But we'll have to see how quickly they implement new features required by the latest rustc in practice | 22:35:23 |
whispers [& it/fae] | * mrustc does currently work for rustc bootstrap, but it still tends to lag behind some number of versions (e.g. the current release supports 1.74.0, which means we'd have to build ≈20 versions to get to latest stable. work is ongoing for 1.90.0, but this is mostly a single-person project and the chain will keep growing) | 22:36:12 |
whispers [& it/fae] | as for go, dish has an open pr but whether that's something that folks want is an open question (see replies) https://github.com/NixOS/nixpkgs/pull/435345 | 22:38:18 |
Atemu | There is also some early development in Haskell where someone is building a Haskell compiler that can (barely) be ran using hugs and supports some modern Haskell features. Don't think anyone has tried building GHC with it yet though.
https://github.com/augustss/MicroHs
| 22:43:44 |
whispers [& it/fae] | * as for go, dish has an open/draft pr but whether that's something that folks want is an open question (see replies) https://github.com/NixOS/nixpkgs/pull/435345 | 22:44:56 |
dish [Fox/It/She] | In reply to @whispers:catgirl.cloud as for go, dish has an open/draft pr but whether that's something that folks want is an open question (see replies) https://github.com/NixOS/nixpkgs/pull/435345 frankly i would like that PR merged even if distpack comes at a later date but I am biased | 22:48:22 |
dish [Fox/It/She] | just felt like they immediately blocked it and then havent done the work they insisted on blocking mine on | 22:48:46 |
dish [Fox/It/She] | but that is coming from my perspective so... grain of salt | 22:49:04 |
whispers [& it/fae] | same, but :/ | 22:49:36 |
Atemu | One issue that is not clear to me is sustanability | 22:54:20 |
Atemu | Is the bootstrap compiler still getting updates? | 22:54:45 |
Atemu | Or does the chain grow indefinitely? | 22:55:10 |
Atemu | Because that would not scale well w.r.t. rebuilds | 22:55:37 |
Atemu | This is the reason why we don't have rust source bootstrap either | 22:57:14 |
dish [Fox/It/She] | In reply to @atemu12:matrix.org Is the bootstrap compiler still getting updates? which one? go's bootstrap compiler is gccgo, so whatever that supports is supported by the bootstrap. Currently, with go the bootstrap chain would get 1 version longer per year, as go only increments their version reqs every other minor release, and each release is 6 months apart. Afaik there aren't any plans for them to change that or shrink the chain at a later time, besides gccgo actually getting developed to support later golang features to shrink our bootstrap chain | 23:07:56 |
dish [Fox/It/She] | so to answer your question, the bootstrap chain does grow infinitely. The good thing wrt rust is that go is much faster to build, so we don't have to worry about compile times as much, and the chain grows much slower. But it will grow unmanagable at some point, and there's the thorny details of new architectures etc | 23:09:06 |
dish [Fox/It/She] | the chain in my PR is gccgo -> 1.17 -> 1.20 -> 1.22 -> 1.24/25 | 23:10:32 |
dish [Fox/It/She] | once 1.26 is released, 1.24 becomes part of its bootstrap chain | 23:10:46 |
dish [Fox/It/She] | * once 1.26 is released, 1.24 becomes part of its bootstrap chain because of how go's bootstrap process works | 23:13:20 |
dish [Fox/It/She] | https://go.dev/doc/install/source#go14 | 23:13:44 |