1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-07 08:00:48 -08:00

Issue a warning when eln look-up fails due to missing .el source file.

* lisp/emacs-lisp/comp.el (comp-warning-on-missing-source): New
	customize.
	* src/lread.c (maybe_swap_for_eln): Issue a warning when eln
	look-up fails due to missing .el source file.
	* src/comp.c (syms_of_comp): Define
	'Qcomp_warning_on_missing_source'.
This commit is contained in:
Andrea Corallo 2021-04-01 14:27:12 +02:00
parent 8d550700c5
commit dc393517ca
3 changed files with 19 additions and 3 deletions

View file

@ -180,6 +180,13 @@ the .eln output directory."
:type 'boolean
:version "28.1")
(defcustom comp-warning-on-missing-source t
"Emit a warning if a byte-code file being loaded has no corresponding source.
The source file is necessary for native code file look-up and deferred
compilation mechanism."
:type 'boolean
:version "28.1")
(defvar no-native-compile nil
"Non-nil to prevent native-compiling of Emacs Lisp code.
Note that when `no-byte-compile' is set to non-nil it overrides the value of

View file

@ -5254,7 +5254,8 @@ compiled one. */);
DEFSYM (Qlate, "late");
DEFSYM (Qlambda_fixup, "lambda-fixup");
DEFSYM (Qgccjit, "gccjit");
DEFSYM (Qcomp_subr_trampoline_install, "comp-subr-trampoline-install")
DEFSYM (Qcomp_subr_trampoline_install, "comp-subr-trampoline-install");
DEFSYM (Qcomp_warning_on_missing_source, "comp-warning-on-missing-source");
/* To be signaled by the compiler. */
DEFSYM (Qnative_compiler_error, "native-compiler-error");

View file

@ -1674,8 +1674,16 @@ maybe_swap_for_eln (bool no_native, Lisp_Object *filename, int *fd,
{
src_name = concat2 (src_name, build_string (".gz"));
if (NILP (Ffile_exists_p (src_name)))
/* Can't find the corresponding source file. */
return;
{
if (!NILP (find_symbol_value (Qcomp_warning_on_missing_source)))
call2 (intern_c_string ("display-warning"),
Qcomp,
CALLN (Fformat,
build_string ("Cannot look-up eln file as no source "
"file was found for %s"),
*filename));
return;
}
}
Lisp_Object eln_rel_name = Fcomp_el_to_eln_rel_filename (src_name);