ANN: H98 FFI Addendum 1.0, Release Candidate 13
Simon Marlow
simonmar at microsoft.com
Wed Nov 5 04:40:19 EST 2003
> I have put RC 14 at
>
> http://www.cse.unsw.edu.au/~chak/haskell/ffi/
>
> including all the feedback on RC13. Please especially have
> a look at Section 6.3 (Section "CString"), where some of the
> wording changed.
The spec is silent on how exactly a Haskell Char is translated to a
CWchar, and there aren't any conversion functions ala castCharToCCHar /
castCCharToChar.
So presumably the expected behaviour is that the implementation does its
best to translate between Unicode Char and whatever encoding the
prevailing C library is using for wchar. Any sensible implementation
will be using Unicode for wchar too, so the translation will be a simple
no-op, but the C standard doesn't specify this. Older systems will
probably have a locale-dependent encoding for wchar. The GNU C library
has a slight bug in this regard, too (see previous discussion).
I expect that when we implement the CWString operations for GHC we won't
bother with any locale-dependent translations, so the implementation
will only work on "sensible" systems.
There is a fair bit that is non-obvious here, so I feel the spec ought
to say something.
Cheers,
Simon
More information about the FFI
mailing list