From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id B2fmJX9YlGD3UwEAgWs5BA (envelope-from ) for ; Thu, 06 May 2021 22:58:39 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id QKvzIH9YlGD6bgAAB5/wlQ (envelope-from ) for ; Thu, 06 May 2021 20:58:39 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 42B99277E0 for ; Thu, 6 May 2021 22:58:39 +0200 (CEST) Received: from localhost ([::1]:42728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lel4w-0003RP-C6 for larch@yhetil.org; Thu, 06 May 2021 16:58:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lel4k-0003Pb-TU for guix-devel@gnu.org; Thu, 06 May 2021 16:58:26 -0400 Received: from baptiste.telenet-ops.be ([2a02:1800:120:4::f00:13]:47082) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lel4i-0006a7-VK for guix-devel@gnu.org; Thu, 06 May 2021 16:58:26 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by baptiste.telenet-ops.be with bizsmtp id 1YyL2500g0mfAB401YyMv0; Thu, 06 May 2021 22:58:21 +0200 Message-ID: Subject: Re: FYI: guile-scheme bindings to GNU Mach and the Hurd From: Maxime Devos To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Thu, 06 May 2021 22:58:07 +0200 In-Reply-To: <877dkbesf2.fsf@gnu.org> References: <87eeeq7awi.fsf@dismail.de> <228176b60edf4487b41da867d3fe8b74cbf64b16.camel@telenet.be> <87r1io5076.fsf@gnu.org> <1ba5e5147ae377d0e301863f8e794fe5b92b6a04.camel@telenet.be> <877dkbesf2.fsf@gnu.org> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-+mi94i679jkdaHCvITNH" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1620334701; bh=p1F9dd44dmzpNDwGOn/fkABSN7ZTu8c1SKv2y5Qwmxg=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=U6ug8zmPNiUsjSNqnBhQeYAcKFKT4AXtinnUZ9eK1HcN+tGzjWCFVu8xYtbp2flBP 541CUEI6L7JPVdKK+p+G1G8z0pTIyFHjbBNY0Nvzgg+W1w+CUCQ70CYfOz4i+iOCei JauWnErEVpSn+hdaWmXmqnLo/aozPIFGTo3lBzihRXIgNpMlM90kjN6phKWt9Vb++5 +L/oM4sMENgsC1wMFn4VsxD6LKwQM1h5hDE3x8qFAHVFuY0Oc3AooPKiy1J62ltH9T YgO5FkoAnInsXFTwOhgv6bvt7BKLc1nudEspY3y4yiUqPCyjS+/jYB0xpmAICpn6fW uvnwi1d8UHrHA== Received-SPF: pass client-ip=2a02:1800:120:4::f00:13; envelope-from=maximedevos@telenet.be; helo=baptiste.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1620334719; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=p1F9dd44dmzpNDwGOn/fkABSN7ZTu8c1SKv2y5Qwmxg=; b=aLGb70gxotZcjqjopiWVb9WKXkgKUPFSdu8/M6q0ie01660FT/pGUoFKlO/Kl8BB5hkqyk 5jASs1U/DYXrhgR6JeBmEtSm6+iYxiJb8Bd1UBT1p9wGtuzAQe2LYihKQeWGNDSeDok1ox rBMABy2UScgMlrDwirYdeLTDRZAZFQSX85U+NXZMarNhD5Rnj8LHY7NHKEO6D1I192wEzy m4SVnJ4V1lJyImA9FhnkK/TDoGcsX55UjTt2GiSBBU4GsDiWaiyNoY3eGk/02S/K1pUQU+ /KCm7od964YmtMzyRm9mGmZrJFku7kPK0mwYhIwz4/HMg1oMrpkUznwrj3MJhA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1620334719; a=rsa-sha256; cv=none; b=gxLuBFuLIDMaKceqE1KdkDN6sy+WFSS/SYVDmiLGYiaeZRd8x10407ZA4y4iFmYxiM1bTS 4HWcgTy8uWmwkfNnjqkou0S/2VnMgmwC4LY5NvQJPBVtIzXuMnrxutd0I333E1aDeFjNsW tVBJTnBA3wpCYMlNRlw3OAoLQGwyN83nADaWM9V9I37yM2dBacOrUm1yTEh/6lMK9WnpxD dE4gsjiC21PRelDqrQn+vQNVjKMtku9v8VyS8O6kPNvRMhDxsx3YmIIPEeri8l0c1WzUNf lwv1OSGuKjc6Xw5yDoV3bzs/MF5yx6I3AJM+WD6g5+4Gueb0MZgQ5VmoApx2Zw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=U6ug8zmP; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.96 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=U6ug8zmP; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 42B99277E0 X-Spam-Score: -1.96 X-Migadu-Scanner: scn0.migadu.com X-TUID: OhR1o78J0t/K --=-+mi94i679jkdaHCvITNH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s schreef op do 06-05-2021 om 18:30 [+0200]: > BTW, a dream of mine was to implement RPCs in Scheme. That is, you=E2=80= =99d > have a macro that would essentially do the same work as MiG (the Mach > Interface Generator), and then we=E2=80=99d pass the bytes directly to > =E2=80=98mach_msg=E2=80=99. The lisp bindings have a binding to =E2=80=98mach_msg=E2=80=99 (not yet sch= emified). Note that the lisp hurd bindings never use "send-message", instead they bind the C bindings generated by MiG. Also, =E2=80=98implementing RPCs in Scheme=E2=80=99 is something I would li= ke to see as well. One thing I have in mind, is that MiG RPCs can block, but mach_msg itself seems to be perfectly usable in a non-blocking way (maybe using port notifications?). If we use something like guile-fibers, and integrate guile-hurd with fibers, then we may be able to do crazy things like: * asynchronuously opening files, for free! * asynchronuous 'accept', for free! * asynchronuous disk I/O, for free! * asynchronuous ... practically anything, for free! Another possibility is debugging the translator responsible for IP and at the same time running a web browser (or IRC client, or ...) based on guile-fibers+guile-hurd. The web browser wouldn't be overly bothered by the network translator temporarily being paused (for debugging) and therefore not responsing to the RPCs for 'connect' et al. Loading webpages will be delayed of course, but the browser itself won't hang (so you can still scroll, copy & paste, perhaps browse the file system ...). Greetings, Maxime. --=-+mi94i679jkdaHCvITNH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYJRYXxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uhIAQD7VMQ3tXXtTSLN7jEeIfHjVMtq wnCUfEhKe0POf5h3WAD7BURxPWizFiK2S6rcTkDrPKNw78mb85gnQ4wj7XJDjwc= =X4he -----END PGP SIGNATURE----- --=-+mi94i679jkdaHCvITNH--