| 15 Sep 2025 |
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 |
MangoIV | that seems absurd to me | 13:36:23 |
emily | implicit parameters don't screw with the semantics of normal type classes | 13:37:03 |
MangoIV | yeah but they're special cased in all kinds of ways | 13:37:24 |
emily | is there an obstacle to still using Hadrian to build one stage but then layering those with Nix? | 13:37:39 |