IRC channel logs

2022-07-08.log

back to list of logs

<zimoun>hi!
<rekado_>hi!
<zimoun>rekado_: thanks. Hum, I am a bit of lost by the mechanism of inferiors; at some point it is bound to happen that the new Guix generates code for the old Guix to be run by the old Guix.
<zimoun>And this code can be backward incompatible.
<rekado_>I tried working around this by computing manifest->gexp in the old Guix, but that doesn’t work.
<rekado_>in order to evaluate anything in an inferior I need to be able to serialize it
<zimoun>Yeah, yesterday I also tried to understand this manifest->gexp because I thought the fix could be there. Thanks for really testing.
<rekado_>the manifest is pretty simple at this point; it’s just a bunch of channel instances
<rekado_>but even if we could just turn it into code and evaluate it in the inferior — how would we get the gexp out of the inferior?
<rekado_>again we would have to serialize the result to make sense of it
<rekado_>IIUC build-profile expects the gexp-ified manifest as code
<zimoun>I propose to revert waiting better understanding. Because once one pulls a commit after the offending commit (July), we are blocked which is really annoying.
<rekado_>reverting would also break Guix, because now there are countless users who have version 4 manifests
<rekado_>we’d have to do a partial, manual revert
<rekado_>writing version 3 manifests but also reading version 4
<zimoun>Well, I do not know. But it is really severe bug, IMHO.
<rekado_>yes, it’s bad, but reverting the commits would make the situation worse
<rekado_>at least now it’s “just” the time-machine that’s broken. Reverting it would break *all* Guix commands.
<zimoun>Yeah, maybe a version 5 which would be version 3, and supporting version 4, as we read the other versions.
<rekado_>we can’t bump the number to fix this
<rekado_>because old code doesn’t have a clause to match on any newer version
<zimoun>I mean, support version 4 in sexp->manifest
<zimoun>but go back to version 3 elsewhere
<rekado_>my problem right now is that I can’t seem to use manifest->gexp in the inferior
<rekado_>(unbound-variable #f "Unbound variable: ~S" (manifest->gexp) #f)
<rekado_>here’s what I got so far: https://elephly.net/downies/0001-channel-stuff.patch
<zimoun>trying to see if the current test suite checks potential issues with time-travel, on my machine tests/inferior.scm is skipped. What could it mean?
<civodul>check tests/inferior.log: it's probably just a subset of it that's skipped
<civodul>and no, the test suite doesn't catch this
<civodul>tricky!
<civodul>i've been willing to have CI for time traveling
<zimoun>well, maybe it is also worth to have tests/guix-time-machine.sh testing some old commits. WDYT?
<rekado_>I got it to build a version 3 manifest in an inferior, but … I can’t get it out of the inferior
<civodul>i've been testing a patch along these lines too
<civodul> https://web.fdn.fr/~lcourtes/pastebin/profile-v3.patch.html
<rekado_>latest version of my patch: https://elephly.net/downies/0001-channel-stuff.patch
<civodul>zimoun: sure, but with some exceptions, all the tests work off-line and don't expect to be run from a Git checkout
<civodul>so we need to define a test strategy
<rekado_>yours side-steps that whole gexp serialization problem, so it’s probably better
<civodul>it's not pretty, but it's pragmatic
<rekado_>yes
<civodul>got this to run with extra tweaks: ./pre-inst-env guix time-machine --commit=85a5110de79f4fe9fd822ede3915654ee699d6c5 -- describe
<civodul>\o/
<civodul> 3 files changed, 48 insertions(+), 18 deletions(-)
<civodul>i think that's acceptable
<civodul>i'll add tests and send it to the bug
<zimoun>civodul: cool!
*zimoun goes enjoying the sun :-)
<civodul>enjoy!
<zimoun>civodul: https://hpc.guix.info/static/doc/café-guix/tournier-20220707.pdf
<civodul>zimoun: great, thanks!
<civodul>i'll pass it on :-)