0.8.6.35:
authorChristophe Rhodes <csr21@cam.ac.uk>
Thu, 11 Dec 2003 13:34:25 +0000 (13:34 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Thu, 11 Dec 2003 13:34:25 +0000 (13:34 +0000)
commit2ead789c809434cafe7bed188c6de2670177614e
treeb572a92be3188f04ef398bb699019faf47acb818
parent80ebbaeab5ba077437ec31b7ac82329ae04c4c42
0.8.6.35:
At the request of the type system's most heavy user...
... refactor NEGATION-TYPEs

... make NEGATE an operation in TYPE-CLASS
... define type methods for :NEGATE, replacing one god-awful
NOT type translator
... define a (cached) TYPE-NEGATION function
... replace too many uses of
(specifier-type `(not ,(type-specifier foo)))
with (type-negation foo)

We pass as many tests as we used to (both here and in PFD's suite)
and we now go faster than we did before 0.8.6 on PFD's random
tester.  Sounds good to me.

(This was initially part I of a two part refactor.  This stage
turns out to be enough for now; if it hadn't been, it should be
possible to achieve even greater speed by changing the representation
of CONS types to include not just CAR and CDR types but also
their negations; then operations on CONS types such as UNION and NEGATE
would be much much faster, at a slight cost in initialization).
NEWS
src/code/alien-type.lisp
src/code/class.lisp
src/code/late-type.lisp
src/code/type-class.lisp
version.lisp-expr