You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/manual/source/store/derivation/outputs/index.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
# Derivation Outputs and Types of Derivations
2
2
3
3
As stated on the [main pages on derivations](../index.md#store-derivation),
4
-
a derivation produces [store objects], which are known as the *outputs* of the derivation.
4
+
a derivation produces [store objects](@docroot@/store/store-object.md), which are known as the *outputs* of the derivation.
5
5
Indeed, the entire point of derivations is to produce these outputs, and to reliably and reproducably produce these derivations each time the derivation is run.
6
6
7
7
One of the parts of a derivation is its *outputs specification*, which specifies certain information about the outputs the derivation produces when run.
8
8
The outputs specification is a map, from names to specifications for individual outputs.
9
9
10
10
## Output Names {#outputs}
11
11
12
-
Output names can be any string which is also a valid [store path] name.
12
+
Output names can be any string which is also a valid [store path](@docroot@/store/store-path.md) name.
13
13
The name mapped to each output specification is not actually the name of the output.
14
14
In the general case, the output store object has name `derivationName + "-" + outputSpecName`, not any other metadata about it.
15
15
However, an output spec named "out" describes and output store object whose name is just the derivation name.
@@ -24,11 +24,11 @@ However, an output spec named "out" describes and output store object whose name
24
24
>
25
25
> - The store path of `dev` will be: `/nix/store/<hash>-hello-dev`.
26
26
27
-
The outputs are the derivations are the [store objects][storeobject] it is obligated to produce.
27
+
The outputs are the derivations are the [store objects](@docroot@/store/store-object.md) it is obligated to produce.
28
28
29
29
> **Note**
30
30
>
31
-
> The formal terminology here is somewhat at adds with everyday communication in the Nix community today.
31
+
> The formal terminology here is somewhat at odds with everyday communication in the Nix community today.
32
32
> "output" in casual usage tends to refer to either to the actual output store object, or the notional output spec, depending on context.
33
33
>
34
34
> For example "hello's `dev` output" means the store object referred to by the store path `/nix/store/<hash>-hello-dev`.
@@ -64,7 +64,7 @@ The rules for this are fairly concise:
64
64
65
65
(This is an arbitrary restriction that could be lifted.)
66
66
67
-
- The output is either *fixed* or *floating*, indicating whether the its store path is known prior to building it.
67
+
- The output is either *fixed* or *floating*, indicating whether the store path is known prior to building it.
Copy file name to clipboardExpand all lines: doc/manual/source/store/file-system-object/content-address.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ be many different serialisations.
46
46
For these reasons, Nix has its very own archive format—the Nix Archive (NAR) format,
47
47
which is carefully designed to avoid the problems described above.
48
48
49
-
The exact specification of the Nix Archive format is in `protocols/nix-archive.md`
49
+
The exact specification of the Nix Archive format is in [specified here](../../protocols/nix-archive.md).
50
50
51
51
## Content addressing File System Objects beyond a single serialisation pass
52
52
@@ -80,6 +80,7 @@ Thus, Git can encode some, but not all of Nix's "File System Objects", and this
80
80
81
81
In the future, we may support a Git-like hash for such file system objects, or we may adopt another Merkle DAG format which is capable of representing all Nix file system objects.
Copy file name to clipboardExpand all lines: doc/manual/source/store/store-object/content-address.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ The hashes of these modified input streams are used instead.
50
50
51
51
When validating the content address of a store object after the fact, the above process works as written.
52
52
However, when first creating the store object we don't know the store object's store path, as explained just above.
53
-
We therefore, strictly speaking, do not know what value we will be replacing with the sentinental value in the inputs to hash functions.
53
+
We therefore, strictly speaking, do not know what value we will be replacing with the sentinel value in the inputs to hash functions.
54
54
What instead happens is that the provisional store object --- the data from which we wish to create a store object --- is paired with a provisional "scratch" store path (that presumably was chosen when the data was created).
55
55
That provisional store path is instead what is replaced with the sentinel value, rather than the final store object which we do not yet know.
0 commit comments