Nushell 0.96.1
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your command line. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful command line pipelines.
Today, we're releasing version 0.96.1 of Nu. This release fixes various bugs introduced by the 0.96.0 release, including the behavior of $in
in range expressions, and some minor fixes to IR evaluation and plugins.
Where to get it
Nu 0.96.1 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu
.
As part of this release, we also publish a set of optional plugins you can install and use with Nu. To install, use cargo install nu_plugin_<plugin name>
.
Table of content
Highlights and themes of this release [toc]
Fix $in
in range expressions [toc]
0.96.0 changed how $in
-containing expressions worked to make them more consistent, but we missed checking the expressions contained within ranges. Piping to a range expression containing $in
has now been fixed:
3 | 0..$in | each { print }
Thanks to Maxim Uvarov for finding and reporting this issue!
IR: fix incorrect capturing of subexpressions [toc]
A bug was found by user warp
over on Discord in the new internal representation engine that we introduced as a preview in 0.96.0. Subexpressions (i.e., expressions in parentheses) should not have any impact on the capturing behavior of external commands, but this was implemented incorrectly. In 0.96.0, the following code produced no output when run with IR even though it should have still resulted in a message being printed:
(nu -c 'print foo'); null
This was most noticeable when running some kind of interactive command, as it would result in stdout not being a TTY. We have fixed the IR implementation to match the behavior of the AST evaluator.
Clean up arguments added to stack after CallDecl
engine call [toc]
A memory leak was present when using the new CallDecl
engine call from plugins. The arguments included in the call would persist in memory until the plugin call ended, rather than being removed at the end of the engine call. This has been fixed.
Changes to commands [toc]
Bug fixes and other changes [toc]
keybindings list
[toc]
The keybindings list
command was unintentionally changed to acts as if no options had been selected if none of the toggle switches for different categories had been provided. This would result in an empty list. The previous behavior of returning all categories by default has been restored.