From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <guix-devel-bounces+larch=yhetil.org@gnu.org>
Received: from mp10.migadu.com ([2001:41d0:403:478a::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by ms9.migadu.com with LMTPS
	id cKmyAbovA2VFCAAAG6o9tA:P1
	(envelope-from <guix-devel-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Thu, 14 Sep 2023 18:07:22 +0200
Received: from aspmx1.migadu.com ([2001:41d0:403:478a::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by mp10.migadu.com with LMTPS
	id cKmyAbovA2VFCAAAG6o9tA
	(envelope-from <guix-devel-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Thu, 14 Sep 2023 18:07:22 +0200
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 87B8237DEE
	for <larch@yhetil.org>; Thu, 14 Sep 2023 18:07:21 +0200 (CEST)
Authentication-Results: aspmx1.migadu.com;
	dkim=none;
	dmarc=none;
	spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
	s=key1; t=1694707642;
	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; bh=N9E0QByBAdrfJgDh7NbDc0KbQl/XFV76leQ50wFRZFo=;
	b=emN7xX6cGK+ZsfuLd9Ah2jHx10emvpiJNfinXen13YWuRaLNA6YcndVrpf3SQjIdRS+/rL
	su9qFFlZTmUDA7z4heceAsSscFJShsSMY2awBI4V/8rAXdM5FL8/Hh3PECP5Uf7DbkhXoU
	iVlvb3jVv4JbpHegrTZbeaa5PQ3nvE/IhA+gLwza8Gbv9beh8TqsTzjfmy5wJ9jMiK0TmF
	LFxYD+14RQZmr8FpVlZsKzbagfuuC3dS77lsZ3DYIiqmINhNZPoxLuaUyrJDiJifoTblzO
	A+7oSMBI/mAovQ7O3D+4VsS/7RTEdH1DS67BDurubHTg9rcfkIlUStKDdqt2IA==
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1694707642; a=rsa-sha256; cv=none;
	b=cIo1aJoNzMdHgMunrig6pzZNeuvsxkAvjGvpSkYl05UTX6QIN7tQYHhioT/fRHczD9YU3R
	sAiV83z5gCx50uSx4DML3olFPeHCq2a1mEmmXRZbfXWVAJQxBrXvICwL/4+OmBwqgYwohz
	IgYYeCcX+TH8gac764opn8FHESsGSR/Vg3b2V7YWJOJwjf/k7VpddKxDxaWM2zcFhpmIuk
	HHtjNsMYdDXi6nzfuB2uwuHxOvml81H5MibO5o9jmuQGRJuKHeXj1WpFeqQjm037TTKkXT
	CHd1JzNrkpOR5jEtjTiMjWYJAHJinRdEUJttVGCE6hhLUoBxwiLlVPgaFWmNRA==
ARC-Authentication-Results: i=1;
	aspmx1.migadu.com;
	dkim=none;
	dmarc=none;
	spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <guix-devel-bounces@gnu.org>)
	id 1qgora-0007Ho-TP; Thu, 14 Sep 2023 12:06:42 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@cbaines.net>) id 1qgorY-0007Dr-Vo
 for guix-devel@gnu.org; Thu, 14 Sep 2023 12:06:40 -0400
Received: from mira.cbaines.net ([2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27])
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <mail@cbaines.net>)
 id 1qgorV-0002qH-LO; Thu, 14 Sep 2023 12:06:39 -0400
Received: from localhost (unknown [217.155.61.229])
 by mira.cbaines.net (Postfix) with ESMTPSA id EF2DB27BBE2;
 Thu, 14 Sep 2023 17:06:32 +0100 (BST)
Received: from felis (localhost [127.0.0.1])
 by localhost (OpenSMTPD) with ESMTP id b84f5612;
 Thu, 14 Sep 2023 16:06:32 +0000 (UTC)
References: <875y4et4up.fsf@cbaines.net> <87il8cc27p.fsf@gnu.org>
User-agent: mu4e 1.10.5; emacs 28.2
From: Christopher Baines <mail@cbaines.net>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: Implementing the guix-dameon in Guile
Date: Thu, 14 Sep 2023 16:53:16 +0100
In-reply-to: <87il8cc27p.fsf@gnu.org>
Message-ID: <87o7i4sprt.fsf@cbaines.net>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha512; protocol="application/pgp-signature"
Received-SPF: pass client-ip=2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27;
 envelope-from=mail@cbaines.net; helo=mira.cbaines.net
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-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.29
Precedence: list
List-Id: "Development of GNU Guix and the GNU System distribution."
 <guix-devel.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-devel>,
 <mailto:guix-devel-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/guix-devel>
List-Post: <mailto:guix-devel@gnu.org>
List-Help: <mailto:guix-devel-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-devel>,
 <mailto:guix-devel-request@gnu.org?subject=subscribe>
Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org
Sender: guix-devel-bounces+larch=yhetil.org@gnu.org
X-Migadu-Flow: FLOW_IN
X-Migadu-Country: US
X-Migadu-Spam-Score: -5.38
X-Spam-Score: -5.38
X-Migadu-Queue-Id: 87B8237DEE
X-Migadu-Scanner: mx0.migadu.com
X-TUID: r8mZ7dKRlEES

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Ludovic Court=C3=A8s <ludo@gnu.org> writes:

>> Rewrites are risky because you only get the value right at the end,
>> therefore the priority is to get a minimal but viable implementation in
>> Guile that can be switched to, and not to get distracted on adding or
>> improving functionality unnecessarily. That is better done once the new
>> implementation has been adopted.
>
> In the past I wondered, as Maxim wrote, whether we could move
> incrementally=E2=80=94after all, a fair bit of =E2=80=9Cthe daemon=E2=80=
=9D is already in Scheme
> (there=E2=80=99s substitute support and other helps, plus (guix store =E2=
=80=A6) etc.)
> I=E2=80=99m not sure that=E2=80=99s feasible or desirable though.
>
> My take today :-) is that =E2=80=98wip-guile-daemon=E2=80=99 is a great s=
tarting point.
> We could aim towards having a minimal =E2=80=98guix daemon=E2=80=99 (spac=
e) command that
> would coexist with =E2=80=98guix-daemon=E2=80=99 and that people could tr=
y out soonish
> (I think Caleb got it to build derivations back then).  Eventually less
> adventurous people will use it, and at some point it=E2=80=99ll be suffic=
iently
> mature that we can default to =E2=80=98guix daemon=E2=80=99 instead of =
=E2=80=98guix-daemon=E2=80=99.

Yep, my hope is that this can happen over the next year.

> Technically, I think it should be a single-threaded Fibers program,
> building on the experience we got from the Coordinator, shepherd, etc.
> That should allow us to do everything in one process (in contrast, the
> C++ implementation forks for every incoming connection, which then
> significantly complicates the implementation of locking, etc.)

Yep, that sounds good to me.

> I imagine the daemon could be structured as a set of actors (it=E2=80=99s=
 really
> my thing these days ;-)), with an eye on facilitating code sharing and
> interaction with the Coordinator, Cuirass, and all that.

I'm not very familiar with actors, but I guess that's similar to having
a bunch of cooperating fibers which handle different things.

And maybe not in the short term, but if the Guile daemon implementation
is flexible and extensible enough, it should be possible to replace the
build coordinator with some extensions in and around the guix daemon.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmUDL4ZfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh
aW5lcy5uZXQACgkQXiijOwuE9XfZ6w/6A3fiufoa+0UjUNaDL9QaoThu6g7Q8+ng
aEZBZUfQAMwUlnB6D7Mx6a4FY/lMKmcdqICF8Y5Zdzt8ECCITBXteObxjtn5W0kr
JoKUo20u72Qji8mjTDwkpiRF33PR5iA+IS1u86hrQGKLJwyaotEEk/Z9ddx4N867
BcRcI6IYnEw3E6Ho/WPCdx7nPJVSBgWObQy2/KDWGT8Iov/AwLKsYV9KfLsXHHnt
J1DtMBqoWlKsNnM/4Gf682nLVV6k5O5H2rw3TOeXMo5zFTOAEi/S3xXrQuK97Doi
FXzBXYvze8Bz+/zCLSl2V6V/hPN9sHOh5VmmAbT1NRzAAejwWus8Msd75y5wNztz
TUonNoTK5OBxvZdyWO+mlFk/WZnquJlvIpBKoSUUKErtQKCN7eRrSfydxPA9lE9A
19fEZ6NOuu5mKSkVuaTJ4WHckgVxVsfXUlZOOm4fFz6L+4mlLrb0PqoxiKmhpiiI
9BjGvLdszxavdZ1ACJ7LNGTkh12RrWBjsiP0wGWXvlv+bdhNrYoSz++NyLj0uuGr
DgsjFXIGagctY1+EDEWaip8JjmiQ9BEgOwqq8Yd94i7PdZ+ocBBVrGrd3rBPky4f
3C+eoRvDWHV6R/Pq3a73OqSWUXKNTLqlk2iBPPaVZCBf2YaXTVJ4JDVZTBoOOSYQ
cnOcbq02/RM=
=KGjU
-----END PGP SIGNATURE-----
--=-=-=--