aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-04-17 14:32:24 +0200
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-04-19 20:12:19 -0400
commitabdf812acc70d5424e51e2d6fb280bf08b087b68 (patch)
tree1ff2a0e707e44add05826eef6f7b645f8bb29dbb
parent72096b733016f50e71f02a6558425d8659f8970c (diff)
downloadguix-abdf812acc70d5424e51e2d6fb280bf08b087b68.tar
guix-abdf812acc70d5424e51e2d6fb280bf08b087b68.tar.gz
environment: Really auto-load (guix scripts pack).
Fixes a performance regression on cache hits introduced in b31ea797edb4f6e8c14e8fe790da1319607c5cb1, whereby (guix scripts pack) would be loaded eagerly during startup, leading hundreds of (gnu packages *) modules to be loaded. Fixes <https://issues.guix.gnu.org/62899>. * guix/scripts/environment.scm: Autoload (gnu build install). (%options): Add indirection when calling 'symlink-spec-option-parser' so that (guix scripts pack) is auto-loaded only when needed.
-rw-r--r--guix/scripts/environment.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index ebfc05731c..8c0da9694e 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -38,7 +38,7 @@
#:autoload (guix scripts pack) (symlink-spec-option-parser)
#:use-module (guix transformations)
#:autoload (ice-9 ftw) (scandir)
- #:use-module (gnu build install)
+ #:autoload (gnu build install) (evaluate-populate-directive)
#:autoload (gnu build linux-container) (call-with-container %namespaces
user-namespace-supported?
unprivileged-user-namespace-supported?
@@ -271,7 +271,11 @@ use '--preserve' instead~%"))
(alist-cons 'file-system-mapping
(specification->file-system-mapping arg #f)
result)))
- (option '(#\S "symlink") #t #f symlink-spec-option-parser)
+ (option '(#\S "symlink") #t #f
+ (lambda (opt name arg result)
+ ;; Delay call to avoid auto-loading (guix scripts pack)
+ ;; when unnecessary.
+ (symlink-spec-option-parser opt name arg result)))
(option '(#\r "root") #t #f
(lambda (opt name arg result)
(alist-cons 'gc-root arg result)))