parallel as possible (similar to GNU Make's `-j' switch). This is useful on SMP systems, but it is especially useful for doing builds on multiple machines. The idea is that a large derivation is initiated on one master machine, which then distributes sub-derivations to any number of slave machines. This should not happen synchronously or in lock-step, so the master must be capable of dealing with multiple parallel build jobs. We now have the infrastructure to support this. TODO: substitutes are currently broken.
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			342 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			342 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
let {
 | 
						|
 | 
						|
  mkDrv = text: inputs: derivation {
 | 
						|
    name = "parallel";
 | 
						|
    system = "@system@";
 | 
						|
    builder = "@shell@";
 | 
						|
    args = ["-e" "-x" ./parallel.builder.sh];
 | 
						|
    shared = "@extra1@";
 | 
						|
    inherit text inputs;
 | 
						|
  };
 | 
						|
 | 
						|
  a = mkDrv "a" [];
 | 
						|
  b = mkDrv "b" [a];
 | 
						|
  c = mkDrv "c" [a];
 | 
						|
  d = mkDrv "d" [a];
 | 
						|
  e = mkDrv "e" [b c d];
 | 
						|
 | 
						|
  body = e;
 | 
						|
}
 |