[r6rs-discuss] [Formal] Formal semantics should not contain complicating optimizations

From: Robby Findler <robby>
Date: Fri Mar 16 13:09:03 2007

Ah, thanks for pointing that out.

Given that those semantics may change, I'll hold off fixing that until
I know what the behavior is supposed to be.

Robby

On 3/16/07, AndrevanTonder <andre_at_het.brown.edu> wrote:
> It is where library bodies are said to expand to the equivalent of a letrec*
> (in the expansion process section). Whatever else may happen in future
> versions to the specification of libraries/toplevel-programs, I would hope that
> their consistency with internal definitions be maintained in this regard. The
> letrec* in question would be
>
> (letrec* ((x (set! y 1))
> (y y))
> y)
>
> This is illegal according to the specification of letrec*, which says
> "One restriction on letrec* is very important: it must be possible to evaluate
> each <init> without assigning or referring to the value the corresponding
> <variable> or the <variable> of any of the bindings that follow it in
> <bindings>. If this restriction is violated, an exception with condition type
> &assertion is raised."
>
> Andre
>
> On Fri, 16 Mar 2007, Robby Findler wrote:
>
> > I went back and re-read the library section, but I can't find where
> > this is said to be illegal.
> >
> > Can you explain yourself a little bit more, please?
> >
> > Thanks,
> > Robby
> >
> > On 3/16/07, AndrevanTonder <andre_at_het.brown.edu> wrote:
> >> A small issue: I have noticed that 10.9 addresses programs such as
> >>
> >> (define x (set! y 1))
> >> (define y 2)
> >>
> >> This kind of thing is illegal in the current specification.
> >>
> >> Andre
> >>
> >>
> >>
> >
> >
>
Received on Fri Mar 16 2007 - 13:08:55 UTC

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