about summary refs log tree commit diff
path: root/NEWS
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-09-13T10·57+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-09-13T10·57+0000
commit699073c337d022aa32eac6e840035dbd324d5120 (patch)
treec39cc0230801051427263a56c153758063d2c8da /NEWS
parentcb44aa03b85c3622b3ffe5879e73f46ce78ffba0 (diff)
* Release notes.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS56
1 files changed, 53 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index ac6ce194e376..09ec14b4ebe8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 Version 0.9
 
-NOTE: this version of Nix used Berkeley DB 4.3 instead of 4.2.  The
+NOTE: this version of Nix uses Berkeley DB 4.3 instead of 4.2.  The
 database is upgraded automatically, but you should be careful not to
 use old versions of Nix that still use Berkeley DB 4.2.  In
 particular, if you use a Nix installed through Nix, you should run
@@ -9,8 +9,8 @@ particular, if you use a Nix installed through Nix, you should run
 
 first.
 
-* Unpacking of patch sequences is much faster now by not doing
-  redundant unpacking and repacking of intermediate paths.
+* Unpacking of patch sequences is much faster now since we no longer
+  do redundant unpacking and repacking of intermediate paths.
 
 * Nix now uses Berkeley DB 4.3.
 
@@ -19,6 +19,56 @@ first.
   no data dependencies on the `outPath' and `drvPath' attributes
   computed by `derivation').
 
+  For example, the expression `derivation attrs' now evaluates to
+  (essentially)
+
+    attrs // {
+      type = "derivation";
+      outPath = derivation! attrs;
+      drvPath = derivation! attrs;
+    }
+
+  where `derivation!' is a primop that does the actual derivation
+  instantiation (i.e., it does what `derivation' used to do).  The
+  advantage is that it allows commands such as `nix-env -qa' and
+  `nix-env -i' to be much faster since they no longer need to
+  instantiate all derivations, just the `name' attribute.
+
+  Also, it allows derivations to cyclically reference each other, for
+  example,
+
+    webServer = derivation {
+      ...
+      hostName = "svn.cs.uu.nl";
+      services = [svnService];
+    };
+
+    svnService = derivation {
+      ...
+      hostName = webServer.hostName;
+    };
+
+  Previously, this would yield a black hole (infinite recursion).
+
+* `nix-build' now defaults to using `./default.nix' if no Nix
+  expression is specified.
+
+* `nix-instantiate', when applied to a Nix expression that evaluates
+  to a function, will call the function automatically if all its
+  arguments have defaults.
+
+* Nix now uses libtool to build dynamic libraries.  This reduces the
+  size of executables.
+
+* A new list concatenation operator `++'.  For example, `[1 2 3] ++ [4
+  5 6]' evaluates to `[1 2 3 4 5 6]'.
+  
+* Some currently undocumented primops to support low-level build
+  management using Nix (i.e., using Nix as a Make replacement).  See
+  the commit message for r3578 and r3580.
+
+* Various bug fixes and performance improvements.
+  
 
 Version 0.8 (April 11, 2005)