Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tchoutri/horizon-platform
  • jonge/horizon-platform
  • raoulhc/horizon-platform
  • package-sets/horizon-platform
Show changes
Commits on Source (26)
Showing
with 1072 additions and 2454 deletions
stages:
- build
- devour
- generate
- packages
- cache
x86_64-linux:devour:
stage: devour
script:
- nix build github:srid/devour-flake#packages.x86_64-linux.default -L --no-link --print-out-paths --override-input flake . --keep-going
aarch64-darwin:devour:
stage: devour
script:
- nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . --keep-going
aarch64-linux:devour:
- cachix
build:
stage: build
script:
- nix build .#packages.$SYSTEM.$PACKAGE -L
parallel:
matrix:
- SYSTEM:
- aarch64-darwin
- x86_64-linux
PACKAGE:
- aeson
- beam-postgres
- composite-base
- dhall
- hedgehog
- hoauth2-providers
- log-effectful
- persistent-postgresql
- polysemy
- servant
- souffle-haskell
- sydtest
- tasty
- wai-app-static
- warp
- SYSTEM:
- x86_64-linux
PACKAGE:
- streamly
devour:
stage: devour
script:
- nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . --keep-going
x86_64-linux:generate:
stage: generate
needs: ["x86_64-linux:devour"]
script:
- nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" > flake-ci.yml
when: on_failure
artifacts:
paths:
- flake-ci.yml
x86_64-linux:packages:
stage: packages
needs: ["x86_64-linux:devour", "x86_64-linux:generate"]
when: on_failure
trigger:
include:
- artifact: flake-ci.yml
job: x86_64-linux:generate
strategy: depend
aarch64-darwin:generate:
stage: generate
needs: ["aarch64-darwin:devour"]
script:
- nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" -- aarch64-darwin > flake-ci.yml
when: on_failure
artifacts:
paths:
- flake-ci.yml
aarch64-darwin:packages:
stage: packages
needs: ["aarch64-darwin:devour", "aarch64-darwin:generate"]
when: on_failure
trigger:
include:
- artifact: flake-ci.yml
job: aarch64-darwin:generate
strategy: depend
aarch64-linux:generate:
stage: generate
needs: ["aarch64-linux:devour"]
script:
- nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" -- aarch64-linux > flake-ci.yml
when: on_failure
artifacts:
paths:
- flake-ci.yml
aarch64-linux:packages:
stage: packages
needs: ["aarch64-linux:devour", "aarch64-linux:generate"]
when: on_failure
trigger:
include:
- artifact: flake-ci.yml
job: aarch64-linux:generate
strategy: depend
x86_64-linux:cachix:
stage: cache
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true"
script:
- nix-shell -p cachix --command "nix build github:srid/devour-flake -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
aarch64-darwin:cachix:
stage: cache
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true"
script:
- nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
- nix build github:srid/devour-flake#packages.$SYSTEM.default -L --no-link --print-out-paths --override-input flake . --keep-going
parallel:
matrix:
- SYSTEM:
- aarch64-darwin
- x86_64-linux
aarch64-linux:cachix:
stage: cache
cachix:
stage: cachix
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true"
script:
- nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
- nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.$SYSTEM.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
parallel:
matrix:
- SYSTEM:
- aarch64-darwin
- x86_64-linux
......@@ -2,40 +2,48 @@
[horizon-haskell.net](https://horizon-haskell.net).
Horizon is a haskell package set targetting new builds of GHC.
## Package Set Policy
This package set has the following policy.
* GHC will advance as often as possible
* Nonversioned locations (git, unversioned tarballs) are permitted to allow
GHC to advance.
* The following packages must always build:
* aeson
* beam-postgres
* composite-base
* dhall
* hedgehog
* pandoc
* persistent-postgresql
* polysemy
* servant
* sydtest
* tasty
* wai-app-static
* warp
horizon-platform is a haskell package set targetting new builds of GHC. This package set extends [horizon-platform](https://gitlab.horizon-haskell.net/package-sets/horizon-platform).
The following things are expected to be here:
* aeson
* beam-postgres
* composite-base
* dhall
* hedgehog
* hoauth2-providers
* log-effectful
* persistent-postgresql
* polysemy
* servant
* souffle-haskell
* streamly
* sydtest
* tasty
* wai-app-static
* warp
## Updating the Package Set
Generating the nix expressions for the package set is a two step process.
1. Edit the `horizon.dhall` file.
2. Generate the nix expressions with `nix run develop/#horizon-gen-nix`.
2. Generate the nix expressions with
```
nix run develop/#horizon-gen-nix -- -jN
```
You can edit the `horizon.dhall` file in one of two ways: manually using a text
editor, or programatically using `horizon-shell`.
If you want to bumping everything listed in the `horizon.dhall` file to the latest
bounds, run
```
nix run develop/#try-to-upgrade-everything
```
### Using horizon-shell.
To use `horizon-shell`.
......@@ -59,9 +67,6 @@ If you need to do additional manual overrides to the nix code, such as
`addPkgconfigDepends`, edit the `configuration/common.nix` overlay, which is
applied over the generated derivations.
If you need to nullify libraries, use the `configuration/hacking.nix` overlay.
Try to leave a note as to why this library has been nullified.
## Feedback
To build all packages, run
......@@ -72,8 +77,8 @@ nix run develop/#feedback -- build
## Hoogle
To run a hoogle server containing the entire package set. Do
To get a hoogle instance for the entire package set, you can run:
```
nix run .#run-hoogle
nix run .#apps.x86_64-linux.run-hoogle
```
......@@ -6,96 +6,14 @@ final: prev: {
cheapskate = null;
digits = overrideCabal
prev.digits
(_:
{
patches = [
./patches/digits-01.patch
];
});
hasql-explain-tests = null;
hasql-th = overrideCabal
prev.hasql-th
(_:
{
patches = [
./patches/hasql-th-01.patch
];
});
hasql-transaction = overrideCabal
prev.hasql-transaction
(_:
{
patches = [
./patches/hasql-transaction-01.patch
./patches/hasql-transaction-02.patch
];
});
headed-megaparsec = overrideCabal
prev.headed-megaparsec
(_:
{
patches = [
./patches/headed-megaparsec-01.patch
];
});
html-entities = overrideCabal
prev.html-entities
(_:
{
patches = [
./patches/html-entities-01.patch
];
});
linear-generics = overrideCabal
prev.linear-generics
(_:
{
patches = [
./patches/linear-generics-01.patch
./patches/linear-generics-02.patch
];
});
llvm-hs-pure = overrideCabal
prev.llvm-hs-pure
(_:
{
patches = [
./patches/llvm-hs-pure-01.patch
];
});
llvm-hs = addPkgconfigDepend prev.llvm-hs pkgs.llvm_15;
postgresql-syntax = overrideCabal
prev.postgresql-syntax
(_:
{
patches = [
./patches/postgresql-syntax-01.patch
];
});
pandoc = null;
sandwich = null;
text-icu = prev.callPackage ../pkgs/text-icu.nix { icu-i18n = pkgs.icu; };
xml-conduit-writer = overrideCabal
prev.xml-conduit-writer
(_:
{
patches = [
./patches/xml-conduit-writer-01.patch
];
});
X11-xft = addPkgconfigDepends prev.X11-xft [ pkgs.expat pkgs.xorg.libXau pkgs.xorg.libXdmcp ];
}
commit 1217673c07de672edee01d1befb7243ec2de6ca6
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sat Nov 4 10:32:11 2023 +0000
fix build
diff --git a/Setup.lhs b/Setup.lhs
index 384dfce..76660fd 100644
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -2,6 +2,5 @@
> import Distribution.Simple
> import System.Cmd
-> tests _ _ _ _ = system "runhaskell src/Tests.hs" >> return ()
-> main = defaultMainWithHooks (simpleUserHooks {runTests = tests})
+> main = defaultMainWithHooks simpleUserHooks
commit e724581275f1dd3a673ccbff1b32f458b5b4589f
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun Dec 3 09:31:56 2023 +0000
hide unzip
diff --git a/library/Hasql/TH/Prelude.hs b/library/Hasql/TH/Prelude.hs
index 60d73db..d01d39e 100644
--- a/library/Hasql/TH/Prelude.hs
+++ b/library/Hasql/TH/Prelude.hs
@@ -29,7 +29,7 @@ import Data.Either as Exports
import Data.Fixed as Exports
import Data.Foldable as Exports
import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
import Data.Functor.Contravariant as Exports
import Data.Functor.Contravariant.Divisible as Exports
import Data.Functor.Identity as Exports
commit d4bcbb5bdb361b828717962bab085f95b5feb60d
Author: Nikita Volkov <nikita.y.volkov@mail.ru>
Date: Wed Nov 23 20:22:52 2022 +0300
Format and isolate config
diff --git a/conflicts-test/Main.hs b/conflicts-test/Main.hs
index 4ac6101..b12fbb6 100644
--- a/conflicts-test/Main.hs
+++ b/conflicts-test/Main.hs
@@ -1,14 +1,13 @@
module Main where
-import Prelude
+import qualified Control.Concurrent.Async as F
import qualified Hasql.Connection as A
import qualified Hasql.Session as B
import qualified Hasql.Transaction as C
import qualified Hasql.Transaction.Sessions as G
import qualified Main.Statements as D
import qualified Main.Transactions as E
-import qualified Control.Concurrent.Async as F
-
+import Prelude
main =
bracket acquire release use
@@ -18,8 +17,8 @@ main =
where
acquire =
join $
- fmap (either (fail . show) return) $
- A.acquire connectionSettings
+ fmap (either (fail . show) return) $
+ A.acquire connectionSettings
where
connectionSettings =
A.settings "localhost" 5432 "postgres" "" "postgres"
@@ -42,15 +41,13 @@ main =
tests =
[readAndWriteTransactionsTest, transactionsTest, transactionAndQueryTest]
-
session connection session =
- B.run session connection >>=
- either (fail . show) return
+ B.run session connection
+ >>= either (fail . show) return
transaction connection transaction =
session connection (G.transaction G.RepeatableRead G.Write transaction)
-
type Test =
A.Connection -> A.Connection -> IO Bool
diff --git a/conflicts-test/Main/Statements.hs b/conflicts-test/Main/Statements.hs
index 406675c..d7c0b6f 100644
--- a/conflicts-test/Main/Statements.hs
+++ b/conflicts-test/Main/Statements.hs
@@ -1,11 +1,10 @@
module Main.Statements where
-import Prelude
import Contravariant.Extras
-import Hasql.Statement
-import qualified Hasql.Encoders as E
import qualified Hasql.Decoders as D
-
+import qualified Hasql.Encoders as E
+import Hasql.Statement
+import Prelude
createAccountTable :: Statement () ()
createAccountTable =
@@ -45,4 +44,3 @@ getBalance =
((E.param . E.nonNullable) E.int8)
(D.rowMaybe ((D.column . D.nonNullable) D.numeric))
True
-
diff --git a/conflicts-test/Main/Transactions.hs b/conflicts-test/Main/Transactions.hs
index b58ada3..8e0001c 100644
--- a/conflicts-test/Main/Transactions.hs
+++ b/conflicts-test/Main/Transactions.hs
@@ -1,9 +1,8 @@
module Main.Transactions where
-import Prelude
import Hasql.Transaction
import qualified Main.Statements as A
-
+import Prelude
createSchema :: Transaction ()
createSchema =
@@ -20,10 +19,8 @@ transfer id1 id2 amount =
do
success <- statement (id1, amount) A.modifyBalance
if success
- then
- statement (id2, negate amount) A.modifyBalance
- else
- return False
+ then statement (id2, negate amount) A.modifyBalance
+ else return False
transferTimes :: Int -> Int64 -> Int64 -> Scientific -> Transaction ()
transferTimes times id1 id2 amount =
diff --git a/hasql-transaction.cabal b/hasql-transaction.cabal
index 92bd97b..8d4fc1c 100644
--- a/hasql-transaction.cabal
+++ b/hasql-transaction.cabal
@@ -24,8 +24,8 @@ library
Hasql.Transaction
Hasql.Transaction.Sessions
other-modules:
+ Hasql.Transaction.Config
Hasql.Transaction.Private.Prelude
- Hasql.Transaction.Private.Model
Hasql.Transaction.Private.SQL
Hasql.Transaction.Private.Statements
Hasql.Transaction.Private.Sessions
diff --git a/library/Hasql/Transaction.hs b/library/Hasql/Transaction.hs
index ad5d4e4..b6bc424 100644
--- a/library/Hasql/Transaction.hs
+++ b/library/Hasql/Transaction.hs
@@ -1,14 +1,13 @@
-- |
-- An API for declaration of transactions.
module Hasql.Transaction
-(
- -- * Transaction monad
- Transaction,
- condemn,
- sql,
- statement,
-)
+ ( -- * Transaction monad
+ Transaction,
+ condemn,
+ sql,
+ statement,
+ )
where
+import Hasql.Transaction.Config
import Hasql.Transaction.Private.Transaction
-import Hasql.Transaction.Private.Model
diff --git a/library/Hasql/Transaction/Private/Model.hs b/library/Hasql/Transaction/Config.hs
similarity index 52%
rename from library/Hasql/Transaction/Private/Model.hs
rename to library/Hasql/Transaction/Config.hs
index 484ea20..fac010e 100644
--- a/library/Hasql/Transaction/Private/Model.hs
+++ b/library/Hasql/Transaction/Config.hs
@@ -1,25 +1,21 @@
-module Hasql.Transaction.Private.Model
-where
+module Hasql.Transaction.Config where
import Hasql.Transaction.Private.Prelude
--- |
---
-data Mode =
- -- |
- -- Read-only. No writes possible.
- Read |
- -- |
- -- Write and commit.
- Write
+data Mode
+ = -- |
+ -- Read-only. No writes possible.
+ Read
+ | -- |
+ -- Write and commit.
+ Write
deriving (Show, Eq, Ord, Enum, Bounded)
-- |
-- For reference see
-- <http://www.postgresql.org/docs/current/static/transaction-iso.html the Postgres' documentation>.
---
-data IsolationLevel =
- ReadCommitted |
- RepeatableRead |
- Serializable
+data IsolationLevel
+ = ReadCommitted
+ | RepeatableRead
+ | Serializable
deriving (Show, Eq, Ord, Enum, Bounded)
diff --git a/library/Hasql/Transaction/Private/Prelude.hs b/library/Hasql/Transaction/Private/Prelude.hs
index 9c54666..79bf394 100644
--- a/library/Hasql/Transaction/Private/Prelude.hs
+++ b/library/Hasql/Transaction/Private/Prelude.hs
@@ -1,25 +1,28 @@
module Hasql.Transaction.Private.Prelude
-(
- module Exports,
- tryError,
-)
+ ( module Exports,
+ tryError,
+ )
where
-
--- base
--------------------------
+import Contravariant.Extras as Exports
import Control.Applicative as Exports
import Control.Arrow as Exports
import Control.Category as Exports
import Control.Concurrent as Exports
import Control.Exception as Exports
-import Control.Monad as Exports hiding (join, fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)
-import Control.Monad.IO.Class as Exports
+import Control.Monad as Exports hiding (fail, forM, forM_, join, mapM, mapM_, msum, sequence, sequence_)
+import Control.Monad.Error.Class as Exports (MonadError (..))
import Control.Monad.Fail as Exports
import Control.Monad.Fix as Exports hiding (fix)
+import Control.Monad.IO.Class as Exports
import Control.Monad.ST as Exports
+import Control.Monad.Trans.Class as Exports
+import Control.Monad.Trans.Maybe as Exports hiding (liftListen, liftPass)
+import Control.Monad.Trans.Reader as Exports hiding (liftCallCC, liftCatch)
+import Control.Monad.Trans.State.Strict as Exports hiding (liftCallCC, liftCatch, liftListen, liftPass)
import Data.Bits as Exports
import Data.Bool as Exports
+import Data.ByteString as Exports (ByteString)
import Data.Char as Exports
import Data.Coerce as Exports
import Data.Complex as Exports
@@ -30,18 +33,20 @@ import Data.Fixed as Exports
import Data.Foldable as Exports hiding (toList)
import Data.Function as Exports hiding (id, (.))
import Data.Functor as Exports
+import Data.Functor.Contravariant as Exports
+import Data.Functor.Contravariant.Divisible as Exports
import Data.Functor.Identity as Exports
-import Data.Int as Exports
import Data.IORef as Exports
+import Data.Int as Exports
import Data.Ix as Exports
-import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')
+import Data.List as Exports hiding (all, and, any, concat, concatMap, elem, find, foldl, foldl', foldl1, foldr, foldr1, isSubsequenceOf, mapAccumL, mapAccumR, maximum, maximumBy, minimum, minimumBy, notElem, or, product, sortOn, sum, uncons)
import Data.Maybe as Exports
-import Data.Monoid as Exports hiding (Last(..), First(..), (<>), Alt)
+import Data.Monoid as Exports hiding (Alt, First (..), Last (..), (<>))
import Data.Ord as Exports
import Data.Proxy as Exports
import Data.Ratio as Exports
-import Data.Semigroup as Exports
import Data.STRef as Exports
+import Data.Semigroup as Exports
import Data.String as Exports
import Data.Traversable as Exports
import Data.Tuple as Exports
@@ -52,13 +57,12 @@ import Debug.Trace as Exports
import Foreign.ForeignPtr as Exports
import Foreign.Ptr as Exports
import Foreign.StablePtr as Exports
-import Foreign.Storable as Exports hiding (sizeOf, alignment)
-import GHC.Conc as Exports hiding (withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
-import GHC.Exts as Exports (lazy, inline, sortWith, groupWith, IsList(..))
+import Foreign.Storable as Exports hiding (alignment, sizeOf)
+import GHC.Conc as Exports hiding (threadWaitRead, threadWaitReadSTM, threadWaitWrite, threadWaitWriteSTM, withMVar)
+import GHC.Exts as Exports (IsList (..), groupWith, inline, lazy, sortWith)
import GHC.Generics as Exports (Generic, Generic1)
import GHC.IO.Exception as Exports
import Numeric as Exports
-import Prelude as Exports hiding (fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))
import System.Environment as Exports
import System.Exit as Exports
import System.IO as Exports
@@ -68,35 +72,11 @@ import System.Mem as Exports
import System.Mem.StableName as Exports
import System.Timeout as Exports
import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)
-import Text.Printf as Exports (printf, hPrintf)
-import Text.Read as Exports (Read(..), readMaybe, readEither)
+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec)
+import Text.Printf as Exports (hPrintf, printf)
+import Text.Read as Exports (Read (..), readEither, readMaybe)
import Unsafe.Coerce as Exports
-
--- transformers
--------------------------
-import Control.Monad.IO.Class as Exports
-import Control.Monad.Trans.Class as Exports
-import Control.Monad.Trans.Maybe as Exports hiding (liftListen, liftPass)
-import Control.Monad.Trans.Reader as Exports hiding (liftCallCC, liftCatch)
-import Control.Monad.Trans.State.Strict as Exports hiding (liftCallCC, liftCatch, liftListen, liftPass)
-
--- mtl
--------------------------
-import Control.Monad.Error.Class as Exports (MonadError (..))
-
--- contravariant
--------------------------
-import Data.Functor.Contravariant as Exports
-import Data.Functor.Contravariant.Divisible as Exports
-
--- contravariant-extras
--------------------------
-import Contravariant.Extras as Exports
-
--- bytestring
--------------------------
-import Data.ByteString as Exports (ByteString)
+import Prelude as Exports hiding (all, and, any, concat, concatMap, elem, fail, foldl, foldl1, foldr, foldr1, id, mapM, mapM_, maximum, minimum, notElem, or, product, sequence, sequence_, sum, (.))
tryError :: MonadError e m => m a -> m (Either e a)
tryError m =
diff --git a/library/Hasql/Transaction/Private/SQL.hs b/library/Hasql/Transaction/Private/SQL.hs
index 5ac4902..5776d39 100644
--- a/library/Hasql/Transaction/Private/SQL.hs
+++ b/library/Hasql/Transaction/Private/SQL.hs
@@ -1,10 +1,8 @@
-module Hasql.Transaction.Private.SQL
-where
+module Hasql.Transaction.Private.SQL where
-import Hasql.Transaction.Private.Prelude
-import Hasql.Transaction.Private.Model
import qualified ByteString.TreeBuilder as D
-
+import Hasql.Transaction.Config
+import Hasql.Transaction.Private.Prelude
beginTransaction :: IsolationLevel -> Mode -> ByteString
beginTransaction isolation mode =
@@ -26,4 +24,4 @@ beginTransaction isolation mode =
declareCursor :: ByteString -> ByteString -> ByteString
declareCursor name sql =
D.toByteString $
- "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql
+ "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql
diff --git a/library/Hasql/Transaction/Private/Sessions.hs b/library/Hasql/Transaction/Private/Sessions.hs
index 0161486..5f4fcc7 100644
--- a/library/Hasql/Transaction/Private/Sessions.hs
+++ b/library/Hasql/Transaction/Private/Sessions.hs
@@ -1,12 +1,10 @@
-module Hasql.Transaction.Private.Sessions
-where
+module Hasql.Transaction.Private.Sessions where
-import Hasql.Transaction.Private.Prelude
-import Hasql.Transaction.Private.Model
import Hasql.Session
+import Hasql.Transaction.Config
+import Hasql.Transaction.Private.Prelude
import qualified Hasql.Transaction.Private.Statements as Statements
-
{-
We may want to
do one transaction retry in case of the 23505 error, and fail if an identical
@@ -14,7 +12,7 @@ error is seen.
-}
inRetryingTransaction :: IsolationLevel -> Mode -> Session (a, Bool) -> Bool -> Session a
inRetryingTransaction level mode session preparable =
- fix $ \ retry -> do
+ fix $ \retry -> do
attemptRes <- tryTransaction level mode session preparable
case attemptRes of
Just a -> return a
@@ -22,21 +20,21 @@ inRetryingTransaction level mode session preparable =
tryTransaction :: IsolationLevel -> Mode -> Session (a, Bool) -> Bool -> Session (Maybe a)
tryTransaction level mode body preparable = do
-
statement () (Statements.beginTransaction level mode preparable)
- bodyRes <- catchError (fmap Just body) $ \ error -> do
+ bodyRes <- catchError (fmap Just body) $ \error -> do
statement () (Statements.abortTransaction preparable)
handleTransactionError error $ return Nothing
case bodyRes of
- Just (res, commit) -> catchError (commitOrAbort commit preparable $> Just res) $ \ error -> do
+ Just (res, commit) -> catchError (commitOrAbort commit preparable $> Just res) $ \error -> do
handleTransactionError error $ return Nothing
Nothing -> return Nothing
-commitOrAbort commit preparable = if commit
- then statement () (Statements.commitTransaction preparable)
- else statement () (Statements.abortTransaction preparable)
+commitOrAbort commit preparable =
+ if commit
+ then statement () (Statements.commitTransaction preparable)
+ else statement () (Statements.abortTransaction preparable)
handleTransactionError error onTransactionError = case error of
QueryError _ _ (ResultError (ServerError "40001" _ _ _ _)) -> onTransactionError
diff --git a/library/Hasql/Transaction/Private/Statements.hs b/library/Hasql/Transaction/Private/Statements.hs
index 2345629..7eb43c6 100644
--- a/library/Hasql/Transaction/Private/Statements.hs
+++ b/library/Hasql/Transaction/Private/Statements.hs
@@ -1,16 +1,13 @@
-module Hasql.Transaction.Private.Statements
-where
+module Hasql.Transaction.Private.Statements where
-import Hasql.Transaction.Private.Prelude
-import Hasql.Transaction.Private.Model
-import qualified Hasql.Statement as A
-import qualified Hasql.Encoders as B
import qualified Hasql.Decoders as C
+import qualified Hasql.Encoders as B
+import qualified Hasql.Statement as A
+import Hasql.Transaction.Config
+import Hasql.Transaction.Private.Prelude
import qualified Hasql.Transaction.Private.SQL as D
-
-- * Transactions
--------------------------
beginTransaction :: IsolationLevel -> Mode -> Bool -> A.Statement () ()
beginTransaction isolation mode preparable =
@@ -24,9 +21,7 @@ abortTransaction :: Bool -> A.Statement () ()
abortTransaction preparable =
A.Statement "ABORT" B.noParams C.noResult preparable
-
-- * Streaming
--------------------------
declareCursor :: ByteString -> ByteString -> B.Params a -> A.Statement a ()
declareCursor name sql encoder =
diff --git a/library/Hasql/Transaction/Private/Transaction.hs b/library/Hasql/Transaction/Private/Transaction.hs
index 672a7e6..d36a9da 100644
--- a/library/Hasql/Transaction/Private/Transaction.hs
+++ b/library/Hasql/Transaction/Private/Transaction.hs
@@ -1,13 +1,11 @@
-module Hasql.Transaction.Private.Transaction
-where
+module Hasql.Transaction.Private.Transaction where
-import Hasql.Transaction.Private.Prelude
-import Hasql.Transaction.Private.Model
-import qualified Hasql.Statement as A
import qualified Hasql.Session as B
-import qualified Hasql.Transaction.Private.Statements as C
+import qualified Hasql.Statement as A
+import Hasql.Transaction.Config
+import Hasql.Transaction.Private.Prelude
import qualified Hasql.Transaction.Private.Sessions as D
-
+import qualified Hasql.Transaction.Private.Statements as C
-- |
-- A composable abstraction over the retryable transactions.
@@ -15,8 +13,8 @@ import qualified Hasql.Transaction.Private.Sessions as D
-- Executes multiple queries under the specified mode and isolation level,
-- while automatically retrying the transaction in case of conflicts.
-- Thus this abstraction closely reproduces the behaviour of 'STM'.
-newtype Transaction a =
- Transaction (StateT Bool B.Session a)
+newtype Transaction a
+ = Transaction (StateT Bool B.Session a)
deriving (Functor, Applicative, Monad)
instance Semigroup a => Semigroup (Transaction a) where
diff --git a/library/Hasql/Transaction/Sessions.hs b/library/Hasql/Transaction/Sessions.hs
index 0cde4f2..018ec31 100644
--- a/library/Hasql/Transaction/Sessions.hs
+++ b/library/Hasql/Transaction/Sessions.hs
@@ -1,18 +1,17 @@
module Hasql.Transaction.Sessions
-(
- transaction,
- unpreparedTransaction,
- -- * Transaction settings
- C.Mode(..),
- C.IsolationLevel(..),
-)
+ ( transaction,
+ unpreparedTransaction,
+
+ -- * Transaction settings
+ C.Mode (..),
+ C.IsolationLevel (..),
+ )
where
import Data.Bool
-import qualified Hasql.Transaction.Private.Transaction as A
import qualified Hasql.Session as B
-import qualified Hasql.Transaction.Private.Model as C
-
+import qualified Hasql.Transaction.Config as C
+import qualified Hasql.Transaction.Private.Transaction as A
-- |
-- Execute the transaction using the provided isolation level and mode.
@@ -29,4 +28,4 @@ transaction isolation mode transaction =
{-# INLINE unpreparedTransaction #-}
unpreparedTransaction :: C.IsolationLevel -> C.Mode -> A.Transaction a -> B.Session a
unpreparedTransaction isolation mode transaction =
- A.run transaction isolation mode False
\ No newline at end of file
+ A.run transaction isolation mode False
commit 640008b635d649a1df324a8b4a0ca7a5983d1382
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun Dec 3 09:07:50 2023 +0000
hide unzip
diff --git a/library/Hasql/Transaction/Private/Prelude.hs b/library/Hasql/Transaction/Private/Prelude.hs
index 79bf394..62900a3 100644
--- a/library/Hasql/Transaction/Private/Prelude.hs
+++ b/library/Hasql/Transaction/Private/Prelude.hs
@@ -32,7 +32,7 @@ import Data.Either as Exports
import Data.Fixed as Exports
import Data.Foldable as Exports hiding (toList)
import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
import Data.Functor.Contravariant as Exports
import Data.Functor.Contravariant.Divisible as Exports
import Data.Functor.Identity as Exports
commit 078971615dca7717537f8937df26e1f6879bfad1
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun Dec 3 09:12:30 2023 +0000
hide unzip
diff --git a/library/HeadedMegaparsec/Prelude.hs b/library/HeadedMegaparsec/Prelude.hs
index bb225f3..388e755 100644
--- a/library/HeadedMegaparsec/Prelude.hs
+++ b/library/HeadedMegaparsec/Prelude.hs
@@ -27,7 +27,7 @@ import Data.Either as Exports
import Data.Fixed as Exports
import Data.Foldable as Exports
import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
import Data.Functor.Identity as Exports
import Data.IORef as Exports
import Data.Int as Exports
commit dc12027209380215e94118463f1ae3ecdf409a6b
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun Dec 3 09:15:18 2023 +0000
hide unzip
diff --git a/library/HTMLEntities/Prelude.hs b/library/HTMLEntities/Prelude.hs
index a8b82de..9b3d9c9 100644
--- a/library/HTMLEntities/Prelude.hs
+++ b/library/HTMLEntities/Prelude.hs
@@ -25,7 +25,7 @@ import Data.Either as Exports
import Data.Fixed as Exports
import Data.Foldable as Exports hiding (toList)
import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
import Data.Functor.Compose as Exports
import Data.IORef as Exports
import Data.Int as Exports
commit 666780654cbe860863fc25765aaad5bfba08d432
Author: Arnaud Spiwack <arnaud@spiwack.net>
Date: Mon Jul 31 16:35:48 2023 +0200
Compatibility with th-abstraction 0.6 (#24)
diff --git a/linear-generics.cabal b/linear-generics.cabal
index 7da6dfb..8d46111 100644
--- a/linear-generics.cabal
+++ b/linear-generics.cabal
@@ -99,7 +99,7 @@ library
, containers >= 0.5.9 && < 0.7
, ghc-prim < 1
, template-haskell >= 2.16 && < 2.21
- , th-abstraction >= 0.5 && < 0.6
+ , th-abstraction >= 0.5 && < 0.7
default-language: Haskell2010
default-extensions: KindSignatures
commit 05229d751abaad0bc802fa62b5e88ff0da89f2c7
Author: Arnaud Spiwack <arnaud.spiwack@tweag.io>
Date: Fri Nov 10 16:03:38 2023 +0100
Compatibility with GHC 9.8/TH 2.21
Adapted from https://github.com/dreixel/generic-deriving/pull/94
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6e0cd83..15887d7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# next [????.??.??]
+* Support building with `template-haskell-2.21.*` (GHC 9.8).
+
# 0.2.2
* Produce an orderly error message if someone gives us `type data`.
* Produce an error message much more eagerly when someone tries to
diff --git a/linear-generics.cabal b/linear-generics.cabal
index 363fb5b..d067ca2 100644
--- a/linear-generics.cabal
+++ b/linear-generics.cabal
@@ -99,7 +99,7 @@ library
build-depends: base >= 4.15 && < 5
, containers >= 0.5.9 && < 0.7
, ghc-prim < 1
- , template-haskell >= 2.16 && < 2.21
+ , template-haskell >= 2.16 && < 2.22
, th-abstraction >= 0.5 && < 0.7
default-language: Haskell2010
diff --git a/src/Generics/Linear/TH/Internal.hs b/src/Generics/Linear/TH/Internal.hs
index cbd049e..8a5a6e4 100644
--- a/src/Generics/Linear/TH/Internal.hs
+++ b/src/Generics/Linear/TH/Internal.hs
@@ -1,4 +1,5 @@
{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP #-}
{-# LANGUAGE LambdaCase #-}
{- |
@@ -100,7 +101,7 @@ isUnsaturatedType = go 0 . dustOff
-- | Given a name, check if that name is a type family. If
-- so, return a list of its binders.
-getTypeFamilyBinders :: Name -> Q (Maybe [TyVarBndr_ ()])
+getTypeFamilyBinders :: Name -> Q (Maybe [TyVarBndrVis])
getTypeFamilyBinders tcName = do
info <- reify tcName
return $ case info of
@@ -325,21 +326,28 @@ reifyDataInfo name = do
fail (ns ++ " Could not reify " ++ nameBase name)
`recover`
reifyDatatype name
- variant_ <- case variant of
- Datatype -> pure Datatype_
- Newtype -> pure Newtype_
- -- This isn't total, but the API requires that the data
- -- family instance have at least one constructor anyways,
- -- so this will always succeed.
- DataInstance -> pure $ DataInstance_ (head cons)
- NewtypeInstance -> pure $ NewtypeInstance_ (head cons)
- TypeData -> fail $ "Cannot derive Generic instances for TypeData " ++ nameBase name
+ variant_ <-
+ case variant of
+ Datatype -> return Datatype_
+ Newtype -> return Newtype_
+ DataInstance -> return $ DataInstance_ $ headDataFamInstCon parentName cons
+ NewtypeInstance -> return $ NewtypeInstance_ $ headDataFamInstCon parentName cons
+ TypeData -> fail $ "Cannot derive Generic instances for TypeData " ++ nameBase name
checkDataContext parentName ctxt
pure (parentName, tys, cons, variant_)
where
ns :: String
ns = "Generics.Linear.TH.reifyDataInfo: "
+ -- This isn't total, but the API requires that the data family instance have
+ -- at least one constructor anyways, so this will always succeed.
+ headDataFamInstCon :: Name -> [ConstructorInfo] -> ConstructorInfo
+ headDataFamInstCon dataFamName cons =
+ case cons of
+ con:_ -> con
+ [] -> error $ "reified data family instance without a data constructor: "
+ ++ nameBase dataFamName
+
-- | One cannot derive Generic(1) instance for anything that uses DatatypeContexts,
-- so check to make sure the Cxt field of a datatype is null.
checkDataContext :: Name -> Cxt -> Q ()
@@ -352,3 +360,10 @@ checkExistentialContext :: Name -> [TyVarBndrUnit] -> Cxt -> Q ()
checkExistentialContext conName vars ctxt =
unless (null vars && null ctxt) $ fail $
nameBase conName ++ " must be a vanilla data constructor"
+
+#if !(MIN_VERSION_template_haskell(2,21,0)) && !(MIN_VERSION_th_abstraction(0,6,0))
+type TyVarBndrVis = TyVarBndrUnit
+
+bndrReq :: ()
+bndrReq = ()
+#endif
diff --git a/tests/Generics/Deriving/Enum.hs b/tests/Generics/Deriving/Enum.hs
index 7e80ead..1ddbdee 100644
--- a/tests/Generics/Deriving/Enum.hs
+++ b/tests/Generics/Deriving/Enum.hs
@@ -38,6 +38,7 @@ module Generics.Deriving.Enum (
import Control.Applicative (Const, ZipList)
import Data.Int
+import Data.Maybe (listToMaybe)
import Data.Monoid (All, Any, Dual, Product, Sum)
import qualified Data.Monoid as Monoid (First, Last)
import Data.Word
@@ -106,9 +107,7 @@ combine f (x:xs) (y:ys) = f x y : combine f xs ys
findIndex :: (a -> Bool) -> [a] -> Maybe Int
findIndex p xs = let l = [ i | (y,i) <- zip xs [(0::Int)..], p y]
- in if (null l)
- then Nothing
- else Just (head l)
+ in listToMaybe l
--------------------------------------------------------------------------------
-- Generic enum
commit af0b103ced22302ab04b11301380c88dbd7bc138
Author: Ellis Kesterton <erk4@st-andrews.ac.uk>
Date: Sun Dec 24 12:05:23 2023 +0000
Update to base 4.19
diff --git a/src/LLVM/Prelude.hs b/src/LLVM/Prelude.hs
index 1fe0e08..60737d2 100644
--- a/src/LLVM/Prelude.hs
+++ b/src/LLVM/Prelude.hs
@@ -30,6 +30,7 @@ import Prelude hiding (
minimum, maximum, sum, product, all, any, and, or,
concatMap,
elem, notElem,
+ unzip,
)
import Data.Data (Data, Typeable)
import GHC.Generics (Generic)
commit ece56da3079d80e69fece7e05a5540fd4858a98c
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sun Dec 3 09:22:44 2023 +0000
hide unzip and unsnoc
diff --git a/library/PostgresqlSyntax/Extras/NonEmpty.hs b/library/PostgresqlSyntax/Extras/NonEmpty.hs
index 7d9ecd1..d0cd890 100644
--- a/library/PostgresqlSyntax/Extras/NonEmpty.hs
+++ b/library/PostgresqlSyntax/Extras/NonEmpty.hs
@@ -1,7 +1,7 @@
module PostgresqlSyntax.Extras.NonEmpty where
import Data.List.NonEmpty
-import PostgresqlSyntax.Prelude hiding (cons, fromList, head, init, last, reverse, tail, uncons)
+import PostgresqlSyntax.Prelude hiding (cons, fromList, head, init, last, reverse, tail, uncons, unsnoc)
-- |
-- >>> intersperseFoldMap ", " id (fromList ["a"])
diff --git a/library/PostgresqlSyntax/Prelude.hs b/library/PostgresqlSyntax/Prelude.hs
index c16ee7a..9fe2596 100644
--- a/library/PostgresqlSyntax/Prelude.hs
+++ b/library/PostgresqlSyntax/Prelude.hs
@@ -29,7 +29,7 @@ import Data.Either as Exports
import Data.Fixed as Exports
import Data.Foldable as Exports
import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
import Data.Functor.Identity as Exports
import Data.HashMap.Strict as Exports (HashMap)
import Data.HashSet as Exports (HashSet)
commit d986482ef065a8762ae880585c6c2b8e4aab9dcb
Author: Daniel Firth <dan.firth@homotopic.tech>
Date: Sat Dec 2 23:56:50 2023 +0000
ghc 9.6 compat
diff --git a/src/Text/XML/Writer.hs b/src/Text/XML/Writer.hs
index 65e8f66..13fda5d 100644
--- a/src/Text/XML/Writer.hs
+++ b/src/Text/XML/Writer.hs
@@ -36,6 +36,7 @@ module Text.XML.Writer
) where
import Text.XML
+import Control.Monad
import Control.Monad.Writer.Strict
import Data.Default ()
import qualified Data.DList as DL
This diff is collapsed.
......@@ -23,11 +23,11 @@
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1706830856,
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
"lastModified": 1715865404,
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
"type": "github"
},
"original": {
......@@ -54,6 +54,21 @@
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"horizon-advance": {
"inputs": {
"flake-parts": [
......@@ -63,18 +78,14 @@
],
"horizon-core": "horizon-core",
"horizon-hoogle": "horizon-hoogle_2",
"nixpkgs": [
"horizon-advance",
"horizon-core",
"nixpkgs"
]
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1709026852,
"narHash": "sha256-5TNWN99je/+lvlHf8ZhKdeR+5/++QfolO+OLH86GO7E=",
"lastModified": 1717012228,
"narHash": "sha256-UIpKU6LuVl/NyXfjiiORU/U5husGdJ2bu8uem9cuJaY=",
"ref": "refs/heads/master",
"rev": "90d964dac4093b32e8608fc9ce55bf1648e16968",
"revCount": 191,
"rev": "ee6680b0c3fb1a78fb306132e791615939d9dba5",
"revCount": 247,
"type": "git",
"url": "https://gitlab.horizon-haskell.net/package-sets/horizon-advance"
},
......@@ -85,73 +96,81 @@
},
"horizon-build-packages": {
"inputs": {
"flake-parts": "flake-parts_2",
"flake-parts": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"horizon-ghc",
"flake-parts"
],
"horizon-ghc": "horizon-ghc",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1708982306,
"narHash": "sha256-/Nh0SF02PEaQRRIa5vTYvU6yYXqB+tmJ7C9YUNNO0qw=",
"ref": "lts/ghc-9.8.x",
"rev": "7c7603cd4750691e7cd76bf88fa0f07e42a3bcb8",
"revCount": 63,
"lastModified": 1716737729,
"narHash": "sha256-SXTIu6TI4Rr3dS0uz1B9Z2hFGIfcwQb9C01HHbVLDR4=",
"ref": "refs/heads/master",
"rev": "9e75556c0249b074322829f2c1825d33de1c9ee1",
"revCount": 89,
"type": "git",
"url": "https://gitlab.horizon-haskell.net/package-sets/horizon-build-packages"
},
"original": {
"ref": "lts/ghc-9.8.x",
"type": "git",
"url": "https://gitlab.horizon-haskell.net/package-sets/horizon-build-packages"
}
},
"horizon-core": {
"inputs": {
"flake-parts": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"flake-parts"
],
"flake-parts": "flake-parts_2",
"horizon-build-packages": "horizon-build-packages",
"horizon-hoogle": "horizon-hoogle",
"nixpkgs": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"nixpkgs"
]
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1708988401,
"narHash": "sha256-K8S9191VAzpgLEU+O1bg+vfEF8M0ZJnZmhfgTX+JCdY=",
"ref": "lts/ghc-9.8.x",
"rev": "0a3a6987d0631cf2359c15804fdf5744f9a8772c",
"revCount": 1318,
"lastModified": 1717010610,
"narHash": "sha256-P4/chUeLzOMNIp9tig9SOz4F9ZtweV6nSrafJd9ixzo=",
"ref": "refs/heads/master",
"rev": "0c4c5338351fcd82ddb94ada87f73f9c91e29819",
"revCount": 1367,
"type": "git",
"url": "https://gitlab.horizon-haskell.net/package-sets/horizon-core"
},
"original": {
"ref": "lts/ghc-9.8.x",
"type": "git",
"url": "https://gitlab.horizon-haskell.net/package-sets/horizon-core"
}
},
"horizon-ghc": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs"
"flake-parts": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"horizon-ghc",
"nixica",
"flake-parts"
],
"nixica": "nixica",
"nixpkgs": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"horizon-ghc",
"nixica",
"nixpkgs"
]
},
"locked": {
"lastModified": 1708948945,
"narHash": "sha256-p3GpqJEA733xi9EhzaB20SKWihRug6sJvTxL+xt2WvQ=",
"ref": "lts/ghc-9.8.x",
"rev": "5ce4e64ca132619bd1c037556b6a6b2c15946d36",
"revCount": 94,
"lastModified": 1716628408,
"narHash": "sha256-owaGnYzy8NQxaB9KpdsMdDJ5i2WWb9OBrCmAlrdY9OA=",
"ref": "refs/heads/master",
"rev": "1ff3a6b692dbb3fe21533e84502d5c1f4790c4a9",
"revCount": 101,
"type": "git",
"url": "https://gitlab.horizon-haskell.net/ghc/horizon-ghc"
},
"original": {
"ref": "lts/ghc-9.8.x",
"type": "git",
"url": "https://gitlab.horizon-haskell.net/ghc/horizon-ghc"
}
......@@ -201,18 +220,64 @@
"url": "https://gitlab.horizon-haskell.net/nix/horizon-hoogle"
}
},
"lint-utils": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"horizon-advance",
"horizon-core",
"horizon-build-packages",
"horizon-ghc",
"nixica",
"nixpkgs"
]
},
"locked": {
"lastModified": 1708583908,
"narHash": "sha256-zuNxxkt/wS8Z5TbGarf4QZVDt1R65dDkEw/s2T/tCW4=",
"owner": "homotopic",
"repo": "lint-utils",
"rev": "2d77caa3644065ee0f462cc5ea654280c59127b2",
"type": "github"
},
"original": {
"owner": "homotopic",
"repo": "lint-utils",
"type": "github"
}
},
"nixica": {
"inputs": {
"flake-parts": "flake-parts_3",
"lint-utils": "lint-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1709796500,
"narHash": "sha256-No1tx+wo5DjOCPAF6ayhQlRMB3jD6kKdp/9bh/dSN9c=",
"ref": "refs/heads/master",
"rev": "688f425ae7fdc0bb76b907863d27c5efaa19ce8a",
"revCount": 17,
"type": "git",
"url": "https://gitlab.horizon-haskell.net/nix/nixica-library"
},
"original": {
"type": "git",
"url": "https://gitlab.horizon-haskell.net/nix/nixica-library"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1707956935,
"narHash": "sha256-ZL2TrjVsiFNKOYwYQozpbvQSwvtV/3Me7Zwhmdsfyu4=",
"owner": "nixos",
"lastModified": 1708992772,
"narHash": "sha256-TWy2VNWAzNOPbZ1InbJtm7GYOyIG/BWKPCwmNDCnDLs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a4d4fe8c5002202493e87ec8dbc91335ff55552c",
"rev": "7e5ed63169046d8250ded004cfbd5f8b13b264e7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"owner": "NixOS",
"ref": "haskell-updates",
"repo": "nixpkgs",
"type": "github"
}
......@@ -236,6 +301,18 @@
}
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1714640452,
"narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz"
}
},
"nixpkgs-lib_3": {
"locked": {
"dir": "lib",
"lastModified": 1706550542,
......@@ -253,41 +330,55 @@
"type": "github"
}
},
"nixpkgs-lib_3": {
"nixpkgs_2": {
"locked": {
"dir": "lib",
"lastModified": 1706550542,
"narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=",
"lastModified": 1716596003,
"narHash": "sha256-WW4LMtqDXBqXQ1TlMpCYZhpkwxQsr77RvLb8UfdaSXs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "97b17f32362e475016f942bbdfda4a4a72a8a652",
"rev": "edc6c261ab4ffb277af409e37a52718a91b255bc",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "haskell-updates",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1707956935,
"narHash": "sha256-ZL2TrjVsiFNKOYwYQozpbvQSwvtV/3Me7Zwhmdsfyu4=",
"owner": "nixos",
"lastModified": 1716941663,
"narHash": "sha256-gwGF1JseZqX7xAGxH6Rqec1MHpHCsrv9DeynO3aTZsA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a4d4fe8c5002202493e87ec8dbc91335ff55552c",
"rev": "a3713f011c88039a21cadbaf012a962c903747e5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"owner": "NixOS",
"ref": "haskell-updates",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1716941663,
"narHash": "sha256-gwGF1JseZqX7xAGxH6Rqec1MHpHCsrv9DeynO3aTZsA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a3713f011c88039a21cadbaf012a962c903747e5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "haskell-updates",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1708093448,
"narHash": "sha256-gohEm3/NVyu7WINFhRf83yJH8UM2ie/KY9Iw3VN6fiE=",
......@@ -308,7 +399,7 @@
"flake-parts": "flake-parts",
"horizon-advance": "horizon-advance",
"horizon-hoogle": "horizon-hoogle_3",
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_5"
}
}
},
......
......@@ -14,15 +14,8 @@
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
outputs =
inputs@
{ self
, flake-parts
, horizon-advance
, nixpkgs
, ...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
outputs = inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"aarch64-darwin"
"aarch64-linux"
......@@ -32,22 +25,18 @@
imports = [
inputs.horizon-hoogle.flakeModule
];
perSystem = { config, system, ... }:
let
pkgs = nixpkgs.legacyPackages.${system};
in
perSystem = { pkgs, config, system, ... }:
with pkgs.lib;
let
haskellLib = pkgs.haskell.lib;
modifiers = import ./modifiers.nix { inherit pkgs; };
overrides = composeManyExtensions [
(import ./overlay.nix { inherit pkgs; })
(import ./overlay.nix { inherit pkgs; f = modifiers; })
(import ./configuration/common.nix { inherit pkgs haskellLib; })
(import (./configuration + "/${system}.nix") { inherit pkgs haskellLib; })
];
legacyPackages = horizon-advance.legacyPackages.${system}.extend overrides;
legacyPackages = inputs.horizon-advance.legacyPackages.${system}.extend overrides;
packages = filterAttrs (_: isDerivation) legacyPackages;
......
This diff is collapsed.
This diff is collapsed.
{ pkgs, ... }:
with pkgs.lib;
_: prev: name: v: if hasAttr name prev then warn "${name} exists in parent set" v else v