From: ross Date: Mon, 22 Jul 2002 11:37:39 +0000 (+0000) Subject: [project @ 2002-07-22 11:37:38 by ross] X-Git-Tag: nhc98-1-18-release~937 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=c54cf4e02e743cc50dd403812bd7a31ff5f583bc;p=ghc-base.git [project @ 2002-07-22 11:37:38 by ross] Make Data.Array.{IArray,MArray,IO,ST} work with Hugs, splitting off the IOArray part of Hugs.IOExts into Hugs.IOArray and (sadly) adding Hugs.Array.Base, a cut-down version of Data.Array.Base. --- diff --git a/Data/Array/IArray.hs b/Data/Array/IArray.hs index ec42d7d..73c65c1 100644 --- a/Data/Array/IArray.hs +++ b/Data/Array/IArray.hs @@ -50,4 +50,8 @@ module Data.Array.IArray ( import Prelude import Data.Ix +#ifdef __HUGS__ +import Hugs.Array.Base +#else import Data.Array.Base +#endif diff --git a/Data/Array/IO.hs b/Data/Array/IO.hs index b225e4b..9074a2a 100644 --- a/Data/Array/IO.hs +++ b/Data/Array/IO.hs @@ -17,16 +17,20 @@ module Data.Array.IO ( -- * @IO@ arrays with boxed elements IOArray, -- instance of: Eq, Typeable +#ifdef __GLASGOW_HASKELL__ -- * @IO@ arrays with unboxed elements IOUArray, -- instance of: Eq, Typeable castIOUArray, -- :: IOUArray i a -> IO (IOUArray i b) +#endif -- * Overloaded mutable array interface module Data.Array.MArray, +#ifdef __GLASGOW_HASKELL__ -- * Doing I\/O with @IOUArray@s hGetArray, -- :: Handle -> IOUArray Int Word8 -> Int -> IO Int hPutArray, -- :: Handle -> IOUArray Int Word8 -> Int -> IO () +#endif ) where import Prelude @@ -37,13 +41,17 @@ import Data.Int import Data.Word import Data.Dynamic -import Foreign.C -import Foreign.Ptr ( Ptr, FunPtr ) -import Foreign.StablePtr ( StablePtr ) +#ifdef __HUGS__ +import Hugs.IOArray +#endif #ifdef __GLASGOW_HASKELL__ -- GHC only to the end of file +import Foreign.C +import Foreign.Ptr ( Ptr, FunPtr ) +import Foreign.StablePtr ( StablePtr ) + import Data.Array.Base import GHC.Arr ( STArray, freezeSTArray, unsafeFreezeSTArray, thawSTArray, unsafeThawSTArray ) diff --git a/Data/Array/MArray.hs b/Data/Array/MArray.hs index 2a31882..28a691e 100644 --- a/Data/Array/MArray.hs +++ b/Data/Array/MArray.hs @@ -54,4 +54,8 @@ module Data.Array.MArray ( import Prelude import Data.Ix +#ifdef __HUGS__ +import Hugs.Array.Base +#else import Data.Array.Base +#endif diff --git a/Data/Array/ST.hs b/Data/Array/ST.hs index 6c4b416..cd81d83 100644 --- a/Data/Array/ST.hs +++ b/Data/Array/ST.hs @@ -17,9 +17,11 @@ module Data.Array.ST ( -- * Boxed arrays STArray, -- instance of: Eq, MArray +#ifdef __GLASGOW_HASKELL__ -- * Unboxed arrays STUArray, -- instance of: Eq, MArray castSTUArray, -- :: STUArray s i a -> ST s (STUArray s i b) +#endif -- * Overloaded mutable array interface module Data.Array.MArray, @@ -28,7 +30,11 @@ module Data.Array.ST ( import Prelude import Data.Array.MArray +#ifdef __HUGS__ +import Hugs.ST +#else import Data.Array.Base hiding (MArray(..)) +#endif #ifdef __GLASGOW_HASKELL__ import GHC.Arr diff --git a/Data/Dynamic.hs b/Data/Dynamic.hs index 961355d..275e318 100644 --- a/Data/Dynamic.hs +++ b/Data/Dynamic.hs @@ -80,6 +80,7 @@ import GHC.IOBase #ifdef __HUGS__ import Hugs.IO +import Hugs.IORef import Hugs.IOExts #endif