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 --]
next prev parent 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
* 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 external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.