unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Neil Jerram <neil@ossau.uklinux.net>
Cc: djurfeldt@nada.kth.se
Subject: Re: SRFI 34
Date: 17 May 2003 10:39:22 +0100	[thread overview]
Message-ID: <m3he7tvrn9.fsf@laruns.ossau.uklinux.net> (raw)
In-Reply-To: <87of228kq3.fsf@zagadka.ping.de>

>>>>> "Marius" == Marius Vollmer <mvo@zagadka.de> writes:

    Marius> Neil Jerram <neil@ossau.uklinux.net> writes:
    >> As part of "looking", I've written and committed a first
    >> implementation of SRFI 34.

    Marius> Nice!  I think I like SRFI 34.  Just the essential bits...

    Marius> Anyway, I sense trouble with our lazy-catch:

    guile> (define f (make-fluid))
    guile> (lazy-catch #t (lambda ()
    Marius>                             (with-fluids ((f 12))
    Marius>                               (throw 'x)))
    Marius>                           (lambda (x)
    Marius>                             (pk 'handler (fluid-ref f))))

    Marius>     ;;; (handler #f)

    Marius> Shouldn't this print '(handler 12)' since the handler is
    Marius> supposed to be running in the dynamic context of the
    Marius> throw?

Our lazy-catch implementation specifically unwinds dynamic context so
that we see (handler #f) here rather than (handler 12).  Effectively
the only thing that lazy-catch doesn't unwind is the stack.  I've
described this current behaviour in some detail in the manual.

Unwinding the fluid context is contrary to my intuition, though, and
it appears to yours also.

So perhaps we should consider changing it.  Right now, fluids, dynamic
winds and catches are all on the same wind list, which means we have
to unwind the list to get the right catch context for the lazy-catch
handler's throw.  One option then would be to have separate wind lists
for separate kinds of dynamic context, and only unwind the list with
the catches in it.  But I wonder if there are strong theoretical
reasons why having separate wind lists would be a bad thing?

        Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


  reply	other threads:[~2003-05-17  9:39 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.GSO.3.96.1030209200016.26546A-100000@anh>
2003-02-25 14:19 ` PLEASE: debugging embedded guile code Joris van der Hoeven
2003-02-25 14:36   ` Dale P. Smith
2003-04-26 14:51     ` Neil Jerram
2003-04-26 16:40       ` Bruce Korb
2003-04-26 19:12         ` Neil Jerram
2003-04-26 20:13           ` Bruce Korb
2003-04-27 20:49             ` Neil Jerram
2003-04-27 21:57               ` Bruce Korb
2003-04-28 15:54                 ` Paul Jarc
2003-04-28 16:07                   ` Bruce Korb
2003-04-28 19:21                 ` Neil Jerram
2003-04-28 20:06                   ` Bruce Korb
2003-04-28 20:58                     ` Neil Jerram
2003-05-16 17:19                       ` Bruce Korb
2003-05-16 19:23                         ` Neil Jerram
2003-05-16 20:27                           ` Bruce Korb
2003-05-16 21:21                             ` Rob Browning
2003-05-16 21:56                               ` Bruce Korb
2003-05-17  0:31                                 ` Bruce Korb
2003-05-17  2:33                                   ` Bruce Korb
2003-05-19 15:00                                     ` Paul Jarc
2003-04-28 13:52       ` Mikael Djurfeldt
2003-04-28 19:26         ` Neil Jerram
2003-04-30  0:13           ` SRFI 34 Neil Jerram
2003-05-17  0:45             ` Marius Vollmer
2003-05-17  9:39               ` Neil Jerram [this message]
2003-05-17 20:36                 ` Marius Vollmer
2004-03-07 18:34                   ` Neil Jerram
2003-04-26 14:45   ` PLEASE: debugging embedded guile code Neil Jerram

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3he7tvrn9.fsf@laruns.ossau.uklinux.net \
    --to=neil@ossau.uklinux.net \
    --cc=djurfeldt@nada.kth.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).