Toggle diff (432 lines)
diff --git a/Makefile.am b/Makefile.am
index 4091a52387..2eee49c78e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -438,7 +438,6 @@ dist_noinst_DATA = \
AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/comp-integrity.el \
- gnu/packages/aux-files/emacs/comp-integrity-next.el \
gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/findclass.php \
gnu/packages/aux-files/guix.vim \
diff --git a/gnu/packages/aux-files/emacs/comp-integrity-next.el b/gnu/packages/aux-files/emacs/comp-integrity-next.el
deleted file mode 100644
index 74ee0952f4..0000000000
--- a/gnu/packages/aux-files/emacs/comp-integrity-next.el
+++ /dev/null
@@ -1,121 +0,0 @@
-(require 'ert)
-
-(eval-when-compile
- (defmacro expect-feature (&optional feature)
- `(progn
- (eval-when-compile
- (or (not ',feature)
- (require ',feature)))))
-
- (defmacro expect-native (fun &optional feature)
- `(progn
- (expect-feature ,feature)
- (should (native-comp-function-p (symbol-function ',fun)))))
-
-
- (defmacro expect-native-if-bound (fun &optional feature)
- `(and (expect-feature ,feature)
- (boundp ',fun)
- (should (native-comp-function-p (symbol-function ',fun)))))
-
- (defmacro expect-builtin (fun &optional feature)
- `(should (primitive-function-p (symbol-function ',fun)))))
-
-(expect-native abbrev-mode)
-(expect-native backquote-process)
-(expect-native mode-line-widen)
-(expect-native buffer-menu)
-(expect-native button-mode)
-(expect-native byte-run-strip-symbol-positions)
-(expect-native case-table-get-table)
-(expect-native cconv-convert)
-(expect-native use-default-char-width-table)
-(expect-native cl-generic-p)
-(expect-native cl-struct-define)
-(expect-native-if-bound x-setup-function-keys)
-(expect-native encode-composition-rule)
-(expect-native custom-declare-face)
-(expect-native minibuffer-prompt-properties--setter)
-(expect-native custom-add-choice)
-(expect-native debug-early)
-(expect-native display-table-slot disp-table)
-(expect-native dnd-open-file)
-(expect-native dos-mode25 dos-fns)
-(expect-native find-file-text dos-w32)
-(expect-native-if-bound dynamic-setting-handle-config-changed-event)
-(expect-native easy-menu-item-present-p)
-(expect-native eldoc-mode)
-(expect-native electric-indent-mode)
-(expect-native elisp-mode-syntax-propertize)
-(expect-native getenv)
-(expect-native epa-file-find-file-hook)
-(expect-native face-list)
-(expect-native find-file-noselect)
-(expect-native fill-region)
-(expect-native font-lock-change-mode)
-(expect-native font-lock-add-keywords)
-(expect-native-if-bound fontset-plain-name)
-(expect-native format-read)
-(expect-native frame-edges)
-(expect-native-if-bound fringe-mode)
-(expect-native help-quick)
-(expect-native-if-bound image-type)
-(expect-native indent-region)
-(expect-native indian-compose-regexp)
-(expect-native msdos-setup-keyboard term/internal)
-(expect-native isearch-abort)
-(expect-native iso-transl-set-language)
-(expect-native jit-lock-mode)
-(expect-native jka-compr-build-file-regexp)
-(expect-native keymap-global-set)
-(expect-native forward-sexp)
-(expect-native lisp-string-in-doc-position-p)
-(expect-native ls-lisp-set-options ls-lisp)
-(expect-native macroexp-compiling-p)
-(expect-native map-y-or-n-p)
-(expect-native menu-find-file-existing)
-(expect-native completion-boundaries)
-(expect-native egyptian-shape-grouping)
-(expect-native mouse-double-click-time)
-(expect-native convert-define-charset-argument)
-(expect-native coding-system-change-eol-conversion)
-(expect-native store-substring mule-util)
-(expect-native-if-bound mouse-wheel-change-button)
-(expect-native advice-function-mapc)
-(expect-native comment-string-strip)
-(expect-builtin obarray-make)
-(expect-native obarray-map)
-(expect-native oclosure-type)
-(expect-native forward-page)
-(expect-native sentence-end)
-(expect-native show-paren-function)
-(expect-native pgtk-dnd-init-frame pgtk-dnd)
-(expect-native prog-context-menu)
-(expect-native-if-bound regexp-opt)
-(expect-native get-register)
-(expect-native query-replace-descr)
-(expect-native rfn-eshadow-setup-minibuffer)
-(expect-native read-multiple-choice)
-(expect-native-if-bound scroll-bar-scale)
-(expect-native gui-select-text)
-(expect-native seq-first)
-(expect-native hack-read-symbol-shorthands)
-(expect-native next-error-find-buffer)
-(expect-native exit-splash-screen)
-(expect-native buffer-local-boundp)
-(expect-native syntax-propertize-multiline)
-(expect-native tab-bar-mode)
-(expect-native tabulated-list-put-tag)
-(expect-native text-mode)
-(expect-native timer-activate)
-(expect-native tool-bar-mode)
-(expect-native tooltip-mode)
-(expect-native tty-color-desc)
-(expect-native ucs-normalize-hfs-nfd-comp-p ucs-normalize)
-(expect-native uniquify-item-p)
-(expect-native vc-mode)
-(expect-native emacs-version)
-(expect-native define-widget)
-(expect-native window-right)
-(expect-native x-dnd-init-frame x-dnd)
-(expect-native-if-bound x-handle-no-bitmap-icon)
diff --git a/gnu/packages/aux-files/emacs/comp-integrity.el b/gnu/packages/aux-files/emacs/comp-integrity.el
index abe7e7c0c9..74ee0952f4 100644
--- a/gnu/packages/aux-files/emacs/comp-integrity.el
+++ b/gnu/packages/aux-files/emacs/comp-integrity.el
@@ -1,34 +1,25 @@
(require 'ert)
(eval-when-compile
- (require 'help-fns)
-
- (defmacro expect-help (fun result &optional feature)
+ (defmacro expect-feature (&optional feature)
`(progn
- (eval-when-compile (when ',feature
- (require ',feature)))
-
- (ert-deftest ,(intern (concat "expect-" (symbol-name fun)
- "-" (symbol-name result)))
- ()
- (should
- (eq ',result
- (let ((desc (substring-no-properties
- (with-output-to-string
- (help-fns-function-description-header ',fun)))))
- (cond ((string-search "native-compiled" desc) 'native)
- ((string-search "byte-compiled" desc) 'byte)
- ((string-search "built-in" desc) 'built-in)
- (t nil))))))))
+ (eval-when-compile
+ (or (not ',feature)
+ (require ',feature)))))
(defmacro expect-native (fun &optional feature)
- `(progn (expect-help ,fun native ,feature)))
+ `(progn
+ (expect-feature ,feature)
+ (should (native-comp-function-p (symbol-function ',fun)))))
+
- (defmacro expect-native-if-bound (fun)
- `(and (boundp ',fun) (expect-help ,fun native)))
+ (defmacro expect-native-if-bound (fun &optional feature)
+ `(and (expect-feature ,feature)
+ (boundp ',fun)
+ (should (native-comp-function-p (symbol-function ',fun)))))
(defmacro expect-builtin (fun &optional feature)
- `(progn (expect-help ,fun built-in ,feature))))
+ `(should (primitive-function-p (symbol-function ',fun)))))
(expect-native abbrev-mode)
(expect-native backquote-process)
@@ -92,9 +83,7 @@
(expect-native-if-bound mouse-wheel-change-button)
(expect-native advice-function-mapc)
(expect-native comment-string-strip)
-(if (>= emacs-major-version 30)
- (expect-builtin obarray-make)
- (expect-native obarray-make))
+(expect-builtin obarray-make)
(expect-native obarray-map)
(expect-native oclosure-type)
(expect-native forward-page)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index c5e671c6a9..4d14feb38b 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -100,7 +100,7 @@ (define (%emacs-modules build-system)
(define-public emacs-minimal
(package
(name "emacs-minimal")
- (version "29.4")
+ (version "30.1")
;; Note: When using (replacement …), ensure that comp-native-version-dir
;; stays the same across grafts.
;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts
@@ -111,7 +111,7 @@ (define-public emacs-minimal
version ".tar.xz"))
(sha256
(base32
- "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds"))
+ "13qkdx515qv7m8b2mpd37p16frs0xgl7bw8xvv397bz6fspc3jkc"))
(patches (search-patches "emacs-disable-jit-compilation.patch"
"emacs-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
@@ -172,7 +172,6 @@ (define-public emacs-minimal
"lisp/mail/feedmail.el"
"lisp/obsolete/pgg-pgp.el"
"lisp/obsolete/pgg-pgp5.el"
- "lisp/obsolete/terminal.el"
"lisp/org/ob-eval.el"
"lisp/textmodes/artist.el"
"lisp/progmodes/sh-script.el"
@@ -721,10 +720,6 @@ (define-public guile-emacs
;; Likewise, we don't need to patch helper binaries
;; like etags, ctags or ebrowse.
"^emacs(-[0-9]+(\\.[0-9]+)*)?$")))))
- (add-after 'unpack 'help-patch-progam-file-names
- (lambda _
- (call-with-output-file "lisp/obsolete/terminal.el"
- (lambda (port) (display port)))))
(add-after 'configure 'touch-lisp/finder-inf.el
(lambda _
(call-with-output-file "lisp/finder-inf.el"
diff --git a/gnu/packages/patches/emacs-exec-path.patch b/gnu/packages/patches/emacs-exec-path.patch
index 9a76b0237d..6e33e25258 100644
--- a/gnu/packages/patches/emacs-exec-path.patch
+++ b/gnu/packages/patches/emacs-exec-path.patch
@@ -2,15 +2,17 @@ Do not capture the build-time value of $PATH in the 'emacs' executable
since this can noticeably increase the size of the closure of Emacs
with things like GCC being referenced.
---- a/lisp/loadup.el
-+++ b/lisp/loadup.el
-@@ -530,7 +530,8 @@ lost after dumping")))
- ((equal dump-mode "dump") "emacs")
- ((equal dump-mode "bootstrap") "emacs")
- ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
-- (t (error "Unrecognized dump mode %s" dump-mode)))))
-+ (t (error "Unrecognized dump mode %s" dump-mode))))
-+ (exec-path nil))
- (when (and (featurep 'native-compile)
- (equal dump-mode "pdump"))
- ;; Don't enable this before bootstrap is completed, as the
+Index: emacs-next/lisp/loadup.el
+===================================================================
+--- emacs-next.orig/lisp/loadup.el
++++ emacs-next/lisp/loadup.el
+@@ -599,7 +599,8 @@ lost after dumping")))
+ ((equal dump-mode "dump") "emacs")
+ ((equal dump-mode "bootstrap") "emacs")
+ ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
+- (t (error "Unrecognized dump mode %s" dump-mode)))))
++ (t (error "Unrecognized dump mode %s" dump-mode))))
++ (exec-path nil))
+ (when (and (featurep 'native-compile)
+ (equal dump-mode "pdump"))
+ ;; Don't enable this before bootstrap is completed, as the
diff --git a/gnu/packages/patches/emacs-native-comp-driver-options.patch b/gnu/packages/patches/emacs-native-comp-driver-options.patch
index 308c4f1212..e4ed5a48f1 100644
--- a/gnu/packages/patches/emacs-native-comp-driver-options.patch
+++ b/gnu/packages/patches/emacs-native-comp-driver-options.patch
@@ -2,12 +2,13 @@ We substitute this anyway, so let's make it easier to substitute.
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
-@@ -178,8 +178,7 @@ and above."
+@@ -203,9 +203,7 @@ and above."
:type '(repeat string)
:version "28.1")
--(defcustom native-comp-driver-options (when (eq system-type 'darwin)
-- '("-Wl,-w"))
+-(defcustom native-comp-driver-options
+- (cond ((eq system-type 'darwin) '("-Wl,-w"))
+- ((eq system-type 'cygwin) '("-Wl,-dynamicbase")))
+(defcustom native-comp-driver-options nil
"Options passed verbatim to the native compiler's back-end driver.
Note that not all options are meaningful; typically only the options
diff --git a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
index 169323f290..7897fa9b04 100644
--- a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
+++ b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch
@@ -12,11 +12,11 @@ way into the actual variable despite attempts to remove it by calling
The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as
packages may require it, but only pushes the new value now.
-Index: emacs-29.2/src/comp.c
+Index: emacs-next/src/comp.c
===================================================================
---- emacs-29.2.orig/src/comp.c
-+++ emacs-29.2/src/comp.c
-@@ -4396,26 +4396,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc
+--- emacs-next.orig/src/comp.c
++++ emacs-next/src/comp.c
+@@ -4403,26 +4403,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc
Scomp_el_to_eln_rel_filename, 1, 1, 0,
doc: /* Return the relative name of the .eln file for FILENAME.
FILENAME must exist, and if it's a symlink, the target must exist.
@@ -49,7 +49,7 @@ Index: emacs-29.2/src/comp.c
if (NILP (Ffile_exists_p (filename)))
xsignal1 (Qfile_missing, filename);
-@@ -4423,64 +4414,55 @@ one for the file name and another for it
+@@ -4430,64 +4421,55 @@ one for the file name and another for it
filename = Fw32_long_file_name (filename);
#endif
@@ -157,7 +157,7 @@ Index: emacs-29.2/src/comp.c
}
DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename,
-@@ -4494,13 +4476,7 @@ If BASE-DIR is non-nil, use it as the di
+@@ -4501,13 +4483,7 @@ If BASE-DIR is non-nil, use it as the di
non-absolute BASE-DIR is interpreted as relative to `invocation-directory'.
If BASE-DIR is omitted or nil, look for the first writable directory
in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory
@@ -172,7 +172,7 @@ Index: emacs-29.2/src/comp.c
(Lisp_Object filename, Lisp_Object base_dir)
{
Lisp_Object source_filename = filename;
-@@ -4548,10 +4524,11 @@ the latter is supposed to be used by the
+@@ -4555,10 +4531,11 @@ the latter is supposed to be used by the
Lisp_Object lisp_preloaded =
Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil);
base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir);
@@ -186,7 +186,7 @@ Index: emacs-29.2/src/comp.c
CALL1I (split-string, lisp_preloaded))))))
base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir);
-@@ -5863,10 +5840,7 @@ The last directory of this list is assum
+@@ -5875,10 +5852,7 @@ The last directory of this list is assum
the system *.eln files, which are the files produced when building
Emacs. */);
@@ -198,11 +198,11 @@ Index: emacs-29.2/src/comp.c
DEFVAR_LISP ("native-comp-enable-subr-trampolines",
Vnative_comp_enable_subr_trampolines,
-Index: emacs-29.2/lisp/startup.el
+Index: emacs-next/lisp/startup.el
===================================================================
---- emacs-29.2.orig/lisp/startup.el
-+++ emacs-29.2/lisp/startup.el
-@@ -545,9 +545,6 @@ DIRS are relative."
+--- emacs-next.orig/lisp/startup.el
++++ emacs-next/lisp/startup.el
+@@ -527,9 +527,6 @@ DIRS are relative."
(defvar native-comp-jit-compilation)
(defvar native-comp-enable-subr-trampolines)
@@ -212,7 +212,7 @@ Index: emacs-29.2/lisp/startup.el
(defun startup-redirect-eln-cache (cache-directory)
"Redirect the user's eln-cache directory to CACHE-DIRECTORY.
CACHE-DIRECTORY must be a single directory, a string.
-@@ -558,22 +555,10 @@ to `user-emacs-directory'.
+@@ -540,22 +537,10 @@ to `user-emacs-directory'.
For best results, call this function in your early-init file,
so that the rest of initialization and package loading uses
the updated value."
@@ -232,10 +232,10 @@ Index: emacs-29.2/lisp/startup.el
- (setq startup--original-eln-load-path
- (copy-sequence native-comp-eln-load-path))))
-
- (defun normal-top-level ()
- "Emacs calls this function when it first starts up.
- It sets `command-line-processed', processes the command-line,
-@@ -1362,12 +1347,6 @@ please check its value")
+ (defun startup--rescale-elt-match-p (font-pattern font-object)
+ "Test whether FONT-OBJECT matches an element of `face-font-rescale-alist'.
+ FONT-OBJECT is a font-object that specifies a font to test.
+@@ -1383,12 +1368,6 @@ please check its value")
startup-init-directory)))
(setq early-init-file user-init-file)
@@ -248,7 +248,7 @@ Index: emacs-29.2/lisp/startup.el
;; If any package directory exists, initialize the package system.
(and user-init-file
package-enable-at-startup
-@@ -1502,12 +1481,6 @@ please check its value")
+@@ -1523,12 +1502,6 @@ please check its value")
startup-init-directory))
t)
@@ -261,10 +261,10 @@ Index: emacs-29.2/lisp/startup.el
(when (and deactivate-mark transient-mark-mode)
(with-current-buffer (window-buffer)
(deactivate-mark)))
-Index: emacs-29.2/lisp/loadup.el
+Index: emacs-next/lisp/loadup.el
===================================================================
---- emacs-29.2.orig/lisp/loadup.el
-+++ emacs-29.2/lisp/loadup.el
+--- emacs-next.orig/lisp/loadup.el
++++ emacs-next/lisp/loadup.el
@@ -53,6 +53,14 @@
(setq redisplay--inhibit-bidi t)
@@ -280,9 +280,16 @@ Index: emacs-29.2/lisp/loadup.el
;; Add subdirectories to the load-path for files that might get
;; autoloaded when bootstrapping or running Emacs normally.
-@@ -494,22 +502,20 @@ lost after dumping")))
- (concat eln-dest-dir "native-lisp/" comp-native-version-dir "/"))
+@@ -538,27 +546,25 @@ This to have it working when installed o
+ directory got moved. This is set to be a pair in the form of:
+ \(rel-filename-from-install-bin . rel-filename-from-local-bin)."
+ (when (and load--bin-dest-dir load--eln-dest-dir)
+- (setq eln-dest-dir
+- (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/"))
++ (setq load--eln-versioned-dest-dir
++ (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/"))
(maphash (lambda