H98 FFI Addendum 1.0, Release Candidate 15

Manuel M T Chakravarty chak at cse.unsw.edu.au
Thu Nov 13 21:57:41 EST 2003


"Simon Marlow" <simonmar at microsoft.com> wrote,

> > And here now a probably naive question of mine: Does the
> > notion of Marlow sensibility coincide with platforms that
> > follow ISO/IEC 10646?
> 
> We don't want to restrict the standard to sensible systems, because that
> rules out Windows :-).  

What a nice definition of sensible systems ;-)

> So, the standard should say that the system converts appropriately
> between Haskell's Unicode Char and whatever the system's encoding for
> wchar_t is.  We don't want castCharToCWchar, because the encoding of a
> Char into wchar_t might result in multiple wchar_ts.

Ok.  This seems to coincide what John wrote in his reply to
my message.

The spec at the moment says,

  To simplify bindings to C libraries that use
  \code{wchar\_t} for character sets that cannot be encoded
  in byte strings, the module \code{CString} also exports a
  variant of the above string marshalling routines for wide
  characters.

How shall this text be amended?  Is the following
sufficient?

  These marshalling routines convert Haskell's Unicode
  representation for characters into the platform-specific
  encoding used for \code{wchar\_t} and vice versa.  In
  particular, on platforms that represent \code{wchar\_t}
  values according to the encoding specified by ISO/IEC
  10646, this conversion reduces to a simple type cast
  without any alteration of the character values.  For all
  other platforms, the exact rules of the conversion are
  platform-specific and not further defined in this report.

Does anybody have any suggestions for improving this
explanation?

Cheers,
Manuel



More information about the FFI mailing list