Home Explore Blog CI



nix

2nd chunk of `doc/manual/source/release-notes/rl-0.10.md`
59714e9c532086cba91ac1f2ad028759356bbb9c1d80258f0000000100000ca0
      - Lots of new built-in primitives, such as functions for list
        manipulation and integer arithmetic. See the manual for a
        complete list. All primops are now available in the set
        `builtins`, allowing one to test for the availability of primop
        in a backwards-compatible way.
    
      - Real let-expressions: `let x = ...;
                                                        ... z = ...; in ...`.

  - New commands `nix-pack-closure` and `nix-unpack-closure` than can be
    used to easily transfer a store path with all its dependencies to
    another machine. Very convenient whenever you have some package on
    your machine and you want to copy it somewhere else.

  - XML support:
    
      - `nix-env -q --xml` prints the installed or available packages in
        an XML representation for easy processing by other tools.
    
      - `nix-instantiate --eval-only
                                                        --xml` prints an XML representation of the resulting term. (The
        new flag `--strict` forces ‘deep’ evaluation of the result,
        i.e., list elements and attributes are evaluated recursively.)
    
      - In Nix expressions, the primop `builtins.toXML` converts a term
        to an XML representation. This is primarily useful for passing
        structured information to builders.

  - You can now unambiguously specify which derivation to build or
    install in `nix-env`, `nix-instantiate` and `nix-build` using the
    `--attr` / `-A` flags, which takes an attribute name as argument.
    (Unlike symbolic package names such as `subversion-1.4.0`, attribute
    names in an attribute set are unique.) For instance, a quick way to
    perform a test build of a package in Nixpkgs is `nix-build
            pkgs/top-level/all-packages.nix -A
            foo`. `nix-env -q
            --attr` shows the attribute names corresponding to each derivation.

  - If the top-level Nix expression used by `nix-env`, `nix-instantiate`
    or `nix-build` evaluates to a function whose arguments all have
    default values, the function will be called automatically. Also, the
    new command-line switch `--arg
            name
            value` can be used to specify function arguments on the command
    line.

  - `nix-install-package --url
            URL` allows a package to be installed directly from the given URL.

  - Nix now works behind an HTTP proxy server; just set the standard
    environment variables `http_proxy`, `https_proxy`, `ftp_proxy` or
    `all_proxy` appropriately. Functions such as `fetchurl` in Nixpkgs
    also respect these variables.

  - `nix-build -o
            symlink` allows the symlink to the build result to be named
    something other than `result`.

  - Platform support:
    
      - Support for 64-bit platforms, provided a [suitably patched ATerm
        library](http://bugzilla.sen.cwi.nl:8080/show_bug.cgi?id=606) is
        used. Also, files larger than 2 GiB are now supported.
    
      - Added support for Cygwin (Windows, `i686-cygwin`), Mac OS X on
        Intel (`i686-darwin`) and Linux on PowerPC (`powerpc-linux`).
    
      - Users of SMP and multicore machines will appreciate that the

Title: Nix Release 0.10: New Features and Improvements (Continued)
Summary
The Nix Release 0.10 introduces new built-in primitives, real let-expressions, and commands for transferring store paths. It adds XML support for package queries and instantiation, allowing structured information to be passed to builders. Users can now specify derivations to build or install using the `--attr` flag. Nix can automatically call top-level functions with default arguments and accepts arguments via the command line. Packages can be installed directly from URLs, and Nix now works behind HTTP proxies. The release includes platform support for 64-bit systems, Cygwin, Mac OS X on Intel, and Linux on PowerPC.