On Fri, Nov 18, 2022 at 3:24 PM Eli Zaretskii wrote: > That is a separate bug, IMO. Is this because in Fload we set 'found' > to the file name of warnings.el/.eln in this case? If so, we should > prevent this nonsense. > The bug is the consequence of maybe_swap_for_eln calling `display-warning', which initiates a recursive Fload while user-init-file is still t, so Fload "records" the current file name. The easiest fix in my view is to use delayed warnings and avoid the recursive Fload. diff --git i/src/lread.c w/src/lread.c index c28324dc35..2a57f72194 100644 --- i/src/lread.c +++ w/src/lread.c @@ -1742,10 +1742,13 @@ maybe_swap_for_eln (bool no_native, Lisp_Object *filename, int *fd, Qnil, Qnil))) return; - 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)); + Vdelayed_warnings_list + = Fcons (list2 + (Qcomp, + CALLN (Fformat, + build_string ("Cannot look up eln " + "file as no source file " + "was found for %s"), + *filename)), + Vdelayed_warnings_list); return; }