Hi, Amade Nemes Gmail <nemesam...@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@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’.