[iterate-devel] Fwd: iterate form evaluates but does not loadinto sbcl fasl

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Tue Feb 9 14:30:57 UTC 2010


Mirko,

>Are you implying that instead of lambda forms one should define the
>functions and use function names.
No. Just look at the examples in the source code, incl. tests.
The key is to write #'(lambda ...) aka. (function (lambda ...)), not (lambda ...)

Remember that Iterate is based on a code walker, macrology and plumbing
code snippets into other code snippets.
(lambda ...) is a macro not recognized by Iterate in defclause-sequence.
OTOH, function (#') is a well-known special form.

>all lambda expressions need to be replaced by function symbols.  Correct?
Wrong. You can, you need not.
#'(lambda ...) may allow better inlining, with every optimizing compiler out there.

>FWIW, I could not reproduce my problem on clisp.
Like others said, CLISP, based its byte code, can write an externalisation
of the function to the .FAS file, but this just hides the bug in gsd's code.

Please submit a patch to the authors of gsd/gsll.

BTW, I'd throw the ASSERT out of every accessor and move it into the loop
initialization.  Why repeat it 1000000 times when once is enough?
Why is it in defclause-sequence only and not in the FOR driver?  Are these
remains from a debugging session?

Regards,
 Jörg Höhle




More information about the iterate-devel mailing list