[Ecls-list] Re: Critical fixes

Juan Jose Garcia Ripoll jlr at mpq.mpg.de
Fri May 13 04:48:32 UTC 2005


Maciek Pasternacki wrote:

>I found one more bug in compiler; managed just to pin it down to a
>minimal example.  Compiled closures returned from function can't refer
>to variables declared as special; when closure-generating code is
>interpreted, everything is OK.  Here is my example code:
>  
>
The bug was not related to compiler closures referring to special 
variables declared in the enclosing code, but rather to the scope of 
special declarations. The same bug was revealed by inspecting the code 
generated for
    (defun bar (a3)
      (declare (special a2))
      (let ((a2 (* a2 a2)))
        ...))
Inside the LET form, A2 should be a lexical variable, not a special one 
and the previous code should be equivalent to
    (defun bar (a3)
      (declare (special a2))
      (let ((x (* a2 a2)))
        ...))
I have fixed this in CVS.

Juanjo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jlr.vcf
Type: text/x-vcard
Size: 361 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20050513/a20ad767/attachment.vcf>


More information about the ecl-devel mailing list