From: Eli Zaretskii <eliz@gnu.org>
To: Juanma Barranquero <lekktu@gmail.com>
Cc: 59334@debbugs.gnu.org, akrl@sdf.org
Subject: bug#59334: 29.0.50; loading native-compiled init file sets user-init-file to .eln
Date: Fri, 18 Nov 2022 09:27:52 +0200 [thread overview]
Message-ID: <83a64od8nb.fsf@gnu.org> (raw)
In-Reply-To: <CAAeL0SSdRjnXFbhUM98kON-s84AP2C=mTnx04czrR11Nj9-NnQ@mail.gmail.com> (message from Juanma Barranquero on Fri, 18 Nov 2022 03:25:34 +0100)
> From: Juanma Barranquero <lekktu@gmail.com>
> Date: Fri, 18 Nov 2022 03:25:34 +0100
> Cc: Andrea Corallo <akrl@sdf.org>, 59334@debbugs.gnu.org
>
> diff --git i/lisp/startup.el w/lisp/startup.el
> index 70267fc857..62984426e5 100644
> --- i/lisp/startup.el
> +++ w/lisp/startup.el
> @@ -1064,7 +1064,11 @@ startup--load-user-init-file
> ;; If we loaded a compiled file, set `user-init-file' to
> ;; the source version if that exists.
> - (when (equal (file-name-extension user-init-file)
> - "elc")
> - (let* ((source (file-name-sans-extension user-init-file))
> + (when (member (file-name-extension user-init-file)
> + '("elc" "eln"))
> + (let* ((source (file-name-sans-extension
> + (or (gethash
> + (file-name-nondirectory user-init-file)
> + comp-eln-to-el-h)
> + user-init-file)))
> (alt (concat source ".el")))
> (setq source (cond ((file-exists-p alt) alt)
I think the call to gethash should only be done if the file has the
.eln extension, otherwise you might have false positives.
The logic should be something like
. if the extension is .eln then
- try to get the corresponding .el file by gethash
- if that fails, leave user-init-file to be the original .eln
file name, perhaps with a warning
- otherwise, set user-init-file to the .el file from gethash
. else <the original logic which yields .el or .elc>
The file-exists-and-is-newer test is not relevant to the .eln case,
because Emacs will not load a .eln file that is outdated wrt its
source, and will not use a .eln file whose source is not available.
Andrea, please correct me if I'm wrong.
next prev parent reply other threads:[~2022-11-18 7:27 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-17 9:28 bug#59334: 29.0.50; loading native-compiled init file sets user-init-file to .eln Juanma Barranquero
2022-11-17 12:07 ` Eli Zaretskii
2022-11-17 13:30 ` Juanma Barranquero
2022-11-17 14:00 ` Eli Zaretskii
2022-11-17 20:04 ` Andrea Corallo
2022-11-17 20:09 ` Eli Zaretskii
2022-11-18 2:25 ` Juanma Barranquero
2022-11-18 2:56 ` Juanma Barranquero
2022-11-18 3:03 ` Juanma Barranquero
2022-11-18 7:50 ` Eli Zaretskii
2022-11-18 7:19 ` Eli Zaretskii
2022-11-18 7:27 ` Eli Zaretskii [this message]
2022-11-18 7:45 ` Juanma Barranquero
2022-11-18 8:46 ` Eli Zaretskii
2022-11-18 9:05 ` Juanma Barranquero
2022-11-18 9:08 ` Juanma Barranquero
2022-11-18 12:33 ` Eli Zaretskii
2022-11-18 12:40 ` Juanma Barranquero
2022-11-18 12:50 ` Eli Zaretskii
2022-11-18 13:03 ` Juanma Barranquero
2022-11-18 20:02 ` Andrea Corallo
2022-11-18 10:39 ` Andrea Corallo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83a64od8nb.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=59334@debbugs.gnu.org \
--cc=akrl@sdf.org \
--cc=lekktu@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.