unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Ihor Radchenko <yantar92@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: bzg@gnu.org, dmitry@gutov.dev, 62762@debbugs.gnu.org
Subject: bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code
Date: Tue, 11 Apr 2023 18:35:51 +0000	[thread overview]
Message-ID: <87pm8a8dx4.fsf@localhost> (raw)
In-Reply-To: <83zg7ealrd.fsf@gnu.org>

Eli Zaretskii <eliz@gnu.org> writes:

>> The fact the Org error is triggered means that Emacs does not re-compile
>> .el files that refer to macros that have been changed.
>
> You know this is not really possible in Emacs.

I don't. Say, why not to store hash of the macro sources in the byte
code and verifying the hash when re-compilation is requested? Though I
am not that much familiar with Emacs source compilation.

>> Macros not being updated, as one may expect, may break the code using
>> old macro expansions. So, I cannot say that Org is wrong complaining
>> about mismatch here. In fact, we already made the check less strict to
>> work around the same issue on ELPA. See
>> https://list.orgmode.org/orgmode/87r10ey8ov.fsf@localhost/ and
>> https://list.orgmode.org/orgmode/87pmfijrvw.fsf@localhost/
>
> How is this different from any other Lisp file in Emacs?  We have
> quite a few that define macros used elsewhere, and we rely on
> byte-compilation during the build to tell us when the old definitions
> get in the way.  We don't forcefully abort the build, just because
> problems _might_ exist.  And people who want to make sure their builds
> are 110% perfect always bootstrap to begin with.  Building a tarball
> also requires a bootstrap, so the chance of these issues slipping
> through cracks are minuscule to say the least.

Sure, in the context of Emacs compilation. The code in question is
mostly aiming at newer Org installed on top of built-in Org. We are
consistently getting issues related to incorrect macro expansion and
mixing different Org versions.

> Anyway, any other words of wisdom?  Like which org/*.el files actually
> need to be recompiled in this case?  Or are you saying all of them
> need to be recompiled?

All of them, because org-assert-version expands into
 (unless (equal "version string" (org-release)) ...)
at compile time. "Version string" contains the return value of
(org-release) for the time the .elc file is compiled.

Note that the reported issue will only happen when Org version string
changes between the builds.

What we might do to work around the problem is detecting Emacs compilation
and disable the check. Is there a way to detect that Emacs source is
being compiled from Elisp?

> I also am not sure I understand the logic of this test: AFAIU it only
> tests the version string, not the actual macros that might have been
> changed.  Are you saying that Org bumps its version string each time
> _any_ Org macro is modified?

No. We originally tested by commit hash. Version string check is a
trade-off between the problem with ELPA builds (see the links in my
previous message) and the need to detect mixed installation problems.

> Also, how about the alternative of including the version string in
> every Org Lisp file that needs to be recompiled when the version
> changes (or the macros change)?  Then recompilation will happen
> automatically, and this problem will go away.  Does this make sense?

No. We will not be able to maintain this manually.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>





  reply	other threads:[~2023-04-11 18:35 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 [this message]
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
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=87pm8a8dx4.fsf@localhost \
    --to=yantar92@posteo.net \
    --cc=62762@debbugs.gnu.org \
    --cc=bzg@gnu.org \
    --cc=dmitry@gutov.dev \
    --cc=eliz@gnu.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 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).