Nix 2.3 (2019-09-04) - Lix Reference Manual

# Release 2.3 (2019-09-04)

This is primarily a bug fix release. However, it makes some incompatible changes:

- Nix now uses BSD file locks instead of POSIX file locks. Because of this, you should not use Nix 2.3 and previous releases at the same time on a Nix store.

It also has the following changes:

- `builtins.fetchGit`'s `ref` argument now allows specifying an absolute remote ref. Nix will automatically prefix `ref` with `refs/heads` only if `ref` doesn't already begin with `refs/`.

- The installer now enables sandboxing by default on Linux when the system has the necessary kernel support.

- The `max-jobs` setting now defaults to 1.

- New builtin functions: `builtins.isPath`, `builtins.hashFile`.

- The `nix` command has a new `--print-build-logs` (`-L`) flag to print build log output to stderr, rather than showing the last log line in the progress bar. To distinguish between concurrent builds, log lines are prefixed by the name of the package.

- Builds are now executed in a pseudo-terminal, and the `TERM` environment variable is set to `xterm-256color`. This allows many programs (e.g. `gcc`, `clang`, `cmake`) to print colorized log output.

- Add `--no-net` convenience flag. This flag disables substituters; sets the `tarball-ttl` setting to infinity (ensuring that any previously downloaded files are considered current); and disables retrying downloads and sets the connection timeout to the minimum. This flag is enabled automatically if there are no configured non-loopback network interfaces.

- Add a `post-build-hook` setting to run a program after a build has succeeded.

- Add a `trace-function-calls` setting to log the duration of Nix function calls to stderr.