ensure-generic-function method-combination argument broken

Bug #936513 reported by Greg Pfeil on 2012-02-19
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

CL specifies that the method-combination argument to ensure-generic-function is a "method combination object". However, SBCL doesn't accept such an object as an argument:

    (let ((mc (sb-pcl:find-method-combination #'make-instance 'standard nil)))
      (ensure-generic-function 'make-instance :method-combination mc))

    => The value #<SB-PCL::STANDARD-METHOD-COMBINATION STANDARD NIL {10002DE003}> is not of type LIST.

I appreciate that SBCL allows '(standard) to be passed as the argument, since CL specifies no way to actually get hold of a method combination object, but since the MOP _does_ specify a way to get the object, it'd be nice if that object were also accepted as an argument.

I actually was using the '(standard) form, but in porting my library to other implementations, I discovered that no everyone likes that. So I tried to go the more standard route, but now I have to conditionalize sbcl.

uname: Darwin Tiamat.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64

Tags: pcl Edit Tag help
Changed in sbcl:
assignee: nobody → Nikodemus Siivola (nikodemus)
status: New → Triaged
importance: Undecided → Low
Nikodemus Siivola (nikodemus) wrote :

commit 1f9c4bb952a1f8b19ee9da0f54e95b2b3aa9111a
Author: Nikodemus Siivola <email address hidden>
Date: Sun May 20 20:11:29 2012 +0300

    make ENSURE-GENERIC-FUNCTION accept method combination arguments

      Previously we only accepted a list designating the method combination, but
      since MOP also specifies a way to grab the actual method combination, we
      should really accept that as well.

      Fixes bug 936513.

Changed in sbcl:
assignee: Nikodemus Siivola (nikodemus) → nobody
status: Triaged → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers