* emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
@ 2023-01-18 14:23 Yasushi SHOJI
2023-01-18 14:39 ` Robert Pluim
0 siblings, 1 reply; 12+ messages in thread
From: Yasushi SHOJI @ 2023-01-18 14:23 UTC (permalink / raw)
To: emacs-devel
Hi,
I'm getting the following message with the emacs-29 branch when I
magit-section-toggle on a modified file on a Magit buffer to show the
difference.
let*: Symbol’s function definition is void: \(setf\ compat-alist-get\)
I've bisected Emacs and it shows that the following change is
the one to cause this.
> commit fb87d5008e2 (HEAD)
> Author: Philip Kaludercic <philipk@posteo.net>
> Date: Thu Aug 11 13:35:47 2022 +0200
>
> * package.el (package--get-activatable-pkg): Prefer source packages
But I'm not sure why. Does anyone see this?
I'm building Emacs with the following command:
/autogen.sh && ./configure --without-native-compilation --with-pgtk
--with-tree-sitter && make -j src lisp
Magit 20230116.2312 [>= 3.3.0.50-git], Git 2.39.0, Emacs 29.0.50, gnu/linux
Best
--
yashi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 14:23 emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit Yasushi SHOJI
@ 2023-01-18 14:39 ` Robert Pluim
2023-01-18 15:48 ` Tassilo Horn
0 siblings, 1 reply; 12+ messages in thread
From: Robert Pluim @ 2023-01-18 14:39 UTC (permalink / raw)
To: Yasushi SHOJI; +Cc: emacs-devel
>>>>> On Wed, 18 Jan 2023 23:23:59 +0900, Yasushi SHOJI <yasushi.shoji@gmail.com> said:
Yasushi> Hi,
Yasushi> I'm getting the following message with the emacs-29 branch when I
Yasushi> magit-section-toggle on a modified file on a Magit buffer to show the
Yasushi> difference.
Yasushi> let*: Symbol’s function definition is void: \(setf\ compat-alist-get\)
`compat-alist-get' should only be used by emacs-25 and emacs-26. I
suspect something somewhere has not been set up properly, probably
some code compiled by an earlier version of emacs needs to be
recompiled.
1. Do you have the full backtrace? You may need to so `M-x
toggle-debug-on-error' first.
2. Can you reproduce in 'emacs -Q'?
Robert
--
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 14:39 ` Robert Pluim
@ 2023-01-18 15:48 ` Tassilo Horn
2023-01-18 16:59 ` Robert Pluim
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Tassilo Horn @ 2023-01-18 15:48 UTC (permalink / raw)
To: Robert Pluim; +Cc: Yasushi SHOJI, emacs-devel
Robert Pluim <rpluim@gmail.com> writes:
>>>>>> On Wed, 18 Jan 2023 23:23:59 +0900, Yasushi SHOJI
> <yasushi.shoji@gmail.com> said:
>
> Yasushi> Hi,
> Yasushi> I'm getting the following message with the emacs-29 branch when I
> Yasushi> magit-section-toggle on a modified file on a Magit buffer to show
> Yasushi> the
> Yasushi> difference.
>
> Yasushi> let*: Symbol’s function definition is void: \(setf\
> Yasushi> compat-alist-get\)
>
> `compat-alist-get' should only be used by emacs-25 and emacs-26. I
> suspect something somewhere has not been set up properly, probably
> some code compiled by an earlier version of emacs needs to be
> recompiled.
See https://github.com/magit/magit/issues/4836.
Basically, there has been a compat (the package) change where after
updating the compat package, one has to re-install magit (and other
packages) using that new compat version. That is required because some
macro has been changed.
Bye,
Tassilo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 15:48 ` Tassilo Horn
@ 2023-01-18 16:59 ` Robert Pluim
2023-01-18 17:36 ` Eli Zaretskii
2023-01-18 18:39 ` Tassilo Horn
2023-01-18 18:54 ` Arash Esbati
2023-01-19 0:34 ` Yasushi SHOJI
2 siblings, 2 replies; 12+ messages in thread
From: Robert Pluim @ 2023-01-18 16:59 UTC (permalink / raw)
To: Tassilo Horn; +Cc: Yasushi SHOJI, emacs-devel
>>>>> On Wed, 18 Jan 2023 16:48:28 +0100, Tassilo Horn <tsdh@gnu.org> said:
Tassilo> Robert Pluim <rpluim@gmail.com> writes:
>>>>>>> On Wed, 18 Jan 2023 23:23:59 +0900, Yasushi SHOJI
>> <yasushi.shoji@gmail.com> said:
>>
Yasushi> Hi,
Yasushi> I'm getting the following message with the emacs-29 branch when I
Yasushi> magit-section-toggle on a modified file on a Magit buffer to show
Yasushi> the
Yasushi> difference.
>>
Yasushi> let*: Symbol’s function definition is void: \(setf\
Yasushi> compat-alist-get\)
>>
>> `compat-alist-get' should only be used by emacs-25 and emacs-26. I
>> suspect something somewhere has not been set up properly, probably
>> some code compiled by an earlier version of emacs needs to be
>> recompiled.
Tassilo> See https://github.com/magit/magit/issues/4836.
Oops. Breaking compatibility in a package called `compat' is a bit of
a no-no :-)
Tassilo> Basically, there has been a compat (the package) change where after
Tassilo> updating the compat package, one has to re-install magit (and other
Tassilo> packages) using that new compat version. That is required because some
Tassilo> macro has been changed.
Thanks for that info, I guess that means this isnʼt an Emacs bug.
Robert
--
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 16:59 ` Robert Pluim
@ 2023-01-18 17:36 ` Eli Zaretskii
2023-01-18 18:25 ` [External] : " Drew Adams
2023-01-18 18:39 ` Tassilo Horn
1 sibling, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2023-01-18 17:36 UTC (permalink / raw)
To: Robert Pluim; +Cc: tsdh, yasushi.shoji, emacs-devel
> From: Robert Pluim <rpluim@gmail.com>
> Cc: Yasushi SHOJI <yasushi.shoji@gmail.com>, emacs-devel@gnu.org
> Date: Wed, 18 Jan 2023 17:59:13 +0100
>
> Oops. Breaking compatibility in a package called `compat' is a bit of
> a no-no :-)
No problem if we also introduce a new compat-compat package.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 16:59 ` Robert Pluim
2023-01-18 17:36 ` Eli Zaretskii
@ 2023-01-18 18:39 ` Tassilo Horn
2023-01-19 8:50 ` Robert Pluim
2023-01-25 17:17 ` Stefan Monnier
1 sibling, 2 replies; 12+ messages in thread
From: Tassilo Horn @ 2023-01-18 18:39 UTC (permalink / raw)
To: Robert Pluim; +Cc: Yasushi SHOJI, emacs-devel
Robert Pluim <rpluim@gmail.com> writes:
> Tassilo> See https://github.com/magit/magit/issues/4836.
>
> Oops. Breaking compatibility in a package called `compat' is a bit of
> a no-no :-)
That's funny but I think we should make clear there's no sarcasm in that
statement. What I've understood from the various bug reports is that
David Mendler has explained why that change is for the better in the
long term and he coordinated carefully with authors of packages using
the compat library.
The result of that coordination was that when API-breaking compat
appeared, those packages had the required changes in place and required
the new compat version. On package update, first the new compat was
installed, then the packages using the compat library.
However, it seems like when a package gets updated, it's not reloaded
and thusly the packages using the compat library where compiled with the
old compat version and that's why those errors popped up.
> Tassilo> Basically, there has been a compat (the package) change
> Tassilo> where after updating the compat package, one has to
> Tassilo> re-install magit (and other packages) using that new
> Tassilo> compat version. That is required because some macro has
> Tassilo> been changed.
>
> Thanks for that info, I guess that means this isnʼt an Emacs bug.
Decide for yourself. I feel it could be an emacs bug.
Bye,
Tassilo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 18:39 ` Tassilo Horn
@ 2023-01-19 8:50 ` Robert Pluim
2023-01-19 9:57 ` Tassilo Horn
2023-01-25 17:17 ` Stefan Monnier
1 sibling, 1 reply; 12+ messages in thread
From: Robert Pluim @ 2023-01-19 8:50 UTC (permalink / raw)
To: Tassilo Horn; +Cc: Yasushi SHOJI, emacs-devel
>>>>> On Wed, 18 Jan 2023 19:39:54 +0100, Tassilo Horn <tsdh@gnu.org> said:
Tassilo> The result of that coordination was that when API-breaking compat
Tassilo> appeared, those packages had the required changes in place and required
Tassilo> the new compat version. On package update, first the new compat was
Tassilo> installed, then the packages using the compat library.
Tassilo> However, it seems like when a package gets updated, it's not reloaded
Tassilo> and thusly the packages using the compat library where compiled with the
Tassilo> old compat version and that's why those errors popped up.
Tassilo> Basically, there has been a compat (the package) change
Tassilo> where after updating the compat package, one has to
Tassilo> re-install magit (and other packages) using that new
Tassilo> compat version. That is required because some macro has
Tassilo> been changed.
That could or could not be an Emacs bug. I guess weʼd need a recipe
from 'emacs -Q' to be sure.
Robert
--
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-19 8:50 ` Robert Pluim
@ 2023-01-19 9:57 ` Tassilo Horn
0 siblings, 0 replies; 12+ messages in thread
From: Tassilo Horn @ 2023-01-19 9:57 UTC (permalink / raw)
To: Robert Pluim; +Cc: Yasushi SHOJI, emacs-devel
Robert Pluim <rpluim@gmail.com> writes:
>>>>>> On Wed, 18 Jan 2023 19:39:54 +0100, Tassilo Horn <tsdh@gnu.org> said:
>
> Tassilo> The result of that coordination was that when API-breaking compat
> Tassilo> appeared, those packages had the required changes in place and
> Tassilo> required
> Tassilo> the new compat version. On package update, first the new compat
> Tassilo> was
> Tassilo> installed, then the packages using the compat library.
>
> Tassilo> However, it seems like when a package gets updated, it's not
> Tassilo> reloaded
> Tassilo> and thusly the packages using the compat library where compiled
> Tassilo> with the
> Tassilo> old compat version and that's why those errors popped up.
>
> Tassilo> Basically, there has been a compat (the package) change
> Tassilo> where after updating the compat package, one has to
> Tassilo> re-install magit (and other packages) using that new
> Tassilo> compat version. That is required because some macro has
> Tassilo> been changed.
>
> That could or could not be an Emacs bug. I guess weʼd need a recipe
> from 'emacs -Q' to be sure.
How would one create a recipe with emacs -Q when one is interested in
package updates? I guess one would rather use emacs -q in a testuser
account with no ~/.emacs.
I think what one has to do would create fake packages
macro-1.0
use-macro-1.0 requires macro-1.0
and install use-macro-1.0, macro-1.0 as a dependency. Then make a
breaking change in macro leading to macro-2.0 required by use-macro-2.0
which will error if use-macro-2.0 was compiled with macro-1.0 instead of
2.0.
Bye,
Tassilo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 18:39 ` Tassilo Horn
2023-01-19 8:50 ` Robert Pluim
@ 2023-01-25 17:17 ` Stefan Monnier
1 sibling, 0 replies; 12+ messages in thread
From: Stefan Monnier @ 2023-01-25 17:17 UTC (permalink / raw)
To: Tassilo Horn; +Cc: Robert Pluim, Yasushi SHOJI, emacs-devel
> However, it seems like when a package gets updated, it's not reloaded
We have code in place that tries to make sure it is, but I suspect it's
not working as intended in all cases :-(
Stefan
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 15:48 ` Tassilo Horn
2023-01-18 16:59 ` Robert Pluim
@ 2023-01-18 18:54 ` Arash Esbati
2023-01-19 0:34 ` Yasushi SHOJI
2 siblings, 0 replies; 12+ messages in thread
From: Arash Esbati @ 2023-01-18 18:54 UTC (permalink / raw)
To: Tassilo Horn; +Cc: Robert Pluim, Yasushi SHOJI, emacs-devel
Tassilo Horn <tsdh@gnu.org> writes:
> Basically, there has been a compat (the package) change where after
> updating the compat package, one has to re-install magit (and other
> packages) using that new compat version. That is required because some
> macro has been changed.
compat should provide `package-recompile' and `package-recompile-all'
;-)
Best, Arash
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit
2023-01-18 15:48 ` Tassilo Horn
2023-01-18 16:59 ` Robert Pluim
2023-01-18 18:54 ` Arash Esbati
@ 2023-01-19 0:34 ` Yasushi SHOJI
2 siblings, 0 replies; 12+ messages in thread
From: Yasushi SHOJI @ 2023-01-19 0:34 UTC (permalink / raw)
To: Tassilo Horn; +Cc: Robert Pluim, emacs-devel
Hi,
On Thu, Jan 19, 2023 at 12:51 AM Tassilo Horn <tsdh@gnu.org> wrote:
>
> Robert Pluim <rpluim@gmail.com> writes:
>
> >>>>>> On Wed, 18 Jan 2023 23:23:59 +0900, Yasushi SHOJI
> > <yasushi.shoji@gmail.com> said:
> >
> > Yasushi> Hi,
> > Yasushi> I'm getting the following message with the emacs-29 branch when I
> > Yasushi> magit-section-toggle on a modified file on a Magit buffer to show
> > Yasushi> the
> > Yasushi> difference.
> >
> > Yasushi> let*: Symbol’s function definition is void: \(setf\
> > Yasushi> compat-alist-get\)
> >
> > `compat-alist-get' should only be used by emacs-25 and emacs-26. I
> > suspect something somewhere has not been set up properly, probably
> > some code compiled by an earlier version of emacs needs to be
> > recompiled.
>
> See https://github.com/magit/magit/issues/4836.
Thank you both. It turns out that I had two versions of the
magit-section package.
I didn't notice that the function is provided by a separate package.
Removing the old one fixed it.
Best,
--
yashi
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-01-25 17:17 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-18 14:23 emacs-29: let*: Symbol’s function definition is void: \(setf\ compat-alist-get\) with Magit Yasushi SHOJI
2023-01-18 14:39 ` Robert Pluim
2023-01-18 15:48 ` Tassilo Horn
2023-01-18 16:59 ` Robert Pluim
2023-01-18 17:36 ` Eli Zaretskii
2023-01-18 18:25 ` [External] : " Drew Adams
2023-01-18 18:39 ` Tassilo Horn
2023-01-19 8:50 ` Robert Pluim
2023-01-19 9:57 ` Tassilo Horn
2023-01-25 17:17 ` Stefan Monnier
2023-01-18 18:54 ` Arash Esbati
2023-01-19 0:34 ` Yasushi SHOJI
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.