| 23 Jan 2023 |
raboof | https://arnout.engelen.eu/nixos-iso-gnome-r13y/ / https://arnout.engelen.eu/nixos-iso-minimal-r13y/ are more recent (would be happy to work together on r13y.com) | 18:31:37 |
| 24 Jan 2023 |
raboof | https://github.com/NixOS/nixos-org-configurations/pull/234 | 12:02:46 |
| 25 Jan 2023 |
@rnhmjoj:maxwell.ydns.eu | In reply to @raboof:matrix.org https://arnout.engelen.eu/nixos-iso-gnome-r13y/ / https://arnout.engelen.eu/nixos-iso-minimal-r13y/ are more recent (would be happy to work together on r13y.com) wow that's a lot of haskell libraries. I had forgotten that GHC object files are not reproducible. are there any recent developments about this? | 09:59:02 |
@rnhmjoj:maxwell.ydns.eu | * wow, that's a lot of haskell libraries. I had forgotten that GHC object files are not reproducible. are there any recent developments about this? | 09:59:05 |
atemu12 | Perhaps you could ask nh2, they're into GHC stuff | 10:00:03 |
raboof | I didn't notice much activity in https://github.com/NixOS/nixpkgs/issues/151347 / https://gitlab.haskell.org/ghc/ghc/-/issues/12935 | 10:06:54 |
raboof | though it seems it doesn't necessarily impact all haskell builds? there's quite some green ones in https://reproducible.archlinux.org/ | 10:09:53 |
raboof | quick experiment: haskellPackages.void seems reproducible for us as well | 10:10:58 |
@rnhmjoj:maxwell.ydns.eu | could it be related to parallel builds/optimisation level? | 10:11:21 |
raboof | yeah single threaded builds seem more reliable but also quite a price to pay (https://github.com/NixOS/nixpkgs/issues/151347#issuecomment-997817696, https://gitlab.haskell.org/ghc/ghc/-/issues/12935#note_373865) | 10:13:26 |
raboof | perhaps an option for some small/fast modules that are currently unreproducible, but it might be good to put some energy in looking into the upstream ghc problem(s?) as well | 10:21:14 |
atemu12 | Perhaps we could make a haskellPackagesReproducible set where parallel builds are off and use that in the ISO | 10:45:22 |
@rnhmjoj:maxwell.ydns.eu | I think the problem is that the most commonly used libraries are not particularly small (pandoc, lens, aeson, etc). ~100 modules is typical | 10:45:43 |
baloo | In reply to @raboof:matrix.org yeah single threaded builds seem more reliable but also quite a price to pay (https://github.com/NixOS/nixpkgs/issues/151347#issuecomment-997817696, https://gitlab.haskell.org/ghc/ghc/-/issues/12935#note_373865) could that be that the objects needs to be fed in a deterministic order to the linker? It looks like the linker just gets them in random order and slaps them together. | 17:31:02 |
baloo | if I remember correctly there are ordering rules between some objects, but that doesn't mean they won't end up in different order at the end.
Like you could get A -> C and B -> C, but you could end up with A,B,C or B,A,C which would be valid calls to the linker. | 17:39:22 |
baloo | but they would end up with placing object in A and B out of order. | 17:39:52 |
baloo | anyway, something to "fix" in the build tool itself (cabal?) and not much we can do from a nix perspective? | 17:40:35 |
atemu12 | baloo: GHC is the relevant program I think. | 18:54:31 |
atemu12 | GHC upstream weirdly hasn't show much interest in generating binaries deterministically though | 18:55:07 |
atemu12 | Perhaps we can teach our generic linker to enforce order somehow? | 18:55:39 |
baloo | I don't think we have the relationships between objects | 20:04:06 |
baloo | yeah, I don't know haskell well enough to know if this is a GHC or a cabal issue. | 20:04:42 |
baloo | anyway, was just dumping thoughts here ;) I haven't looked at the issue yet | 20:05:08 |
baloo | but considering how slow haskell is to compile, I think it's worth not going with the -j 1 option | 20:05:52 |
atemu12 | baloo: For regular builds, no. For the subset in the ISO (and only there), j1 could be an option. | 20:24:47 |
baloo | Right | 20:26:32 |
baloo | (Still wouldn’t mind seeing that fixed upstream, but I’m very slow at writing Haskell) | 20:27:25 |
baloo | someone wants to try a patch? :D | 22:39:35 |
baloo | https://gist.github.com/baloo/ae0c10f2537232790876792faa4bc506 | 22:39:50 |
baloo | nevermind, there was a lot of rewrites? | 22:49:53 |