Cleanup Issue COMPUTE-APPLICABLE-METHODS

Category
CHANGE
References
88-002R p.2-19

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 (GENERIC)

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

Test Cases

  (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.

Aesthetics

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.

Edit History