[M3devel] cm3 does not support Scan.LongInt
Elmar Stellnberger
estellnb at elstel.org
Mon Dec 16 17:20:13 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).
>
> On Dec 16, 2013, at 4:31 AM, Jay K <jay.krell at cornell.edu
> <mailto:jay.krell at cornell.edu>> wrote:
>
Any code that was built to handle multiple character code sequences will
break.
i.e. any correctly implemented code that relies on UTF-16LE as currently
provided
expanding this range would be inherently non-portable.
(... and it could even cause additional problems for when it came to
interface with Xorg and Qt.)
I'd believe that relying on a fixed range of values is going to be
crucial for any kind of character type.
You did not expand the CHAR type to 16 or 32bit either though that could
even have caused less problems.
Writing code that manipulates characters is simply very different from
writing code that does some calculation
based on integer numbers.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20131216/3a1b7a6c/attachment-0002.html>
More information about the M3devel
mailing list