2

This morning, I wake up and restart my Emacs.app (26.3 GNU Emacs but the emacsformacosx.com version, from brew cask) and get stuck at this:

Eager macro-expansion failure: (error "Loading file /Users/erik/.emacs.d/elpa/let-alist-1.0.6/let-alist.elc failed to provide feature ‘let-alist’") [2 times]

The built-in version of let-alist was 1.0.5, upgraded to 1.0.6, to no avail.

Drew
  • 75,699
  • 9
  • 109
  • 225
Erik Kaplun
  • 275
  • 2
  • 9
  • 3
    Have a look into `/Users/erik/.emacs.d/elpa/let-alist-1.0.6/let-alist.el`. Is there a `(provide 'let-alist)` somewhere at the end of the file? If that is the case byte compile that file (see the menu items for byte compilation in the Elisp menu). – Tobias Nov 01 '19 at 10:25
  • 1
    This sounds a lot like https://stackoverflow.com/questions/58565782/ht-elc-fails-to-provide-feature-ht#comment103462420_58569619 – phils Nov 01 '19 at 10:43

1 Answers1

1

Looks like somehow during an Emacs.app upgrade via brew cask (or possibly for other reasons), the let-alist providing source file at ~/.emacs.d/elpa/let-alist-1.0.6/let-alist.el ended up as empty.

I fixed the issue by restoring its original/expected contents from http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/let-alist.el and restarting Emacs.

Thank you @Tobias, for pointing out the obvious — to start by looking up what's inside let-alist.el. :)

Erik Kaplun
  • 275
  • 2
  • 9
  • 2
    You should run `M-x package-install-file` on `let-alist.el` regardless of the apparent full functionality of the package. That corrects stuff like `autoloads` and so on. – Tobias Nov 13 '19 at 13:31
  • 1
    FWIW, you can use `M-x package-reinstall` to reinstall the package, if your Emacs isn't functional, you can do it with Emacs -Q. – xuchunyang Nov 13 '19 at 14:00
  • 1
    @xuchunyang Do **not** do that if you have already downloaded the file. `package-reinstall` deletes the package before installing it again. I for myself had a problem with downloads under WSL and had to download the stuff under Windows to install it in WSL. Only `package-install-file` works under such circumstances. – Tobias Nov 13 '19 at 14:13
  • yes, sorry, just saw and deleted my comment. – Erik Kaplun Nov 14 '19 at 11:11