Nix 0.13 (2009-11-05) - Lix Reference Manual

# Release 0.13 (2009-11-05)

This is primarily a bug fix release. It has some new features:

- Syntactic sugar for writing nested attribute sets. Instead of

      {
        foo = {
          bar = 123;
          xyzzy = true;
        };
        a = { b = { c = "d"; }; };
      }

  you can write

      {
        foo.bar = 123;
        foo.xyzzy = true;
        a.b.c = "d";
      }

  This is useful, for instance, in NixOS configuration files.

- Support for Nix channels generated by Hydra, the Nix-based continuous build system. (Hydra generates NAR archives on the fly, so the size and hash of these archives isn’t known in advance.)

- Support `i686-linux` builds directly on `x86_64-linux` Nix installations. This is implemented using the `personality()` syscall, which causes `uname` to return `i686` in child processes.

- Various improvements to the `chroot` support. Building in a `chroot` works quite well now.

- Nix no longer blocks if it tries to build a path and another process is already building the same path. Instead it tries to build another buildable path first. This improves parallelism.

- Support for large (> 4 GiB) files in NAR archives.

- Various (performance) improvements to the remote build mechanism.

- New primops: `builtins.addErrorContext` (to add a string to stack traces — useful for debugging), `builtins.isBool`, `builtins.isString`, `builtins.isInt`, `builtins.intersectAttrs`.

- OpenSolaris support (Sander van der Burg).

- Stack traces are no longer displayed unless the `--show-trace` option is used.

- The scoping rules for `inherit (e) ...` in recursive attribute sets have changed. The expression e can now refer to the attributes defined in the containing set.