packages feed

half 0.2.1 → 0.2.2

raw patch · 4 files changed

+97/−41 lines, 4 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- Numeric.Half: Half :: CUShort -> Half
- Numeric.Half: getHalf :: Half -> CUShort
- Numeric.Half: instance Typeable Half
+ Numeric.Half: [Half] :: CUShort -> Half
+ Numeric.Half: [getHalf] :: Half -> CUShort

Files

.travis.yml view
@@ -1,54 +1,96 @@-language: haskell+language: c+sudo: false -env:-  - GHCVER=7.8.3-  - GHCVER=head+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:-  allow_failures:-    - env: GHCVER=head+  include:+    - env: CABALVER=1.16 GHCVER=7.4.2+      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]}}+    - env: CABALVER=1.16 GHCVER=7.6.3+      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]}}+    - env: CABALVER=1.18 GHCVER=7.8.4+      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]}}+    - env: CABALVER=1.22 GHCVER=7.10.1+      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+      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]}}  before_install:-  # If $GHCVER is the one travis has, don't bother reinstalling it.-  # We can also have faster builds by installing some libraries with-  # `apt`. If it isn't, install the GHC we want from hvr's PPA along-  # with cabal-1.18.-  - |-    if [ $GHCVER = `ghc --numeric-version` ]; then-      # Try installing some of the build-deps with apt-get for speed.-      travis/cabal-apt-install --enable-tests $MODE-      export CABAL=cabal-    else-      # Install the GHC we want from hvr's PPA-      travis_retry sudo add-apt-repository -y ppa:hvr/ghc-      travis_retry sudo apt-get update-      travis_retry sudo apt-get install cabal-install-1.18 ghc-$GHCVER happy-      export CABAL=cabal-1.18-      export PATH=/opt/ghc/$GHCVER/bin:$PATH-    fi-  # Uncomment whenever hackage is down.-  # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && $CABAL update-  - $CABAL update--  # Update happy when building with GHC head-  - |-    if [ $GHCVER = "head" ] || [ $GHCVER = "7.8.3" ]; then-      $CABAL install happy alex-      export PATH=$HOME/.cabal/bin:$PATH-    fi+ - unset CC+ - 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  install:-  - $CABAL install --dependencies-only --enable-tests-  - $CABAL configure --enable-tests $MODE+ - 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+ - "sed -i  's/^jobs:.*$/jobs: 2/' $HOME/.cabal/config"+ - cabal install --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 --only-dependencies --enable-tests --enable-benchmarks;+     if [ "$GHCVER" = "7.10.1" ]; 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:-  - $CABAL build-  - $CABAL test --show-details=always+ - cabal configure --enable-tests -v2  # -v2 provides useful information for debugging+ - cabal build   # this builds all libraries and executables (including tests)+ - cabal test+ - cabal bench || true  # expected result: these will crash+ - cabal sdist || true  # 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 --force-reinstalls "$SRC_TGZ")+ notifications:   irc:     channels:       - "irc.freenode.org#haskell-lens"     skip_join: true     template:-      - "\x0313half\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"+      - "\x0313half\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f %{message} \x0302\x1f%{build_url}\x0f"+# EOF
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.2.2+-----+* Fixed `isInfinite`.+* Added support for older GHCs. On GHC < 7.8 the pattern synonyms are disabled.+ 0.2.1 ----- * Removed need for `GeneralizedNewtypeDeriving` and `ScopedTypeVariables`.
half.cabal view
@@ -1,6 +1,6 @@ name:          half category:      Numeric-version:       0.2.1+version:       0.2.2 license:       BSD3 cabal-version: >= 1.8 license-file:  LICENSE
src/Numeric/Half.hs view
@@ -1,6 +1,9 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 708 {-# LANGUAGE PatternSynonyms #-}+#endif {-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE ForeignFunctionInterface #-} ----------------------------------------------------------------------------- -- | -- Copyright   :  (C) 2014 Edward Kmett@@ -19,6 +22,7 @@   , isZero   , fromHalf   , toHalf+#if __GLASGOW_HASKELL__ >= 708   , pattern POS_INF   , pattern NEG_INF   , pattern QNaN@@ -30,6 +34,7 @@   , pattern HALF_DIG   , pattern HALF_MIN_10_EXP   , pattern HALF_MAX_10_EXP+#endif   ) where  import Data.Bits@@ -108,7 +113,7 @@   floatRadix  _ = 2   floatDigits _ = 11   decodeFloat = decodeFloat . fromHalf-  isInfinite (Half h) = unsafeShiftR h 10 .&. 0x1f >= 32+  isInfinite (Half h) = unsafeShiftR h 10 .&. 0x1f >= 31   isIEEE _ = isIEEE (undefined :: Float)   atan2 a b = toHalf $ atan2 (fromHalf a) (fromHalf b)   isDenormalized (Half h) = unsafeShiftR h 10 .&. 0x1f == 0 && h .&. 0x3ff /= 0@@ -124,6 +129,8 @@ isZero :: Half -> Bool isZero (Half h) = h .&. 0x7fff == 0 +#if __GLASGOW_HASKELL__ >= 708+ -- | Positive infinity pattern POS_INF = Half 0x7c00 @@ -156,6 +163,8 @@  -- Maximum positive integer such that 10 raised to that power is a normalized half pattern HALF_MAX_10_EXP = 4++#endif  instance Num Half where   a * b = toHalf (fromHalf a * fromHalf b)