storable-complex 0.2.1 → 0.2.2
raw patch · 5 files changed
+189/−52 lines, 5 filesdep ~basenew-uploader
Dependency ranges changed: base
Files
- .travis.yml +112/−0
- Foreign/Storable/Complex.hs +0/−35
- in-base/Foreign/Storable/Complex.hs +1/−0
- out-of-base/Foreign/Storable/Complex.hs +37/−0
- storable-complex.cabal +39/−17
+ .travis.yml view
@@ -0,0 +1,112 @@+# NB: don't set `language: haskell` here++# See also https://github.com/hvr/multi-ghc-travis for more information++# The following lines enable several GHC versions and/or HP versions+# to be tested; often it's enough to test only against the last+# release of a major GHC version. Setting HPVER implictly sets+# GHCVER. Omit lines with versions you don't need/want testing for.+env:+ # - CABALVER=1.16 GHCVER=6.12.3+ # - CABALVER=1.16 GHCVER=7.0.1+ # - CABALVER=1.16 GHCVER=7.0.2+ # - CABALVER=1.16 GHCVER=7.0.3+ # - CABALVER=1.16 GHCVER=7.0.4+ - CABALVER=1.16 GHCVER=7.2.1+ - CABALVER=1.16 GHCVER=7.2.2+ - CABALVER=1.16 GHCVER=7.4.1+ - CABALVER=1.16 GHCVER=7.4.2+ - CABALVER=1.16 GHCVER=7.6.1+ - CABALVER=1.16 GHCVER=7.6.2+ - CABALVER=1.18 GHCVER=7.6.3+ - CABALVER=1.18 GHCVER=7.8.1+ - CABALVER=1.18 GHCVER=7.8.2+ - CABALVER=1.18 GHCVER=7.8.3+ - CABALVER=1.22 GHCVER=7.10.1+ - CABALVER=head GHCVER=head+ - HPVER=2013.2.0.0+ - HPVER=2012.4.0.0+ - HPVER=2012.2.0.0+ # - HPVER=2011.4.0.0++matrix:+ allow_failures:+ - env: GHCVER=head CABALVER=head+# Note: the distinction between `before_install` and `install` is not+# important.+before_install:+ - case "$HPVER" in+ "") ;;++ "2014.2.0.0")+ export CABALVER=1.18 ;+ export GHCVER=7.8.3 ;+ echo "constraints:async==2.0.1.5,attoparsec==0.10.4.0,case-insensitive==1.1.0.3,fgl==5.5.0.1,GLUT==2.5.1.1,GLURaw==1.4.0.1,haskell-src==1.0.1.6,hashable==1.2.2.0,html==1.0.1.2,HTTP==4000.2.10,HUnit==1.2.5.2,mtl==2.1.3.1,network==2.4.2.3,OpenGL==2.9.2.0,OpenGLRaw==1.5.0.0,parallel==3.2.0.4,parsec==3.1.5,primitive==0.5.2.1,QuickCheck==2.6,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.2,split==0.2.2,stm==2.4.2,syb==0.4.1,text==1.1.0.0,transformers==0.3.0.0,unordered-containers==0.2.4.0,vector==0.10.9.1,xhtml==3000.2.1,zlib==0.5.4.1" > cabal.config ;;++ "2013.2.0.0")+ export CABALVER=1.16 ;+ export GHCVER=7.6.3 ;+ echo "constraints:async==2.0.1.4,attoparsec==0.10.4.0,case-insensitive==1.0.0.1,cgi==3001.1.7.5,fgl==5.4.2.4,GLUT==2.4.0.0,GLURaw==1.3.0.0,haskell-src==1.0.1.5,hashable==1.1.2.5,html==1.0.1.2,HTTP==4000.2.8,HUnit==1.2.5.2,mtl==2.1.2,network==2.4.1.2,OpenGL==2.8.0.0,OpenGLRaw==1.3.0.0,parallel==3.2.0.3,parsec==3.1.3,QuickCheck==2.6,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.2,split==0.2.2,stm==2.4.2,syb==0.4.0,text==0.11.3.1,transformers==0.3.0.0,unordered-containers==0.2.3.0,vector==0.10.0.1,xhtml==3000.2.1,zlib==0.5.4.1" > cabal.config ;;++ "2012.4.0.0")+ export CABALVER=1.16 ;+ export GHCVER=7.6.2 ;+ echo "constraints:async==2.0.1.3,cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.5,html==1.0.1.2,HTTP==4000.2.5,HUnit==1.2.5.1,mtl==2.1.2,network==2.3.1.0,OpenGL==2.2.3.1,parallel==3.2.0.3,parsec==3.1.3,QuickCheck==2.5.1.1,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.2,split==0.2.1.1,stm==2.4,syb==0.3.7,text==0.11.2.3,transformers==0.3.0.0,vector==0.10.0.1,xhtml==3000.2.1,zlib==0.5.4.0" > cabal.config ;;++ "2012.2.0.0")+ export CABALVER=1.16 ;+ export GHCVER=7.4.1 ;+ echo "constraints:cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.5,html==1.0.1.2,HTTP==4000.2.3,HUnit==1.2.4.2,mtl==2.1.1,network==2.3.0.13,OpenGL==2.2.3.1,parallel==3.2.0.2,parsec==3.1.2,QuickCheck==2.4.2,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.1,stm==2.3,syb==0.3.6.1,text==0.11.2.0,transformers==0.3.0.0,xhtml==3000.2.1,zlib==0.5.3.3" > cabal.config ;;++ "2011.4.0.0")+ export CABALVER=1.16 ;+ export GHCVER=7.0.4 ;+ echo "constraints:cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.4,html==1.0.1.2,HUnit==1.2.4.2,network==2.3.0.5,OpenGL==2.2.3.0,parallel==3.1.0.1,parsec==3.1.1,QuickCheck==2.4.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.1,stm==2.2.0.1,syb==0.3.3,xhtml==3000.2.0.4,zlib==0.5.3.1,HTTP==4000.1.2,deepseq==1.1.0.2" > cabal.config ;;++ *)+ export GHCVER=unknown ;+ echo "unknown/invalid Haskell Platform requested" ;+ exit 1 ;;++ esac++ - 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++install:+ - cabal --version+ - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"+ - travis_retry cabal update+ - cabal install --only-dependencies --enable-tests --enable-benchmarks++# 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+ # -v2 provides useful information for debugging+ - cabal configure --enable-tests --enable-benchmarks -v2++ # this builds all libraries and executables+ # (including tests/benchmarks)+ - cabal build++ - cabal test+ - cabal check++ # tests that a source-distribution can be generated+ - cabal sdist++ # 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++# EOF
− Foreign/Storable/Complex.hs
@@ -1,35 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Data.Array.CArray.Base--- Copyright : (c) 2008 Jed Brown--- License : BSD-style--- --- Maintainer : jed@59A2.org--- Stability : provisional--- Portability : portable------ This module provides a Storable instance for Complex which is binary--- compatible with C99, C++ and Fortran complex data types. It's only purpose--- is to provide a standard location for this instance so that other packages--- needing this instance can play nicely together.-----------------------------------------------------------------------------------module Foreign.Storable.Complex () where--import Data.Complex-import Foreign.Storable-import Foreign.Ptr---- This Storable instance for Complex is binary compatible with C99, C++ and--- Fortran complex data types.-instance (RealFloat a, Storable a) => Storable (Complex a) where- sizeOf z = 2 * sizeOf (realPart z)- alignment z = alignment (realPart z)- peek p = do let q = castPtr p- r <- peek q- i <- peekElemOff q 1- return (r :+ i)- poke p (r :+ i) = do let q = (castPtr p)- poke q r- pokeElemOff q 1 i
+ in-base/Foreign/Storable/Complex.hs view
@@ -0,0 +1,1 @@+module Foreign.Storable.Complex () where
+ out-of-base/Foreign/Storable/Complex.hs view
@@ -0,0 +1,37 @@+-----------------------------------------------------------------------------+-- |+-- Module : Data.Array.CArray.Base+-- Copyright : (c) 2008 Jed Brown+-- License : BSD-style+--+-- Maintainer : jed@59A2.org+-- Stability : provisional+-- Portability : portable+--+-- This module provides a Storable instance for Complex which is binary+-- compatible with C99, C++ and Fortran complex data types. It's only purpose+-- is to provide a standard location for this instance so that other packages+-- needing this instance can play nicely together.+--+-----------------------------------------------------------------------------++{-# LANGUAGE ScopedTypeVariables #-}++module Foreign.Storable.Complex () where++import Data.Complex+import Foreign.Storable+import Foreign.Ptr++-- This Storable instance for Complex is binary compatible with C99, C++ and+-- Fortran complex data types.+instance Storable a => Storable (Complex a) where+ sizeOf z = 2 * sizeOf (undefined :: a)+ alignment z = alignment (undefined :: a)+ peek p = do let q = castPtr p+ r <- peek q+ i <- peekElemOff q 1+ return (r :+ i)+ poke p (r :+ i) = do let q = (castPtr p)+ poke q r+ pokeElemOff q 1 i
storable-complex.cabal view
@@ -1,17 +1,39 @@-name: storable-complex-version: 0.2.1-synopsis: Storable instance for Complex-description: Provides a Storable instance for Complex which is binary- compatible with C99, C++ and Fortran complex data types.- .- The only purpose of this package is to provide a standard- location for this instance so that other packages needing- this instance can play nicely together.-category: Data-license: BSD3-license-file: LICENSE-author: Jed Brown -maintainer: <jed@59A2.org>-build-Depends: base >= 3 && < 5-exposed-modules: Foreign.Storable.Complex-build-type: Simple+name: storable-complex +version: 0.2.2 +synopsis: Storable instance for Complex +description: Provides a Storable instance for Complex which is binary + compatible with C99, C++ and Fortran complex data types. + . + The only purpose of this package is to provide a standard + location for this instance so that other packages needing + this instance can play nicely together. +category: Data +license: BSD3 +license-file: LICENSE +author: Jed Brown <jed@59A2.org> +maintainer: Carter Schonwald <carter.schonwald@gmail.com> +homepage: https://github.com/cartazio/storable-complex +bug-reports: https://github.com/cartazio/storable-complex/issues +build-type: Simple +cabal-version: >= 1.6 +extra-source-files: + in-base/Foreign/Storable/Complex.hs + out-of-base/Foreign/Storable/Complex.hs + .travis.yml + +source-repository head + type: git + location: git@github.com:cartazio/storable-complex.git + +flag instanceInBase + description: instance Storable Complex is already in 'base' + default: True + +library + exposed-modules: Foreign.Storable.Complex + if flag(instanceInBase) + build-depends: base >= 4.8 && < 5 + hs-source-dirs: in-base + else + build-depends: base < 4.8 && >= 4.4 + hs-source-dirs: out-of-base