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

Re: [Scheme-reports] ANN: first draft of R7RS small language available



Hello Alex and Andre,

On Sun 17 Apr 2011 02:13, Alex Shinn <alexshinn@x> writes:

> On Sun, Apr 17, 2011 at 2:09 AM, Andre van Tonder <andre@x> wrote:
>
>> - There is a very strong argument for requiring these literals to be bound.
>> If they refer to bindings, they can be exported, imported, prefixed, renamed,
>> or excluded. These are useful operations, and I think it is important for
>> users to be able to rely on them to work portably.
>
> This and most of your arguments confused me
> greatly for a while, because a different identifier
> should never match a syntax-rules literal.
>
> Then I realized you're assuming that any imported
> binding from another module should count as having
> the "same lexical binding," not simply be bound to
> the same value, in which case they would match.
>
> The module system does not make this requirement,
> in deference to the many types of module systems
> out there which may simply copy the bindings, so in
> general you can't assume you can rename =>.

Can you enumerate these module systems?  Actually I guess among the
committee John is the enumerator :-)

FWIW I am convinced by Andre's arguments.  I can't change Guile right
now, but will look at doing so for 2.2.  Relying on free-identifier=?
for unbound identifiers is a source of ambient authority in a language.
Perhaps I've been reading too much ocap stuff lately though; but binding
keywords does seem to be a logical extension of lexical scope, which is
what we're all here for, no?

In any case, if R7RS does not decide to require that keywords be bound,
it would be good if it permitted that behavior.  That might be tricky of
course.

>> - The semantics of FREE-IDENTIFIER=? which is used to compare literals -
>> unbound identitifiers in different modules be free-identifier=? if they have
>> the same symbol?  This is not obvious to me, and as an implemento I know
>> from experience that it can complicate a macro explansion system to insist
>> upon it
>
> There is no free-identifier=? in WG1 Scheme, nor at the present
> time is there likely to be in WG2 Scheme.  The syntax-rules
> semantics makes it clear that unbound symbols in two modules
> must match, even if the implementation has a broken free-identifier=?.

Is WG2 not going to have a syntax-case module?  That would be
unfortunate.  What about syntax objects, or procedural syntax
transformers?

Regards,

Andy
-- 
http://wingolog.org/

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