| 13 Jan 2025 |
| KSP Atlas joined the room. | 09:55:20 |
Collin Arnett | Redacted or Malformed Event | 11:11:03 |
alexfmpe | I had something similar looking once but for a symbol from a dependency. Whatever the cause was, it got fixed by overriding that dep to use cabal 3.6+ | 15:47:50 |
alexfmpe | But I was using an older nixpkgs, it wasn't happening on newer ones | 15:48:15 |
alexfmpe | hmm do you maybe have some conditionals in .cabal that look relevant?
cabal2nix isn't great at handling them | 15:49:14 |
alexfmpe | huuh how is it that nix-build -A haskell.packages.ghc910.aeson-gadt-th works even though https://hackage.haskell.org/package/aeson-gadt-th has base <4.20 ? | 23:21:08 |
maralorn | Normally jailbreak | 23:21:39 |
maralorn | I guess you know that 😃 | 23:22:14 |
alexfmpe | ah derp it was hidden on configuration.nix-nix | 23:22:14 |
alexfmpe | * ah derp it was hidden on configuration-nix.nix | 23:22:22 |
| 14 Jan 2025 |
sterni (he/him) | Cabal 3.14.1.1 breaks GHC 9.12 bootstrap and it's kind of interesting how this happened
- So to begin with GHC 9.12 arbitrarily requests Cabal 3.14 for hadrian because they need it for some feature. Since no previous GHC actually ships this version of Cabal, you can't use the core package.
- Cabal 3.14.1.1 newly introduces a constraint on unix that is supposed to prevent building it with a buggy version of unix (a bug that apparently only affects 32bit platforms). I must say that these is a questionable decision and seems like abusing the constraint system. It's also strange that even though the bug only affects certain platforms, the constraint isn't conditional. (https://github.com/haskell/unix/pull/318)
- Since GHC 9.10 which we use for bootstrapping ships an affected version of Unix we get a violated constraint.
Which goes to show that making your bootstrapping process more complex, things will go wrong as soon as someone steps just a tiny bit away from the CI tested bootstrap plans that pin every dependency.
| 13:13:17 |
maralorn | Phew | 13:15:20 |
maralorn | sterni: Can we override Cabal and unix? | 13:17:13 |
sterni (he/him) | yes, but it's a massive headache becasue unix is also used by other libraries | 13:17:32 |
sterni (he/him) | The patch for unix is trivial we can probably just pick it onto every GHC we ship. | 13:17:55 |
maralorn | Sounds good | 13:18:16 |
sterni (he/him) | The question is whether we even need it
On that platform (as well as any other glibc/musl platform), however, CTimeVal isn't used for anything at all because there are #ifdefs that prefer using utimensat which takes CTimeSpec instead. This fix is therefore quite theoretical, as it is unknown whether there are any platforms actually affected.
| 13:18:18 |
maralorn | Still annoying | 13:18:20 |
maralorn | 😆 | 13:18:33 |
sterni (he/him) | It seems very unnecessary, yes. | 13:18:34 |
maralorn | I wonder which bug this is supposed to prevent. | 13:23:03 |
maralorn | That is a super cautious bound bump. | 13:23:36 |
sterni (he/him) | it broke ghcup on debian | 13:23:52 |
maralorn | Oh | 13:24:06 |
sterni (he/him) | but it seems a little extreme still | 13:24:20 |
sterni (he/him) | our i686-linux at least still uses 32bit time_t etc. | 13:24:47 |
sterni (he/him) | going to make the patch PR at some later point | 13:25:43 |
sterni (he/him) | also uh https://github.com/haskell/ghcup-hs/issues/1107#issuecomment-2571330758 | 13:26:24 |
sterni (he/him) | ?!?!!!? | 13:26:27 |
alexfmpe | When I am king, everyone not using nix will pay an extra tax | 13:33:15 |