alezost / guix.el

Emacs interface for GNU Guix package manager
https://emacs-guix.gitlab.io/website/
GNU General Public License v3.0
139 stars 16 forks source link

Doesn't seem to work with Guile 3.0 #37

Closed emacsomancer closed 3 years ago

emacsomancer commented 4 years ago

I end up with a lot of errors of the form:

;;; WARNING: loading compiled file /home/slade/.config/guix/current/lib/guile/3.0/site-ccache/guix/ui.go failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode kind
alezost commented 4 years ago

I guess this incompatibility happens because the latest Guix is compiled with Guile3 and Emacs-Guix you have installed in your profile is compiled with Guile2. I think this can be fixed only on the Guix side: I mean, when the package definition of emacs-guix will be adjusted to use guile-3.0 instead of guile-2.2.

jellelicht commented 4 years ago

Emacs-Guix currently uses @@, so AFAIK won't work with guile-3.0.

alezost commented 4 years ago

Emacs-Guix currently uses @@, so AFAIK won't work with guile-3.0.

Do you mean Guile 3.0 does not support @@? Then it is a big issue as Emacs-Guix uses multiple symbols that are not exported by Guix.

Here is a list of these symbols:

It would be good if Guix exported them, otherwise I would have to remove the according functionality from Emacs-Guix.

Ambrevar commented 4 years ago

Maybe we should open a bug upstream for this! :)

jellelicht commented 4 years ago

guix commit 65b510bbc4f2a9ce5bfe3355e6006e9d08f14532 seems to state:

"Avoid @@, which doesn't work on Guile 3."

I am not sure if this is actually true for Guile 3, or just applies to the way guix does things, but seeing as we depend on guix here, my guess is that it is relevant either way :-)

zimoun commented 4 years ago

@jellelicht The syntax @@ is still used in Guix so I do not know if "Avoid use of '@@'" is specific to clojure-utils or not.

For example, guix/scripts/{challenge,repl,publish}.scm or guix/store/database.scm or etc..

@Ambrevar Is it a bug upstream? Why?

@alezost As discussed on Gitlab Issue 20, the REPL does not start because of %max-returned-list-size on foreign distro and it fails to find the module (gcrypt hash). Now the emacs-guix package is compiled in Guix with Guile 3 and the dependencies seem right. What could be wrong?

Ambrevar commented 4 years ago

Not a bug, by "open a bug" I meant a report, in debbugs parlance. I refered to the list of symbols mentioned by Alex.

bon commented 4 years ago

Wait, isn't this exactly the kind of thing that guix is designed to cope with? Until such a time is emacs-guix is made to work with Guile 3, make a package definition of emacs-guix that works with Guile 2?

alezost commented 3 years ago

I think it should work with Guile 3 properly now (after several recent commits). If anyone still has some problems, please reopen this issue.