packages feed

hix 0.5.3 → 0.5.6

raw patch · 3 files changed

+20/−11 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Hix.Prelude: [$sel:local:Prelude] :: Prelude -> Bool
- Hix.Prelude: Prelude :: String -> String -> Prelude
+ Hix.Prelude: Prelude :: String -> String -> Bool -> Prelude
- Hix.Preproc: fromPreludeConfig :: PreludeConfig -> Prelude
+ Hix.Preproc: fromPreludeConfig :: PreprocConfig -> PreludeConfig -> Prelude

Files

hix.cabal view
@@ -1,11 +1,11 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.35.0.+-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack  name:           hix-version:        0.5.3+version:        0.5.6 synopsis:       Haskell/Nix development build tools description:    See https://hackage.haskell.org/package/hix/docs/Hix.html category:       Build
lib/Hix/Prelude.hs view
@@ -12,7 +12,8 @@ data Prelude =   Prelude {     preludePackage :: String,-    preludeModule :: String+    preludeModule :: String,+    local :: Bool   }   deriving stock (Eq, Show) @@ -35,5 +36,5 @@       let         preludePackage = unPackageName mixinPackageName         preludeModule = Exon.intercalate "." (ModuleName.components real)-      in Just Prelude {..}+      in Just Prelude {local = False, ..}     _ -> Nothing
lib/Hix/Preproc.hs view
@@ -34,14 +34,17 @@ import Hix.Optparse (JsonConfig) import qualified Hix.Prelude as Prelude import Hix.Prelude (Prelude (Prelude), findPrelude)+import qualified Data.Map.Strict as Map  type Regex = IndexedTraversal' Int ByteString Match -fromPreludeConfig :: PreludeConfig -> Prelude-fromPreludeConfig conf =-  Prelude (toString (name conf.package)) (toString conf.module_.unModuleName)+-- TODO do we need to parse the spec here?+fromPreludeConfig :: PreprocConfig -> PreludeConfig -> Prelude+fromPreludeConfig ppconf conf =+  Prelude (toString name) (toString conf.module_.unModuleName) local   where-    name = \case+    local = Map.member (coerce name) ppconf.packages+    name = case conf.package of       PreludePackageName n -> n       PreludePackageSpec n -> n @@ -211,9 +214,11 @@     Nothing   where     insertPrelude =-      (ix 0 .~ [exon|"#{encodeUtf8 preludePackage}" |])+      addPackage       .       (ix 1 .~ encodeUtf8 preludeModule)+    addPackage | local = id+               | otherwise = ix 0 .~ [exon|"#{encodeUtf8 preludePackage}" |]  parenRegex :: Regex parenRegex =@@ -348,7 +353,10 @@  customPreludeImport :: Prelude -> Builder customPreludeImport Prelude {..} =-  lineB [exon|import "#{stringUtf8 preludePackage}" #{stringUtf8 preludeModule} as Prelude|]+  lineB [exon|import#{package} #{stringUtf8 preludeModule} as Prelude|]+  where+    package | local = ""+            | otherwise = [exon| "#{stringUtf8 preludePackage}"|]  needPreludeExtensions :: PreludeAction -> Bool needPreludeExtensions = \case@@ -457,7 +465,7 @@   pure CabalConfig {     extensions = stringUtf8 <$> target.component.language : target.component.extensions,     ghcOptions = stringUtf8 <$> target.component.ghcOptions,-    prelude = fromPreludeConfig <$> target.component.prelude+    prelude = fromPreludeConfig conf <$> target.component.prelude     }  fromCabal :: BuildInfo -> CabalConfig