[r6rs-discuss] [Formal] Trivial Enhancement of macros in v5.91: capture-syntax

From: AndrevanTonder <andre>
Date: Thu Nov 30 11:39:21 2006

On Thu, 30 Nov 2006, William D Clinger wrote:

> You appear to agree with me that the separated binding,
> invoke-separately-for-each-phase semantics won't really
> work unless the fundamental types are known to be the same
> in L0 and L1.
>
> It does not appear possible to achieve that property if
> those fundamental types are implemented in R6RS Scheme
> using the separate binding, invoke-separately-for-each-phase
> semantics.
>
> Implementors who wish to use R6RS Scheme as their systems
> programming language will figure that out, and are likely
> to solve the problem by adopting the shared binding,
> invoke-once-per-session semantics.

I don't think I would agree with this. I achieve both the separate-binding
and shared-binding semantics by translation to the system r5rs Scheme via
name-mangling of variable references (the main difference being that the latter
requires a little more name-mangling than the former), while all constant
literals are translated to constant literals of the system Scheme.
Even when the separate-binding configuration is chosen, different expand-time
invocations of a given library in the target language are still instantiated in
a shared run and one image of the "operating system" r5rs Scheme in which the
expander is written - bindings for different levels are present in a single
host environment at the same time and only name-mangling keeps them from
interfering. As a result, all target-library invocations share a single
system-language run and single representation for, say, numerical constants,
and no conversions are necessary.

Andre
Received on Thu Nov 30 2006 - 11:34:49 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:00 UTC