no more kludge-nondeterministic-catch-block-size
commite156d2e3fde15b6b2f58e42eea876ea315ebac4a
authorChristophe Rhodes <csr21@cantab.net>
Fri, 23 May 2014 10:20:27 +0000 (23 11:20 +0100)
committerChristophe Rhodes <csr21@cantab.net>
Wed, 28 May 2014 07:46:40 +0000 (28 08:46 +0100)
tree578c901f74d2dac98b90698ce3e82606cfaf3682
parent7dfdf1224921ab0696e95702c1cdf08203c1bf78
no more kludge-nondeterministic-catch-block-size

It turns out that the only reason for delaying objdef so late in
the build was the need to inform the compiler's info database
about functions to access slots.  To resolve the ordering issues,
delay all the forms relating to the slots to the same position in
the build (with a new late-objdef source file) but execute all the
forms relating to specials, constants and primitive objects
themselves early.

This is probably the longest-standing SBCL issue, being logged in
the code by WHN 1999-01-31.  It's nice to fix it before we run out
of architectures to port to.
12 files changed:
build-order.lisp-expr
src/compiler/alpha/vm.lisp
src/compiler/arm/vm.lisp
src/compiler/generic/late-objdef.lisp [new file with mode: 0644]
src/compiler/generic/objdef.lisp
src/compiler/generic/vm-macs.lisp
src/compiler/hppa/vm.lisp
src/compiler/mips/vm.lisp
src/compiler/ppc/vm.lisp
src/compiler/sparc/vm.lisp
src/compiler/x86-64/vm.lisp
src/compiler/x86/vm.lisp