From: "Jakub Kądziołka" <kuba@kadziolka.net>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: guix-devel@gnu.org
Subject: Re: merge wip-haskell?
Date: Fri, 7 Aug 2020 18:55:24 +0200 [thread overview]
Message-ID: <20200807165524.qzpqrolvqfrqp6iu@gravity> (raw)
In-Reply-To: <87zh765sly.fsf@elephly.net>
[-- Attachment #1: Type: text/plain, Size: 2996 bytes --]
On Fri, Aug 07, 2020 at 06:27:21PM +0200, Ricardo Wurmus wrote:
>
> Jakub Kądziołka <kuba@kadziolka.net> writes:
>
> > On Thu, Aug 06, 2020 at 10:13:46AM +0200, Ricardo Wurmus wrote:
> >> Number 4 is by far the ugliest change of them all. In order to
> >> statically link packages we need to add all the “static” outputs of all
> >> Haskell inputs *and* the “static” outputs of *their* Haskell inputs.
> >> This is not easily accomplished, so I ended up using “package-closure”
> >> on all direct inputs, and then filtered the result to packages with
> >> names starting with “ghc-”. If there was a more appropriate tool I’d
> >> use it, but I don’t think it exists.
> >
> > Perhaps we should work on making propagated-inputs per-output? That way,
> > :static could propagate the :static output of the dependencies.
> >
> > This would also be useful in other situations. For example, a package
> > might contain both a binary and a library, and the library must
> > propagate its dependencies to make the header files work.
> >
> > I don't know what a good syntax for this would be.
>
> The binary / library problem is particularly interesting to me as we
> have a few Python bioinfo tools that also work as libraries. When used
> as a library we need propagation, but when uses as command line tools
> propagation is not needed (and can be harmful due to the effects on
> PYTHONPATH).
>
> Syntax seems less important than verifying that this actually works,
> though.
One still needs to pick a variant, even at random, to begin
implementation, which is hard when no options have been suggested :)
I suppose that we could add a list of outputs each propagated-input
applies to, putting it after the package and its output?
(this is unambiguous as we can check whether the third element of the
list is a string, or a list)
(propagated-inputs
`(("foo-static" ,foo "static" ("static"))
("bar" ,bar ("static"))))
However, this has the issue of being somewhat ad-hoc, and other
extensions to the list of inputs might become troublesome. This
motivates my second proposal:
(propagated-inputs
`(("foo-static" ,foo "static" #:propagate-to ("static"))
("bar" ,bar #:propagate-to ("static"))))
On the other hand, this variant feels somewhat over-engineered. After
all, we can always change the syntax if it becomes actually necessary.
There's also the option of adding another field to the package record:
(propagated-inputs-for-outputs ;; name up to bikeshedding :)
`(("static"
(("foo-static" ,foo "static")
("bar ,bar)))))
> Alas, as someone who has committed and encouraged syntactic
> crimes with excessive reader macros, I think my vote on syntax carries
> no weight :)
Well, the number of reader macro crimes encouraged seems to correlate
with experience, so I would still like to ask for your opinion.
Regards,
Jakub Kądziołka
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2020-08-07 16:55 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-06 8:13 merge wip-haskell? Ricardo Wurmus
2020-08-06 13:45 ` John Soo
2020-08-07 17:46 ` Timothy Sample
2020-08-07 19:53 ` Ricardo Wurmus
2020-08-09 4:29 ` Timothy Sample
2020-08-12 12:21 ` Ricardo Wurmus
2020-08-13 15:37 ` Ricardo Wurmus
2020-08-15 8:19 ` Ricardo Wurmus
2020-08-17 15:22 ` Timothy Sample
2020-08-24 15:38 ` Ludovic Courtès
2020-08-07 15:03 ` Jakub Kądziołka
2020-08-07 15:12 ` John Soo
2020-08-07 15:46 ` Jakub Kądziołka
2020-08-07 15:59 ` Ricardo Wurmus
2020-08-07 16:08 ` John Soo
2020-08-24 15:44 ` Ludovic Courtès
2020-08-24 17:54 ` Ricardo Wurmus
2020-08-28 13:53 ` Ludovic Courtès
2020-08-28 14:05 ` John Soo
2020-08-28 17:29 ` Timothy Sample
2020-08-29 15:34 ` Timothy Sample
2020-08-29 15:54 ` John Soo
2020-08-07 16:27 ` Ricardo Wurmus
2020-08-07 16:55 ` Jakub Kądziołka [this message]
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=20200807165524.qzpqrolvqfrqp6iu@gravity \
--to=kuba@kadziolka.net \
--cc=guix-devel@gnu.org \
--cc=rekado@elephly.net \
/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).