about summary refs log tree commit diff
path: root/tvix/docs/src/eval/builtins.md
blob: dba4c48c65e1a9634a00ed0a05a299fe2eefc6fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Nix builtins
============

Nix has a lot of built-in functions, some of which are accessible in
the global scope, and some of which are only accessible through the
global `builtins` attribute set.

This document is an attempt to track all of these builtins, but
without documenting their functionality.

See also https://nixos.org/manual/nix/stable/expressions/builtins.html

The `impl` column indicates implementation status in tvix:
- implemented: "" (empty cell)
- not yet implemented, but not blocked: `todo`
- not yet implemented, but blocked by other prerequisites:
  - `store`: awaiting eval<->store api(s)
  - `context`: awaiting support for string contexts

| name                          | global | arity | pure  | impl    |
|-------------------------------|--------|-------|-------|---------|
| abort                         | true   | 1     |       |         |
| add                           | false  | 2     | true  |         |
| addErrorContext               | false  | ?     |       | context |
| all                           | false  | 2     | true  |         |
| any                           | false  | 2     | true  |         |
| appendContext                 | false  | ?     |       |         |
| attrNames                     | false  | 1     | true  |         |
| attrValues                    | false  |       | true  |         |
| baseNameOf                    | true   |       |       |         |
| bitAnd                        | false  |       |       |         |
| bitOr                         | false  |       |       |         |
| bitXor                        | false  |       |       |         |
| builtins                      | true   |       |       |         |
| catAttrs                      | false  |       |       |         |
| compareVersions               | false  |       |       |         |
| concatLists                   | false  |       |       |         |
| concatMap                     | false  |       |       |         |
| concatStringsSep              | false  |       |       |         |
| currentSystem                 | false  |       |       |         |
| currentTime                   | false  |       | false |         |
| deepSeq                       | false  |       |       |         |
| derivation                    | true   |       |       | store   |
| derivationStrict              | true   |       |       | store   |
| dirOf                         | true   |       |       |         |
| div                           | false  |       |       |         |
| elem                          | false  |       |       |         |
| elemAt                        | false  |       |       |         |
| false                         | true   |       |       |         |
| fetchGit                      | true   |       |       | store   |
| fetchMercurial                | true   |       |       | store   |
| fetchTarball                  | true   |       |       | store   |
| fetchurl                      | false  |       |       | store   |
| filter                        | false  |       |       |         |
| filterSource                  | false  |       |       | store   |
| findFile                      | false  |       | false | todo    |
| foldl'                        | false  |       |       |         |
| fromJSON                      | false  |       |       |         |
| fromTOML                      | true   |       |       |         |
| functionArgs                  | false  |       |       |         |
| genList                       | false  |       |       |         |
| genericClosure                | false  |       |       | todo    |
| getAttr                       | false  |       |       |         |
| getContext                    | false  |       |       |         |
| getEnv                        | false  |       | false |         |
| hasAttr                       | false  |       |       |         |
| hasContext                    | false  |       |       |         |
| hashFile                      | false  |       | false |         |
| hashString                    | false  |       |       |         |
| head                          | false  |       |       |         |
| import                        | true   |       |       |         |
| intersectAttrs                | false  |       |       |         |
| isAttrs                       | false  |       |       |         |
| isBool                        | false  |       |       |         |
| isFloat                       | false  |       |       |         |
| isFunction                    | false  |       |       |         |
| isInt                         | false  |       |       |         |
| isList                        | false  |       |       |         |
| isNull                        | true   |       |       |         |
| isPath                        | false  |       |       |         |
| isString                      | false  |       |       |         |
| langVersion                   | false  |       |       |         |
| length                        | false  |       |       |         |
| lessThan                      | false  |       |       |         |
| listToAttrs                   | false  |       |       |         |
| map                           | true   |       |       |         |
| mapAttrs                      | false  |       |       |         |
| match                         | false  |       |       |         |
| mul                           | false  |       |       |         |
| nixPath                       | false  |       |       | todo    |
| nixVersion                    | false  |       |       | todo    |
| null                          | true   |       |       |         |
| parseDrvName                  | false  |       |       |         |
| partition                     | false  |       |       |         |
| path                          | false  |       | sometimes | store |
| pathExists                    | false  |       | false |         |
| placeholder                   | true   |       |       | context |
| readDir                       | false  |       | false |         |
| readFile                      | false  |       | false |         |
| removeAttrs                   | true   |       |       |         |
| replaceStrings                | false  |       |       |         |
| scopedImport                  | true   |       |       |         |
| seq                           | false  |       |       |         |
| sort                          | false  |       |       |         |
| split                         | false  |       |       |         |
| splitVersion                  | false  |       |       |         |
| storeDir                      | false  |       |       | store   |
| storePath                     | false  |       |       | store   |
| stringLength                  | false  |       |       |         |
| sub                           | false  |       |       |         |
| substring                     | false  |       |       |         |
| tail                          | false  |       |       |         |
| throw                         | true   |       |       |         |
| toFile                        | false  |       |       | store   |
| toJSON                        | false  |       |       |         |
| toPath                        | false  |       |       |         |
| toString                      | true   |       |       |         |
| toXML                         | true   |       |       |         |
| trace                         | false  |       |       |         |
| true                          | true   |       |       |         |
| tryEval                       | false  |       |       |         |
| typeOf                        | false  |       |       |         |
| unsafeDiscardOutputDependency | false  |       |       |         |
| unsafeDiscardStringContext    | false  |       |       |         |
| unsafeGetAttrPos              | false  |       |       | todo    |
| valueSize                     | false  |       |       | todo    |

## Added after C++ Nix 2.3 (without Flakes enabled)

| name          | global | arity | pure  | impl  |
|---------------|--------|-------|-------|-------|
| break         | false  | 1     |       | todo  |
| ceil          | false  | 1     | true  |       |
| fetchTree     | true   | 1     |       | todo  |
| floor         | false  | 1     | true  |       |
| groupBy       | false  | 2     | true  |       |
| traceVerbose  | false  | 2     |       | todo  |
| zipAttrsWith  | false  | 2     | true  | todo  |