express 1.0.10 → 1.0.12
raw patch · 7 files changed
+96/−45 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Express.Express: instance Data.Express.Express.Express GHC.Integer.Type.Integer
- Data.Express.Name: instance Data.Express.Name.Name GHC.Integer.Type.Integer
+ Data.Express.Express: instance Data.Express.Express.Express GHC.Num.Integer.Integer
+ Data.Express.Name: instance Data.Express.Name.Name GHC.Num.Integer.Integer
Files
- .github/workflows/build.yml +36/−29
- changelog.md +15/−0
- express.cabal +5/−8
- mk/haskell.mk +6/−3
- src/Data/Express/Utils/Typeable.hs +26/−1
- stack.yaml +2/−2
- test/sdist +6/−2
.github/workflows/build.yml view
@@ -1,8 +1,10 @@ # Builds and tests this Haskell project on "GitHub Actions" #-# 2021 Rudy Matela+# 2021-2023 Rudy Matela # # some docs: https://github.com/haskell/actions/tree/main/setup+#+# The official haskell docker image: https://hub.docker.com/_/haskell name: build on: [push] jobs:@@ -11,24 +13,26 @@ steps: - name: Cache ~/.cabal/packages- uses: actions/cache@v2+ uses: actions/cache@v3 with: path: ~/.cabal/packages- key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}+ key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }} restore-keys: v1-${{ runner.os }}-cabal-packages- - name: Cache ~/.cabal and ~/.ghc- uses: actions/cache@v2+ uses: actions/cache@v3 with: path: | ~/.cabal !~/.cabal/packages ~/.ghc- key: v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('hello.cabal') }}+ key: v1-${{ runner.os }}-cabal-ghc-latest-${{ hashFiles('*.cabal') }} restore-keys: v1-${{ runner.os }}-cabal-ghc-latest- - run: du -hd3 ~/.cabal ~/.ghc || true + - run: make --version+ - run: haddock --version || sudo apt-get install ghc-haddock - run: ghc --version - run: cabal --version@@ -36,50 +40,54 @@ - run: ghc-pkg list - name: Check out repository- uses: actions/checkout@v2+ uses: actions/checkout@v3 - - run: cabal update+ - run: git --version+ - run: make install-dependencies - - run: make- - run: make test- - run: make haddock+ # 2023-07: some projects were failing with missing base for GHC 9.6.+ # Here we compile through cabal only provisionally.+ # - run: make+ # - run: make test+ # - run: make haddock - run: make test-sdist- - run: make test-via-cabal+ #- run: make test-via-cabal+ - run: cabal configure --enable-tests --enable-benchmarks --ghc-options="-O0"+ - run: cabal build+ - run: cabal test+ - run: cabal haddock test-with-ghc: strategy: matrix: ghc:+ - '9.4'+ - '9.2' - '9.0' - '8.10'- - '8.8' - '8.6'- - '8.4' - '8.2'- - '8.0'- - '7.10'- - '7.8' runs-on: ubuntu-latest needs: build-and-test container: haskell:${{ matrix.ghc }} steps: - name: Cache ~/.cabal/packages- uses: actions/cache@v2+ uses: actions/cache@v3 with: path: ~/.cabal/packages- key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('hello.cabal') }}+ key: v1-${{ runner.os }}-cabal-packages-${{ hashFiles('*.cabal') }} restore-keys: v1-${{ runner.os }}-cabal-packages- - name: Cache ~/.cabal and ~/.ghc- uses: actions/cache@v2+ uses: actions/cache@v3 with: path: | ~/.cabal !~/.cabal/packages ~/.ghc- key: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('hello.cabal') }}+ key: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}-${{ hashFiles('*.cabal') }} restore-keys: v1-${{ runner.os }}-cabal-ghc-${{ matrix.ghc }}- - run: du -hd3 ~/.cabal ~/.ghc || true@@ -94,9 +102,8 @@ - run: ghc-pkg list - name: Check out repository- uses: actions/checkout@v2+ uses: actions/checkout@v3 - - run: cabal update - run: make install-dependencies - run: make@@ -110,12 +117,12 @@ needs: build-and-test steps: - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS- uses: haskell/actions/setup@v1- with: # lts-18.14- ghc-version: '8.10.7'- cabal-version: '3.2'+ uses: haskell/actions/setup@v2+ with: # lts-19.19+ ghc-version: '9.0.2'+ cabal-version: '3.4' - - uses: actions/cache@v2+ - uses: actions/cache@v3 with: path: ~/.stack key: v1-${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}@@ -124,7 +131,7 @@ - run: stack --version - name: Check out repository- uses: actions/checkout@v2+ uses: actions/checkout@v3 - run: make test-via-stack test-with-hugs:@@ -134,5 +141,5 @@ - run: sudo apt-get update - run: sudo apt-get install hugs - name: Check out repository- uses: actions/checkout@v2+ uses: actions/checkout@v3 - run: make hugs-test
changelog.md view
@@ -2,6 +2,21 @@ ===================== +v1.0.12+-------++* make ordering of `typesIn` consistent between GHC 9.6 and earlier versions++* fix a test failure on GHC 9.6 (previous GHC versions unaffected)++* drop support for GHC 8.0, GHC 7.10 and GHC 7.8.+ The current version will still work in these,+ but these are not run on CI anymore+ and future versions will no longer be tested.++* miscellaneous improvements in build and CI scripts++ v1.0.10 -------
express.cabal view
@@ -1,6 +1,6 @@ -- Cabal file for express name: express-version: 1.0.10+version: 1.0.12 synopsis: Dynamically-typed expressions involving function application and variables. description: Express is a library for manipulating dynamically typed Haskell expressions.@@ -44,15 +44,12 @@ , bench/runtime/zero/bench/*.runtime , bench/runtime/zero/eg/*.runtime , etc/hugs-backports/Data/Function.hs-tested-with: GHC==9.0+tested-with: GHC==9.4+ , GHC==9.2+ , GHC==9.0 , GHC==8.10- , GHC==8.8 , GHC==8.6- , GHC==8.4 , GHC==8.2- , GHC==8.0- , GHC==7.10- , GHC==7.8 , Hugs==2006.9 -- for Hugs, not all modules are supported, see test/typecheck.hs @@ -63,7 +60,7 @@ source-repository this type: git location: https://github.com/rudymatela/express- tag: v1.0.10+ tag: v1.0.12 library exposed-modules: Data.Express
mk/haskell.mk view
@@ -1,6 +1,6 @@ # Implicit rules for compiling Haskell code. #-# Copyright (c) 2015-2021 Rudy Matela.+# Copyright (c) 2015-2023 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # You can optionally configure the "Configuration variables" below in your main@@ -21,7 +21,7 @@ GHC ?= ghc GHCCMD = $(GHC) -i$(GHCIMPORTDIRS) $(GHCFLAGS) HADDOCK ?= haddock-CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal v1-install')+CABAL_INSTALL = $(shell cabal --version | grep -q "version [0-2]\." && echo 'cabal install' || echo 'cabal install --lib') # Hugs Parameters HUGSIMPORTDIRS ?= "/usr/lib/hugs/packages/*"@@ -90,7 +90,10 @@ find $(ALL_HSS) | ./mk/ghcdeps -i$(GHCIMPORTDIRS) $(GHCFLAGS) > $(DEPMK) install-dependencies:- $(CABAL_INSTALL) $(INSTALL_DEPS)+ if [ -n "$(INSTALL_DEPS)" ]; then \+ cabal update && \+ $(CABAL_INSTALL) $(INSTALL_DEPS); \+ fi # haddock rules haddock: doc/index.html
src/Data/Express/Utils/Typeable.hs view
@@ -52,11 +52,36 @@ compareTy t1 t2 | t1 == t2 = EQ -- optional optimization compareTy t1 t2 = tyArity t1 `compare` tyArity t2 <> length ts1 `compare` length ts2- <> show c1 `compare` show c2+ <> showTyCon c1 `compare` showTyCon c2 <> foldr (<>) EQ (zipWith compareTy ts1 ts2) where (c1,ts1) = splitTyConApp t1 (c2,ts2) = splitTyConApp t2++-- | Shows a 'TyCon' consistently across different GHC versions.+-- This is needed in the implementation of `compareTy`.+--+-- On GHC <= 9.4:+--+-- > > show listTyCon+-- > "[]"+--+-- On GHC >= 9.6:+--+-- > > show listTyCon+-- > "List"+--+-- On all GHCs:+--+-- > > showTyCon listTyCon+-- > "[]"+--+-- Further exceptions to `show :: TyCon -> String` may be added here+-- on future versions.+showTyCon :: TyCon -> String+showTyCon con+ | con == listTyCon = "[]"+ | otherwise = show con -- | Returns the functional arity of the given 'TypeRep'. --
stack.yaml view
@@ -1,7 +1,7 @@-resolver: lts-18.14 # or ghc-8.10.7+resolver: lts-19.19 # or ghc-9.0.2 packages: - . extra-deps:-- leancheck-0.9.10+- leancheck-1.0.0
test/sdist view
@@ -2,7 +2,7 @@ # # test/sdist: tests the package generated by "cabal sdist". #-# Copyright (c) 2015-2021 Rudy Matela.+# Copyright (c) 2015-2023 Rudy Matela. # Distributed under the 3-Clause BSD licence. set -xe@@ -29,7 +29,11 @@ tar -tf $pkg | sort --ignore-case --unique > $tmp/ls-cabal-iu diff -rud $tmp/ls-cabal-i $tmp/ls-cabal-iu -if [ -d .git ]+# Check if we have a clone of the repo and git is available+# The check that we can run git ls-files is needed to avoid:+# fatal: detected dubious ownership in repository at '/__w/.../hello-haskell'+# on CI.+if [ -d .git ] && git --version && git ls-files >/dev/null then # Test if files included by cabal are the same as files tracked in git. git ls-files | sort > $tmp/ls-git