diff --git a/doc/manual/conf-file.xml b/doc/manual/conf-file.xml
index 19e86808e..cb47b9941 100644
--- a/doc/manual/conf-file.xml
+++ b/doc/manual/conf-file.xml
@@ -97,6 +97,25 @@ env-keep-derivations = false
+ build-cores
+
+ Sets the value of the
+ NIX_BUILD_CORES 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
+ enableParallelBuilding is set to
+ true, the builder passes the
+ flag to GNU Make.
+ It can be overriden using the command line switch and
+ defaults to 1. The value 0
+ means that the builder should use all available CPU cores in the
+ system.
+
+
+
+
build-max-silent-time
diff --git a/doc/manual/manual.xml b/doc/manual/manual.xml
index df926841a..090a92ce6 100644
--- a/doc/manual/manual.xml
+++ b/doc/manual/manual.xml
@@ -27,10 +27,11 @@
200720082009
+ 2010Eelco Dolstra
- September 2009
+ August 2010
diff --git a/doc/manual/nix-push.xml b/doc/manual/nix-push.xml
index 1435c5594..d2a7e063e 100644
--- a/doc/manual/nix-push.xml
+++ b/doc/manual/nix-push.xml
@@ -120,7 +120,7 @@ dependencies used in the build, such as compilers).
dependencies, we can do:
-$ nix-push urls $(nix-instantiate $(nix-store -r foo.nix))
+$ nix-push urls $(nix-store -r $(nix-instantiate foo.nix))
diff --git a/doc/manual/opt-common-syn.xml b/doc/manual/opt-common-syn.xml
index 0412fcb6a..da60288b2 100644
--- a/doc/manual/opt-common-syn.xml
+++ b/doc/manual/opt-common-syn.xml
@@ -13,6 +13,10 @@
number
+
+
+ number
+number
diff --git a/doc/manual/opt-common.xml b/doc/manual/opt-common.xml
index 3be9f5dd5..2d67162d7 100644
--- a/doc/manual/opt-common.xml
+++ b/doc/manual/opt-common.xml
@@ -98,7 +98,25 @@
linkend='conf-build-max-jobs'>build-max-jobs
configuration setting, which itself defaults to
1. A higher value is useful on SMP systems or to
- exploit I/O latency.
+ exploit I/O latency.
+
+
+
+
+
+
+ Sets the value of the NIX_BUILD_CORES
+ 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 enableParallelBuilding is set to
+ true, the builder passes the
+ flag to GNU Make.
+ It defaults to the value of the build-cores
+ configuration setting, if set, or 1 otherwise.
+ The value 0 means that the builder should use all
+ available CPU cores in the system.
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml
index e79563440..5b1c30bf8 100644
--- a/doc/manual/release-notes.xml
+++ b/doc/manual/release-notes.xml
@@ -6,6 +6,59 @@
+
+
+Release 0.16 (August 17, 2010)
+
+This release has the following improvements:
+
+
+
+
+ The Nix expression evaluator is now much faster in most
+ cases: typically, 3
+ to 8 times compared to the old implementation. It also
+ uses less memory. It no longer depends on the ATerm
+ library.
+
+
+
+
+ Support for configurable parallelism inside builders. Build
+ scripts have always had the ability to perform multiple build
+ actions in parallel (for instance, by running make -j
+ 2), but this was not desirable because the number of
+ actions to be performed in parallel was not configurable. Nix
+ now has an option as well as a configuration
+ setting build-cores =
+ N that causes the
+ environment variable NIX_BUILD_CORES to be set to
+ N when the builder is invoked. The
+ builder can use this at its discretion to perform a parallel
+ build, e.g., by calling make -j
+ N. In Nixpkgs, this can be
+ enabled on a per-package basis by setting the derivation
+ attribute enableParallelBuilding to
+ true.
+
+
+
+
+ nix-store -q now supports XML output
+ through the flag.
+
+
+
+ Several bug fixes.
+
+
+
+
+
+
+
Release 0.15 (March 17, 2010)
diff --git a/nix.conf.example b/nix.conf.example
index 7063bed54..3c55b570e 100644
--- a/nix.conf.example
+++ b/nix.conf.example
@@ -63,7 +63,7 @@
#
# 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
-# 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
# auto-detect the number of available cores on the local host. This
# setting can be overridden using the `--cores' command line switch.
diff --git a/release.nix b/release.nix
index 62ac87da7..589d0f035 100644
--- a/release.nix
+++ b/release.nix
@@ -1,5 +1,5 @@
-{ nix ? {outPath = ./.; rev = 1234;}
-, nixpkgs ? ../nixpkgs
+{ nixpkgs ? ../nixpkgs
+, nix ? { outPath = ./.; rev = 1234; }
, officialRelease ? false
}:
@@ -64,7 +64,7 @@ let
build =
{ system ? "i686-linux" }:
- with import nixpkgs {inherit system;};
+ with import nixpkgs { inherit system; };
releaseTools.nixBuild {
name = "nix";
@@ -80,7 +80,7 @@ let
coverage =
- with import nixpkgs {};
+ with import nixpkgs { system = "x86_64-linux"; };
releaseTools.coverageAnalysis {
name = "nix-build";
@@ -143,7 +143,7 @@ let
makeRPM =
system: diskImageFun: prio:
- with import nixpkgs {inherit system;};
+ with import nixpkgs { inherit system; };
releaseTools.rpmBuild rec {
name = "nix-rpm-${diskImage.name}";
@@ -160,7 +160,7 @@ let
makeDeb =
system: diskImageFun: prio:
- with import nixpkgs {inherit system;};
+ with import nixpkgs { inherit system; };
releaseTools.debBuild {
name = "nix-deb";
@@ -169,7 +169,7 @@ let
memSize = 1024;
meta.schedulingPriority = prio;
configureFlags = "--sysconfdir=/etc";
- debRequires = ["curl"];
+ debRequires = [ "curl" ];
};
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index 93319ebb8..8f162daee 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -198,6 +198,9 @@ void RemoteStore::setOptions()
writeInt(logType, to);
writeInt(printBuildTrace, to);
}
+ if (GET_PROTOCOL_MINOR(daemonVersion) >= 6) {
+ writeInt(buildCores, to);
+ }
processStderr();
}
diff --git a/src/libstore/worker-protocol.hh b/src/libstore/worker-protocol.hh
index 392a69acf..a4dc690b7 100644
--- a/src/libstore/worker-protocol.hh
+++ b/src/libstore/worker-protocol.hh
@@ -8,7 +8,7 @@ namespace nix {
#define WORKER_MAGIC_1 0x6e697863
#define WORKER_MAGIC_2 0x6478696f
-#define PROTOCOL_VERSION 0x105
+#define PROTOCOL_VERSION 0x106
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
#define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)
diff --git a/src/nix-worker/nix-worker.cc b/src/nix-worker/nix-worker.cc
index b292b83ed..9be733d8c 100644
--- a/src/nix-worker/nix-worker.cc
+++ b/src/nix-worker/nix-worker.cc
@@ -502,6 +502,9 @@ static void performOp(unsigned int clientVersion,
logType = (LogType) readInt(from);
printBuildTrace = readInt(from) != 0;
}
+ if (GET_PROTOCOL_MINOR(clientVersion) >= 6) {
+ buildCores = readInt(from);
+ }
startWork();
stopWork();
break;
diff --git a/version b/version
index a59ac4608..9f8e9b69a 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-0.16
\ No newline at end of file
+1.0
\ No newline at end of file