From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37682) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dnqZ1-0007ZB-VN for guix-patches@gnu.org; Fri, 01 Sep 2017 14:21:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dnqYw-0004DK-SN for guix-patches@gnu.org; Fri, 01 Sep 2017 14:21:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:60100) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dnqYw-0004D4-P2 for guix-patches@gnu.org; Fri, 01 Sep 2017 14:21:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dnqYw-00059K-Gu for guix-patches@gnu.org; Fri, 01 Sep 2017 14:21:02 -0400 Subject: [bug#28274] [PATCH] gnu: Add fold-packages-in-modules. Resent-Message-ID: Date: Fri, 1 Sep 2017 19:20:26 +0100 From: Christopher Baines Message-ID: <20170901192026.42c484e7@cbaines.net> In-Reply-To: <878thy7plj.fsf@gnu.org> References: <20170829070723.21727-1-mail@cbaines.net> <87r2vrrhzc.fsf@gnu.org> <20170831224433.07d6cea7@cbaines.net> <878thy7plj.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/KAnwl=Z9Ev6TE3ZRig1KcXf"; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 28274@debbugs.gnu.org --Sig_/KAnwl=Z9Ev6TE3ZRig1KcXf Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Fri, 01 Sep 2017 11:08:56 +0200 ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > Christopher Baines skribis: >=20 > > On Thu, 31 Aug 2017 15:20:55 +0200 > > ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > > =20 > >> Instead of introducing a new procedure, what about simply: > >>=20 > >>=20 > >> diff --git a/gnu/packages.scm b/gnu/packages.scm > >> index 562906178..b4ac6661c 100644 > >> --- a/gnu/packages.scm > >> +++ b/gnu/packages.scm > >> @@ -140,17 +140,19 @@ for system '~a'") > >> directory)) > >> %load-path))) > >> =20 > >> -(define (fold-packages proc init) > >> - "Call (PROC PACKAGE RESULT) for each available package, using > >> INIT as -the initial value of RESULT. It is guaranteed to never > >> traverse the -same package twice." > >> +(define* (fold-packages proc init > >> + #:optional > >> + (modules (all-modules > >> (%package-module-path)))) > >> + "Call (PROC PACKAGE RESULT) for each available package defined > >> in one of +MODULES, using INIT as the initial value of RESULT. It > >> is guaranteed to never +traverse the same package twice." > >> (fold-module-public-variables (lambda (object result) > >> (if (and (package? object) > >> (not (hidden-package? > >> object))) (proc object result) > >> result)) > >> init > >> - (all-modules > >> (%package-module-path)))) > >> + modules)) > >> =20 > >> (define find-packages-by-name > >> (let ((packages (delay > >>=20 > >>=20 > >> ? =20 > > > > This looks great. Are you set to push it up, or shall I? =20 >=20 > Pushed, thanks! Awesome, thanks Ludo :) --Sig_/KAnwl=Z9Ev6TE3ZRig1KcXf Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlmppOpfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9Xc3nA//eexqSk7y7Mdb3lRKXS+q+KY3x/UBquC7SuVOc+RE501x8uH56iGsmxPd FqxkFM43Yd1InIuz6IE5tp8TWFFoAr5nbJdniJc9yC1MG04BysRFfrjMhHjI8ESo 4a2/URSz2H2Vt3GQQnM9HP0YRAh66P4nVVQtXAO2+LkmS6itog9V9+uMQQ3krjDX 8tFwWOhWYK0u3nZEF/99eqbr3aQ+e8zLwDShfr0bveDmyv0MrJFrc+Uli6ErcfNC DEaaIWwhtEo9nsNSdbFf0S5jPrLy7824fF9OSOLFQp1iiodHnao3rDQFEI93Ignw Q3cZpT7lA1Cv2x4w77Zbr+kTAmHt1acNkH3YdbgGkmmrqVPjhhaDzuLsv/DBaxUH ZpES+0qKt/tJ4iZJgCzFJewLmWG/oeijLoQiJUDB53PH/2QTriN7zunPunLSyYFz k40chWBB02x4a9DGK8htb6z1cOCas9qb+JbMBCZ5D7U/0ixpzgfy7IY6BilGA+Sk l7kfPld/j3LXFC17okL4lrDMp56Znuh5fEUOgnvC/MlQSKVqYOxJu9Y0bL9sMH8d GyC2aWsqpfcYTtWK8Gj/2TMy9ojZkoHI9raC5qnz5RmSc8kfjuOdxD6hzXgEwf3T CPsyuwCTraqC1FKcokBhV2dSKrUjpvfXqow8/D3+hx94NzKiLuw= =ak2u -----END PGP SIGNATURE----- --Sig_/KAnwl=Z9Ev6TE3ZRig1KcXf--