[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] multiple values module
25 minutes ago, Andy Wingo wrote:
> > Chibi's problem
>
> Is probably just a bug. I'll assume that's the case; it was a good
> catch on your part.
If it is, that's good. I understood John as saying that it's fine as
an r5rs implementation. (Specifically, he never referred to it as a
bug.)
> > Peter talked about chicken's behavior of dropping extra values but
> > there's no reification; guile breaks (I*M*O) things further and
> > reifies values but still respects the above
>
> Just to clarify: Guile does the Ashley/Dybvig thing (an additional
> MV return address, and returns to that address expect N values on
> the stack + number-of-values marker). For continuations created by
> call-with-values, the correct number of values is required (or an
> error is signalled). For implicitly single-valued continuations,
> Guile truncates >1 values to 1 value, and (unlike Chicken) errors if
> 0 values are returned.
I should have clarified that this is the version I have installed
(1.8.7), and thanks to your work I'm not surprised that things are
better.
> I think the R5RS wording is careful and correct.
This boils down to interpreting the english wording of the document,
which I'm probably bad at. What I understood from John is that
chibi's current behavior (the one I demonstrated and the result that I
got from it) is fine by R5RS. If you take it (chibi's behavior) as a
bug that is *not* fine by R5RS, then we have two native speakers with
different interpretations, which I take as buggy wording. If, OTOH,
John agrees that the implementation is broken, then the implementation
should not be used as an argument -- *unless* the goal is to lower the
level of specification to the point where it is not considered a bug.
(And given that you do consider it a bug, I assume that you're not in
favor of lowering the specification like that.)
But the "if you want R6RS you know where to find it", is -- still --
an inappropriate response in my opinion, since AFAICT none of this
changed in R6RS. (I've even compared the texts side by side now, and
the only difference I see is the omission of `call-with-values' as the
only way to get a non-unary continuation, due to the addition of
multiple values constructs, and to allowing any number of values in
begin bodies; both are irrelevant for the post I made before that
reply.)
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports