Repository : ssh://darcs.haskell.org//srv/darcs/packages/bytestring On branch : master
http://hackage.haskell.org/trac/ghc/changeset/94565a007e371643782917be1ed56febd3f10c15 >--------------------------------------------------------------- commit 94565a007e371643782917be1ed56febd3f10c15 Author: Duncan Coutts <[email protected]> Date: Tue May 17 11:25:32 2011 +0000 Drop support for ghc-6.4 and 6.6 >--------------------------------------------------------------- Data/ByteString.hs | 6 ------ Data/ByteString/Char8.hs | 7 ++----- Data/ByteString/Internal.hs | 20 +++++++++----------- bytestring.cabal | 9 +++------ 4 files changed, 14 insertions(+), 28 deletions(-) diff --git a/Data/ByteString.hs b/Data/ByteString.hs index 8e8d23c..5970b21 100644 --- a/Data/ByteString.hs +++ b/Data/ByteString.hs @@ -990,15 +990,12 @@ break p ps = case findIndexOrEnd p ps of n -> (unsafeTake n ps, unsafeDrop n ps) {-# INLINE [1] break #-} #endif -#if __GLASGOW_HASKELL__ >= 606 --- This RULE LHS is not allowed by ghc-6.4 {-# RULES "ByteString specialise break (x==)" forall x. break ((==) x) = breakByte x "ByteString specialise break (==x)" forall x. break (==x) = breakByte x #-} -#endif -- INTERNAL: @@ -1046,15 +1043,12 @@ spanByte c ps@(PS x s l) = inlinePerformIO $ withForeignPtr x $ \p -> else go p (i+1) {-# INLINE spanByte #-} -#if __GLASGOW_HASKELL__ >= 606 --- This RULE LHS is not allowed by ghc-6.4 {-# RULES "ByteString specialise span (x==)" forall x. span ((==) x) = spanByte x "ByteString specialise span (==x)" forall x. span (==x) = spanByte x #-} -#endif -- | 'spanEnd' behaves like 'span' but from the end of the 'ByteString'. -- We have diff --git a/Data/ByteString/Char8.hs b/Data/ByteString/Char8.hs index a4fb461..283ab4a 100644 --- a/Data/ByteString/Char8.hs +++ b/Data/ByteString/Char8.hs @@ -270,7 +270,7 @@ import GHC.Ptr (Ptr(..)) import GHC.ST (ST(..)) #endif -#if __GLASGOW_HASKELL__ >= 608 +#if MIN_VERSION_base(3,0,0) import Data.String (IsString(..)) #endif @@ -286,7 +286,7 @@ singleton :: Char -> ByteString singleton = B.singleton . c2w {-# INLINE singleton #-} -#if __GLASGOW_HASKELL__ >= 608 +#if MIN_VERSION_base(3,0,0) instance IsString ByteString where fromString = pack {-# INLINE fromString #-} @@ -545,15 +545,12 @@ break f = B.break (f . w2c) {-# INLINE [1] break #-} #endif -#if __GLASGOW_HASKELL__ >= 606 --- This RULE LHS is not allowed by ghc-6.4 {-# RULES "ByteString specialise break (x==)" forall x. break ((==) x) = breakChar x "ByteString specialise break (==x)" forall x. break (==x) = breakChar x #-} -#endif -- INTERNAL: diff --git a/Data/ByteString/Internal.hs b/Data/ByteString/Internal.hs index 60028c5..9de4ad6 100644 --- a/Data/ByteString/Internal.hs +++ b/Data/ByteString/Internal.hs @@ -93,23 +93,21 @@ import GHC.IOBase (IO(IO),RawBuffer) #endif #if __GLASGOW_HASKELL__ >= 611 import GHC.IO (unsafeDupablePerformIO) -#elif __GLASGOW_HASKELL__ >= 608 -import GHC.IOBase (unsafeDupablePerformIO) #else -import GHC.IOBase (unsafePerformIO) +import GHC.IOBase (unsafeDupablePerformIO) #endif #else import Data.Char (chr) import System.IO.Unsafe (unsafePerformIO) #endif -#if __GLASGOW_HASKELL__ >= 605 && !defined(SLOW_FOREIGN_PTR) +#ifdef __GLASGOW_HASKELL__ import GHC.ForeignPtr (mallocPlainForeignPtrBytes) #else import Foreign.ForeignPtr (mallocForeignPtrBytes) #endif -#if __GLASGOW_HASKELL__>=605 +#ifdef __GLASGOW_HASKELL__ import GHC.ForeignPtr (ForeignPtr(ForeignPtr)) import GHC.Base (nullAddr#) #else @@ -190,7 +188,7 @@ packWith k str = unsafeCreate (length str) $ \p -> go p str -- | The 0 pointer. Used to indicate the empty Bytestring. nullForeignPtr :: ForeignPtr Word8 -#if __GLASGOW_HASKELL__>=605 +#ifdef __GLASGOW_HASKELL__ nullForeignPtr = ForeignPtr nullAddr# undefined --TODO: should ForeignPtrContents be strict? #else nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr @@ -226,8 +224,8 @@ unsafeCreate :: Int -> (Ptr Word8 -> IO ()) -> ByteString unsafeCreate l f = unsafeDupablePerformIO (create l f) {-# INLINE unsafeCreate #-} -#if !defined(__GLASGOW_HASKELL__) || __GLASGOW_HASKELL__ < 608 --- for Hugs +#ifndef __GLASGOW_HASKELL__ +-- for Hugs, NHC etc unsafeDupablePerformIO :: IO a -> a unsafeDupablePerformIO = unsafePerformIO #endif @@ -269,11 +267,11 @@ createAndTrim' l f = do memcpy p' (p `plusPtr` off) (fromIntegral l') return $! (ps, res) --- | Wrapper of mallocForeignPtrBytes with faster implementation --- for GHC 6.5 builds newer than 06/06/06 +-- | Wrapper of 'mallocForeignPtrBytes' with faster implementation for GHC +-- mallocByteString :: Int -> IO (ForeignPtr a) mallocByteString l = do -#if __GLASGOW_HASKELL__ >= 605 && !defined(SLOW_FOREIGN_PTR) +#ifdef __GLASGOW_HASKELL__ mallocPlainForeignPtrBytes l #else mallocForeignPtrBytes l diff --git a/bytestring.cabal b/bytestring.cabal index 9177c90..4f0a4c4 100644 --- a/bytestring.cabal +++ b/bytestring.cabal @@ -21,13 +21,13 @@ Copyright: Copyright (c) Don Stewart 2005-2009, Author: Don Stewart, Duncan Coutts Maintainer: [email protected], [email protected] Homepage: http://www.cse.unsw.edu.au/~dons/fps.html -Tested-With: GHC==6.12.0, GHC==6.10.4, GHC ==6.8.2, GHC==6.6.1, GHC==6.4.2 +Tested-With: GHC==7.0.2, GHC==6.12.3, GHC==6.10.4, GHC ==6.8.2 Build-Type: Simple Cabal-Version: >= 1.2.3 extra-source-files: README TODO library - build-depends: base < 5 + build-depends: base >= 3 && < 5 if impl(ghc >= 6.10) build-depends: ghc-prim, base >= 4 @@ -58,8 +58,7 @@ library -funbox-strict-fields -fno-method-sharing -fmax-simplifier-iterations10 - if impl(ghc >= 6.6) - ghc-options: -fdicts-cheap + -fdicts-cheap c-sources: cbits/fpstring.c include-dirs: include @@ -67,6 +66,4 @@ library install-includes: fpstring.h nhc98-options: -K4M -K3M - if impl(ghc <= 6.4.2) - cc-options: -DSLOW_FOREIGN_PTR _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
