tagged 0.8.1 → 0.8.2
raw patch · 5 files changed
+147/−48 lines, 5 filesdep +deepseqdep ~template-haskell
Dependencies added: deepseq
Dependency ranges changed: template-haskell
Files
- .travis.yml +110/−46
- CHANGELOG.markdown +5/−0
- old/Data/Proxy.hs +8/−0
- src/Data/Tagged.hs +11/−0
- tagged.cabal +13/−2
.travis.yml view
@@ -1,62 +1,126 @@-# NB: don't set `language: haskell` here+# This file has been generated -- see https://github.com/hvr/multi-ghc-travis+language: c+sudo: false -# See also https://github.com/hvr/multi-ghc-travis for more information-env:- # we have to use CABALVER=1.16 for GHC<7.6 as well, as there's- # no package for earlier cabal versions in the PPA- - GHCVER=7.4.2 CABALVER=1.16- - GHCVER=7.6.3 CABALVER=1.16- - GHCVER=7.8.4 CABALVER=1.18- - GHCVER=7.10.1 CABALVER=1.22- - GHCVER=head CABALVER=1.22+cache:+ directories:+ - $HOME/.cabsnap+ - $HOME/.cabal/packages+ - $HOME/.stack +before_cache:+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar+ matrix:- allow_failures:- - env: GHCVER=head CABALVER=1.22+ include:+ - env: CABALVER=1.16 GHCVER=7.4.2 BUILD=cabal+ compiler: ": #GHC 7.4.2"+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} -# Note: the distinction between `before_install` and `install` is not-# important.-before_install:- - travis_retry sudo add-apt-repository -y ppa:hvr/ghc- - travis_retry sudo apt-get update- - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH- - cabal --version+ - env: CABALVER=1.16 GHCVER=7.6.3 BUILD=cabal+ compiler: ": #GHC 7.6.3"+ addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} -install:- - travis_retry cabal update- - cabal install --only-dependencies- - travis_retry sudo apt-get -q -y install hlint || cabal install hlint+ - env: CABALVER=1.18 GHCVER=7.8.4 BUILD=cabal+ compiler: ": #GHC 7.8.4"+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} -# Here starts the actual work to be performed for the package under-# test; any command which exits with a non-zero exit code causes the-# build to fail.-script:- # -v2 provides useful information for debugging- - cabal configure -v2+ - env: BUILD=stack STACK_YAML=stack-7.8.yaml STACK_OPTIONS=--skip-ghc-check+ compiler: ": #GHC 7.8.4"+ addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} - # this builds all libraries and executables- # (including tests/benchmarks)- - cabal build+ - env: BUILD=stack STACK_YAML=stack-7.8.yaml+ os: osx - # tests that a source-distribution can be generated- - cabal sdist- - hlint src --cpp-define HLINT+ - env: CABALVER=1.22 GHCVER=7.10.1 BUILD=cabal+ compiler: ": #GHC 7.10.1"+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} - # check that the generated source-distribution can be built & installed- - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;- cd dist/;- if [ -f "$SRC_TGZ" ]; then- cabal install --force-reinstalls "$SRC_TGZ";- else- echo "expected '$SRC_TGZ' not found";- exit 1;- fi+ - env: BUILD=stack STACK_OPTIONS=--skip-ghc-check+ compiler: ": #GHC 7.10.1"+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}} + - env: CABALVER=1.22 GHCVER=7.10.2 BUILD=cabal+ compiler: ": #GHC 7.10.2"+ addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}++ - env: BUILD=stack+ os: osx+++before_install:+ - unset CC+ - case "$BUILD" in+ stack)+ export STACK_VERSION=0.1.3.0;+ mkdir -p ~/bin;+ travis_retry curl -L https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-x86_64-$TRAVIS_OS_NAME.gz | gunzip > ~/bin/stack;+ chmod a+x ~/bin/stack;+ scripts/travis_long stack --no-terminal setup;+ export PATH=~/bin:$PATH;;+ cabal)+ export HAPPYVER=1.19.5+ export ALEXVER=3.1.4+ export PATH=~/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/happy/$HAPPYVER/bin:/opt/alex/$ALEXVER/bin:$PATH;;+ esac+install:+ - case "$BUILD" in+ stack)+ scripts/travis_long stack --no-terminal $STACK_OPTIONS build --only-snapshot -j2;;+ cabal)+ echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"+ cabal --version;+ if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];+ then+ zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >+ $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;+ fi;+ travis_retry cabal update;+ cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt;+ sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt;+ if diff -u installplan.txt $HOME/.cabsnap/installplan.txt; then+ echo "cabal build-cache HIT";+ rm -rfv .ghc;+ cp -a $HOME/.cabsnap/ghc $HOME/.ghc;+ cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;+ else+ echo "cabal build-cache MISS";+ rm -rf $HOME/.cabsnap;+ mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;+ cabal install --only-dependencies --enable-tests --enable-benchmarks;+ if [ "$GHCVER" = "7.10.1" ]; then cabal install Cabal-1.22.4.0; fi;+ fi;+ if [ ! -d $HOME/.cabsnap ]; then+ echo "snapshotting package-db to build-cache";+ mkdir $HOME/.cabsnap;+ cp -a $HOME/.ghc $HOME/.cabsnap/ghc;+ cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;+ fi;;+ esac++# snapshot package-db on cache miss++# Here starts the actual work to be performed for the package under test;+# any command which exits with a non-zero exit code causes the build to fail.+script:+ - case "$BUILD" in+ stack)+ scripts/travis_long stack --no-terminal $STACK_OPTIONS build -j2;;+ cabal)+ cabal configure --enable-tests -v2;+ cabal build;+ cabal test;+ cabal bench || true;+ cabal sdist || true;+ SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install --force-reinstalls "$SRC_TGZ");;+ esac+ notifications: irc: channels: - "irc.freenode.org#haskell-lens" skip_join: true template:- - "\x0313tagged\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"+ - "\x0313tagged\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f %{message} \x0302\x1f%{build_url}\x0f"+# EOF
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.8.2+-------+* `deepseq` support.+* Widened `template-haskell` dependency bounds.+ 0.8.1 ----- * Add `KProxy` to the backwards compatibility `Data.Proxy` module.
old/Data/Proxy.hs view
@@ -34,6 +34,9 @@ ) where import Control.Applicative (Applicative(..))+#ifdef MIN_VERSION_deepseq+import Control.DeepSeq (NFData(..))+#endif import Data.Traversable (Traversable(..)) import Data.Foldable (Foldable(..)) import Data.Ix (Ix(..))@@ -123,6 +126,11 @@ instance Bounded (Proxy s) where minBound = Proxy maxBound = Proxy++#ifdef MIN_VERSION_deepseq+instance NFData (Proxy s) where+ rnf Proxy = ()+#endif instance Functor Proxy where fmap _ _ = Proxy
src/Data/Tagged.hs view
@@ -49,6 +49,9 @@ import Data.Monoid #endif import Data.Foldable (Foldable(..))+#ifdef MIN_VERSION_deepseq+import Control.DeepSeq (NFData(..))+#endif import Control.Monad (liftM) #if __GLASGOW_HASKELL__ >= 709 import Data.Bifunctor@@ -74,6 +77,9 @@ -- -- Moreover, you don't have to rely on the compiler to inline away the extra -- argument, because the newtype is \"free\"+--+-- 'Tagged' has kind @k -> * -> *@ if the compiler supports @PolyKinds@, therefore+-- there is an extra @k@ showing in the instance haddocks that may cause confusion. newtype Tagged s b = Tagged { unTagged :: b } deriving ( Eq, Ord, Ix, Bounded #if __GLASGOW_HASKELL__ >= 702@@ -144,6 +150,11 @@ instance Bifunctor Tagged where bimap _ g (Tagged b) = Tagged (g b) {-# INLINE bimap #-}+#endif++#ifdef MIN_VERSION_deepseq+instance NFData b => NFData (Tagged s b) where+ rnf (Tagged b) = rnf b #endif instance Applicative (Tagged s) where
tagged.cabal view
@@ -1,5 +1,5 @@ name: tagged-version: 0.8.1+version: 0.8.2 license: BSD3 license-file: LICENSE author: Edward A. Kmett@@ -19,6 +19,14 @@ type: git location: git://github.com/ekmett/tagged.git +flag deepseq+ description:+ You can disable the use of the `deepseq` package using `-f-deepseq`.+ .+ Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.+ default: True+ manual: True+ library default-language: Haskell98 other-extensions: CPP@@ -41,4 +49,7 @@ if impl(ghc>=7.6) exposed-modules: Data.Proxy.TH- build-depends: template-haskell >= 2.8 && < 2.11+ build-depends: template-haskell >= 2.8 && < 2.12++ if flag(deepseq)+ build-depends: deepseq >= 1.1 && < 1.5