From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Comments on =?utf-8?B?4oCYd2lwLW5pb+KAmQ==?= Date: Wed, 21 Mar 2012 23:39:20 +0100 Message-ID: <87wr6d4m07.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1332369650 4921 80.91.229.3 (21 Mar 2012 22:40:50 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 21 Mar 2012 22:40:50 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Mar 21 23:40:50 2012 Return-path: Envelope-to: guile-devel@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 1SAUD1-0001jk-CQ for guile-devel@m.gmane.org; Wed, 21 Mar 2012 23:40:47 +0100 Original-Received: from localhost ([::1]:44634 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAUD0-000495-OP for guile-devel@m.gmane.org; Wed, 21 Mar 2012 18:40:46 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:45927) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAUCx-00048F-AW for guile-devel@gnu.org; Wed, 21 Mar 2012 18:40:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAUCu-0004yE-Sp for guile-devel@gnu.org; Wed, 21 Mar 2012 18:40:42 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:60342) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAUCu-0004y4-Lh for guile-devel@gnu.org; Wed, 21 Mar 2012 18:40:40 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1SAUCq-0001bO-Te for guile-devel@gnu.org; Wed, 21 Mar 2012 23:40:36 +0100 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 21 Mar 2012 23:40:36 +0100 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 21 Mar 2012 23:40:36 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 37 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 Germinal an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Cancel-Lock: sha1:3iSl/M4oDSQCbnUniVPk6NvNUuU= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14154 Archived-At: Hello, I had a quick look at ‘wip-nio’, and here are initial comments. • epoll is Linux-specific. Any idea how a more multi-platform API could be provided? I guess libevent could be used, but we don’t want to add one more dependency in 2.0. How much is (ice-9 nio) dependent on epoll vs. poll, for instance? • ‘nio’ doesn’t seem very descriptive to me; ‘nbio’ maybe? • I agree that it’s an important problem to address, and I like the use of coroutines, and I like that it actually solves the problem for some applications like the web server. However, I think the approach has shortcomings: (1) it doesn’t accept other sources of events (timers, mouse clicks, etc.), and (2) it doesn’t allow you to do something while waiting (of course, other threads/waiters get scheduled, but the caller is just waiting, so you can’t for instance update your progress bar while waiting for your bytevector to arrive.) Functional reactive programming à la FrTime [0], and synchronous reactive programming à la HipHop [1] seem to be much more generic and expressive. It would be great if Guile would come with such a framework eventually. It’s probably more work, though, so it probably makes sense to have an alternative mechanism in the meantime. WDYT? Thanks, Ludo’. [0] http://www.cs.brown.edu/~greg/ [1] http://www-sop.inria.fr/members/Gerard.Berry/Papers/plastic2.pdf