[Haskell] ANNOUNCE: Haskell 2010 Report (final)
Simon Marlow
marlowsd at gmail.com
Mon Jul 12 06:57:18 EDT 2010
On 09/07/2010 18:46, John Meacham wrote:
> On Fri, Jul 09, 2010 at 12:39:38PM +0100, Simon Marlow wrote:
>> On 08/07/2010 22:46, John Meacham wrote:
>>> Ack, I just noticed that IntPtr,IntMax, and WordPtr and WordMax were
>>> left out of the report. These are fairly vital for writing portable FFI
>>> code.
>>
>> Make a proposal to get them into Haskell 2011, I don't imagine it would
>> be controversial.
>
> That's the thing, They were already accepted as part of H'2010. At least
> according to the site:
>
> http://hackage.haskell.org/trac/haskell-prime/wiki/ForeignFunctionInterface
Ok, this is probably an oversight on my part, so sorry about that. I
can treat it as errata and fix the report.
However I'm a bit confused. Currently we have IntPtr and WordPtr
exported by Foreign.Ptr in base, but we don't have IntMax and WordMax
anywhere that I can see, and I don't recall any discussion about where
they should be defined, or what they should be defined to.
We do have CIntPtr, CIntMax, CWordPtr and CWordMax all exported by
Foreign.C.Types, and they would seem to fulfill the requirements for
portability with C99, except that we don't have a way to convert between
CIntPtr/CWordPtr and Ptr/FunPtr. So wouldn't the right thing to do be
to add those conversions? If we added IntPtr to Foreign.Ptr instead,
that still doesn't let you write portable FFI bindings because there's
no requirement that IntPtr is equivalent to intptr_t.
Cheers,
Simon
More information about the Haskell
mailing list