Guillaume Le Vaillant skribis: > Katherine Cox-Buday skribis: > >> Sometime recently, the way Common Lisp code is compiled was changed (for >> the better, I think), and now my StumpWM contrib modules won't load. >> Here's why: >> >> StumpWM looks[1] for .asd files to determine what is a module. Guix's >> Common Lisp build system used to combine an entire system into a single >> .fasl file and then produce a .asd file for loading it. Now -- as far as >> I can tell -- it looks like `lib/common-lisp/sbcl` is more like the >> Common Lisp cache: one .fasl file per .lisp file. >> >> If I point StumpWM at `lib/common-lisp/sbcl` via `set-module-dir`, it >> finds no modules. If I point StumpWM at `share/common-lisp/sbcl`, it >> finds modules, tries to compile them, and then gives me a permissions >> error about writing to the `/gnu` store. >> >> Is anyone using StumpWM contrib modules successfully with Guix's new >> layout? How? >> >> [1] - https://github.com/stumpwm/stumpwm/blob/master/module.lisp#L70 > > Hi, > > In my StumpWM init file, I use '(asdf:load-system ...)' instead of > '(load-module ...)' to load the contrib modules that are installed in my > Guix profile, and it works. > > I'll see if I can find a combination 'set-module-dir' and > 'add-to-load-path' that makes the 'load-module' function work > correctly... With the following near the top of my StumpWM init file, the 'load-module' function works like 'asdf:load-system': --8<---------------cut here---------------start------------->8--- (let* ((guix-profile (pathname-as-directory (getenv "GUIX_PROFILE"))) (module-dir (merge-pathnames "share/common-lisp/sbcl/" guix-profile))) (set-module-dir module-dir)) (load-module "ttf-fonts") --8<---------------cut here---------------end--------------->8---