ANN: H98 FFI Addendum 1.0, Release Candidate 13

Ross Paterson ross at soi.city.ac.uk
Fri Oct 31 07:32:55 EST 2003


On Fri, Oct 31, 2003 at 06:45:41PM +1100, Manuel M T Chakravarty wrote:
> (2) The inclusion of John Meacham's `CWString' and
>     `CLString' routines.  However, I propose to make the
>     localised versions (aka `CLString') the default and
>     rename the previous (8bit-based) routines to use a
>     `CAString' suffix, where the `A' stands for ASCII.

Making the Right Thing the default, though it may cost more, seems
appropriate.

In the sentence

	The marshalling takes the current Unicode encoding on the
	Haskell side into account.

(which seems to have been there before), "current" seems wrong, since
the Haskell side is constant.  How about something like

	The marshalling converts each Haskell character, representing
	a Unicode code point, to one or more bytes in a manner
	determined by the current locale.

and dropping the later sentence about the locale.

What happens if one attempts to convert a Char that has no encoding
in the current locale?

It might be worth emphasizing that the Len is the number of bytes
rather than Chars.

In the part about the single-byte versions, it might be worth tightening
the warning to say that these preserve only the first 256 values of Char.
(That is the Latin-1 subset, so calling them ASCII seems a misnomer.)


More information about the FFI mailing list