summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Harold Newman <william.newman@airmail.net>2000-10-26 23:21:10 +0000
committerWilliam Harold Newman <william.newman@airmail.net>2000-10-26 23:21:10 +0000
commit6973177fbe23d007655345c1fe2e0d6a5e397aa5 (patch)
treee939a72a59e80a8faf816adfd45700fbd9ce1458
parent7f76d571fe545578e3bd26e627d181a39a8f1eb7 (diff)
0.6.8: tweaked SXHASH DEFTRANSFORMs, fixed HANDLER-BINDsbcl_0_6_8
-rw-r--r--BUGS17
-rw-r--r--NEWS12
-rw-r--r--src/code/early-target-error.lisp7
-rw-r--r--src/code/sxhash.lisp19
-rw-r--r--version.lisp-expr2
5 files changed, 35 insertions, 22 deletions
diff --git a/BUGS b/BUGS
index fbfc496ee..7fde25302 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 d6d74d386..776023391 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 ddf6def0f..225aa3396 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 0621486f6..2db5a484b 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 0deeccc2c..82119ac40 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"