unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Daniel Colascione" <dancol@dancol.org>
To: "Alan Mackenzie" <acm@muc.de>
Cc: Paul Eggert <eggert@cs.ucla.edu>,
	Daniel Colascione <dancol@dancol.org>,
	emacs-devel@gnu.org
Subject: Re: CHECK_STRUCTS/dmpstruct.h mechanism is broken.
Date: Wed, 10 Apr 2019 13:11:05 -0700	[thread overview]
Message-ID: <52731970482b0b4d53b89d8f187bcc2a.squirrel@dancol.org> (raw)
In-Reply-To: <20190410194525.GB4009@ACM>

> Hello, Paul.
>
> On Wed, Apr 10, 2019 at 11:05:02 -0700, Paul Eggert wrote:
>> On 4/10/19 9:22 AM, Alan Mackenzie wrote:
>> > All that was needed to disable it was a single line change to set
>> > CHECK_STRUCTS to zero.
>
>> That would also have sufficed, but the code clutter (and slowdown in the
>> build due to the computation of hashes which forces that part of the
>> build to be sequential) was also annoying. If you really want it we can
>> bring back the mechanism (with CHECK_STRUCTS off by default please!),
>> though I'd rather not - see below.
>
> According to Daniel (and my experience backs it up), the problems
> CHECK_STRUCTS detects happen when merging master into a branch.  I'm not
> sure you do such merges much.  But if you are making frequent changes to
> the structures guarded by the mechanism, having deleted that mechanism,
> you are saving effort for yourself, but imposing extra effort on other
> people.
>
>> > it was of use to me recently when it reminded me to
>> > amend dump_subr after extending struct subr.
>> I didn't observe that in master - presumably this was in some
>> experimental branch? In master, dump_subr is currently the same as it
>> was when the pdumper was installed.
>
> Naturally.  I don't change basic structures in master without (usually
> extensive) discussion on emacs-devel.  The changes were in branch
> scratch/accurate-warning-pos.  The hashes were helpful in making these
> changes.
>
>> Before making the recent change, I reviewed all the changes made to
>> pdumper.c in master, and observed none where the hashes helped and
>> several where they hurt. Since the portable dumper was added I have made
>> four commits that involved the hashes, and the hashes only got into my
>> way and slowed me down.
>
> The hashes do slow us down, yes.  But not really by very much, IMAO.
> For example I timed make dmpstruct.h, and it only took 0.16s.  The extra
> time taken in a build can't be more than a very small number of seconds.
>
> Having a build aborted by CHECK_STRUCTS, and having manually to change
> the hashes in pdumper.c is what takes the time.  But really, how often
> are we changing those structures of an evening?
>
>> You made one commit (9c0fa1172fd987a8f23b115145270383a11c12fc) that
>> involved the buffer.h hash, and portions of that commit were
>> mistakenly pushed in pdumper.c's previous commit so the hashes didn't
>> seem to have helped there.
>
> That was actually Eli's commit.
>
>> The only other persons to make hash-related commits to pdumper.c were
>> Alan and Stefan, and the hashes didn't help there either.
>
> I think the hashes are a hindrance when developing on master, but a help
> on branches (when merging from master).
>
>> As the hashes get in the way of ordinary development (mostly affecting
>> me) and don't seem to help in practice, I really want them to go.
>
> I think I would prefer the hashes to stay, but I can see the other side
> of the argument, too.

What would make the hashes easier to deal with? Some make target for
updating them automatically? An easier way to disable the check at
configure time? Transformation into a prominent runtime warning instead of
a build break?




  reply	other threads:[~2019-04-10 20:11 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-28 20:21 CHECK_STRUCTS/dmpstruct.h mechanism is broken Alan Mackenzie
2019-02-28 20:55 ` Eli Zaretskii
2019-02-28 20:59 ` Alan Mackenzie
2019-03-01  7:31   ` Eli Zaretskii
2019-03-01 13:09     ` Alan Mackenzie
2019-03-05  2:17   ` Paul Eggert
2019-04-09 22:47     ` Paul Eggert
2019-04-10 13:12       ` Andy Moreton
2019-04-10 14:59         ` Andy Moreton
2019-04-10 17:36         ` Paul Eggert
2019-04-10 19:26           ` Andy Moreton
2019-04-10 19:43             ` Daniel Colascione
2019-04-10 16:22       ` Alan Mackenzie
2019-04-10 18:05         ` Paul Eggert
2019-04-10 19:45           ` Alan Mackenzie
2019-04-10 20:11             ` Daniel Colascione [this message]
2019-04-11  4:11               ` Paul Eggert
2019-04-15 12:36                 ` Andy Moreton
2019-04-15 15:32                   ` Andy Moreton
2019-04-15 15:53                     ` Paul Eggert
2019-04-11 13:13               ` Stefan Monnier
2019-04-11  4:17             ` Paul Eggert
2019-04-10 18:47         ` Daniel Colascione
2019-04-10 18:58           ` Paul Eggert
2019-04-10 19:02             ` Daniel Colascione
2019-04-10 19:22             ` Eli Zaretskii
2019-04-11  9:35             ` Robert Pluim
2019-04-11 18:31               ` Paul Eggert
2019-04-11 19:15                 ` Eli Zaretskii
2019-04-11 22:13                   ` Daniel Colascione
2019-04-12  6:44                     ` Eli Zaretskii
2019-04-11 22:23                   ` Paul Eggert
2019-04-11 22:26                     ` Daniel Colascione
2019-04-11 22:38                       ` Paul Eggert
2019-04-12  6:39                     ` Eli Zaretskii
2019-04-12 19:40                       ` Paul Eggert
2019-04-13  9:36                         ` Eli Zaretskii
2019-04-14  2:52                           ` Paul Eggert
2019-04-12 12:21                     ` Andy Moreton
2019-04-12 13:37                     ` Alan Mackenzie
2019-04-12 13:55                       ` Eli Zaretskii
2019-04-12 13:58                       ` Noam Postavsky
2019-04-13 14:06                         ` Alan Mackenzie
2019-04-13 14:46                           ` About ./configure --cache-file (WAS: CHECK_STRUCTS/dmpstruct.h mechanism is broken.) Noam Postavsky
2019-04-14  2:44                             ` Paul Eggert
2019-04-14  3:26                               ` Daniel Colascione
2019-04-14  3:49                                 ` Noam Postavsky
2019-04-14  9:45                               ` Alan Mackenzie
2019-04-14 14:08                                 ` Eli Zaretskii
2019-04-14 14:44                                   ` Noam Postavsky
2019-04-14 14:53                                     ` Eli Zaretskii
2019-04-13  8:11                     ` CHECK_STRUCTS/dmpstruct.h mechanism is broken Achim Gratz
2019-04-14  2:52                       ` Paul Eggert
2019-04-14  3:28                         ` Daniel Colascione
2019-04-14  7:22                         ` Achim Gratz
2019-04-14 23:29                           ` Paul Eggert
2019-04-15 11:31                             ` Alan Mackenzie
2019-04-15 14:14                               ` Paul Eggert
2019-04-15 18:11                             ` Richard Stallman
2019-04-16 18:10                               ` Paul Eggert
2019-04-22  2:18                                 ` Richard Stallman
2019-04-22  4:07                                   ` Paul Eggert
2019-04-23  1:41                                     ` Richard Stallman
2019-04-23  3:48                                       ` Paul Eggert
2019-04-23  6:25                                         ` Eli Zaretskii
2019-04-23 16:28                                           ` Paul Eggert
2019-04-23 17:08                                             ` Eli Zaretskii
2019-04-23 17:19                                             ` Stefan Monnier
2019-04-24  2:26                                             ` Richard Stallman
2019-04-15  3:36                         ` Richard Stallman
2019-04-15  5:30                           ` Paul Eggert
2019-04-11 19:55                 ` Achim Gratz
2019-04-11 22:10                   ` Daniel Colascione
2019-04-11 22:47                     ` Paul Eggert
2019-04-11 22:44                   ` Paul Eggert
2019-04-12 17:02                     ` Daniele Nicolodi
2019-04-13  8:26                     ` Achim Gratz

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=52731970482b0b4d53b89d8f187bcc2a.squirrel@dancol.org \
    --to=dancol@dancol.org \
    --cc=acm@muc.de \
    --cc=eggert@cs.ucla.edu \
    --cc=emacs-devel@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).