guix: emacs-utils: Make emacs-compile-directory forwards-compatible.
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>
This commit is contained in:
parent
3d4fc910f7
commit
7f3f70eedb
@ -136,7 +136,14 @@ If native code is not supported, compile to bytecode instead."
|
|||||||
(emacs-batch-eval
|
(emacs-batch-eval
|
||||||
`(let ((byte-compile-debug t) ; for proper exit status
|
`(let ((byte-compile-debug t) ; for proper exit status
|
||||||
(byte+native-compile (native-comp-available-p))
|
(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
|
(mapc
|
||||||
(lambda (file)
|
(lambda (file)
|
||||||
(let (byte-to-native-output-buffer-file
|
(let (byte-to-native-output-buffer-file
|
||||||
@ -152,7 +159,7 @@ If native code is not supported, compile to bytecode instead."
|
|||||||
(byte-compile-file file))
|
(byte-compile-file file))
|
||||||
;; After native compilation, write the bytecode file.
|
;; After native compilation, write the bytecode file.
|
||||||
(unless (null byte-to-native-output-buffer-file)
|
(unless (null byte-to-native-output-buffer-file)
|
||||||
(comp-write-bytecode-file nil))))
|
(funcall write-bytecode nil))))
|
||||||
files))
|
files))
|
||||||
#:dynamic? #t))
|
#:dynamic? #t))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user