Re: ANN: first draft of R7RS small language available Aaron W. Hsu (24 Apr 2011 18:47 UTC)
Re: [Scheme-reports] ANN: first draft of R7RS small language available Alex Shinn (22 Apr 2011 02:56 UTC)

Re: [Scheme-reports] ANN: first draft of R7RS small language available Alex Shinn 22 Apr 2011 02:56 UTC

On Fri, Apr 22, 2011 at 1:18 AM, Andre van Tonder <andre@het.brown.edu> wrote:
> On Thu, 21 Apr 2011, Alex Shinn wrote:
>>
>> The option of _not_ renaming I consider to be far more
>> important than the ability to rename.  I had honestly never
>> considered that you might want to rename deliberately, and
>> I see now that might have uses, but it seems the most
>> common use will be to avoid conflicts from macros using
>> the same keywords.  There are many macros out there
>> using common keywords like ":" and "<=", and it's a real
>> pain not to be able to use them together without renaming
>> one.  You have to keep in mind all the renamings as you
>> look at the code, and can't cut&paste examples.
>
> You can use them together.
>
> The way we got around this in the past is simply to share
> the same keyword binding between macros, for example
>
>  (module (base)
>   (export => cond ....)
>
>   (define-syntax => error-message)
>   (define-syntax cond ......))

The fault in your logic here is that you must have a single
base library with the binding in question.  That's why I
specifically used ":" and "<=" as examples because they
won't be in the standard.

Suppose we have (com sun java foo) which provides
a macro using ":", and (com microsoft bar) which provides
an unrelated macro using ":".  They both define and export
their own ":" binding.  You then can't use those syntaxes
together without renaming one of them.  The whole approach
doesn't scale.

--
Alex

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports