Closed NicolasPetton closed 6 years ago
After switching between Emacs 26 and 25 you have to recompile at least closql
. Not sure if recompiling just that is enough, but I would recommend doing it like so even that were the case:
cd ~/.emacs.d
make
The problem is that in Emacs 26 eieio
uses the new records type while before it used vectors, and if you use byte-code from one version in the other, then you will in some cases get the wrong type. I am not sure whether this affects all code that uses eieio
or only closql
which has to poke at things users of eieio
are not supposed to poke at (because it has to de-/serialize objects).
I did that already, pulled epkgs
, and ran make
from my emacs.d
, but it didn't change anything.
@tarsius note that I'm using the master branch of Emacs, not emacs-26.
Err yeah, and the backtrace doesn't say anything about vectors or records anyway. Compiling...
Reverting https://github.com/emacs-mirror/emacs/commit/cea0bca54f1fa3635591e24eba1017742b04abd0 fixes the issue. I haven't investigated further than that yet.
Yes, the issue happens with emacsql
. I'll open a ticket in debbugs.
Please post a link here if/when you have done that.
Actually it was a bug in emacsql
, fixed in https://github.com/skeeto/emacsql/commit/83a278aa6bc0fec5d8aa731b06f2385a8ad8cdbb.
@DamienCassou thanks!
@skeeto could you please make a subminor release for this?
@tarsius Just now I released EmacSQL 2.0.3 which includes this fix.
This is sort of off-topic, but it's just too convenient not to bring it up. Since I was looking at EmacSQL today, I decided it's finally time to push the minimum supported Emacs version for EmacSQL up to Emacs 25.1. The primary reason is that I want to dump the finalizer dependency and just use Emacs' built-in make-finalizer. In particular, starting in Emacs 25 there's some sort of subtle Emacs memory corruption bug related to post-gc-hook that's preventing me from running EmacSQL's unit tests, and the easiest thing to do is not use this hook (as is required by the finalizer package). The secondary reason is this simplifies things with respect to cl-generic and eieio.
However, I intentionally did not include those commits in 2.0.3 since that's a breaking change if you're using Emacs 24.
That's a perfectly reasonable thing to do; support older Emacsen until it starts getting painful - then stop. And to answer the implied question; no this doesn't affect me, all my packages that use emacsql
already depend on Emacs 25.
Off-off-topic, since it is just too convenient to do this now; here's my wishlist for emacsql
:
@skeeto You haven't pushed the tag yet. Since the old tag wasn't public yet, could you please recreate it to include the current tip with my change?
I've been using Emacs 25.2 for a while, and I now switched to the master branch.
When executing
epkg-list-packages
, I get the following error: