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

Re: Finally clauses

This page is part of the web mail archives of SRFI 34 from before July 7th, 2015. The new archives for SRFI 34 contain all messages, not just those from before July 7th, 2015.

On Sun, 1 Sep 2002, Richard Kelsey wrote:

>SRFI 34 is defined in terms of R5RS, which doesn't give access
>to stack frames.  Instead it has procedures, continuations, and
>DYNAMIC-WIND, so that is what we use.  The generality it provides
>is that it runs in implementations of R5RS.  I don't see how that
>can be done using stack frames.

.... yes ....  okay, let's back up a minute.  This may have been
dead-obvious to everyone else, but I've been thinking of the SRFI's
as something you are clearly not thinking of them as.

Is it your understanding that the srfi process is about producing
library code?  I've been seeing a lot of library code, but I've
been thinking of it as being a process more generally about
specifying language extensions.

IOW, if we have an idea that's *not* implementable in R5RS scheme,
short of creating a compiler from scratch (for example, the brackets-
as-parens extension, or fundamental lexical extensions like how to
escape unicode characters into identifier names or strings written
in ASCII or something), is the SRFI process not the proper place
to discuss it?

What about counterexamples, like the SRFI that specified the
sharp-comma external form?  Not implementable in R5RS, outside of
creating code that takes it as a string and outputs a string or
list of legal program tokens.  IE, he can write a converter but
R5RS provides no readtable macros as in CL, so he can't write
something that will extend an arbitrary system to work with code
using his new token.  Was that ground that the SRFI process
should not have attempted to cover?

>That being said, I would be surprised if it were impossible to
>implement a system with semantics equivalent to yours in R5RS,
>even though I am not sure exactly what that semantics is.
>Continuations, DYNAMIC-WIND, and proper tail-recursion can all
>be thought of as ways of manipulating stack frames.

I believe that you may be right, but every time I attempt it I
wind up simply "admiring the problem."  I haven't sufficient
chops with these constructs to produce the reference