unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Guillaume Le Vaillant <glv@posteo.net>
To: Pierre Neidhardt <mail@ambrevar.xyz>
Cc: guix-devel@gnu.org
Subject: Re: Improve ASDF build system for Common Lisp libraries
Date: Mon, 14 Sep 2020 15:39:22 +0200	[thread overview]
Message-ID: <87a6xsjx4l.fsf@yamatai> (raw)
In-Reply-To: <87a6xt7r7z.fsf@ambrevar.xyz>

[-- Attachment #1: Type: text/plain, Size: 1798 bytes --]


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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

  reply	other threads:[~2020-09-14 13:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-12  9:36 Improve ASDF build system for Common Lisp libraries Guillaume Le Vaillant
2020-09-12 10:26 ` Pierre Neidhardt
2020-09-12 11:11   ` Pierre Neidhardt
2020-09-12 12:06     ` Guillaume Le Vaillant
2020-09-13 10:08       ` Guillaume Le Vaillant
2020-09-13 10:31         ` Pierre Neidhardt
2020-09-13 11:56           ` Guillaume Le Vaillant
2020-09-13 10:36       ` Pierre Neidhardt
2020-09-13 12:49         ` Guillaume Le Vaillant
2020-09-13 13:15           ` Pierre Neidhardt
2020-09-14 13:39             ` Guillaume Le Vaillant [this message]
2020-09-15  6:18               ` Pierre Neidhardt
2020-09-12 12:07     ` Pierre Neidhardt
2020-09-15 10:00       ` Guillaume Le Vaillant
2020-09-15 10:54         ` Pierre Neidhardt
2020-09-15 11:07           ` Ricardo Wurmus
2020-09-15 14:12             ` Katherine Cox-Buday
2020-09-15 16:28               ` Guillaume Le Vaillant
2020-09-17  9:45                 ` Pierre Neidhardt
2020-09-23 11:15                   ` Pierre Neidhardt
2020-09-23 12:44                     ` Guillaume Le Vaillant
2020-09-23 13:35                       ` Ricardo Wurmus
2020-09-23 13:41                       ` Pierre Neidhardt
2020-09-12 15:35 ` Katherine Cox-Buday
2020-09-12 18:59 ` Konrad Hinsen

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=87a6xsjx4l.fsf@yamatai \
    --to=glv@posteo.net \
    --cc=guix-devel@gnu.org \
    --cc=mail@ambrevar.xyz \
    /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).