diff --git a/overlays/bytecomp-revert.patch b/overlays/bytecomp-revert.patch new file mode 100644 index 000000000..b4222b4aa --- /dev/null +++ b/overlays/bytecomp-revert.patch @@ -0,0 +1,30 @@ +diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el +index 6c5051d70c4..a0063cbef7b 100644 +--- a/lisp/emacs-lisp/bytecomp.el ++++ b/lisp/emacs-lisp/bytecomp.el +@@ -3570,8 +3570,6 @@ byte-compile-form + (setq form (cons 'progn (cdr form))) + (setq handler #'byte-compile-progn)) + ((and (or sef (function-get (car form) 'important-return-value)) +- ;; Don't warn for arguments to `ignore'. +- (not (eq byte-compile--for-effect 'for-effect-no-warn)) + (byte-compile-warning-enabled-p + 'ignored-return-value (car form))) + (byte-compile-warn-x +@@ -4515,8 +4513,11 @@ byte-compile-goto-if + + (defun byte-compile-ignore (form) + (dolist (arg (cdr form)) +- ;; Compile each argument for-effect but suppress unused-value warnings. +- (byte-compile-form arg 'for-effect-no-warn)) ++ ;; Compile args for value (to avoid warnings about unused values), ++ ;; emit a discard after each, and trust the LAP peephole optimiser ++ ;; to annihilate useless ops. ++ (byte-compile-form arg) ++ (byte-compile-discard)) + (byte-compile-form nil)) + + ;; Return the list of items in CONDITION-PARAM that match PRED-LIST. +-- +2.42.0 + diff --git a/overlays/emacs.nix b/overlays/emacs.nix index 67cbcd7db..afe0cc8f4 100644 --- a/overlays/emacs.nix +++ b/overlays/emacs.nix @@ -92,12 +92,24 @@ let # TODO: remove when we drop support for < 23.05, and instead move withTreeSitter to the above line with the other arguments maybeOverridden = if (super.lib.hasAttr "treeSitter" base || super.lib.hasAttr "withTreeSitter" base) then base.override { withTreeSitter = true; } else base; in - maybeOverridden; + maybeOverridden.overrideAttrs ( + oa: { + patches = oa.patches ++ [ + # XXX: #318 + ./bytecomp-revert.patch + ]; } + ); emacs-pgtk = let base = super.lib.makeOverridable (mkGitEmacs "emacs-pgtk" ../repos/emacs/emacs-master.json) { withSQLite3 = true; withWebP = true; withPgtk = true; }; # TODO: remove when we drop support for < 23.05, and instead move withTreeSitter to the above line with the other arguments maybeOverridden = if (super.lib.hasAttr "treeSitter" base || super.lib.hasAttr "withTreeSitter" base) then base.override { withTreeSitter = true; } else base; - in maybeOverridden; + in maybeOverridden.overrideAttrs ( + oa: { + patches = oa.patches ++ [ + # XXX: #318 + ./bytecomp-revert.patch + ]; } + ); emacs-unstable = let base = super.lib.makeOverridable (mkGitEmacs "emacs-unstable" ../repos/emacs/emacs-unstable.json) { withSQLite3 = true; withWebP = true; }; # TODO: remove when we drop support for < 23.05, and instead move withTreeSitter to the above line with the other arguments