Skip to content

Commit

Permalink
0.8.7.16:
Browse files Browse the repository at this point in the history
        * Fix PFD's MISC.275: in IR1-OPTIMIZE-CAST DEST of an
          multi-use LVAR may be not a block start.
  • Loading branch information
Alexey Dejneka committed Jan 17, 2004
1 parent 8dd43b8 commit c0595e9
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 7 deletions.
11 changes: 6 additions & 5 deletions CREDITS
Expand Up @@ -540,11 +540,12 @@ Alexey Dejneka:
tremendous amount of work on the compiler in particular, fixing
bugs and refactoring.

Paul Dietz
He is in the process of writing a comprehensive test suite for the
requirements of the ANSI Common Lisp standard. Already, at the
halfway stage, it has caught hundreds of bugs in SBCL, and provided
simple test cases for them.
Paul Dietz He is in the process of writing a comprehensive test suite
for the requirements of the ANSI Common Lisp standard. Already, at
the halfway stage, it has caught hundreds of bugs in SBCL, and
provided simple test cases for them. His random crash tester has
caught an old deep problem in the implementation of the stack
analysis phase in the compiler.

Miles Egan
He creates binary packages of SBCL releases for Red Hat and other
Expand Down
2 changes: 2 additions & 0 deletions NEWS
Expand Up @@ -2246,6 +2246,8 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7:
* fixed some bugs revealed by Paul Dietz' test suite:
** in stack analysys liveness information is propagated from
non-local entry points.
** pathwise CAST removing failed when the CAST node did not start
a block.

planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
Expand Down
3 changes: 2 additions & 1 deletion src/compiler/ir1opt.lisp
Expand Up @@ -1722,7 +1722,8 @@
(immediately-used-p value use))
(unless next-block
(when ctran (ensure-block-start ctran))
(setq next-block (first (block-succ (node-block cast)))))
(setq next-block (first (block-succ (node-block cast))))
(ensure-block-start (node-prev cast)))
(%delete-lvar-use use)
(add-lvar-use use lvar)
(unlink-blocks (node-block use) (node-block cast))
Expand Down
23 changes: 23 additions & 0 deletions tests/compiler.pure.lisp
Expand Up @@ -1094,3 +1094,26 @@
:good
(values result1 result2))))
:good))
;;; MISC.275
(assert
(zerop
(funcall
(compile
nil
'(lambda (b)
(declare (notinline funcall min coerce))
(declare
(optimize (speed 1)
(space 2)
(safety 2)
(debug 1)
(compilation-speed 1)))
(flet ((%f12 (f12-1)
(coerce
(min
(if f12-1 (multiple-value-prog1
b (return-from %f12 0))
0))
'integer)))
(funcall #'%f12 0))))
-33)))
2 changes: 1 addition & 1 deletion version.lisp-expr
Expand Up @@ -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.8.7.15"
"0.8.7.16"

0 comments on commit c0595e9

Please sign in to comment.