#

## Issue COMPUTE-APPLICABLE-METHODS Writeup

    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.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.