packages feed

vector-instances 3.3.1 → 3.4

raw patch · 4 files changed

+158/−9 lines, 4 filesdep +hashabledep ~vectornew-uploader

Dependencies added: hashable

Dependency ranges changed: vector

Files

.travis.yml view
@@ -1,8 +1,112 @@-language: haskell+# This file has been generated -- see https://github.com/hvr/multi-ghc-travis+language: c+sudo: false++cache:+  directories:+    - $HOME/.cabsnap+    - $HOME/.cabal/packages++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:+  include:+    - env: CABALVER=1.18 GHCVER=7.0.4+      compiler: ": #GHC 7.0.4"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.0.4], sources: [hvr-ghc]}}+    - env: CABALVER=1.18 GHCVER=7.2.2+      compiler: ": #GHC 7.2.2"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.2.2], sources: [hvr-ghc]}}+    - env: CABALVER=1.18 GHCVER=7.4.2+      compiler: ": #GHC 7.4.2"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.4.2], sources: [hvr-ghc]}}+    - env: CABALVER=1.18 GHCVER=7.6.3+      compiler: ": #GHC 7.6.3"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3], sources: [hvr-ghc]}}+    - env: CABALVER=1.18 GHCVER=7.8.4+      compiler: ": #GHC 7.8.4"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}+    - env: CABALVER=1.22 GHCVER=7.10.3+      compiler: ": #GHC 7.10.3"+      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}+    - env: CABALVER=1.24 GHCVER=8.0.2+      compiler: ": #GHC 8.0.2"+      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}+    - env: CABALVER=1.24 GHCVER=8.0.2 CABALOPTS="-f-hashable"+      compiler: ": #GHC 8.0.2 -hashable"+      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}+    - env: CABALVER=head GHCVER=head+      compiler: ": #GHC head"+      addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}++  allow_failures:+    - env: CABALVER=1.18 GHCVER=7.0.4+    - env: CABALVER=1.18 GHCVER=7.2.2+    - env: CABALVER=head GHCVER=head++before_install:+ - unset CC+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH++install:+ - cabal --version+ - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"+ - 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 -v+ - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config+ - cabal install $CABALOPTS --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt+ - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt++# check whether current requested install-plan matches cached package-db snapshot+ - 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 $CABALOPTS --only-dependencies --enable-tests --enable-benchmarks;+   fi++# snapshot package-db on cache miss+ - 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++# 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:+ - if [ -f configure.ac ]; then autoreconf -i; fi+ - cabal configure $CABALOPTS --enable-tests --enable-benchmarks -v2  # -v2 provides useful information for debugging+ - cabal build   # this builds all libraries and executables (including tests/benchmarks)+ - cabal test+ - cabal sdist   # tests that a source-distribution can be generated++# Check that the resulting source distribution can be built & installed.+# If there are no other `.tar.gz` files in `dist`, this can be even simpler:+# `cabal install --force-reinstalls dist/*-*.tar.gz`+ - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&+   (cd dist && cabal install $CABALOPTS --force-reinstalls "$SRC_TGZ")+ notifications:   irc:     channels:       - "irc.freenode.org#haskell-lens"     skip_join: true     template:-      - "\x0313vector-instances\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"+      - "\x0313pointed\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"++# EOF
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+3.4+-----+* Support `vector-0.12`+* Added `Hashable` instances.+ 3.3.1 ----- * Support `vector` 0.11
src/Data/Vector/Instances.hs view
@@ -18,6 +18,9 @@ import Control.Applicative import Control.Monad import Data.Semigroup+#ifdef MIN_VERSION_hashable+import Data.Hashable (Hashable(..))+#endif import Data.Key import Data.Functor.Bind import Data.Functor.Extend@@ -54,7 +57,7 @@   {-# INLINE zipWithKey #-}  instance Indexable Vector where-  index = (!)+  index = (Vector.!)   {-# INLINE index #-}  instance Lookup Vector where@@ -93,10 +96,6 @@   v >>- f = Vector.concatMap f v   {-# INLINE (>>-) #-} -instance Semigroup (Vector a) where-  (<>) = (++)-  {-# INLINE (<>) #-}- instance Alt Vector where   (<!>) = (++)   {-# INLINE (<!>) #-}@@ -116,6 +115,11 @@   extended f v = generate (length v) (\n -> f (drop n v))   {-# INLINE extended #-} +#if !(MIN_VERSION_vector(0,12,0))+instance Semigroup (Vector a) where+  (<>) = (++)+  {-# INLINE (<>) #-}+ instance Unboxed.Unbox a => Semigroup (Unboxed.Vector a) where   (<>) = (Unboxed.++)   {-# INLINE (<>) #-}@@ -127,3 +131,22 @@ instance Primitive.Prim a => Semigroup (Primitive.Vector a) where   (<>) = (Primitive.++)   {-# INLINE (<>) #-}+#endif++#ifdef MIN_VERSION_hashable+instance (Hashable a) => Hashable (Vector a) where+  hashWithSalt salt = hashWithSalt salt . Vector.toList+  {-# INLINE hashWithSalt #-}++instance (Unboxed.Unbox a, Hashable a) => Hashable (Unboxed.Vector a) where+  hashWithSalt salt = hashWithSalt salt . Unboxed.toList+  {-# INLINE hashWithSalt #-}++instance (Storable.Storable a, Hashable a) => Hashable (Storable.Vector a) where+  hashWithSalt salt = hashWithSalt salt . Storable.toList+  {-# INLINE hashWithSalt #-}++instance (Primitive.Prim a, Hashable a) => Hashable (Primitive.Vector a) where+  hashWithSalt salt = hashWithSalt salt . Primitive.toList+  {-# INLINE hashWithSalt #-}+#endif
vector-instances.cabal view
@@ -1,5 +1,5 @@ name:                vector-instances-version:             3.3.1+version:             3.4 synopsis:            Orphan Instances for 'Data.Vector' homepage:            http://github.com/ekmett/vector-instances bug-reports:         http://github.com/ekmett/vector-instances/issues@@ -10,6 +10,14 @@ category:            Data, Data Structures build-type:          Simple cabal-version:       >=1.6+tested-with:+  GHC==7.0.4,+  GHC==7.2.2,+  GHC==7.4.2,+  GHC==7.6.3,+  GHC==7.8.4,+  GHC==7.10.3,+  GHC==8.0.2 extra-source-files:   .travis.yml   .ghci@@ -22,15 +30,24 @@   type: git   location: git://github.com/ekmett/vector-instances.git +flag hashable+  description:+    You can disable the use of the `hashable` package using `-f-hashable`.+  default: True+  manual: True+ library   other-extensions: TypeFamilies   exposed-modules: Data.Vector.Instances   hs-source-dirs: src   build-depends:     base          >= 4       && < 5,-    vector        >= 0.9     && < 0.12,+    vector        >= 0.9     && < 0.13,     semigroupoids >= 3,     semigroups    >= 0.8.3.1,     comonad       >= 3,     pointed       >= 3,     keys          >= 3++  if flag(hashable)+    build-depends:  hashable >= 1.1.1.0