!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

681 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://nixos.org/manual/nixpkgs/unstable/#haskell | Current PR: https://github.com/nixos/nixpkgs/pulls?q=is%3Apr+is%3Aopen+head%3Ahaskell-updates | Maintainer Docs: https://github.com/NixOS/nixpkgs/blob/haskell-updates/pkgs/development/haskell-modules/HACKING.md | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org | Merger Schedule: https://cloud.maralorn.de/apps/calendar/p/H6migHmKX7xHoTFa/dayGridMonth/now | Join #haskell.nix:libera.chat for question about the alternative haskell.nix infrastructure133 Servers

Load older messages


SenderMessageTime
15 Sep 2025
@emilazy:matrix.orgemilyif it's just for GHC bootstrap13:23:02
@mangoiv.:matrix.orgMangoIVjust use CPP macros? 13:23:05
@teoc:matrix.orgteo (they/he)GHC already has a bunch of these for generating C code13:23:10
@emilazy:matrix.orgemilyok I have an idea13:23:19
@emilazy:matrix.orgemilywhat if we extend this to solve codegen problems too13:23:26
@teoc:matrix.orgteo (they/he) yeah maybe, or python or whatever. I don't mind too much 13:23:29
@emilazy:matrix.orgemilywe would need to use a language that we can trust to be present on all Unix systems13:23:42
@emilazy:matrix.orgemilylike say Perl13:23:45
@emilazy:matrix.orgemilywe could have a Perl script13:23:51
@emilazy:matrix.orgemilyand it could read in assembly code13:23:58
@emilazy:matrix.orgemilyand apply fix-ups. mangling, you could say13:24:17
@sternenseemann:systemli.orgsterni code gen is unironically really nice and it can be down flexibly and simply. In Haskell packgaes it's often not a good option since Cabal doesn't have good support for it (e.g. the preprocessor hack hspec-discover uses is very hacky and breaks recompilation tracking), but GHC already uses autoconf, so you can just pregenerate that with that 13:24:42
@emilazy:matrix.orgemily(does the evil mangler still exist)13:24:52
@mangoiv.:matrix.orgMangoIVthe evil mangler is after code gen though13:25:51
@mangoiv.:matrix.orgMangoIVit mangles assembly13:26:00
@teoc:matrix.orgteo (they/he) I'm quite hopefully about the new Hooks build type. It would be quite nice to use codegen more. Often nicer than TH 13:26:02
@mangoiv.:matrix.orgMangoIVcan it generate scripts for the hooks yet? 13:26:22
@teoc:matrix.orgteo (they/he)cause you get nice introspection for free13:26:25
@sternenseemann:systemli.orgsterniwe'll see how that turns out; when it happened I did not have the energy to look at the proposal at all13:26:44
@mangoiv.:matrix.orgMangoIV afaiu it doesn't seem to fix the problem that external build systems face with Setup.hs, but it may be made to do so. 13:28:10
@mangoiv.:matrix.orgMangoIVThe issue is that you still have to implement the Hooks externally.13:28:19
@mangoiv.:matrix.orgMangoIVso while it narrowed the scope, it didn't entirely fix the issue. 13:28:33
@mangoiv.:matrix.orgMangoIVmy point was that GHC already supports CPP 13:29:06
@mangoiv.:matrix.orgMangoIVit would be quite embarassing though, if GHC would replace generics with CPP 13:29:22
@emilazy:matrix.orgemilybtw 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 :P13:29:27
@emilazy:matrix.orgemily(just going to assume you do 100% of GHC development and can fix everything)13:29:50
@emilazy:matrix.orgemilyI wonder how close to working that PR for it is13:30:35
@emilazy:matrix.orgemily(it would also fix TH right?)13:32:01
@teoc:matrix.orgteo (they/he)Some folks were working on the stage2 cross patch weekend just gone13:32:24
@sternenseemann:systemli.orgsterniI 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

Show newer messages


Back to Room ListRoom Version: 6