about summary refs log tree commit diff
path: root/doc/manual/release-notes/rl-0.13.xml
blob: c116e42f5e4d69fc2c643558f482105ea016a01d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<chapter 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 (November 5, 2009)</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>

</chapter>