@@ -36,12 +36,26 @@ data StackPackagesConfig = StackPackagesConfig
3636
3737makeLenses ''StackPackagesConfig
3838
39+-- TODO: cabal2nix versions [2.6.0, 2.7.1, 2.7.2] cause #45 memory usage regression
40+-- Possible fix would be to load 'Distribution.Nixpkgs.Haskell.Hackage.HackageDB'
41+-- beforehand and pass it as an argument
3942getStackPackageFromDb
4043 :: Maybe HackageDb
4144 -> StackPackage
4245 -> IO Package
43−getStackPackageFromDb optHackageDb stackPackage =
44−#if MIN_VERSION_cabal2nix(2,6,0)
46+getStackPackageFromDb optHackageDb stackPackage = do
47+#if MIN_VERSION_cabal2nix(2,7,2)
48+ PackageSourceSpec.getPackage'
49+ False
50+ (PackageSourceSpec.loadHackageDB (unHackageDb <$> optHackageDb) Nothing)
51+ (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir))
52+#elif MIN_VERSION_cabal2nix(2,7,1)
53+ hackageDb <- PackageSourceSpec.loadHackageDB (unHackageDb <$> optHackageDb) Nothing
54+ PackageSourceSpec.getPackage'
55+ False
56+ hackageDb
57+ (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir))
58+#elif MIN_VERSION_cabal2nix(2,6,0)
4559 PackageSourceSpec.getPackage
4660 False
4761 (unHackageDb <$> optHackageDb)