<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="ssec-relnotes-0.13"> <title>Release 0.13 (2009-11-05)</title> <para>This is primarily a bug fix release. It has some new features:</para> <itemizedlist> <listitem> <para>Syntactic sugar for writing nested attribute sets. Instead of <programlisting> { foo = { bar = 123; xyzzy = true; }; a = { b = { c = "d"; }; }; } </programlisting> you can write <programlisting> { foo.bar = 123; foo.xyzzy = true; a.b.c = "d"; } </programlisting> This is useful, for instance, in NixOS configuration files.</para> </listitem> <listitem> <para>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.)</para> </listitem> <listitem> <para>Support <literal>i686-linux</literal> builds directly on <literal>x86_64-linux</literal> Nix installations. This is implemented using the <function>personality()</function> syscall, which causes <command>uname</command> to return <literal>i686</literal> in child processes.</para> </listitem> <listitem> <para>Various improvements to the <literal>chroot</literal> support. Building in a <literal>chroot</literal> works quite well now.</para> </listitem> <listitem> <para>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.</para> </listitem> <listitem> <para>Support for large (> 4 GiB) files in NAR archives.</para> </listitem> <listitem> <para>Various (performance) improvements to the remote build mechanism.</para> </listitem> <listitem> <para>New primops: <varname>builtins.addErrorContext</varname> (to add a string to stack traces — useful for debugging), <varname>builtins.isBool</varname>, <varname>builtins.isString</varname>, <varname>builtins.isInt</varname>, <varname>builtins.intersectAttrs</varname>.</para> </listitem> <listitem> <para>OpenSolaris support (Sander van der Burg).</para> </listitem> <listitem> <para>Stack traces are no longer displayed unless the <option>--show-trace</option> option is used.</para> </listitem> <listitem> <para>The scoping rules for <literal>inherit (<replaceable>e</replaceable>) ...</literal> in recursive attribute sets have changed. The expression <replaceable>e</replaceable> can now refer to the attributes defined in the containing set.</para> </listitem> </itemizedlist> </section>