"Once is forgivable: twice is punishable" Restore buildability on PPC (Eric Marsden sbcl-devel 2004-09-21) ... EXTERN-ALIEN-NAME logic; ... also restore self-buildability from a character_branch build: if we're always dumping every kind of string as a base-string, we should make the declarations reflect that.
"It's all part of the learning experience" Preparation for widening CHARACTER. ... rewrite SYMBOLICATE to avoid needing the type system early; instead essentially provide a specialized implementation. ... slightly frob the CONCATENATE and REPLACE transforms (removing the REPLACE one completely for character strings, until the widening occurs).
"You'll make plenty of new friends in no time at all" Make the cross-compiler dump all constant strings as BASE-STRINGs. ... cross-compiler TYPE-OF, TYPEP and friends informed of this logic. (So a host string -- of any type -- will be SB!XC:TYPEP BASE-STRING even if it's not CL:TYPEP BASE-STRING). ... character-string dumping functions can be moved into target-dump.lisp. ... genesis should never see CHARACTER-STRING-FOP.
"Are you a man or a mouse?" Fix (FSVO "fix") remaining data structures scaling linearly with CHAR-CODE-LIMIT. ... all defined format directives are base-char (but allow construction of directives with characters) ... hack SYMBOL-QUOTEP into vague submission, but note that it is in fact hideously buggy and needs a complete rewrite.
"Stop spending all your time with your nose in a book!" Make the reader and readtable scalable. ... attribute-array and macro-array for base-chars; ... attribute-hash-table and macro-hash-table for extended-chars; ... adjust getters and setters in the reader to match.
"Television? Television?!" Select external-format when given :DEFAULT based on nl_langinfo(CODESET). ... setlocale() in main; ... nl_langinfo/CODESET in ldso-stubs/grovel-headers; ... TYPE-WARNING in cross-condition to help me debug my warnings. This will be fixed properly soon in mainline.
"What doesn't kill you makes you stronger" Characters with codes 128-255 are now defined to be Latin-1 (or, equivalently, the character set currently supported consists of the first 256 characters of Unicode). Mostly from Teemu Kalvas. ... include character data (in binary form, added with -kb); ... make (simple-array (unsigned-byte 8) (*)) literals dumpable by the cross-compiler; ... define names for (character-set '((#xa0 . #xbf))); ... test for char-name/graphic-char-p consistency. Note: ucd.lisp is not used anywhere; it's included for interest and because the method of generating the character database for the core might change.
"A brisk walk up the mountain" Make GENESIS use SB!XC:CHAR-CODE for dumping strings ... this means we need to be careful to avoid putting tabs in our string constants. Such tabs are theoretically non-portable anyway. Much of this diff involves tab removal. ... note possible strategies for the other half of this equation: making GENESIS and the cross-compiler dump BASE-STRINGs only. This work will probably be delayed until (VECTOR CHARACTER) is in fact wider than BASE-STRING, for ease of detecting whether something's broken.
"Go to your room, young man" Fix (for x86) the base-string/string interactions in EXTERN-ALIEN-NAME/FOREIGN-SYMBOL-ADDRESS. ... and remove the #.(coerce "foo" 'base-string) monstrosities that were introduced to deal with this. ... some remain, because they're there to deal with SB-UNIX:UNIX-FOO requiring base strings.
"This behaviour is unacceptable" Make the new sbcl (with CHARACTER != BASE-CHAR) build itself ... ensure that alien interfaces coerce (vector character) objects to simple-base-string where necessary; ... decorate the source with a little of the #.(coerce "foo" 'base-string), when a base string is absolutely required; ... make FOREIGN-SYMBOL-ADDRESS require a SIMPLE-BASE-STRING, mostly to help me debug problems. This may well be changed later. ... one or two more filesystem base-string/string fixes.
"Puts some hair on your chest" Fix things revealed by sbcl's test suite ... stop the reader from digging about in stream internals; ... don't enforce readability when writing the fasl header; ... EQUAL is not perforce NIL on strings of different array element type; ... add a little more sequence testing.
"Nothing like the bracing sea air" Implement separation of BASE-CHAR (= ASCII) and CHARACTER. ... CHAR-CODE-LIMIT is still 255 ... BASE-CHAR is (CHARACTER-SET '((0 . 127))) ... new widetags COMPLEX-CHARACTER-STRING and SIMPLE-CHARACTER-STRING (including runtime support, compiler/x86/array.lisp, etc.) ... a whole slew of BASE-STRING/(VECTOR CHARACTER) fixes, including but not limited to * packages * pathnames * sb-unix (and clients) * sb-alien * streams * fasl dumper/loader (some of these might want to be cherry-picked to HEAD, depending on how long this branch lives) ... minor tweak to sb-simple-streams so that all contribs pass This has not yet been tested either against sbcl's own test suite or against Paul Dietz' gcl/ansi-tests
"Pull your socks up" Zeroth draft of teaching the type system about character sets: implement CHARACTER subtypes as CHARACTER-RANGE. ... builds, passes all tests, builds all contribs; ... zeroth draft because it makes types such as (member #\a #\c #\e) unparse uglily. Probably I actually want a CHARACTER-SET representation
* Slightly less, but hopefully more representative of reality, documentation for type checking policies. * Generally reorganize the Compiler chapter a bit, moving and renaming some sections -- eg. split "Compiler Errors" --> "Compiler Diagnostics" and "Compiler Errors". * Back out a bogus lifting of chapter @nodes into sbcl.texinfo which leaked in accidentally. * Remove references to INHIBIT-WARNINGS, leaving only a footnote.
* Include documentation, however sparse, for SB-PROFILE, SB-GRAY, and SB-SIMPLE-STREAMS. * Beginnings of restructuring the manual: lift SB-BSD-SOCKETS into a full chapter called "Networking", etc. * An unfortunate consequence of the above is that we cannot autogenerate the contrib-doc list anymore, and the contrib documentation structure is less otrhogonal and has tighter coupling to the general manual structure. Since new contribs appear relatively seldom this is hopefully not a big issue.