reword documentation on builtins

- add anchor to `builtins`
- add type information
- reword description of `builtins` to offer more information concisely
This commit is contained in:
Valentin Gagarin 2023-05-11 15:41:29 +02:00
parent 2ef7f14e28
commit 69a0e6f86c

View file

@ -1,20 +1,19 @@
# Built-in Constants # Built-in Constants
Here are the constants built into the Nix expression evaluator: These constants are built into the Nix language evaluator:
- `builtins`\ - [`builtins`]{#builtins-builtins} (attribute set)
The set `builtins` contains all the built-in functions and values.
You can use `builtins` to test for the availability of features in Contains all the [built-in functions](./builtins.md) and values, in order to avoid polluting the global scope.
the Nix installation, e.g.,
Since built-in functions were added over time, [testing for attributes](./operators.md#has-attribute) in `builtins` can be used for graceful fallback on older Nix installations:
```nix ```nix
if builtins ? getEnv then builtins.getEnv "PATH" else "" if builtins ? getEnv then builtins.getEnv "PATH" else ""
``` ```
This allows a Nix expression to fall back gracefully on older Nix - [`builtins.currentSystem`]{#builtins-currentSystem} (string)
installations that dont have the desired built-in function.
- [`builtins.currentSystem`]{#builtins-currentSystem}\
The built-in value `currentSystem` evaluates to the Nix platform The built-in value `currentSystem` evaluates to the Nix platform
identifier for the Nix installation on which the expression is being identifier for the Nix installation on which the expression is being
evaluated, such as `"i686-linux"` or `"x86_64-darwin"`. evaluated, such as `"i686-linux"` or `"x86_64-darwin"`.