diff --git a/NEWS b/NEWS index ac6ce194e..09ec14b4e 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)