0.9.2.31:
authorNathan Froyd <froydnj@cs.rice.edu>
Tue, 5 Jul 2005 20:44:37 +0000 (20:44 +0000)
committerNathan Froyd <froydnj@cs.rice.edu>
Tue, 5 Jul 2005 20:44:37 +0000 (20:44 +0000)
Oops.  Revert broken 0.9.2.6 change.  Record a BUG for posterity.
...fix the run-tests.sh script while we're at it, too.

BUGS
src/compiler/srctran.lisp
tests/compiler.pure.lisp
tests/run-tests.sh
version.lisp-expr

diff --git a/BUGS b/BUGS
index a6fca6d..42b6a8e 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -2083,3 +2083,16 @@ WORKAROUND:
 
   Similar problems exist with SIMPLE-ARRAY-P, ARRAY-HEADER accessors
   and all array dimension functions.
+
+383: ASH'ing non-constant zeros
+  Compiling
+    (lambda (b)
+      (declare (type (integer -2 14) b))
+      (declare (ignorable b))
+      (ash (imagpart b) 57))
+  on PPC (and other platforms, presumably) gives an error during the
+  emission of FASH-ASH-LEFT/FIXNUM=>FIXNUM as the assembler attempts to
+  stuff a too-large constant into the immediate field of a PPC
+  instruction.  Either the VOP should be fixed or the compiler should be
+  taught how to transform this case away, paying particular attention
+  to side-effects that might occur in the arguments to ASH.
index 20ce740..b4214fc 100644 (file)
 ;;; Perhaps we should have to prove that the denominator is nonzero before
 ;;; doing them?  -- WHN 19990917
 (macrolet ((def (name)
-             `(deftransform ,name ((x y) ((integer 0 0) integer)
+             `(deftransform ,name ((x y) ((constant-arg (integer 0 0)) integer)
                                    *)
                 "fold zero arg"
                 0)))
   (def /))
 
 (macrolet ((def (name)
-             `(deftransform ,name ((x y) ((integer 0 0) integer)
+             `(deftransform ,name ((x y) ((constant-arg (integer 0 0)) integer)
                                    *)
                 "fold zero arg"
                 '(values 0 0))))
index a7e59e3..7cb31f2 100644 (file)
 ;;; crash in the ASH vop (since a shift of 57 wouldn't fit in the
 ;;; machine's ASH instruction's immediate field) that the compiler
 ;;; thought was legitimate.
+;;;
+;;; FIXME: this has been recorded as bug 383.  The attempted fix (sbcl
+;;; 0.9.2.6) led to lots of spurious optimization notes.  So the bug stil
+;;; exist and this test case serves as a reminder of the problem.
+;;;   --njf, 2005-07-05
+#+nil
 (compile 'nil
          (LAMBDA (B)
            (DECLARE (TYPE (INTEGER -2 14) B))
index 4060d14..89bdaaa 100644 (file)
@@ -20,7 +20,7 @@
 # generated relative to `pwd` in the tests/ directory) so that tests
 # can chdir before invoking SBCL and still work.
 sbclstem=`pwd`/../src/runtime/sbcl
-SBCL="${1:-$sbclstem --core `pwd`/../output/sbcl.core --noinform --sysinit /dev/null --userinit /dev/null --noprint}"
+SBCL="${1:-$sbclstem --core `pwd`/../output/sbcl.core --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger}"
 export SBCL
 echo /running tests on SBCL=\'$SBCL\'
 # more or less like SBCL, but without enough grot removed that appending
index 8c0f018..e551092 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.2.30"
+"0.9.2.31"