diff mbox series

[bug#69510,emacs-team,1/2] guix: emacs-utils: Make emacs-compile-directory forwards-compatible.

Message ID 7f3f70eedbbec74481a0ca9fea4c19250961685e.1709446767.git.liliana.prikler@gmail.com
State New
Headers show
Series [bug#69510,emacs-team,1/2] guix: emacs-utils: Make emacs-compile-directory forwards-compatible. | expand

Commit Message

Liliana Marie Prikler March 2, 2024, 3:56 p.m. UTC
Newer (development) builds of Emacs 30 mark a number of functions related to
native compilation as ‘internal’.  Since we rely on such functions and there
does not appear to be a high-level replacement at the moment, let's work
around this case.

* guix/build/emacs-utils.scm (emacs-compile-directory): Require comp early
and check if ‘comp-write-bytecode-file’ is available.

Fixes: Upstream renamed comp-write-bytecode-file <https://bugs.gnu.org/69201>
---
 guix/build/emacs-utils.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)


base-commit: 3d4fc910f73220f47e5f2459853333a7c83c5d1d

Comments

Andrew Tropin March 4, 2024, 2:45 p.m. UTC | #1
On 2024-03-02 16:56, Liliana Marie Prikler wrote:

> Newer (development) builds of Emacs 30 mark a number of functions related to
> native compilation as ‘internal’.  Since we rely on such functions and there
> does not appear to be a high-level replacement at the moment, let's work
> around this case.
>
> * guix/build/emacs-utils.scm (emacs-compile-directory): Require comp early
> and check if ‘comp-write-bytecode-file’ is available.
>
> Fixes: Upstream renamed comp-write-bytecode-file <https://bugs.gnu.org/69201>
> ---
>  guix/build/emacs-utils.scm | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
> index eca42bf305..aeb364133a 100644
> --- a/guix/build/emacs-utils.scm
> +++ b/guix/build/emacs-utils.scm
> @@ -136,7 +136,14 @@ (define* (emacs-compile-directory dir)
>    (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$")))
> +           (files (directory-files-recursively ,dir "\\.el$"))
> +           (write-bytecode
> +            (and (native-comp-available-p)
> +                 (progn
> +                  (require 'comp)
> +                  (if (fboundp 'comp-write-bytecode-file)
> +                      'comp-write-bytecode-file
> +                      'comp--write-bytecode-file)))))
>         (mapc
>          (lambda (file)
>            (let (byte-to-native-output-buffer-file
> @@ -152,7 +159,7 @@ (define* (emacs-compile-directory dir)
>                  (byte-compile-file file))
>              ;; After native compilation, write the bytecode file.
>              (unless (null byte-to-native-output-buffer-file)
> -              (comp-write-bytecode-file nil))))
> +              (funcall write-bytecode nil))))
>         files))
>      #:dynamic? #t))
>  
>
> base-commit: 3d4fc910f73220f47e5f2459853333a7c83c5d1d

Hi Liliana!

Looks reasonable to me.
diff mbox series

Patch

diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
index eca42bf305..aeb364133a 100644
--- a/guix/build/emacs-utils.scm
+++ b/guix/build/emacs-utils.scm
@@ -136,7 +136,14 @@  (define* (emacs-compile-directory dir)
   (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$")))
+           (files (directory-files-recursively ,dir "\\.el$"))
+           (write-bytecode
+            (and (native-comp-available-p)
+                 (progn
+                  (require 'comp)
+                  (if (fboundp 'comp-write-bytecode-file)
+                      'comp-write-bytecode-file
+                      'comp--write-bytecode-file)))))
        (mapc
         (lambda (file)
           (let (byte-to-native-output-buffer-file
@@ -152,7 +159,7 @@  (define* (emacs-compile-directory dir)
                 (byte-compile-file file))
             ;; After native compilation, write the bytecode file.
             (unless (null byte-to-native-output-buffer-file)
-              (comp-write-bytecode-file nil))))
+              (funcall write-bytecode nil))))
        files))
     #:dynamic? #t))