GNU bug report logs - #61343
modules from channels is not available to "guix repl"

Previous Next

Package: guix;

Reported by: 宋文武 <iyzsong <at> envs.net>

Date: Tue, 7 Feb 2023 09:00:02 UTC

Severity: normal

Merged with 61574

To reply to this bug, email your comments to 61343 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#61343; Package guix. (Tue, 07 Feb 2023 09:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to 宋文武 <iyzsong <at> envs.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 07 Feb 2023 09:00:02 GMT) Full text and rfc822 format available.

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

From: 宋文武 <iyzsong <at> envs.net>
To: bug-guix <at> gnu.org
Subject: modules from channels is not available to "guix repl"
Date: Tue, 07 Feb 2023 16:59:15 +0800
I have add the rde channel to my guix, and "guix pull".
--8<---------------cut here---------------start------------->8---
(cons*
 (channel
  (name 'rde)
  (url "https://git.sr.ht/~abcdw/rde")
  (introduction
   (make-channel-introduction
    "257cebd587b66e4d865b3537a9a88cccd7107c95"
    (openpgp-fingerprint
     "2841 9AC6 5038 7440 C7E9  2FFA 2208 D209 58C1 DEB0"))))
 %default-channels)
--8<---------------cut here---------------end--------------->8---

But then, Run:
  echo '(use-modules (rde features))' | guix repl /dev/stdin
Will get error: no code for module (rde features)

Well, Run:
  echo '(use-modules (gnu packages) (rde features))' | guix repl /dev/stdin
Will pass!




Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Tue, 14 Feb 2023 19:26:02 GMT) Full text and rfc822 format available.

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

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: 宋文武 <iyzsong <at> envs.net>, 61343 <at> debbugs.gnu.org
Subject: Re: bug#61343: modules from channels is not available to "guix repl"
Date: Tue, 14 Feb 2023 20:22:45 +0100
Hi,

On mar., 07 févr. 2023 at 16:59, 宋文武 via Bug reports for GNU Guix <bug-guix <at> gnu.org> wrote:

> --8<---------------cut here---------------start------------->8---
> (cons*
>  (channel
>   (name 'rde)
>   (url "https://git.sr.ht/~abcdw/rde")
>   (introduction
>    (make-channel-introduction
>     "257cebd587b66e4d865b3537a9a88cccd7107c95"
>     (openpgp-fingerprint
>      "2841 9AC6 5038 7440 C7E9  2FFA 2208 D209 58C1 DEB0"))))
>  %default-channels)
> --8<---------------cut here---------------end--------------->8---
>
> But then, Run:
>   echo '(use-modules (rde features))' | guix repl /dev/stdin
> Will get error: no code for module (rde features)
>
> Well, Run:
>   echo '(use-modules (gnu packages) (rde features))' | guix repl /dev/stdin
> Will pass!

Yes, somehow a bug with the load path.

--8<---------------cut here---------------start------------->8---
$ guix time-machine -C /tmp/channels.scm -- repl -q
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,pp %load-path
$1 = ("/gnu/store/n7h2ggfgljikvy9xlppsihvhgqj6bprd-guix-module-union/share/guile/site/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile"
 "/home/simon/.guix-profile/share/guile/site/3.0"
 "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0"
 "/home/simon/.guix-profile/share/guile/site/3.0"
 "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0")
scheme@(guix-user)> (use-modules (gnu packages))
scheme@(guix-user)> ,pp %load-path
$2 = ("/gnu/store/n7h2ggfgljikvy9xlppsihvhgqj6bprd-guix-module-union/share/guile/site/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site/3.0"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site"
 "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile"
 "/home/simon/.guix-profile/share/guile/site/3.0"
 "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0"
 "/home/simon/.guix-profile/share/guile/site/3.0"
 "/home/simon/.config/guix/profiles/emacs/emacs/share/guile/site/3.0"
 "/gnu/store/nf3z5kqjybi687v8li2dcbc5i49zm15s-rde/share/guile/site/3.0")
scheme@(guix-user)> ,use(srfi srfi-1)
scheme@(guix-user)> (lset-difference string=? $2 $1)
$3 = ("/gnu/store/nf3z5kqjybi687v8li2dcbc5i49zm15s-rde/share/guile/site/3.0")
scheme@(guix-user)> ,q

$ ls /gnu/store/nf3z5kqjybi687v8li2dcbc5i49zm15s-rde/share/guile/site/3.0
contrib  gnu  rde
--8<---------------cut here---------------end--------------->8---

From my understanding, it is about %package-module-path not activated by
“guix repl“; I do not know if it is a bug or a feature. :-)


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Thu, 16 Feb 2023 21:15:02 GMT) Full text and rfc822 format available.

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

From: Josselin Poiret <dev <at> jpoiret.xyz>
To: Simon Tournier <zimon.toutoune <at> gmail.com>,
 宋文武 <iyzsong <at> envs.net>,
 61343 <at> debbugs.gnu.org
Cc: Josselin Poiret <dev <at> jpoiret.xyz>
Subject: [PATCH] scripts: repl: Load (gnu packages) to set up %load-path.
Date: Thu, 16 Feb 2023 22:14:49 +0100
* guix/scripts/repl.scm: Add (gnu packages) to the used modules so that channel
Scheme files are available straight away.
---
Hi both of you,

I don't think there's a reason for that, other than no one realizing before.
Here's a simple fix, freshly tested.

 guix/scripts/repl.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index 787c63d48e..407f5b2b38 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -22,6 +22,7 @@ (define-module (guix scripts repl)
   #:use-module (guix ui)
   #:use-module (guix scripts)
   #:use-module (guix repl)
+  #:use-module (gnu packages) ;; To extend %load-path with channels
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-37)

base-commit: 312f1f41d3f3f3e5d2c36ff46920c6dce1c21a17
-- 
2.39.1





Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Fri, 17 Feb 2023 03:11:01 GMT) Full text and rfc822 format available.

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

From: 宋文武 <iyzsong <at> envs.net>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: 61343 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune <at> gmail.com>
Subject: Re: [PATCH] scripts: repl: Load (gnu packages) to set up %load-path.
Date: Fri, 17 Feb 2023 11:09:53 +0800
Josselin Poiret <dev <at> jpoiret.xyz> writes:

> * guix/scripts/repl.scm: Add (gnu packages) to the used modules so that channel
> Scheme files are available straight away.
> ---
> Hi both of you,
>
> I don't think there's a reason for that, other than no one realizing before.
> Here's a simple fix, freshly tested.
>
>  guix/scripts/repl.scm | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
> index 787c63d48e..407f5b2b38 100644
> --- a/guix/scripts/repl.scm
> +++ b/guix/scripts/repl.scm
> @@ -22,6 +22,7 @@ (define-module (guix scripts repl)
>    #:use-module (guix ui)
>    #:use-module (guix scripts)
>    #:use-module (guix repl)
> +  #:use-module (gnu packages) ;; To extend %load-path with channels
It's not clear to me why load (gnu packages) will/should extend
%load-path, a suprise side effect!




Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Fri, 17 Feb 2023 14:57:02 GMT) Full text and rfc822 format available.

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

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Josselin Poiret via Bug reports for GNU Guix <bug-guix <at> gnu.org>,
 Simon Tournier <zimon.toutoune <at> gmail.com>,
 宋文武 <iyzsong <at> envs.net>,
 61343 <at> debbugs.gnu.org
Cc: Josselin Poiret <dev <at> jpoiret.xyz>
Subject: [PATCH v2] scripts: repl: Extend REPL %load-path with all channels.
Date: Fri, 17 Feb 2023 15:56:27 +0100
Fixes <https://bugs.gnu.org/61343>.
Reported by 宋文武 <iyzsong <at> envs.net>.

* guix/scripts/repl.scm (define-command): Before starting the REPL,
run (current-profile) which makes available all channels.
---

Hi,

Instead I am proposing this, it avoids to load all the module.

For testing, once applied to some Guix checkout, just run:

$ ./pre-inst-env guix pull --disable-authentication -C /tmp/channels.scm -p /tmp/new
$ echo '(use-modules (rde features))' | /tmp/new/bin/guix repl /dev/stdin

where /tmp/channels.scm reads,

(list
 (channel
  (name 'rde)
  (url "https://git.sr.ht/~abcdw/rde")
  (introduction
   (make-channel-introduction
    "257cebd587b66e4d865b3537a9a88cccd7107c95"
    (openpgp-fingerprint
     "2841 9AC6 5038 7440 C7E9  2FFA 2208 D209 58C1 DEB0"))))
 (channel
  (name 'guix)
  (url "/home/simon/src/guix/guix")))

tweaking the path to your Guix checkout.

Cheers,
simon


 guix/scripts/repl.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index 787c63d48e..fc55d79c41 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -211,6 +211,7 @@ (define script
               ((guile)
                (save-module-excursion
                 (lambda ()
+                  (current-profile) ;Run (%package-module-path) as explained above.
                   (set-user-module)
                   ;; Do not exit repl on SIGINT.
                   ((@@ (ice-9 top-repl) call-with-sigint)

base-commit: cb45e9d0dc6cbe6f69a858f71252411610b4ce82
-- 
2.38.1





Merged 61343 61574. Request was from Simon Tournier <zimon.toutoune <at> gmail.com> to control <at> debbugs.gnu.org. (Fri, 17 Feb 2023 15:11:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Fri, 17 Feb 2023 17:17:04 GMT) Full text and rfc822 format available.

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

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: 宋文武 <iyzsong <at> envs.net>, 61343 <at> debbugs.gnu.org,
 Josselin Poiret <dev <at> jpoiret.xyz>
Subject: Re: bug#61343: [PATCH] scripts: repl: Load (gnu packages) to set up
 %load-path.
Date: Fri, 17 Feb 2023 16:21:37 +0100
Hi Josselin,

To send my comment as v2, I did:

    git send-email --to="Josselin Poiret via Bug reports for GNU Guix <bug-guix <at> gnu.org>"       \
        --to="Simon Tournier <zimon.toutoune <at> gmail.com>"                                        \
        --to="宋文武 <iyzsong <at> envs.net>"                                                         \
        --to="61343 <at> debbugs.gnu.org"                                                            \
        --cc="Josselin Poiret <dev <at> jpoiret.xyz>"                                                \
        --in-reply-to="e0ffbcbb07fe41a04688223342461aa4d3310142.1676582046.git.dev <at> jpoiret.xyz" \
        v2-0001-scripts-repl-Extend-REPL-load-path-with-all-chann.patch

well, the keys ’cG’ from Emacs-Notmuch. ;-)

The issue is that it triggers a new issue number (that I have merged)
because of,

    "Josselin Poiret via Bug reports for GNU Guix <bug-guix <at> gnu.org>"

Well, I am always confused by some Debbugs internals; I thought that
’in-reply-to’ would be enough to avoid the creation of a new issue.
Hum?

Therefore, my questions are: how do you reply?

And if someone could explain me: Why is Debbugs confused with this
remaining <bug-guix <at> gnu.org>?

Cheers,
simon




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 27 Feb 2023 14:02:02 GMT) Full text and rfc822 format available.

Notification sent to 宋文武 <iyzsong <at> envs.net>:
bug acknowledged by developer. (Mon, 27 Feb 2023 14:02:02 GMT) Full text and rfc822 format available.

Message #27 received at 61343-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, 61574-done <at> debbugs.gnu.org,
 61343-done <at> debbugs.gnu.org, iyzsong <at> envs.net
Subject: Re: bug#61574: [PATCH v2] scripts: repl: Extend REPL %load-path
 with all channels.
Date: Mon, 27 Feb 2023 15:01:11 +0100
Hi Simon,

Simon Tournier <zimon.toutoune <at> gmail.com> skribis:

> Fixes <https://bugs.gnu.org/61343>.
> Reported by 宋文武 <iyzsong <at> envs.net>.
>
> * guix/scripts/repl.scm (define-command): Before starting the REPL,
> run (current-profile) which makes available all channels.

[...]

> +++ b/guix/scripts/repl.scm
> @@ -211,6 +211,7 @@ (define script
>                ((guile)
>                 (save-module-excursion
>                  (lambda ()
> +                  (current-profile) ;Run (%package-module-path) as explained above.

I tweaked the comment :-) and applied.

Thanks!

Ludo’.




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 27 Feb 2023 14:02:02 GMT) Full text and rfc822 format available.

Notification sent to Simon Tournier <zimon.toutoune <at> gmail.com>:
bug acknowledged by developer. (Mon, 27 Feb 2023 14:02:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Thu, 02 Mar 2023 13:45:01 GMT) Full text and rfc822 format available.

Message #35 received at 61343-done <at> debbugs.gnu.org (full text, mbox):

From: Andrew Tropin <andrew <at> trop.in>
To: Ludovic Courtès <ludo <at> gnu.org>, Simon Tournier
 <zimon.toutoune <at> gmail.com>
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, 61343-done <at> debbugs.gnu.org,
 61574-done <at> debbugs.gnu.org, iyzsong <at> envs.net
Subject: Re: bug#61343: bug#61574: [PATCH v2] scripts: repl: Extend REPL
 %load-path with all channels.
Date: Thu, 02 Mar 2023 17:44:20 +0400
[Message part 1 (text/plain, inline)]
On 2023-02-27 15:01, Ludovic Courtès wrote:

> Hi Simon,
>
> Simon Tournier <zimon.toutoune <at> gmail.com> skribis:
>
>> Fixes <https://bugs.gnu.org/61343>.
>> Reported by 宋文武 <iyzsong <at> envs.net>.
>>
>> * guix/scripts/repl.scm (define-command): Before starting the REPL,
>> run (current-profile) which makes available all channels.
>
> [...]
>
>> +++ b/guix/scripts/repl.scm
>> @@ -211,6 +211,7 @@ (define script
>>                ((guile)
>>                 (save-module-excursion
>>                  (lambda ()
>> +                  (current-profile) ;Run (%package-module-path) as explained above.
>
> I tweaked the comment :-) and applied.
>
> Thanks!

Hi Simon and Ludo!

Thank you for the patch, I also faced this problem and it seems this
change doesn't fix it.

echo '(use-modules (rde features))' | guix repl /dev/stdin

still fails on a7763e067d86908210758aab80d33e4f8b815b1c.

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Thu, 02 Mar 2023 19:49:02 GMT) Full text and rfc822 format available.

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

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Andrew Tropin <andrew <at> trop.in>, Ludovic Courtès
 <ludo <at> gnu.org>
Cc: 61574 <at> debbugs.gnu.org, Josselin Poiret <dev <at> jpoiret.xyz>,
 61343 <at> debbugs.gnu.org, iyzsong <at> envs.net
Subject: Re: bug#61574: bug#61343: bug#61574: [PATCH v2] scripts: repl:
 Extend REPL %load-path with all channels.
Date: Thu, 02 Mar 2023 20:48:07 +0100
Hi,

I reopen the bug.

On jeu., 02 mars 2023 at 17:44, Andrew Tropin <andrew <at> trop.in> wrote:

> Thank you for the patch, I also faced this problem and it seems this
> change doesn't fix it.

Indeed.  I have no clue what I messed up.  Since I removed the Git
worktree, I am not able to investigate the root of my mistake.  I
remember running with ’guix repl -q’ for avoiding spurious ~/.guile
configuration and I remember running “./pre-inst-env guix pull -p
/tmp/new” and checking.  Hum?!  Anyway!

My apologies.

Back to the issue:

   1. The patch does not tweak ’guix repl script.scm’ but only the
      interactive part – which also has the issue, I guess.

   2. The culprit seems (current-profile) which does not correctly load
      %package-module-path as the comment is suggesting,

            ;;                           This in turn ensures that
            ;; (%package-module-path) will contain entries for the channels
            ;; available in the current profile.


Adding (gnu packages) as Josselin suggested but commenting
(current-profile) make channels available both for scripts and
interactive.  For instance this patch works, which means something is
buggy somewhere.

--8<---------------cut here---------------start------------->8---
1 file changed, 5 insertions(+), 2 deletions(-)
guix/scripts/repl.scm | 7 +++++--

modified   guix/scripts/repl.scm
@@ -22,6 +22,7 @@ (define-module (guix scripts repl)
   #:use-module (guix ui)
   #:use-module (guix scripts)
   #:use-module (guix repl)
+  #:use-module (gnu packages)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-37)
@@ -193,7 +194,8 @@ (define script
          ;; 'set-program-arguments'.  This in turn ensures that
          ;; (%package-module-path) will contain entries for the channels
          ;; available in the current profile.
-         (current-profile)
+         (pk 'script)
+                                        ;(current-profile)
 
          (set-program-arguments script)
          (set-user-module)
@@ -211,7 +213,8 @@ (define script
               ((guile)
                (save-module-excursion
                 (lambda ()
-                  (current-profile) ;Run (%package-module-path) as explained above.
+                  (pk 'no-script)
+                                        ;(current-profile) ;Run (%package-module-path) as explained above.
                   (set-user-module)
                   ;; Do not exit repl on SIGINT.
                   ((@@ (ice-9 top-repl) call-with-sigint)
--8<---------------cut here---------------end--------------->8---


Well, I have tried to debug by adding ’pk’ around but I often get error
when “Computing Guix derivation”.  Well, the test-error is a long
process here. :-)

As discussed in #42688 [1], instead of
1b179d7876f19f04009a2f9e248ac10711f4c660, the plain call to
(%package-module-path) – instead of (current-profile) – fixes the issue.

This patch works and avoids the full load of (gnu packages), I guess
twice. :-)

--8<---------------cut here---------------start------------->8---
1 file changed, 3 insertions(+), 3 deletions(-)
guix/scripts/repl.scm | 6 +++---

modified   guix/scripts/repl.scm
@@ -27,7 +27,7 @@ (define-module (guix scripts repl)
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:use-module (rnrs bytevectors)
-  #:autoload   (guix describe) (current-profile)
+  #:autoload   (gnu packages) (%package-module-path)
   #:autoload   (system repl repl) (start-repl)
   #:autoload   (system repl server)
                   (make-tcp-server-socket make-unix-domain-server-socket)
@@ -193,7 +193,7 @@ (define script
          ;; 'set-program-arguments'.  This in turn ensures that
          ;; (%package-module-path) will contain entries for the channels
          ;; available in the current profile.
-         (current-profile)
+         (%package-module-path)
 
          (set-program-arguments script)
          (set-user-module)
@@ -211,7 +211,7 @@ (define script
               ((guile)
                (save-module-excursion
                 (lambda ()
-                  (current-profile) ;Run (%package-module-path) as explained above.
+                  (%package-module-path)
                   (set-user-module)
                   ;; Do not exit repl on SIGINT.
                   ((@@ (ice-9 top-repl) call-with-sigint)
--8<---------------cut here---------------end--------------->8---


1: <https://issues.guix.gnu.org/issue/42688>


Cheers,
simon




Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 02 Mar 2023 19:49:03 GMT) Full text and rfc822 format available.

Removed tag(s) patch. Request was from Simon Tournier <zimon.toutoune <at> gmail.com> to control <at> debbugs.gnu.org. (Thu, 02 Mar 2023 19:49:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Fri, 03 Mar 2023 11:15:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: 61574 <at> debbugs.gnu.org, Josselin Poiret <dev <at> jpoiret.xyz>,
 61343 <at> debbugs.gnu.org, iyzsong <at> envs.net, Andrew Tropin <andrew <at> trop.in>
Subject: Re: bug#61574: bug#61343: bug#61574: [PATCH v2] scripts: repl:
 Extend REPL %load-path with all channels.
Date: Fri, 03 Mar 2023 12:14:00 +0100
Simon Tournier <zimon.toutoune <at> gmail.com> skribis:

> 1 file changed, 3 insertions(+), 3 deletions(-)
> guix/scripts/repl.scm | 6 +++---
>
> modified   guix/scripts/repl.scm
> @@ -27,7 +27,7 @@ (define-module (guix scripts repl)
>    #:use-module (srfi srfi-37)
>    #:use-module (ice-9 match)
>    #:use-module (rnrs bytevectors)
> -  #:autoload   (guix describe) (current-profile)
> +  #:autoload   (gnu packages) (%package-module-path)
>    #:autoload   (system repl repl) (start-repl)
>    #:autoload   (system repl server)
>                    (make-tcp-server-socket make-unix-domain-server-socket)
> @@ -193,7 +193,7 @@ (define script
>           ;; 'set-program-arguments'.  This in turn ensures that
>           ;; (%package-module-path) will contain entries for the channels
>           ;; available in the current profile.
> -         (current-profile)
> +         (%package-module-path)

Per the comment right above, this change would break the program name
memoization, wouldn’t it?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#61343; Package guix. (Sun, 03 Mar 2024 05:56:01 GMT) Full text and rfc822 format available.

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

From: Richard Sent <richard <at> freakingpenguin.com>
To: 61343 <at> debbugs.gnu.org
Cc: dev <at> jpoiret.xyz, zimon.toutoune <at> gmail.com
Subject: Re: bug#61574: bug#61343: bug#61574: [PATCH] scripts: repl: Extend
 REPL %load-path with all channels. For real.
Date: Sun, 03 Mar 2024 00:54:25 -0500
I'm not sure as to the comments regarding program name memoization, but
could the solution be as simple as adding the call to
(%package-module-path) without deleting (current-profile)?

There's probably a more elegant solution, but I found that this patch
resolved the issue:

--8<---------------cut here---------------start------------->8---
 guix/scripts/repl.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index cb71e59b05..c8e875eb05 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -26,6 +26,7 @@ (define-module (guix scripts repl)
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:autoload   (guix describe) (current-profile)
+  #:autoload   (gnu packages) (%package-module-path)
   #:autoload   (system repl repl) (start-repl)
   #:autoload   (system repl server)
                   (make-tcp-server-socket make-unix-domain-server-socket)
@@ -192,8 +193,8 @@ (define-command (guix-repl . args)
          ;; (%package-module-path) will contain entries for the channels
          ;; available in the current profile.
          (current-profile)
-
          (set-program-arguments script)
+         (%package-module-path)
          (set-user-module)
 
          ;; When passed a relative file name, 'load-in-vicinity' searches the
@@ -209,7 +210,6 @@ (define-command (guix-repl . args)
               ((guile)
                (save-module-excursion
                 (lambda ()
-                  (current-profile) ;populate (%package-module-path); see above
                   (set-user-module)
                   ;; Do not exit repl on SIGINT.
                   ((@@ (ice-9 top-repl) call-with-sigint)

base-commit: 6f5ea7ac1acb3d1c53baf7620cca66cc87fe5a73
-- 
2.41.0
--8<---------------cut here---------------end--------------->8---

The previous fix in 96739561b87db592716431953cfbbb614e8ff87a did not
matter in my testing, so with that + earlier discussion I removed the
second (current-profile) call.

I have a barebones channel set up at
https://git.sr.ht/~freakingpenguin/channel-demo if it's of any help for
reproducing the issue. Just a couple of Guile scripts + guix
time-machine wrappers.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




This bug report was last modified 53 days ago.

Previous Next


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