| 24 Apr 2025 |
Peter Dragos | I far as I can tell, the latest version of accelerate on hackage has the same base constraints | 14:43:58 |
Peter Dragos | I'll give this a shot, thanks | 14:44:06 |
maralorn | Why are you mentioning base constraints? They don’t appear in your error message. | 14:44:58 |
maralorn | Huh, I see your point. Last release 5 years ago. Unclear whether you can compile this against a current ghc. | 14:47:56 |
Peter Dragos | Sorry, I originally asked over in the Haskell matrix and then realized it was better off here.
The relevant info is that the version in release-24.11 gives
> Error: Setup: Encountered missing or private dependencies:
> base >=4.12 && <4.15
>
| 14:48:28 |
maralorn | Well then first you try doJailbreak. | 14:49:12 |
maralorn | If it works it’s the easiest solution. But it probably doesn’t … | 14:49:39 |
Peter Dragos | But the repository itself (link] is active. Jailbreaking didn't work, so someone suggested pulling directly from the repo. I got that to build on 24.11 with one other dontCheck on a dependency, but haskell-updates has the issue mentioned above | 14:50:07 |
Peter Dragos | * But the repository itself (link) is active. Jailbreaking didn't work, so someone suggested pulling directly from the repo. I got that to build on 24.11 with one other dontCheck on a dependency, but haskell-updates has the issue mentioned above | 14:50:19 |
maralorn | Huh, then I am confused. | 14:50:50 |
maralorn | Because my explanation should also mean that it doesn’t work on 24.11. Since the derivation clearly hasn’t changed for years. | 14:51:20 |
maralorn | Just to be sure: The error message appears in the build of accelerate and not in one of its dependencies? | 14:52:02 |
maralorn | Huh, you used callCabal2nix or something similar on 24.11, right? Because the accelerate derivation in nixpkgs indeed does not mention mircolens, formatting or double-conversion. | 14:53:35 |
Peter Dragos | I did, yes.
My complete overlay was
hs-overlay = final: prev: {
haskell = prev.haskell // {
packageOverrides = hfinal: hprev:
prev.haskell.packageOverrides hfinal hprev // {
parconc-examples = hfinal.callCabal2nix "parconc-examples" ./. { };
accelerate = hfinal.callCabal2nix "accelerate"
(final.fetchFromGitHub {
owner = "AccelerateHS";
repo = "accelerate";
rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
}
)
{ };
distributed-process-simplelocalnet =
final.haskell.lib.dontCheck hprev.distributed-process-simplelocalnet;
};
};
parconc-examples = final.haskell.lib.compose.justStaticExecutables final.haskellPackages.parconc-examples;
};
| 14:54:53 |
Peter Dragos | and the command I'm using to try the build is √ nixpkgs % nix build .#haskellPackages.accelerate --impure, which gives
> Using Parsec parser
> Configuring accelerate-1.3.0.0...
> CallStack (from HasCallStack):
> withMetadata, called at libraries/Cabal/Cabal/src/Distribution/Simple/Utils.hs:368:14 in Cabal-3.10.3.0-inplace:Distribution.Simple.Utils
> Error: Setup: Encountered missing or private dependencies:
> double-conversion >=2.0, formatting >=7.0, microlens >=0.4
| 14:56:16 |
maralorn | I guess at this point the cleanest solution would be a) get upstream to make a release or b) create a new accelerate-unstable derivation with cabal2nix in nixpkgs and use it to completely replace the existing derivation. cachix does it like that, iirc. | 14:56:47 |
Peter Dragos | which aligns with what you're finding. So i guess I'd need to do a slightly more involved override for the derivation to add those dependencies (and possibly other fix-ups)? | 14:56:58 |
maralorn | But otherwise you can probably get by by just adding the dependencies like I described. | 14:57:12 |
Peter Dragos | great. I'll give it a go, thank you! | 14:58:54 |
Peter Dragos | Worked great! | 15:30:28 |
| scm left the room. | 18:41:45 |
| 25 Apr 2025 |
| relichunter joined the room. | 05:19:55 |
thirdofmay18081814goya | Anyone have thoughts on nixpkgs default haskell infrastructure vs haskell.nix? | 13:51:55 |
thirdofmay18081814goya | Is it usecase dependent or does anyone have a preference | 13:52:08 |
toonn | If you want to upstream things into Nixpkgs, use Nixpkgs infra, otherwise I prefer haskell.nix. | 13:56:28 |
toonn | It is almost just have a Cabal or Stack setup and a tiny Nix wrapper that hardly changes between projects. | 13:57:12 |
Teo (he/him) | haskell.nix has pretty bad performance in my experience | 13:57:36 |
toonn | I use it on a Core2Duo from a decade ago. | 13:58:05 |
toonn | It's heavier than the Nixpkgs infra though, that's certainly true. But that's because it does so much more. | 13:58:46 |
thirdofmay18081814goya | hm I see ty for comments | 15:06:24 |