Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Change uses of _"foo" to (intl:gettext "foo"). This is because slime may get confused with source locations if the reader macros are installed.
Remove _N"" reader macro from docstrings when possible.
Merge intl-branch 2010-03-18 to HEAD. To build, you need to use boot-2010-02-1 as the bootstrap file. You should probably also use the new -P option for build.sh to generate and update the po files while building.
Restart internalization work. This new branch starts with code from the intl-branch on date 2010-02-12 18:00:00+0500. This version works and LANG=en@piglatin bin/lisp works (once the piglatin translation is added).
code/alieneval.lisp code/backq.lisp code/bignum.lisp code/bit-bash.lisp code/bsd-os.lisp code/byte-interp.lisp code/char.lisp o Mark translatable strings i18n/locale/cmucl.pot i18n/locale/ko/LC_MESSAGES/cmucl.po o Update
Add (intl:textdomain "cmucl") to the files to set the textdomain.
Merge Unicode work to trunk. From label unicode-utf16-extfmt-2009-06-11.
Revert previous change that added case folding to string-equal and friends. We can't really do that for a couple of reasons: - Case folding should be done on the NFD form according to the Unicode spec - Full case folding may change the length of the string so it's not clear what the return value from string-lessp and friends should be. Instead, we provide a new function, STRING-CASE-FOLD, to perform case folding. code/char.lisp: o Use lowercase for case insensitve comparisons again. code/string.lisp: o Remove :casing option for string-lessp and friends. o Remove code needed to support :casing option. o Add STRING-CASE-FOLD to perform case folding operation. compiler/fndb.lisp: o Remove :casing option from defknowns.
code/char.lisp: o Use simple case folding for case-insensitive character comparisons. code/string.lisp: o Add new :CASING parameter for STRING-EQUAL and friends to allow for simple or full case folding. Default is :SIMPLE. o Update code to allow for simple or full case folding. compiler/fndb.lisp: o Tell compiler about new :CASING parameter.
Oops. Revert previous change. Can't convert #\- because some Unicode names contain a hyphen.
Allow #\- in the name for NAME-CHAR.
Fix test in BOTH-CASE-P. The lower limit is +unicode-category-upper+, not unicode-category-lower+.
code/char.lisp: o Define CODEPOINT-LIMIT o Define CODEPOINT type code/extfmts.lisp code/string.lisp ode/unidata.lisp pcl/simple-streams/external-formats/utf-32.lisp pcl/simple-streams/external-formats/utf-8.lisp o Use the CODEPOINT type in declarations.
Do case-insensitive comparison by converting to lower case instead of upper case. This is what Unicode CaseFolding.txt does. One example of where it matters is U+1E9E is mapped to a lower case U+DF. But the upper case version of U+DF is U+DF. char.lisp: o Change EQUAL-CHAR-CODE to convert to lowercase. string.lisp: o Change EQUAL-CHAR-CODEPOINT to convert to lowercase. o Fix mistake in STRING-LESS-GREATER-EQUAL which was incorrectly comparing the codepoints instead of the equal-char-codepoint values.
More updates from Paul: changes the order [of the unicode categories], which fixes some bugs, too. Need to rebuild unidata.bin once more.
From Paul: Added a title-case-p and normalized the docstrings, too (indentation, use of NIL instead of (), and removed references to ASCII) (But I didn't adjust indentation. The indentation is right for printing docstrings via describe and friends.) code/char.lisp: o Make changes listed above code/exports.lisp: o Export TITLE-CASE-P
Use +unicode-category-upper+ and +unicode-category-lower+ instead of #x1d and #x17, respectively.
Updates from Paul: add numeric values and decompositions to unidata, added char-titlecase, and made string-capitalize use title-case rather than upper-case, when those are different. The unidata.bin file needs to be rebuilt, and a cross-compile needs to be done to support the new unidata.bin format.
New implementation of the unidata structures from Paul. He says he changed the implementation to use a three way split of the codepoint instead of binary search, renamed a few things, altered the way it encodes the general category information slightly, so that "Cn" (nonexistent character) turns into #x00 (was #x08), and fixed the case-conversion code (which ignored titlecase characters). Updated unidata.bin too with the new data.
Import Paul's new routines for storing and accessing the Unicode data. i18n/NameAliases.txt: o New file: Unicode NameAliases tools/build-unidata.lisp: o New file: Reads UnicodeData.txt and NameAliases.txt and creates unidata.bin that is accessed by Lisp to obtain unicode information. code/unidata.lisp: o New file: Lisp interface to unidata.bin code/char.lisp: o Updated to use the new interface code/print.lisp: o Can't set up characer-attributes array with full Unicode data at startup because the search-list isn't set up yet. Hence, only initialize part of the array, and use an *after-save-initializations* function to fill array with Unicode data after the search-list has been initialized. compiler/srctran.lisp: o Update deftransforms to use the new interface. tools/make-main-dist.sh: o Copy unidata.bin into the distribution. tools/worldbuild.lisp: o Load unidata.lisp tools/worldcom.lisp: o Compile unidata.lisp
Merge from unicode-utf16-branch to get equal hash-table fixes so that name-char works again.
Use EQUAL hash table so we can look up names correctly. Works because SXHASH doesn't upcase characters anymore.
Merge from unicode-utf16 branch, label unicode-utf16-char-support-2009-03-26. Fix a typo in char.lisp too.
Oops. Fix typo.
Update deftransforms for unicode. 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.
Merge from unicode-utf16 branch, label unicode-utf16-char-support-2009-03-25 to get character support.
Character name and properties support, from Paul Foley, slightly modified by Raymond Toy. Use 19f/boot-2009-03-cross-unicode-<arch> for the cross compile script. Use 19f/boot-2009-03-unicode-char for the bootstrap file to initialize the unicode character structures. bootfiles/19e/boot-2008-05-cross-unicode-common.lisp: o Just add new slots to fd-stream here, to make it easier to bootstrap the utf16-extfmts code, and to select the clobber-it restart automatically. o Build the initial unicode properties bootfiles/19f/boot-2009-03-cross-unicode-ppc.lisp: bootfiles/19f/boot-2009-03-cross-unicode-sparc.lisp: bootfiles/19f/boot-2009-03-cross-unicode-x86.lisp: o New scripts for cross-compiling. Basically just calls the original ones in the 19e directory. bootfiles/19f/boot-2009-03-unicode-char.lisp: o Bootstrap file to load up the full unicode properties. i18n/UnicodeData.txt: o UnicodeData.txt, obtained from unicode.org/Public/UNIDATA/UnicodeData.txt, 2009-03-24. code/fd-stream.lisp: o Add new slots to fd-stream, needed by utf16-extfmts branch. code/char.lisp: o Define structure to hold unicode properties of each character and new hash table to hold the properties. o Update CHAR-NAME and NAME-CHAR to give the character names and code, respectively. o Update GRAPHIC-CHAR-P, ALPHA-CHAR-P, UPPER-CASE-P, LOWER-CASE-P, BOTH-CASE-P, ALPHANUMERICP, EQUAL-CHAR-CODE, CHAR-UPCASE, and CHAR-DOWNCASE to handle unicode characters. o Add function REBUILD-UNICODE-DATA to update the unicode structures from UnicodeData.txt.
Sync to snapshot 2008-11. But we didn't sync code/extfmts.lisp or iso8859-1.lisp and utf-8.lisp. (I don't think we want those changes, yet.)
Merge from snapshot-2008-09.
The character names listed char-name-alist need to be a capital letter followed by lower case letters. This is needed to match what format ~:C produces. (Issue caught by ansi-tests.) Add a comment here so we don't forget.
Print out characters using U+xxxx form if needed. Accept #\U+xxxx as characters. More error checking needed, but this basic functionality is correct. From Paul Foley.
Sync to HEAD branch.
Some cleanups from Paul Foley: o Not that it really matters, since they're not printed and case-insensitive on read, but the control character names should really be upper-case o Also cleans up some anachronistic mention of character fonts and bits.
Change char-code-limit to 65536 for unicode support.
Upcase some of the character names so that ~:C and ~S produce the same output. (ANSI-TEST FORMAT.S.8.)
Change the default print names for the characters #\^\\, #\^], #\^^, and #\^_ to be the ASCII names. (This is for consistency. There was a bug in printing the name for #\^\\, and this works around that.)
Make "Newline" be the char-name instead of "Linefeed", as mandated by CLtS.
Checked in Brian Spilsbury's experimental Unicode, locales, and dialect support patchset. This lives on its own branch, so that people can play with it and tweak it, without disturbing 18e release engineering on the main branch. Bootstrapping has only been tried on LINKAGE_TABLE x86/Linux builds. A working cross-compile script is checked in under bootfiles/19a/boot1-cross-unicode.lisp. The script still leaves you with some interactive errors, on the cross compile, which you should answer with 2. See the mailing list for more information.
Update from the current main branch.
Fixes and improvements to July-14 commit dealing with condition types in calls to error. From Douglas.
This revision merges in many of the fixes for ANSI condition types in various calls to ERROR. Those easily handled by using new condition types simple-file-error and simple-program-error are included. The only functional change here is that the function CHARACTER no longer accepts an integer argument so as to be ANSI compliant. This may break some code.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Character name changes: add control character names e.g. #\^a etc, and ASCII names for these. From Raymond Toy. Better ANSI CL conformance (vote CHAR-NAME-CASE:X3J13-MAR-91); names as given in the spec.
Fix headed boilerplate.
Fix compiler warnings.
added type declarations from eff notes. made digit-char-p and digit-weight maybe-inline.
Changed BASE-CHARACTER to BASE-CHAR
Changed ordering of CHAR-NAME-ALIST to prefer NEWLINE, ESCAPE and DELETE to LINEFEED, ALTMODE and RUBOUT (when printing.)
.../systems-work/code/char.lisp, 20-Jun-90 14:25:00, Edit by Chiles. I changed STANDARD-CHAR-P to no longer return t for #\return.
New file header with RCS header FILE-COMMENT.
Moved MIPS branch onto trunk; no merge necessary.
Added definition for %standard-char-p.
Initial MIPS version.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|