From unknown Mon Jun 23 22:06:31 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39811: Missing dynwind exit application Resent-From: Stefan Israelsson Tampe Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Thu, 27 Feb 2020 19:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39811 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 39811@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158282998420008 (code B ref -1); Thu, 27 Feb 2020 19:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 27 Feb 2020 18:59:44 +0000 Received: from localhost ([127.0.0.1]:60265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7ONs-0005Ce-82 for submit@debbugs.gnu.org; Thu, 27 Feb 2020 13:59:44 -0500 Received: from lists.gnu.org ([209.51.188.17]:35584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7ONq-0005CW-Lt for submit@debbugs.gnu.org; Thu, 27 Feb 2020 13:59:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39965) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7ONp-0006w0-CQ for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:42 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7ONo-0005yI-GP for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:41 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:40387) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j7ONo-0005xt-9J for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:40 -0500 Received: by mail-wm1-x336.google.com with SMTP id t14so566926wmi.5 for ; Thu, 27 Feb 2020 10:59:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=qM0T976r3gh8kBWz4Qr5dcf43prJkQHqV18czcqWdb8=; b=KYFBYso4ULWhjK5YfgRcZM5pGY8/5i/8N5lAkDoy1pY/YwwO+pWjilzP7odfXUtWE0 LMF6rCZLI4sIeqAEW2/KhqkpamWdO0iYLJxc3jwuOO0C7YN0GB2yLts5M8bHPvzZ0uWW nXUMg5P/OGbBWO9rR5xR2WYWZSx5EOQ8fiaH5LhMs2c7g1YHozgVTV/CCr6DQEMY71kN JKfggDaFS5O3dwQqdPxetgKfg4XicQbEBD3f0+HhuwAH8/U+3CueBZLEaicRqWDd8AKJ A7suEzSmcDLTDAJ4BPIvspa4Yv+IUTgrfvb7MITwHjm+N3utdgexYiYtDJJ9A2NXbDKs fUVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=qM0T976r3gh8kBWz4Qr5dcf43prJkQHqV18czcqWdb8=; b=B4DjTDlyTEu3daJGExseKpetwjra+VknqKfmT6NPNMOxkGfNR3lQpYVace9KfPgV5Y M6UUxqAcMwajkjjFT8s9lVHP1p//K/RP1IePcTryQWdOTuC4Tpzixe4c/TruS0Ixk583 gjY5l3YvSrSz+yG2nl/npzQpGjM2uxee2AhuIQQmQ08ZBN1ZR9NW/RgRlxgARduaatsC aerZOWmaAQL2wj+3dkgzqGPuCZcMbhhnsyKmcoaH44EldxOOKWS3MCO/LjGFgZ4SdjbY ZJ46YuPlh2YdKrNtvGI7KH4ZmCLtI2RxM9h48706wBAFZ8TsHMGg2C+Mhd0/MrNm4x1L SyPQ== X-Gm-Message-State: APjAAAXWaCDy+dCbMyURrAM+6DaSSOEzCfx/WHSIflucby/xzLURlL3t pYJA0zD7yI/E0urotk5BnWKi+bftlvu78xu73VRm3215 X-Google-Smtp-Source: APXvYqwXuA2ZxbaIUJ/boWZV3QoV+35Ra51cMfa0vFZtI/eC+qHkiH0EV8GAj3HqRAuuvP5vJQK55vdlnIpolWNeSK4= X-Received: by 2002:a7b:c392:: with SMTP id s18mr144773wmj.169.1582829977574; Thu, 27 Feb 2020 10:59:37 -0800 (PST) MIME-Version: 1.0 From: Stefan Israelsson Tampe Date: Thu, 27 Feb 2020 19:59:25 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000008d9fce059f935256" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::336 X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --0000000000008d9fce059f935256 Content-Type: text/plain; charset="UTF-8" Executing this code on guile-3.0.0: (dynamic-wind (lambda () (pk 'enter)) (lambda () (catch #t (lambda () (throw 1)) (lambda x (pk 'catch x) (apply throw x)))) (lambda () (pk 'leave))) Leads to the output: scheme@(guile-user)> (load "bug.scm") ;;; (enter) ;;; (catch (a)) ice-9/boot-9.scm:1669:16: In procedure raise-exception: Throw to key `a' with args `()'. What, it does not execute the leave part of the dynamic wind. This works however, (catch #t (lambda () (dynamic-wind (lambda () (pk 'enter)) (lambda () (catch #t (lambda () (throw 'a)) (lambda x (pk 'catch x) (apply throw x)))) (lambda () (pk 'leave)))) (lambda x #f)) So is this how it should be? --0000000000008d9fce059f935256 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Executing this code on guile-3.0.0:

(dy= namic-wind
=C2=A0(lambda () (pk 'enter))
=C2=A0(lambda () (catch = #t
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda () (throw 1)= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda x (pk 'ca= tch x) (apply throw x))))
=C2=A0(lambda () (pk 'leave)))

Leads to the output:

scheme@(guile-u= ser)> (load "bug.scm")
;;; (enter)
;;; (catch (a))=C2=A0

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Throw to key `a' with args `()'.

What, it does not execute the leave part of the dynamic wind.

This works however,

(catch #t
=C2= =A0 (lambda ()
=C2=A0 =C2=A0 (dynamic-wind
=C2=A0 =C2=A0 =C2=A0 (lamb= da () (pk 'enter))
=C2=A0 =C2=A0 =C2=A0 (lambda () (catch #t
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda (= ) (throw 'a))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(lambda x (pk 'catch x) (apply throw x))))
=C2=A0 = =C2=A0 =C2=A0 (lambda () (pk 'leave))))
=C2=A0 (lambda x #f))
<= div>
So is this how it should be?

--0000000000008d9fce059f935256-- From unknown Mon Jun 23 22:06:31 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Stefan Israelsson Tampe Subject: bug#39811: closed (Re: bug#39811: Missing dynwind exit application) Message-ID: References: <87r1y918lw.fsf@igalia.com> X-Gnu-PR-Message: they-closed 39811 X-Gnu-PR-Package: guile Reply-To: 39811@debbugs.gnu.org Date: Tue, 03 Mar 2020 20:35:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1583267702-1773-1" This is a multi-part message in MIME format... ------------=_1583267702-1773-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #39811: Missing dynwind exit application which was filed against the guile package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 39811@debbugs.gnu.org. --=20 39811: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D39811 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1583267702-1773-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 39811-close) by debbugs.gnu.org; 3 Mar 2020 20:34:06 +0000 Received: from localhost ([127.0.0.1]:40033 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9EEw-0000RE-6D for submit@debbugs.gnu.org; Tue, 03 Mar 2020 15:34:06 -0500 Received: from fanzine.igalia.com ([178.60.130.6]:55044) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9EEu-0000Qg-Pg for 39811-close@debbugs.gnu.org; Tue, 03 Mar 2020 15:34:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=b1It8JmMqZFXURj0q19eKIBM8tJKqEMKqH594XFlVpk=; b=JA/pzeyjrj+vf4pUtvHxr707+xQhONPZfxFZ0HDmw7UNYsvO8t5olkxXyPTvwFRnRZ3uTYEE3AIZxG0rTZTvtzln8G00/2V24ZB/LpC8EG5y3ZjsOP4W6KcYifWsR1Ll9hOJ1I1saG8Z/gE52pHoeItJR8dKLvOiLmVi4UbLEXXnStjvjcpIZnRvJnfkWYQB7jZt6S/L1HJr2DBux8FOxQonrSzpdXc0TZuepsc0/xbW8CqNJ8kwmqRVb8BF3F2KO6d38iI2NrplXAtm1mTWlJZ5w79wb98J8HRW0N0MEWi4SD0bm0e5MgBy58p258Wz9wxP9SE3VFGPMpqiof8cLw==; Received: from [88.123.12.110] (helo=sparrow) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1j9EEo-0008Dy-3a; Tue, 03 Mar 2020 21:33:58 +0100 From: Andy Wingo To: Stefan Israelsson Tampe Subject: Re: bug#39811: Missing dynwind exit application References: Date: Tue, 03 Mar 2020 21:33:47 +0100 In-Reply-To: (Stefan Israelsson Tampe's message of "Thu, 27 Feb 2020 19:59:25 +0100") Message-ID: <87r1y918lw.fsf@igalia.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 39811-close Cc: 39811-close@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Israelsson Tampe writes: > Executing this code on guile-3.0.0: > > (dynamic-wind > (lambda () (pk 'enter)) > (lambda () (catch #t > (lambda () (throw 1)) > (lambda x (pk 'catch x) (apply throw x)))) > (lambda () (pk 'leave))) > > Leads to the output: > > scheme@(guile-user)> (load "bug.scm") > ;;; (enter) > ;;; (catch (a)) > > ice-9/boot-9.scm:1669:16: In procedure raise-exception: > Throw to key `a' with args `()'. > > What, it does not execute the leave part of the dynamic wind. That is because the REPL leaves you in the context of where the uncaught error was thrown. If you ,quit the REPL to go back to the outer REPL, it will print "leave" as expected. Please reopen if I have misunderstood :) Cheers, Andy ------------=_1583267702-1773-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 27 Feb 2020 18:59:44 +0000 Received: from localhost ([127.0.0.1]:60265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7ONs-0005Ce-82 for submit@debbugs.gnu.org; Thu, 27 Feb 2020 13:59:44 -0500 Received: from lists.gnu.org ([209.51.188.17]:35584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7ONq-0005CW-Lt for submit@debbugs.gnu.org; Thu, 27 Feb 2020 13:59:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39965) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7ONp-0006w0-CQ for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:42 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7ONo-0005yI-GP for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:41 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:40387) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j7ONo-0005xt-9J for bug-guile@gnu.org; Thu, 27 Feb 2020 13:59:40 -0500 Received: by mail-wm1-x336.google.com with SMTP id t14so566926wmi.5 for ; Thu, 27 Feb 2020 10:59:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=qM0T976r3gh8kBWz4Qr5dcf43prJkQHqV18czcqWdb8=; b=KYFBYso4ULWhjK5YfgRcZM5pGY8/5i/8N5lAkDoy1pY/YwwO+pWjilzP7odfXUtWE0 LMF6rCZLI4sIeqAEW2/KhqkpamWdO0iYLJxc3jwuOO0C7YN0GB2yLts5M8bHPvzZ0uWW nXUMg5P/OGbBWO9rR5xR2WYWZSx5EOQ8fiaH5LhMs2c7g1YHozgVTV/CCr6DQEMY71kN JKfggDaFS5O3dwQqdPxetgKfg4XicQbEBD3f0+HhuwAH8/U+3CueBZLEaicRqWDd8AKJ A7suEzSmcDLTDAJ4BPIvspa4Yv+IUTgrfvb7MITwHjm+N3utdgexYiYtDJJ9A2NXbDKs fUVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=qM0T976r3gh8kBWz4Qr5dcf43prJkQHqV18czcqWdb8=; b=B4DjTDlyTEu3daJGExseKpetwjra+VknqKfmT6NPNMOxkGfNR3lQpYVace9KfPgV5Y M6UUxqAcMwajkjjFT8s9lVHP1p//K/RP1IePcTryQWdOTuC4Tpzixe4c/TruS0Ixk583 gjY5l3YvSrSz+yG2nl/npzQpGjM2uxee2AhuIQQmQ08ZBN1ZR9NW/RgRlxgARduaatsC aerZOWmaAQL2wj+3dkgzqGPuCZcMbhhnsyKmcoaH44EldxOOKWS3MCO/LjGFgZ4SdjbY ZJ46YuPlh2YdKrNtvGI7KH4ZmCLtI2RxM9h48706wBAFZ8TsHMGg2C+Mhd0/MrNm4x1L SyPQ== X-Gm-Message-State: APjAAAXWaCDy+dCbMyURrAM+6DaSSOEzCfx/WHSIflucby/xzLURlL3t pYJA0zD7yI/E0urotk5BnWKi+bftlvu78xu73VRm3215 X-Google-Smtp-Source: APXvYqwXuA2ZxbaIUJ/boWZV3QoV+35Ra51cMfa0vFZtI/eC+qHkiH0EV8GAj3HqRAuuvP5vJQK55vdlnIpolWNeSK4= X-Received: by 2002:a7b:c392:: with SMTP id s18mr144773wmj.169.1582829977574; Thu, 27 Feb 2020 10:59:37 -0800 (PST) MIME-Version: 1.0 From: Stefan Israelsson Tampe Date: Thu, 27 Feb 2020 19:59:25 +0100 Message-ID: Subject: Missing dynwind exit application To: bug-guile@gnu.org Content-Type: multipart/alternative; boundary="0000000000008d9fce059f935256" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::336 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --0000000000008d9fce059f935256 Content-Type: text/plain; charset="UTF-8" Executing this code on guile-3.0.0: (dynamic-wind (lambda () (pk 'enter)) (lambda () (catch #t (lambda () (throw 1)) (lambda x (pk 'catch x) (apply throw x)))) (lambda () (pk 'leave))) Leads to the output: scheme@(guile-user)> (load "bug.scm") ;;; (enter) ;;; (catch (a)) ice-9/boot-9.scm:1669:16: In procedure raise-exception: Throw to key `a' with args `()'. What, it does not execute the leave part of the dynamic wind. This works however, (catch #t (lambda () (dynamic-wind (lambda () (pk 'enter)) (lambda () (catch #t (lambda () (throw 'a)) (lambda x (pk 'catch x) (apply throw x)))) (lambda () (pk 'leave)))) (lambda x #f)) So is this how it should be? --0000000000008d9fce059f935256 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Executing this code on guile-3.0.0:

(dy= namic-wind
=C2=A0(lambda () (pk 'enter))
=C2=A0(lambda () (catch = #t
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda () (throw 1)= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda x (pk 'ca= tch x) (apply throw x))))
=C2=A0(lambda () (pk 'leave)))

Leads to the output:

scheme@(guile-u= ser)> (load "bug.scm")
;;; (enter)
;;; (catch (a))=C2=A0

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Throw to key `a' with args `()'.

What, it does not execute the leave part of the dynamic wind.

This works however,

(catch #t
=C2= =A0 (lambda ()
=C2=A0 =C2=A0 (dynamic-wind
=C2=A0 =C2=A0 =C2=A0 (lamb= da () (pk 'enter))
=C2=A0 =C2=A0 =C2=A0 (lambda () (catch #t
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(lambda (= ) (throw 'a))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(lambda x (pk 'catch x) (apply throw x))))
=C2=A0 = =C2=A0 =C2=A0 (lambda () (pk 'leave))))
=C2=A0 (lambda x #f))
<= div>
So is this how it should be?

--0000000000008d9fce059f935256-- ------------=_1583267702-1773-1--