GNU bug report logs - #21897
escape continuation passes barrier

Previous Next

Package: guile;

Reported by: Zefram <zefram <at> fysh.org>

Date: Fri, 13 Nov 2015 03:32:01 UTC

Severity: normal

To reply to this bug, email your comments to 21897 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#21897; Package guile. (Fri, 13 Nov 2015 03:32:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Zefram <zefram <at> fysh.org>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Fri, 13 Nov 2015 03:32:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Zefram <zefram <at> fysh.org>
To: bug-guile <at> gnu.org
Subject: escape continuation passes barrier
Date: Fri, 13 Nov 2015 03:31:26 +0000
scheme@(guile-user)> (use-modules (ice-9 control))
scheme@(guile-user)> (call/ec (lambda (c) (with-continuation-barrier (lambda () (c "through continuation"))) "c-w-b returned"))
$1 = "through continuation"

The continuation barrier works fine on call/cc continuations and
on throw/catch, but doesn't block call/ec continuations.  The manual
doesn't mention any difference in behaviour for this case, nor can I
see any obvious justification for it.  The manual's statement that

#      Thus, `with-continuation-barrier' returns exactly once.

is false in this case.  I think a continuation barrier should block the
use of the call/ec continuation.

-zefram




Information forwarded to bug-guile <at> gnu.org:
bug#21897; Package guile. (Fri, 24 Jun 2016 16:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 21897 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Zefram <zefram <at> fysh.org>
Cc: 21897 <at> debbugs.gnu.org
Subject: Re: bug#21897: escape continuation passes barrier
Date: Fri, 24 Jun 2016 18:23:11 +0200
On Fri 13 Nov 2015 04:31, Zefram <zefram <at> fysh.org> writes:

> scheme@(guile-user)> (use-modules (ice-9 control))
> scheme@(guile-user)> (call/ec (lambda (c) (with-continuation-barrier (lambda () (c "through continuation"))) "c-w-b returned"))
> $1 = "through continuation"
>
> The continuation barrier works fine on call/cc continuations and
> on throw/catch, but doesn't block call/ec continuations.  The manual
> doesn't mention any difference in behaviour for this case, nor can I
> see any obvious justification for it.  The manual's statement that
>
> #      Thus, `with-continuation-barrier' returns exactly once.
>
> is false in this case.  I think a continuation barrier should block the
> use of the call/ec continuation.

I agree, good catch.

Andy




Information forwarded to bug-guile <at> gnu.org:
bug#21897; Package guile. (Sun, 29 Mar 2020 17:29:02 GMT) Full text and rfc822 format available.

Message #11 received at 21897 <at> debbugs.gnu.org (full text, mbox):

From: Matt Wette <matt.wette <at> gmail.com>
To: 21897 <at> debbugs.gnu.org
Subject: verified in 3.0.2
Date: Sun, 29 Mar 2020 10:28:36 -0700
This still exists in 3.0.2

scheme@(guile-user)> ,use (ice-9 control)

scheme@(guile-user)> (call/ec (lambda (c) (with-continuation-barrier (lambda () (c "through continuation"))) "c-w-b returned"))
$1 = "through continuation"

scheme@(guile-user)> (version)
$2 = "3.0.2"





This bug report was last modified 5 years and 76 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.