!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

718 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.org143 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
23 Sep 2025
@sternenseemann:systemli.orgsterni (he/him) teo (they/he): (ghc.withPackages.override { useLLVM = true; }) (p: [ … ]) it's even documented :-) 13:26:01
@sternenseemann:systemli.orgsterni (he/him) though you still have to pass -fllvm that's a misleading name (thanks to me) 13:26:23
@teoc:matrix.orgTeo (he/him)Nice thanks! Yeah it's a bit silly. Hopefully we will have better ways to specify these things soon.13:36:24
@teoc:matrix.orgTeo (he/him)* Nice thanks! Yeah it's a bit silly. Hopefully we will have better ways to specify these things soon (through like the toolchain specification or something).13:37:07
@alex:tunstall.xyzAlex
In reply to @teoc:matrix.org
Nice thanks! Yeah it's a bit silly. Hopefully we will have better ways to specify these things soon.
The replaceStdenv stuff already exists, but it won't save you from rebuilding GHC.
19:02:13
@alist:matrix.orgyliceee changed their display name from λlice to yliceee.20:01:46
@alist:matrix.orgyliceee changed their profile picture.20:02:26
@alist:matrix.orgyliceee changed their profile picture.20:04:24
24 Sep 2025
@ashinnv:matrix.orgMagnolia Mayhem changed their profile picture.14:46:16
@ashinnv:matrix.orgMagnolia Mayhem changed their profile picture.19:45:13
25 Sep 2025
@bglgwyng:matrix.orgbglgwyng If a package is not affected by foo-package.override { random = ... }, which means random is not overridden but remains as the one in haskellPackages, what are some things I can try to investigate further 08:53:03
@bglgwyng:matrix.orgbglgwyng The package overrides other than random works well 08:53:22
@bglgwyng:matrix.orgbglgwyng * If a package is not affected by foo-package.override { random = ... }, which means random is not overridden but remains as the one in haskellPackages, what are some things I can try to investigate further? 09:00:44
@maralorn:maralorn.demaralornI can’t think of anything straightforward. Best ideas is a) there is a second override which negates your first override b) you are mistakingly not actually passing a different random. I can think of wilder theories, but they will be even more likely to be wrong.09:30:59
@bglgwyng:matrix.orgbglgwyng

I tried overriding it at the last place like,

{ packages.hip = config.cabal-projects.default.packages.hip.override { random = config.cabal-projects.default.packages.random; }; }

but still same

09:32:13
@sternenseemann:systemli.orgsterni (he/him) bglgwyng: Haskell dependencies need to be propagated, so any given package sees its transitive Haskell dependency closure. random is pretty common, so probably somewhere the non overridden random is visible. Cabal is free to pick any version within bounds. 10:58:17
@sternenseemann:systemli.orgsterni (he/him) hip doesn't have bounds on random at all, so maybe it picks another version? You can force it a specific version via the --constraint configure flag, but you'll likely run into trouble with this since Haskell isn't designed for multiple versions of the same package being linked into the same end product. 10:59:55
@sternenseemann:systemli.orgsterni (he/him) The only robust way of overridding a package that occurs multiple times in the dependency closure of a give package is to use overrideScope and recompiling (a large portion of) the dependency closure. 11:00:42
@sternenseemann:systemli.orgsterni (he/him)or do you mean something else by "not affected by"?11:01:07
@bglgwyng:matrix.orgbglgwyngNo. your understanding is correct11:02:43
@bglgwyng:matrix.orgbglgwyng I should check for it now, but I'm so sure that I override every package depends on random with the same version of random 11:03:14
@bglgwyng:matrix.orgbglgwyng So transitively depended random should be the same 11:03:37
@bglgwyng:matrix.orgbglgwyngEven if I did so, does the problem you describe can occur for some reasons?11:04:05
@bglgwyng:matrix.orgbglgwyng
Warning:
    This package indirectly depends on multiple versions of the same package. This is very likely to cause a compile failure.
      package hip (hip-1.5.6.0) requires random-1.2.1.3-37JdwX1MChN5J4YOL6CRA5
      package temporary (temporary-1.3-D9AnthCRrFGJbyvBi0CXlS) requires random-1.2.1.3-wWDAMRL8k9YVWnjsPAPC
      package linear (linear-1.23.2-3JDfk2hoPGIIa6oUPVB0FE) requires random-1.2.1.3-wWDAMRL8k9YVWnjsPAPC
      package QuickCheck (QuickCheck-2.15.0.1-LDCjebZP9NmJJekAZt2vVq) requires random-1.2.1.3-wWDAMRL8k9YVWnjsPAPC
      package random (random-1.2.1.3-37JdwX1MChN5J4YOL6CRA5) requires splitmix-0.1.1-JnFxtR8Qwyw2CyoVPkB8hj
      package random (random-1.2.1.3-wWDAMRL8k9YVWnjsPAPC) requires splitmix-0.1.3.1-1AXCbj2oPlfCvSRlfGtm8v
      package QuickCheck (QuickCheck-2.15.0.1-LDCjebZP9NmJJekAZt2vVq) requires splitmix-0.1.3.1-1AXCbj2oPlfCvSRlfGtm8v

I got this message, and I override random for every package depending on it

11:11:43
@bglgwyng:matrix.orgbglgwyng Hmm... I'm reading generic-builder.nix and found ${setupCommand} register --gen-pkg-config=$packageConfFile this code 11:27:10
@bglgwyng:matrix.orgbglgwyngMaybe generic-builder doesn't explicitly passing overrided packages, but just putting them in package-db and letting cabal resolve it?11:27:36
@toonn:matrix.orgtoonn The different hashes do seem to indicate that they're different instances of the package, no? 11:37:01

Show newer messages


Back to Room ListRoom Version: 6