IRC channel logs

2022-03-01.log

back to list of logs

***rekado_ is now known as rekado
<rekado>I’m thinking that the load path trick in guix/extensions/workflow.scm doesn’t work as intended
<rekado>yes, we’re replacing the load path, but Guile is already running
<rekado>maybe we need to fork
<civodul>o/
<civodul>sorry i missed the discussion yesterday evening
<civodul>any signs of hope? :-)
<rekado>maybe
<rekado>I’m not entirely sure how much of the problem lies in the GWL and how much of it in the limited scope of inferiors
<rekado>I’ll play around a little more
<rekado>the good news is that I wasn’t able to reproduce this with a simple ‘guix repl’ script
<rekado>so it’s possible that under different circumstances it’s not really a problem
<rekado>now I just have to figure out if I can change the circumstances in the GWL :)
<civodul>heh :-)
<civodul>if there's a command i can run to reproduce it, maybe i can help a bit more
<rekado>a first test shows that restarting Guile after replacing the load path fixes the problem
<rekado>currently we do this: ‘guix workflow’ runs through some Guix machinery before it evaluates the GWL’s guix/extensions/workflow.scm
<rekado>that file resets the load paths (probably too late) and then evaluates guix-workflow-main in gwl/main.scm
<civodul>looking at workflow.scm.in, why not just prepend directory to %load-path and %load-compiled-path, instead of overridding them?
<rekado>I want all GWL code to be using the well-known Guix that I used at compile time.
<civodul>ok, but by definition, the calling 'guix' and GWL are "dynamically linked"
<civodul>because GWL is an extension
<civodul>unlike, say, hpcguix-web, which embeds Guix
<rekado>I wonder if maybe that’s a mistake
<rekado>it’s bad that an update to Guix could break an installed GWL
<rekado>maybe I overreacted in my attempts to separate package lookup from library uses
<rekado>it might be fine to just use the calling ’guix’ libraries
<civodul>yeah, i think so
<civodul>i think there are two approaches: embed (like hpcguix-web, guix-jupyter, etc.) or extend (like GWL)
<civodul>when embedding, you have to use inferiors if you want to access packages of a different revision or channel set
<civodul>when extending, you can just take whatever comes with the calling guix
<rekado>I think with the GWL we *still* need to use inferiors, though, no?
<rekado>I went down that road because we ended up using packages from (gnu packages *), which are *older* than those the calling ’guix’ would install.
<civodul>yes, probably
<civodul>but it seems like GWL ends up doing a bit of both (extend and embed)
<civodul>i should really look more closely though, i wouldn't want to say stupid things
<civodul>more stupid things :-)
<rekado>:)