From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Christopher Allan Webber Newsgroups: gmane.lisp.guile.user Subject: Re: Potluck - thread safe event loop with await semantics Date: Mon, 22 Feb 2016 11:54:37 -0800 Message-ID: <87povo8qrm.fsf@dustycloud.org> References: <20160216214512.42e6fd39@bother.homenet> <878u2dosxu.fsf@gnu.org> <20160222174056.2091d806@dell.homenet> <20160222181238.44241ad8@dell.homenet> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1456170905 25342 80.91.229.3 (22 Feb 2016 19:55:05 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 22 Feb 2016 19:55:05 +0000 (UTC) Cc: Guile User To: Chris Vine Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Feb 22 20:54:58 2016 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aXwZO-00013S-Jv for guile-user@m.gmane.org; Mon, 22 Feb 2016 20:54:58 +0100 Original-Received: from localhost ([::1]:51574 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXwZO-0001xl-32 for guile-user@m.gmane.org; Mon, 22 Feb 2016 14:54:58 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60940) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXwZ9-0001tx-Cu for guile-user@gnu.org; Mon, 22 Feb 2016 14:54:44 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXwZ6-0000uj-6T for guile-user@gnu.org; Mon, 22 Feb 2016 14:54:43 -0500 Original-Received: from dustycloud.org ([50.116.34.160]:50600) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXwZ6-0000uZ-23 for guile-user@gnu.org; Mon, 22 Feb 2016 14:54:40 -0500 Original-Received: from oolong (localhost [127.0.0.1]) by dustycloud.org (Postfix) with ESMTPS id 36A1E2661D; Mon, 22 Feb 2016 14:54:38 -0500 (EST) User-agent: mu4e 0.9.13; emacs 24.5.1 In-reply-to: <20160222181238.44241ad8@dell.homenet> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 50.116.34.160 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:12427 Archived-At: Chris Vine writes: > On Mon, 22 Feb 2016 12:53:10 -0500 > "Thompson, David" wrote: >> On Mon, Feb 22, 2016 at 12:40 PM, Chris Vine >> wrote: >> >> > The other thing that may require further work is the >> > documentation. I am used to doxygen or gtk-doc, neither of which I >> > imagine will parse guile scheme code, so I will have to look into >> > what is available (I don't like info). >> > >> > I'll post the URL when I have put it up. >> >> Please consider unifying with Chris Webber's 8sync project, which >> covers the same territory and has been approved as an official GNU >> project. >> >> https://notabug.org/cwebber/8sync > > 8sync has a nice design but the two cannot be unified because (i) 8sync > does not try to be thread safe (it is strictly single-threaded), and > (ii) it does not wrap an external event loop such as the glib/gtk+ > event loop. In a number of ways it is considerably more sophisticated > than my code, because it does not reveal the event loop at all, nor for > that matter does it explicitly reveal its await/resume continuations. > It is highly abstracted. > > They are just different things, which happen to both use delimited > continuations in the same way. In particular, I think it essential > that an asynchronous event loop should have the ability for worker > threads to post events to it. > > Chris Thanks for the kind words. I'm amazed that you got thread safe asynchronous code working in Guile in this way! Admittedly I don't understand how you've done it yet... hopefully I can look soon... Maybe there is some way for our stuff to work together, I'm not sure. I'd have to look further. You're right that 8sync is more abstracted. Regardless, I'm glad to see various approaches being explored in Guile-land right now. Hats off to your neat work!