Maxim Cournoyer skribis: > Ludovic Courtès 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. Ludo’.