[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

update-method-inheritance invalidates gf's unnecessarily



When a new class is defined, ADD-NAMED-CLASS creates an instance of
STANDARD-CLASS for it.  This instance has a CLASS-PRECEDENCE-LIST
(CPL) of (T) while the class will ultimately have some actual CLP of
say (C-N ... C-0 T).  Eventually UPDATE-METHOD-INHERITANCE gets called
and all CLASS-DIRECT-METHODS on classes named C-N ... C-O have
INVALIDATE-GENERIC-FUNCTION run on their METHOD-GENERIC-FUNCTION.

So, for example, if you define a class built on STANDARD-CLASS, ~107
generic functions of PCL are trashed.  This invalidation is
unnecessary because this new class has no methods defined for it yet
and thus can't alter any generic function's behavior.

I wasn't sure where to fix this.