@@ -18,6 +18,7 @@ import System.Info (os, arch)
18import Data.Text (Text, unpack)
18import Data.Text (Text, unpack)
19import Data.Maybe
19import Data.Maybe
20import GHC.Paths (libdir)
20import GHC.Paths (libdir)
21+import System.Environment
21#if __GLASGOW_HASKELL__ >= 800
22#if __GLASGOW_HASKELL__ >= 800
22import GHC.LanguageExtensions
23import GHC.LanguageExtensions
23import GHCi.ObjLink
24import GHCi.ObjLink
@@ -78,6 +79,8 @@ initScriptSession ghcPkgPaths = do
78 handleGhcException excHandler $ runGhc (Just libdir) $ do
79 handleGhcException excHandler $ runGhc (Just libdir) $ do
79 dflags <- getSessionDynFlags
80 dflags <- getSessionDynFlags
80 let ghcVersion = projectVersion dflags
81 let ghcVersion = projectVersion dflags
82+ -- get nix packages dir, if available
83+ mNixLibDir <- liftIO $ lookupEnv "NIX_GHC_LIBDIR"
82 sandboxPkgPaths <- liftIO $ concat <$> mapM glob [
85 sandboxPkgPaths <- liftIO $ concat <$> mapM glob [
83 --"./dist-newstyle/packagedb/ghc-" ++ ghcVersion, --rely on cabal 3's ghc.environment install: "cabal install --lib project-m36"
86 --"./dist-newstyle/packagedb/ghc-" ++ ghcVersion, --rely on cabal 3's ghc.environment install: "cabal install --lib project-m36"
@@ -89,7 +92,7 @@ initScriptSession ghcPkgPaths = do
89 --homeDir </> ".cabal/store/ghc-" ++ ghcVersion ++ "/package.db"
92 --homeDir </> ".cabal/store/ghc-" ++ ghcVersion ++ "/package.db"
92− let localPkgPaths = map PkgConfFile (ghcPkgPaths ++ sandboxPkgPaths)
95+ let localPkgPaths = map PkgConfFile (ghcPkgPaths ++ sandboxPkgPaths ++ maybeToList mNixLibDir)
94 let dflags' = applyGopts . applyXopts $ dflags { hscTarget = HscInterpreted ,
97 let dflags' = applyGopts . applyXopts $ dflags { hscTarget = HscInterpreted ,
95 ghcLink = LinkInMemory,
98 ghcLink = LinkInMemory,