Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recent commits are incompatible with Emacs <29 #290

Closed
jkroes opened this issue Jan 18, 2023 · 4 comments
Closed

Recent commits are incompatible with Emacs <29 #290

jkroes opened this issue Jan 18, 2023 · 4 comments

Comments

@jkroes
Copy link

jkroes commented Jan 18, 2023

This commit introduced defvar-keymap, which is only available from keymap.el in Emacs 29. When using Emacs 28, global-corfu-mode fails with an error about void-variable corfu-map.

@minad
Copy link
Owner

minad commented Jan 18, 2023

Corfu uses Compat.

When using Emacs 28, global-corfu-mode fails with an error about void-variable corfu-map.

This means Corfu or Compat wasn't updated properly. I don't know why. It is an issue with your package manager. Maybe restarting Emacs is all that is needed. Maybe you also have to reinstall Compat and Corfu.

@minad minad closed this as completed Jan 18, 2023
@russmatney
Copy link
Sponsor

russmatney commented Feb 9, 2023

UPDATE: Be warned! The below compat pin ended up breaking other functionality in my doom setup, namely a hiccup in most magit commands - this issue appears to be more complicated than just repinning compat for now (as you can read in the linked issues below).

After digging around a bit, there are some related doom PRs (doomemacs/doomemacs#7075) updating vertico/magit and other deps that seem to address getting everything updated - it seems like things will get updated and smoothed out soon enough.

--

original comment:

Thanks for the clue on this issue - compat looks very useful! It was indeed a package management problem.

If it helps anyone else, my issue was compat being pinned by doom (or otherwise not pulling the compat-29.el file), so unpinning meant pointing to github and setting a new pin, i.e. in doom.d/packages.el:

(package! compat :pin "e59e311d1ffc422f91e4e9c494598e978f5c2125"
          :recipe (:host github :repo "emacs-compat/compat"))

Hopefully it wasn't pinned for some specific reason. (UPDATE: turns out it was! At this time of writing, this causes some magit commands to error out with: Symbol's function definition is void: (setf compat-alist-get)).

@minad
Copy link
Owner

minad commented Feb 9, 2023

@russmatney Thanks. Yes, the problem with Straight seems to be two fold. It is a problem if certain packages are pinned and others are unpinned. In such scenarios great care has to be taken to ensure that everything installed is compatible. In your case you installed Corfu (which requires a new Compat) on Doom with an old pinned Compat. Recently there was also the problem that the Straight Compat mirror wasn't updated, see radian-software/straight.el#1049 and radian-software/gnu-elpa-mirror#14. I hope things stabilize a bit in the future as there has been a bit of a breakage caused by recent updates to Compat.

@russmatney
Copy link
Sponsor

@minad gotcha - thanks for sharing the context!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants