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.

  • 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 1 '19 at 10:25
  • 1
    This sounds a lot like stackoverflow.com/questions/58565782/… – phils Nov 1 '19 at 10:43

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. :)

  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.