unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Lynn Winebarger <owinebar@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Regression in dump-emacs-portable
Date: Thu, 16 Feb 2023 18:45:07 -0500	[thread overview]
Message-ID: <CAM=F=bCK7cMQERgwX2jfAMmRmD4cAEnNw8+yyuiDLfS2jnMgqA@mail.gmail.com> (raw)
In-Reply-To: <83r0up39qe.fsf@gnu.org>

On Thu, Feb 16, 2023 at 10:34 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > From: Lynn Winebarger <owinebar@gmail.com>
> > Date: Thu, 16 Feb 2023 10:05:00 -0500
> > Cc: emacs-devel <emacs-devel@gnu.org>
> >
> > I do see something in the redumped emacs that seems like a bug to me.  The process I use for creating the
> > dump uses the -Q flag.  But some of the settings I see in "emacs -Q --dump-file ..." are not the ones I see
> > with just "emacs -Q".  Some are pretty basic - menu-bar-mode, tool-bar-mode, global-font-lock-mode,
> > transient-mark-mode are all nil in the redumped process but not the baseline.
>
> That is exactly the problem with re-dumping: stuff that was
> initialized on the first start gets dumped, and then works differently
> when Emacs is restarted from the second dump.

That appears to be a consequence of setting
custom-delayed-init-variables to t in startup, without saving a copy
to be restored by an after-pdump-load-hook.  Those modes have an
init-value expression involving "(not noninteractive)"  that is
evaluated during batch mode startup but not in the post-redump
startup.

> Figuring this out is the main part of the job of enabling re-dumping.
>
re-dumping in 28.2 works well enough to be useful.  At least I can
explicitly set the custom-delayed-init-variables by setting a hook,
and various kludges to make things work.
 The dump procedure just failing in 29/30 is much more problematic for
me.  I only mentioned the failures with the libraries included in
emacs, but libraries from packages that previously dumped just fine
also fail.  Starting up with 2200 loaded libraries is much faster
after redumping in 28.2.

> > A general test would be load the additional files to be dumped, write out all the symbol properties, variable
> > values, and function values, then load the dump file and compare everything with equal, including the set of
> > symbols, variables and functions defined.
> > Is it fair to say that is the correct expectation of the dumping procedure?
>
> I don't think this will work, because at least the defcustoms are
> evaluated upon each startup, and a defcustom can have a setter
> function.  And there are probably more features which will get in the
> way.
I suppose there are two versions of this test.  One is, what is the
correct behavior, and has it been achieved?  The regression version
is,  is the current behavior no more incorrect than the reference
version, i.e. correct for all elements of the lisp heap for which the
reference version is correct?

Lynn



  reply	other threads:[~2023-02-16 23:45 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13  0:51 Regression in dump-emacs-portable Lynn Winebarger
2023-02-14  1:13 ` Lynn Winebarger
2023-02-14 14:23   ` Eli Zaretskii
2023-02-14 23:26     ` Lynn Winebarger
2023-02-15 12:42       ` Eli Zaretskii
2023-02-16  9:31         ` Lynn Winebarger
2023-02-16  9:54           ` Lynn Winebarger
2023-02-16 15:05             ` Lynn Winebarger
2023-02-16 15:34               ` Eli Zaretskii
2023-02-16 23:45                 ` Lynn Winebarger [this message]
2023-02-17 13:22                   ` Lynn Winebarger
2023-02-17 14:31                     ` Eli Zaretskii
2023-02-17 23:44                       ` Lynn Winebarger
2023-02-18  7:07                         ` Eli Zaretskii
2023-02-21 14:21                           ` Lynn Winebarger
2023-02-23  2:41                             ` Lynn Winebarger
2023-02-23 13:21                 ` Lynn Winebarger
2023-02-16 15:46           ` Eli Zaretskii
2023-02-17  1:29             ` Lynn Winebarger
2023-02-17  3:19               ` Lynn Winebarger
2023-02-17  4:10               ` Lynn Winebarger
2023-02-17  5:21                 ` Po Lu
2023-02-17 12:57                   ` Lynn Winebarger
2023-02-23 15:08 ` Gregory Heytings
2023-02-23 22:32   ` Lynn Winebarger
2023-02-25  4:11     ` Richard Stallman
2023-02-25  4:11     ` Richard Stallman

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='CAM=F=bCK7cMQERgwX2jfAMmRmD4cAEnNw8+yyuiDLfS2jnMgqA@mail.gmail.com' \
    --to=owinebar@gmail.com \
    --cc=eliz@gnu.org \
    --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).