[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] diff between R6RS and the R7RS small language draft

On Wed, Aug 17, 2011 at 5:21 AM, Andy Wingo <wingo@x> wrote:
> You list two specific objections: determining whether a temporary is
> needed, and implementing code walkers to do (e.g.) fast math.  In the first
> case, I would argue for the "macro writer's bill of rights": that
> introducing an alias for a variable should be free, that you shouldn't
> even need to check for that case in your macro.  But, I understand
> implementors that don't do this, not least because I am one of them :P

It's not just determining whether a temporary is needed.
Another example is writing a `cond' macro which can
provide a sensible warning for:

  (cond (foo ...)
           (foo ...))

to the effect that the second clause will never be
reached, with a friendlier message than the compiler
may or may not be able to provide about unreachable
code.  You cannot assume that this is in fact redundant
in the presence of identifier syntax.

> In the second case, I don't quite understand the macro, so I will
> refrain from commenting.
> I am getting close to understanding why you wouldn't want it, though.  I
> look forward to your comments, though it is not urgent :)

I think the examples speak for themselves.  Even if
you consider them marginal, the point is that they
were possible before and no longer are with identifier
syntax.  It's a tradeoff, and we need a very strong
argument to give up an R5RS feature in favor of a
newer one, especially in the small language.

> Here is an argument for div0:
>  http://lists.gnu.org/archive/html/guile-devel/2011-01/msg00136.html
> (FWIW, I'm fine with omitting it.  But we should spend some thought on
> this.)

Yes, I've read that mail, and just consider it more
evidence that we're not ready to standardize any
of the alternatives.  We can re-open the ticket, but
I'm going to argue in favor of just dropping everything
but the R5RS operators.


Scheme-reports mailing list