unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Max Nikulin <manikulin@gmail.com>
Cc: yantar92@posteo.net, 62762@debbugs.gnu.org, bzg@gnu.org,
	dmitry@gutov.dev, monnier@iro.umontreal.ca, acm@muc.de
Subject: bug#62762: Incremental builds and Lisp files dependencies pulling a new version of the code
Date: Sat, 06 May 2023 10:51:41 +0300	[thread overview]
Message-ID: <83h6sphp82.fsf@gnu.org> (raw)
In-Reply-To: <1f236996-5f17-3be8-d01c-803e065985f7@gmail.com> (message from Max Nikulin on Sat, 6 May 2023 13:00:38 +0700)

> Date: Sat, 6 May 2023 13:00:38 +0700
> Cc: Ihor Radchenko <yantar92@posteo.net>, Eli Zaretskii <eliz@gnu.org>,
>  bzg@gnu.org, dmitry@gutov.dev, 62762@debbugs.gnu.org,
>  Alan Mackenzie <acm@muc.de>
> From: Max Nikulin <manikulin@gmail.com>
> 
> 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.

I've started a new thread, because I agree with Stefan: this is a
separate issue.  Please reply with this new thread's Subject.

> 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.

Exactly.  And please don't forget that quite a few files are
preloaded, so using only *.el means to preload only the *.el files,
which will result in a significantly slower bootstrap-emacs binary,
and the build will become annoyingly slow, for no good reason.

> 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.

This doesn't really work, not as long as we use Make: some *.elc files
might not exist yet, for whatever reasons, so Make will try to
generate them first, thus disrupting the order of generation that you
will try to encode in the dependencies.  We already tried that, and it
didn't work, not even just for Org.

> 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.

Those commits only affect byte compilation of Org as part of building
Emacs, so I see no reason why they should cause the above issues for
Orge developers.

> Perhaps `org-assert-version' may be improved, but this report was caused 
> by broken build rules.

The bug#62762 was reported because Org behaved unlike any other Lisp
package in Emacs.  We have other packages that define macros used in
many other *.el files, and none of them does the version-check like
Org did.  The problems with making incompatible changes in one or more
of the macros are well known to Emacs developers who rebuild Emacs
frequently, and we have ways to deal with them.  Some of those ways
(the simplest ones) are encoded in the top-level Makefile, see
ADVICE-ON-FAILURE there.  There are others, more subtle ones, for
those, like myself, who don't bootstrap, ever, except the first time a
fresh repository is cloned.

That Org behaved in a stark different manner was therefore an
unpleasant annoyance, so we now fixed that by making Org behave in
this regard like any other Lisp package in Emacs -- but only when
Emacs is built, because the knob which forces this behavior is off by
default, and is only turned on by lisp/Makefile in the Emacs tree.





  reply	other threads:[~2023-05-06  7:51 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
2023-05-06  7:51                                       ` Eli Zaretskii [this message]
2023-05-06 15:50                                         ` bug#62762: Incremental builds and Lisp files dependencies " 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=83h6sphp82.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=62762@debbugs.gnu.org \
    --cc=acm@muc.de \
    --cc=bzg@gnu.org \
    --cc=dmitry@gutov.dev \
    --cc=manikulin@gmail.com \
    --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).