~ruther/guix-local

e5681b5602e78aab0fec779b19a09c7061a47f4e — Nicolas Graves 9 months ago 2bd3129
gnu: emacs-minimal: Fix compilation errors.

Backport this patch in emacs@30 to fix compilation issues.

* gnu/packages/patches/emacs-30-fix-compilation-errors.patch: Add patch.
* gnu/packages/emacs.scm (emacs-minimal)[source]: Record patch.
* gnu/local.mk: Record patch.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1217,6 1217,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/elm-ghc9.2.patch	\
  %D%/packages/patches/elm-offline-package-registry.patch	\
  %D%/packages/patches/elm-reactor-static-files.patch		\
  %D%/packages/patches/emacs-30-fix-compilation-errors.patch	\
  %D%/packages/patches/emacs-all-the-icons-remove-duplicate-rs.patch	\
  %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch	\
  %D%/packages/patches/emacs-elpy-dup-test-name.patch		\

M gnu/packages/emacs.scm => gnu/packages/emacs.scm +2 -1
@@ 155,7 155,8 @@
                                       "emacs-native-comp-driver-options.patch"
                                       "emacs-native-comp-fix-filenames.patch"
                                       "emacs-native-comp-pin-packages.patch"
                                       "emacs-pgtk-super-key-fix.patch"))
                                       "emacs-pgtk-super-key-fix.patch"
                                       "emacs-30-fix-compilation-errors.patch"))
              (modules '((guix build utils)))
              (snippet
               '(with-directory-excursion "lisp"

A gnu/packages/patches/emacs-30-fix-compilation-errors.patch => gnu/packages/patches/emacs-30-fix-compilation-errors.patch +34 -0
@@ 0,0 1,34 @@
From 53a5dada413662389a17c551a00d215e51f5049f Mon Sep 17 00:00:00 2001
From: Pip Cet <pipcet@protonmail.com>
Date: Mon, 17 Feb 2025 15:21:16 +0000
Subject: Fix compilation errors due to insufficient compiler safety
 (bug#63288)

The default safety level is 1.  Restoring the default safety level to
1 after it was temporarily 0 should reset byte-compile-delete-errors
to nil, its default level.  Failing to do that resulted in
miscompilation of code in highly-parallel builds.

* lisp/emacs-lisp/cl-macs.el (cl--do-proclaim): Change
'byte-compile-delete-errors' to become t only at 'safety' level 0, not
levels 1 or 2.
---
 lisp/emacs-lisp/cl-macs.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index eef69e6899e..e73edbadaf2 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2701,7 +2701,7 @@ Example:
 	 (let ((speed (assq (nth 1 (assq 'speed (cdr spec)))
 			    '((0 nil) (1 t) (2 t) (3 t))))
 	       (safety (assq (nth 1 (assq 'safety (cdr spec)))
-			     '((0 t) (1 t) (2 t) (3 nil)))))
+			     '((0 t) (1 nil) (2 nil) (3 nil)))))
 	   (if speed (setq cl--optimize-speed (car speed)
 			   byte-optimize (nth 1 speed)))
 	   (if safety (setq cl--optimize-safety (car safety)
-- 
cgit v1.2.3