GNU bug report logs - #57086
[PATCH 0/6] Add native compilation to Emacs

Previous Next

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


Report forwarded to guix-patches <at> gnu.org:
bug#57086; Package guix-patches. (Tue, 09 Aug 2022 18:45:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
New bug report received and forwarded. Copy sent to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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 :(

    -- (




Information forwarded to 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




Information forwarded to 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

    -- (




Information forwarded to 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





Information forwarded to 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




Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





Information forwarded to 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





bug closed, send any further explanations to 57086 <at> debbugs.gnu.org and Liliana Marie Prikler <liliana.prikler <at> gmail.com> Request was from 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.

bug archived. Request was from 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.

This bug report was last modified 1 year and 156 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.