[Ecls-list] And another CLOS Bug...

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Nov 30 11:58:51 UTC 2009


On Mon, Nov 30, 2009 at 9:45 AM, Pascal Costanza <pc at p-cos.net> wrote:

> If I write this:
>
> (defmethod initialize-instance :around ((gf my-generic-function) &rest
> args)
>  (declare (dynamic-extent args))
>  ...)
>
> Somewhere along the lines the ECL compiler adds the following declarations:
>
> (defmethod initialize-instance :around ((gf my-generic-function) &rest
> args)
>  (declare (type my-generic-function gf)
>           (si::no-check-type gf)
>           (dynamic-extent args))
>  ...)
>
> At some stage, it then turns the type declaration into (type function gf),
> because that seems easier to check. However, the si::no-check-type
> declaration should prevent any type checking on the specified variable. That
> seems to be fine when dynamic-extent is gone, but when it's there, that
> doesn't seem to happen anymore.
>

This bug is fixed in CVS now. As you suspected it was in the part of the
compiler that generates automatic type checks for function arguments.

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20091130/52555abf/attachment.html>


More information about the ecl-devel mailing list