logo       

Re: Re: Bogus No primary methods?: msg#00065

lisp.corman

Subject: Re: Re: Bogus No primary methods?



Christophe Rhodes wrote:
> Frode Vatvedt Fjeld <lisp-cormanlisp@xxxxxxxxxxx> writes:
>
> > Kenny Tilton <ktilton@xxxxxxxxxx> writes:
> >
> >>> (cells::cv-test)
> >>> ;;; An error occurred in function
> STD-COMPUTE-EFFECTIVE-METHOD-FUNCTION:
> >>> ;;; Error: No primary methods for the generic function
> >>> #<Standard-Generic-Function CELLS::C-AWAKEN #x1CB7D68>.
> >
> > I think this is really a malreported no-applicable-method error. Are
> > you sure there is a method that matches the arguments?
>
> I'm late to this discussion, but an :AROUND method is not a primary
> method as defined by CLOS. So
> (defmethod foo :around ((x integer)) x)
> followed by
> (foo 1)
> can't go through NO-APPLICABLE-METHOD, because there _is_ an
> applicable method; there is no primary method, though, so there
> should be an error of some kind. Maybe this was the situation in
> question?

1. As noted in other follow-ups, this code works in ACL, LW, and CLisp,
so there certainly was an applicable primary method. I cannot say which
because the error did not mention for which arguments it could not find
an applicable method, but it was probably one of the ones reported in
the original error report:

Kenny Tilton wrote:
> (cells::cv-test)
> ;;; An error occurred in function STD-COMPUTE-EFFECTIVE-METHOD-FUNCTION:
> ;;; Error: No primary methods for the generic function
> #<Standard-Generic-Function CELLS::C-AWAKEN #x1CB7D68>.
> ;;; Entering Corman Lisp debug loop.
> ;;; Use :C followed by an option to exit. Type :HELP for help.
> ;;; Restart options:
> ;;; 1 Abort to top level.
> (generic-function-methods (find-generic-function 'CELLS::C-AWAKEN))
> (#<Standard-Method CELLS::C-AWAKEN (CELLS::C-DRIFTER) #x1CF5F18>
> #<Standard-Method CELLS::C-AWAKEN (CELLS::C-RULED) #x1CF8F88>
> #<Standard-Method CELLS::C-AWAKEN (CELLS::C-VARIABLE) #x1CFD690>
> #<Standard-Method CELLS::C-AWAKEN :AROUND (CELLS:CELL) #x1CF9068>)

Note also that after eliminating one use of :around I then crashed on
the next GF which happened to use :around.

The only reason I am knocking out :arounds instead of just tossing
CormanLisp is that I am very close to having Cells working in all four
win32 CLs so I will give CormanCL another couple of hours before I punt.

Keeping the arounds would mean waiting until CormanCL supported those,
and that could be a while whether it calls for a fix or new feature. And
by knocking out the arounds (there were just a few) I get to find out
what else works differently in CormanCL.


--

kenny tilton
clinisys, inc
http://www.tilton-technology.com/
---------------------------------------------------------------
"Cells let us walk, talk, think, make love and realize
the bath water is cold." -- Lorraine Lee Cudmore



------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get 128 Bit SSL Encryption!
http://us.click.yahoo.com/xaxhjB/hdqFAA/xGHJAA/SyjtlB/TM
---------------------------------------------------------------------~->

To unsubscribe from this group, send an email to:
cormanlisp-unsubscribe@xxxxxxxxxxxxxxx



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise