aboutsummaryrefslogtreecommitdiffstats
path: root/src/comp.c
diff options
context:
space:
mode:
authorAndrea Corallo2021-03-31 14:49:36 +0200
committerAndrea Corallo2021-03-31 19:56:10 +0200
commit613caa9527ef56fb9b810d2b9478cbe9784baca0 (patch)
treef8728f743ec52298e8680355eb0f6a8f0bf46134 /src/comp.c
parent515378434a44b9979e8c8a6e04203695095bdc40 (diff)
downloademacs-613caa9527ef56fb9b810d2b9478cbe9784baca0.tar.gz
emacs-613caa9527ef56fb9b810d2b9478cbe9784baca0.zip
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.
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/comp.c b/src/comp.c
index 857f798a8d8..b286f6077f3 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4689,7 +4689,8 @@ maybe_defer_native_compilation (Lisp_Object function_name,
4689 || !NILP (Vpurify_flag) 4689 || !NILP (Vpurify_flag)
4690 || !COMPILEDP (definition) 4690 || !COMPILEDP (definition)
4691 || !STRINGP (Vload_true_file_name) 4691 || !STRINGP (Vload_true_file_name)
4692 || !suffix_p (Vload_true_file_name, ".elc")) 4692 || !suffix_p (Vload_true_file_name, ".elc")
4693 || !NILP (Fgethash (Vload_true_file_name, V_comp_no_native_file_h, Qnil)))
4693 return; 4694 return;
4694 4695
4695 Lisp_Object src = 4696 Lisp_Object src =
@@ -5373,6 +5374,13 @@ This is used to prevent double trampoline instantiation but also to
5373protect the trampolines against GC. */); 5374protect the trampolines against GC. */);
5374 Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table); 5375 Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table);
5375 5376
5377 DEFVAR_LISP ("comp-no-native-file-h", V_comp_no_native_file_h,
5378 doc: /* Files for which no deferred compilation has to
5379be performed because the bytecode version was explicitly requested by
5380the user during load.
5381For internal use. */);
5382 V_comp_no_native_file_h = CALLN (Fmake_hash_table, QCtest, Qequal);
5383
5376 Fprovide (intern_c_string ("nativecomp"), Qnil); 5384 Fprovide (intern_c_string ("nativecomp"), Qnil);
5377#endif /* #ifdef HAVE_NATIVE_COMP */ 5385#endif /* #ifdef HAVE_NATIVE_COMP */
5378 5386