[Top][All Lists]

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

Re: [MIT-Scheme-devel] R7RS and values.

From: Matt Birkholz
Subject: Re: [MIT-Scheme-devel] R7RS and values.
Date: Thu, 3 Nov 2016 13:15:54 -0700

> From: Taylor R Campbell <address@hidden>
> Date: Thu, 3 Nov 2016 18:36:24 +0000
> [...]  Did anything other than paths involving CALL-WITH-VALUES and
> VALUES change?


> It has long been a bug and it's why I introduced BEGIN0, so that we
> could prepare code to do the right thing before making the right thing
> the only thing that works.

I was pleased to find only a couple spots needing patching to "pass
along multiple values".  The team did good.  The lusers may still get
sore, but our canon offered a good example.

> I would strongly advise that you make multi-value returns to
> single-value continuations report an error.  Otherwise, you are
> quietly changing the semantics of who knows how many continuations.

R7RS says "The continuations of all non-final expressions within a
sequence [...], take an arbitrary number of values because they
discard the values passed to them in any event."  It is going to take
some trouble to clue the VALUES primitive in as to whether it is a
non-final expression.

R7RS also says "The effect of passing no value or more than one value
to continuations that were not created in one of these ways is
unspecified."  So I wonder from where the semantics you mention came.

> Extra lambda here, or missing parens in APPLY-VALUES.

Thanks; fixed.  I took the code from compiler/base/mvalue.scm and used
an example of call-with-values.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]