!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

678 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 infrastructure135 Servers

Load older messages


SenderMessageTime
15 Sep 2025
@mangoiv.:matrix.orgMangoIVthat seems absurd to me 13:36:23
@emilazy:matrix.orgemilyimplicit parameters don't screw with the semantics of normal type classes13:37:03
@mangoiv.:matrix.orgMangoIVyeah but they're special cased in all kinds of ways 13:37:24
@emilazy:matrix.orgemilyis there an obstacle to still using Hadrian to build one stage but then layering those with Nix?13:37:39
@emilazy:matrix.orgemilyif that could solve cross then it feels like an easier intermediate step13:37:51
@mangoiv.:matrix.orgMangoIV you can just --freeze-stagen 13:38:18
@sternenseemann:systemli.orgsterni more packages are just normal cabal packages in tree now, something that John Ericson has worked on. There is an effort to utilize this for building GHC https://github.com/stable-haskell/ghc/pull/89, though they are using cabal.project files instead of Nix which apparently also causes its own issues. 13:38:34
@emilazy:matrix.orgemilywell I'm guessing it's tricky in some way or it'd have already been done13:38:40
@teoc:matrix.orgteo (they/he) I don't think so! I think that would be a great way to get started. Build stage1 with Hadrian and then let nix build stage2. Or even easier, build stage2 with hadrian and then build a stage3 with nix 13:38:43
@mangoiv.:matrix.orgMangoIVwhat's the point of building GHC with cabal, btw? there are some people that want that 13:39:03
@emilazy:matrix.orgemilyI was thinking build stage2 and stage3 with Hadrian but just, separately13:39:13
@teoc:matrix.orgteo (they/he)There is a CI test that builds a stage3 GHC with cabal-install but it has been broken for silly reasons for ages on the GHC gitlab13:39:28
@emilazy:matrix.orgemilybut I'm guessing it's not wired up for this13:39:29
@teoc:matrix.orgteo (they/he) yeah that would also be good 13:39:42
@emilazy:matrix.orgemilyer sorry I meant stage1 and stage213:39:45
@emilazy:matrix.orgemilythe question is whether that would work for a cross-compiled GHC13:40:05
@emilazy:matrix.orgemily(again as distinct from a cross-compiling GHC)13:40:16
@teoc:matrix.orgteo (they/he) I think the main advantages to Hadrian are to do with devex like nice recomp support, etc. And when you are a distributor all you are left with is complexity and cost 13:40:40
@alex:tunstall.xyzAlex
In reply to @emilazy:matrix.org
we talked about this recently and I suggested a package set would be interesting for exploring future GHC bootstrap

How should I structure this btw?

Should Nixpkgs expose:

  • Any Hugs-interpreted boot tools (probably not, likely fragile)?
  • Stage 1 compiler built via Hugs (should be as good as a stage 2)?
13:40:43
@emilazy:matrix.orgemilyI didn't realize it was that close to "just" being cabal-installable13:40:46
@emilazy:matrix.orgemilyI assumed you'd need a lot more glue. cool13:40:52
@mangoiv.:matrix.orgMangoIVbut it would for sure require support of cabal upstream, right? I don't think that that's a good idea at all tbh. 13:41:25
@teoc:matrix.orgteo (they/he) This didn't actually achieve it but we had this MR ages ago: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5965 13:42:24
@emilazy:matrix.orgemily I would personally only expose a fully bootstrapped one as first-class but it's not my decision to make. probably having a withHugsBootstrap param on the MicroHs derivation and microhs takes microhs as a build input that you override to have withHugsBootstrap or something 13:42:33
@mangoiv.:matrix.orgMangoIVAlso why does hadrian not support proper incremental build support? 13:42:37
@emilazy:matrix.orgemilyI mean whatever makes the Nix simplest really13:42:41
@mangoiv.:matrix.orgMangoIVshake does that out of the box? 13:42:43
@emilazy:matrix.orgemilybut even for bootstrapping GHC I think you'd want the full MicroHs13:42:54
@sternenseemann:systemli.orgsterniI guess nothing inherently, it's just that it's an incomplete reimplementation of the old make build system with some arbitrary improvements. It regressed a bunch of stuff that hasn't been fixed to this day. I find it much more unwieldy to work with and understand because it uses kind of fuzzy abstractions and it is hard to inspect what it decides to do internally and even harder to override certain aspects of its behavior. Also there are questionable design decisions like always building an bindist instead of installing directly (this sounds good in theory, but is not really a good idea).13:43:00
@emilazy:matrix.orgemilybecause like, why not be uniform13:43:03

Show newer messages


Back to Room ListRoom Version: 6