unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Lynn Winebarger <owinebar@gmail.com>
To: emacs-devel <emacs-devel@gnu.org>
Subject: Loading tramp for dump goes into infinite regress
Date: Sat, 23 Jul 2022 20:47:08 -0400	[thread overview]
Message-ID: <CAM=F=bBxGt2=J8wH0U4Tj=axvEvP-KoYQeAsc4AyPTfufEVK3w@mail.gmail.com> (raw)

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

And I don't even know where to start describing the issue.
It starts with having "(require 'tramp-loaddefs)" in tramp.el.  That's a
nonstarter for dumping, so I extracted all the variable/constant defs from
tramp-loaddefs and put them in a separate file "tramp-consts.el", removed
them from tramp-loaddefs, and then require the tramp-consts in tramp.el at
the same place.  I also added explicit declare-function for all the
functions the compiler complaints about being missing.
Then, at the end of the file, after the provide statement, I've tried
various ways of having the effect of the "require tramp-loaddefs" call
before the tramp init hook functions are run, since those are set in
tramp-loaddefs.  I tried just putting the require tramp-loaddefs there,
loading tramp-loaddefs, explicitly loading the individual files
(conditioned on dump-mode being nil), but all for naught.

If I wrap the "provide 'tramp" call with eval-and-compile, the dump will
successfully load it, but batch compiling it will fail on the "provide"
saying that tramp-methods variable is void.  This happens even if I've
removed the expressions following the provide.  And when I use "message"
calls to track where it's failing, the procedure definitely fails on the
provide.  It seems to be triggering some load procedure that's pulling in
the expressions created by tramp--with-startup, but I can't find the
expression responsible!
If I don't put the provide in an eval-and-compile, then the file compiled,
but when I run the dumping process (via make), it gets to "loading
net/tramp.elc" and just stops until all memory is consumed and the kernel
kills it.  Or I interrupt it.  We're talking tens of GBs of RAM being
consumed here.  If that were "real" and not some runaway meta-recursive
load cycle I wouldn't want the dumped emacs anyway.

Any advice on how I figure out what is going on here?

Thanks,
Lynn

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

             reply	other threads:[~2022-07-24  0:47 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-24  0:47 Lynn Winebarger [this message]
2022-07-24  7:55 ` Loading tramp for dump goes into infinite regress 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                             ` Working fully native-compiled "mega dump" (was Re: Loading tramp for dump goes into infinite regress) Lynn Winebarger
2022-08-06 20:52                               ` 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=bBxGt2=J8wH0U4Tj=axvEvP-KoYQeAsc4AyPTfufEVK3w@mail.gmail.com' \
    --to=owinebar@gmail.com \
    --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).