[project @ 2000-08-07 23:37:19 by qrczak]
authorqrczak <unknown>
Mon, 7 Aug 2000 23:37:24 +0000 (23:37 +0000)
committerqrczak <unknown>
Mon, 7 Aug 2000 23:37:24 +0000 (23:37 +0000)
commit4b17269854ccf10df8b3ca1711410a5ca439ea8a
tree7b12ea50c2ef9eb5c093d4e6402c3fd8b8529d4a
parent514da0a6391a928e218c82208d9aca089e6caf78
[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.
53 files changed:
ghc/compiler/HsVersions.h
ghc/compiler/absCSyn/AbsCSyn.lhs
ghc/compiler/absCSyn/CStrings.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/basicTypes/Literal.lhs
ghc/compiler/basicTypes/MkId.lhs
ghc/compiler/basicTypes/OccName.lhs
ghc/compiler/basicTypes/Unique.lhs
ghc/compiler/codeGen/CgCon.lhs
ghc/compiler/codeGen/CgRetConv.lhs
ghc/compiler/deSugar/DsExpr.lhs
ghc/compiler/deSugar/DsUtils.lhs
ghc/compiler/hsSyn/HsBasic.lhs
ghc/compiler/hsSyn/HsCore.lhs
ghc/compiler/javaGen/Java.lhs
ghc/compiler/javaGen/JavaGen.lhs
ghc/compiler/javaGen/PrintJava.lhs
ghc/compiler/main/Constants.lhs
ghc/compiler/nativeGen/AbsCStixGen.lhs
ghc/compiler/nativeGen/MachCode.lhs
ghc/compiler/nativeGen/MachMisc.lhs
ghc/compiler/nativeGen/PprMach.lhs
ghc/compiler/nativeGen/StixPrim.lhs
ghc/compiler/parser/Lex.lhs
ghc/compiler/prelude/PrelInfo.lhs
ghc/compiler/prelude/PrelNames.lhs
ghc/compiler/prelude/PrimRep.lhs
ghc/compiler/prelude/TysPrim.lhs
ghc/compiler/rename/Rename.lhs
ghc/compiler/typecheck/TcTyDecls.lhs
ghc/compiler/utils/FastString.lhs
ghc/compiler/utils/Outputable.lhs
ghc/compiler/utils/UnicodeUtil.lhs [new file with mode: 0644]
ghc/docs/users_guide/glasgow_exts.sgml
ghc/docs/users_guide/vs_haskell.sgml
ghc/includes/ClosureMacros.h
ghc/includes/Constants.h
ghc/includes/HsFFI.h
ghc/includes/PrimOps.h
ghc/includes/RtsAPI.h
ghc/includes/StgTicky.h
ghc/includes/StgTypes.h
ghc/lib/std/PrelBase.lhs
ghc/lib/std/PrelEnum.lhs
ghc/lib/std/PrelRead.lhs
ghc/lib/std/cbits/filePutc.c
ghc/rts/ForeignCall.c
ghc/rts/Prelude.c
ghc/rts/PrimOps.hc
ghc/rts/RtsAPI.c
ghc/rts/StgCRun.c
ghc/rts/StrHash.c
ghc/rts/parallel/Pack.c