* Re: 01/01: services: Add SRFI-26 to Nix activation gexp. [not found] ` <20190611191006.B2385204DB@vcs0.savannah.gnu.org> @ 2019-06-12 12:06 ` Ludovic Courtès 2019-06-12 16:08 ` Tobias Geerinckx-Rice 2019-06-12 17:32 ` Mark H Weaver 1 sibling, 1 reply; 5+ messages in thread From: Ludovic Courtès @ 2019-06-12 12:06 UTC (permalink / raw) To: guix-devel, Tobias Geerinckx-Rice Hi Tobias, guix-commits@gnu.org skribis: > commit 2be6b5e2eea9ac084cc22281f64f7a089e46cdae > Author: Tobias Geerinckx-Rice <me@tobias.gr> > Date: Tue Jun 11 20:50:37 2019 +0200 > > services: Add SRFI-26 to Nix activation gexp. [...] > (define (nix-activation _) > "Return the activation gexp." > - (with-imported-modules '((guix build utils)) > + (with-imported-modules '((guix build utils) > + (srfi srfi-26)) > #~(begin > - (use-modules (guix build utils)) > + (use-modules (guix build utils) > + (srfi srfi-26)) (srfi srfi-26) must not be added to the imported modules: it would import it from the host Guile, but the host Guile version may differ between users, and thus the resulting derivation would also differ. The right thing is to just (use-modules (srfi srfi-26)), which has the effect of using that module from the Guile being used for builds. Could you adjust it accordingly? Thanks, and thanks for the bug fix! Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 01/01: services: Add SRFI-26 to Nix activation gexp. 2019-06-12 12:06 ` 01/01: services: Add SRFI-26 to Nix activation gexp Ludovic Courtès @ 2019-06-12 16:08 ` Tobias Geerinckx-Rice 2019-06-13 8:08 ` Ludovic Courtès 0 siblings, 1 reply; 5+ messages in thread From: Tobias Geerinckx-Rice @ 2019-06-12 16:08 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1275 bytes --] Ludo', Ludovic Courtès wrote: > (srfi srfi-26) must not be added to the imported modules: it > would > import it from the host Guile, but the host Guile version may > differ > between users I looked at ‘G-Expressions’ in the manual before but I didn't see this documented. Did I miss it, or is this tribal knowledge? Assuming there's at least a probably-good and definitely-bad set of modules that should(n't) be imported this way: can we at least print a warning when a non-(guix) module is listed, or whatever the rule would be? > , and thus the resulting derivation would also differ. Just to make sure I follow, it's obviously wrong it both cases: this would only be exposed if Guile's CUT suddenly changed its *behaviour* in a visible (and likely very unintentional) way, right? Or does with-imported-modules pull in (and hash) the actual object code (/closure)? > The right thing is to just (use-modules (srfi srfi-26)), which > has the > effect of using that module from the Guile being used for > builds. > > Could you adjust it accordingly? Please take a second to check whether 79d19d7d does what you meant. > Thanks, and thanks for the bug fix! Thank you for answering my many questions, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 01/01: services: Add SRFI-26 to Nix activation gexp. 2019-06-12 16:08 ` Tobias Geerinckx-Rice @ 2019-06-13 8:08 ` Ludovic Courtès 0 siblings, 0 replies; 5+ messages in thread From: Ludovic Courtès @ 2019-06-13 8:08 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel Hi Tobias, Tobias Geerinckx-Rice <me@tobias.gr> skribis: > Ludovic Courtès wrote: >> (srfi srfi-26) must not be added to the imported modules: it would >> import it from the host Guile, but the host Guile version may differ >> between users > > I looked at ‘G-Expressions’ in the manual before but I didn't see this > documented. Did I miss it, or is this tribal knowledge? I’m afraid it’s tribal knowledge. ;-) > Assuming there's at least a probably-good and definitely-bad set of > modules that should(n't) be imported this way: can we at least print a > warning when a non-(guix) module is listed, or whatever the rule would > be? Should we print a warning? I don’t know. ‘with-imported-modules’ does what it says: it imports modules from the host side into the build side. Usually, it’s “wrong” to import modules that ship with Guile, but there might be cases where you want to do it. So I’m not sure a warning is the right thing, but I’m open to suggestions! >> , and thus the resulting derivation would also differ. > > Just to make sure I follow, it's obviously wrong it both cases: this > would only be exposed if Guile's CUT suddenly changed its *behaviour* > in a visible (and likely very unintentional) way, right? Or does > with-imported-modules pull in (and hash) the actual object code > (/closure)? ‘with-imported-modules’ takes the srfi-26.scm file that you have in your %load-path, and makes it an input of the derivation. Between Guile 2.2.4 and Guile 2.2.5, the API is undoubtedly the same, but the file itself could be slightly different (for example, copyright years in the header might have changed.) Thus, if I run 2.2.5 and you run 2.2.4, we’d be getting different derivations, simply because our copy of srfi-26.scm differs. >> The right thing is to just (use-modules (srfi srfi-26)), which has >> the >> effect of using that module from the Guile being used for builds. >> >> Could you adjust it accordingly? > > Please take a second to check whether 79d19d7d does what you meant. It does, thank you! Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 01/01: services: Add SRFI-26 to Nix activation gexp. [not found] ` <20190611191006.B2385204DB@vcs0.savannah.gnu.org> 2019-06-12 12:06 ` 01/01: services: Add SRFI-26 to Nix activation gexp Ludovic Courtès @ 2019-06-12 17:32 ` Mark H Weaver 2019-06-12 17:54 ` Tobias Geerinckx-Rice 1 sibling, 1 reply; 5+ messages in thread From: Mark H Weaver @ 2019-06-12 17:32 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: guix-devel Hi Tobias, guix-commits@gnu.org writes: > nckx pushed a commit to branch master > in repository guix. > > commit 2be6b5e2eea9ac084cc22281f64f7a089e46cdae > Author: Tobias Geerinckx-Rice <me@tobias.gr> > Date: Tue Jun 11 20:50:37 2019 +0200 > > services: Add SRFI-26 to Nix activation gexp. > > Fix the following fatal error on ‘guix system reconfigure’: > > Backtrace: > 18 (primitive-load "/home/nckx/.config/guix/current/bin/guix") > In guix/ui.scm: > 1620:12 17 (run-guix-command _ . _) > In ice-9/boot-9.scm: > 829:9 16 (catch _ _ #<procedure 7a7caa2d4c80 at guix/ui.scm:587:2 (key c)> _) > 829:9 15 (catch _ _ #<procedure 7a7caa2d4c98 at guix/ui.scm:710:6 (key proc format-string format-args . …> …) > In guix/scripts/system.scm: > 1325:8 14 (_) > In guix/status.scm: > 768:4 13 (call-with-status-report _ _) > In guix/scripts/system.scm: > 1181:4 12 (process-action _ _ _) > In guix/store.scm: > 623:10 11 (call-with-store _) > 1800:24 10 (run-with-store _ _ #:guile-for-build _ #:system _ #:target _) > In guix/scripts/system.scm: > 920:13 9 (_ _) > 409:8 8 (_ _) > In unknown file: > 7 (primitive-load "/gnu/store/dha7j9gcz3vgb8cy7vfvvaswwsywrrzj-activate") > In ice-9/boot-9.scm: > 260:13 6 (for-each #<procedure primitive-load (_)> _) > In unknown file: > 5 (primitive-load "/gnu/store/ql1xjxrssxm51z2bn2v6l3mlrncij84h-activate-service") > In ice-9/eval.scm: > 619:8 4 (_ #f) > 196:35 3 (_ #f) > 196:27 2 (_ #f) > 223:20 1 (proc #<directory (guile-user) 1fa4140>) > In unknown file: > 0 (%resolve-variable (7 . cut) #<directory (guile-user) 1fa4140>) > > ERROR: In procedure %resolve-variable: > error: cut: unbound variable > > Reported-by: Alex McGrath on #guix. > > * gnu/services/nix.scm (nix-activation): Import and use (srfi srfi-26). FWIW, I don't think we should normally have backtraces like this in our commit log. Certainly in this case, the error was sufficiently obvious, and the backtrace doesn't add much useful information. What do you think? Regards, Mark ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: 01/01: services: Add SRFI-26 to Nix activation gexp. 2019-06-12 17:32 ` Mark H Weaver @ 2019-06-12 17:54 ` Tobias Geerinckx-Rice 0 siblings, 0 replies; 5+ messages in thread From: Tobias Geerinckx-Rice @ 2019-06-12 17:54 UTC (permalink / raw) To: Mark H Weaver; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1200 bytes --] Mark, Mark H Weaver wrote: > guix-commits@gnu.org writes: > >> nckx pushed a commit to branch master >> in repository guix. >> >> commit 2be6b5e2eea9ac084cc22281f64f7a089e46cdae >> Author: Tobias Geerinckx-Rice <me@tobias.gr> >> Date: Tue Jun 11 20:50:37 2019 +0200 >> >> services: Add SRFI-26 to Nix activation gexp. >> >> Fix the following fatal error on ‘guix system reconfigure’: >> [Huge backtrace snipped, who adds stuff like that.] >> * gnu/services/nix.scm (nix-activation): Import and use >> (srfi srfi-26). > > FWIW, I don't think we should normally have backtraces like this > in our > commit log. Certainly in this case, the error was sufficiently > obvious, > and the backtrace doesn't add much useful information. I included it because (this implies there was more deliberation involved than there was) the bug was reported on IRC, in an ephemeral paste. For the record, I wouldn't have done so if there'd been a regular bug report. > What do you think? Nothing, really. I have so many opinions already, I can't bring myself to have one on this matter. Whatever you say :-) Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-06-13 8:08 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20190611191005.14930.97243@vcs0.savannah.gnu.org> [not found] ` <20190611191006.B2385204DB@vcs0.savannah.gnu.org> 2019-06-12 12:06 ` 01/01: services: Add SRFI-26 to Nix activation gexp Ludovic Courtès 2019-06-12 16:08 ` Tobias Geerinckx-Rice 2019-06-13 8:08 ` Ludovic Courtès 2019-06-12 17:32 ` Mark H Weaver 2019-06-12 17:54 ` Tobias Geerinckx-Rice
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).