+45
−42
+42
−10
Loading
Be sure to cross-compile using boot-2009-03-cross-unicode-foo. Then do a normal build using boot-2009-03-unicode-char as the bootstrap file for a normal build. bootfiles/19e/boot-2008-05-cross-unicode-common.lisp: o Initialize *UNICODE-DATA* to be an EQL hash table instead of EQUAL. The key is a character, so EQL works as well. This also means we don't need to do any hashing of the character, which is problematic in building and bootstrapping with unicode support. code/char/lisp: o Make UNICODE-DATA be inline, since it's so simple. o Clean up unicode implementation of ALPHANUMERICP to use the fast ASCII tests before trying unicode. o Update REBUILD-UNICODE-DATA to take an optional arg for the path to the UnicodeData.txt file, and remove the test for the size of the hash table; we always want to rebuild. compiler/srctran.lisp: o Update deftransforms for CHAR-EQUAL, CHAR-UPCASE, and CHAR-DOWNCASE to handle unicode. However, for speed (I hope), we keep a fast test for ASCII characters.