mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 01:34:21 +00:00
Do not defer compilation when bytecode is explicitly requested (bug#46617)
* src/comp.c (maybe_defer_native_compilation): Check if the file is registered in 'V_comp_no_native_file_h'. (syms_of_comp): 'V_comp_no_native_file_h' new global. * src/lread.c (maybe_swap_for_eln): Register files in 'V_comp_no_native_file_h'. * lisp/faces.el (tty-run-terminal-initialization): Do not explicitly load .elc file to not exclude .eln being loaded in place.
This commit is contained in:
parent
515378434a
commit
613caa9527
3 changed files with 17 additions and 2 deletions
|
|
@ -2244,7 +2244,8 @@ If you set `term-file-prefix' to nil, this function does nothing."
|
|||
(let ((file (locate-library (concat term-file-prefix type))))
|
||||
(and file
|
||||
(or (assoc file load-history)
|
||||
(load file t t)))))
|
||||
(load (file-name-sans-extension file)
|
||||
t t)))))
|
||||
type)
|
||||
;; Next, try to find a matching initialization function, and call it.
|
||||
(tty-find-type #'(lambda (type)
|
||||
|
|
|
|||
10
src/comp.c
10
src/comp.c
|
|
@ -4689,7 +4689,8 @@ maybe_defer_native_compilation (Lisp_Object function_name,
|
|||
|| !NILP (Vpurify_flag)
|
||||
|| !COMPILEDP (definition)
|
||||
|| !STRINGP (Vload_true_file_name)
|
||||
|| !suffix_p (Vload_true_file_name, ".elc"))
|
||||
|| !suffix_p (Vload_true_file_name, ".elc")
|
||||
|| !NILP (Fgethash (Vload_true_file_name, V_comp_no_native_file_h, Qnil)))
|
||||
return;
|
||||
|
||||
Lisp_Object src =
|
||||
|
|
@ -5373,6 +5374,13 @@ This is used to prevent double trampoline instantiation but also to
|
|||
protect the trampolines against GC. */);
|
||||
Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table);
|
||||
|
||||
DEFVAR_LISP ("comp-no-native-file-h", V_comp_no_native_file_h,
|
||||
doc: /* Files for which no deferred compilation has to
|
||||
be performed because the bytecode version was explicitly requested by
|
||||
the user during load.
|
||||
For internal use. */);
|
||||
V_comp_no_native_file_h = CALLN (Fmake_hash_table, QCtest, Qequal);
|
||||
|
||||
Fprovide (intern_c_string ("nativecomp"), Qnil);
|
||||
#endif /* #ifdef HAVE_NATIVE_COMP */
|
||||
|
||||
|
|
|
|||
|
|
@ -1655,6 +1655,12 @@ maybe_swap_for_eln (bool no_native, Lisp_Object *filename, int *fd,
|
|||
#ifdef HAVE_NATIVE_COMP
|
||||
struct stat eln_st;
|
||||
|
||||
if (no_native
|
||||
|| load_no_native)
|
||||
Fputhash (*filename, Qt, V_comp_no_native_file_h);
|
||||
else
|
||||
Fremhash (*filename, V_comp_no_native_file_h);
|
||||
|
||||
if (no_native
|
||||
|| load_no_native
|
||||
|| !suffix_p (*filename, ".elc"))
|
||||
|
|
|
|||
Loading…
Reference in a new issue