Hi, Ludovic Courtès <[email protected]> writes:
> Maxim Cournoyer <[email protected]> skribis: > >> Ludovic Courtès <[email protected]> writes: > > [...] > >>> If I write: >>> >>> (gexp->derivation "foo" #~(mkdir #$output)) >>> >>> I can be sure that my derivation depends on nothing but (default-guile). >>> This is important for tests, but also to make sure we can use this >>> primitive everywhere—if it pulled in the Shepherd, I wouldn’t be able to >>> use to build glibc, because there’d be a cycle. >> >> I was not suggesting to pull in extra dependencies such as Shepherd, but >> to weave the to-be-added signal handling logic at a much lower level. >> One idea could be to arrange so that the correct signal handlers always >> get installed for any Guile code running in the build side (I'm not sure >> how, but perhaps by adjusting the gexp "compiler"?). >> >> The handlers could be defined in (guix build signal-handling) or >> similar. Users wouldn't need to explicitly import the module and >> install its signal handlers, that'd be taken care of automatically, all >> the time. >> >> Does that sound feasible? > > Not like this: the imported-modules derivation for (guix build > signal-handling) would be a dependency in themselves. Can we make it an implicit dependency, since we want it to *always* be used? It'd be useless/annoying boilerplate otherwise. -- Thanks, Maxim
