Home Explore Blog Models CI



nix

doc/manual/source/release-notes/rl-1.6.1.md
39b4139e2224f4474336d754fc460ed77a11ab041f19617d0000000300000595
# Release 1.6.1 (2013-10-28)

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.

Chunks
eb5f481a (1st chunk of `doc/manual/source/release-notes/rl-1.6.1.md`)
Title: Nix 1.6.1 Release Notes (2013-10-28)
Summary
This release, primarily focused on bug fixes, reverts the semantics of antiquoted paths in strings to Nix 1.5.3 behavior. It corrects the evaluation of `"${expr}"` to properly check types and apply coercions, ensuring expressions like `"${123}"` work as intended. Error reporting for undefined variables has been enhanced, now showing exact positions, particularly improving diagnostics for `with` expressions. The `tryEval` function's handling of undefined variables is now consistent, never catching them. Other improvements include a fix for Bash completion in `nix-shell`, less verbose stack traces, and the introduction of a new `builtins.typeOf` function.