# 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.

Last update: November 4, 2021