2

This is my config file. As you can see, on line 351, there is:

;; Update my Emacs' packages every week
(use-package auto-package-update
    :custom
    (auto-package-update-interval 7)
    (auto-package-update-prompt-before-update t)
    (auto-package-update-hide-results t)
    :config
    (auto-package-update-maybe)
    (auto-package-update-at-time "09:00"))

After starting Emacs, the mini-buffer asked me about updating the packages earlier today. I chose "yes".

Usually, things are updated and work fine. However, this was not the case today.

After everything was processed, Emacs indicated the upgrade process went fine. So, I decided to re-start Emacs. And now Emacs was loading with the following error messages:

Error (use-package): doom-modeline/:init: Symbol’s function definition is void: compat--inhibit-prefixed
Error (use-package): doom-modeline/:catch: Symbol’s function definition is void: compat--inhibit-prefixed

Indeed, the modeline was not working. After a bit, I realized that doom-mode was not the only problem.

When I try to use Magit via command magit-status, I get:

byte-code: Symbol’s function definition is void: compat--inhibit-prefixed

I managed to solve the error message related to the doom-modeline by simply commenting the lines on my config "use-packaging" it:

;; (use-package doom-modeline
;;   :init (doom-modeline-mode 1)
;;   :custom ((doom-modeline-height 15)))

The error message was out when starting Emacs. But, for obvious reason, it is still not working after being commented out. I can live without this package.

The magit problem persists. And this is really annoying because I can't live without this package.

How should I proceed?

Any suggestion on how to debug the problem?

Is there a way to downgrade the last changes generated by auto-package-update?

Any clue on how to solve things?

Pedro Delfino
  • 1,369
  • 3
  • 13

2 Answers2

4
byte-code: Symbol’s function definition is void: compat--inhibit-prefixed

If this is the error, then running M-x pacakge-recompile compat RET (if you are on Emacs 29) or M-x package-reinstall compat RET. Fundamentally the issue appears to be that some files were not compiled in the correct order, and the macro compat--inhibit-prefixed was not recognized as such in some other file.

(Also a friendly reminder to report issues like these to their respective issue trackers. That way the package author is directly notified and can investigate the issue more efficiently. Use C-h P to find out what who maintains a package/what dependencies there are, and M-x toggle-debug-on-error or invoke Emacs with --debug-init to create a backtrace.)

Philip K.
  • 136
  • 2
1

I decided to try re-compiling everything, all packages.

Thus, I typed M-: to eval an expression and then inserted: (byte-recompile-directory package-user-dir nil 'force).

After re-starting Emacs, both packages are working fine again.

This old question from StackOverflow helped me out.

Pedro Delfino
  • 1,369
  • 3
  • 13
  • 1
    This is undoubtedly the best first step (and if you are lucky, the *only* step) to get things working again. – NickD Jul 18 '22 at 17:50