GNU bug report logs - #20938
make-dynamic-state, with-dynamic-state & exceptions

Previous Next

Package: guile;

Reported by: Josep Portella Florit <jpf <at> primfilat.com>

Date: Tue, 30 Jun 2015 13:51:03 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Josep Portella Florit <jpf <at> primfilat.com>
Subject: bug#20938: closed (Re: bug#20938: make-dynamic-state,
 with-dynamic-state & exceptions)
Date: Tue, 28 Feb 2017 14:18:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#20938: make-dynamic-state, with-dynamic-state & exceptions

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 20938 <at> debbugs.gnu.org.

-- 
20938: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20938
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Andy Wingo <wingo <at> pobox.com>
To: Josep Portella Florit <jpf <at> primfilat.com>
Cc: 20938-done <at> debbugs.gnu.org
Subject: Re: bug#20938: make-dynamic-state, with-dynamic-state & exceptions
Date: Tue, 28 Feb 2017 15:17:29 +0100
On Tue 30 Jun 2015 15:50, Josep Portella Florit <jpf <at> primfilat.com> writes:

> This code crashes Guile 2.0.11:
>
> (define x (make-dynamic-state))
> (with-dynamic-state x (lambda () (/ 1 0)))

Sad :/ Fixed in 2.2 though, finally.  I don't really know how to fix it
in 2.0 though.  Marking as closed given that we will have a shiny new
2.2.0 soon.

Andy

[Message part 3 (message/rfc822, inline)]
From: Josep Portella Florit <jpf <at> primfilat.com>
To: bug-guile <at> gnu.org
Subject: make-dynamic-state, with-dynamic-state & exceptions
Date: Tue, 30 Jun 2015 15:50:30 +0200
This code crashes Guile 2.0.11:

(define x (make-dynamic-state))
(with-dynamic-state x (lambda () (/ 1 0)))


For now I'm using this workaround:

(let ((w-d-s with-dynamic-state))
  (set! with-dynamic-state
        (lambda (s p)
          (let ((e #f))
            (w-d-s s (lambda ()
                       (catch #t p
                         (lambda x (set! e x)))))
            (when e (apply throw e))))))



This bug report was last modified 8 years and 134 days ago.

Previous Next


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