[iterate-devel] Macroexpansion, bindings and information flow (Iterate package)

Hoehle, Joerg-Cyril Joerg-Cyril.Hoehle at t-systems.com
Tue Nov 16 10:19:42 UTC 2004


Hi,

Andreas Fuchs wrote:
>I did the non-sensible thing instead and hacked together a more or
>less macrolet/flet/labels-aware code walker that uses custom lexical
>environments.
Now that's cool. Congratulations!

>I thought it would be much harder to get this to work)
I also wouldn't have expected this to be possible in so little code.

>I'm not entirely sure that mine is the way to go. But yours (as the
>more conservative one) sounds good, from a maintainer's point of view.
I don't know what you mean by "yours". I feel quite uncomfortable at using a package that may generate incorrect code without warnings.

>A hacky solution isn't hard. One that is guaranteed to work with all
>macrolet/flet combinations [...] will be quite a bit harder.
I'll have to review whether your code is correct or what the restrictions are. I still find it hard to believe that a *macroexpand-hook* might suffice.

Please explain why you consider your code hacky (or restricted).
Similarly, it would have helped if J.Amsterdam had laid out what exactly is hairy or subtle (e.g. what about multiple-values in with clause and other notes).

I have a general feeling that it would be better to have the implementation do most of the expansion work, especially w.r.t. error reporting. The current Iterate walkers assume syntactically correct code and I expect implementations to be good at reporting syntax and other errors.

>OAO20TM
?!? Google finds nothing about this.

Regards,
	Jorg Hohle




More information about the iterate-devel mailing list