diff options
| -rw-r--r-- | Makefile.am | 1 | ||||
| -rw-r--r-- | gnu/packages/aux-files/emacs/comp-integrity-next.el | 121 | ||||
| -rw-r--r-- | gnu/packages/aux-files/emacs/comp-integrity.el | 39 | ||||
| -rw-r--r-- | gnu/packages/emacs.scm | 9 | ||||
| -rw-r--r-- | gnu/packages/patches/emacs-exec-path.patch | 26 | ||||
| -rw-r--r-- | gnu/packages/patches/emacs-native-comp-driver-options.patch | 7 | ||||
| -rw-r--r-- | gnu/packages/patches/emacs-native-comp-fix-filenames.patch | 93 |
7 files changed, 84 insertions, 212 deletions
diff --git a/Makefile.am b/Makefile.am index 8b8f4ccdcd3..85c85a574fe 100644 --- a/Makefile.am +++ b/Makefile.am | |||
| @@ -438,7 +438,6 @@ dist_noinst_DATA = \ | |||
| 438 | AUX_FILES = \ | 438 | AUX_FILES = \ |
| 439 | gnu/packages/aux-files/chromium/master-preferences.json \ | 439 | gnu/packages/aux-files/chromium/master-preferences.json \ |
| 440 | gnu/packages/aux-files/emacs/comp-integrity.el \ | 440 | gnu/packages/aux-files/emacs/comp-integrity.el \ |
| 441 | gnu/packages/aux-files/emacs/comp-integrity-next.el \ | ||
| 442 | gnu/packages/aux-files/emacs/guix-emacs.el \ | 441 | gnu/packages/aux-files/emacs/guix-emacs.el \ |
| 443 | gnu/packages/aux-files/findclass.php \ | 442 | gnu/packages/aux-files/findclass.php \ |
| 444 | gnu/packages/aux-files/guix.vim \ | 443 | 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 74ee0952f43..00000000000 --- a/gnu/packages/aux-files/emacs/comp-integrity-next.el +++ /dev/null | |||
| @@ -1,121 +0,0 @@ | |||
| 1 | (require 'ert) | ||
| 2 | |||
| 3 | (eval-when-compile | ||
| 4 | (defmacro expect-feature (&optional feature) | ||
| 5 | `(progn | ||
| 6 | (eval-when-compile | ||
| 7 | (or (not ',feature) | ||
| 8 | (require ',feature))))) | ||
| 9 | |||
| 10 | (defmacro expect-native (fun &optional feature) | ||
| 11 | `(progn | ||
| 12 | (expect-feature ,feature) | ||
| 13 | (should (native-comp-function-p (symbol-function ',fun))))) | ||
| 14 | |||
| 15 | |||
| 16 | (defmacro expect-native-if-bound (fun &optional feature) | ||
| 17 | `(and (expect-feature ,feature) | ||
| 18 | (boundp ',fun) | ||
| 19 | (should (native-comp-function-p (symbol-function ',fun))))) | ||
| 20 | |||
| 21 | (defmacro expect-builtin (fun &optional feature) | ||
| 22 | `(should (primitive-function-p (symbol-function ',fun))))) | ||
| 23 | |||
| 24 | (expect-native abbrev-mode) | ||
| 25 | (expect-native backquote-process) | ||
| 26 | (expect-native mode-line-widen) | ||
| 27 | (expect-native buffer-menu) | ||
| 28 | (expect-native button-mode) | ||
| 29 | (expect-native byte-run-strip-symbol-positions) | ||
| 30 | (expect-native case-table-get-table) | ||
| 31 | (expect-native cconv-convert) | ||
| 32 | (expect-native use-default-char-width-table) | ||
| 33 | (expect-native cl-generic-p) | ||
| 34 | (expect-native cl-struct-define) | ||
| 35 | (expect-native-if-bound x-setup-function-keys) | ||
| 36 | (expect-native encode-composition-rule) | ||
| 37 | (expect-native custom-declare-face) | ||
| 38 | (expect-native minibuffer-prompt-properties--setter) | ||
| 39 | (expect-native custom-add-choice) | ||
| 40 | (expect-native debug-early) | ||
| 41 | (expect-native display-table-slot disp-table) | ||
| 42 | (expect-native dnd-open-file) | ||
| 43 | (expect-native dos-mode25 dos-fns) | ||
| 44 | (expect-native find-file-text dos-w32) | ||
| 45 | (expect-native-if-bound dynamic-setting-handle-config-changed-event) | ||
| 46 | (expect-native easy-menu-item-present-p) | ||
| 47 | (expect-native eldoc-mode) | ||
| 48 | (expect-native electric-indent-mode) | ||
| 49 | (expect-native elisp-mode-syntax-propertize) | ||
| 50 | (expect-native getenv) | ||
| 51 | (expect-native epa-file-find-file-hook) | ||
| 52 | (expect-native face-list) | ||
| 53 | (expect-native find-file-noselect) | ||
| 54 | (expect-native fill-region) | ||
| 55 | (expect-native font-lock-change-mode) | ||
| 56 | (expect-native font-lock-add-keywords) | ||
| 57 | (expect-native-if-bound fontset-plain-name) | ||
| 58 | (expect-native format-read) | ||
| 59 | (expect-native frame-edges) | ||
| 60 | (expect-native-if-bound fringe-mode) | ||
| 61 | (expect-native help-quick) | ||
| 62 | (expect-native-if-bound image-type) | ||
| 63 | (expect-native indent-region) | ||
| 64 | (expect-native indian-compose-regexp) | ||
| 65 | (expect-native msdos-setup-keyboard term/internal) | ||
| 66 | (expect-native isearch-abort) | ||
| 67 | (expect-native iso-transl-set-language) | ||
| 68 | (expect-native jit-lock-mode) | ||
| 69 | (expect-native jka-compr-build-file-regexp) | ||
| 70 | (expect-native keymap-global-set) | ||
| 71 | (expect-native forward-sexp) | ||
| 72 | (expect-native lisp-string-in-doc-position-p) | ||
| 73 | (expect-native ls-lisp-set-options ls-lisp) | ||
| 74 | (expect-native macroexp-compiling-p) | ||
| 75 | (expect-native map-y-or-n-p) | ||
| 76 | (expect-native menu-find-file-existing) | ||
| 77 | (expect-native completion-boundaries) | ||
| 78 | (expect-native egyptian-shape-grouping) | ||
| 79 | (expect-native mouse-double-click-time) | ||
| 80 | (expect-native convert-define-charset-argument) | ||
| 81 | (expect-native coding-system-change-eol-conversion) | ||
| 82 | (expect-native store-substring mule-util) | ||
| 83 | (expect-native-if-bound mouse-wheel-change-button) | ||
| 84 | (expect-native advice-function-mapc) | ||
| 85 | (expect-native comment-string-strip) | ||
| 86 | (expect-builtin obarray-make) | ||
| 87 | (expect-native obarray-map) | ||
| 88 | (expect-native oclosure-type) | ||
| 89 | (expect-native forward-page) | ||
| 90 | (expect-native sentence-end) | ||
| 91 | (expect-native show-paren-function) | ||
| 92 | (expect-native pgtk-dnd-init-frame pgtk-dnd) | ||
| 93 | (expect-native prog-context-menu) | ||
| 94 | (expect-native-if-bound regexp-opt) | ||
| 95 | (expect-native get-register) | ||
| 96 | (expect-native query-replace-descr) | ||
| 97 | (expect-native rfn-eshadow-setup-minibuffer) | ||
| 98 | (expect-native read-multiple-choice) | ||
| 99 | (expect-native-if-bound scroll-bar-scale) | ||
| 100 | (expect-native gui-select-text) | ||
| 101 | (expect-native seq-first) | ||
| 102 | (expect-native hack-read-symbol-shorthands) | ||
| 103 | (expect-native next-error-find-buffer) | ||
| 104 | (expect-native exit-splash-screen) | ||
| 105 | (expect-native buffer-local-boundp) | ||
| 106 | (expect-native syntax-propertize-multiline) | ||
| 107 | (expect-native tab-bar-mode) | ||
| 108 | (expect-native tabulated-list-put-tag) | ||
| 109 | (expect-native text-mode) | ||
| 110 | (expect-native timer-activate) | ||
| 111 | (expect-native tool-bar-mode) | ||
| 112 | (expect-native tooltip-mode) | ||
| 113 | (expect-native tty-color-desc) | ||
| 114 | (expect-native ucs-normalize-hfs-nfd-comp-p ucs-normalize) | ||
| 115 | (expect-native uniquify-item-p) | ||
| 116 | (expect-native vc-mode) | ||
| 117 | (expect-native emacs-version) | ||
| 118 | (expect-native define-widget) | ||
| 119 | (expect-native window-right) | ||
| 120 | (expect-native x-dnd-init-frame x-dnd) | ||
| 121 | (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 abe7e7c0c9c..74ee0952f43 100644 --- a/gnu/packages/aux-files/emacs/comp-integrity.el +++ b/gnu/packages/aux-files/emacs/comp-integrity.el | |||
| @@ -1,34 +1,25 @@ | |||
| 1 | (require 'ert) | 1 | (require 'ert) |
| 2 | 2 | ||
| 3 | (eval-when-compile | 3 | (eval-when-compile |
| 4 | (require 'help-fns) | 4 | (defmacro expect-feature (&optional feature) |
| 5 | |||
| 6 | (defmacro expect-help (fun result &optional feature) | ||
| 7 | `(progn | 5 | `(progn |
| 8 | (eval-when-compile (when ',feature | 6 | (eval-when-compile |
| 9 | (require ',feature))) | 7 | (or (not ',feature) |
| 10 | 8 | (require ',feature))))) | |
| 11 | (ert-deftest ,(intern (concat "expect-" (symbol-name fun) | ||
| 12 | "-" (symbol-name result))) | ||
| 13 | () | ||
| 14 | (should | ||
| 15 | (eq ',result | ||
| 16 | (let ((desc (substring-no-properties | ||
| 17 | (with-output-to-string | ||
| 18 | (help-fns-function-description-header ',fun))))) | ||
| 19 | (cond ((string-search "native-compiled" desc) 'native) | ||
| 20 | ((string-search "byte-compiled" desc) 'byte) | ||
| 21 | ((string-search "built-in" desc) 'built-in) | ||
| 22 | (t nil)))))))) | ||
| 23 | 9 | ||
| 24 | (defmacro expect-native (fun &optional feature) | 10 | (defmacro expect-native (fun &optional feature) |
| 25 | `(progn (expect-help ,fun native ,feature))) | 11 | `(progn |
| 12 | (expect-feature ,feature) | ||
| 13 | (should (native-comp-function-p (symbol-function ',fun))))) | ||
| 14 | |||
| 26 | 15 | ||
| 27 | (defmacro expect-native-if-bound (fun) | 16 | (defmacro expect-native-if-bound (fun &optional feature) |
| 28 | `(and (boundp ',fun) (expect-help ,fun native))) | 17 | `(and (expect-feature ,feature) |
| 18 | (boundp ',fun) | ||
| 19 | (should (native-comp-function-p (symbol-function ',fun))))) | ||
| 29 | 20 | ||
| 30 | (defmacro expect-builtin (fun &optional feature) | 21 | (defmacro expect-builtin (fun &optional feature) |
| 31 | `(progn (expect-help ,fun built-in ,feature)))) | 22 | `(should (primitive-function-p (symbol-function ',fun))))) |
| 32 | 23 | ||
| 33 | (expect-native abbrev-mode) | 24 | (expect-native abbrev-mode) |
| 34 | (expect-native backquote-process) | 25 | (expect-native backquote-process) |
| @@ -92,9 +83,7 @@ | |||
| 92 | (expect-native-if-bound mouse-wheel-change-button) | 83 | (expect-native-if-bound mouse-wheel-change-button) |
| 93 | (expect-native advice-function-mapc) | 84 | (expect-native advice-function-mapc) |
| 94 | (expect-native comment-string-strip) | 85 | (expect-native comment-string-strip) |
| 95 | (if (>= emacs-major-version 30) | 86 | (expect-builtin obarray-make) |
| 96 | (expect-builtin obarray-make) | ||
| 97 | (expect-native obarray-make)) | ||
| 98 | (expect-native obarray-map) | 87 | (expect-native obarray-map) |
| 99 | (expect-native oclosure-type) | 88 | (expect-native oclosure-type) |
| 100 | (expect-native forward-page) | 89 | (expect-native forward-page) |
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fb72b275444..1230a6aaf19 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm | |||
| @@ -101,7 +101,7 @@ | |||
| 101 | (define-public emacs-minimal | 101 | (define-public emacs-minimal |
| 102 | (package | 102 | (package |
| 103 | (name "emacs-minimal") | 103 | (name "emacs-minimal") |
| 104 | (version "29.4") | 104 | (version "30.1") |
| 105 | ;; Note: When using (replacement …), ensure that comp-native-version-dir | 105 | ;; Note: When using (replacement …), ensure that comp-native-version-dir |
| 106 | ;; stays the same across grafts. | 106 | ;; stays the same across grafts. |
| 107 | ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts | 107 | ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts |
| @@ -112,7 +112,7 @@ | |||
| 112 | version ".tar.xz")) | 112 | version ".tar.xz")) |
| 113 | (sha256 | 113 | (sha256 |
| 114 | (base32 | 114 | (base32 |
| 115 | "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds")) | 115 | "13qkdx515qv7m8b2mpd37p16frs0xgl7bw8xvv397bz6fspc3jkc")) |
| 116 | (patches (search-patches "emacs-disable-jit-compilation.patch" | 116 | (patches (search-patches "emacs-disable-jit-compilation.patch" |
| 117 | "emacs-exec-path.patch" | 117 | "emacs-exec-path.patch" |
| 118 | "emacs-fix-scheme-indent-function.patch" | 118 | "emacs-fix-scheme-indent-function.patch" |
| @@ -173,7 +173,6 @@ | |||
| 173 | "lisp/mail/feedmail.el" | 173 | "lisp/mail/feedmail.el" |
| 174 | "lisp/obsolete/pgg-pgp.el" | 174 | "lisp/obsolete/pgg-pgp.el" |
| 175 | "lisp/obsolete/pgg-pgp5.el" | 175 | "lisp/obsolete/pgg-pgp5.el" |
| 176 | "lisp/obsolete/terminal.el" | ||
| 177 | "lisp/org/ob-eval.el" | 176 | "lisp/org/ob-eval.el" |
| 178 | "lisp/textmodes/artist.el" | 177 | "lisp/textmodes/artist.el" |
| 179 | "lisp/progmodes/sh-script.el" | 178 | "lisp/progmodes/sh-script.el" |
| @@ -730,10 +729,6 @@ Started in 2014 as a GSOC project, Guile-Emacs was resurrected in 2024.") | |||
| 730 | ;; Likewise, we don't need to patch helper binaries | 729 | ;; Likewise, we don't need to patch helper binaries |
| 731 | ;; like etags, ctags or ebrowse. | 730 | ;; like etags, ctags or ebrowse. |
| 732 | "^emacs(-[0-9]+(\\.[0-9]+)*)?$"))))) | 731 | "^emacs(-[0-9]+(\\.[0-9]+)*)?$"))))) |
| 733 | (add-after 'unpack 'help-patch-progam-file-names | ||
| 734 | (lambda _ | ||
| 735 | (call-with-output-file "lisp/obsolete/terminal.el" | ||
| 736 | (lambda (port) (display port))))) | ||
| 737 | (add-after 'configure 'touch-lisp/finder-inf.el | 732 | (add-after 'configure 'touch-lisp/finder-inf.el |
| 738 | (lambda _ | 733 | (lambda _ |
| 739 | (call-with-output-file "lisp/finder-inf.el" | 734 | (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 9a76b0237de..6e33e252589 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 | |||
| 2 | since this can noticeably increase the size of the closure of Emacs | 2 | since this can noticeably increase the size of the closure of Emacs |
| 3 | with things like GCC being referenced. | 3 | with things like GCC being referenced. |
| 4 | 4 | ||
| 5 | --- a/lisp/loadup.el | 5 | Index: emacs-next/lisp/loadup.el |
| 6 | +++ b/lisp/loadup.el | 6 | =================================================================== |
| 7 | @@ -530,7 +530,8 @@ lost after dumping"))) | 7 | --- emacs-next.orig/lisp/loadup.el |
| 8 | ((equal dump-mode "dump") "emacs") | 8 | +++ emacs-next/lisp/loadup.el |
| 9 | ((equal dump-mode "bootstrap") "emacs") | 9 | @@ -599,7 +599,8 @@ lost after dumping"))) |
| 10 | ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp") | 10 | ((equal dump-mode "dump") "emacs") |
| 11 | - (t (error "Unrecognized dump mode %s" dump-mode))))) | 11 | ((equal dump-mode "bootstrap") "emacs") |
| 12 | + (t (error "Unrecognized dump mode %s" dump-mode)))) | 12 | ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp") |
| 13 | + (exec-path nil)) | 13 | - (t (error "Unrecognized dump mode %s" dump-mode))))) |
| 14 | (when (and (featurep 'native-compile) | 14 | + (t (error "Unrecognized dump mode %s" dump-mode)))) |
| 15 | (equal dump-mode "pdump")) | 15 | + (exec-path nil)) |
| 16 | ;; Don't enable this before bootstrap is completed, as the | 16 | (when (and (featurep 'native-compile) |
| 17 | (equal dump-mode "pdump")) | ||
| 18 | ;; 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 308c4f1212a..e4ed5a48f1d 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. | |||
| 2 | 2 | ||
| 3 | --- a/lisp/emacs-lisp/comp.el | 3 | --- a/lisp/emacs-lisp/comp.el |
| 4 | +++ b/lisp/emacs-lisp/comp.el | 4 | +++ b/lisp/emacs-lisp/comp.el |
| 5 | @@ -178,8 +178,7 @@ and above." | 5 | @@ -203,9 +203,7 @@ and above." |
| 6 | :type '(repeat string) | 6 | :type '(repeat string) |
| 7 | :version "28.1") | 7 | :version "28.1") |
| 8 | 8 | ||
| 9 | -(defcustom native-comp-driver-options (when (eq system-type 'darwin) | 9 | -(defcustom native-comp-driver-options |
| 10 | - '("-Wl,-w")) | 10 | - (cond ((eq system-type 'darwin) '("-Wl,-w")) |
| 11 | - ((eq system-type 'cygwin) '("-Wl,-dynamicbase"))) | ||
| 11 | +(defcustom native-comp-driver-options nil | 12 | +(defcustom native-comp-driver-options nil |
| 12 | "Options passed verbatim to the native compiler's back-end driver. | 13 | "Options passed verbatim to the native compiler's back-end driver. |
| 13 | Note that not all options are meaningful; typically only the options | 14 | 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 169323f290e..7897fa9b048 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 | |||
| 12 | The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as | 12 | The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as |
| 13 | packages may require it, but only pushes the new value now. | 13 | packages may require it, but only pushes the new value now. |
| 14 | 14 | ||
| 15 | Index: emacs-29.2/src/comp.c | 15 | Index: emacs-next/src/comp.c |
| 16 | =================================================================== | 16 | =================================================================== |
| 17 | --- emacs-29.2.orig/src/comp.c | 17 | --- emacs-next.orig/src/comp.c |
| 18 | +++ emacs-29.2/src/comp.c | 18 | +++ emacs-next/src/comp.c |
| 19 | @@ -4396,26 +4396,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc | 19 | @@ -4403,26 +4403,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc |
| 20 | Scomp_el_to_eln_rel_filename, 1, 1, 0, | 20 | Scomp_el_to_eln_rel_filename, 1, 1, 0, |
| 21 | doc: /* Return the relative name of the .eln file for FILENAME. | 21 | doc: /* Return the relative name of the .eln file for FILENAME. |
| 22 | FILENAME must exist, and if it's a symlink, the target must exist. | 22 | FILENAME must exist, and if it's a symlink, the target must exist. |
| @@ -49,7 +49,7 @@ Index: emacs-29.2/src/comp.c | |||
| 49 | if (NILP (Ffile_exists_p (filename))) | 49 | if (NILP (Ffile_exists_p (filename))) |
| 50 | xsignal1 (Qfile_missing, filename); | 50 | xsignal1 (Qfile_missing, filename); |
| 51 | 51 | ||
| 52 | @@ -4423,64 +4414,55 @@ one for the file name and another for it | 52 | @@ -4430,64 +4421,55 @@ one for the file name and another for it |
| 53 | filename = Fw32_long_file_name (filename); | 53 | filename = Fw32_long_file_name (filename); |
| 54 | #endif | 54 | #endif |
| 55 | 55 | ||
| @@ -157,7 +157,7 @@ Index: emacs-29.2/src/comp.c | |||
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename, | 159 | DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename, |
| 160 | @@ -4494,13 +4476,7 @@ If BASE-DIR is non-nil, use it as the di | 160 | @@ -4501,13 +4483,7 @@ If BASE-DIR is non-nil, use it as the di |
| 161 | non-absolute BASE-DIR is interpreted as relative to `invocation-directory'. | 161 | non-absolute BASE-DIR is interpreted as relative to `invocation-directory'. |
| 162 | If BASE-DIR is omitted or nil, look for the first writable directory | 162 | If BASE-DIR is omitted or nil, look for the first writable directory |
| 163 | in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory | 163 | in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory |
| @@ -172,7 +172,7 @@ Index: emacs-29.2/src/comp.c | |||
| 172 | (Lisp_Object filename, Lisp_Object base_dir) | 172 | (Lisp_Object filename, Lisp_Object base_dir) |
| 173 | { | 173 | { |
| 174 | Lisp_Object source_filename = filename; | 174 | Lisp_Object source_filename = filename; |
| 175 | @@ -4548,10 +4524,11 @@ the latter is supposed to be used by the | 175 | @@ -4555,10 +4531,11 @@ the latter is supposed to be used by the |
| 176 | Lisp_Object lisp_preloaded = | 176 | Lisp_Object lisp_preloaded = |
| 177 | Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil); | 177 | Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil); |
| 178 | base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir); | 178 | base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir); |
| @@ -186,7 +186,7 @@ Index: emacs-29.2/src/comp.c | |||
| 186 | CALL1I (split-string, lisp_preloaded)))))) | 186 | CALL1I (split-string, lisp_preloaded)))))) |
| 187 | base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir); | 187 | base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir); |
| 188 | 188 | ||
| 189 | @@ -5863,10 +5840,7 @@ The last directory of this list is assum | 189 | @@ -5875,10 +5852,7 @@ The last directory of this list is assum |
| 190 | the system *.eln files, which are the files produced when building | 190 | the system *.eln files, which are the files produced when building |
| 191 | Emacs. */); | 191 | Emacs. */); |
| 192 | 192 | ||
| @@ -198,11 +198,11 @@ Index: emacs-29.2/src/comp.c | |||
| 198 | 198 | ||
| 199 | DEFVAR_LISP ("native-comp-enable-subr-trampolines", | 199 | DEFVAR_LISP ("native-comp-enable-subr-trampolines", |
| 200 | Vnative_comp_enable_subr_trampolines, | 200 | Vnative_comp_enable_subr_trampolines, |
| 201 | Index: emacs-29.2/lisp/startup.el | 201 | Index: emacs-next/lisp/startup.el |
| 202 | =================================================================== | 202 | =================================================================== |
| 203 | --- emacs-29.2.orig/lisp/startup.el | 203 | --- emacs-next.orig/lisp/startup.el |
| 204 | +++ emacs-29.2/lisp/startup.el | 204 | +++ emacs-next/lisp/startup.el |
| 205 | @@ -545,9 +545,6 @@ DIRS are relative." | 205 | @@ -527,9 +527,6 @@ DIRS are relative." |
| 206 | (defvar native-comp-jit-compilation) | 206 | (defvar native-comp-jit-compilation) |
| 207 | (defvar native-comp-enable-subr-trampolines) | 207 | (defvar native-comp-enable-subr-trampolines) |
| 208 | 208 | ||
| @@ -212,7 +212,7 @@ Index: emacs-29.2/lisp/startup.el | |||
| 212 | (defun startup-redirect-eln-cache (cache-directory) | 212 | (defun startup-redirect-eln-cache (cache-directory) |
| 213 | "Redirect the user's eln-cache directory to CACHE-DIRECTORY. | 213 | "Redirect the user's eln-cache directory to CACHE-DIRECTORY. |
| 214 | CACHE-DIRECTORY must be a single directory, a string. | 214 | CACHE-DIRECTORY must be a single directory, a string. |
| 215 | @@ -558,22 +555,10 @@ to `user-emacs-directory'. | 215 | @@ -540,22 +537,10 @@ to `user-emacs-directory'. |
| 216 | For best results, call this function in your early-init file, | 216 | For best results, call this function in your early-init file, |
| 217 | so that the rest of initialization and package loading uses | 217 | so that the rest of initialization and package loading uses |
| 218 | the updated value." | 218 | the updated value." |
| @@ -232,10 +232,10 @@ Index: emacs-29.2/lisp/startup.el | |||
| 232 | - (setq startup--original-eln-load-path | 232 | - (setq startup--original-eln-load-path |
| 233 | - (copy-sequence native-comp-eln-load-path)))) | 233 | - (copy-sequence native-comp-eln-load-path)))) |
| 234 | - | 234 | - |
| 235 | (defun normal-top-level () | 235 | (defun startup--rescale-elt-match-p (font-pattern font-object) |
| 236 | "Emacs calls this function when it first starts up. | 236 | "Test whether FONT-OBJECT matches an element of `face-font-rescale-alist'. |
| 237 | It sets `command-line-processed', processes the command-line, | 237 | FONT-OBJECT is a font-object that specifies a font to test. |
| 238 | @@ -1362,12 +1347,6 @@ please check its value") | 238 | @@ -1383,12 +1368,6 @@ please check its value") |
| 239 | startup-init-directory))) | 239 | startup-init-directory))) |
| 240 | (setq early-init-file user-init-file) | 240 | (setq early-init-file user-init-file) |
| 241 | 241 | ||
| @@ -248,7 +248,7 @@ Index: emacs-29.2/lisp/startup.el | |||
| 248 | ;; If any package directory exists, initialize the package system. | 248 | ;; If any package directory exists, initialize the package system. |
| 249 | (and user-init-file | 249 | (and user-init-file |
| 250 | package-enable-at-startup | 250 | package-enable-at-startup |
| 251 | @@ -1502,12 +1481,6 @@ please check its value") | 251 | @@ -1523,12 +1502,6 @@ please check its value") |
| 252 | startup-init-directory)) | 252 | startup-init-directory)) |
| 253 | t) | 253 | t) |
| 254 | 254 | ||
| @@ -261,10 +261,10 @@ Index: emacs-29.2/lisp/startup.el | |||
| 261 | (when (and deactivate-mark transient-mark-mode) | 261 | (when (and deactivate-mark transient-mark-mode) |
| 262 | (with-current-buffer (window-buffer) | 262 | (with-current-buffer (window-buffer) |
| 263 | (deactivate-mark))) | 263 | (deactivate-mark))) |
| 264 | Index: emacs-29.2/lisp/loadup.el | 264 | Index: emacs-next/lisp/loadup.el |
| 265 | =================================================================== | 265 | =================================================================== |
| 266 | --- emacs-29.2.orig/lisp/loadup.el | 266 | --- emacs-next.orig/lisp/loadup.el |
| 267 | +++ emacs-29.2/lisp/loadup.el | 267 | +++ emacs-next/lisp/loadup.el |
| 268 | @@ -53,6 +53,14 @@ | 268 | @@ -53,6 +53,14 @@ |
| 269 | (setq redisplay--inhibit-bidi t) | 269 | (setq redisplay--inhibit-bidi t) |
| 270 | 270 | ||
| @@ -280,9 +280,16 @@ Index: emacs-29.2/lisp/loadup.el | |||
| 280 | 280 | ||
| 281 | ;; Add subdirectories to the load-path for files that might get | 281 | ;; Add subdirectories to the load-path for files that might get |
| 282 | ;; autoloaded when bootstrapping or running Emacs normally. | 282 | ;; autoloaded when bootstrapping or running Emacs normally. |
| 283 | @@ -494,22 +502,20 @@ lost after dumping"))) | 283 | @@ -538,27 +546,25 @@ This to have it working when installed o |
| 284 | (concat eln-dest-dir "native-lisp/" comp-native-version-dir "/")) | 284 | directory got moved. This is set to be a pair in the form of: |
| 285 | \(rel-filename-from-install-bin . rel-filename-from-local-bin)." | ||
| 286 | (when (and load--bin-dest-dir load--eln-dest-dir) | ||
| 287 | - (setq eln-dest-dir | ||
| 288 | - (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/")) | ||
| 289 | + (setq load--eln-versioned-dest-dir | ||
| 290 | + (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/")) | ||
| 285 | (maphash (lambda (_ cu) | 291 | (maphash (lambda (_ cu) |
| 292 | (when (stringp (native-comp-unit-file cu)) | ||
| 286 | (let* ((file (native-comp-unit-file cu)) | 293 | (let* ((file (native-comp-unit-file cu)) |
| 287 | - (preloaded (equal (substring (file-name-directory file) | 294 | - (preloaded (equal (substring (file-name-directory file) |
| 288 | - -10 -1) | 295 | - -10 -1) |
| @@ -302,33 +309,33 @@ Index: emacs-29.2/lisp/loadup.el | |||
| 302 | - (file-name-nondirectory | 309 | - (file-name-nondirectory |
| 303 | - file) | 310 | - file) |
| 304 | - eln-dest-dir-eff) | 311 | - eln-dest-dir-eff) |
| 305 | - bin-dest-dir) | 312 | - load--bin-dest-dir) |
| 306 | + (file-relative-name | 313 | + (file-relative-name |
| 307 | + (expand-file-name | 314 | + (expand-file-name |
| 308 | + (save-match-data | 315 | + (save-match-data |
| 309 | + (string-match native-lisp-needle file) | 316 | + (string-match native-lisp-needle file) |
| 310 | + (substring file (match-end 0))) | 317 | + (substring file (match-end 0))) |
| 311 | + eln-dest-dir) | 318 | + load--eln-versioned-dest-dir) |
| 312 | + bin-dest-dir) | 319 | + load--bin-dest-dir) |
| 313 | ;; Relative filename from the built uninstalled binary. | 320 | ;; Relative filename from the built uninstalled binary. |
| 314 | (file-relative-name file invocation-directory))))) | 321 | (file-relative-name file invocation-directory)))))) |
| 315 | comp-loaded-comp-units-h))) | 322 | comp-loaded-comp-units-h))) |
| 316 | @@ -557,7 +563,9 @@ lost after dumping"))) | 323 | @@ -644,7 +650,9 @@ directory got moved. This is set to be |
| 317 | (equal dump-mode "pdump")) | 324 | (equal dump-mode "pdump")) |
| 318 | ;; Don't enable this before bootstrap is completed, as the | 325 | ;; Don't enable this before bootstrap is completed, as the |
| 319 | ;; compiler infrastructure may not be usable yet. | 326 | ;; compiler infrastructure may not be usable yet. |
| 320 | - (setq native-comp-enable-subr-trampolines t)) | 327 | - (setq native-comp-enable-subr-trampolines t)) |
| 321 | + (setq native-comp-enable-subr-trampolines t | 328 | + (setq native-comp-enable-subr-trampolines t |
| 322 | + ;; We loaded everything we could. | 329 | + ;; We loaded everything we could. |
| 323 | + comp-file-preloaded-p nil)) | 330 | + comp-file-preloaded-p nil)) |
| 324 | (message "Dumping under the name %s" output) | 331 | (message "Dumping under the name %s" output) |
| 325 | (condition-case () | 332 | (condition-case () |
| 326 | (delete-file output) | 333 | (delete-file output) |
| 327 | Index: emacs-29.2/src/Makefile.in | 334 | Index: emacs-next/src/Makefile.in |
| 328 | =================================================================== | 335 | =================================================================== |
| 329 | --- emacs-29.2.orig/src/Makefile.in | 336 | --- emacs-next.orig/src/Makefile.in |
| 330 | +++ emacs-29.2/src/Makefile.in | 337 | +++ emacs-next/src/Makefile.in |
| 331 | @@ -553,6 +553,7 @@ shortlisp := $(filter-out ${shortlisp_fi | 338 | @@ -591,6 +591,7 @@ shortlisp := $(filter-out ${shortlisp_fi |
| 332 | ## We don't really need to sort, but may as well use it to remove duplicates. | 339 | ## We don't really need to sort, but may as well use it to remove duplicates. |
| 333 | shortlisp := loaddefs.el loadup.el $(sort ${shortlisp}) | 340 | shortlisp := loaddefs.el loadup.el $(sort ${shortlisp}) |
| 334 | export LISP_PRELOADED = ${shortlisp} | 341 | export LISP_PRELOADED = ${shortlisp} |
