packages feed

bits 0.4 → 0.5

raw patch · 8 files changed

+120/−33 lines, 8 filesdep ~transformerssetup-changednew-uploaderPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: transformers

API changes (from Hackage documentation)

- Data.Bits.Coded: instance (Coded c, Integral c, Ranked n) => Coded (Elias c n)
- Data.Bits.Coded: instance Enum n => Enum (Elias c n)
- Data.Bits.Coded: instance Enum n => Enum (Unary n)
- Data.Bits.Coded: instance Eq n => Eq (Elias c n)
- Data.Bits.Coded: instance Eq n => Eq (Unary n)
- Data.Bits.Coded: instance Integral n => Coded (Unary n)
- Data.Bits.Coded: instance Integral n => Integral (Elias c n)
- Data.Bits.Coded: instance Integral n => Integral (Unary n)
- Data.Bits.Coded: instance Num n => Num (Elias c n)
- Data.Bits.Coded: instance Num n => Num (Unary n)
- Data.Bits.Coded: instance Ord n => Ord (Elias c n)
- Data.Bits.Coded: instance Ord n => Ord (Unary n)
- Data.Bits.Coded: instance Read n => Read (Elias c n)
- Data.Bits.Coded: instance Read n => Read (Unary n)
- Data.Bits.Coded: instance Real n => Real (Elias c n)
- Data.Bits.Coded: instance Real n => Real (Unary n)
- Data.Bits.Coded: instance Show n => Show (Elias c n)
- Data.Bits.Coded: instance Show n => Show (Unary n)
- Data.Bits.Coded: unElias :: Elias c n -> n
- Data.Bits.Coded: unUnary :: Unary n -> n
- Data.Bits.Coding: instance (Monad m, Alternative m) => Alternative (Coding m)
- Data.Bits.Coding: instance Functor (Coding m)
- Data.Bits.Coding: instance Monad m => Applicative (Coding m)
- Data.Bits.Coding: instance Monad m => Monad (Coding m)
- Data.Bits.Coding: instance MonadGet m => MonadGet (Coding m)
- Data.Bits.Coding: instance MonadPlus m => MonadPlus (Coding m)
- Data.Bits.Coding: instance MonadPut m => MonadPut (Coding m)
- Data.Bits.Coding: instance MonadReader e m => MonadReader e (Coding m)
- Data.Bits.Coding: instance MonadState s m => MonadState s (Coding m)
- Data.Bits.Coding: instance MonadTrans Coding
- Data.Bits.Coding: runCoding :: Coding m a -> forall r. (a -> Int -> Word8 -> m r) -> Int -> Word8 -> m r
- Data.Bits.Extras: instance Ranked Int16
- Data.Bits.Extras: instance Ranked Int32
- Data.Bits.Extras: instance Ranked Int64
- Data.Bits.Extras: instance Ranked Int8
- Data.Bits.Extras: instance Ranked Word16
- Data.Bits.Extras: instance Ranked Word32
- Data.Bits.Extras: instance Ranked Word64
- Data.Bits.Extras: instance Ranked Word8
+ Data.Bits.Coded: [unElias] :: Elias c n -> n
+ Data.Bits.Coded: [unUnary] :: Unary n -> n
+ Data.Bits.Coded: instance (Data.Bits.Coded.Coded c, GHC.Real.Integral c, Data.Bits.Extras.Ranked n) => Data.Bits.Coded.Coded (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Classes.Eq n => GHC.Classes.Eq (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Classes.Eq n => GHC.Classes.Eq (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Classes.Ord n => GHC.Classes.Ord (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Classes.Ord n => GHC.Classes.Ord (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Enum.Enum n => GHC.Enum.Enum (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Enum.Enum n => GHC.Enum.Enum (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Num.Num n => GHC.Num.Num (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Num.Num n => GHC.Num.Num (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Read.Read n => GHC.Read.Read (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Read.Read n => GHC.Read.Read (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Real.Integral n => Data.Bits.Coded.Coded (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Real.Integral n => GHC.Real.Integral (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Real.Integral n => GHC.Real.Integral (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Real.Real n => GHC.Real.Real (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Real.Real n => GHC.Real.Real (Data.Bits.Coded.Unary n)
+ Data.Bits.Coded: instance GHC.Show.Show n => GHC.Show.Show (Data.Bits.Coded.Elias c n)
+ Data.Bits.Coded: instance GHC.Show.Show n => GHC.Show.Show (Data.Bits.Coded.Unary n)
+ Data.Bits.Coding: [runCoding] :: Coding m a -> forall r. (a -> Int -> Word8 -> m r) -> Int -> Word8 -> m r
+ Data.Bits.Coding: instance (GHC.Base.Monad m, GHC.Base.Alternative m) => GHC.Base.Alternative (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance Control.Monad.Reader.Class.MonadReader e m => Control.Monad.Reader.Class.MonadReader e (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance Control.Monad.Trans.Class.MonadTrans Data.Bits.Coding.Coding
+ Data.Bits.Coding: instance Data.Bytes.Get.MonadGet m => Data.Bytes.Get.MonadGet (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance Data.Bytes.Put.MonadPut m => Data.Bytes.Put.MonadPut (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance GHC.Base.Functor (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance GHC.Base.Monad m => GHC.Base.Applicative (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance GHC.Base.Monad m => GHC.Base.Monad (Data.Bits.Coding.Coding m)
+ Data.Bits.Coding: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Data.Bits.Coding.Coding m)
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Int.Int16
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Int.Int32
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Int.Int64
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Int.Int8
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Word.Word16
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Word.Word32
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Word.Word64
+ Data.Bits.Extras: instance Data.Bits.Extras.Ranked GHC.Word.Word8

Files

.travis.yml view
@@ -1,17 +1,101 @@-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.8.4+      compiler: ": #GHC 7.8.4"+      addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,hlint], 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,hlint], sources: [hvr-ghc]}}+    - env: CABALVER=1.24 GHCVER=8.0.1+      compiler: ": #GHC 8.0.1"+      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1,hlint], sources: [hvr-ghc]}}+    - env: CABALVER=1.24 GHCVER=head+      compiler: ": #GHC head"+      addons: {apt: {packages: [cabal-install-1.24,ghc-head,hlint], sources: [hvr-ghc]}}++  allow_failures:+    - env: CABALVER=1.24 GHCVER=head+ before_install:-  # Uncomment whenever hackage is down.-  # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && cabal update-  - cabal update-  - travis/cabal-apt-install $mode+ - unset CC+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH  install:-  - cabal configure -flib-Werror $mode-  - cabal build+ - 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 --only-dependencies --enable-tests --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 -j --only-dependencies --enable-tests;+     if [ "$GHCVER" = "7.10.3" ]; then cabal install Cabal-1.22.4.0; fi;+   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:-  - $script && hlint src --cpp-define HLINT+ # -v2 provides useful information for debugging+ - cabal configure --enable-tests -v2 + # this builds all libraries and executables+ # (including tests/benchmarks)+ - cabal build+ - cabal test --show-details=always++ # tests that a source-distribution can be generated+ - cabal sdist+ - hlint src --cpp-define HLINT++ # 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+ notifications:   irc:     channels:@@ -20,5 +104,4 @@     template:       - "\x0313bits\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}" -env:-  - mode="--enable-tests" script="cabal test --show-details=always"+# EOF
AUTHORS.markdown view
@@ -2,7 +2,7 @@  `bits` was spun out of work that was being done on the `analytics` repository in bitwise encodings for compression schemes. -You can watch contributors carry on the quest for bragging rights in the [contributors graph](https://github.com/analytics/bits/graphs/contributors).+You can watch contributors carry on the quest for bragging rights in the [contributors graph](https://github.com/ekmett/bits/graphs/contributors).  Omission from this list is by no means an attempt to discount your contribution. 
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.5+---+* ghc 8 support+* Fixed doctests+ 0.4 --- * Embrace `FiniteBits` from GHC 7.8.3 now that a platform has shipped with it.
README.markdown view
@@ -1,7 +1,7 @@ bits ===== -[![Build Status](https://secure.travis-ci.org/analytics/bits.png)](http://travis-ci.org/analytics/bits)+[![Hackage](https://img.shields.io/hackage/v/bits.svg)](https://hackage.haskell.org/package/bits) [![Build Status](https://secure.travis-ci.org/ekmett/bits.png)](http://travis-ci.org/ekmett/bits)  This package provides a number of tools that are useful for dealing with files or data on a bitwise basis. 
Setup.lhs view
@@ -11,7 +11,7 @@ import Distribution.Simple.Utils ( rewriteFile, createDirectoryIfMissingVerbose, copyFiles ) import Distribution.Simple.BuildPaths ( autogenModulesDir ) import Distribution.Simple.Setup ( BuildFlags(buildVerbosity), Flag(..), fromFlag, HaddockFlags(haddockDistPref))-import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(), ComponentLocalBuildInfo(componentPackageDeps) )+import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(buildDir), ComponentLocalBuildInfo(componentPackageDeps) ) import Distribution.Text ( display ) import Distribution.Verbosity ( Verbosity, normal ) import System.FilePath ( (</>) )@@ -41,6 +41,13 @@     withTestLBI pkg lbi $ \suite suitecfg -> do       rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines         [ "module Build_" ++ testName suite ++ " where"+        , ""+        , "autogen_dir :: String"+        , "autogen_dir = " ++ show dir+        , ""+        , "build_dir :: String"+        , "build_dir = " ++ show (buildDir lbi)+        , ""         , "deps :: [String]"         , "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))         ]
bits.cabal view
@@ -1,17 +1,17 @@ name:          bits category:      Data, Serialization-version:       0.4+version:       0.5 license:       BSD3 cabal-version: >= 1.8 license-file:  LICENSE author:        Edward A. Kmett maintainer:    Edward A. Kmett <ekmett@gmail.com> stability:     experimental-homepage:      http://github.com/analytics/bits-bug-reports:   http://github.com/analytics/bits/issues+homepage:      http://github.com/ekmett/bits+bug-reports:   http://github.com/ekmett/bits/issues copyright:     Copyright (C) 2013 Edward A. Kmett build-type:    Custom-tested-with:   GHC == 7.8.3+tested-with:   GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1 synopsis:      Various bit twiddling and bitwise serialization primitives description:   Various bit twiddling and bitwise serialization primitives @@ -28,32 +28,25 @@  source-repository head   type: git-  location: git://github.com/analytics/bits.git+  location: git://github.com/ekmett/bits.git  -- You can disable the doctests test suite with -f-test-doctests flag test-doctests   default: True   manual: True -flag lib-Werror-  default: False-  manual: True- library   build-depends:     base         >= 4.7      && < 5,     bytes        >= 0.11     && < 1,     mtl          >= 2.0      && < 2.3,-    transformers >= 0.2      && < 0.5+    transformers >= 0.2      && < 0.6    exposed-modules:     Data.Bits.Coding     Data.Bits.Coded     Data.Bits.Extras -  if flag(lib-Werror)-    ghc-options: -Werror-   c-sources: cbits/debruijn.c   ghc-options: -Wall -fwarn-tabs -O2   hs-source-dirs: src@@ -63,6 +56,7 @@   main-is:        doctests.hs   ghc-options:    -Wall -threaded   hs-source-dirs: tests+  c-sources:      cbits/debruijn.c    if !flag(test-doctests)     buildable: False@@ -72,6 +66,3 @@       directory      >= 1.0,       doctest        >= 0.9.1,       filepath       >= 1.2--  if impl(ghc<7.6.1)-    ghc-options: -Werror
src/Data/Bits/Coding.hs view
@@ -56,7 +56,7 @@   {-# INLINE (<*>) #-}  instance Monad m => Monad (Coding m) where-  return a = Coding $ \ k -> k a+  return = pure   {-# INLINE return #-}   Coding m >>= f = Coding $ \ k -> m $ \a -> runCoding (f a) k   {-# INLINE (>>=) #-}
tests/doctests.hsc view
@@ -15,7 +15,7 @@ ----------------------------------------------------------------------------- module Main where -import Build_doctests (deps)+import Build_doctests (autogen_dir, build_dir, deps) import Control.Applicative import Control.Monad import Data.List@@ -54,11 +54,12 @@ main :: IO () main = withUnicode $ getSources >>= \sources -> doctest $     "-isrc"-  : "-idist/build/autogen"+  : ("-i" ++ autogen_dir)   : "-optP-include"-  : "-optPdist/build/autogen/cabal_macros.h"+  : ("-optP" ++ autogen_dir ++ "/cabal_macros.h")   : "-hide-all-packages"   : "-Iincludes"+  : (build_dir ++ "/doctests/doctests-tmp/cbits/debruijn.o")   : map ("-package="++) deps ++ sources  getSources :: IO [FilePath]