corrected BUGS 35 entry as per APD sbcl-devel 2002-08-07 merged APD "more strict type checking" patch (sbcl-devel 2002-08-08), fixing bug 192a ("free type declarations are promises") and one of the problems lumped into bug 194 (the case of type checking getting lost when THE occurs inside MULTIPLE-VALUE-PROG1)
Fix bug 113 ... allow logical hosts to be dumped, as references to the name of the host ... test for dumping behaviour Fix bug 174 ... when the bad directive character has a name, print it as part of the error message Save a massive 20k or so on core size by zapping globaldb entries for cold-init symbols Various text file frobs and comments
fixing insufficient-DEFGENERIC-checking problem in my 0.7.7.10 code (pointed out by APD on sbcl-devel)... ...added APD test case to tests/clos.impure.lisp ...added AUXP value to PARSE-LAMBDA-LIST return values everywhere ...made CHECK-GF-LAMBDA-LIST check AUXP instead of just checking that AUX list is empty
Work around bug 194 in MIN/MAX type checking by using explicit UNLESS instead of THE. (This is loosely based on Matthew Danish's patch from sbcl-devel, which showed that the explicit type tests in CHECK-TYPE worked where THE did not. I also tried a few experiments based on APD's IDENTITY wrapper workaround for bug 194, but I wasn't immediately successful, and I'm not all that motivated to debug clever workarounds instead of just working to fix a real bug.) more tests of MIN and MAX tried to clarify slam.sh in response to emu question on IRC
got rid of SB-PCL::PROCESS-LAMBDA-LIST in favor of reusing PARSE-LAMBDA-LIST Why is PARSE-LAMBDA-LIST in SB-KERNEL? Move it to SB-INT. Now that we rely on ordinary PARSE-LAMBDA-LIST to catch some of the things Alexey's PROCESS-LAMBDA-LIST caught, it should be a little less credulous about things like non-symbols being used as var names. Argh! PARSE-LAMBDA-LIST isn't just used for lambda lists. That would be too obvious.:-( Instead it's also used for "lambda-list-like" things, in PARSE-ARGS-TYPES. So... ...Split the no-sanity-checking version of P-L-L into PARSE-LAMBDA-LIST-LIKE-THING. ...Make PARSE-ARGS-TYPES call P-L-L-L-THING. ...Define PARSE-LAMBDA-LIST in terms of P-L-L-L-THING. ANSI: MAX and MIN "should signal an error of type TYPE-ERROR if any NUMBER is not a REAL". lrasinen on #lisp: "stupid CMUCL". me: "gotta fix this so SBCL can win ICFP next year". (afterthought: "or this year, if you check this patched version out of CVS and then code really fast":-) (extra afterthought: "or maybe next year after all, since bug 194 seems to keep the new THEs from solving the problem")
merged APD bug 122 patch (sbcl-devel 2002-08-30) Tweak seq.impure.lisp test more or less along the lines of APD's explanation of the pathname problem. (SUBSEQ is FLUSHABLE, and validly so. The old test bogusly relied on it not being flushed and/or the compiler not being infernally clever about type inference.)
ported pmai's version of Gerd Moellman's "Remove PCL::EXTRACT-DECLARATIONS" patch (gm cmucl-imp 2002-08-24, pmai cvs diff -D '2002-08-26 16:00 UTC' -D '2002-08-26 16:20 UTC'), to make PCL use the same PARSE-BODY as the rest of the system, instead of reimplementing the wheel. and actually we don't even need PARSE-BODY in DOPLIST as it is currently used, nor ENV either and why the heck is PARSE-BODY in SB!SYS? Move it to SB!INT.
merged APD bug120a patch (sbcl-devel 2002-08-21) deleted "TODO: convert to AVER" note from original patch, replaced it with justification from discussion in cmucl-imp (esp. Alexey's message 2002-08-23) The function has gotten large enough that I really doubt that the DECLAIM INLINE helps, so I deleted it.
Merge (alpha-quality, probably) HPPA/Linux port ... added hppa fixups in genesis.lisp ... moved disassem-state definition from target-disassem.lisp to disassem.lisp, so building it on the host ... lots of new files (thank you, CMUCL) Minor boilerplate cleanups in src/runtime/
fixing tonym's GRUFFALO bug (from #lisp)... ...made MAKE-INSTANCE-FUNCTION-SYMBOL use two colons whether or not the symbol is currently exported, so that EXPORTing the class name after class definition and before class use doesn't lose track of the function ...incremented fasl file format to reflect this (The whole PCL approach of encoding stuff into hairy symbol names interned in odd places is still broken, as can easily be demonstrated by renaming packages. But that's unlikely to be fixed soon, and maybe in the meantime this easy fix can help a little.)
merged APD patch for bugs 191-b (making gf lambda lists conform to ANSI 3.4.2) from sbcl-devel added tests, and fixed old tests whose brokenness is now detected (speculated about reusing SB-C:PARSE-LAMBDA-LIST instead of adding new PROCESS-LAMBDA-LIST, but didn't actually actually do that, in favor of checking in something that works and fixes a bug. Maybe next version...) reverted handling of illegal function name in DEFGENERIC (from previous commit) since I guess it should be PROGRAM-ERROR after all
(I hope this checkin works. I have issued conflicting instructions to do with adding and removal of .cvsignore files, and it's possible that this has confused things. Only the .cvsignore files should be messed up, if anything has gone wrong) Merge APD patch for BUG 191a (sbcl-devel 2002-08-12) ... s/slots-for-this-defclass/slot-names-for-this-defclass/ Merge patch from Gerd Moelmann regarding the long form of DEFINE-METHOD-COMBINATION (cmucl-imp 2002-06-18) Remove now-unneccessary .cvsignore files (having added a "master" cvsignore file in sbcl's CVSROOT)
(I set out to suppress compiler macro expansion when (> COMPILATION-SPEED SPEED), but now that I've read the DEFINE-COMPILER-MACRO specification, I think that'd probably be illegal. So I guess I won't.) As far as I can tell from the ANSI spec, it's nonconforming to return NIL from COMPILER-MACRO-FUNCTION just because of a NOTINLINE declaration. So make COMPILER-MACRO-FUNCTION ignore NOTINLINEness. (I set out to make (DEFINE-COMPILER-MACRO (SETF FOO) ...) work, but gave up, first because (SETF (FOO X) Y) expands into (FUNCALL #'(SETF FOO) Y X) and it's not clear that it's kosher to use compiler macros to transform FUNCALL, and second because ANSI 220.127.116.11 says any compiler macro definition can always be ignored.) made DEFINE-COMPILER-MACRO (SETF FOO) issue a STYLE-WARNING made COMPILER-MACRO-FUNCTION check for legal function names factored out LEGAL-FUN-NAME-OR-TYPE-ERROR to support this tiny ANSI-compliance tweak: made (SETF (COMPILER-MACRO-FUNCTION FOO NIL) ...) work various tweaks to *DEBUG-HELP-STRING* (especially to help people avoid messing with restart numbers, ow!) s/make-breakpoint-info/%make-breakpoint-info/, since leaving the traditional default name MAKE-... exposed when you're really supposed to use CREATE-... is an attractive nuisance s/code-location-number/code-location-selector/, since it's not necessarily a number
COMPILE-FILE-PATHNAME behaviour change (ANSI fix, probably) ... now with extra juicy MERGE-PATHNAMES logic Fixes related to this change ... always absolutify pathnames in SBCL's build procedure (with the TRUENAME-of-a-closed-file-stream trick) ... don't wander off into random memory if an arbitrary stream is fed to a pathname function NEWS update