From c0681cd3477b6fce5e257ac720a32e09357ea157 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 13 Feb 2023 10:19:31 +0100 Subject: [PATCH] Revert "Add new variable 'inhibit-native-compilation'" This reverts commit 5fec9182dbeffa88cef6651d8c798ef9665d6681. --- doc/lispref/compile.texi | 18 ------------------ etc/NEWS | 8 -------- lisp/emacs-lisp/comp.el | 35 ++++++++++++++++------------------- lisp/progmodes/elisp-mode.el | 2 +- lisp/startup.el | 7 ++----- lisp/subr.el | 3 --- src/comp.c | 8 -------- 7 files changed, 19 insertions(+), 62 deletions(-) diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index 8bb079b65df..0617b9c533c 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -981,24 +981,6 @@ whether native-compilation is available should use this predicate. This section documents the variables that control native-compilation. -@defvar inhibit-native-compilation -If your Emacs has support for native compilation, Emacs will (by -default) compile the Lisp files you're loading in the background, and -then install the native-compiled versions of the functions. If you -wish to disable this, you can set this variable to non-@code{nil}. If -you want to set it permanently, this should probably be done from the -early init file, since setting it in the normal init file is probably -too late. - -While setting this variable disables automatic compilation of Lisp -files, the compiler may still be invoked to install @dfn{trampolines} -if any built-in functions are redefined. However, these trampolines -will not get written to your cache directory. - -You can also use the @samp{EMACS_INHIBIT_NATIVE_COMPILATION} -environment variable to disable native compilation. -@end defvar - @defopt native-comp-speed This variable specifies the optimization level for native compilation. Its value should be a number between @minus{}1 and 3. Values between diff --git a/etc/NEWS b/etc/NEWS index 5ce18872f1a..8f344aa5764 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -199,14 +199,6 @@ load time. ** Native Compilation +++ -*** New variable 'inhibit-native-compilation'. -If set, Emacs will inhibit native compilation (and won't write -anything to the eln cache automatically). The variable is initialised -from the EMACS_INHIBIT_NATIVE_COMPILATION environment variable on -Emacs startup. - - ---- *** New command 'native-compile-prune-cache'. This command deletes old subdirectories of the eln cache (but not the ones for the current Emacs version). Note that subdirectories of the diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index ab6c8a8ea90..828e31c43bd 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -3803,25 +3803,22 @@ Return the trampoline if found or nil otherwise." (lexical-binding t)) (comp--native-compile form nil - ;; If we've disabled nativecomp, don't write the trampolines to - ;; the eln cache (but create them). - (and (not inhibit-native-compilation) - (cl-loop - for dir in (if native-compile-target-directory - (list (expand-file-name comp-native-version-dir - native-compile-target-directory)) - (comp-eln-load-path-eff)) - for f = (expand-file-name - (comp-trampoline-filename subr-name) - dir) - unless (file-exists-p dir) - do (ignore-errors - (make-directory dir t) - (cl-return f)) - when (file-writable-p f) - do (cl-return f) - finally (error "Cannot find suitable directory for output in \ -`native-comp-eln-load-path'")))))) + (cl-loop + for dir in (if native-compile-target-directory + (list (expand-file-name comp-native-version-dir + native-compile-target-directory)) + (comp-eln-load-path-eff)) + for f = (expand-file-name + (comp-trampoline-filename subr-name) + dir) + unless (file-exists-p dir) + do (ignore-errors + (make-directory dir t) + (cl-return f)) + when (file-writable-p f) + do (cl-return f) + finally (error "Cannot find suitable directory for output in \ +`native-comp-eln-load-path'"))))) ;; Some entry point support code. diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 7ba2c38cb75..ba1183f686b 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -220,7 +220,7 @@ All commands in `lisp-mode-shared-map' are inherited by this map." Load the compiled code when finished. Use `emacs-lisp-byte-compile-and-load' in combination with -`inhibit-native-compilation' set to nil to achieve asynchronous +`native-comp-deferred-compilation' set to t to achieve asynchronous native compilation." (interactive nil emacs-lisp-mode) (emacs-lisp--before-compile-buffer) diff --git a/lisp/startup.el b/lisp/startup.el index b0a8eed9d38..240cfa30098 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -542,7 +542,7 @@ DIRS are relative." (setq comp--compilable t)) (defvar native-comp-eln-load-path) -(defvar inhibit-native-compilation) +(defvar native-comp-deferred-compilation) (defvar comp-enable-subr-trampolines) (defvar startup--original-eln-load-path nil @@ -579,9 +579,6 @@ the updated value." It sets `command-line-processed', processes the command-line, reads the initialization files, etc. It is the default value of the variable `top-level'." - ;; Allow disabling automatic .elc->.eln processing. - (setq inhibit-native-compilation (getenv "EMACS_INHIBIT_NATIVE_COMPILATION")) - (if command-line-processed (message internal--top-level-message) (setq command-line-processed t) @@ -600,7 +597,7 @@ It is the default value of the variable `top-level'." ;; in this session. This is necessary if libgccjit is not ;; available on MS-Windows, but Emacs was built with ;; native-compilation support. - (setq inhibit-native-compilation t + (setq native-comp-deferred-compilation nil comp-enable-subr-trampolines nil)) ;; Form `native-comp-eln-load-path'. diff --git a/lisp/subr.el b/lisp/subr.el index 6282abc1b16..a56aeab724a 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1894,9 +1894,6 @@ activations. To prevent runaway recursion, use `max-lisp-eval-depth' instead; it will indirectly limit the specpdl stack size as well.") (make-obsolete-variable 'max-specpdl-size nil "29.1") -(make-obsolete-variable 'native-comp-deferred-compilation - 'inhibit-native-compilation "29.1") - ;;;; Alternate names for functions - these are not being phased out. diff --git a/src/comp.c b/src/comp.c index 88b871aaae8..7d67995fa87 100644 --- a/src/comp.c +++ b/src/comp.c @@ -5174,7 +5174,6 @@ maybe_defer_native_compilation (Lisp_Object function_name, return; if (!native_comp_deferred_compilation - || !NILP (Vinhibit_native_compilation) || noninteractive || !NILP (Vpurify_flag) || !COMPILEDP (definition) @@ -5678,13 +5677,6 @@ For internal use. */); doc: /* Non-nil when comp.el can be native compiled. For internal use. */); /* Compiler control customizes. */ - DEFVAR_LISP ("inhibit-native-compilation", Vinhibit_native_compilation, - doc: /* If non-nil, inhibit automatic native compilation of loaded .elc files. - -After compilation, each function definition is updated to the native -compiled one. */); - Vinhibit_native_compilation = Qnil; - DEFVAR_BOOL ("native-comp-deferred-compilation", native_comp_deferred_compilation, doc: /* If non-nil compile loaded .elc files asynchronously.