> No, it isn't, although it is an informal goal for the Red Edition, on
> the assumption that it's easier to get agreement on things early when
> the barriers to adoption are low. Later editions will have features
> that cannot have R7RS-small portable implementations, though I hope that
> they will be easily implemented on many Schemes.
How many Schemes have already expressed their intent to implement
R7RS-large? For the users of Scheme (and I guess most of the voters are
not (or won't be) implementors of an R7RS-large Scheme), it is nice to
have a lot of features included. But someone has to implement all this.
> Ephemerons in particular would certainly have been postponed if Will
> Clinger had not pointed out that an implementation using strong references
> is legal. This is because there is never any guarantee that the GC will
> break specific, or any, ephemerons. The JVM doesn't have ephemerons,
> but an implementation using weak references is valid: it simply means
> that some garbage that should be collected will not be collected, just
> as conservative GCs do.
Scheme seems to be a schizophrenic in this regard: Implementations are
allowed to implement ephemerons using strong references because garbage
collection is not observable. In the other hand, the standard demands
that implementations are properly tail-recursive. However being
non-properly tail-recursive is as non-observable as not implementing
proper ephemerons.
(An Scheme implementation supporting SRFI 124 properly would allow for
an unbounded chain of ephemerons much like a properly tail recursive
implementation would allow for an unbounded number of active tail calls.)
Marc