Ludovic Courtès schreef op za 02-10-2021 om 12:22 [+0200]: > With this change, running "guix shell" (no arguments) is equivalent to: > > guix environment -r ~/.cache/guix/profiles/some-root -l guix.scm > > This is the cache miss. On cache hit, it's equivalent to: > > guix environment -p ~/.cache/guix/profiles/some-root > What if guix.scm is something like ;; Load custom package definitions (include "a-package.scm") (include "b-package.scm") (include "c-package.scm") (list a-package b-package c-package bash ...) and a-package.scm, b-package.scm or c-package.scm is modified? Then the cached profile should be rebuild, no? I use something like that for my operating system definition (though with -L and use-modules). It would be nice if this worked for "guix shell" as well. So I think the cache should also check if these dependencies have been modified. To keep track of the dependencies, something like the ‘compile-all,compile: Keep track of dependencies of compiled modules.’ patch from could be used, though the 'include', 'load', 'include-from-path' and maybe 'use-modules' (if something like "guix shell -Lextra-modules-directory ..." is done) macros would need to be replaced. Greetings, Maxime.