Custom Query (1030 matches)
Results (280 - 282 of 1030)
| Ticket | Resolution | Summary | Owner | Reporter |
|---|---|---|---|---|
| #600 | fixed | defmethod congruency checks | ||
| Description |
(From Pascal Costanza, http://clozure.com/pipermail/openmcl-devel/2009-September/010353.html) Clozure Common Lisp seems to be too eager in its checking of congruency of generic function lambda lists and those of their methods. Consider the following example: ? (defgeneric foo (a b c))
#<STANDARD-GENERIC-FUNCTION FOO #x30004125B93F>
? (add-method
#'foo
(make-instance 'standard-method
:qualifiers '()
:specializers (list (find-class 't) (find-class 't) (find-class 't))
:lambda-list '(a b c)
:function (lambda (&rest args) (print args))))
> Error: Lambda list of method #<STANDARD-METHOD NIL (T T T)>
> is incompatible with that of the generic function FOO.
> Method's lambda-list : (A B C)
> Generic-function's : (A B C)
While executing: CCL::CHECK-DEFMETHOD-CONGRUENCY, in process
listener(1).
Indeed, check-defmethod-congruency uses the method-function to check for congruency, while it should actually use method-lambda-list for that purpose (at least in non-standard cases). As far as I can tell at the moment, this is the only remaining step so that I can provide compatibility in Closer to MOP of the generic function invocation protocol to the specification in AMOP. |
|||
| #1125 | duplicate | defining a function named nil | ||
| Description |
It's disgusting I know. I blame the bad company I hang with. One or two of whom like to defining functions on keywords. So I think "Yeah! how about NIL?" bash-3.2$ ccl64 Welcome to Clozure Common Lisp Version 1.9-r15759 (DarwinX8664)! ? (defun nil () (print :shame-on-you)) Lisp Breakpoint ? for help [77472] Clozure CL kernel debugger: exit [77472] Clozure CL kernel debugger: NIL ? (funcall (symbol-function nil)) :SHAME-ON-YOU :SHAME-ON-YOU 1 > (ccl:quit) bash-3.2$
|
|||
| #254 | fixed | define-method-combination does not recognize full set of argument lambda list keywords | ||
| Description |
Welcome to Clozure Common Lisp Version 1.2-r8591:8592MS (DarwinPPC32)!
? (define-method-combination standard+ ()
((around (:around))
(before (:before))
(primary () :required t)
(after (:after)))
(:arguments &optional args)
(flet ((call-methods (methods)
(mapcar #'(lambda (method)
`(call-method ,method))
methods)))
(let ((form (if (or before after (rest primary))
`(multiple-value-prog1
(progn ,@(call-methods before)
(call-method ,(first primary)
,(rest primary)))
,@(call-methods (reverse after)))
`(call-method ,(first primary)))))
`(progn (print ,args)
,(if around
`(call-method ,(first around)
(,@(rest around)
(make-method ,form)))
form)))))
;Compiler warnings :
; Unused lexical variable &OPTIONAL, in an anonymous lambda form
STANDARD+
?
|
|||
