From: Maxime Devos <maximedevos@telenet.be>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 49597@debbugs.gnu.org
Subject: [bug#49597] [PATCH core-updates 00/15] Ajust packages to label-less input style
Date: Mon, 19 Jul 2021 18:47:54 +0200 [thread overview]
Message-ID: <f33a9e6421b987886f47bed218c64e4759e51f67.camel@telenet.be> (raw)
In-Reply-To: <87tukqmk73.fsf_-_@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 2464 bytes --]
Ludovic Courtès schreef op ma 19-07-2021 om 16:50 [+0200]:
> [...]
>
> > In the example you gave, both search-input-file and the original 'string-append'
> > and 'assoc-ref' look convenient to me, though the latter more so than the other,
> > and a third variant could be
> >
> > #$(file-append (this-package-native-input "openmpi") "/lib/libmpi.so")
> >
> > which avoids 'string-append' and 'assoc-ref'.
>
> Yes, but you’re still relying on the name, “openmpi”.
>
> If I do:
>
> (package
> (inherit thing)
> (inputs `(("mpich" ,mpich)
> ,@(delete "openmpi" (package-inputs thing)))))
>
> … then you have a problem: ‘this-package-input’ won’t find “openmpi”.
> It’s a real, common use case. That’s why we need to be careful about
> the idioms we promote.
>
> WDYT?
Then you could do:
(package
(inherit thing)
(inputs `(("openmpi" ,mpich) ; use "openmpi" label
,@(delete "openmpi" (package-inputs thing)))))
or just use "mpi" in the original and new package as input label,
but that doesn't mesh well with eventually removing input labels.
Myself, I don't mind input labels much. They look like arguments to
a procedure to me, albeit with an unusual syntax for referring to
them.
> > (I prefer explicitely writing in the package definition in which input a file
> > will be found, as a kind of documentation, though in this case it probably
> > doesn't really matter.)
>
> Yeah, I like that too. OTOH, ‘search-input-file’ has the advantage that
> it errors out if the file is not found, whereas
>
> (string-append (assoc-ref inputs "foo") "bar")
>
> always “works” and problems occur possibly much later, at run time.
I'd suggest using #+/#$(file-append (this-package-[native]-input "foo") "/bar"
instead of (string-append (assoc-ref ...) ...).
I think I have a method for explicitely choosing which input to use,
using package names instead of labels, that still works nicely with
"--with-input":
(define* (lookup-libmpi-library package)
;; open-coding could be avoided by adding a 'is-mpi-library?'
;; package property and using that instead of hard-coding a list
;; of package names
(file-append (or (lookup-package-input package "openmpi")
(lookup-package-input package "mpich")
...)
"/lib/libmpi.so"))
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
next prev parent reply other threads:[~2021-07-19 16:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-16 15:50 [bug#49597] [PATCH core-updates 00/15] Ajust packages to label-less input style Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 01/15] gnu: commencement: Use gexps and 'local-file' to refer to patches Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 02/15] gnu: tzdata: Remove input labels Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 03/15] gnu: Simplify "Xvbf" invocation in pre-check phases Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 04/15] gnu: Use 'search-input-directory' when looking for tzdata Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 05/15] gnu: Use 'search-input-directory' for the SDL header directory Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 06/15] gnu: Use 'search-input-directory' for the OpenEXR " Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 07/15] gnu: Use 'search-input-file' when searching for Automake files Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 08/15] gnu: Use 'search-input-directory' for the Eigen header directory Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 09/15] gnu: Use 'search-input-directory' for glibc locale data Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 10/15] gnu: Use 'search-input-directory' when looking for C/C++ library headers Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 11/15] gnu: Use 'search-input-file' when looking for *.so and *.a Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 12/15] gnu: Use 'search-input-file' when looking for executables Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 13/15] gnu: mozjs: Use 'which' where appropriate Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 14/15] gnu: Use 'search-input-file' when looking for .jar files Ludovic Courtès
2021-07-18 15:56 ` Maxime Devos
2021-07-19 14:52 ` [bug#49597] [PATCH core-updates 00/15] Ajust packages to label-less input style Ludovic Courtès
2021-07-16 15:54 ` [bug#49597] [PATCH core-updates 15/15] gnu: Use 'search-input-directory' and 'search-input-file' where appropriate Ludovic Courtès
2021-07-17 15:06 ` [bug#49597] [PATCH core-updates 00/15] Ajust packages to label-less input style Mathieu Othacehe
2021-07-18 15:44 ` Maxime Devos
2021-07-19 14:50 ` Ludovic Courtès
2021-07-19 16:47 ` Maxime Devos [this message]
2021-07-20 21:14 ` Ludovic Courtès
2021-07-24 14:29 ` bug#49597: " Ludovic Courtès
2021-07-25 9:54 ` [bug#49597] " Mathieu Othacehe
2021-07-25 15:13 ` Maxime Devos
2021-07-25 17:17 ` Mathieu Othacehe
2021-07-25 17:05 ` Ludovic Courtès
2021-07-25 17:18 ` Mathieu Othacehe
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=f33a9e6421b987886f47bed218c64e4759e51f67.camel@telenet.be \
--to=maximedevos@telenet.be \
--cc=49597@debbugs.gnu.org \
--cc=ludo@gnu.org \
/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.