unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andy Wingo <wingo@igalia.com>
To: Christopher Allan Webber <cwebber@dustycloud.org>
Cc: guix-devel@gnu.org
Subject: Re: Hack the (init) system!
Date: Mon, 28 Sep 2015 09:13:03 +0000	[thread overview]
Message-ID: <877fnaq540.fsf@igalia.com> (raw)
In-Reply-To: <87k2rertcf.fsf@dustycloud.org> (Christopher Allan Webber's message of "Fri, 25 Sep 2015 18:04:33 -0500")

On Fri 25 Sep 2015 23:04, Christopher Allan Webber <cwebber@dustycloud.org> writes:

> I wonder if it's about time that Guile get something along the lines of
> a well-supported, general event loop system?

I think Guile needs user-space threads, implemented on top of delimited
continuations.  With threads, you don't need to invert control in your
program.  Racket takes this approach as well.

To get there we need to expose port buffers to Scheme, mark all file
descriptors as nonblocking, and cause EWOULDBLOCK to suspend the current
green thread.  I had a prototype working a while back on the
wip-ethreads branch, but you don't want to introduce a separate port
type -- really you want to have this work on all ports, so that's the
hacking that's needed.

I'll try to get out a 2.2 prerelease in the next week or so --
everything is up to date now, finally, I just have a pending patch to
make the stack grow down instead of up so we can use native CALL
instructions in some future.  Works in progress...

A

  parent reply	other threads:[~2015-09-28  9:13 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-03 21:02 Hack the (init) system! Ludovic Courtès
2015-09-04  0:25 ` Thompson, David
2015-09-04 12:05   ` Ludovic Courtès
2015-09-04 13:05     ` Thompson, David
2015-09-04  0:54 ` Thompson, David
2015-09-04  1:57 ` Mark H Weaver
2015-09-04 12:08   ` Ludovic Courtès
2015-09-25 23:04     ` Christopher Allan Webber
2015-09-26 13:02       ` Ludovic Courtès
2015-09-26 17:30         ` Christopher Allan Webber
2015-09-28  9:13       ` Andy Wingo [this message]
2015-09-28 13:42         ` Taylan Ulrich Bayırlı/Kammer
2015-09-28 13:43         ` Thompson, David
2015-09-28 15:01         ` Christopher Allan Webber

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://guix.gnu.org/

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

  git send-email \
    --in-reply-to=877fnaq540.fsf@igalia.com \
    --to=wingo@igalia.com \
    --cc=cwebber@dustycloud.org \
    --cc=guix-devel@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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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).