From: William Harold Newman Date: Thu, 26 Oct 2000 23:21:10 +0000 (+0000) Subject: 0.6.8: tweaked SXHASH DEFTRANSFORMs, fixed HANDLER-BIND X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6973177fbe23d007655345c1fe2e0d6a5e397aa5;p=sbcl.git 0.6.8: tweaked SXHASH DEFTRANSFORMs, fixed HANDLER-BIND --- diff --git a/BUGS b/BUGS index fbfc496..7fde253 100644 --- a/BUGS +++ b/BUGS @@ -22,12 +22,6 @@ but instead the program loops endlessly instead of printing the object. -KNOWN PORT-SPECIFIC BUGS - -OpenBSD-1: - The breakpoint-based TRACE facility doesn't work properly - in the OpenBSD port of sbcl-0.6.7. - KNOWN BUGS RELATED TO THE IR1 INTERPRETER At some point, the pure interpreter (aka the "IR1 interpreter") will @@ -49,6 +43,7 @@ IR1-2: * (COMPILED-FUNCTION-P #'FOO) T + OTHER KNOWN BUGS: (There is also some information on bugs in the manual page and in the @@ -761,3 +756,13 @@ Error in function C::GET-LAMBDA-TO-COMPILE: 58: (SUBTYPEP '(AND ZILCH INTEGER) 'ZILCH) => NIL, NIL + +59: + CL:*DEFAULT-PATHNAME-DEFAULTS* doesn't behave as ANSI suggests (reflecting + current working directory). And there's no supported way to update + or query the current working directory (a la Unix "chdir" and "pwd"), + which is functionality that ILISP needs (and currently gets with low-level + hacks). + +60: + The debugger LIST-LOCATIONS command doesn't work properly. diff --git a/NEWS b/NEWS index d6d74d3..7760233 100644 --- a/NEWS +++ b/NEWS @@ -502,20 +502,14 @@ changes in sbcl-0.6.8 relative to sbcl-0.6.7: of static symbols. * FINISH-OUTPUT is now called more consistently on QUIT. (It used to not be called for a saved Lisp image.) -?? A bug related to the signal handling rewrite, keeping the DEBUG:ARG - function from working, was fixed. * Martin Atzmueller's version of a patch to fix a compiler crash, as posted on sbcl-devel 13 September 2000, has been installed. * Instead of installing Martin Atzmueller's patch for the compiler transform for SUBSEQ, I deleted the compiler transform, and transforms for some similar consing operations. -?? A bug in signal handling which kept TRACE from working on OpenBSD +* A bug in signal handling which kept TRACE from working on OpenBSD has been fixed. - ?? Remember to remove this from the port-specific section of BUGS. -?? The signal handling bug reported by Martin Atzmueller on - sbcl-devel 13 September 2000, which caused the debugger to - get confused after a Ctrl-C interrupt under ILISP, has been fixed. -?? added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized +* added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized away by constant folding * The system now defines its address space constants in one place (in the Lisp sources), and propagates them automatically elsewhere @@ -526,3 +520,5 @@ changes in sbcl-0.6.8 relative to sbcl-0.6.7: the sources, because they have never saved me trouble and they've been source of trouble working with patches and other diff-related operations. +* fixed the PROG1-vs.-PROGN bug in HANDLER-BIND (reported by + ole.rohne@cern.ch on cmucl-help@cons.org 2000-10-25) diff --git a/src/code/early-target-error.lisp b/src/code/early-target-error.lisp index ddf6def..225aa33 100644 --- a/src/code/early-target-error.lisp +++ b/src/code/early-target-error.lisp @@ -314,9 +314,10 @@ bindings)) *handler-clusters*))) (multiple-value-prog1 - ,@forms - ;; Wait for any float exceptions - #!+x86 (float-wait)))) + (progn + ,@forms) + ;; Wait for any float exceptions. + #!+x86 (float-wait)))) ;;;; HANDLER-CASE and IGNORE-ERRORS diff --git a/src/code/sxhash.lisp b/src/code/sxhash.lisp index 0621486..2db5a48 100644 --- a/src/code/sxhash.lisp +++ b/src/code/sxhash.lisp @@ -42,9 +42,20 @@ (ash x -3) ; to get sign bit into hash 361475658))) -;;;; Some other common SXHASH cases are defined as DEFTRANSFORMs in order to -;;;; avoid having to do TYPECASE at runtime. +;;; Some other common SXHASH cases are defined as DEFTRANSFORMs in +;;; order to avoid having to do TYPECASE at runtime. +;;; +;;; We also take the opportunity to handle the cases of constant +;;; strings, and of symbols whose names are known at compile time; +;;; except that since SXHASH on the cross-compilation host is not in +;;; general compatible with SXHASH on the target SBCL, we can't so +;;; easily do this optimization in the cross-compiler, and SBCL itself +;;; doesn't seem to need this optimization, so we don't try. (deftransform sxhash ((x) (simple-string)) - '(%sxhash-simple-string x)) + (if #+sb-xc-host nil #-sb-xc-host (constant-continuation-p x) + (sxhash (continuation-value x)) + '(%sxhash-simple-string x))) (deftransform sxhash ((x) (symbol)) - '(%sxhash-simple-string (symbol-name x))) + (if #+sb-xc-host nil #-sb-xc-host (constant-continuation-p x) + (sxhash (continuation-value x)) + '(%sxhash-simple-string (symbol-name x)))) diff --git a/version.lisp-expr b/version.lisp-expr index 0deeccc..82119ac 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -15,4 +15,4 @@ ;;; versions, and a string a la "0.6.5.12" is used for versions which ;;; aren't released but correspond only to CVS tags or snapshots. -"0.6.7.26" +"0.6.8"