myglc2 writes: > Using geiser-guile-load-path as currently recommended results in source > that was already compiled by the guix build being recompiled :-( > > This patch avoids that. It also moves the configuration to > '~/.bash_profile' so it applies when guile is used directly. > > From 4585499f99336dc3e626c3105f0539ef3b5ce33c Mon Sep 17 00:00:00 2001 > From: George Clemmer > Date: Sat, 15 Apr 2017 14:21:09 -0400 > Subject: [PATCH] doc: Improve guile load path recommendation. > > * doc/contributing.texi (The Perfect Setup): Advise setting GUILE_LOAD_PATH and > GUILE_LOAD_COMPILED_PATH in .bash_profile rather than emacs init. > --- > doc/contributing.texi | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/doc/contributing.texi b/doc/contributing.texi > index bbc93424b..d23f55a6b 100644 > --- a/doc/contributing.texi > +++ b/doc/contributing.texi > @@ -171,14 +171,17 @@ Emacs: code compilation and evaluation from within buffers, access to > on-line documentation (docstrings), context-sensitive completion, > @kbd{M-.} to jump to an object definition, a REPL to try out your code, > and more (@pxref{Introduction,,, geiser, Geiser User Manual}). For > -convenient Guix development, make sure to augment Guile’s load path so > -that it finds source files from your checkout: > - > -@lisp > -;; @r{Assuming the Guix checkout is in ~/src/guix.} > -(with-eval-after-load 'geiser-guile > - (add-to-list 'geiser-guile-load-path "~/src/guix")) > -@end lisp > +convenient Guix development, make sure to augment Guile’s load paths so > +that it finds source and compiled files from your checkout. Assuming the > +Guix checkout is in @code{~/src/guix}, add the following lines to your > +‘~/.bash_profile’ (*note (bash)Bash Startup Files::): > + > +@verbatim > +export GUILE_LOAD_PATH=\ > +"$HOME/src/guix${GUILE_LOAD_PATH:+:$GUILE_LOAD_PATH}" > +export GUILE_LOAD_COMPILED_PATH=\ > +"$HOME/src/guix${GUILE_LOAD_COMPILED_PATH:+:$GUILE_LOAD_COMPILED_PATH}" > +@end verbatim > > To actually edit the code, Emacs already has a neat Scheme mode. But in > addition to that, you must not miss How does this change avoid the recompilation you mentioned? It looks to me like before this change, Geiser would find Guix modules in ~/src/guix, and after this change, Geiser will still find Guix modules in ~/src/guix. So from that perspective, it seems like it won't change the way Geiser behaves. However, before this change, other Guile processes (e.g., launched via "guix package -i foo") would not see the modules in ~/src/guix, and after this change, it looks to me like they will see the modules in ~/src/guix. If the intended goal is just to let Geiser know where the Guix source lives, then this method might not be the best solution, since it will affect programs outside of Geiser, too. If I'm mistaken, please help me understand what I'm missing. -- Chris