1.0.28.48: fix regressions from 1.0.28.47
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 15 May 2009 21:11:44 +0000 (21:11 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 15 May 2009 21:11:44 +0000 (21:11 +0000)
commit7c5a4db7b036edb8969b93db5c114df88995ee6e
tree6b0beb30ceac847b827a053b9dec85d6c7a34460
parent8f571a2c80ba0de2a69f6a142d149d3838412a28
1.0.28.48: fix regressions from 1.0.28.47

  * Assert the declared element-type in the
    HAIRY-DATA-VECTOR-(REF|SET)/CHECK-BOUNDS transform, since
    HAIRY-DATA-VECTOR-(REF|SET) transforms no longer fire for
    non-simple arrays.

  * Turns out that %DATA-VECTOR-AND-INDEX was the only place where the
    index was checked being non-negative on some code paths -- not
    taking that route meant that type check weakening from INDEX to
    FIXNUM allowed negative indexes to slip in under the the radar in
    SAFETY 1 code.

    While this follows what we say in the manual, being more careful
    about bounds checks is probably a good idea, so be more
    conservative about weakenin integer types: collapse unions of
    intervals into a single interval, but dont' eliminate the most
    extreme bounds.

    Adjust one test that checked for the old behaviour, and
    update documentation.
NEWS
doc/manual/compiler.texinfo
src/compiler/array-tran.lisp
src/compiler/checkgen.lisp
tests/compiler.impure.lisp
version.lisp-expr