I'd like to understand more about what difficulties packagers have with Hadrian.
I can only speak for packaging ghc in haskell.nix. - non-standard bespoke (make, cmake) build system. - a moving build system that changes over time how things work. - obscure edge cases breaking (stage1 cross ghc installation), cross compilers, … - bisecting being hard because the build system and compiler are symbiotic. And then of course the fact that it’s basically a custom cabal-install, but only half way there. E.g. duplicate effort, but still bespoke, and then some custom symbiotic logic encoded in the build system specifically for this one compiler (-version). That’s also the reason why stable-haskell cabalized everything. To properly get stage1/stage2 support we had to add cross compiler support to cabal (boot is the build compiler for stage1, stage1 is the build compiler for stage2, similar to how a native compiler is the build compiler for a cross compiler). I think what would be nice would be if cabal could be the cabal project -> buck project translator. That would allow any generic cabal project (e.g. ghc) to be buildable via buck. Best, Moritz