PRINT-UNREADABLE-OBJECT isn't specified to do anything nice with pprint logical blocks, and it's hard to do anything nice without surprising the user, and (as pointed out by Antonio Martinez) it's specifically not supposed to do some of the whitespace stuff it was doing. So just ignore any pretty-streamness and do entirely physical output. tweaked ENCAPSULATE logic so that BACKTRACE reporting of TRACEd functions will be slightly less obscure: 1: (.... ) instead of 1: ("varargs entry for #'(LAMBDA (&REST SB!INT:ARG-LIST) ...)" ...) ruthlessly plundered CMU CL CVS and Gerd's emailed expertise for %NO-PRIMARY-METHOD .ARGS. code
Fix SLOT-MISSING/SLOT-UNBOUND bugs found by Paul Dietz' test suite ... return a single value for SLOT-VALUE, the new value for (SETF SLOT-VALUE), a boolean equivalent for SLOT-BOUNDP and the object for SLOT-MAKUNBOUND ` ... adjust a bogus test in our regression test suite :-/
* Fix bug 15: enable emitting a style warning for redefining FTYPE in PROCLAIM; * fix bug 46c: uncomment the corresponding checks in COERCE; * NOTINLINE does not prevent using function type; * write SIMPLE-= method for functions; * signal STYLE-WARNING on IR1 transform redefinition; * combine conflicting tansformers for %CHECK-BOUND.
A couple of fixes: ... SEARCH and test predicate argument ordering: patch from Wolfhard Buss cmucl-imp 2003-06-13 ... VECTOR-PUSH-EXTEND and type inference: disable MAKE-ARRAY dimension type inferencing for non-simple 1d arrays, as the dimension can change too easily. Regressions noted by pfdietz' test suite.
Grab bag of fixes: ... PROFILE on a string (naming a package) shouldn't try to profile macros and special operators any more; ... SB-KERNEL, not KERNEL, in "I'm deeply confused" error message strings; ... UNBOUND-SLOT is a CELL-ERROR, so use the NAME slot (and delete the SLOT slot :-) (thanks to pfdietz) ... delete the INITIALIZE-INFO slot from SLOT-CLASS (observation from Gerd Moellmann) ... DESCRIBE on unfinalized classes shouldn't cause an error (reported by kr at molecubotics sbcl-devel 2003-06-13) ... fix bug in FORMATTER revealed by shiny new exciting format string for DESCRIBE-OBJECT (CLASS T): original args aren't necessarily available in pretty-printer expansion (specifically, not for "~@< ~:>"); ... tests for some of the above.
* SB-CLTL2: first try on VARIABLE-INFORMATION; * MAKE-ARRAY: infer array size in complex case; * second look at CONCATENATE optimization: create new START variable for each sequence. It would be nice to write a regression test for (time (compile nil '(lambda () (list (concatenate 'string "qqqqqqqqqqqqqqqqqqqqqq" "tttttttttttttttttttttttttt" "wwwwwwwwwwwwwwwwwwwwwwwwwwww")))))
Better error reporting for bad types: ... signal a simple-error on bare AND, OR, MEMBER or VALUES. ... when within the compiler, handle argument count mismatch errors within CAREFUL-[VALUES-]SPECIFIER-TYPE. ... (DEFTYPE FOO () 'FIXNUM) (TYPEP 11 'FOO) (TYPEP 11 '(FOO)) is legal.
Make VALUES derive type optimizer accurate: ... since we have this nice interpretation of VALUES types, use it in the VALUES derive-type optimizer -- we will return exactly as many values as VALUES has arguments; ... fix the bugs that this reveals in sbcl; :-) ... enables us to detect more bogosity: test for some more type mismatches being caught. ... (relatedly) fix one more duplicate definition in sb-bsd-sockets Array initializer type warning fix: ... don't do (csubtypep (ctype-of x) eltype), because that's wrong for e.g. X = #\a and eltype being STANDARD-CHAR; use CTYPEP instead.
Minor fixes: ... don't define a LENGTH type for disassembly; we're not allowed to do that, because LENGTH is in the CL package. Call it DISASSEM-LENGTH instead. (reported by rtoy on #lisp IRC) ... cut'n'pasteo: restart print functions in warm init now refer to variables that are bound, rather than those that aren't.
COMPILE-FILE and "static linking" ... we are allowed to consider references to functions defined in the same file as such. At present, we don't inline such references, but merely use previously-derived type information when compiling calls. ... also, since the consequences are undefined for multiple definitions in the same file, add a warning for that case (and fix the examples in the codebase itself :-)
large contrib/simple-streams patch including many CMUCL changes by Paul Foley (Thanks to Rudi Schlatte sbcl-devel 2003.06.08) ... melded streams are implemented ... removed device-extend; it's deprecated in acl's simple-streams implementation and will go away there too ... prettier print-object methods ... various small fixes ... Implemented file-position ... Removed some sbcl internals redefinition: no need to rewrite unix-lseek, use sb-posix for mmap, munmap ... Can now remove sb-grovel requirement too ... Commented out (but not deleted yet) heavily sbcl-internals-dependent slot access machinery (def-stream-class, with-stream-class, sm). ... Various bug fixes, e.g. read-line now works for lines longer than 80 characters