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.
