[armedbear-devel] compiler problem

Erik Huelsmann ehuels at gmail.com
Wed Jan 6 22:12:37 UTC 2010


Hi Alan,

On Wed, Jan 6, 2010 at 6:04 PM, Erik Huelsmann <ehuels at gmail.com> wrote:

> I can see the error shown by the symbol-macrolet in the precompiler sources:
>
> 572 (defun precompile-lambda (form)
> 573   (let ((body (cddr form))
> 574         (precompiled-lambda-list
> 575            (precompile-lambda-list (cadr form)))
> 576         (*inline-declarations* *inline-declarations*))
> 577     (process-optimization-declarations body)
> 578     (list* 'LAMBDA precompiled-lambda-list
> 579            (mapcar #'precompile1 body))))
>
>
> Before going on to process the lambda body statements in line 579,
> precompile-lambda should establish variables from the lambda list
> shadowing the symbol-macrolet...

The error turned out to be in PRECOMPILE-LAMBDA and
PRECOMPILE-NAMED-LAMBDA. Committed the fix in r12340 in trunk. This
will be in 0.18.

I think it would be a good idea to extend your inline-lambda-rewriter
to be able to parse/rewrite all lambda lists, not only the ones with
&rest arguments (did I see correctly that you restricted to that
case?).

Bye,

Erik.




More information about the armedbear-devel mailing list