[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compilation time with Guile 3.0.3-to-be
From: |
Ludovic Courtès |
Subject: |
Re: Compilation time with Guile 3.0.3-to-be |
Date: |
Thu, 04 Jun 2020 14:45:39 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Ludovic Courtès <ludo@gnu.org> skribis:
> With the attached patch I’ve run ‘make as-derivation’ (equivalent to
> ‘guix pull’) and timed the builds of guix-packages-base.drv (279 files)
> and guix-packages.drv (217 files) on my 4-core i7 laptop:
Oh, here comes the attached patch.
Ludo’.
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c2dc7f6d5f..2c9a9825e4 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -322,6 +322,41 @@ without requiring the source code to be rewritten.")
`(("bdw-gc" ,libgc-7)
,@(srfi-1:alist-delete "bdw-gc" (package-propagated-inputs
guile-3.0)))))))
+(define-public guile-devel
+ (let ((commit "e2066d2e639ecc81078e83fcd7acd8b75faf27a3")
+ (revision "0"))
+ (package
+ (inherit guile-3.0)
+ (version (git-version (package-version guile-3.0)
+ revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/guile.git")
+ (commit commit)))
+ (file-name (git-file-name "guile" version))
+ (sha256
+ (base32
+ "1qipc4j2wbc2h22qsqp7n81ykclmnw8zxay06gqyaijk3nyf0bbn"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile-3.0)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'skip-failing-tests
+ (lambda _
+ (setenv "XFAIL_TESTS" "test-out-of-memory")
+ (delete-file "test-suite/tests/version.test")
+ #t))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("flex" ,flex)
+ ("gettext" ,gnu-gettext)
+ ("texinfo" ,texinfo)
+ ("util-linux" ,util-linux) ;for 'rev', used in popen.test
+ ,@(package-native-inputs guile-3.0))))))
+
(define-public guile-3.0/fixed
;; A package of Guile that's rarely changed. It is the one used in the
;; `base' module, and thus changing it entails a full rebuild.
@@ -776,3 +811,4 @@ manipulate repositories of the Git version control system.")
;;; guile.scm ends here
+
diff --git a/guix/self.scm b/guix/self.scm
index 60fe6e6b01..7449406dc5 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -48,7 +48,7 @@
(let ((ref (lambda (module variable)
(module-ref (resolve-interface module) variable))))
(match-lambda
- ("guile" (ref '(gnu packages guile) 'guile-3.0/libgc-7))
+ ("guile" (ref '(gnu packages guile) 'guile-devel))
("guile-json" (ref '(gnu packages guile) 'guile-json-3))
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
("guile-git" (ref '(gnu packages guile) 'guile-git))