From: Eli Zaretskii <eliz@gnu.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: emacs-devel@gnu.org
Subject: Re: *-loaddefs.el files are not byte-compiled after being regenerated
Date: Thu, 04 Aug 2022 20:18:13 +0300 [thread overview]
Message-ID: <834jys2ai2.fsf@gnu.org> (raw)
In-Reply-To: <87v8r8dk6n.fsf@gnus.org> (message from Lars Ingebrigtsen on Thu, 04 Aug 2022 18:53:36 +0200)
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: emacs-devel@gnu.org
> Date: Thu, 04 Aug 2022 18:53:36 +0200
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Something's wrong with the Makefile rules for these files: I see quite
> > a lot that they are regenerated, but the results are not subsequently
> > byte-compiled, causing warnings when I start Emacs after building it.
>
> Sounds like the loaddefs files are being generated too early in some
> circumstances to be picked up by compile-main?
>
> Do you have a recipe to reproduce this problem?
Unfortunately, no.
I use "make -j4", maybe that somehow triggers the problem.
Another thing that perhaps is relevant is that the generation of the
*-loaddefs.el files happens in parallel with (and close to the end of)
the byte-compilation of updated *.el files. Here's an example:
Finding pointers to doc strings...
Finding pointers to doc strings...done
Growing hash table to: 120000
Pure-hashed: 18227 strings, 5621 vectors, 50818 conses, 5088 bytecodes, 330 others
Dumping under the name emacs.pdmp
Dumping fingerprint: 4d49c5e06c09d7ec789816d97b378812d91a300716e9553969c02f8f43918a9d
Dump complete
Byte counts: header=100 hot=7205544 discardable=130440 cold=3728296
Reloc counts: hot=439088 discardable=5359
Adding name emacs-29.0.50.1611.exe
Adding name emacs-29.0.50.1611.pdmp
cp -f emacs.pdmp bootstrap-emacs.pdmp
make[1]: Leaving directory `/d/gnu/git/emacs/trunk/src'
make -C lisp all
make[1]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
make -C ../leim all EMACS="../src/emacs.exe"
make -C ../admin/grammars all EMACS="../../src/emacs.exe"
make[2]: Entering directory `/d/gnu/git/emacs/trunk/admin/grammars'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/admin/grammars'
make[2]: Entering directory `/d/gnu/git/emacs/trunk/leim'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/leim'
GEN autoloads
rm ./emacs-lisp/autoload.elc
rm ./net/netrc.elc
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
make[2]: Nothing to be done for `compile-targets'.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
Source file `d:/gnu/git/emacs/trunk/lisp/emacs-lisp/loaddefs-gen.el' newer than byte-compiled file; using older file
INFO Scraping files for loaddefs...
make[2]: Entering directory `/d/gnu/git/emacs/trunk/doc/misc'
make[2]: `org.texi' is up to date.
make[2]: `modus-themes.texi' is up to date.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/doc/misc'
make[2]: Entering directory `/d/gnu/git/emacs/trunk/leim'
make[2]: Nothing to be done for `generate-ja-dic'.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/leim'
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
make[2]: Nothing to be done for `compile-targets'.
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
INFO Scraping files for loaddefs...10%
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
ELC auth-source.elc
ELC cus-dep.elc
ELC dired-aux.elc
ELC dired-loaddefs.elc
ELC find-dired.elc
ELC ibuffer-loaddefs.elc
ELC makesum.elc
ELC ps-print-loaddefs.elc
INFO Scraping files for loaddefs...20%
ELC calc/calc-loaddefs.elc
ELC calendar/cal-loaddefs.elc
ELC calendar/diary-loaddefs.elc
ELC calendar/holiday-loaddefs.elc
ELC cedet/ede/loaddefs.elc
ELC cedet/semantic/loaddefs.elc
ELC cedet/srecode/loaddefs.elc
INFO Scraping files for loaddefs...30%
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
ELC emacs-lisp/checkdoc.elc
ELC emacs-lisp/cl-loaddefs.elc
ELC emacs-lisp/loaddefs-gen.elc
INFO Scraping files for loaddefs...40%
ELC emacs-lisp/package.elc
ELC erc/erc-loaddefs.elc
ELC eshell/em-extpipe.elc
ELC eshell/esh-groups.elc
ELC gnus/nnimap.elc
INFO Scraping files for loaddefs...50%
ELC gnus/nntp.elc
INFO Scraping files for loaddefs...60%
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
INFO Scraping files for loaddefs...70%
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
ELC mh-e/mh-loaddefs.elc
ELC net/eww.elc
ELC net/tramp-adb.elc
ELC net/tramp-loaddefs.elc
INFO Scraping files for loaddefs...80%
ELC net/tramp-sh.elc
ELC net/tramp.elc
ELC obsolete/autoload.elc
ELC obsolete/netrc.elc
INFO Scraping files for loaddefs...90%
ELC org/ob-lilypond.elc
ELC org/org-loaddefs.elc
ELC progmodes/meta-mode.elc
INFO Scraping files for loaddefs...100%
INFO Scraping files for loaddefs...done
GEN textmodes/reftex-loaddefs.el
GEN textmodes/texinfo-loaddefs.el
GEN org/org-loaddefs.el
GEN net/tramp-loaddefs.el
GEN mh-e/mh-loaddefs.el
GEN eshell/esh-groups.el
GEN erc/erc-loaddefs.el
GEN emacs-lisp/cl-loaddefs.el
GEN cedet/srecode/loaddefs.el
GEN cedet/semantic/loaddefs.el
GEN cedet/ede/loaddefs.el
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
GEN calendar/diary-loaddefs.el
GEN calendar/holiday-loaddefs.el
GEN calendar/cal-loaddefs.el
GEN calc/calc-loaddefs.el
GEN ps-print-loaddefs.el
GEN ibuffer-loaddefs.el
GEN dired-loaddefs.el
make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
ELC textmodes/reftex-loaddefs.elc
ELC textmodes/texinfo-loaddefs.elc
make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
GEN loaddefs.el
make[1]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
make -C doc/misc info
make[1]: Entering directory `/d/gnu/git/emacs/trunk/doc/misc'
make[1]: Nothing to be done for `info'.
make[1]: Leaving directory `/d/gnu/git/emacs/trunk/doc/misc'
Shouldn't the loaddefs files be the dependency of every .elc file?
next prev parent reply other threads:[~2022-08-04 17:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-04 16:49 *-loaddefs.el files are not byte-compiled after being regenerated Eli Zaretskii
2022-08-04 16:53 ` Lars Ingebrigtsen
2022-08-04 16:56 ` Lars Ingebrigtsen
2022-08-04 17:10 ` Lars Ingebrigtsen
2022-08-04 17:22 ` Eli Zaretskii
2022-08-04 17:18 ` Eli Zaretskii [this message]
2022-08-04 22:13 ` Stefan Monnier
2022-08-04 22:26 ` Lars Ingebrigtsen
2022-08-04 22:41 ` Stefan Monnier
2022-08-04 22:47 ` Lars Ingebrigtsen
2022-08-04 22:56 ` Stefan Monnier
2022-08-05 11:52 ` Lars Ingebrigtsen
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=834jys2ai2.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=larsi@gnus.org \
/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.