Haskell in Nixpkgs/NixOS | 724 Members | |
| For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org | 145 Servers |
| Sender | Message | Time |
|---|---|---|
| 22 Feb 2025 | ||
In reply to @janus.troelsen:matrix.orgAFAIK nobody here wants to maintain ancient GHC builds. | 04:58:32 | |
| Right. and the bootstrapping Community have their own approach with a scheme interpreter , a C subset, TCC , old gcc versions and all that | 04:59:27 | |
| iirc they patch these old gcc versions to keep them compatible with their c compiler... | 05:01:36 | |
| what I am trying to get at is ... if nixpkgs is not optimized for bootstrapping, it might not be the best place to bootstrap | 05:02:20 | |
| that said, in theory there is no reason why it couldn't work | 05:02:36 | |
In reply to @janus.troelsen:matrix.organother example is Linux 6.1 breaking MAP_32BIT mmap. GHC needed a workaround to avoid this bug in the data structure Linux started using for paging . it was broken in like a dozen 6.1 releases | 05:06:51 | |
| we do have minimal bootstrap packaged | 05:07:03 | |
| it is not yet wired up | 05:07:07 | |
| there is certainly interest in it for the bootstrap binaries | 05:07:21 | |
| (for stdenv) | 05:07:26 | |
| anyway I thought the issue was simply that bootstrapping GHC from modern bindista was weird or something. | 05:07:53 | |
| seems like there are still issues with musl and such... I am just following from the sidelines , don't really know. I have an excessively retro approach to this compared to everyone else , it seems | 05:10:32 | |
| Joachim breitner also attempted something at munihac, where he wanted to concatenate all GHC modules into a giant file to avoid worrying about recursive module dependencies | 05:11:20 | |
| not sure if microhs supports recursive modules yet. I don't think it has Interface files, but otoh it seems like you don't have a traditional linking step either | 05:13:05 | |
In reply to @emilazy:matrix.orghow far back does it go? | 05:32:52 | |
In reply to @janus.troelsen:matrix.orgI saw a hs-boot file while patching the base library so maybe? I'll need to check. | 05:52:29 | |
In reply to @emilazy:matrix.orgas far as I understand, going from GHC to GHC is considered easy? if the minimal bootstrap you refer to is microhs, surely the biggest issue is doing the jump from microhs to GHC , and specifically choosing a suitable version of GHC. | 05:59:03 | |
In reply to @alex:tunstall.xyzi do think I saw something about this recently in the microhs release logs . so yeah, it's probably supported now , which is great | 06:00:37 | |
| readme says "Mutually recursive modules are allowed the same way as with GHC, using .hs-boot files." | 06:03:44 | |
In reply to @janus.troelsen:matrix.org Yes, that's what I foresee being the most difficult. Planned approaches, from most desirable to least:
| 06:23:37 | |
In reply to @janus.troelsen:matrix.orgthe minimal bootstrap is the elaborate C/Mes/etc. stuff, I wasn't talking about Haskell | 14:39:17 | |
| I was just saying there has been work on that for Nixpkgs | 14:39:27 | |
| anyway, it was something about Hadrian issues with new GHCs making us use an old GHC for bootstrap, but I wasn't clear on the details | 14:40:07 | |
In reply to @emilazy:matrix.org(the "256 bytes + Linux kernel + build orchestrator" thing a la Guix) | 14:41:20 | |
| Thanks, worked like a charm | 18:52:11 | |
| I was handed a list of dozens of packages that don't need dontCheck anymore | 18:52:37 | |
| I don't see how to use the same approach for doJailbreak though Turns out this works for doCheck because that's a property of stdenv.mkDerivation however doJailbreak triggers splicing in postPatch so it's not directly inspectable from the outside | 18:55:51 | |
| also much less likely to vary between ghc versions than test suite failures | 18:58:04 | |
| * also much more likely to vary between ghc versions than test suite failures | 18:58:10 | |
| Here's an idea: override Haskell's Otherwise, there's also this ugly hack. | 20:10:47 | |