Subject: Re: bug#14120: invalid load-history in emacsen that CANNOT_DUMP

From: andrés ramírez <[email-masked]>
Date: Tue, 18 Feb 2020 01:01:35 +0000

Hi Stefan.

Stefan> It's called too often, that's not workable.  I was thinking of
Stefan> putting an assertion in there instead, maybe something like
Stefan> the patch below.

I have applied the patch. But no assert is trigered.
--8<---------------cut here---------------start------------->8---
GNU Emacs 23.4 (armv7l-unknown-linux-gnueabi)
 of 2020-02-18 on sacsa
--8<---------------cut here---------------end--------------->8---

Stefan> But maybe showing us the complete `load-history` when the
Stefan> error (in load-history-filename-element) is caught might give
Stefan> us enough of a hint (by looking at the entries nearby to try
Stefan> and infer the order of operations at the time the broken entry
Stefan> was added)?

I have compiled. And I am running the just compiled emacs23. The error
is this one:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument stringp (require . smartparens-config))
  string-match("\\(\\`\\|/\\)esh-util\\(\\.elc\\|\\.el\\)?\\(\\.gz\\)?\\'" (require . smartparens-config))
  (not (string-match file-regexp (car load-elt)))
  (or (null (and ...)) (not (string-match file-regexp ...)))
  (and loads (or (null ...) (not ...)))
  (while (and loads (or ... ...)) (setq loads (cdr loads) load-elt (and loads ...)))
  (progn (while (and loads ...) (setq loads ... load-elt ...)))
  (unwind-protect (progn (while ... ...)) (set-match-data save-match-data-internal (quote evaporate)))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) (set-match-data save-match-data-internal ...)))
  (save-match-data (while (and loads ...) (setq loads ... load-elt ...)))
  (let* ((loads load-history) (load-elt ...)) (save-match-data (while ... ...)) load-elt)
  load-history-filename-element("\\(\\`\\|/\\)esh-util\\(\\.elc\\|\\.el\\)?\\(\\.gz\\)?\\'")
  eval-after-load("esh-util" (progn (add-hook (quote eshell-mode-hook) (quote tramp-eshell-directory-change)) (add-hook (quote eshell-directory-change-hook) (quote tramp-eshell-directory-change)) (add-hook (quote tramp-unload-hook) (lambda nil ... ...))))
  require(tramp)
  eval((require (quote tramp)))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)
--8<---------------cut here---------------end--------------->8---

and the load-history var is this one:

AR
ps: Let me know anything else I could do.