Issue:         COMPUTE-APPLICABLE-METHODS

References:    88-002R p.2-19

Category:      CHANGE

Edit history:  2-May-90, Version 1 by Moon

Problem description:

  COMPUTE-APPLICABLE-METHODS is documented as a regular function but it
  should be a generic function, because the metaobject protocol wants to
  allow different generic function classes to do it differently.

  This is Symbolics issue #30 and Loosemore issue #22 of 27 Feb 90.

Proposal (COMPUTE-APPLICABLE-METHODS:GENERIC):

  Change COMPUTE-APPLICABLE-METHODS from "Function" to "Standard Generic
  Function."

Test Case:

  (typep #'compute-applicable-methods 'generic-function) => t

Rationale:

  Needed for metaobject protocol.

Current practice:

  Symbolics Genera 8.0 and Lucid 4.0.0 Beta-1 implement the proposal,
  however the test case returns nil in Lucid due to an unrelated bug.
  Other CLOS implementations were not surveyed.

Cost to Implementors:

  Easy.

Cost to Users:

  None.

Cost of non-adoption:

  This will have to be changed later when the metaobject protocol is put in
  either as a standard or as an implementation-supplied extension.

Performance impact:

  None of consequence.

Benefits:

  Corrects a technical error in 88-002R.

Esthetics:

  Neutral.

Discussion:

  Gregor says this is correct.

  Originally Moon thought there were also problems with SLOT-BOUNDP,
  SLOT-EXISTS-P, and SLOT-MAKUNBOUND, but it turns out that those problems
  were corrected before 88-002R was published.
