diff options
| author | Andrea Corallo | 2020-08-16 14:33:25 +0200 |
|---|---|---|
| committer | Andrea Corallo | 2020-08-17 18:04:23 +0200 |
| commit | da54406077c5facd7187aa17c9b4f5f4ddf0e233 (patch) | |
| tree | a80e0d6fa5f327cb6f61afaa38137d52e4e059a4 /src | |
| parent | 171db3110159d95803dea13c4ee7bca4a795747b (diff) | |
| download | emacs-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.c | 8 |
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. */ |