Move 2 slots from most instances of CTYPE into their TYPE-CLASS.
commit8b3c9d0eb3bb0fd0f26d9c74542876252b600d02
authorDouglas Katzman <dougk@google.com>
Thu, 5 Feb 2015 03:13:16 +0000 (4 22:13 -0500)
committerDouglas Katzman <dougk@google.com>
Thu, 5 Feb 2015 03:13:16 +0000 (4 22:13 -0500)
tree1dd588aa63dd7c7df6e7fa7e5de0369039786e15
parent97a8b6677be6d6bb98097f234c120b969cbc42e2
Move 2 slots from most instances of CTYPE into their TYPE-CLASS.

ENUMERABLE and MIGHT-CONTAIN-OTHER-TYPES-P are almost always constant
for all instances of a type-class, so by making them into
possibly-constant pseudo-methods in the manner of SINGLETON-P,
the compiler conses about 1% less and is no slower for it.

The cagey remark that ENUMERABLE is "Meaningless in translated classes"
is contradicted by the fact that CHARACTER is painstakingly arranged to be
enumerable unlike any other classoid. If "meaningless" equates to "not used"
or "is bogus, do not look  at it", then why do this? I've no idea, but
that aspect is preserved for no discernable reason except compatibility.

Also make TYPE-CLASS-NAME read-only.
src/code/alien-type.lisp
src/code/class.lisp
src/code/early-type.lisp
src/code/late-type.lisp
src/code/type-class.lisp
src/code/typedefs.lisp