Re: Geiser and Guix - how to avoid long compilation steps?
Hi, Pierre Neidhardt skribis: > This has been a source of headaches for me too. I like to run Geiser > to hack my Guix checkout. But if I forget to compile a (big) scheme > file, geiser will grind to a halt when switching to a module that > depends on the uncompiled file. > > Something weird: If I repeat the module switch, Geiser still takes ages > to do it, as if it didn't persist the .go files (normally in > ~/.cache/guile/ccache?) > > In my understanding, the solution here is to run `guix environment > guix -- make` all the time. > > Maybe I'll add an override for geiser-mode-switch-to-repl-and-enter that > compiles Guix automatically. > > Any other tip? I run “make” before starting the REPL to avoid the problem you mention (bah!), but from there on I can happily hack on my stuff. A little-known feature of Emacs-Guix is C-c . u (guix-devel-use-module), which allows you to load a module without compiling it with C-c C-k. It’s fast and non-intrusive, unlike C-c C-k. Ludo’.
Re: Geiser and Guix - how to avoid long compilation steps?
Hello, Le lundi 25 mai 2020 à 22:32 -0400, Jonathan Frederickson a écrit : > Ah! Thanks for the hint about the version of Guile. > > Turns out it was actually the other way around; I had built Guix > with > Guile 3 but still had Guile 2.2 in my profile. This explains why an > ad-hoc environment with Guile worked just fine, but Guile in my > normal > profile did not. (Looks like Guix gained support for Guile 3 prior > to > version 1.1.0: > https://guix.gnu.org/blog/2020/gnu-guix-1.1.0-released/) I am glad this helped even if I was 100% wrong! > > On Tue, May 26, 2020 at 2:05 am, divoplade wrote: > > Hello, > > > > I think that guix does not support guile 3 yet, so you should have > > guile 2 bytecode for the guix modules. If geiser starts guile 3, > > then > > guile 3 will recompile everything because the bytecode format > > changed > > (and it could even compile native code). > > > > Maybe it could work if you used guile 2.2 with geiser. > > > > divoplade > > > > Le lundi 25 mai 2020 à 19:02 -0400, Jonathan Frederickson a écrit : > > > I've been using Geiser to hack on Guix lately, which is > > > absolutely > > > wonderful to use when it works. The trouble is, after I upgrade > > > my > > > system's Guix, Guile attempts to compile large portions of Guix > > > when > > > I > > > attempt to switch to the module I'm working on in Geiser, e.g.: > > > > > > M-x run-guile > > > ,m (gnu services games) > > > > > > This despite the fact that I'm working on a copy of Guix that > > > I've > > > already compiled with 'make' and that has the compiled copy > > > alongside > > > the source. The compilation step takes a *long* time on my > > > hardware, > > > which is fairly painful when I want to hack on Guix. > > > > > > I do have my Guix checkout in geiser-guile-load-path in my emacs > > > config > > > as per > > > https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html: > > > > > > (with-eval-after-load 'geiser-guile > > >(add-to-list 'geiser-guile-load-path "~/sources/guix")) > > > > > > My guess is that Guile is picking up my system's version of Guix > > > before > > > my local copy. I understand that I could start a version of > > > Emacs in > > > a > > > pure ad-hoc environment (and Guile doesn't appear to start > > > recompiling > > > Guix when I do so), but the typical Emacs workflow is to have a > > > long-running Emacs session and use that for everything; that's > > > what > > > I'm > > > used to, and I'd like to continue to do so if possible. > > > > > > Does anyone else experience this? What's the best way to use > > > Geiser > > > to > > > hack on Guix when running Guix System? > > > > > > > > > > >
Re: Geiser and Guix - how to avoid long compilation steps?
Ah! Thanks for the hint about the version of Guile. Turns out it was actually the other way around; I had built Guix with Guile 3 but still had Guile 2.2 in my profile. This explains why an ad-hoc environment with Guile worked just fine, but Guile in my normal profile did not. (Looks like Guix gained support for Guile 3 prior to version 1.1.0: https://guix.gnu.org/blog/2020/gnu-guix-1.1.0-released/) On Tue, May 26, 2020 at 2:05 am, divoplade wrote: Hello, I think that guix does not support guile 3 yet, so you should have guile 2 bytecode for the guix modules. If geiser starts guile 3, then guile 3 will recompile everything because the bytecode format changed (and it could even compile native code). Maybe it could work if you used guile 2.2 with geiser. divoplade Le lundi 25 mai 2020 à 19:02 -0400, Jonathan Frederickson a écrit : I've been using Geiser to hack on Guix lately, which is absolutely wonderful to use when it works. The trouble is, after I upgrade my system's Guix, Guile attempts to compile large portions of Guix when I attempt to switch to the module I'm working on in Geiser, e.g.: M-x run-guile ,m (gnu services games) This despite the fact that I'm working on a copy of Guix that I've already compiled with 'make' and that has the compiled copy alongside the source. The compilation step takes a *long* time on my hardware, which is fairly painful when I want to hack on Guix. I do have my Guix checkout in geiser-guile-load-path in my emacs config as per https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html: (with-eval-after-load 'geiser-guile (add-to-list 'geiser-guile-load-path "~/sources/guix")) My guess is that Guile is picking up my system's version of Guix before my local copy. I understand that I could start a version of Emacs in a pure ad-hoc environment (and Guile doesn't appear to start recompiling Guix when I do so), but the typical Emacs workflow is to have a long-running Emacs session and use that for everything; that's what I'm used to, and I'd like to continue to do so if possible. Does anyone else experience this? What's the best way to use Geiser to hack on Guix when running Guix System?
Re: Geiser and Guix - how to avoid long compilation steps?
Hello, I think that guix does not support guile 3 yet, so you should have guile 2 bytecode for the guix modules. If geiser starts guile 3, then guile 3 will recompile everything because the bytecode format changed (and it could even compile native code). Maybe it could work if you used guile 2.2 with geiser. divoplade Le lundi 25 mai 2020 à 19:02 -0400, Jonathan Frederickson a écrit : > I've been using Geiser to hack on Guix lately, which is absolutely > wonderful to use when it works. The trouble is, after I upgrade my > system's Guix, Guile attempts to compile large portions of Guix when > I > attempt to switch to the module I'm working on in Geiser, e.g.: > > M-x run-guile > ,m (gnu services games) > > This despite the fact that I'm working on a copy of Guix that I've > already compiled with 'make' and that has the compiled copy > alongside > the source. The compilation step takes a *long* time on my hardware, > which is fairly painful when I want to hack on Guix. > > I do have my Guix checkout in geiser-guile-load-path in my emacs > config > as per > https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html: > > (with-eval-after-load 'geiser-guile > (add-to-list 'geiser-guile-load-path "~/sources/guix")) > > My guess is that Guile is picking up my system's version of Guix > before > my local copy. I understand that I could start a version of Emacs in > a > pure ad-hoc environment (and Guile doesn't appear to start > recompiling > Guix when I do so), but the typical Emacs workflow is to have a > long-running Emacs session and use that for everything; that's what > I'm > used to, and I'd like to continue to do so if possible. > > Does anyone else experience this? What's the best way to use Geiser > to > hack on Guix when running Guix System? > > >
Geiser and Guix - how to avoid long compilation steps?
I've been using Geiser to hack on Guix lately, which is absolutely wonderful to use when it works. The trouble is, after I upgrade my system's Guix, Guile attempts to compile large portions of Guix when I attempt to switch to the module I'm working on in Geiser, e.g.: M-x run-guile ,m (gnu services games) This despite the fact that I'm working on a copy of Guix that I've already compiled with 'make' and that has the compiled copy alongside the source. The compilation step takes a *long* time on my hardware, which is fairly painful when I want to hack on Guix. I do have my Guix checkout in geiser-guile-load-path in my emacs config as per https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html: (with-eval-after-load 'geiser-guile (add-to-list 'geiser-guile-load-path "~/sources/guix")) My guess is that Guile is picking up my system's version of Guix before my local copy. I understand that I could start a version of Emacs in a pure ad-hoc environment (and Guile doesn't appear to start recompiling Guix when I do so), but the typical Emacs workflow is to have a long-running Emacs session and use that for everything; that's what I'm used to, and I'd like to continue to do so if possible. Does anyone else experience this? What's the best way to use Geiser to hack on Guix when running Guix System?