unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Tom Lord <lord@regexps.com>
Cc: guile-devel@gnu.org, guile-user@gnu.org
Subject: Re: Threads and asyncs
Date: Mon, 2 Sep 2002 16:24:35 -0700 (PDT)	[thread overview]
Message-ID: <200209022324.QAA08246@morrowfield.regexps.com> (raw)
In-Reply-To: <87k7m43si7.fsf@raven.i.defaultvalue.org> (message from Rob Browning on Mon, 02 Sep 2002 18:02:08 -0500)


   From: Rob Browning <rlb@defaultvalue.org>

   > If I understand correctly, one of the reasons guile used the "one (C)
   > stack with copying" approach was so that call/cc could work properly
   > with a stack that included intermixed C and scheme function calls
   > without too much extra magic.  If that's a correct assesment, then how
   > do you deal with that problem in a stackless approach?


Well, blush....

I think I initially overvalued that feature.   I (nowadays) don't
think it should be central to _any_ implementation.

Instead, i'd make an implementation that is good as just a pure scheme
implementation, then add in that seductive integration with that C
stack via a foreign-function interface.  I think a good pure scheme is
not at all likely to use the C stack that way, especially for
procedures of central importance like `apply' and `eval'.

Most primitives, especially the core ones, would not rely on using the
C stack in the manner of SCM.

But since Guile is an extension language, one should _be able to_
write primitives that way (i.e. C-stack friendly), perhaps with a
modest performance trade-off, when necessary.  That would let people
add Guile to programs with minimal disruption.

In fact, the C-stack-friendly API could be made largely implementation
independent.

If Guile never budges on the stack issue, I would still be inclined to
see it as an implementation optimized for cases when the C stack is
used heavily.



   > It was also my impression that the call/cc issue, along with an
   > aversion to having to explicitly deal with GC on the C side (which as
   > you've pointed out before might be dealt with via preprocessing,
   > etc.), were the two main things that would make switching to a
   > stackless approach somewhat controversial or difficult.  Are those the
   > only two big issues, or are there others?

You've caught me talking from memory.   We'd need to sit down with a
wiki or whiteboard and map it out together.   I won't pretend to be
able to list all the issues off the top of my head.   I won't pretend
to have finished my own personal map of the various design spaces :-)

Do you have a good library of Scheme implementation papers?  Maybe
there should be a collaborative bibliography to bring together a bunch
of the good ideas floating around out there.

-t




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


  reply	other threads:[~2002-09-02 23:24 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-02 20:52 Threads and asyncs Marius Vollmer
2002-09-02 21:24 ` Tom Lord
2002-09-02 21:53   ` Marius Vollmer
     [not found]   ` <87bs7ggiss.fsf@zagadka.ping.de>
2002-09-02 22:24     ` Tom Lord
2002-09-02 23:51       ` Marius Vollmer
2002-09-02 23:02   ` Rob Browning
2002-09-02 23:24     ` Tom Lord [this message]
2002-09-02 23:36       ` Tom Lord
2002-09-02 23:52         ` Lynn Winebarger
2002-09-03  0:57           ` Tom Lord
2002-09-03  1:13             ` Thomas Bushnell, BSG
2002-09-03  1:29               ` Tom Lord
2002-09-03  1:31               ` Tom Lord
2002-09-03  1:00         ` Thomas Bushnell, BSG
2002-09-03  1:28           ` Tom Lord
2002-09-03  1:23             ` RnRS process/history/documentation (was Re: Threads and asyncs) Lynn Winebarger
2002-09-03  1:27             ` Threads and asyncs Rob Browning
2002-09-03  1:45               ` Tom Lord
2002-09-03  1:48               ` Lynn Winebarger
2002-09-04 23:46                 ` Lynn Winebarger
2002-09-05  0:20                   ` Tom Lord
2002-09-05  1:45                     ` Lynn Winebarger
2002-09-05  2:38                       ` Tom Lord
2002-09-05  2:30                         ` Thomas Bushnell, BSG
2002-09-05  2:43                           ` Tom Lord
2002-09-05  2:40                             ` Thomas Bushnell, BSG
2002-09-05  3:00                               ` Tom Lord
2002-09-05  2:57                                 ` Thomas Bushnell, BSG
2002-09-05  3:23                                   ` Tom Lord
2002-09-05  3:14                         ` Lynn Winebarger
2002-09-05  4:00                           ` Tom Lord
2002-09-05  3:51                             ` Thomas Bushnell, BSG
2002-09-05  4:01                           ` Tom Lord
2002-09-05 22:03                             ` Lynn Winebarger
2002-09-03  1:34             ` Thomas Bushnell, BSG
2002-09-03 18:06 ` Marius Vollmer
2002-09-04  0:28   ` NIIBE Yutaka
2002-09-04 18:02     ` Marius Vollmer
2002-09-04 22:30       ` NIIBE Yutaka

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=200209022324.QAA08246@morrowfield.regexps.com \
    --to=lord@regexps.com \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    /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).