This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Source for ticket #174

cc


    

changetime

2012-10-09 00:46:02

component

WG1 - Core

description

Currently, uses of `values` where the values are discarded anyway is illegal, but all the usual Schemes except SCM and SSCM accept them (I tested with `begin`).  Should we go with something close to the R6RS wording?

"The continuations of all non-final expressions within a sequence of expressions, such as in `lambda`, `begin`, `let`, `let*`, `letrec`, `letrec*`, `case`, and `cond` forms, take an arbitrary number of values."

The definition of `begin` would need to change too:

{{{
(define-syntax begin
  (syntax-rules ()
    ((begin exp)
     exp)
    ((begin exp1 exp2 ...)
     (call-with-values
         (lambda () exp1)
       (lambda args
         (begin exp2 ...))))))
}}}

id

174

keywords


    

milestone


    

owner

cowan

priority

major

reporter

cowan

resolution

fixed

severity


    

status

closed

summary

Safe uses of multiple values

time

2011-05-06 21:34:33

type

defect

Changes

Change at time 2012-10-09 00:46:02

author

cowan

field

comment

newvalue


    

oldvalue

5

raw-time

1349718362356696

ticket

174

time

2012-10-09 00:46:02

Change at time 2012-10-09 00:46:02

author

cowan

field

resolution

newvalue

fixed

oldvalue


    

raw-time

1349718362356696

ticket

174

time

2012-10-09 00:46:02

Change at time 2012-10-09 00:46:02

author

cowan

field

status

newvalue

closed

oldvalue

writing

raw-time

1349718362356696

ticket

174

time

2012-10-09 00:46:02

Change at time 2011-07-11 10:21:07

author

cowan

field

comment

newvalue


    

oldvalue

4

raw-time

1310354467000000

ticket

174

time

2011-07-11 10:21:07

Change at time 2011-07-11 10:21:07

author

cowan

field

owner

newvalue

cowan

oldvalue

alexshinn

raw-time

1310354467000000

ticket

174

time

2011-07-11 10:21:07

Change at time 2011-07-11 10:21:07

author

cowan

field

status

newvalue

writing

oldvalue

decided

raw-time

1310354467000000

ticket

174

time

2011-07-11 10:21:07

Change at time 2011-07-10 21:46:00

author

alexshinn

field

comment

newvalue

We voted to adopt this.

oldvalue

3

raw-time

1310309160000000

ticket

174

time

2011-07-10 21:46:00

Change at time 2011-07-10 21:46:00

author

alexshinn

field

resolution

newvalue


    

oldvalue


    

raw-time

1310309160000000

ticket

174

time

2011-07-10 21:46:00

Change at time 2011-07-10 21:46:00

author

alexshinn

field

status

newvalue

decided

oldvalue

new

raw-time

1310309160000000

ticket

174

time

2011-07-10 21:46:00

Change at time 2011-05-08 02:59:44

author

arcfide

field

comment

newvalue

I think using the term "any number" instead of "an arbitrary number" probably makes more sense, but other than that, I would go with it.

oldvalue

2

raw-time

1304798384000000

ticket

174

time

2011-05-08 02:59:44

Change at time 2011-05-06 21:36:55

author

cowan

field

comment

newvalue


    

oldvalue

1

raw-time

1304692615000000

ticket

174

time

2011-05-06 21:36:55

Change at time 2011-05-06 21:36:55

author

cowan

field

description

newvalue

Currently, uses of `values` where the values are discarded anyway is illegal, but all the usual Schemes except SCM and SSCM accept them (I tested with `begin`).  Should we go with something close to the R6RS wording?

"The continuations of all non-final expressions within a sequence of expressions, such as in `lambda`, `begin`, `let`, `let*`, `letrec`, `letrec*`, `case`, and `cond` forms, take an arbitrary number of values."

The definition of `begin` would need to change too:

{{{
(define-syntax begin
  (syntax-rules ()
    ((begin exp)
     exp)
    ((begin exp1 exp2 ...)
     (call-with-values
         (lambda () exp1)
       (lambda args
         (begin exp2 ...))))))
}}}

oldvalue

Currently, uses of `values` where the values are discarded anyway is illegal, but all the usual Schemes except SCM and SSCM accept them (I tested with `begin`).  Should we go with something close to the R6RS wording?

"The continuations of all non-final expressions within a sequence of expressions, such as in `lambda`, `begin`, `let`, `let*`, `letrec`, `letrec*`, `case`, and `cond` forms, take an arbitrary number of values."

raw-time

1304692615000000

ticket

174

time

2011-05-06 21:36:55