GNU bug report logs - #52588
A linter & styler for %outputs -> #$output:...?

Previous Next

Package: guix;

Reported by: Maxime Devos <maximedevos <at> telenet.be>

Date: Fri, 17 Dec 2021 21:52:02 UTC

Severity: normal

To reply to this bug, email your comments to 52588 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#52588; Package guix. (Fri, 17 Dec 2021 21:52:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxime Devos <maximedevos <at> telenet.be>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 17 Dec 2021 21:52:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: bug-guix <at> gnu.org
Subject: A linter & styler for %outputs -> #$output:...?
Date: Fri, 17 Dec 2021 21:51:36 +0000
Hi guix,

With the core-updates-frozen merge, some (i.e., so far one) bug reports
about cross-compilation failing due to %outputs not being defined have
been appearing: https://issues.guix.gnu.org/52574.

(That particular bug was actually introduced in core-updates-frozen!)

To find out how prevalent these issues are, and to prevent them from
being introduced, a linter detecting (assoc-ref %outputs ...) in sexps
and gexps and suggesting to use #$output:... could be useful. This
should be doable with 'gexp->approximate-sexp'.

Also, maybe "guix style" could even be teached to G-expify most S-exps.

Long term, we might want to eliminate %outputs entirely, to make the
wrong thing impossible to do instead of making it easy to break cross-
compilation.

Alternatively, %outputs (& friends?) could be re-introduced,
albeit with #$output and #$(this-package-input ...) being strongly
preferred above %outputs & %build-inputs & friends.

Reintroducing %build-inputs/%build-target-inputs/... could help with
the ‘how do I refer to implicit build inputs from #:configure-flags’
issues that have been cropping up.

Greetings,
Maxime.





Information forwarded to bug-guix <at> gnu.org:
bug#52588; Package guix. (Sun, 19 Dec 2021 22:17:02 GMT) Full text and rfc822 format available.

Message #8 received at 52588 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 52588 <at> debbugs.gnu.org
Subject: Re: bug#52588: A linter & styler for %outputs -> #$output:...?
Date: Sun, 19 Dec 2021 23:16:21 +0100
Hi,

Maxime Devos <maximedevos <at> telenet.be> skribis:

> Alternatively, %outputs (& friends?) could be re-introduced,
> albeit with #$output and #$(this-package-input ...) being strongly
> preferred above %outputs & %build-inputs & friends.
>
> Reintroducing %build-inputs/%build-target-inputs/... could help with
> the ‘how do I refer to implicit build inputs from #:configure-flags’
> issues that have been cropping up.

Yes, the intent was to still provide ‘%build-inputs’ & co. for backward
compatibility.

There are a few build systems where these variables seemed to be mostly
unused already, so I didn’t bother reintroducing them; that’s the case
of ‘qt-build-system’ and ‘julia-build-system’, for instance.  But these
are the exception.

In the case of meson cross-compilation, it was an oversight.

Ludo’.




This bug report was last modified 2 years and 126 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.