From: Max Nikulin <manikulin@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Ihor Radchenko <yantar92@posteo.net>,
62762@debbugs.gnu.org, bzg@gnu.org, dmitry@gutov.dev,
Alan Mackenzie <acm@muc.de>, Eli Zaretskii <eliz@gnu.org>
Subject: bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code
Date: Sat, 6 May 2023 13:00:38 +0700 [thread overview]
Message-ID: <1f236996-5f17-3be8-d01c-803e065985f7@gmail.com> (raw)
In-Reply-To: <jwvo7myejmd.fsf-monnier+emacs@gnu.org>
On 06/05/2023 01:17, Stefan Monnier wrote:
> I'll refrain from discussing this here. Incremental recompilation
> problems should be discussed in another bug report, IMO.
I will try to explain why this bug report was caused by issues with
incremental builds.
Original report:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62762#5
> Could someone fix that, so that I don't have to 'make bootstrap' every
> other time after a 'git pull'?
>
> make[3]: Entering directory '/home/dgutov/vc/emacs-master/lisp'
> ELC org/ox.elc
> Warning (emacs): Org version mismatch. Org loading aborted.
It may be a *valid* error, however on minor Org updates it is likely a
false positive.
ox.el has a number of `require's. Byte compilation loaded an .elc file
before it was recompiled with new definition of a macro. Notice that an
.elc file may become stale even if the corresponding .el file has not
changed. The .el file may require macros from other .el (.elc) files and
expand them during compiling.
So incremental build must compile files in certain order. It must take
into account dependencies between .elc and .el files and prevent loading
of stale .elc files.
`load-prefer-newer' can be a workaround only for direct "%.elc: %.el"
dependencies. Transitional dependencies still may cause troubles.
Let's assume that a trouble with cyclic dependencies is a real one (I
have not convinced in that). A way to the correct builds is to
*completely* avoid loading of .elc files during incremental builds. When
only a few files changed then relying purely on .el files should cause
significant performance penalty. Unfortunately it would not work without
describing at least some dependencies. In the `org-assert-version' they
should be at least that all lisp/org/*.elc files depend on
lisp/org/org-version.el and lisp/org/org-macs.el. Without automatic
dependency generation it is a kludge, but it should significantly
alleviate the issue. Grepping org sources for defmacro and adding e.g.
org-element.el dependency will make incremental builds with stale macro
definitions even more rare.
Commits pushed so far trade false positives to false negatives and to
reports of bugs due to "undefined" functions and incorrect signatures to
Org developers and maintainers.
Perhaps `org-assert-version' may be improved, but this report was caused
by broken build rules.
next prev parent reply other threads:[~2023-05-06 6:00 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-10 23:09 bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code Dmitry Gutov
2023-04-11 6:10 ` Eli Zaretskii
2023-04-11 7:18 ` Ihor Radchenko
2023-04-11 8:03 ` Eli Zaretskii
2023-04-11 18:35 ` Ihor Radchenko
2023-04-11 18:51 ` Eli Zaretskii
2023-04-11 18:59 ` Ihor Radchenko
2023-04-11 19:28 ` Eli Zaretskii
2023-04-11 19:37 ` Eli Zaretskii
2023-04-12 9:03 ` Ihor Radchenko
2023-04-12 9:21 ` Eli Zaretskii
2023-04-13 8:34 ` Ihor Radchenko
2023-04-13 8:37 ` Eli Zaretskii
2023-04-13 14:20 ` Ihor Radchenko
2023-04-13 14:55 ` Eli Zaretskii
2023-04-13 15:05 ` Ihor Radchenko
2023-04-15 10:48 ` Eli Zaretskii
2023-04-15 11:36 ` Ihor Radchenko
2023-04-15 11:40 ` Eli Zaretskii
2023-04-15 11:57 ` Ihor Radchenko
2023-04-15 12:08 ` Eli Zaretskii
2023-04-21 11:44 ` Eli Zaretskii
2023-04-21 15:28 ` Ihor Radchenko
2023-04-22 9:49 ` Eli Zaretskii
2023-04-22 12:39 ` Ihor Radchenko
2023-04-22 12:48 ` Eli Zaretskii
2023-04-22 14:32 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-23 8:55 ` Ihor Radchenko
2023-04-24 11:21 ` Eli Zaretskii
2023-04-24 12:29 ` Ihor Radchenko
2023-11-24 17:43 ` Dmitry Gutov
2023-11-24 18:54 ` Eli Zaretskii
2023-11-24 18:56 ` Dmitry Gutov
2023-11-25 7:08 ` Eli Zaretskii
2023-11-25 12:38 ` Dmitry Gutov
2023-11-25 12:59 ` Eli Zaretskii
2023-11-25 13:55 ` Dmitry Gutov
2023-04-22 14:30 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-04-22 14:59 ` Eli Zaretskii
2023-04-23 9:21 ` Ihor Radchenko
2023-05-01 1:48 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-01 10:25 ` Ihor Radchenko
2023-05-01 16:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-02 11:26 ` Ihor Radchenko
2023-05-02 13:12 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-03 10:30 ` Ihor Radchenko
2023-05-03 21:37 ` Alan Mackenzie
2023-05-04 5:35 ` Eli Zaretskii
2023-05-04 14:02 ` Alan Mackenzie
2023-05-04 14:10 ` Eli Zaretskii
2023-05-04 15:31 ` Max Nikulin
2023-05-04 21:53 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-05 4:18 ` Max Nikulin
2023-05-05 5:27 ` Max Nikulin
2023-05-05 6:46 ` Eli Zaretskii
2023-05-05 7:27 ` Max Nikulin
2023-05-05 10:38 ` Eli Zaretskii
2023-05-05 11:20 ` Max Nikulin
2023-05-05 11:33 ` Eli Zaretskii
2023-05-05 15:33 ` Max Nikulin
2023-05-05 15:49 ` Eli Zaretskii
2023-05-05 16:46 ` Max Nikulin
2023-05-05 17:48 ` Eli Zaretskii
2023-05-05 18:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-11 15:14 ` bug#62762: circular dependencies in elisp files and make Max Nikulin
2023-05-11 15:20 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-11 15:59 ` Eli Zaretskii
2023-05-12 14:59 ` Max Nikulin
2023-05-12 15:10 ` Eli Zaretskii
2023-05-12 15:26 ` Max Nikulin
2023-05-12 16:01 ` Eli Zaretskii
2023-05-13 3:08 ` Max Nikulin
2023-05-13 6:50 ` Eli Zaretskii
2023-05-13 7:34 ` Max Nikulin
2023-05-13 8:46 ` Eli Zaretskii
2023-05-13 10:25 ` Max Nikulin
2023-05-13 10:58 ` Eli Zaretskii
2023-05-13 11:21 ` Max Nikulin
2023-05-13 14:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-13 14:48 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-15 10:11 ` Max Nikulin
2023-05-15 11:20 ` Eli Zaretskii
2023-05-15 13:00 ` Max Nikulin
2023-05-15 15:00 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-13 15:43 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-05 14:29 ` bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-05 16:37 ` Max Nikulin
2023-05-05 18:17 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-06 5:25 ` Max Nikulin
2023-05-06 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-07 16:23 ` Max Nikulin
2023-05-07 21:57 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-08 10:05 ` Ihor Radchenko
2023-05-10 14:52 ` Max Nikulin
2023-06-23 12:02 ` Ihor Radchenko
2023-06-25 14:37 ` Max Nikulin
2023-06-27 10:59 ` Ihor Radchenko
2023-06-27 11:40 ` Eli Zaretskii
2023-06-27 12:08 ` Ihor Radchenko
2023-06-27 12:12 ` Eli Zaretskii
2023-06-27 12:30 ` Ihor Radchenko
2023-06-27 12:51 ` Eli Zaretskii
2023-06-27 16:11 ` Max Nikulin
2023-07-04 12:20 ` Ihor Radchenko
2023-05-06 6:00 ` Max Nikulin [this message]
2023-05-06 7:51 ` bug#62762: Incremental builds and Lisp files dependencies " Eli Zaretskii
2023-05-06 15:50 ` Max Nikulin
2023-05-06 16:26 ` Eli Zaretskii
2023-05-07 2:45 ` Max Nikulin
2023-05-07 5:34 ` Eli Zaretskii
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1f236996-5f17-3be8-d01c-803e065985f7@gmail.com \
--to=manikulin@gmail.com \
--cc=62762@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=bzg@gnu.org \
--cc=dmitry@gutov.dev \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=yantar92@posteo.net \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).