aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrea Corallo2020-08-16 14:33:25 +0200
committerAndrea Corallo2020-08-17 18:04:23 +0200
commitda54406077c5facd7187aa17c9b4f5f4ddf0e233 (patch)
treea80e0d6fa5f327cb6f61afaa38137d52e4e059a4 /src
parent171db3110159d95803dea13c4ee7bca4a795747b (diff)
downloademacs-da54406077c5facd7187aa17c9b4f5f4ddf0e233.tar.gz
emacs-da54406077c5facd7187aa17c9b4f5f4ddf0e233.zip
Allow for native compiling .el.gz files
This is needed for installed instances compiled with NATIVE_FAST_BOOT * src/comp.c (maybe_defer_native_compilation): Search for .el.gz too as a source if the .el is not found. (Fcomp_el_to_eln_filename): Remove the .gz in case to generate the hash. * lisp/emacs-lisp/comp.el (comp-valid-source-re): New defconst. (comp-run-async-workers, native-compile-async): Make use of `comp-valid-source-re'.
Diffstat (limited to 'src')
-rw-r--r--src/comp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/comp.c b/src/comp.c
index d42bb4f8eb5..f4111e2a291 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -3867,6 +3867,8 @@ If BASE-DIR is nil use the first entry in `comp-eln-load-path'. */)
3867 (Lisp_Object file_name, Lisp_Object base_dir) 3867 (Lisp_Object file_name, Lisp_Object base_dir)
3868{ 3868{
3869 CHECK_STRING (file_name); 3869 CHECK_STRING (file_name);
3870 if (suffix_p (file_name, ".gz"))
3871 file_name = Fsubstring (file_name, Qnil, make_fixnum (-3));
3870 file_name = Fexpand_file_name (file_name, Qnil); 3872 file_name = Fexpand_file_name (file_name, Qnil);
3871 Lisp_Object hashed = Fsubstring (comp_hash_string (file_name), Qnil, 3873 Lisp_Object hashed = Fsubstring (comp_hash_string (file_name), Qnil,
3872 make_fixnum (ELN_FILENAME_HASH_LEN)); 3874 make_fixnum (ELN_FILENAME_HASH_LEN));
@@ -4494,7 +4496,11 @@ maybe_defer_native_compilation (Lisp_Object function_name,
4494 concat2 (CALL1I (file-name-sans-extension, Vload_true_file_name), 4496 concat2 (CALL1I (file-name-sans-extension, Vload_true_file_name),
4495 build_pure_c_string (".el")); 4497 build_pure_c_string (".el"));
4496 if (NILP (Ffile_exists_p (src))) 4498 if (NILP (Ffile_exists_p (src)))
4497 return; 4499 {
4500 src = concat2 (src, build_pure_c_string (".gz"));
4501 if (NILP (Ffile_exists_p (src)))
4502 return;
4503 }
4498 4504
4499 /* This is to have deferred compilaiton able to compile comp 4505 /* This is to have deferred compilaiton able to compile comp
4500 dependecies breaking circularity. */ 4506 dependecies breaking circularity. */