IRC channel logs


back to list of logs

<rekado>the problem is that ffi-help-rt is autocompiled: compiling /gnu/store/ps1j32a2xjp71fc9n2rlfx15apvnag3p-profile/share/guile/site/3.0/system/ffi-help-rt.scm, which then fails with: unknown location: definition in expression context, where definitions are not allowed, in form (define *ffi-help-version* "1.05.1")
<rekado>I set current-language to wisp, so I suppose it’s the autocompilation of a scheme file that is at fault here
<rekado>that’s why loading (system ffi-help-rt) first fixes the problem
<rekado>now I just need to figure out why it’s autocompiled
<rekado>probably unexpected installation location
<rekado>yes, system/ffi-help-rt.go is nowhere to be found
<zimoun>civodul: about tuto, yes it is what I have seen after clicking the Submit button.
<rekado>hmm, but now it’s seemingly doing *nothing* when it should generate scripts and all
<rekado>wished I could easily inspect the inferior traffic
<civodul>zimoun: ok
<civodul>rekado: you can inspect the read and write calls with strace :-)
<rekado>there are 71 scripts to generate. I’m getting the derivs with (mapm/accumulate-builds lower-object scripts); then built-derivations and derivation-output-path for building them and getting their locations.
<rekado>with 71 scripts virtually nothing happens for 10 minutes or so
<rekado>incredibly slow
<rekado>when I just replace ’scripts’ with “(take scripts 2)” I actually see something happening
<civodul>so it's (lower-object script) that takes forever, right?
<rekado>I think so.
<rekado>I don’t know how to get more … instrumentation into that mlet
<civodul>you could use (ice-9 time) and do (time (run-with-store store (lower-object script))) or similar
<civodul>essentially getting out of the monad to get timings
<civodul>or get timings on inferior-package-derivation if that's the thing
<rekado>hah, spent hours before I realized that the whole point of the Guix extensions mechanism was to set the Guile load path to a predictable value independent of the current environment
<rekado>that’s why it wouldn’t use my modified Guix.
<rekado>okay, now I know that … inferior-package-derivation is pretty slow
<rekado>I can’t use (ice-9 time) naively because any output here messes with the inferior communication
<rekado>but I see (and remember) that we’re opening a new inferior connection for every request
<civodul>yes, ok
<civodul>ah, found your earlier report:
<rekado>inferior-package-derivation ranges from half a second to 2 seconds.
<rekado>the bug report was about lookup-inferior-packages, which is also slow. But it looks like inferior-package-derivation is even slower.
<rekado>it’s got to do more work, of course
<civodul>yes, i'm taking a look
<civodul>the problem is that we throw away the package-to-derivation cache at each inferior round trip
<rekado>civodul: don’t feel pressured to debug this
<rekado>there’s no rush
<rekado>(there are no active users of the GWL, so the performance of doing everything through inferiors isn’t really important)
<rekado>I was just forwarded this:
<rekado>I don’t know anything about hard real time requirements
<civodul>uh, fun
<rekado>it’s pretty unclear what this means, though
<rekado>I only know of ChibiOS and I don’t see why one would want to have “containers” on that system
<civodul>never heard of ChibiOS
<civodul>i did hear about Chibi Scheme though :-)
<civodul>i sent you a reason to hope in
<rekado>woo, lovely!
<rekado>I’ll give it a spin
<rekado>I only met ChibiOS when I got the Axoloti DSP board
<rekado>we’re building ChibiOS as part of the axoloti-runtime package
<rekado>it’s noticeably faster!
<rekado>even with all that debugging output I added it’s *much* faster
<rekado>way less than a minute — previously > 10 mins
<civodul>well, "a minute" is not great, but it's less bad
<rekado>the emphasis is on “way less”
<rekado>haven’t timed it yet
<rekado>15 secondss
<rekado>it’s not *great* but it’s usable
<rekado>whereas before it was not at all usable
<civodul>good, thanks for testing
<civodul>now to clean it up