[Nix-dev] Nix 1.6 released

Eelco Dolstra eelco.dolstra at logicblox.com
Tue Sep 10 17:55:12 CEST 2013


Hi,

I'm pleased to announce the availability of a new stable release of the
Nix package manager.  Release 1.6 can be found at

  http://hydra.nixos.org/release/nix/nix-1.6

and

  http://nixos.org/releases/nix/nix-1.6/

In addition to the usual bug fixes, this release has several new features:

  * The command nix-build --run-env has been renamed to nix-shell.

  * nix-shell now sources $stdenv/setup inside the interactive shell, rather
    than in a parent shell. This ensures that shell functions defined by stdenv
    can be used in the interactive shell.

  * nix-shell has a new flag --pure to clear the environment, so you get an
    environment that more closely corresponds to the "real" Nix build.

  * nix-shell now sets the shell prompt (PS1) to ensure that Nix shells are
    distinguishable from your regular shells.

  * nix-env no longer requires a * argument to match all packages, so nix-env
    -qa is equivalent to nix-env -qa '*'.

  * nix-env -i has a new flag --remove-all (-r) to remove all previous packages
    from the profile. This makes it easier to do declarative package management
    similar to NixOS's environment.systemPackages. For instance, if you have a
    specification my-packages.nix like this:

    with import <nixpkgs> {};
    [ thunderbird
      geeqie
      ...
    ]

    then after any change to this file, you can run:

    $ nix-env -f my-packages.nix -ir

    to update your profile to match the specification.

  * The `with' language construct is now more lazy. It only evaluates its
    argument if a variable might actually refer to an attribute in the
    argument. For instance, this now works:

    let
      pkgs = with pkgs; { foo = "old"; bar = foo; } // overrides;
      overrides = { foo = "new"; };
    in pkgs.bar

    This evaluates to "new", while previously it gave an "infinite recursion"
    error.

  * Nix now has proper integer arithmetic operators. For instance, you can
    write x + y instead of builtins.add x y, or x < y instead of
    builtins.lessThan x y. The comparison operators also work on strings.

  * On 64-bit systems, Nix integers are now 64 bits rather than 32 bits.

  * When using the Nix daemon, the nix-daemon worker process now runs on the
    same CPU as the client, on systems that support setting CPU affinity. This
    gives a significant speedup on some systems.

  * If a stack overflow occurs in the Nix evaluator, you now get a proper error
    message (rather than "Segmentation fault") on some systems.

  * In addition to directories, you can now bind-mount regular files in chroots
    through the (now misnamed) option build-chroot-dirs.

This release has contributions from Domen Kožar, Eelco Dolstra, Florian
Friesdorf, Gergely Risko, Ivan Kozik, Ludovic Courtès and Shea Levy.

-- 
Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/


More information about the nix-dev mailing list