
On Tue, Nov 30, 2004 at 12:41:04AM -0800, Krasimir Angelov wrote:
Hello guys,
I am working on updated version of HDirect and now I am going to use CWString API to marshal (wchar_t *) type to String. I found some inconsistencies in the API. - castCWcharToChar and castCharToCWchar functions are defined only for Posix systems and they aren't exported. In the same time castCCharToChar and castCharToCChar have the same meaning and they are defined and exported on all platforms.
The problem is that these operations are very unsafe, there is no guarenteed isomorphism or even injection between wchar_ts and Chars. If people really know what they are doing, they can do the conversion themselves via fromIntegral/ord/chr, but I don't think we should encourage such unsafe usage with functions when it is simple for the user to work around it themselves.
- CWchar type looks a little bit strange compared to CChar, CString and CWString types. In my opinion CWChar looks more consistent.
I originally had it as CWChar, but it was changed to CWchar to conform to the already written FFI spec which defined the wchar_t equivalant to be CWchar
Since the CWString API isn't released in previous GHC releases I think now is the time to fix that. Any opinions?
Any changes would have to be propegated to the FFI spec which is pretty stable. John -- John Meacham - ⑆repetae.net⑆john⑈