* Sync with the trunk.
This commit is contained in:
		
						commit
						955d11aae7
					
				
					 12 changed files with 114 additions and 13 deletions
				
			
		|  | @ -97,6 +97,25 @@ env-keep-derivations = false | ||||||
|   </varlistentry> |   </varlistentry> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |   <varlistentry xml:id="conf-build-cores"><term><literal>build-cores</literal></term> | ||||||
|  | 
 | ||||||
|  |     <listitem><para>Sets the value of the | ||||||
|  |     <envar>NIX_BUILD_CORES</envar> environment variable in the | ||||||
|  |     invocation of builders.  Builders can use this variable at their | ||||||
|  |     discretion to control the maximum amount of parallelism.  For | ||||||
|  |     instance, in Nixpkgs, if the derivation attribute | ||||||
|  |     <varname>enableParallelBuilding</varname> is set to | ||||||
|  |     <literal>true</literal>, the builder passes the | ||||||
|  |     <option>-j<replaceable>N</replaceable></option> flag to GNU Make. | ||||||
|  |     It can be overriden using the <option | ||||||
|  |     linkend='opt-cores'>--cores</option> command line switch and | ||||||
|  |     defaults to <literal>1</literal>.  The value <literal>0</literal> | ||||||
|  |     means that the builder should use all available CPU cores in the | ||||||
|  |     system.</para></listitem> | ||||||
|  | 
 | ||||||
|  |   </varlistentry> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|   <varlistentry xml:id="conf-build-max-silent-time"><term><literal>build-max-silent-time</literal></term> |   <varlistentry xml:id="conf-build-max-silent-time"><term><literal>build-max-silent-time</literal></term> | ||||||
| 
 | 
 | ||||||
|     <listitem> |     <listitem> | ||||||
|  |  | ||||||
|  | @ -27,10 +27,11 @@ | ||||||
|       <year>2007</year> |       <year>2007</year> | ||||||
|       <year>2008</year> |       <year>2008</year> | ||||||
|       <year>2009</year> |       <year>2009</year> | ||||||
|  |       <year>2010</year> | ||||||
|       <holder>Eelco Dolstra</holder> |       <holder>Eelco Dolstra</holder> | ||||||
|     </copyright> |     </copyright> | ||||||
| 
 | 
 | ||||||
|     <date>September 2009</date> |     <date>August 2010</date> | ||||||
|      |      | ||||||
|   </info> |   </info> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -120,7 +120,7 @@ dependencies used in the build, such as compilers).</para> | ||||||
| dependencies, we can do: | dependencies, we can do: | ||||||
|        |        | ||||||
| <screen> | <screen> | ||||||
| $ nix-push <replaceable>urls</replaceable> $(nix-instantiate $(nix-store -r foo.nix))</screen> | $ nix-push <replaceable>urls</replaceable> $(nix-store -r $(nix-instantiate foo.nix))</screen> | ||||||
|      |      | ||||||
| </para> | </para> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,6 +13,10 @@ | ||||||
|   </group> |   </group> | ||||||
|   <replaceable>number</replaceable> |   <replaceable>number</replaceable> | ||||||
| </arg> | </arg> | ||||||
|  | <arg> | ||||||
|  |   <arg><option>--cores</option></arg> | ||||||
|  |   <replaceable>number</replaceable> | ||||||
|  | </arg> | ||||||
| <arg> | <arg> | ||||||
|   <arg><option>--max-silent-time</option></arg> |   <arg><option>--max-silent-time</option></arg> | ||||||
|   <replaceable>number</replaceable> |   <replaceable>number</replaceable> | ||||||
|  |  | ||||||
|  | @ -98,7 +98,25 @@ | ||||||
|   linkend='conf-build-max-jobs'><literal>build-max-jobs</literal></link> |   linkend='conf-build-max-jobs'><literal>build-max-jobs</literal></link> | ||||||
|   configuration setting, which itself defaults to |   configuration setting, which itself defaults to | ||||||
|   <literal>1</literal>.  A higher value is useful on SMP systems or to |   <literal>1</literal>.  A higher value is useful on SMP systems or to | ||||||
|   exploit I/O latency.  </para></listitem> |   exploit I/O latency.</para></listitem> | ||||||
|  |    | ||||||
|  | </varlistentry> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <varlistentry xml:id="opt-cores"><term><option>--cores</option></term> | ||||||
|  | 
 | ||||||
|  |   <listitem><para>Sets the value of the <envar>NIX_BUILD_CORES</envar> | ||||||
|  |   environment variable in the invocation of builders.  Builders can | ||||||
|  |   use this variable at their discretion to control the maximum amount | ||||||
|  |   of parallelism.  For instance, in Nixpkgs, if the derivation | ||||||
|  |   attribute <varname>enableParallelBuilding</varname> is set to | ||||||
|  |   <literal>true</literal>, the builder passes the | ||||||
|  |   <option>-j<replaceable>N</replaceable></option> flag to GNU Make. | ||||||
|  |   It defaults to the value of the <link | ||||||
|  |   linkend='conf-build-cores'><literal>build-cores</literal></link> | ||||||
|  |   configuration setting, if set, or <literal>1</literal> otherwise. | ||||||
|  |   The value <literal>0</literal> means that the builder should use all | ||||||
|  |   available CPU cores in the system.</para></listitem> | ||||||
|    |    | ||||||
| </varlistentry> | </varlistentry> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,6 +6,59 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | <!--==================================================================--> | ||||||
|  | 
 | ||||||
|  | <section xml:id="ssec-relnotes-0.16"><title>Release 0.16 (August 17, 2010)</title> | ||||||
|  | 
 | ||||||
|  | <para>This release has the following improvements:</para> | ||||||
|  | 
 | ||||||
|  | <itemizedlist> | ||||||
|  | 
 | ||||||
|  |   <listitem> | ||||||
|  |     <para>The Nix expression evaluator is now much faster in most | ||||||
|  |     cases: typically, <link | ||||||
|  |     xlink:href="http://www.mail-archive.com/nix-dev@cs.uu.nl/msg04113.html">3 | ||||||
|  |     to 8 times compared to the old implementation</link>.  It also | ||||||
|  |     uses less memory.  It no longer depends on the ATerm | ||||||
|  |     library.</para> | ||||||
|  |   </listitem> | ||||||
|  | 
 | ||||||
|  |   <listitem> | ||||||
|  |     <para> | ||||||
|  |       Support for configurable parallelism inside builders.  Build | ||||||
|  |       scripts have always had the ability to perform multiple build | ||||||
|  |       actions in parallel (for instance, by running <command>make -j | ||||||
|  |       2</command>), but this was not desirable because the number of | ||||||
|  |       actions to be performed in parallel was not configurable.  Nix | ||||||
|  |       now has an option <option>--cores | ||||||
|  |       <replaceable>N</replaceable></option> as well as a configuration | ||||||
|  |       setting <varname>build-cores = | ||||||
|  |       <replaceable>N</replaceable></varname> that causes the | ||||||
|  |       environment variable <envar>NIX_BUILD_CORES</envar> to be set to | ||||||
|  |       <replaceable>N</replaceable> when the builder is invoked.  The | ||||||
|  |       builder can use this at its discretion to perform a parallel | ||||||
|  |       build, e.g., by calling <command>make -j | ||||||
|  |       <replaceable>N</replaceable></command>.  In Nixpkgs, this can be | ||||||
|  |       enabled on a per-package basis by setting the derivation | ||||||
|  |       attribute <varname>enableParallelBuilding</varname> to | ||||||
|  |       <literal>true</literal>. | ||||||
|  |     </para> | ||||||
|  |   </listitem> | ||||||
|  | 
 | ||||||
|  |   <listitem> | ||||||
|  |     <para><command>nix-store -q</command> now supports XML output | ||||||
|  |     through the <option>--xml</option> flag.</para> | ||||||
|  |   </listitem> | ||||||
|  | 
 | ||||||
|  |   <listitem> | ||||||
|  |     <para>Several bug fixes.</para> | ||||||
|  |   </listitem> | ||||||
|  | 
 | ||||||
|  | </itemizedlist> | ||||||
|  | 
 | ||||||
|  | </section> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| <!--==================================================================--> | <!--==================================================================--> | ||||||
| 
 | 
 | ||||||
| <section xml:id="ssec-relnotes-0.15"><title>Release 0.15 (March 17, 2010)</title> | <section xml:id="ssec-relnotes-0.15"><title>Release 0.15 (March 17, 2010)</title> | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ | ||||||
| # | # | ||||||
| # This option defines the number of CPU cores to utilize in parallel | # This option defines the number of CPU cores to utilize in parallel | ||||||
| # within a build job, i.e. by passing an appropriate `-jN' flag to GNU | # within a build job, i.e. by passing an appropriate `-jN' flag to GNU | ||||||
| # make. The default is 1, meaning that parallel building within jobs | # Make. The default is 1, meaning that parallel building within jobs | ||||||
| # is disabled.  Passing the special value `0' causes Nix to try and | # is disabled.  Passing the special value `0' causes Nix to try and | ||||||
| # auto-detect the number of available cores on the local host.  This | # auto-detect the number of available cores on the local host.  This | ||||||
| # setting can be overridden using the `--cores' command line switch. | # setting can be overridden using the `--cores' command line switch. | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								release.nix
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								release.nix
									
										
									
									
									
								
							|  | @ -1,5 +1,5 @@ | ||||||
| { nix ? {outPath = ./.; rev = 1234;} | { nixpkgs ? ../nixpkgs | ||||||
| , nixpkgs ? ../nixpkgs | , nix ? { outPath = ./.; rev = 1234; } | ||||||
| , officialRelease ? false | , officialRelease ? false | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
|  | @ -64,7 +64,7 @@ let | ||||||
|     build = |     build = | ||||||
|       { system ? "i686-linux" }: |       { system ? "i686-linux" }: | ||||||
| 
 | 
 | ||||||
|       with import nixpkgs {inherit system;}; |       with import nixpkgs { inherit system; }; | ||||||
| 
 | 
 | ||||||
|       releaseTools.nixBuild { |       releaseTools.nixBuild { | ||||||
|         name = "nix"; |         name = "nix"; | ||||||
|  | @ -80,7 +80,7 @@ let | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     coverage = |     coverage = | ||||||
|       with import nixpkgs {}; |       with import nixpkgs { system = "x86_64-linux"; }; | ||||||
| 
 | 
 | ||||||
|       releaseTools.coverageAnalysis { |       releaseTools.coverageAnalysis { | ||||||
|         name = "nix-build"; |         name = "nix-build"; | ||||||
|  | @ -143,7 +143,7 @@ let | ||||||
|   makeRPM =  |   makeRPM =  | ||||||
|     system: diskImageFun: prio: |     system: diskImageFun: prio: | ||||||
| 
 | 
 | ||||||
|     with import nixpkgs {inherit system;}; |     with import nixpkgs { inherit system; }; | ||||||
| 
 | 
 | ||||||
|     releaseTools.rpmBuild rec { |     releaseTools.rpmBuild rec { | ||||||
|       name = "nix-rpm-${diskImage.name}"; |       name = "nix-rpm-${diskImage.name}"; | ||||||
|  | @ -160,7 +160,7 @@ let | ||||||
|   makeDeb = |   makeDeb = | ||||||
|     system: diskImageFun: prio: |     system: diskImageFun: prio: | ||||||
| 
 | 
 | ||||||
|     with import nixpkgs {inherit system;}; |     with import nixpkgs { inherit system; }; | ||||||
| 
 | 
 | ||||||
|     releaseTools.debBuild { |     releaseTools.debBuild { | ||||||
|       name = "nix-deb"; |       name = "nix-deb"; | ||||||
|  | @ -169,7 +169,7 @@ let | ||||||
|       memSize = 1024; |       memSize = 1024; | ||||||
|       meta.schedulingPriority = prio; |       meta.schedulingPriority = prio; | ||||||
|       configureFlags = "--sysconfdir=/etc"; |       configureFlags = "--sysconfdir=/etc"; | ||||||
|       debRequires = ["curl"]; |       debRequires = [ "curl" ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -198,6 +198,9 @@ void RemoteStore::setOptions() | ||||||
|         writeInt(logType, to); |         writeInt(logType, to); | ||||||
|         writeInt(printBuildTrace, to); |         writeInt(printBuildTrace, to); | ||||||
|     } |     } | ||||||
|  |     if (GET_PROTOCOL_MINOR(daemonVersion) >= 6) { | ||||||
|  |         writeInt(buildCores, to); | ||||||
|  |     } | ||||||
|     processStderr(); |     processStderr(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ namespace nix { | ||||||
| #define WORKER_MAGIC_1 0x6e697863 | #define WORKER_MAGIC_1 0x6e697863 | ||||||
| #define WORKER_MAGIC_2 0x6478696f | #define WORKER_MAGIC_2 0x6478696f | ||||||
| 
 | 
 | ||||||
| #define PROTOCOL_VERSION 0x105 | #define PROTOCOL_VERSION 0x106 | ||||||
| #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00) | #define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00) | ||||||
| #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff) | #define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -502,6 +502,9 @@ static void performOp(unsigned int clientVersion, | ||||||
|             logType = (LogType) readInt(from); |             logType = (LogType) readInt(from); | ||||||
|             printBuildTrace = readInt(from) != 0; |             printBuildTrace = readInt(from) != 0; | ||||||
|         } |         } | ||||||
|  |         if (GET_PROTOCOL_MINOR(clientVersion) >= 6) { | ||||||
|  |             buildCores = readInt(from); | ||||||
|  |         } | ||||||
|         startWork(); |         startWork(); | ||||||
|         stopWork(); |         stopWork(); | ||||||
|         break; |         break; | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								version
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								version
									
										
									
									
									
								
							|  | @ -1 +1 @@ | ||||||
| 0.16 | 1.0 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue