mirror of
https://github.com/nushell/nushell
synced 2025-01-03 16:58:58 +00:00
9fd6923821
* Implement minmax for Range; Simplify range command * Port random integer to enginep; New FromValue impl Now, FromValue is implemented for Tagged<Range> to allow extracting args into this type. * Make sure range value extraction fails properly The range endpoint extraction methods now return error instead of silently clipping the value. This now makes `random integer ..-4` fail properly since -4 can't be cast as u64. * Port random decimal to enginep & Refactor This added a way to interpret Range limits as f64 and a Primitive helper to get its value as f64. A side effect of this commit is that it is now possible to specify the command bounds as true decimals. E.g., `random decimal 0.0..3.14` does not clip 3.14 to 3. |
||
---|---|---|
.. | ||
src | ||
tests | ||
Cargo.toml | ||
README.md |
Nu-Engine
Nu-engine handles most of the core logic of nushell. For example, engine handles: - Passing of data between commands - Evaluating a commands return values - Loading of user configurations
Top level introduction
The following topics shall give the reader a top level understanding how various topics are handled in nushell.
How are environment variables handled?
Environment variables (or short envs) are stored in the Scope
of the EvaluationContext
. That means that environment variables are scoped by default and we don't use std::env
to store envs (but make exceptions where convenient).
Nushell handles environment variables and their lifetime the following:
- At startup all existing environment variables are read and put into
Scope
. (Nushell reads existing environment variables platform independent by asking theHost
. They will most likely come fromstd::env::*
) - Envs can also be loaded from config files. Each loaded config produces a new
ScopeFrame
with the envs of the loaded config. - Nu-Script files and internal commands read and write env variables from / to the
Scope
. External scripts and binaries can't interact with theScope
. Therefore all env variables are read from theScope
and put into the external binaries environment-variables-memory area.