GNU bug report logs - #59864
Emacs-Guix broken due to ABI incompatibility

Previous Next

Package: guix;

Reported by: Amade Nemes Gmail <nemesamade <at> gmail.com>

Date: Tue, 6 Dec 2022 18:57:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: Amade Nemes Gmail <nemesamade <at> gmail.com>
Cc: 59864 <at> debbugs.gnu.org
Subject: bug#59864: emacs-guix 
Date: Wed, 07 Dec 2022 18:49:44 +0100
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.