cvs commit: hugs98/src unitable.c HsFFI.h builtin.c char.c char.h
storage.c storage.h hugs98/src/unix mkunitable configure.in
hugs98/libraries/Hugs Unicode.hs
ross at glass.cse.ogi.edu
ross at glass.cse.ogi.edu
Thu Nov 13 17:55:18 EST 2003
ross 2003/11/13 17:55:18 PST
Modified files:
src HsFFI.h builtin.c char.c char.h storage.c
storage.h
src/unix configure.in
Added files:
src unitable.c
src/unix mkunitable
libraries/Hugs Unicode.hs
Log:
Start adding basic Unicode support, due to Dimitry Golubovsky
<dimitry at golubovsky.org>.
Add a configure option --enable-unicode-chars, setting the preprocessor
symbol UNICODE_CHARS, which expands the Haskell Char type to Unicode.
If it's not set, all is as before (except for the value of HS_CHAR_MAX
-- maybe it should be configuration-dependent). If it is set:
* maxBound::Char is a lot bigger, numeric character literals can be
just as big, and the Char functions behave as specified in the Report
on the full range of Unicode characters.
* Chars larger than a certain threshold are stored as box cells.
* a new file unitable.c (approx 25k of data) is included in char.c.
The file was automatically generated from a UnicodeData file by
unix/mkunitable
* Unicode tables are used for the Char primitives.
* there are new primitives, accessed via Hugs.Unicode:
primitive primUniGenCat :: Char -> Int
primitive toTitle :: Char -> Char
These go beyond basic support, but are trivial to provide with the new
structures. Any other Unicode properties can go in library modules
and would need no special Hugs support.
Not yet, but coming later: character escapes in string literals, Unicode I/O.
Revision Changes Path
1.15 +1 -1 hugs98/src/HsFFI.h
1.71 +15 -2 hugs98/src/builtin.c
1.2 +148 -0 hugs98/src/char.c
1.2 +21 -3 hugs98/src/char.h
1.81 +33 -2 hugs98/src/storage.c
1.62 +34 -4 hugs98/src/storage.h
1.96 +6 -0 hugs98/src/unix/configure.in
More information about the Cvs-hugs
mailing list