On Tue, 02 Aug 2022, Csepp <[email protected]> wrote: > Olivier Dion via <[email protected]> writes: > >> Hi, >> >> Say I have a .guix.scm in my project with something like >> (specifications->manifest (list "guile" "guile-fibers" "guile-gcrypt")) >> >> If I want to develop with Geiser, it needs to find these modules in its >> load paths. My solution to this problem is the following .geiser at the >> project root: >> >> ;; -*-Scheme-*- >> (let* ((port ((@@ (ice-9 popen) open-input-pipe) >> "guix shell -m .guix.scm -- /bin/sh -c 'echo >> $GUIX_ENVIRONMENT'")) >> (profile ((@@ (ice-9 rdelim) read-line) port))) >> (add-to-load-path (string-append profile "/share/guile/site/3.0")) >> (set! %load-compiled-path >> (cons (string-append profile "/lib/guile/3.0/site-ccache") >> %load-compiled-path))) >> >> I'm wondering if someone has a better solution to this? > > I'm not an Emacs guru, so this might suck, but what I did is simply set > the related variable. Forgot what it was, but its contents were "guile" > and I changed it to '("guix" "repl") and it worked. You could probably > do something like '("guix" "shell" "-m" "guix.scm" "--" "guile") .
I finally end up doing something similar. In .dir-locals.el: `((nil . ((geiser-guile-binary . "./.geiser-guile"))))' In .geiser-guile: ` #!/bin/sh exec guix shell --pure -D -f .guix/packages.scm -- guile $@ ' Thanks! -- Olivier Dion oldiob.dev
