mirror of
https://github.com/NixOS/nix.git
synced 2025-11-12 21:46:01 +01:00
Clean out some TODOs
More can be written, but this will do for now.
This commit is contained in:
parent
3d3a86dae7
commit
f3fa9cfa1d
2 changed files with 11 additions and 12 deletions
|
|
@ -1,13 +1,10 @@
|
|||
# Building
|
||||
|
||||
TODO
|
||||
|
||||
## Normalizing derivation inputs
|
||||
|
||||
TODO
|
||||
- Each input must be [realised] prior to building the derivation in question.
|
||||
|
||||
Each input must be [realised] prior to building the derivation in question.
|
||||
At that point, the derivation can be *normalized*, by replacing each input deriving path with its store path --- which we now know since we've realised it.
|
||||
- Once this is done, the derivation is *normalized*, replacing each input deriving path with its store path, which we now know from realising the input.
|
||||
|
||||
## Builder Execution
|
||||
|
||||
|
|
@ -68,10 +65,7 @@ The [`builder`](./drv.md#builder) is executed as follows:
|
|||
- The temporary directory is removed (unless the `-K` option was
|
||||
specified).
|
||||
|
||||
- If the build was successful, Nix scans each output path for
|
||||
references to input paths by looking for the hash parts of the input
|
||||
paths. Since these are potential runtime dependencies, Nix registers
|
||||
them as dependencies of the output paths.
|
||||
## Processing outputs and Reference scanning
|
||||
|
||||
- After the build, Nix sets the last-modified timestamp on all files
|
||||
in the build result to 1 (00:00:01 1/1/1970 UTC), sets the group to
|
||||
|
|
@ -83,6 +77,10 @@ The [`builder`](./drv.md#builder) is executed as follows:
|
|||
deployment have no concept of ownership information, and because it
|
||||
makes the build result dependent on the user performing the build.
|
||||
|
||||
## Processing outputs and Reference scanning
|
||||
- If the build was successful, Nix scans each output path for
|
||||
references to input paths by looking for the hash parts of the input
|
||||
paths. Since these are potential runtime dependencies, Nix registers
|
||||
them as dependencies of the output paths.
|
||||
|
||||
TODO
|
||||
Nix also scans for references to other outputs' paths in the same way, because outputs are allowed to refer to each other.
|
||||
If the outputs' references to each other form a cycle, this is an error, because the references of store objects much be acyclic.
|
||||
|
|
|
|||
|
|
@ -295,7 +295,8 @@ Under this extended model, `DerivingPath`s are thus inductively built up from an
|
|||
|
||||
### Encoding {#deriving-path-encoding}
|
||||
|
||||
The encoding is adjusted in a very simplest way, merely displaying the same
|
||||
The encoding is adjusted in the natural way, encoding the `drv` field recursively using the same deriving path encoding.
|
||||
The result of this is that it is possible to have a chain of `^<output-name>` at the end of the final string, as opposed to just a single one.
|
||||
|
||||
> **Example**
|
||||
>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue