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 +2/−2
- lib/Hix/Prelude.hs +3/−2
- lib/Hix/Preproc.hs +15/−7
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