Generating Function Prototypes
Ashley Yakeley
ashley at semantic.org
Wed Jul 3 06:14:18 EDT 2002
At 2002-07-03 02:57, Malcolm Wallace wrote:
>The "proper" way to do it is to write the prototype yourself in a
>C header file (or use an existing header), and then use a compiler-specific
>mechanism to #include it.
OK I'll do this.
>The nhc98 compiler does generate a prototype (ghc does not). However,
>although this works quite well in the general case, occasionally the
>generated prototype may not be compatible with the real C type of
>the function (e.g. it cannot guess the `const' attribute).
This might be fixed by creating a ConstPtr type. Class Storable could
then be extended:
class Storable a where
...
constPeekElemOff :: ConstPtr a -> Int -> IO a
constPeekByteOff :: ConstPtr a -> Int -> IO a
constPeek :: ConstPtr a -> IO a
castToConst :: Ptr a -> ConstPtr a
castAwayConst :: ConstPtr a -> Ptr a -- possibly unsafe
--
Ashley Yakeley, Seattle WA
More information about the FFI
mailing list