X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FStablePtr.hs;h=522c6fc3449c5fcc2058d0b7260e7ab8c4cf85d3;hb=f98950484a7cb01e43352e3d88277a2784cd58bf;hp=9b1bb9bbcc0807252bc6233ad8a46727238c1ccf;hpb=771f9ba7d06cd1b454d4bf2b133a028887a4d2af;p=ghc-base.git diff --git a/Foreign/StablePtr.hs b/Foreign/StablePtr.hs index 9b1bb9b..522c6fc 100644 --- a/Foreign/StablePtr.hs +++ b/Foreign/StablePtr.hs @@ -1,9 +1,10 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude #-} + ----------------------------------------------------------------------------- -- | -- Module : Foreign.StablePtr -- Copyright : (c) The University of Glasgow 2001 --- License : BSD-style (see the file libraries/core/LICENSE) +-- License : BSD-style (see the file libraries/base/LICENSE) -- -- Maintainer : ffi@haskell.org -- Stability : provisional @@ -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.