GNU bug report logs -
#59864
Emacs-Guix broken due to ABI incompatibility
Previous Next
Full log
View this message in rfc822 format
Hi,
Amade Nemes Gmail <nemesamade <at> gmail.com> skribis:
> I've updated my guix version today and found that most emacs-guix
> interactive commands no longer work. For example, guix-packages-by-name throws:
>
> guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure package-license: Wrong type argument: #<package abduco <at> 0.6 gnu/packages/abduco.scm:28 7f45f9d11f20>
I think this is caused by an ABI incompatibility: the ‘guix’ package is
currently at 1.4.0rc1, which doesn’t have the change made in:
https://issues.guix.gnu.org/59390
However, current ‘master’ does have this change.
The ‘emacs-guix’ package is built against the ‘guix’ package; it has
inlined calls like (package-name p) to something like:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,optimize (package-name p)
$8 = (let ((s p))
(if (eq? (struct-vtable s)
(@@ (guix packages) <package>))
(struct-ref s 0)
(throw 'wrong-type-arg
'package-name
"Wrong type argument: ~S"
(list s)
(list s))))
--8<---------------cut here---------------end--------------->8---
But on ‘master’, <package> is a macro, not a record type descriptor;
thus, the (eq? …) expression is always false.
I’ll fix this by upgrading the ‘guix’ package and/or merging the (guix
records) bit in the ‘version-1.4.0’ branch.
Thanks,
Ludo’.
This bug report was last modified 2 years and 224 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.