| 26 May 2021 |
andi- | perhaps a gentoo stage1 tarball would be a good starting point as those already exist | 10:57:39 |
Gytis Ivaskevicius | well, currently its not going to be reproducible for sure | 11:00:07 |
andi- | Well because our GCC isn't but otherwise? | 11:01:34 |
andi- | Actually the slower GCC should be reproducible so not sure waht might be the issue | 11:02:44 |
Gytis Ivaskevicius | Due to the issue that i sent earlier which is basically gcc/glibc and im not sure about all bin utils and stuff | 11:02:59 |
Gytis Ivaskevicius | shell/utils might be screwed as well.Not sure tho | 11:03:46 |
andi- | But once we can reproduce the tarballs (even cross distro?) it might be a good idea to do "one final" toolchain rotation, no? | 11:04:03 |
andi- | So that we have a clean slate from which we can start. | 11:04:13 |
Gytis Ivaskevicius | you basically mean extra stdenv stage? | 11:04:34 |
Gytis Ivaskevicius | if so - boom https://github.com/NixOS/nixpkgs/issues/123467 | 11:05:05 |
andi- | No, lets say we put in the effort to fix your said impurties and then go the extra mile to show that we can now reproduce the tarball based on a) the previousy nixpkgs see and b) another distros toolchain we could then do one "final" swap of the bootstrap seeds. That would let us start from a well defined bootstrap seed instead of the wild mixture it is now. | 11:05:51 |
andi- | And from there on we only add newer compiler versions to the bootstrap (until in 20y we decide that the 30d bootstrap time is getting too long and cut the chain) | 11:06:25 |
Synthetica | "Grandpa, why do I still need to compile GCC versions 6 through 84" | 11:09:20 |
toonn | Why make the chain longer? | 11:14:18 |
toonn | It's only as trustworthy as the seed anyway so you might as well trim it down as much as possible at each step. | 11:14:44 |
andi- | the point is you only want to show that the seed is trustworthy once | 11:15:27 |
andi- | and then never again | 11:15:29 |
andi- | I am thinking more towards that cross-distro bootstrap.. if we can pull that off it would be nice to have that attestation as part of the regular bootstrap. Build stdenv using debian, fedora, nixpkgs bootstrap and they must all match the same output otherwise the nixpkgs stdenv build fails. | 11:16:39 |
toonn | Yeah, so you build the seed bootstrap. Next time you slap a new GCC on top of that. Next time you peel it away to slap an even newer GCC on top of it. Keep doing this until the bootstrap can't build a version, then and only then keep the bootstrap+previous-GCC, wash, rinse and repeat. | 11:16:55 |
andi- | Not sure I follow. | 11:18:50 |
andi- | Fun fact: I just tried to compile LLVM (from my python PR) on the M1 mac again (with 1 job, 3 cores) and it crashes the system reliably on the latest MacOS version.. Nice bug in apple software triggered through nixpkgs.. | 11:20:16 |
toonn | andi-: You suggest seed->GCC8->GCC9->GCC10, right? What I'm saying is if the seed is capable of building GCC9 but not GCC10 you don't need to keep the entire chain. You'd do seed->GCC8, start again from the seed->GCC9->GCC10. | 11:25:03 |
siraben | related: https://github.com/NixOS/nixpkgs/issues/123095 | 11:27:09 |
Gytis Ivaskevicius | We were talking about ion shell a little - got an email about this :D https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1157 | 11:32:40 |
andi- | In reply to @toonn:matrix.org andi-: You suggest seed->GCC8->GCC9->GCC10, right? What I'm saying is if the seed is capable of building GCC9 but not GCC10 you don't need to keep the entire chain. You'd do seed->GCC8, start again from the seed->GCC9->GCC10. Oh yes of course. As long as you can skip a version you should do it. | 11:34:58 |
toonn | Oh ok, that wasn't obvious to me from what you were saying. | 11:35:24 |
andi- | well it is common for compilers such as rustc to always require the previous version. | 11:38:47 |
andi- | GCC might be a different story as they actually have a language spec.. | 11:39:01 |
toonn | Require? That's unfortunate. Thank god GHC doesn't do that. | 11:46:55 |
andi- | Can you still boot GHC from bash or C ? | 11:56:29 |