IRC channel logs
2022-07-08.log
back to list of logs
<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) <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>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>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>got this to run with extra tweaks: ./pre-inst-env guix time-machine --commit=85a5110de79f4fe9fd822ede3915654ee699d6c5 -- describe <civodul> 3 files changed, 48 insertions(+), 18 deletions(-) <civodul>i'll add tests and send it to the bug *zimoun goes enjoying the sun :-)