git-subtree-dir: third_party/nix
git-subtree-mainline: cf8cd640c1
git-subtree-split: be66c7a6b24e3c3c6157fd37b86c7203d14acf10
		
	
			
		
			
				
	
	
		
			119 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<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-1.0">
 | 
						||
 | 
						||
<title>Release 1.0 (2012-05-11)</title>
 | 
						||
 | 
						||
<para>There have been numerous improvements and bug fixes since the
 | 
						||
previous release.  Here are the most significant:</para>
 | 
						||
 | 
						||
<itemizedlist>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Nix can now optionally use the Boehm garbage collector.
 | 
						||
    This significantly reduces the Nix evaluator’s memory footprint,
 | 
						||
    especially when evaluating large NixOS system configurations.  It
 | 
						||
    can be enabled using the <option>--enable-gc</option> configure
 | 
						||
    option.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Nix now uses SQLite for its database.  This is faster and
 | 
						||
    more flexible than the old <emphasis>ad hoc</emphasis> format.
 | 
						||
    SQLite is also used to cache the manifests in
 | 
						||
    <filename>/nix/var/nix/manifests</filename>, resulting in a
 | 
						||
    significant speedup.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Nix now has an search path for expressions.  The search path
 | 
						||
    is set using the environment variable <envar>NIX_PATH</envar> and
 | 
						||
    the <option>-I</option> command line option.  In Nix expressions,
 | 
						||
    paths between angle brackets are used to specify files that must
 | 
						||
    be looked up in the search path.  For instance, the expression
 | 
						||
    <literal><nixpkgs/default.nix></literal> looks for a file
 | 
						||
    <filename>nixpkgs/default.nix</filename> relative to every element
 | 
						||
    in the search path.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The new command <command>nix-build --run-env</command>
 | 
						||
    builds all dependencies of a derivation, then starts a shell in an
 | 
						||
    environment containing all variables from the derivation.  This is
 | 
						||
    useful for reproducing the environment of a derivation for
 | 
						||
    development.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The new command <command>nix-store --verify-path</command>
 | 
						||
    verifies that the contents of a store path have not
 | 
						||
    changed.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The new command <command>nix-store --print-env</command>
 | 
						||
    prints out the environment of a derivation in a format that can be
 | 
						||
    evaluated by a shell.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Attribute names can now be arbitrary strings.  For instance,
 | 
						||
    you can write <literal>{ "foo-1.2" = …; "bla bla" = …; }."bla
 | 
						||
    bla"</literal>.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Attribute selection can now provide a default value using
 | 
						||
    the <literal>or</literal> operator.  For instance, the expression
 | 
						||
    <literal>x.y.z or e</literal> evaluates to the attribute
 | 
						||
    <literal>x.y.z</literal> if it exists, and <literal>e</literal>
 | 
						||
    otherwise.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The right-hand side of the <literal>?</literal> operator can
 | 
						||
    now be an attribute path, e.g., <literal>attrs ?
 | 
						||
    a.b.c</literal>.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>On Linux, Nix will now make files in the Nix store immutable
 | 
						||
    on filesystems that support it.  This prevents accidental
 | 
						||
    modification of files in the store by the root user.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Nix has preliminary support for derivations with multiple
 | 
						||
    outputs.  This is useful because it allows parts of a package to
 | 
						||
    be deployed and garbage-collected separately.  For instance,
 | 
						||
    development parts of a package such as header files or static
 | 
						||
    libraries would typically not be part of the closure of an
 | 
						||
    application, resulting in reduced disk usage and installation
 | 
						||
    time.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The Nix store garbage collector is faster and holds the
 | 
						||
    global lock for a shorter amount of time.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>The option <option>--timeout</option> (corresponding to the
 | 
						||
    configuration setting <literal>build-timeout</literal>) allows you
 | 
						||
    to set an absolute timeout on builds — if a build runs for more than
 | 
						||
    the given number of seconds, it is terminated.  This is useful for
 | 
						||
    recovering automatically from builds that are stuck in an infinite
 | 
						||
    loop but keep producing output, and for which
 | 
						||
    <literal>--max-silent-time</literal> is ineffective.</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
  <listitem>
 | 
						||
    <para>Nix development has moved to GitHub (<link
 | 
						||
    xlink:href="https://github.com/NixOS/nix" />).</para>
 | 
						||
  </listitem>
 | 
						||
 | 
						||
</itemizedlist>
 | 
						||
 | 
						||
</section>
 |