diff options
author | qrczak <unknown> | 2000-08-07 23:37:24 +0000 |
---|---|---|
committer | qrczak <unknown> | 2000-08-07 23:37:24 +0000 |
commit | 4b17269854ccf10df8b3ca1711410a5ca439ea8a (patch) | |
tree | 7b12ea50c2ef9eb5c093d4e6402c3fd8b8529d4a /ghc/compiler/HsVersions.h | |
parent | 514da0a6391a928e218c82208d9aca089e6caf78 (diff) | |
download | haskell-4b17269854ccf10df8b3ca1711410a5ca439ea8a.tar.gz |
[project @ 2000-08-07 23:37:19 by qrczak]
Now Char, Char#, StgChar have 31 bits (physically 32).
"foo"# is still an array of bytes.
CharRep represents 32 bits (on a 64-bit arch too). There is also
Int8Rep, used in those places where bytes were originally meant.
readCharArray, indexCharOffAddr etc. still use bytes. Storable and
{I,M}Array use wide Chars.
In future perhaps all sized integers should be primitive types. Then
some usages of indexing primops scattered through the code could
be changed to then-available Int8 ones, and then Char variants of
primops could be made wide (other usages that handle text should use
conversion that will be provided later).
I/O and _ccall_ arguments assume ISO-8859-1. UTF-8 is internally used
for string literals (only).
Z-encoding is ready for Unicode identifiers.
Ranges of intlike and charlike closures are more easily configurable.
I've probably broken nativeGen/MachCode.lhs:chrCode for Alpha but I
don't know the Alpha assembler to fix it (what is zapnot?). Generally
I'm not sure if I've done the NCG changes right.
This commit breaks the binary compatibility (of course).
TODO:
* is* and to{Lower,Upper} in Char (in progress).
* Libraries for text conversion (in design / experiments),
to be plugged to I/O and a higher level foreign library.
* PackedString.
* StringBuffer and accepting source in encodings other than ISO-8859-1.
Diffstat (limited to 'ghc/compiler/HsVersions.h')
-rw-r--r-- | ghc/compiler/HsVersions.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ghc/compiler/HsVersions.h b/ghc/compiler/HsVersions.h index b90e474525..00714cddac 100644 --- a/ghc/compiler/HsVersions.h +++ b/ghc/compiler/HsVersions.h @@ -155,13 +155,17 @@ import qualified FastString # define _NIL_ (FastString.mkFastString "") # define _CONS_ FastString.consFS # define _HEAD_ FastString.headFS +# define _HEAD_INT_ FastString.headIntFS # define _TAIL_ FastString.tailFS # define _LENGTH_ FastString.lengthFS # define _PK_ FastString.mkFastString +# define _PK_INT_ FastString.mkFastStringInt # define _UNPK_ FastString.unpackFS +# define _UNPK_INT_ FastString.unpackIntFS # define _APPEND_ `FastString.appendFS` # define _CONCAT_ FastString.concatFS #else +# error I think that FastString is now always used. If not, fix this. # define FAST_STRING String # define SLIT(x) (x) # define _CMP_STRING_ cmpString |