Subject: Re: bug#74250: emacs-guix: guix-pull invalid input error

From: Christopher Howard <[email-masked]>
Date: Wed, 20 Nov 2024 11:37:32 -0900

So, when inside Emacs, it appears that emacs-guix, after launching the *Guix REPL* and *Guix Internal REPL*, adds it's own scheme code to the paths in %load-path. In either of these REPLs, I can see that the emacs-guix scheme code is the first entry in the list:

```
scheme@(emacs-guix)> %load-path
$13 = ("/home/christopher/Repos/emacs-guix/scheme" "/home/christopher/.config/guix/current/share/guile/site/3.0" "/gnu/store/60hgms029zpd92w065g7lgnq5vw5rd7b-emacs-geiser-guile-0.28.3/share/emacs/site-lisp/geiser-guile-0.28.3/src" "/home/christopher/.guix-home/profile/share/guile/site/3.0" "/home/christopher/.guix-profile/share/guile/site/3.0" "/run/current-system/profile/share/guile/site/3.0" "/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/share/guile/3.0" "/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/share/guile/site/3.0" "/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/share/guile/site" "/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/share/guile")
```

However, that path is not in Emacs' own environment, as I can see with getenv:

``` ielm
ELISP> (getenv "GUILE_LOAD_PATH")
"/home/christopher/.guix-home/profile/share/guile/site/3.0:/home/christopher/.guix-profile/share/guile/site/3.0:/run/current-system/profile/share/guile/site/3.0"

ELISP> (getenv "GUILE_LOAD_COMPILED_PATH")
"/home/christopher/.guix-home/profile/lib/guile/3.0/site-ccache:/home/christopher/.guix-home/profile/share/guile/site/3.0:/home/christopher/.guix-profile/lib/guile/3.0/site-ccache:/home/christopher/.guix-profile/share/guile/site/3.0:/run/current-system/profile/lib/guile/3.0/site-ccache:/run/current-system/profile/share/guile/site/3.0"
```

So, my experiment was to see if I could run the scheme command «(guix-command "pull")» from the console instead, just using guix repl. However, since guix repl will not load any emacs-guix scheme code, I had to add "/home/christopher/Repos/emacs-guix/scheme" to the GUILE_LOAD_PATH in order to be able to load (emacs-guix) module.

Hopefully that clarifies what I am seeing.

Looking at this now, I see that there are significant differences between the paths for paths in %load-path vs paths in GUILE_LOAD_PATH. Perhaps I am running old code from the wrong profile or something. I will try to look into this more.

``` eshell
~/Repos/guix $ realpath /home/christopher/.guix-home/profile/share/guile/site/3.0
/gnu/store/0zhhnwmk8jlvx2rycgkh6dclv75gp1xr-profile/share/guile/site/3.0
~/Repos/guix $ realpath "/home/christopher/.config/guix/current/share/guile/site/3.0"
/gnu/store/yqsx2n66a0hlzpimqsw392x8f2x6nrzi-guix-804f8b209-modules/share/guile/site/3.0
```

-- 
Christopher Howard