From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <guix-patches-bounces+larch=yhetil.org@gnu.org>
Received: from mp11.migadu.com ([2001:41d0:2:4a6f::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by ms5.migadu.com with LMTPS
	id iD6WDHo+ZWOywgAAbAwnHQ
	(envelope-from <guix-patches-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Fri, 04 Nov 2022 17:31:54 +0100
Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by mp11.migadu.com with LMTPS
	id oOCkDHo+ZWOGkgAA9RJhRA
	(envelope-from <guix-patches-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Fri, 04 Nov 2022 17:31:54 +0100
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 0969710CA6
	for <larch@yhetil.org>; Fri,  4 Nov 2022 17:31:53 +0100 (CET)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <guix-patches-bounces@gnu.org>)
	id 1oqzbH-0001sw-C8; Fri, 04 Nov 2022 12:31:23 -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 <Debian-debbugs@debbugs.gnu.org>)
 id 1oqzax-0001oc-7w
 for guix-patches@gnu.org; Fri, 04 Nov 2022 12:31:05 -0400
Received: from debbugs.gnu.org ([209.51.188.43])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1oqzaw-0002nL-W7
 for guix-patches@gnu.org; Fri, 04 Nov 2022 12:31:03 -0400
Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1oqzaw-0003iB-Fu
 for guix-patches@gnu.org; Fri, 04 Nov 2022 12:31:02 -0400
X-Loop: help-debbugs@gnu.org
Subject: [bug#57963] [PATCH v5 2/2] home: services: Support user's fontconfig
 configuration.
Resent-From: "(" <paren@disroot.org>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-CC: guix-patches@gnu.org
Resent-Date: Fri, 04 Nov 2022 16:31:02 +0000
Resent-Message-ID: <handler.57963.B57963.166757940514110@debbugs.gnu.org>
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 57963
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: "Taiju HIGASHI" <higashi@taiju.info>,
 "Liliana Marie Prikler" <liliana.prikler@gmail.com>
Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@gnu.org>, 57963@debbugs.gnu.org,
 Andrew Tropin <andrew@trop.in>
Received: via spool by 57963-submit@debbugs.gnu.org id=B57963.166757940514110
 (code B ref 57963); Fri, 04 Nov 2022 16:31:02 +0000
Received: (at 57963) by debbugs.gnu.org; 4 Nov 2022 16:30:05 +0000
Received: from localhost ([127.0.0.1]:54654 helo=debbugs.gnu.org)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
 id 1oqza1-0003fW-B9
 for submit@debbugs.gnu.org; Fri, 04 Nov 2022 12:30:05 -0400
Received: from knopi.disroot.org ([178.21.23.139]:51834)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <paren@disroot.org>) id 1oqzZw-0003eT-Ey
 for 57963@debbugs.gnu.org; Fri, 04 Nov 2022 12:30:04 -0400
Received: from localhost (localhost [127.0.0.1])
 by disroot.org (Postfix) with ESMTP id 8D533411C4;
 Fri,  4 Nov 2022 17:29:58 +0100 (CET)
X-Virus-Scanned: SPAM Filter at disroot.org
Received: from knopi.disroot.org ([127.0.0.1])
 by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id RWTmtae2mf3g; Fri,  4 Nov 2022 17:29:57 +0100 (CET)
Mime-Version: 1.0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail;
 t=1667579397; bh=X+VAp3J46dOvMUowF21s1QAHHS6lIuR4i1F0/2dE0kQ=;
 h=Date:Cc:Subject:From:To:References:In-Reply-To:From;
 b=J5MeVrI1TUBlxRLeY1Dc8Huq2UK4EjvYoBdrs9V/WolqWm918ao038PI06ZbY26Nz
 rxNSiDJu5Wo92o0VMNCgxoJmaCUkdMfzdzPmJj+LsglbXuIXsLn+yd50BpFJfI0sNG
 NfPJ0kPr6eroyNGe/nlC6G1/rn39ns3YYkyt9Sdv4nenFWfUdjhhGUA0ctJS9YB85d
 v2Z7vA/kRCUqPj4hJnRMjDCEF+sGdFNWUau0cSyw7UsINBy6KkyUFqlwWdd8WOh7GS
 6X4lB3fVbKwNzgsjc2w0MwIUtdqsVyqQjROCupCCh78sER7gyAbMIxkjOrC+h+Itf1
 KLgKwLnKF2NWQ==
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 04 Nov 2022 16:29:56 +0000
Message-Id: <CO3NK706PMH8.2PCJQCLUZRRHE@guix-framework>
References: <87k053sxur.fsf@gnu.org> <87zgdzat99.fsf@trop.in>
 <87zgdxgx0l.fsf@taiju.info> <875ygiqur9.fsf@gnu.org>
 <87r0z5e23k.fsf@taiju.info> <87czanebhd.fsf@taiju.info>
 <871qqtapbo.fsf@taiju.info>
 <20a8312539654df3c98954620979078e3e41a150.camel@gmail.com>
 <87r0yt96iy.fsf@taiju.info>
 <c9ed26b9378d8af618498daebb36d416b826ca3e.camel@gmail.com>
 <87y1sugmh2.fsf@taiju.info>
 <0b28bb01db01fafe30acb45f4b12e259b79121a6.camel@gmail.com>
 <87leorqf7w.fsf@taiju.info>
In-Reply-To: <87leorqf7w.fsf@taiju.info>
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
X-BeenThere: guix-patches@gnu.org
List-Id: <guix-patches.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>,
 <mailto:guix-patches-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/guix-patches>
List-Post: <mailto:guix-patches@gnu.org>
List-Help: <mailto:guix-patches-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>,
 <mailto:guix-patches-request@gnu.org?subject=subscribe>
Sender: "Guix-patches" <guix-patches-bounces@gnu.org>
Reply-to:  "\(" <paren@disroot.org>
X-ACL-Warn: ,  "\( via Guix-patches" <guix-patches@gnu.org>
From:  "\( via Guix-patches" via <guix-patches@gnu.org>
Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org
X-Migadu-Flow: FLOW_IN
X-Migadu-Country: US
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
	s=key1; t=1667579514;
	h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:resent-cc:
	 resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to:
	 references:references:list-id:list-help:list-unsubscribe:
	 list-subscribe:list-post:dkim-signature;
	bh=p67nUHWt4Y19KlPOoXnqgMEzs0JjNP6amtcu8SQBK9Q=;
	b=WwxpOkviOc7osXD3Cv5lAxjGF5rxdTcNkYQSp1BaLpqDQFWMCyNFPROWIW5ySVLZGacsPI
	zacmGPFWz/aV7DHHjVWoHTfdvo5C5HxtsiBYMfc6Z4t4dl73TuWx11Jj5voBSLYczeOjlw
	vfNK98enKhIpUv1V1G5z1YhvYJs3aUHmEcMXYS5qvADKSfG7plmfqJagoSOoWstoln+5ar
	1pBQ9HyNnTBFZhO6uppELy0118XH+BA577/O1jA9VgY5BQFH6rKAx0Y8RazSEk8TWJiF6H
	rti/sw8OBTyipzeu4GSM3uLz3Rdfwef+ThSUrQ8w2uPJhWJ9ljZVX7Zuryz/1A==
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1667579514; a=rsa-sha256; cv=none;
	b=uaEG3hBkwhWZRw+Firghn/EJgQf97I4UsxtFL+uxHSrhWpQIzBAzG0wkw4jHfz9qnN+Fxb
	qhH86i5O1HW9TqtPrW19EwzMIif38xcLlT3RuMW7DumVpAW+IxGJwk2AP3zgZnbH/SMcea
	ZNN7TyaS2OBORxhqAOVECv5DJZNWczSj/otoRpzrOGe+F14hdIy5ENn3sLWFU7y3KVbeuG
	1oJ/SJV7y3W6qCgw5fsMrCI+GUQjE9y9OwXSlt5ncDXFQnbSzAGEZmKmpoPrQg+kAY/FUG
	ZDyAvRNl/Di26reb8aLYVJg2bpLK10v1A9o9xwpeneI8nujIYZX24HxsrI1HlA==
ARC-Authentication-Results: i=1;
	aspmx1.migadu.com;
	dkim=fail ("headers rsa verify failed") header.d=disroot.org header.s=mail header.b=J5MeVrI1;
	dmarc=pass (policy=none) header.from=gnu.org;
	spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"
X-Migadu-Spam-Score: -1.50
Authentication-Results: aspmx1.migadu.com;
	dkim=fail ("headers rsa verify failed") header.d=disroot.org header.s=mail header.b=J5MeVrI1;
	dmarc=pass (policy=none) header.from=gnu.org;
	spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"
X-Migadu-Queue-Id: 0969710CA6
X-Spam-Score: -1.50
X-Migadu-Scanner: scn0.migadu.com
X-TUID: fIKwii5ScsfD

Heya,

On Fri Nov 4, 2022 at 8:46 AM GMT, Taiju HIGASHI wrote:
> Sorry. I did not understand what you meant by making it a gexp-compiler
> instead. Is there anything reference documents or codes?

Guix's file-like objects are compiled into derivations using gexp-compilers=
,
which may be defined using the ``define-gexp-compiler'' form. These two are
equivalent:

  ;;; with procedure

  (define (foo->file-like foo)
    "Turns FOO into a derivation."
    (plain-file "foo"
      (foo-text foo)))

  ;; this way, you need to use foo->file-like whenever you want to use
  ;; foo in place of a file-like object

  (foo->file-like (foo (text "hello")))

  ;;; with gexp compiler

  (define-gexp-compiler (foo-compiler (foo <foo-record>) system target)
    ;;
    (lower-object
     (plain-file "foo"
       (foo-text foo))))

  ;; now, a ``foo'' can be treated as a lowerable file-like object! you
  ;; can put it anywhere you'd put a file-like.
  (foo (text "hello"))

So, basically, define-gexp-compiler lets you make new kinds of file-like
object from records! This is actually how computed-file, file-append, et
al are defined; see guix/gexp.scm. (Many of the gexp-compilers define both
a compiler and an expander; the compiler is a derivation to build when
the object is built, and the expander is the string to return when it's
gexped. file-append [line 680 in my checkout] is a good, clear example of
this.)

    -- (