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.
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.
;;; 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))))
;;; 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))
# 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
;;; 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"