From: Ian Lynagh Date: Mon, 4 Aug 2008 21:58:40 +0000 (+0000) Subject: Remove GHC.Dotnet X-Git-Tag: 6_10_branch_has_been_forked~83 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=c5b70b85a0f07c40320bfaa7219f64d73e857bfb;p=ghc-base.git Remove GHC.Dotnet --- diff --git a/GHC/Dotnet.hs b/GHC/Dotnet.hs deleted file mode 100644 index 1d62f72..0000000 --- a/GHC/Dotnet.hs +++ /dev/null @@ -1,68 +0,0 @@ -{-# OPTIONS_GHC -XNoImplicitPrelude #-} ------------------------------------------------------------------------------ --- | --- Module : GHC.Dotnet --- Copyright : (c) sof, 2003 --- License : see libraries/base/LICENSE --- --- Maintainer : cvs-ghc@haskell.org --- Stability : internal --- Portability : non-portable (GHC extensions) --- --- Primitive operations and types for doing .NET interop --- ------------------------------------------------------------------------------ - -module GHC.Dotnet - ( Object - , unmarshalObject - , marshalObject - , unmarshalString - , marshalString - , checkResult - ) where - -import GHC.Base -import GHC.Exception -import GHC.IOBase -import GHC.Ptr -import Foreign.Marshal.Alloc -import Foreign.C.String - -data Object a - = Object Addr# - -checkResult :: (State# RealWorld -> (# State# RealWorld, a, Addr# #)) - -> IO a -checkResult fun = IO $ \ st -> - case fun st of - (# st1, res, err #) - | err `eqAddr#` nullAddr# -> (# st1, res #) - | otherwise -> throw (raiseError err) st1 - --- ToDo: attach finaliser. -unmarshalObject :: Addr# -> Object a -unmarshalObject x = Object x - -marshalObject :: Object a -> (Addr# -> IO b) -> IO b -marshalObject (Object x) cont = cont x - --- dotnet interop support passing and returning --- strings. -marshalString :: String - -> (Addr# -> IO a) - -> IO a -marshalString str cont = withCString str (\ (Ptr x) -> cont x) - --- char** received back from a .NET interop layer. -unmarshalString :: Addr# -> String -unmarshalString p = unsafePerformIO $ do - let ptr = Ptr p - str <- peekCString ptr - free ptr - return str - - --- room for improvement.. -raiseError :: Addr# -> IOError -raiseError p = userError (".NET error: " ++ unmarshalString p) diff --git a/base.cabal b/base.cabal index d84bb2d..05fd3e7 100644 --- a/base.cabal +++ b/base.cabal @@ -32,7 +32,6 @@ Library { GHC.Conc, GHC.ConsoleHandler, GHC.Desugar, - GHC.Dotnet, GHC.Enum, GHC.Environment, GHC.Err,