[E-Lang] the return of `return'

Dean Tribble tribble@e-dean.com
Tue, 19 Jun 2001 18:09:11 -0700


>Thank you so much for explaining hygienic macros!  I've wanted to learn about
>them for a long time.

You are welcome.  I find them fascinating, but them I'm a 
language-geek.  There is a particular paper that finally figured out how to 
efficiently support hygienic expansion, controlled non-hygienic expansion, 
pattern matching, etc.  I couldn't find the reference in my quick search, 
but I've given copies to MarkM occasionally....  As far as I know, that's 
the only paper you need.

> > Note that if "return" is required (which I prefer), the :any 
> declaration is
> > redundant; it should be integrated with the introduction of the return.
>
>I advocate making ":retAny" the default guard, which means that by default no
>capabilities can leak from the function without an explicit return.  However,
>automatically returning the last expression can be very useful or elegant, so

Do you have some good examples?  Are they sufficiently compelling to 
motivate a difference from common practice?

>I advocate that you can explicitly specify e.g. an ":expSafeRabbit" guard to
>allow such values, but with coercion to "safe rabbit" by the guard.

I can't actually tell if this is sarcasm or an actual proposal :-)  In any 
case, it is sufficiently far out that it doesn't sound worth the conceptual 
expense.

>One could also specify ":expAny", but that would be insecure -- just 
>asking for
>capabilities to start leaking as the source code evolves.