unofficial mirror of emacs-devel@gnu.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>,
	Michael Albinus <michael.albinus@gmx.de>,
	 emacs-devel <emacs-devel@gnu.org>
Subject: Working fully native-compiled "mega dump" (was Re: Loading tramp for dump goes into infinite regress)
Date: Sat, 6 Aug 2022 16:23:30 -0400	[thread overview]
Message-ID: <CAM=F=bChdteT80ixz9wqAn1o=gTE7XVvRyYKiEQ1_LzoYq3oHA@mail.gmail.com> (raw)
In-Reply-To: <CAM=F=bCwerg1-94oBkmr-ijKz-nNkQ2N93rc19aD-KM2W-MD-A@mail.gmail.com>

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

On Sat, Aug 6, 2022, 11:39 AM Lynn Winebarger <owinebar@gmail.com> wrote:

> On Sat, Aug 6, 2022, 8:57 AM Lynn Winebarger <owinebar@gmail.com> wrote:
>
>> On Sat, Aug 6, 2022, 2:07 AM Lynn Winebarger <owinebar@gmail.com> wrote:
>>
>>> I've added another flag variable that allows me to turn off the ban on
>>> implicit loading in dump mode.
>>>
>>
>> The dump with all ~2500 ELN libraries loaded completed last night.
>> Unfortunately during startup (before any frame opens) one of them is
>> evaluating an expression with an argument that should never produce nil but
>> somehow is nil.
>> Fortunately I can now redump with just the offending library in
>> site-load.  The error prints fairly quickly when run normally, but shared
>> libraries evidently open a lot slower under GDB.
>> Hopefully I'll get the same error with the smaller dump and be able to
>> determine if there's an issue in the dump file, the dump loading, or
>> something else.
>>
>
> It started up fine when I only explicitly added the one library with the
> failing expression, and then again when I dumped after loading the original
> list up to that library.
> The good news is that emacs starts in a couple of seconds with 1198 ELN
> files in the dump.  I haven't been able to compile with profiling enabled
> on this system, but I can tell you that is a couple of orders of magnitude
> faster than just loading them in .init.
>

The bug seems to be from a couple of older (2010-2012) library files that
are dynamically scoped and use copy-face with the "frame" parameter.  All
the other combinations I've tried start up without a problem, so I'm just
going to leave these packages out of the dump.  Also excluded are most
lsp-mode libraries, because they seem to slow down the startup process
(like 4 seconds instead of 2 or less}, vterm and zmq (dynamic modules can't
be dumped), and a few modes that insist on attempting to download things on
startup.
What's included:
All of CEDET
All files in emacs-lisp
Most if not all files in tramp/mail/net
Everything in progmode that doesn't depend on an external utility (namely
moz) being installed
Any TeX or reference/citation functionality (reftex, bibtex, bibliography,
citar, citeproc)
Icon/emoji/image support (e.g alltheicons, major-mode-icons)
All completion and widening/narrowing libraries - helm, ivy, counsel,
company, auto-complete,
Perspective, window-purpose, and similar
Evil packages
Treemacs
Many other miscellaneous packages I'm forgetting.

All in the dump file is about 184 MB for an older Linux on an x86_64
architecture.  That would include all the lsp-mode packages from Melpa, or
at least the ones with more than a nominal number of downloads.  There are
2000-2500 ELN files that will be loaded.  When I loaded these from my init
file I could make a cup of coffee, maybe do a crossword before it would be
ready to use.

One of the packages with the dynamic scoping/face issues is tabbar-ruler,
which I only started using during this exercise and think is fantastic.
Hopefully it will work when required from the init file, as it does
currently.

At any rate it's fantastic at startup.  The customization interface is very
responsive without the usual lag from lazy construction of the
customization groups.  I'll have to see how it behaves after it's been
running a few days.

Lynn

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

  reply	other threads:[~2022-08-06 20:23 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-24  0:47 Loading tramp for dump goes into infinite regress Lynn Winebarger
2022-07-24  7:55 ` Michael Albinus
2022-07-24 12:05   ` Lynn Winebarger
2022-07-24 12:23     ` Eli Zaretskii
2022-07-24 13:30       ` Lynn Winebarger
2022-07-24 13:34         ` Eli Zaretskii
2022-07-24 14:05           ` Lynn Winebarger
2022-07-24 14:09             ` Eli Zaretskii
2022-07-24 14:28               ` Lynn Winebarger
2022-07-24 16:00             ` Lynn Winebarger
2022-07-24 16:20               ` Lynn Winebarger
2022-07-24 16:31                 ` Eli Zaretskii
2022-07-25 12:49                   ` Lynn Winebarger
2022-07-25 13:56                     ` Eli Zaretskii
2022-07-26 11:24                       ` Lynn Winebarger
2022-07-27  0:58                         ` Lynn Winebarger
2022-07-27  2:48                           ` Lynn Winebarger
2022-07-27  8:31                             ` Lynn Winebarger
2022-08-09 12:29                       ` Lynn Winebarger
2022-08-09 12:36                         ` Po Lu
2022-08-09 13:22                           ` Lynn Winebarger
2022-08-09 13:42                             ` Po Lu
2022-08-09 15:55                               ` Lynn Winebarger
2022-07-25 16:54                     ` Stefan Monnier
2022-07-25 17:05                       ` Stefan Monnier
2022-07-26  0:28                       ` Lynn Winebarger
2022-07-26  1:10                         ` Lynn Winebarger
2022-08-06  6:07                       ` Lynn Winebarger
2022-08-06 12:57                         ` Lynn Winebarger
2022-08-06 15:39                           ` Lynn Winebarger
2022-08-06 20:23                             ` Lynn Winebarger [this message]
2022-08-06 20:52                               ` Working fully native-compiled "mega dump" (was Re: Loading tramp for dump goes into infinite regress) Lynn Winebarger
2022-07-25 20:11                     ` Loading tramp for dump goes into infinite regress Andrea Corallo
2022-07-31 20:22                       ` Lynn Winebarger
2022-08-03  9:58                         ` Lynn Winebarger
2022-08-03 12:22                           ` Eli Zaretskii
2022-08-03 14:53                             ` Native-compilation build process (was Re: Loading tramp for dump goes into infinite regress) Lynn Winebarger
2022-08-03 16:15                               ` Eli Zaretskii
2022-08-04  3:33                                 ` Lynn Winebarger
2022-08-05  1:57                                   ` Lynn Winebarger
2022-07-24 16:23               ` Loading tramp for dump goes into infinite regress 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='CAM=F=bChdteT80ixz9wqAn1o=gTE7XVvRyYKiEQ1_LzoYq3oHA@mail.gmail.com' \
    --to=owinebar@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=michael.albinus@gmx.de \
    --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 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).