unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Christopher Baines <mail@cbaines.net>
Cc: guix-devel@gnu.org
Subject: Re: Implementing the guix-dameon in Guile
Date: Thu, 14 Sep 2023 15:29:46 +0200	[thread overview]
Message-ID: <87il8cc27p.fsf@gnu.org> (raw)
In-Reply-To: <875y4et4up.fsf@cbaines.net> (Christopher Baines's message of "Wed, 13 Sep 2023 16:36:54 +0100")

Hi Christopher,

Christopher Baines <mail@cbaines.net> skribis:

> My plan is to focus on this over the next year. I left my previous day
> job quite a few months ago now to take a bit of a break, that's the main
> reason I've been able to spend more time trying to push forward some of
> the QA stuff. With some monetary support from NLNet [2], I'm planning to
> continue this break and focus for the next year on getting a Guile
> implementation of the guix-daemon written and adopted.
>
> 2: https://nlnet.nl/project/GuixDaemon-Guile/

Yay, this is great news!! But also: thank you for your long-term
commitment, it’s an invaluable contribution to the project.

> 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—after all, a fair bit of “the daemon” is already in Scheme
(there’s substitute support and other helps, plus (guix store …) etc.)
I’m not sure that’s feasible or desirable though.

My take today :-) is that ‘wip-guile-daemon’ is a great starting point.
We could aim towards having a minimal ‘guix daemon’ (space) command that
would coexist with ‘guix-daemon’ and that people could try out soonish
(I think Caleb got it to build derivations back then).  Eventually less
adventurous people will use it, and at some point it’ll be sufficiently
mature that we can default to ‘guix daemon’ instead of ‘guix-daemon’.

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

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

I hope this makes sense.  Time will tell!

Ludo’.


  parent reply	other threads:[~2023-09-14 13:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 15:36 Implementing the guix-dameon in Guile Christopher Baines
2023-09-13 16:44 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-09-13 17:13   ` Maxim Cournoyer
2023-09-14  7:12     ` Simon Tournier
2023-09-14  8:22     ` Christopher Baines
2023-09-13 18:56 ` Vagrant Cascadian
2023-09-14  8:42   ` Christopher Baines
2023-09-14 15:35     ` Ludovic Courtès
2023-09-14 12:58 ` Josselin Poiret
2023-09-18 12:57   ` Christopher Baines
2023-09-14 13:29 ` Ludovic Courtès [this message]
2023-09-14 15:53   ` Christopher Baines
2023-09-14 16:36     ` Ludovic Courtès
2023-09-16  9:41   ` Mathieu Othacehe
2023-09-18 13:19     ` Christopher Baines
2023-09-18 19:12   ` Thompson, David
2023-09-14 17:31 ` Caleb Ristvedt via Development of GNU Guix and the GNU System distribution.
2023-09-18 12:58   ` Christopher Baines
2023-09-14 22:46 ` Mekeor Melire
2023-09-18 13:15   ` Christopher Baines
  -- strict thread matches above, loose matches on Subject: below --
2023-12-30 12:57 Yarl via Development of GNU Guix and the GNU System distribution.

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=87il8cc27p.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=mail@cbaines.net \
    /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).