1.0.17.32: faster ADD-METHOD to PRINT-OBJECT
authorChristophe Rhodes <csr21@cantab.net>
Mon, 9 Jun 2008 21:49:15 +0000 (21:49 +0000)
committerChristophe Rhodes <csr21@cantab.net>
Mon, 9 Jun 2008 21:49:15 +0000 (21:49 +0000)
commite66288cd5588b336b79a7e19f1c884e4e3263d53
tree41dcf0c9b7cd4b53bcabf6eae75cc4cd651b3589
parenteded4f764cd9736b34a60d4a53b24cef1e9b203e
1.0.17.32: faster ADD-METHOD to PRINT-OBJECT
The basic idea here is reducing the number of functions whose
discriminating function and effective method cache are
precomputed; in particular, to reduce the number where users can
both legitimately define their own methods, and where a large
number of methods will be applicable to different classes.

The biggest culprit in both of those categories is the
PRINT-OBJECT generic function, which would recompute its entire
dispatch structure every time any method was added or removed.
So, turn off precomputation for names in the CL package; deal
with the bootstrap metacircles that that provokes; special-case
PRINT-OBJECT in COMPUTE-DISCRIMINATING-FUNCTION so that we can
always print certain critical pieces of infrastructure;
also, warn the user if they break our assumptions in
PRINT-OBJECT's specialization.

Fix one broken "how did it ever work" test.
NEWS
src/pcl/boot.lisp
src/pcl/combin.lisp
src/pcl/ctor.lisp
src/pcl/methods.lisp
src/pcl/std-class.lisp
tests/clos.impure.lisp
tests/clos.pure.lisp
version.lisp-expr