From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id AOJXB69yX1+qFgAA0tVLHw (envelope-from ) for ; Mon, 14 Sep 2020 13:39:59 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 8I3BAa9yX1+hFwAA1q6Kng (envelope-from ) for ; Mon, 14 Sep 2020 13:39:59 +0000 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 CA18E94050F for ; Mon, 14 Sep 2020 13:39:58 +0000 (UTC) Received: from localhost ([::1]:42318 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kHoi5-0007qQ-RO for larch@yhetil.org; Mon, 14 Sep 2020 09:39:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60634) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHohu-0007pE-Mj for guix-devel@gnu.org; Mon, 14 Sep 2020 09:39:46 -0400 Received: from mout01.posteo.de ([185.67.36.65]:39486) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHohr-0002Rl-HN for guix-devel@gnu.org; Mon, 14 Sep 2020 09:39:46 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 0D61D160061 for ; Mon, 14 Sep 2020 15:39:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1600090780; bh=q0MGlQlvqib812B8ZkalcO981G7TtRaZQwbi6H/rcZY=; h=From:To:Cc:Subject:Date:From; b=hY0YYZCZlXweyFmh+tRvBhr1Zwkp5uTEGFdpWgjTrUQriJeu6rUblBH2PS7NWVZXN DQGpuPhAJv9FImL/Emom4GIE2I1kvXo54NNHYMjBCr/CLi+rhEuLmGx2rR2KPes1hv p3E0+LnzkWQb3EamFVivdAQbIoDK9pQuSa5/lsZlE7BFW4iUGi8maIkLC1iwzyPl2q kqQYfEKAqCL1CEsYN62HhT+H4Zgm8/ryaK7qICCTJklRK+G+BrCQ5LM8DsxCwK29pY lavtHhzAbE3yibKfLwGj14UMuZANBYy0Je64raLZGzSyT8F3AgfUEdoGZUcIZNSP6O ZOt/b8kCCBTxQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4BqnXS5dKdz9rxf; Mon, 14 Sep 2020 15:39:36 +0200 (CEST) References: <87sgbntjz4.fsf@yamatai> <87blibcmuy.fsf@ambrevar.xyz> <87y2lfb67c.fsf@ambrevar.xyz> <87pn6rtd1y.fsf@yamatai> <87y2le9d67.fsf@ambrevar.xyz> <87pn6phmdt.fsf@yamatai> <87a6xt7r7z.fsf@ambrevar.xyz> User-agent: mu4e 1.4.13; emacs 27.1 From: Guillaume Le Vaillant To: Pierre Neidhardt Subject: Re: Improve ASDF build system for Common Lisp libraries In-reply-to: <87a6xt7r7z.fsf@ambrevar.xyz> Date: Mon, 14 Sep 2020 15:39:22 +0200 Message-ID: <87a6xsjx4l.fsf@yamatai> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=185.67.36.65; envelope-from=glv@posteo.net; helo=mout01.posteo.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/14 09:39:40 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=hY0YYZCZ; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -3.31 X-TUID: USfU9AsC4odD --=-=-= Content-Type: text/plain I was thinking about what the package definitions would look like if we put pre-compiled files in package outputs instead of in their own packages. For example with a cl-xyz package having cl-abc as native input and cl-def as input: - cl-xyz package needs to propagate cl-abc and cl-def (sources). - cl-xyz:sbcl has cl-abc:sbcl as native input and cl-def:sbcl as input. - cl-xyz:ecl has cl-abc:ecl as native input and cl-def:ecl as input. So the package definition would look like: --8<---------------cut here---------------start------------->8--- (package ... (native-inputs `(("cl-abc-sbcl" ,cl-abc "sbcl") ("cl-abc-ecl" ,cl-abc "ecl"))) (inputs `(("cl-def-sbcl" ,cl-def "sbcl") ("cl-def-ecl" ,cl-def "ecl"))) (propagated-inputs `(("cl-abc" ,cl-abc) ("cl-def" ,cl-def))) ... ) --8<---------------cut here---------------end--------------->8--- It's a bit burdensome to write, but we could have a define-lisp-package macro taking a lighter package definition and transforming it a full package definition as above: --8<---------------cut here---------------start------------->8--- (define-lisp-package cl-xyz (package ... (native-inputs `(("cl-abc" ,cl-abc))) (inputs `(("cl-def" ,cl-def))) ... )) --8<---------------cut here---------------end--------------->8--- However, it would mean that installing only cl-xyz:sbcl would download the sbcl pre-compiled files and the ecl pre-compiled files for all the dependencies of cl-xyz (direct and transitive). The only way to prevent downloading all these unnecessary ecl pre-compiled files would be for the package definition to have a way to say "the sbcl outputs only depend on the sources and the sbcl outputs of the dependencies", but I don't think that's possible... --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCX19yig8cZ2x2QHBvc3Rl by5uZXQACgkQa+ggit8h/j8bEgEAomW+1REC79+a7aoKTSW1eh7YVcLjtf/UHdMX K/le6ycA/2WLwLhLas0NCbiUd6/SCo37ecYPxYZ4LACPLW1LeYMd =cjLS -----END PGP SIGNATURE----- --=-=-=--