15 Sep 2025 |
MangoIV | so while it narrowed the scope, it didn't entirely fix the issue. | 13:28:33 |
MangoIV | my point was that GHC already supports CPP | 13:29:06 |
MangoIV | it would be quite embarassing though, if GHC would replace generics with CPP | 13:29:22 |
emily | btw can you fix cross-building a GHC (instead of building a cross GHC) so that I can delete https://github.com/NixOS/nixpkgs/blob/7201db431d05efb6df0b0ff40cdcae6e419b940d/pkgs/development/compilers/ghc/common-llvm-patches.nix thank you in advance :P | 13:29:27 |
emily | (just going to assume you do 100% of GHC development and can fix everything) | 13:29:50 |
emily | I wonder how close to working that PR for it is | 13:30:35 |
emily | (it would also fix TH right?) | 13:32:01 |
Teo (he/him) | Some folks were working on the stage2 cross patch weekend just gone | 13:32:24 |
sterni (he/him) | I am more optimistic that this will be solved by just building all packages manually with Cabal and wiring up the bootstrap in Nix rather than in hadrian. (Which is something I plan to investigate this autumn.) | 13:32:25 |
Teo (he/him) | https://gitlab.haskell.org/ghc/ghc/-/merge_requests/14827 | 13:32:51 |
emily | oh does that replace https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11444 | 13:33:14 |
sterni (he/him) | This would probably mean more GHC patches for 9.14 or so, but those can probably be upstreamed eventually | 13:33:18 |
Teo (he/him) | We would also need TH to run on host or smth and maybe more. It's a whole kettle of fish | 13:33:20 |
emily | that sounds cool if achievable | 13:33:28 |
MangoIV | wait, as in, build the entirety of GHC with nix or just let hadrian build single stages only? | 13:33:32 |
Teo (he/him) | Yeah it's that rebased | 13:33:36 |
emily | but feels like a heavy lift | 13:33:38 |
Alex | In reply to @emilazy:matrix.org IIRC he said no plans for implicit params or magic hash, which sound like things GHC would plausibly use GHC uses both, yes.
They are not too difficult to hack around. (Magic hash is purely syntactical, implicit params is in a sense sugar.) | 13:33:50 |
emily | at that point you're basically rewriting Hadrian in Nix right? | 13:34:04 |
emily | or wait Hadrian doesn't even use Cabal right... | 13:34:11 |
emily | I can't keep all this stuff straight | 13:34:16 |
Teo (he/him) | This would be great. Whatever happens, it would be great if boot libs were built with nix and weren't special | 13:34:21 |
MangoIV | hadrian is shake based. | 13:34:41 |
emily | calling implicit params sugar feels a bit of a stretch to me, it has some pretty weird/deep semantics :) | 13:34:59 |
emily | but if you mean "can easily be removed much of the time" then fair | 13:35:09 |
toonn | sterni: What are the problems with Hadrian? | 13:35:41 |
MangoIV | they are reverse sugar - it's mostly to support HasCallstack ... :D | 13:35:47 |
Alex | In reply to @teoc:matrix.org This would be great. Whatever happens, it would be great if boot libs were built with nix and weren't special autoconf might give some trouble, but building bootlibs without Hadrian is possible as long as you have a compiler, cabal, and a cpphs implementation. | 13:35:52 |
MangoIV | i don't understand how it came to be that they exposed that stuff but are reluctant to make withDict work for data dicts | 13:36:13 |
emily | building libraries separate from compilers and never mixing multiple compiler build/host/target builds in one derivation is all I want in this world 🙏 | 13:36:22 |