0.6.8: tweaked SXHASH DEFTRANSFORMs, fixed HANDLER-BIND
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 26 Oct 2000 23:21:10 +0000 (23:21 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 26 Oct 2000 23:21:10 +0000 (23:21 +0000)
BUGS
NEWS
src/code/early-target-error.lisp
src/code/sxhash.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index fbfc496..7fde253 100644 (file)
--- 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 (file)
--- 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)
index ddf6def..225aa33 100644 (file)
                                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))))
 \f
 ;;;; HANDLER-CASE and IGNORE-ERRORS
 
index 0621486..2db5a48 100644 (file)
                   (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))))
index 0deeccc..82119ac 100644 (file)
@@ -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"