From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Service refactoring Date: Thu, 10 Sep 2015 18:14:21 +0200 Message-ID: <87lhcez1ya.fsf@gnu.org> References: <87a8t3mc2v.fsf@netris.org> <87d1xyk45i.fsf@igalia.com> <87vbbn44zi.fsf_-_@gnu.org> <871te96k7o.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35710) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Za4UT-0002kp-8Q for guix-devel@gnu.org; Thu, 10 Sep 2015 12:14:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Za4US-00033p-9e for guix-devel@gnu.org; Thu, 10 Sep 2015 12:14:25 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:44848) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Za4US-00033j-6K for guix-devel@gnu.org; Thu, 10 Sep 2015 12:14:24 -0400 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:50062 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1Za4UR-0001ar-FX for guix-devel@gnu.org; Thu, 10 Sep 2015 12:14:23 -0400 In-Reply-To: <871te96k7o.fsf@netris.org> (Mark H. Weaver's message of "Tue, 08 Sep 2015 10:48:11 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org The =E2=80=98wip-service-refactor=E2=80=99 currently does the easy part of = the service refactoring, which essentially turns the service procedures into regular procedures (rather than monadic procedures.) I think it=E2=80=99s important because it allows users to =E2=80=98map=E2= =80=99 over %base-services, for instance, possibly replacing some of the entries, without actually touching the store (whereas currently, one would first have to =E2=80=9Cbind=E2=80=9D each item of %base-services, possibly affect= ing the store.) It also makes it easier for newcomers to fiddle with services in their OS config file. To do so, the branch adds a few =E2=80=9Cfile-like objects=E2=80=9D that re= ally are just counterparts of existing monadic procedures: =E2=80=A2 =E2=80=98computed-file=E2=80=99 returns an object with the same= meaning as a =E2=80=98gexp->derivation=E2=80=99 call; =E2=80=A2 =E2=80=98program-file=E2=80=99 is the declarative counterpart o= f =E2=80=98gexp->script=E2=80=99. These objects can be used anywhere in a gexp, which is probably going to be useful in other places. --8<---------------cut here---------------start------------->8--- + 56d3d68 system: Make service procedures non-monadic. + 807d34a gexp: Add 'mixed-text-file'. + 03d2914 gexp: Add 'program-file'. + 82ad249 gexp: Add 'computed-file'. + 7dfa966 services: 'mingetty-service' no longer takes monadic values. --8<---------------cut here---------------end--------------->8--- More to come! Ludo=E2=80=99.