Home Explore Blog CI



nushell

2nd chunk of `blog/2021-04-20-nushell_0_30.md`
39470b2db455d28f97d520b593956d5c90768bb9abf395480000000100000906


_Nu, now noticeably faster_

The 0.30 release is the first to include the engine-p experimental approaches that we mentioned in the last release. These changes streamline the engine, moving it from [async streams to iterators](https://github.com/nushell/nushell/pull/3270), [simplifying how commands handle their arguments](https://github.com/nushell/nushell/pull/3281), and how [outputs are passed from one command to the next](https://github.com/nushell/nushell/pull/3304).

The end result is an engine that is both simpler and much faster. In the above example we run two different benchmarks. The first is a run of [this script](https://github.com/nushell/nu_scripts/blob/main/coloring/gradient.nu) in the Nushell script repo. The second is a tight processing loop over many 10 million small records: `echo 1..10000000 | prepend 777 | append 555 | where $it > 7 | length`.

Though the performance numbers are still early, they're extremely promising.

## New built-in variable `$scope` (stevenbarragan, fdncred)

We're experimenting with a new built-in variable called `$scope`. This gives you access to definitions in scope, including variables.

## New Commands

- [`math sqrt`](https://github.com/nushell/nushell/pull/3239) (luccasmmg)
- [`any?` and `all?`](https://github.com/nushell/nushell/pull/3253) (andrasio)
- [`path parse`, `path join`, and `path split`](https://github.com/nushell/nushell/pull/3256) (kubouch)
- [`into int`](https://github.com/nushell/nushell/pull/3279) (efx)
- [`query json`](https://github.com/nushell/nushell/pull/3327) (fdncred). This is a new experimental query function as we explore how we'd like to do data querying in nushell.

## Documentation (andrasio)

We have a new [guide on how to create Nushell commands](https://github.com/nushell/nushell/pull/3326).

## Improvements (LhKipp, luccasmmg, waldyrious, ilius, fdncred, andrasio, DonnutPanic, ammrkn, sophiajt, schrieveslaach, daschl, nightscape)

- Lots of internal optimization updates: [1](https://github.com/nushell/nushell/pull/3289), [2](https://github.com/nushell/nushell/pull/3292), [3](https://github.com/nushell/nushell/pull/3300), [4](https://github.com/nushell/nushell/pull/3301), [5](https://github.com/nushell/nushell/pull/3306)

Title: Nushell 0.30: New Features and Improvements
Summary
Nushell 0.30 introduces performance enhancements, a new built-in variable `$scope` for accessing in-scope definitions, and new commands like `math sqrt`, `any?`, `all?`, `path parse`, `path join`, `path split`, `into int`, and `query json`. The release includes a guide on creating Nushell commands and various internal optimizations.