* True parallel builds. Nix can now run as many build jobs in
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.
This commit is contained in:
		
							parent
							
								
									aea436503e
								
							
						
					
					
						commit
						c8d3882cdc
					
				
					 12 changed files with 696 additions and 309 deletions
				
			
		| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
   derivation, a path containing an equivalent closure expression is
 | 
			
		||||
   returned.  This requires that the derivation is performed, unless a
 | 
			
		||||
   successor is known. */
 | 
			
		||||
Path normaliseStoreExpr(const Path & nePath, PathSet pending = PathSet());
 | 
			
		||||
Path normaliseStoreExpr(const Path & nePath);
 | 
			
		||||
 | 
			
		||||
/* Realise a closure store expression in the file system. 
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -16,15 +16,15 @@ Path normaliseStoreExpr(const Path & nePath, PathSet pending = PathSet());
 | 
			
		|||
   prevents infinite recursion for paths realised through a substitute
 | 
			
		||||
   (since when we build the substitute, we would first try to realise
 | 
			
		||||
   its output paths through substitutes... kaboom!). */
 | 
			
		||||
void realiseClosure(const Path & nePath, PathSet pending = PathSet());
 | 
			
		||||
void realiseClosure(const Path & nePath);
 | 
			
		||||
 | 
			
		||||
/* Ensure that a path exists, possibly by instantiating it by
 | 
			
		||||
   realising a substitute. */
 | 
			
		||||
void ensurePath(const Path & path, PathSet pending = PathSet());
 | 
			
		||||
void ensurePath(const Path & path);
 | 
			
		||||
 | 
			
		||||
/* Read a store expression, after ensuring its existence through
 | 
			
		||||
   ensurePath(). */
 | 
			
		||||
StoreExpr storeExprFromPath(const Path & path, PathSet pending = PathSet());
 | 
			
		||||
StoreExpr storeExprFromPath(const Path & path);
 | 
			
		||||
 | 
			
		||||
/* Get the list of root (output) paths of the given store
 | 
			
		||||
   expression. */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue