Ludovic Courtès writes: > Christopher Baines skribis: > >> * guix/build/guile-build-system.scm (build): Use invoke-each, instead of >> for-each, to use multiple cores if available. >> (invoke-each, report-build-process): New procedures. > > [...] > >> + (define (fork-and-run-command command) >> + (match (primitive-fork) >> + (0 >> + (apply execlp command)) >> + (pid >> + #t))) > > To be on the safe side, you should probably wrap the ‘execlp’ call like > this: > > (dynamic-wind > (const #t) > (lambda () > (apply execlp command)) > (lambda () > (primitive-exit 127))) > > This ensures that the child process exits immediately if something goes > wrong (e.g., ‘execlp’ raises an exception because the executable could > not be found.) > > Otherwise LGTM, thank you! Great, I've added in dynamic-wind, made some minor tweaks to the output, and pushed this as 3fdb9a375f1cee7dd302349a9527437df20b3f61. Thanks for taking a look :) Chris