Subject: [PATCH v2] scripts: repl: Extend REPL %load-path with all channels.
From: Simon Tournier <[email-masked]>
To: Josselin Poiret via Bug reports for GNU Guix <[email-masked]>, Simon Tournier <[email-masked]>,宋文武 <[email-masked]>, [email-masked]
Cc: Josselin Poiret <[email-masked]>
Date: Fri, 17 Feb 2023 15:56:27 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Fixes <https://bugs.gnu.org/61343>.
Reported by 宋文武 <[email-masked]>.

* 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