all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Lynn Winebarger <owinebar@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel <emacs-devel@gnu.org>
Subject: Re: Objects that can't be purified during dumping
Date: Sun, 7 Aug 2022 07:27:02 -0400	[thread overview]
Message-ID: <CAM=F=bBZ6-mnZ+5XMZEPvQMhB=8TqAGSCOW4-AY3yXjFPEYrwQ@mail.gmail.com> (raw)
In-Reply-To: <jwvwnc2zh26.fsf-monnier+emacs@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2275 bytes --]

On Sun, Jul 24, 2022, 11:07 AM Stefan Monnier <monnier@iro.umontreal.ca>
wrote:

> > changing the c source would require re-native-compiling all the elisp
> files
> > I'm including in the dump,
>
> I thought that was not supposed to be the case (the re-compiling should
> only be needed for *some* changes, tho I'm not exactly clear on what
> those are).


The hash is computed from the "major abi version" constant in the source,
the platform string, the list of subrs installed after the last
"symbols_of" procedure is called in main and (drum roll...) the options to
the configure script, with some modifications.  I haven't found where that
last step is done, so I'm not sure exactly how those are massaged, but at
least the -O and -g flags to gcc appear to be set to -O1 regardless of the
actual flags, so you can debug .elns produced by an optimized emacs.  It
would be nice if the build system facilitated making these multiple
versions, though.
On the other hand, if you do something like copy a configure command like
"../configure --without-native-compilation <other flags>" from the config
log of one build directory to configure in a second build directory, and
just add an option on the end:
""../configure --without-native-compilation <other flags>
--with-native-compilation"
Do your while build, etc, then decide to rebuild with -O0 -g3, but notice
how stupid having contradictory flags looks, so you rebuild using:
"../configure  <other flags>  --with-native-compilation",
Then the hash will be different and you won't be able to load the ELN files
compiled with the first build.
So, there could be some more normalization of the configure options, but
the current approach seems conservative.
I don't know if there is any implicit assumption that the compile is done
by an Emacs with only "loadup" in the dump.  I do know that when I ran the
build using a dump file containing all those additional core libraries,
something had made call-interactively advise itself (directly or
indirectly), so I was getting massive numbers of processes compiling
call_interactively_0 subrs.  So the subrs in the dump might be relevant to
the usability of the resulting ELN file, even though the compile is
otherwise done in a "clean" compile time environment.

Lynn


Lynn

[-- Attachment #2: Type: text/html, Size: 3138 bytes --]

      parent reply	other threads:[~2022-08-07 11:27 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-23 12:19 Objects that can't be purified during dumping Lynn Winebarger
2022-07-23 13:27 ` Eli Zaretskii
2022-07-23 13:59   ` Lynn Winebarger
2022-07-23 15:27     ` Eli Zaretskii
2022-07-23 15:55     ` Stefan Monnier
2022-07-24 12:16       ` Lynn Winebarger
2022-07-24 15:07         ` Stefan Monnier
2022-07-24 15:08           ` Eli Zaretskii
2022-08-07 11:27           ` Lynn Winebarger [this message]

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAM=F=bBZ6-mnZ+5XMZEPvQMhB=8TqAGSCOW4-AY3yXjFPEYrwQ@mail.gmail.com' \
    --to=owinebar@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.