X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FStablePtr.hs;h=522c6fc3449c5fcc2058d0b7260e7ab8c4cf85d3;hb=41e8fba828acbae1751628af50849f5352b27873;hp=cc53e9c330aa33ef264fade0804139b74b25db7a;hpb=f7a485978f04e84b086f1974b88887cc72d832d0;p=ghc-base.git diff --git a/Foreign/StablePtr.hs b/Foreign/StablePtr.hs index cc53e9c..522c6fc 100644 --- a/Foreign/StablePtr.hs +++ b/Foreign/StablePtr.hs @@ -1,4 +1,5 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude #-} + ----------------------------------------------------------------------------- -- | -- Module : Foreign.StablePtr @@ -17,22 +18,35 @@ module Foreign.StablePtr ( -- * Stable references to Haskell values - StablePtr, -- abstract + StablePtr -- abstract , newStablePtr -- :: a -> IO (StablePtr a) , deRefStablePtr -- :: StablePtr a -> IO a , freeStablePtr -- :: StablePtr a -> IO () , castStablePtrToPtr -- :: StablePtr a -> Ptr () , castPtrToStablePtr -- :: Ptr () -> StablePtr a - , -- ** The C-side interface + , -- ** The C-side interface - -- $cinterface + -- $cinterface ) where #ifdef __GLASGOW_HASKELL__ import GHC.Stable -import GHC.Err #endif +#ifdef __HUGS__ +import Hugs.StablePtr +#endif + +#ifdef __NHC__ +import NHC.FFI + ( StablePtr + , newStablePtr + , deRefStablePtr + , freeStablePtr + , castStablePtrToPtr + , castPtrToStablePtr + ) +#endif -- $cinterface -- @@ -45,4 +59,4 @@ import GHC.Err -- pointers. In fact, they need not even be valid memory addresses. The only -- guarantee provided is that if they are passed back to Haskell land, the -- function 'deRefStablePtr' will be able to reconstruct the --- Haskell value refereed to by the stable pointer. +-- Haskell value referred to by the stable pointer.