[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