unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Lynn Winebarger <owinebar@free-expression.org>
Cc: tb@becket.net, guile-devel@gnu.org, guile-user@gnu.org
Subject: Re: Threads and asyncs
Date: Mon, 2 Sep 2002 20:48:34 -0500	[thread overview]
Message-ID: <02090220483420.19624@locke.free-expression.org> (raw)
In-Reply-To: <87u1l73ls1.fsf@raven.i.defaultvalue.org>

On Monday 02 September 2002 20:27, Rob Browning wrote:
> Tom Lord <lord@regexps.com> writes:
> 
> > ObPolitics: If you think this is merely a friendly design space
> > disagreement, that will work itself out on the merits of which idea
> > works out better in practice, think again.
> 
> Believe it or not, I was *actually* thinking "I hope no one brings
> this up so we can continue with a conversation that *appears* to be
> headed in a productive direction."

    I agree, it was headed in a good direction (actually right towards
the subject of the "Stack SIze?" thread on guile-user).
     What is the upper limit on the trouble Guile users could be made
to deal with vis-a-vis garbage collection, in particular, precise
generational,copying,compacting garbage collection?  They apparently
have to go to some trouble now to make sure the compiler doesn't
optimize SCM's off the stack.  Would it be too much to have them
explicitly declare the lifetimes of these SCMs (alternatively, to insure
they are accessible from some known root)?  Or to make them
not hide SCM's in other values in the un-preprocessed source
(so we could write a pass to analyze types for the GC to use)?
     Yeah, I know, it's all blue sky.
     As long as we're at it, I'd like the C continuation semantics to 
be that you can't return from a C function twice, but otherwise
you can jump back and forth between Scheme code even
if you returned through the C function once.  There's really
no reason to pretend C functions have anything like a real
continuation, so we shouldn't have to go to special lengths
to support them (ok, keep around the old behaviour for those
who really,really want it applied to specific functions that are
written specifically to be valid: i.e. they guarantee no resources
in use (other than the ones on the stack, which are maintained
by the copying) are explicitly freed by their return.
      As for the rest, I think we should make C functions
declare themselves as primitives that never call Scheme,
and "other", that might call eval.  The first could use some
fixed "scratch" stack space, the others should get a freshly
allocated stack (whose size they declare through snarfage
or somesuch).  The interpreter could then analyze the
scheme code to find regions "between" call/cc's that could
use some fixed stack.  Call/cc's allocate a fresh Scheme
stack for the "next" block of code that gets executed.
    Is that enough to get us back on track?


ObGripe:  Pick one mailing list or the other.  

Lynn
 


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


  parent reply	other threads:[~2002-09-03  1:48 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
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 [this message]
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=02090220483420.19624@locke.free-expression.org \
    --to=owinebar@free-expression.org \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=tb@becket.net \
    /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).