Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers
Alex Shinn 11 May 2011 11:41 UTC
The point wasn't to argue the merits of one approach
over the other, but to point out that there are two
fundamentally different approaches in popular use.
Are you actually arguing that MIT Scheme, Chicken,
Chibi, riaxpander and others should have to rewrite
their entire macro system? When there's a trivial
compromise available?
--
Alex
On Wed, May 11, 2011 at 8:16 PM, Andy Wingo <wingo@pobox.com> wrote:
> Hello Alex,
>
> Nice parody :)
>
> On Wed 11 May 2011 13:01, Alex Shinn <alexshinn@gmail.com> writes:
>
>> (define-syntax id
>> (lambda (x use-env mac-env)
>> x))
>>
>> Triple-arity is the right answer for implementers that want to
>> experiment with different macro systems, because it presents a uniform,
>> extensible macro transformer interface -- you have full information
>> of the expression, its usage environment, and the environment the
>> macro was originally defined in.
>
> Is it though? Can the transformer propagate accurate source
> information, as PLT's transformer does? (C.f. the point about the
> insufficiency of weak maps for bare symbols.)
>
> As you know in CS there are three special numbers: 0, 1, and N. The
> issue is that use env and mac-env might not be sufficient; what if you
> start being interested in syntax properties? Taylor has mentioned
> systems that might take 5 or 6 arguments.
>
> Given this situation, the right thing is to choose to have 1 argument,
> IMO, and make that one argument extensible in implementation-defined
> ways.
>
>> It also happens to be the underlying implementation used in
>> most ER macro systems, and WG2 has already voted to
>> provide ER macros.
>
> I realize that this is also a parody of my R6RS argument, but I do not
> consider to be as substantial.
>
> Regards,
>
> Andy
> --
> http://wingolog.org/
>
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports