doc/manual/source/release-notes/rl-1.6.1.md
This is primarily a bug fix release. Changes of interest are:
Nix 1.6 accidentally changed the semantics of antiquoted paths in
strings, such as "${/foo}/bar". This release reverts to the Nix
1.5.3 behaviour.
Previously, Nix optimised expressions such as "${expr}" to expr.
Thus it neither checked whether expr could be coerced to a string,
nor applied such coercions. This meant that "${123}" evaluatued to
123, and "${./foo}" evaluated to ./foo (even though "${./foo} " evaluates to "/nix/store/hash-foo "). Nix now checks the type
of antiquoted expressions and applies coercions.
Nix now shows the exact position of undefined variables. In
particular, undefined variable errors in a with previously didn't
show any position information, so this makes it a lot easier to
fix such errors.
Undefined variables are now treated consistently. Previously, the
tryEval function would catch undefined variables inside a with
but not outside. Now tryEval never catches undefined variables.
Bash completion in nix-shell now works correctly.
Stack traces are less verbose: they no longer show calls to builtin functions and only show a single line for each derivation on the call stack.
New built-in function: builtins.typeOf, which returns the type of
its argument as a string.