Hi,

Attila Lendvai wrote:
>fyi, there's a quite good walker in arnesi hiding platform dependency.
>the #L reader in arnesi is using it and macrolet works with it.
>unfortunately it should be factored out into a separate lib, just like
>the call/cc transformer using it. it's on my TODO, but long at the
>end.

Just for the record, any portable code walker is *not* a solution.  
IIRC, last time I looked, arnesi cannot handle UNWIND-PROTECT or EVAL-WHEN -- 
for obvious reasons.  Iterate has a code walker that is as good as a portable 
code walker can go (portable in the ANSI CL glossary meaning).
What's needed is some non-portable integration with the various 
implementations, so that the environment is handled correctly 
(*macroexpand-hook* is not enough). Such functionality could be factored out 
indeed, in a separate library. Maybe also PCL's code-walker has 
implementation-specific code?

>> BTW, there's that empty CVS directory in the iterate project 
>directory.  Shall I delete it or does it serve some purpose?
>i don't have it in my repo.
Oh, it's not in Darcs, it's in ~iterate/, not in the Darcs/ subdir.

BTW, unsatisfied with the limitations inherent in Iterate's current 
implementation, I've been looking at various list comprehension designs (Mario 
Latendresse, Sven-Olof Nyström, Olin Shivers, SRFI-42).  Iterate is still 
interesting and it's unclear to me whether the actual problem is either:
 - Iterate's design, which requires a code-walker to detect gatherers nested 
deep within the body
 - ANSI CL limitations, which make macros that depend on a code-walker a can of 
worms, making designs like Iterate hard if not unsuitable.

Note that LOOP, SRFI-42 and all the others do not depend on a code walker. They 
all supply their own grammar and thus know where clauses can appear (at 
top-level of the form).

BTW2, send me an e-mail if you want an enhanced version of Mario Latendresse's 
comprehension macro. (When I'll have more time, I'll post to cliki).

Regards,
        Jörg Höhle
_______________________________________________
iterate-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/iterate-devel

Reply via email to