Add some bits to LAYOUT
commit65e0a1dd5235cd9fc210fb15df54256f6a2c1e76
authorDouglas Katzman <dougk@google.com>
Mon, 14 Aug 2017 19:36:37 +0000 (14 15:36 -0400)
committerDouglas Katzman <dougk@google.com>
Mon, 14 Aug 2017 19:36:37 +0000 (14 15:36 -0400)
tree333f252b8ed8ce926e48249ec060a28620bdada5
parenta5391fb84cb62fb4812e6b855b18e1cc63f7e796
Add some bits to LAYOUT

Without looking at layout-classoid we can test whether an object is
an instance of STRUCTURE-OBJECT, CONDITION, or STANDARD-OBJECT.

In addition to being slightly faster to test for those types in EQUALP
and COERCE-TO-CONDITION, it's needed for compact instance headers
on 32-bit word size. The issue there is that CONDITION instances are
variable in length, where length is not conveyed by the layout.
The other two metatypes have the property that layout implies length.
12 files changed:
package-data-list.lisp-expr
src/code/class.lisp
src/code/condition.lisp
src/code/defstruct.lisp
src/code/early-classoid.lisp
src/code/error.lisp
src/code/fop.lisp
src/code/pred.lisp
src/code/print.lisp
src/compiler/dump.lisp
src/compiler/generic/genesis.lisp
src/pcl/wrapper.lisp