> From: Taylor R Campbell <campb...@mumble.net> > Date: Thu, 3 Nov 2016 18:36:24 +0000 > > [...] Did anything other than paths involving CALL-WITH-VALUES and > VALUES change?
Nope. > 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. _______________________________________________ MIT-Scheme-devel mailing list MIT-Scheme-devel@gnu.org https://lists.gnu.org/mailman/listinfo/mit-scheme-devel