unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* bug#14347: reset, shift, continuation values truncated inconsistently
@ 2013-05-04  7:47 Jussi Piitulainen
  2013-05-06 19:06 ` Ian Price
  2016-06-20 21:06 ` Andy Wingo
  0 siblings, 2 replies; 4+ messages in thread
From: Jussi Piitulainen @ 2013-05-04  7:47 UTC (permalink / raw)
  To: 14347

Hi, the following seems at least inconsistent to
me and possibly unintended: I believe it
demonstrates that the continuation captured by
`shift' passes all its values to its continuation
when it's called directly, but truncates them to
the first value when it's bound to a variable
outside the reset expression and then called.

The documentation for reset and shift in the
manual does not quite say, but I believe the
captured continuation in these examples should be
the continuation of the shift expression inside
the reset expression, that is, it should simply
return the three values in all cases.

GNU Guile 2.0.5-deb+1-3
Copyright (C) 1995-2012 Free Software Foundation, Inc.
...
Enter `,help' for help.
scheme@(guile-user)> (use-modules (ice-9 control))
scheme@(guile-user)> (reset (shift k (k)) (values 3.1 2 3))
$1 = 3.1
$2 = 2
$3 = 3
scheme@(guile-user)> ((reset (shift k k) (values 3.1 2 3)))
$4 = 3.1
$5 = 2
$6 = 3
scheme@(guile-user)> (let ((k (reset (shift k k) (values 3.1 2 3)))) (k))
$7 = 3.1
scheme@(guile-user)> (define k (reset (shift k k) (values 3.1 2 3)))
scheme@(guile-user)> (k)
$8 = 3.1
scheme@(guile-user)> (k)
$9 = 3.1

(I installed guile-2.0 with apt-get on Ubuntu and got this.)






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-06-20 21:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-04  7:47 bug#14347: reset, shift, continuation values truncated inconsistently Jussi Piitulainen
2013-05-06 19:06 ` Ian Price
2013-05-06 21:15   ` Stefan Israelsson Tampe
2016-06-20 21:06 ` Andy Wingo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).