Haskell in Nixpkgs/NixOS | 739 Members | |
| For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | 148 Servers |
| Sender | Message | Time |
|---|---|---|
| 15 Sep 2025 | ||
* From my understanding, when we use nixpkgs's haskellPackages, we usually deal with the result of callPackage cabal2nix-lambda rather than cabal2nix-lambda itself? | 03:56:00 | |
this is from hackage-pacakges.nix, and I'm not sure if I have any chance to override | 03:57:11 | |
| So you want to be able to e.g. add extra arguments to the IIRC that's possible with I'm having trouble understanding why overriding the result is insufficient in your case. | 04:02:48 | |
Hmm, I tried such a thing splitmix = super.splitmix.override { testu01 = null; }; but it didn't work. | 04:06:32 | |
| splitmix's definition is like
| 04:07:13 | |
To provide the context, I'm not using the vanilla haskellPackages, but the generated one for my purpose. | 04:08:38 | |
I was trying to handle "error: function 'anonymous lambda' called without required argument 'testu01'" this error message, by passing testu01 = null just like hackage-packages.nix does. | 04:09:24 | |
Of course I can do it with the cabal2nix expression, but I was wondering if I can do the same thing when callPackage is already applied. | 04:10:09 | |
If any approach simliar to splitmix = super.splitmix.override { testu01 = null; } is possible, it would be really helpful. | 04:10:53 | |
| ah maybe I made a stupid mistake | 04:16:01 | |
it seems that the result of callCabal2Nix is not overridable, and I should wrap it manullay to make it overridable. | 04:16:42 | |
Yes, the vanilla pkgs.haskellPackages.* things are overridable and my callCabal2Nix results are not overridable. And I just found that make-package-set applies makeOverridable manullay. | 04:19:02 | |
In reply to @bglgwyng:matrix.orgAt the very least, most of the functions from haskell.lib and haskell.lib.compose should be able to override it (try looking at how they do it?)That is, unless you use things like buildFromSdist which IIRC prevent further overrides because of how they work. | 10:56:42 | |
| Seems like MicroHs is getting more serious about being usable for general purpose stuff, could maybe be interesting to try and add a microhs package set for variety. https://discourse.haskell.org/t/microhs-and-hackage/12916. However, the approach Lennart is taking is a bit questionable. For packages that don't accept MicroHs patches, MicroCabal automatically replaces them with an entirely different package (e.g. random-mhs instead of random). The package descriptions seem to rely on this as well, e.g. you can't build the random-mhs test suite with GHC/Cabal since it declares a dependency on random instead of random-mhs (though maybe that's just a mistake). | 12:23:43 | |
| we talked about this recently and I suggested a package set would be interesting for exploring future GHC bootstrap | 12:26:04 | |