[M3devel] cm3 does not support Scan.LongInt
Elmar Stellnberger
estellnb at elstel.org
Mon Dec 16 17:42:41 CET 2013
Am 16.12.13 16:00, schrieb Tony Hosking:
> Jumping in late to this whole conversation (please forgive any
> confusion)...
>
> I hesitate to define ANY M3 builtin type in terms of C/C++ standards.
> Regarding WIDECHAR, realize that its definition, like CHAR, should be
> in terms of an enumeration containing some (minimal) number of elements.
> The standard says that CHAR contains at least 256 elements.
> In M3 enumerations all have a direct mapping to INTEGER.
> So, I assume that WIDECHAR would be UTF-32, and TEXT could be encoded
> as UTF-8.
> More radically, what current code will break if CHAR is expanded to
> UTF-32?
> The language definition would allow that (there is nothing that says
> BITSIZE(CHAR) == 8).
>
Well, if so I could rewrite some code to define as BITS 16 FOR WIDECHAR
as WCHAR.
Perhaps that would be the way to go.
However as Rodney M. Bates has said current WIDECHAR is not BITS 16 for
UCHAR.
It uses LE encoding rather than host order encoding a fact which one
could be quite
happy about when it comes to extend Trestle/X11 for widechar support. So
even that
would fail when it came to interface with X11 (or otherwise one would
have to maintain
two branches of code all the time; one that does byte swapping and one
that does not
depending on the host order AND the internally used wchar order which
could then
differ as well.).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20131216/97c4229b/attachment-0002.html>
More information about the M3devel
mailing list