2020-07-23 00:17:48 +03:00
|
|
|
|
# Release 0.13 (2009-11-05)
|
|
|
|
|
|
|
|
|
|
This is primarily a bug fix release. It has some new features:
|
|
|
|
|
|
|
|
|
|
- Syntactic sugar for writing nested attribute sets. Instead of
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
foo = {
|
|
|
|
|
bar = 123;
|
|
|
|
|
xyzzy = true;
|
|
|
|
|
};
|
|
|
|
|
a = { b = { c = "d"; }; };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
you can write
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
foo.bar = 123;
|
|
|
|
|
foo.xyzzy = true;
|
|
|
|
|
a.b.c = "d";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This is useful, for instance, in NixOS configuration files.
|
|
|
|
|
|
|
|
|
|
- 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.)
|
|
|
|
|
|
|
|
|
|
- Support `i686-linux` builds directly on `x86_64-linux` Nix
|
|
|
|
|
installations. This is implemented using the `personality()`
|
|
|
|
|
syscall, which causes `uname` to return `i686` in child processes.
|
|
|
|
|
|
|
|
|
|
- Various improvements to the `chroot` support. Building in a `chroot`
|
|
|
|
|
works quite well now.
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
- Support for large (\> 4 GiB) files in NAR archives.
|
|
|
|
|
|
|
|
|
|
- Various (performance) improvements to the remote build mechanism.
|
|
|
|
|
|
|
|
|
|
- New primops: `builtins.addErrorContext` (to add a string to stack
|
|
|
|
|
traces — useful for debugging), `builtins.isBool`,
|
|
|
|
|
`builtins.isString`, `builtins.isInt`, `builtins.intersectAttrs`.
|
|
|
|
|
|
|
|
|
|
- OpenSolaris support (Sander van der Burg).
|
|
|
|
|
|
|
|
|
|
- Stack traces are no longer displayed unless the `--show-trace`
|
|
|
|
|
option is used.
|
|
|
|
|
|
|
|
|
|
- The scoping rules for `inherit
|
2020-07-23 15:28:05 +03:00
|
|
|
|
(e) ...` in recursive attribute sets have changed. The expression
|
|
|
|
|
*e* can now refer to the attributes defined in the containing set.
|