Package: guix-patches;
Reported by: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Date: Tue, 9 Aug 2022 18:45:01 UTC
Severity: normal
Tags: patch
Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 57086 in the body.
You can then email your comments to 57086 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:45:01 GMT) Full text and rfc822 format available.Liliana Marie Prikler <liliana.prikler <at> gmail.com>
:guix-patches <at> gnu.org
.
(Tue, 09 Aug 2022 18:45:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: guix-patches <at> gnu.org Subject: [PATCH 0/6] Add native compilation to Emacs Date: Tue, 9 Aug 2022 20:37:43 +0200
Hi Guix, at long last the following patch set should enable native compilation for both Emacs and emacs-build-system. I tested emacs-dash and at the very least native code is generated, though I haven't yet checked whether it is also loaded. As with any shiny new Emacs feature, please verify that the Emacs portion of your manifests/home configurations build and report any related errors *before* I push this and curse your configuration. Cheers Liliana Marie Prikler (6): gnu: Parameterize libgccjit. gnu: libgccjit: Build with bootstrapped gcc. gnu: libgccjit: Build multiple versions. gnu: emacs: Build with native compilation. guix: emacs-utils: Add emacs-compile-directory. build-system: emacs: Use native compilation. gnu/packages/emacs.scm | 64 ++++++++++++++++++++++++++++++- gnu/packages/gcc.scm | 53 +++++++++++++++++-------- guix/build/emacs-build-system.scm | 5 ++- guix/build/emacs-utils.scm | 26 +++++++++++++ 4 files changed, 128 insertions(+), 20 deletions(-) -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:02 GMT) Full text and rfc822 format available.Message #8 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 1/6] gnu: Parameterize libgccjit. Date: Fri, 5 Aug 2022 05:29:58 +0200
* gnu/packages/gcc.scm (make-libgccjit): New variable. (libgccjit): Define in terms of make-libgccjit. --- gnu/packages/gcc.scm | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4c496e31b2..66f0766646 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -968,31 +968,33 @@ (define-public gdc-11 (custom-gcc gcc-11 "gdc" '("d") %generic-search-paths))) -(define-public libgccjit +(define-public (make-libgccjit gcc) (package - (inherit gcc-9) + (inherit gcc) (name "libgccjit") (outputs (delete "lib" (package-outputs gcc))) (properties (alist-delete 'hidden? (package-properties gcc))) (arguments - (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - ,@(package-arguments gcc)) + (substitute-keyword-arguments (package-arguments gcc) + ((#:modules _ '()) + '((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26))) ((#:configure-flags flags) - `(append `("--enable-host-shared" - ,(string-append "--enable-languages=jit")) + #~(cons* "--enable-host-shared" + "--enable-languages=jit" (remove (cut string-match "--enable-languages.*" <>) - ,flags))) + #$flags))) ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'remove-broken-or-conflicting-files - (lambda* (#:key outputs #:allow-other-keys) - (for-each delete-file - (find-files (string-append (assoc-ref outputs "out") "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) + #~(modify-phases #$phases + (add-after 'install 'remove-broken-or-conflicting-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each delete-file + (find-files + (string-append (assoc-ref outputs "out") "/bin") + ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) (synopsis "GCC library generating machine code on-the-fly at runtime") (description "This package is part of the GNU Compiler Collection and provides an @@ -1003,6 +1005,8 @@ (define-public libgccjit compilers. The just-in-time (jit) part of the name is now something of a misnomer."))) +(define-public libgccjit (make-libgccjit gcc-9)) + (define (make-gccgo gcc) "Return a gccgo package based on GCC." (let ((gccgo (custom-gcc gcc "gccgo" '("go") %generic-search-paths))) -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:02 GMT) Full text and rfc822 format available.Message #11 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 2/6] gnu: libgccjit: Build with bootstrapped gcc. Date: Fri, 5 Aug 2022 20:27:48 +0200
* gnu/packages/gcc.scm (make-libgccjit)[#:configure-flags]: Add “--disable-bootstrap”, “--disable-libatomic”, “--disable-libgomp”, “--disable-libquadmath”, “--disable-libssp”, and “--enable-checking=release”. [inputs]: Remove libstdc++. [native-inputs]: Add gcc. --- gnu/packages/gcc.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 66f0766646..4f7076d977 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -983,7 +983,13 @@ (define-public (make-libgccjit gcc) (srfi srfi-1) (srfi srfi-26))) ((#:configure-flags flags) - #~(cons* "--enable-host-shared" + #~(cons* "--disable-bootstrap" + "--disable-libatomic" + "--disable-libgomp" + "--disable-libquadmath" + "--disable-libssp" + "--enable-host-shared" + "--enable-checking=release" "--enable-languages=jit" (remove (cut string-match "--enable-languages.*" <>) #$flags))) @@ -995,6 +1001,10 @@ (define-public (make-libgccjit gcc) (find-files (string-append (assoc-ref outputs "out") "/bin") ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) + (inputs (modify-inputs (package-inputs gcc) + (delete "libstdc++"))) + (native-inputs (modify-inputs (package-native-inputs gcc) + (prepend gcc))) (synopsis "GCC library generating machine code on-the-fly at runtime") (description "This package is part of the GNU Compiler Collection and provides an -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:03 GMT) Full text and rfc822 format available.Message #14 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 3/6] gnu: libgccjit: Build multiple versions. Date: Fri, 5 Aug 2022 20:30:01 +0200
* gnu/packages/gcc.scm (libgccjit-9, libgccjit-10, libgccjit-11) (libgccjit-12): New variables. (libgccjit): Update to libgccjit-10. --- gnu/packages/gcc.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4f7076d977..7e4fb283d8 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1015,7 +1015,12 @@ (define-public (make-libgccjit gcc) compilers. The just-in-time (jit) part of the name is now something of a misnomer."))) -(define-public libgccjit (make-libgccjit gcc-9)) +(define-public libgccjit-9 (make-libgccjit gcc-9)) +(define-public libgccjit-10 (make-libgccjit gcc-10)) +(define-public libgccjit-11 (make-libgccjit gcc-11)) +(define-public libgccjit-12 (make-libgccjit gcc-12)) + +(define-public libgccjit libgccjit-10) (define (make-gccgo gcc) "Return a gccgo package based on GCC." -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:03 GMT) Full text and rfc822 format available.Message #17 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 5/6] guix: emacs-utils: Add emacs-compile-directory. Date: Tue, 9 Aug 2022 20:26:06 +0200
* guix/build/emacs-utils.scm (emacs-compile-directory): New variable. --- guix/build/emacs-utils.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 8ee547f2b3..17155a0b8b 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -38,6 +38,7 @@ (define-module (guix build emacs-utils) emacs-generate-autoloads emacs-byte-compile-directory + emacs-compile-directory emacs-header-parse as-display @@ -115,6 +116,31 @@ (define* (emacs-byte-compile-directory dir) (byte-recompile-directory (file-name-as-directory ,dir) 0 1)))) (emacs-batch-eval expr))) +(define* (emacs-compile-directory dir) + "Compile all files in DIR to native code. + +If native code is not supported, compile to bytecode instead." + (emacs-batch-eval + `(let ((byte-compile-debug t) ; for proper exit status + (byte+native-compile (native-comp-available-p)) + (files (directory-files-recursively ,dir "\\.el$"))) + (mapc + (lambda (file) + (let (byte-to-native-output-file) + (if byte+native-compile + (native-compile file (concat (file-name-sans-extension file) + ".eln")) + (byte-compile-file file)) + ;; Sadly, we can't use pcase because quasiquote works different in + ;; Emacs. See `batch-byte+native-compile' in comp.el for the + ;; actual shape of byte-to-native-output-file. + (unless (null byte-to-native-output-file) + (rename-file (car byte-to-native-output-file) + (cdr byte-to-native-output-file) + t)))) + files)) + #:dynamic? #t)) + (define (emacs-header-parse section file) "Parse the header SECTION in FILE and return it as a string." (emacs-batch-script -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:03 GMT) Full text and rfc822 format available.Message #20 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 6/6] build-system: emacs: Use native compilation. Date: Tue, 9 Aug 2022 20:32:37 +0200
* guix/build/emacs-build-system.scm (build): Use ‘emacs-compile-directory’ rather than ‘emacs-byte-compile-directory’. Also delete already compiled files in the working directory prior to compilation. --- guix/build/emacs-build-system.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index 6a6918bfdd..9ecfceccf1 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -110,11 +110,14 @@ (define* (expand-load-path #:key (prepend-source? #t) #:allow-other-keys) (define* (build #:key outputs inputs #:allow-other-keys) "Compile .el files." + ;; Ensure that already compiled files in the working directory don't shadow + ;; the build. Might happen, because check runs first. + (for-each delete-file (find-files "." "\\.el[cn]$")) (let* ((emacs (search-input-file inputs "/bin/emacs")) (out (assoc-ref outputs "out"))) (setenv "SHELL" "sh") (parameterize ((%emacs emacs)) - (emacs-byte-compile-directory (elpa-directory out))))) + (emacs-compile-directory (elpa-directory out))))) (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in the -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 18:52:04 GMT) Full text and rfc822 format available.Message #23 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH 4/6] gnu: emacs: Build with native compilation. Date: Sat, 6 Aug 2022 00:37:43 +0200
* gnu/packages/emacs.scm (%emacs-modules): New variable. (emacs)[arguments]<#:modules>: Use it here. <#:configure-flags> Add “--with-native-compilation”. <#:make-flags>: Add “NATIVE_FULL_AOT=1”. <#:phases>: Add ‘set-libgccjit-path’ and ‘patch-compilation-driver’. [inputs]: Add explicit ld-wrapper, binutils, glibc, and libgccjit. (emacs-minimal, emacs-xwidgets, emacs-no-x) (emacs-no-x-toolkit): Adjust accordingly. --- gnu/packages/emacs.scm | 64 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ffd1eda08e..68afdb0446 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -45,6 +45,7 @@ (define-module (gnu packages emacs) #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) @@ -55,6 +56,7 @@ (define-module (gnu packages emacs) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) + #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -81,6 +83,13 @@ (define-module (gnu packages emacs) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define (%emacs-modules build-system) + (let ((which (build-system-name build-system))) + `((guix build ,(symbol-append which '-build-system)) + (guix build utils) + (srfi srfi-1) + (ice-9 ftw)))) + (define-public emacs (package (name "emacs") @@ -129,11 +138,33 @@ (define-public emacs (arguments (list #:tests? #f ; no check target + #:modules (%emacs-modules build-system) #:configure-flags #~(list "--with-modules" "--with-cairo" + "--with-native-compilation" "--disable-build-details") + #:make-flags #~(list "NATIVE_FULL_AOT=1") #:phases #~(modify-phases %standard-phases + (add-after 'set-paths 'set-libgccjit-path + (lambda* (#:key inputs #:allow-other-keys) + (define (first-subdirectory/absolute directory) + (let ((files (scandir + directory + (lambda (file) + (and (not (member file '("." ".."))) + (file-is-directory? (string-append + directory "/" + file))))))) + (and (not (null? files)) + (string-append directory "/" (car files))))) + (let* ((libgccjit-libdir + (first-subdirectory/absolute ;; version + (first-subdirectory/absolute ;; host type + (search-input-directory inputs "lib/gcc"))))) + (setenv "LIBRARY_PATH" + (string-append (getenv "LIBRARY_PATH") + ":" libgccjit-libdir))))) (add-after 'unpack 'enable-elogind (lambda _ (substitute* "configure.ac" @@ -164,6 +195,20 @@ (define-public emacs (("\\(tramp-compat-process-running-p \"(.*)\"\\)" all process) (format #f "(or ~a (tramp-compat-process-running-p ~s))" all (string-append "." process "-real")))))) + (add-after 'unpack 'patch-compilation-driver + (lambda _ + (substitute* "lisp/emacs-lisp/comp.el" + (("\\(defcustom native-comp-driver-options nil") + (format + #f "(defcustom native-comp-driver-options '(~@{~s~^ ~})" + (string-append + "-B" #$(this-package-input "binutils") "/bin/") + (string-append + "-B" #$(this-package-input "glibc") "/lib/") + (string-append + "-B" #$(this-package-input "libgccjit") "/lib/") + (string-append + "-B" #$(this-package-input "libgccjit") "/lib/gcc/")))))) (add-before 'configure 'fix-/bin/pwd (lambda _ ;; Use `pwd', not `/bin/pwd'. @@ -256,6 +301,14 @@ (define* (emacs-byte-compile-directory dir) (list gnutls ncurses + ;; To "unshadow" ld-wrapper in native builds + (make-ld-wrapper "ld-wrapper" #:binutils binutils) + + ;; For native compilation + binutils + glibc + libgccjit + ;; Required for "core" functionality, such as dired and compression. coreutils gzip @@ -377,12 +430,16 @@ (define-public emacs-minimal (arguments (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) - #~(list "--with-gnutls=no" "--disable-build-details")) + #~(list "--with-gnutls=no" "--with-native-compilation" + "--disable-build-details")) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) (delete 'strip-double-wrap))))) - (inputs (list ncurses coreutils gzip)) + (inputs (list ncurses coreutils gzip + (make-ld-wrapper "ld-wrapper" #:binutils binutils) + binutils glibc libgccjit zlib)) (native-inputs (list autoconf pkg-config)))) (define-public emacs-xwidgets @@ -395,6 +452,7 @@ (define-public emacs-xwidgets (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(cons "--with-xwidgets" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) @@ -419,6 +477,7 @@ (define-public emacs-no-x (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(delete "--with-cairo" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) @@ -437,6 +496,7 @@ (define-public emacs-no-x-toolkit (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(cons "--with-x-toolkit=no" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 09 Aug 2022 21:21:02 GMT) Full text and rfc822 format available.Message #26 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: "(" <paren <at> disroot.org> To: "Liliana Marie Prikler" <liliana.prikler <at> gmail.com>, <57086 <at> debbugs.gnu.org> Subject: Re: [bug#57086] [PATCH 0/6] Add native compilation to Emacs Date: Tue, 09 Aug 2022 22:19:53 +0100
Hi Liliana, On Tue Aug 9, 2022 at 7:37 PM BST, Liliana Marie Prikler wrote: > As with any shiny new Emacs feature, please verify that the Emacs > portion of your manifests/home configurations build and report any > related errors *before* I push this and curse your configuration. Nice work! :D Unfortunately, Geiser fails to build with this patchset applied: ``` starting phase `set-SOURCE-DATE-EPOCH' phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds starting phase `set-paths' environment variable `PATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/bin:/gnu/store/22n2s0vfvqg9v0as9h7fpdn1i9dmryvi-texinfo-6.7/bin:/gnu/store/g2ajyl8xk9aarxrgjbng2hkj3qm2v0z2-tar-1.34/bin:/gnu/store/iixwcv3k49ks1rf34pjgfzmzyhhgwng3-gzip-1.10/bin:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/bin:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/bin:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/bin:/gnu/store/ahmmvw21p11ik80lg1f953y7fd8bqkjm-diffutils-3.8/bin:/gnu/store/z39hnrwds1dgcbpfgj8dnv2cngjb2xbl-patch-2.7.6/bin:/gnu/store/39rsx3nl4c31952jybbjb8d6idr5hx7r-findutils-4.8.0/bin:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/bin:/gnu/store/wxgv6i8g0p24q5gcyzd0yr07s8kn9680-sed-4.8/bin:/gnu/store/xjwp2hsd9256icjjybfrmznppjicywf6-grep-3.6/bin:/gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin:/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin:/gnu/store/s2pg5k98fl2g2szg9dykxyd9zl3xihv9-ld-wrapper-0/bin:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/bin:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/bin:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/bin:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/sbin' environment variable `EMACSLOADPATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/share/emacs/site-lisp' environment variable `INFOPATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/share/info:/gnu/store/22n2s0vfvqg9v0as9h7fpdn1i9dmryvi-texinfo-6.7/share/info:/gnu/store/g2ajyl8xk9aarxrgjbng2hkj3qm2v0z2-tar-1.34/share/info:/gnu/store/iixwcv3k49ks1rf34pjgfzmzyhhgwng3-gzip-1.10/share/info:/gnu/store/ahmmvw21p11ik80lg1f953y7fd8bqkjm-diffutils-3.8/share/info:/gnu/store/39rsx3nl4c31952jybbjb8d6idr5hx7r-findutils-4.8.0/share/info:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/share/info:/gnu/store/wxgv6i8g0p24q5gcyzd0yr07s8kn9680-sed-4.8/share/info:/gnu/store/xjwp2hsd9256icjjybfrmznppjicywf6-grep-3.6/share/info:/gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/share/info:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/share/info:/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/share/info:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/share/info:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/share/info:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/share/info' environment variable `BASH_LOADABLES_PATH' unset environment variable `C_INCLUDE_PATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/include:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/include:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/include:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/include:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/include:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/include:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/include:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/include:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/include:/gnu/store/6mjww4iz4xdan74d5bbjfh7il8rngfkk-linux-libre-headers-5.10.35/include' environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/include:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/include:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/include:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/include:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/include:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/include:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/include:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/include/c++:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/include:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/include:/gnu/store/6mjww4iz4xdan74d5bbjfh7il8rngfkk-linux-libre-headers-5.10.35/include' environment variable `LIBRARY_PATH' set to `/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/lib:/gnu/store/22n2s0vfvqg9v0as9h7fpdn1i9dmryvi-texinfo-6.7/lib:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/lib:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/lib:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/lib:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/lib:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/lib:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib:/gnu/store/4jdghmc65q7i7ib89zmvq66l0ghf7jc4-glibc-2.33-static/lib:/gnu/store/fnr1z6xsan0437r0yg48d0y8k32kqxby-glibc-utf8-locales-2.33/lib' environment variable `GUIX_LOCPATH' set to `/gnu/store/fnr1z6xsan0437r0yg48d0y8k32kqxby-glibc-utf8-locales-2.33/lib/locale' phase `set-paths' succeeded after 0.0 seconds starting phase `install-locale' using 'en_US.utf8' locale for category "LC_ALL" phase `install-locale' succeeded after 0.0 seconds starting phase `unpack' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/readme.org' -> `./readme.org' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/.gitignore' -> `./.gitignore' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/.dir-locals.el' -> `./.dir-locals.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/license' -> `./license' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/news.org' -> `./news.org' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/site.conf' -> `./doc/site.conf' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/web.texi' -> `./doc/web.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/parens.texi' -> `./doc/parens.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/macros.texi' -> `./doc/macros.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/geiser.texi' -> `./doc/geiser.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/cheat.texi' -> `./doc/cheat.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/geiser.css' -> `./doc/geiser.css' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/dir' -> `./doc/dir' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/top.texi' -> `./doc/top.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/index.texi' -> `./doc/index.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/repl.texi' -> `./doc/repl.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/install.texi' -> `./doc/install.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/intro.texi' -> `./doc/intro.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/makefile' -> `./doc/makefile' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/thanks.texi' -> `./doc/thanks.texi' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/repl-mod.png' -> `./doc/img/repl-mod.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/repl-images.png' -> `./doc/img/repl-images.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/repl-menu.png' -> `./doc/img/repl-menu.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/geiser-mode.png' -> `./doc/img/geiser-mode.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/docstring.png' -> `./doc/img/docstring.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/repls.png' -> `./doc/img/repls.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/autodoc-multi.png' -> `./doc/img/autodoc-multi.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/autodoc-var.png' -> `./doc/img/autodoc-var.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/docstring-racket.png' -> `./doc/img/docstring-racket.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/autodoc-scm.png' -> `./doc/img/autodoc-scm.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/eval-error.png' -> `./doc/img/eval-error.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/repl-autodoc.png' -> `./doc/img/repl-autodoc.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/guile-eval-error.png' -> `./doc/img/guile-eval-error.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/autodoc-req.png' -> `./doc/img/autodoc-req.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/doc/img/mod-completion.png' -> `./doc/img/mod-completion.png' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-base.el' -> `./elisp/geiser-base.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-popup.el' -> `./elisp/geiser-popup.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-company.el' -> `./elisp/geiser-company.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-autodoc.el' -> `./elisp/geiser-autodoc.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-repl.el' -> `./elisp/geiser-repl.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-custom.el' -> `./elisp/geiser-custom.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-reload.el' -> `./elisp/geiser-reload.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-menu.el' -> `./elisp/geiser-menu.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-impl.el' -> `./elisp/geiser-impl.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-edit.el' -> `./elisp/geiser-edit.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-syntax.el' -> `./elisp/geiser-syntax.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-table.el' -> `./elisp/geiser-table.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser.el' -> `./elisp/geiser.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-connection.el' -> `./elisp/geiser-connection.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-log.el' -> `./elisp/geiser-log.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-mode.el' -> `./elisp/geiser-mode.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-eval.el' -> `./elisp/geiser-eval.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-debug.el' -> `./elisp/geiser-debug.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-xref.el' -> `./elisp/geiser-xref.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-doc.el' -> `./elisp/geiser-doc.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-compile.el' -> `./elisp/geiser-compile.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-image.el' -> `./elisp/geiser-image.el' `/gnu/store/37f6mcyinhdfs063kqd9shnv0xj1fwf8-emacs-geiser-0.23.2-checkout/elisp/geiser-completion.el' -> `./elisp/geiser-completion.el' phase `unpack' succeeded after 0.0 seconds starting phase `move-source-files' phase `move-source-files' succeeded after 0.0 seconds starting phase `expand-load-path' source directory "/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source" prepended to the `EMACSLOADPATH' environment variable phase `expand-load-path' succeeded after 0.0 seconds starting phase `patch-usr-bin-file' phase `patch-usr-bin-file' succeeded after 0.0 seconds starting phase `patch-source-shebangs' phase `patch-source-shebangs' succeeded after 0.0 seconds starting phase `patch-generated-file-shebangs' phase `patch-generated-file-shebangs' succeeded after 0.0 seconds starting phase `check' test suite not run phase `check' succeeded after 0.0 seconds starting phase `make-info' phase `make-info' succeeded after 0.6 seconds starting phase `install' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/doc/geiser.info' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/doc/geiser.info' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-autodoc.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-autodoc.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-base.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-base.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-company.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-company.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-compile.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-compile.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-completion.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-completion.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-connection.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-connection.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-custom.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-custom.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-debug.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-debug.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-doc.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-doc.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-edit.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-edit.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-eval.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-eval.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-image.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-image.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-impl.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-impl.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-log.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-log.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-menu.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-menu.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-mode.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-mode.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-popup.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-popup.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-reload.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-reload.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-repl.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-repl.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-syntax.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-syntax.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-table.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-table.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser-xref.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser-xref.el' `/tmp/guix-build-emacs-geiser-0.23.2.drv-0/source/geiser.el' -> `/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2/geiser.el' phase `install' succeeded after 0.0 seconds starting phase `make-autoloads' INFO Scraping files for geiser-autoloads.el... INFO Scraping files for geiser-autoloads.el...done phase `make-autoloads' succeeded after 0.2 seconds starting phase `enable-autoloads-compilation' phase `enable-autoloads-compilation' succeeded after 0.0 seconds starting phase `patch-el-files' phase `patch-el-files' succeeded after 0.0 seconds starting phase `ensure-package-description' geiser-pkg.el file generated. phase `ensure-package-description' succeeded after 0.3 seconds starting phase `build' In geiser-autodoc--show-signatures: geiser-autodoc.el:69:12: Warning: ‘eldoc-message’ is an obsolete function (as of eldoc-1.1.0); use ‘eldoc-documentation-functions’ instead. Debugger entered--Lisp error: (error "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "Cannot find suitable directory for output in ‘nati...") signal(error ("/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "Cannot find suitable directory for output in ‘nati...")) comp--native-compile("/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." nil "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-...") native-compile("/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-...") (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) ".eln")) (byte-compile-file file)) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) ".eln")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t))) (lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) ".eln")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t))))("/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-...") mapc((lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) ".eln")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t)))) ("/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-...")) (let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "\\.el$"))) (mapc (lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) ".eln")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t)))) files)) eval((let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively "/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-..." "\\.el$"))) (mapc (lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat ... ".eln")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t)))) files)) nil) command-line-1(("--eval=(eval '(let ((byte-compile-debug t) (byte+n...")) command-line() normal-top-level() error: in phase 'build': uncaught exception: %exception #<&invoke-error program: "/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/bin/emacs" arguments: ("--quick" "--batch" "--eval=(eval '(let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively \"/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2\" \"\\\\.el$\"))) (mapc (lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) \".eln\")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t)))) files)) nil)") exit-status: 255 term-signal: #f stop-signal: #f> phase `build' failed after 3.6 seconds command "/gnu/store/4pwp9rw1y1dyf1w7z0w7qq38z7f4bcic-emacs-minimal-28.1/bin/emacs" "--quick" "--batch" "--eval=(eval '(let ((byte-compile-debug t) (byte+native-compile (native-comp-available-p)) (files (directory-files-recursively \"/gnu/store/i0gdgbcdgki015p4b9vdq6rc9mrflyqq-emacs-geiser-0.23.2/share/emacs/site-lisp/geiser-0.23.2\" \"\\\\.el$\"))) (mapc (lambda (file) (let (byte-to-native-output-file) (if byte+native-compile (native-compile file (concat (file-name-sans-extension file) \".eln\")) (byte-compile-file file)) (unless (null byte-to-native-output-file) (rename-file (car byte-to-native-output-file) (cdr byte-to-native-output-file) t)))) files)) nil)" failed with status 255 ``` Unfortunately, the error message is truncated, so I have no idea what's going on :( -- (
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Wed, 10 Aug 2022 04:20:02 GMT) Full text and rfc822 format available.Message #29 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: "(" <paren <at> disroot.org>, 57086 <at> debbugs.gnu.org Subject: Re: [bug#57086] [PATCH 0/6] Add native compilation to Emacs Date: Wed, 10 Aug 2022 06:19:12 +0200
Am Dienstag, dem 09.08.2022 um 22:19 +0100 schrieb (: > Hi Liliana, > > On Tue Aug 9, 2022 at 7:37 PM BST, Liliana Marie Prikler wrote: > > As with any shiny new Emacs feature, please verify that the Emacs > > portion of your manifests/home configurations build and report any > > related errors *before* I push this and curse your configuration. > > Nice work! :D Unfortunately, Geiser fails to build with this patchset > applied: > > [...] > Unfortunately, the error message is truncated, so I have no idea > what's going on :( It seems to want to write to the emacs package rather than its own store path. Does this thing compile recursively? Cheers
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Wed, 10 Aug 2022 06:12:01 GMT) Full text and rfc822 format available.Message #32 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: "(" <paren <at> disroot.org> To: "Liliana Marie Prikler" <liliana.prikler <at> gmail.com>, <57086 <at> debbugs.gnu.org> Subject: Re: [bug#57086] [PATCH 0/6] Add native compilation to Emacs Date: Wed, 10 Aug 2022 07:11:23 +0100
On Wed Aug 10, 2022 at 5:19 AM BST, Liliana Marie Prikler wrote: > It seems to want to write to the emacs package rather than its own > store path. Does this thing compile recursively? I have no idea, sorry. But it would be very fitting for Lisp if it did :P -- (
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Wed, 10 Aug 2022 15:51:01 GMT) Full text and rfc822 format available.Message #35 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org, 57086 <at> debbugs.gnu.org Cc: "\(" <paren <at> disroot.org> Subject: [PATCH v2 5/6] guix: emacs-utils: Add emacs-compile-directory. Date: Tue, 9 Aug 2022 20:26:06 +0200
* guix/build/emacs-utils.scm (emacs-compile-directory): New variable. --- guix/build/emacs-utils.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 8ee547f2b3..2eb8f30120 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -38,6 +38,7 @@ (define-module (guix build emacs-utils) emacs-generate-autoloads emacs-byte-compile-directory + emacs-compile-directory emacs-header-parse as-display @@ -115,6 +116,33 @@ (define* (emacs-byte-compile-directory dir) (byte-recompile-directory (file-name-as-directory ,dir) 0 1)))) (emacs-batch-eval expr))) +(define* (emacs-compile-directory dir) + "Compile all files in DIR to native code. + +If native code is not supported, compile to bytecode instead." + (emacs-batch-eval + `(let ((byte-compile-debug t) ; for proper exit status + (byte+native-compile (native-comp-available-p)) + (files (directory-files-recursively ,dir "\\.el$"))) + (mapc + (lambda (file) + (let (byte-to-native-output-file + ;; For trampoline compilations + (native-compile-target-directory (file-name-directory file))) + (if byte+native-compile + (native-compile file (concat (file-name-sans-extension file) + ".eln")) + (byte-compile-file file)) + ;; Sadly, we can't use pcase because quasiquote works different in + ;; Emacs. See `batch-byte+native-compile' in comp.el for the + ;; actual shape of byte-to-native-output-file. + (unless (null byte-to-native-output-file) + (rename-file (car byte-to-native-output-file) + (cdr byte-to-native-output-file) + t)))) + files)) + #:dynamic? #t)) + (define (emacs-header-parse section file) "Parse the header SECTION in FILE and return it as a string." (emacs-batch-script -- 2.37.0
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Tue, 23 Aug 2022 20:08:01 GMT) Full text and rfc822 format available.Message #38 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: "(" <paren <at> disroot.org>, 57086 <at> debbugs.gnu.org Subject: Re: [bug#57086] [PATCH 0/6] Add native compilation to Emacs Date: Tue, 23 Aug 2022 22:07:03 +0200
Am Dienstag, dem 09.08.2022 um 22:19 +0100 schrieb (: > Hi Liliana, > > On Tue Aug 9, 2022 at 7:37 PM BST, Liliana Marie Prikler wrote: > > As with any shiny new Emacs feature, please verify that the Emacs > > portion of your manifests/home configurations build and report any > > related errors *before* I push this and curse your configuration. > > Nice work! :D Unfortunately, Geiser fails to build with this patchset > applied: So Geiser should compile with v2, but emacs-guix still fails to build. emacs-org also fails. Since these packages do seem somewhat popular, I think we should try to fix it or even better fix the way emacs finds its output directory. Cheers
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:02 GMT) Full text and rfc822 format available.Message #41 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 0/7] Add native compilation to Emacs Date: Thu, 25 Aug 2022 09:08:04 +0200
Hi Guix, After fixing some minor issues like emacs-guix, emacs-org and emacs-yasnippet not building, this series is somewhat closer to completion. However, I've noticed that using emacs-minimal for native compilation and regular emacs for running things is somewhat suboptimal, as the two have different hashes. There are some remedies, such as using regular emacs as #:emacs when natively compiling and emacs-minimal for cross-compiling – and also removing native-compilation from the "minimal" packages – but before I put those plans into actions I'd like to hear some bug reports for this series. My own emacs manifest builds now, so I consider this otherwise stable. Cheers Liliana Marie Prikler (7): gnu: Parameterize libgccjit. gnu: libgccjit: Build with bootstrapped gcc. gnu: libgccjit: Build multiple versions. gnu: emacs: Build with native compilation. guix: emacs-utils: Add emacs-compile-directory. build-system: emacs: Use native compilation. gnu: emacs-yasnippet: Fix build. gnu/packages/emacs.scm | 67 ++++++++++++++++++- gnu/packages/gcc.scm | 53 ++++++++++----- .../patches/emacs-yasnippet-fix-tests.patch | 30 +++++++-- guix/build/emacs-build-system.scm | 20 +++++- guix/build/emacs-utils.scm | 30 +++++++++ 5 files changed, 174 insertions(+), 26 deletions(-) -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:02 GMT) Full text and rfc822 format available.Message #44 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 1/7] gnu: Parameterize libgccjit. Date: Fri, 5 Aug 2022 05:29:58 +0200
* gnu/packages/gcc.scm (make-libgccjit): New variable. (libgccjit): Define in terms of make-libgccjit. --- gnu/packages/gcc.scm | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4c496e31b2..66f0766646 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -968,31 +968,33 @@ (define-public gdc-11 (custom-gcc gcc-11 "gdc" '("d") %generic-search-paths))) -(define-public libgccjit +(define-public (make-libgccjit gcc) (package - (inherit gcc-9) + (inherit gcc) (name "libgccjit") (outputs (delete "lib" (package-outputs gcc))) (properties (alist-delete 'hidden? (package-properties gcc))) (arguments - (substitute-keyword-arguments `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 regex) - (srfi srfi-1) - (srfi srfi-26)) - ,@(package-arguments gcc)) + (substitute-keyword-arguments (package-arguments gcc) + ((#:modules _ '()) + '((guix build gnu-build-system) + (guix build utils) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-26))) ((#:configure-flags flags) - `(append `("--enable-host-shared" - ,(string-append "--enable-languages=jit")) + #~(cons* "--enable-host-shared" + "--enable-languages=jit" (remove (cut string-match "--enable-languages.*" <>) - ,flags))) + #$flags))) ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'remove-broken-or-conflicting-files - (lambda* (#:key outputs #:allow-other-keys) - (for-each delete-file - (find-files (string-append (assoc-ref outputs "out") "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) + #~(modify-phases #$phases + (add-after 'install 'remove-broken-or-conflicting-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each delete-file + (find-files + (string-append (assoc-ref outputs "out") "/bin") + ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) (synopsis "GCC library generating machine code on-the-fly at runtime") (description "This package is part of the GNU Compiler Collection and provides an @@ -1003,6 +1005,8 @@ (define-public libgccjit compilers. The just-in-time (jit) part of the name is now something of a misnomer."))) +(define-public libgccjit (make-libgccjit gcc-9)) + (define (make-gccgo gcc) "Return a gccgo package based on GCC." (let ((gccgo (custom-gcc gcc "gccgo" '("go") %generic-search-paths))) -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:03 GMT) Full text and rfc822 format available.Message #47 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 3/7] gnu: libgccjit: Build multiple versions. Date: Fri, 5 Aug 2022 20:30:01 +0200
* gnu/packages/gcc.scm (libgccjit-9, libgccjit-10, libgccjit-11) (libgccjit-12): New variables. (libgccjit): Update to libgccjit-10. --- gnu/packages/gcc.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4f7076d977..7e4fb283d8 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1015,7 +1015,12 @@ (define-public (make-libgccjit gcc) compilers. The just-in-time (jit) part of the name is now something of a misnomer."))) -(define-public libgccjit (make-libgccjit gcc-9)) +(define-public libgccjit-9 (make-libgccjit gcc-9)) +(define-public libgccjit-10 (make-libgccjit gcc-10)) +(define-public libgccjit-11 (make-libgccjit gcc-11)) +(define-public libgccjit-12 (make-libgccjit gcc-12)) + +(define-public libgccjit libgccjit-10) (define (make-gccgo gcc) "Return a gccgo package based on GCC." -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:03 GMT) Full text and rfc822 format available.Message #50 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 2/7] gnu: libgccjit: Build with bootstrapped gcc. Date: Fri, 5 Aug 2022 20:27:48 +0200
* gnu/packages/gcc.scm (make-libgccjit)[#:configure-flags]: Add “--disable-bootstrap”, “--disable-libatomic”, “--disable-libgomp”, “--disable-libquadmath”, “--disable-libssp”, and “--enable-checking=release”. [inputs]: Remove libstdc++. [native-inputs]: Add gcc. --- gnu/packages/gcc.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 66f0766646..4f7076d977 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -983,7 +983,13 @@ (define-public (make-libgccjit gcc) (srfi srfi-1) (srfi srfi-26))) ((#:configure-flags flags) - #~(cons* "--enable-host-shared" + #~(cons* "--disable-bootstrap" + "--disable-libatomic" + "--disable-libgomp" + "--disable-libquadmath" + "--disable-libssp" + "--enable-host-shared" + "--enable-checking=release" "--enable-languages=jit" (remove (cut string-match "--enable-languages.*" <>) #$flags))) @@ -995,6 +1001,10 @@ (define-public (make-libgccjit gcc) (find-files (string-append (assoc-ref outputs "out") "/bin") ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")))))))) + (inputs (modify-inputs (package-inputs gcc) + (delete "libstdc++"))) + (native-inputs (modify-inputs (package-native-inputs gcc) + (prepend gcc))) (synopsis "GCC library generating machine code on-the-fly at runtime") (description "This package is part of the GNU Compiler Collection and provides an -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:04 GMT) Full text and rfc822 format available.Message #53 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 5/7] guix: emacs-utils: Add emacs-compile-directory. Date: Tue, 9 Aug 2022 20:26:06 +0200
* guix/build/emacs-utils.scm (emacs-compile-directory): New variable. --- guix/build/emacs-utils.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm index 8ee547f2b3..fdca05602e 100644 --- a/guix/build/emacs-utils.scm +++ b/guix/build/emacs-utils.scm @@ -38,6 +38,7 @@ (define-module (guix build emacs-utils) emacs-generate-autoloads emacs-byte-compile-directory + emacs-compile-directory emacs-header-parse as-display @@ -115,6 +116,35 @@ (define* (emacs-byte-compile-directory dir) (byte-recompile-directory (file-name-as-directory ,dir) 0 1)))) (emacs-batch-eval expr))) +(define* (emacs-compile-directory dir) + "Compile all files in DIR to native code. + +If native code is not supported, compile to bytecode instead." + (emacs-batch-eval + `(let ((byte-compile-debug t) ; for proper exit status + (byte+native-compile (native-comp-available-p)) + (files (directory-files-recursively ,dir "\\.el$"))) + (mapc + (lambda (file) + (let (byte-to-native-output-file + ;; First entry is the eln-cache of the homeless shelter, + ;; second entry is the install directory. + (eln-dir (and (native-comp-available-p) + (cadr native-comp-eln-load-path)))) + (if byte+native-compile + (native-compile file + (comp-el-to-eln-filename file eln-dir)) + (byte-compile-file file)) + ;; Sadly, we can't use pcase because quasiquote works different in + ;; Emacs. See `batch-byte+native-compile' in comp.el for the + ;; actual shape of byte-to-native-output-file. + (unless (null byte-to-native-output-file) + (rename-file (car byte-to-native-output-file) + (cdr byte-to-native-output-file) + t)))) + files)) + #:dynamic? #t)) + (define (emacs-header-parse section file) "Parse the header SECTION in FILE and return it as a string." (emacs-batch-script -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:04 GMT) Full text and rfc822 format available.Message #56 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 6/7] build-system: emacs: Use native compilation. Date: Tue, 9 Aug 2022 20:32:37 +0200
* guix/build/emacs-build-system.scm (add-install-to-native-load-path): New variable. (build): Replace ‘emacs-byte-compile-directory’ with ‘emacs-compile-directory’. Delete already compiled files in the working directory prior to compilation. (%standard-phases): Add ‘add-install-to-native-load-path’ after ‘expand-load-path’. --- guix/build/emacs-build-system.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index 6a6918bfdd..3808b60445 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -108,13 +108,29 @@ (define* (expand-load-path #:key (prepend-source? #t) #:allow-other-keys) (format #t "expanded load paths for ~{~a~^, ~}\n" (map basename diff)))))) +(define* (add-install-to-native-load-path #:key outputs #:allow-other-keys) + "Append the native-site-lisp of OUTPUT to EMACSNATIVELOADPATH." + (let ((native-load-path (or (false-if-exception + (string-split (getenv "EMACSNATIVELOADPATH") #\:)) + '())) + (install-directory (string-append (assoc-ref outputs "out") + "/lib/emacs/native-site-lisp"))) + (setenv "EMACSNATIVELOADPATH" + ;; Emacs pushes these directories in reverse order, so the + ;; last one will be the first. + (string-join `(,@native-load-path ,install-directory) + ":")))) + (define* (build #:key outputs inputs #:allow-other-keys) "Compile .el files." + ;; Ensure that already compiled files in the working directory don't shadow + ;; the build. Might happen, because check runs first. + (for-each delete-file (find-files "." "\\.el[cn]$")) (let* ((emacs (search-input-file inputs "/bin/emacs")) (out (assoc-ref outputs "out"))) (setenv "SHELL" "sh") (parameterize ((%emacs emacs)) - (emacs-byte-compile-directory (elpa-directory out))))) + (emacs-compile-directory (elpa-directory out))))) (define* (patch-el-files #:key outputs #:allow-other-keys) "Substitute the absolute \"/bin/\" directory with the right location in the @@ -343,6 +359,8 @@ (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) (add-after 'unpack 'expand-load-path expand-load-path) + (add-after 'expand-load-path 'add-install-to-native-load-path + add-install-to-native-load-path) (delete 'bootstrap) (delete 'configure) (delete 'build) -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:05 GMT) Full text and rfc822 format available.Message #59 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 4/7] gnu: emacs: Build with native compilation. Date: Sat, 6 Aug 2022 00:37:43 +0200
* gnu/packages/emacs.scm (%emacs-modules): New variable. (emacs)[arguments]<#:modules>: Use it here. <#:configure-flags> Add “--with-native-compilation”. <#:make-flags>: Add “NATIVE_FULL_AOT=1”. <#:phases>: Add ‘set-libgccjit-path’ and ‘patch-compilation-driver’. [inputs]: Add explicit ld-wrapper, binutils, glibc, and libgccjit. [search-paths]: Add EMACSNATIVELOADPATH. (emacs-minimal, emacs-xwidgets, emacs-no-x) (emacs-no-x-toolkit): Adjust accordingly. --- gnu/packages/emacs.scm | 67 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ffd1eda08e..6c3bee03d5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -45,6 +45,7 @@ (define-module (gnu packages emacs) #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) @@ -55,6 +56,7 @@ (define-module (gnu packages emacs) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) + #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -81,6 +83,13 @@ (define-module (gnu packages emacs) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define (%emacs-modules build-system) + (let ((which (build-system-name build-system))) + `((guix build ,(symbol-append which '-build-system)) + (guix build utils) + (srfi srfi-1) + (ice-9 ftw)))) + (define-public emacs (package (name "emacs") @@ -129,11 +138,33 @@ (define-public emacs (arguments (list #:tests? #f ; no check target + #:modules (%emacs-modules build-system) #:configure-flags #~(list "--with-modules" "--with-cairo" + "--with-native-compilation" "--disable-build-details") + #:make-flags #~(list "NATIVE_FULL_AOT=1") #:phases #~(modify-phases %standard-phases + (add-after 'set-paths 'set-libgccjit-path + (lambda* (#:key inputs #:allow-other-keys) + (define (first-subdirectory/absolute directory) + (let ((files (scandir + directory + (lambda (file) + (and (not (member file '("." ".."))) + (file-is-directory? (string-append + directory "/" + file))))))) + (and (not (null? files)) + (string-append directory "/" (car files))))) + (let* ((libgccjit-libdir + (first-subdirectory/absolute ;; version + (first-subdirectory/absolute ;; host type + (search-input-directory inputs "lib/gcc"))))) + (setenv "LIBRARY_PATH" + (string-append (getenv "LIBRARY_PATH") + ":" libgccjit-libdir))))) (add-after 'unpack 'enable-elogind (lambda _ (substitute* "configure.ac" @@ -164,6 +195,20 @@ (define-public emacs (("\\(tramp-compat-process-running-p \"(.*)\"\\)" all process) (format #f "(or ~a (tramp-compat-process-running-p ~s))" all (string-append "." process "-real")))))) + (add-after 'unpack 'patch-compilation-driver + (lambda _ + (substitute* "lisp/emacs-lisp/comp.el" + (("\\(defcustom native-comp-driver-options nil") + (format + #f "(defcustom native-comp-driver-options '(~@{~s~^ ~})" + (string-append + "-B" #$(this-package-input "binutils") "/bin/") + (string-append + "-B" #$(this-package-input "glibc") "/lib/") + (string-append + "-B" #$(this-package-input "libgccjit") "/lib/") + (string-append + "-B" #$(this-package-input "libgccjit") "/lib/gcc/")))))) (add-before 'configure 'fix-/bin/pwd (lambda _ ;; Use `pwd', not `/bin/pwd'. @@ -256,6 +301,14 @@ (define* (emacs-byte-compile-directory dir) (list gnutls ncurses + ;; To "unshadow" ld-wrapper in native builds + (make-ld-wrapper "ld-wrapper" #:binutils binutils) + + ;; For native compilation + binutils + glibc + libgccjit + ;; Required for "core" functionality, such as dired and compression. coreutils gzip @@ -307,6 +360,9 @@ (define* (emacs-byte-compile-directory dir) (list (search-path-specification (variable "EMACSLOADPATH") (files '("share/emacs/site-lisp"))) + (search-path-specification + (variable "EMACSNATIVELOADPATH") + (files '("lib/emacs/native-site-lisp"))) (search-path-specification (variable "INFOPATH") (files '("share/info"))))) @@ -377,12 +433,16 @@ (define-public emacs-minimal (arguments (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) - #~(list "--with-gnutls=no" "--disable-build-details")) + #~(list "--with-gnutls=no" "--with-native-compilation" + "--disable-build-details")) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) (delete 'strip-double-wrap))))) - (inputs (list ncurses coreutils gzip)) + (inputs (list ncurses coreutils gzip + (make-ld-wrapper "ld-wrapper" #:binutils binutils) + binutils glibc libgccjit zlib)) (native-inputs (list autoconf pkg-config)))) (define-public emacs-xwidgets @@ -395,6 +455,7 @@ (define-public emacs-xwidgets (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(cons "--with-xwidgets" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) @@ -419,6 +480,7 @@ (define-public emacs-no-x (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(delete "--with-cairo" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) @@ -437,6 +499,7 @@ (define-public emacs-no-x-toolkit (substitute-keyword-arguments (package-arguments emacs) ((#:configure-flags flags #~'()) #~(cons "--with-x-toolkit=no" #$flags)) + ((#:modules _) (%emacs-modules build-system)) ((#:phases phases) #~(modify-phases #$phases (delete 'restore-emacs-pdmp) -- 2.37.2
guix-patches <at> gnu.org
:bug#57086
; Package guix-patches
.
(Thu, 25 Aug 2022 07:25:05 GMT) Full text and rfc822 format available.Message #62 received at 57086 <at> debbugs.gnu.org (full text, mbox):
From: Liliana Marie Prikler <liliana.prikler <at> gmail.com> To: 57086 <at> debbugs.gnu.org Subject: [PATCH v3 7/7] gnu: emacs-yasnippet: Fix build. Date: Wed, 24 Aug 2022 23:59:07 +0200
* gnu/packages/patches/emacs-yasnippet-fix-tests.patch: Handle arguments in buffer-list. --- .../patches/emacs-yasnippet-fix-tests.patch | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch index 475352d8db..c70cc75d92 100644 --- a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch +++ b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch @@ -9,12 +9,13 @@ Content-Transfer-Encoding: 8bit - Emacs 28 has a new mode ‘lisp-data-mode’ for Lisp data. - A test that was temporarily broken passes again. - The default for ‘org-adapt-indentation’ has changed. +- buffer-list may be called with arguments when native-comp is enabled. --- - yasnippet-tests.el | 41 ++++++++++++++++++++++++++--------------- - 1 file changed, 26 insertions(+), 15 deletions(-) + yasnippet-tests.el | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/yasnippet-tests.el b/yasnippet-tests.el -index b8a7980f..9fadf00c 100644 +index f7ca2bb..7618ab7 100644 --- a/yasnippet-tests.el +++ b/yasnippet-tests.el @@ -1,6 +1,6 @@ @@ -55,7 +56,21 @@ index b8a7980f..9fadf00c 100644 ;; Some org-mode versions leave trailing whitespace, some don't. (delete-trailing-whitespace) (should (equal expected (buffer-string)))))) -@@ -1390,7 +1393,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ +@@ -1195,11 +1198,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ + (let ((saved-sym (make-symbol "yas--buffer-list"))) + `(let ((,saved-sym (symbol-function 'buffer-list))) + (cl-letf (((symbol-function 'buffer-list) +- (lambda () ++ (lambda (&rest args) + (cl-remove-if (lambda (buf) + (with-current-buffer buf + (eq major-mode 'lisp-interaction-mode))) +- (funcall ,saved-sym))))) ++ (funcall ,saved-sym args))))) + ,@body)))) + + +@@ -1356,7 +1359,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ ,@(if (fboundp 'prog-mode) '(prog-mode)) emacs-lisp-mode @@ -66,7 +81,7 @@ index b8a7980f..9fadf00c 100644 (observed (yas--modes-to-activate))) (should (equal major-mode (car observed))) (should (equal (sort expected #'string<) (sort observed #'string<)))))))) -@@ -1418,7 +1423,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ +@@ -1384,7 +1389,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ '(prog-mode)) emacs-lisp-mode and-also-this-one @@ -79,7 +94,7 @@ index b8a7980f..9fadf00c 100644 (observed (yas--modes-to-activate))) (should (equal expected-first (cl-subseq observed 0 (length expected-first)))) -@@ -1691,9 +1700,11 @@ TODO: be meaner" +@@ -1657,9 +1666,11 @@ TODO: be meaner" "Test expansion of snippets in org source blocks." ;; org 9+ no longer runs fontification for text-mode, so our hacks ;; don't work. Note that old ert doesn't have skipping, so we have @@ -93,3 +108,6 @@ index b8a7980f..9fadf00c 100644 :passed :failed) (let ((text-mode-hook #'yas-minor-mode)) (do-yas-org-native-tab-in-source-block "text"))) +-- +2.37.2 + -- 2.37.2
Liliana Marie Prikler <liliana.prikler <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Sun, 23 Oct 2022 11:38:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 20 Nov 2022 12:24:07 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.