Hi,

I am currently straggling with figuring out which guile version should I
use for my profile, library, application and scripts.  And I need some
help.

Some time back, Guix package switched to 3.0.11 (guile-3.0-latest), yet
guile-3.0 variable still points to 3.0.9.  I was installing guile-3.0
into my home, and `guile' REPL did not even start (I load guix in my
.guile).  Ludovic suggested (in #80671) to use guile-3.0-latest, which I
did, and that solved that particular problem.

However, more problems showed up, and I need help thinking this through.

I have a library which has `guix' as an input, so I had to update its
package to use guile-3.0-latest as well, otherwise there would be lot of
warning about incompatible bytecode version (and, as seen in #80671,
guix does not necessarily work without the compiled bytecode, so it
seemed unwise to just ignore the warnings).

Great.  Now, however, I have program-file forms that use the library
above.  And now *they* are logging

--8<---------------cut here---------------start------------->8---
;;; WARNING: loading compiled file 
/gnu/store/fnhip1aghriw0p93z8gwk3c6y9c6iihl-guile-wolfsden-0.0.9-3.5ca2b24/lib/guile/3.0/site-ccache/wolfsden/fs.go
 failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode version
;;; WARNING: loading compiled file 
/gnu/store/fnhip1aghriw0p93z8gwk3c6y9c6iihl-guile-wolfsden-0.0.9-3.5ca2b24/lib/guile/3.0/site-ccache/wolfsden/fs/xdg.go
 failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode version
--8<---------------cut here---------------end--------------->8---

on start.  Presumably I need to plug guile-3.0-latest into #:guile
keyword argument?

But before I do that, I want to ask here, is that really how this is
supposed to be done?  Explicit guile-3.0-latest slowly spreading like
cancer through all of my code, in annoying whack-a-mole fashion every
time I see the warning pop-up somewhere new?  That cannot be so...

Could someone please shed some light on how this transition is supposed
to be handled in user code, both configuration (e.g., program-file) and
packages (e.g., custom guile-* libraries), because what I have described
above cannot possibly be the intended way.

Thank you in advance. :)

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Reply via email to