lix/tests
John Ericson 44c8d83831 Create outputOf primop.
In the Nix language, given a drv path, we should be able to construct
another string referencing to one of its output. We can do this today
with `(import drvPath).output`, but this only works for derivations we
already have.

With dynamic derivations, however, that doesn't work well because the
`drvPath` isn't yet built: importing it like would need to trigger IFD,
when the whole point of this feature is to do "dynamic build graph"
without IFD!

Instead, what we want to do is create a placeholder value with the right
string context to refer to the output of the as-yet unbuilt derivation.
A new primop in the language, analogous to `builtins.placeholder` can be
used to create one. This will achieve all the right properties. The
placeholder machinery also will match out the `outPath` attribute for CA
derivations works.

In 60b7121d2c we added that type of
placeholder, and the derived path and string holder changes necessary to
support it. Then in the previous commit we cleaned up the code
(inspiration finally hit me!) to deduplicate the code and expose exactly
what we need. Now, we can wire up the primop trivally!

Part of RFC 92: dynamic derivations (tracking issue #6316)

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-08-14 09:37:37 -04:00
..
ca Try to realise CA derivations during queryMissing 2023-08-09 20:57:04 +01:00
common
config
dyn-drv Create outputOf primop. 2023-08-14 09:37:37 -04:00
flakes
installer
lang toJSON: Add attribute path to trace 2023-07-31 13:02:54 +02:00
nested-sandboxing Test nested sandboxing, and make nicer error 2023-07-14 09:40:24 -04:00
nixos Merge pull request #8506 from corngood/ssh-master 2023-07-18 15:47:57 +02:00
plugins
test-libstoreconsumer Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
add.sh
bad.tar.xz
bash-profile.sh
big-derivation-attr.nix
binary-cache-build-remote.sh
binary-cache.sh
brotli.sh
build-delete.sh
build-dry.sh
build-hook-ca-fixed.nix
build-hook-ca-floating.nix
build-hook.nix
build-remote-content-addressed-fixed.sh
build-remote-content-addressed-floating.sh
build-remote-input-addressed.sh
build-remote-trustless-after.sh
build-remote-trustless-should-fail-0.sh
build-remote-trustless-should-pass-0.sh
build-remote-trustless-should-pass-1.sh
build-remote-trustless-should-pass-2.sh
build-remote-trustless-should-pass-3.sh
build-remote-trustless.sh
build-remote.sh
build.sh Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix
check-refs.sh Stabilize discard-references 2023-08-07 16:53:37 +02:00
check-reqs.nix
check-reqs.sh
check.nix
check.sh
common.sh
completions.sh
compression-levels.sh
compute-levels.sh
config.nix.in
config.sh
db-migration.sh
dependencies.builder0.sh
dependencies.nix
dependencies.sh
derivation-json.sh
dummy
dump-db.sh
eval-store.sh
eval.nix
eval.sh
experimental-features.sh
export-graph.nix
export-graph.sh
export.sh
failing.nix
fetchClosure.sh
fetchGit.sh
fetchGitRefs.sh
fetchGitSubmodules.sh
fetchMercurial.sh
fetchPath.sh
fetchTree-file.sh Don't require .tar/.zip extension for tarball flakerefs 2023-08-01 16:07:20 +02:00
fetchurl.sh
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix
fixed.sh
fmt.sh
fmt.simple.sh
function-trace.sh
gc-auto.sh
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh
gc-concurrent2.builder.sh
gc-non-blocking.sh
gc-runtime.nix
gc-runtime.sh
gc.sh
hash-check.nix
hash.sh
hermetic.nix
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh
init.sh
install-darwin.sh
lang-test-infra.sh
lang.sh
legacy-ssh-store.sh
linux-sandbox-cert-test.nix
linux-sandbox.sh
local-store.sh
local.mk Test the parallel copy over ssh-ng 2023-08-08 11:55:09 +02:00
logging.sh
misc.sh
multiple-outputs.nix
multiple-outputs.sh
nar-access.nix
nar-access.sh
nested-sandboxing.sh Test nested sandboxing, and make nicer error 2023-07-14 09:40:24 -04:00
nix-build-examples.nix
nix-build.sh
nix-channel.sh
nix-collect-garbage-d.sh
nix-copy-ssh-ng.sh Test the parallel copy over ssh-ng 2023-08-08 11:55:09 +02:00
nix-copy-ssh.sh
nix-daemon-untrusting.sh
nix-profile.sh
nix-shell.sh
nix_path.sh
optimise-store.sh
output-normalization.sh
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh
path-from-hash-part.sh
path.nix
placeholders.sh
plugins.sh
post-hook.sh
pure-eval.nix
pure-eval.sh
push-to-store-old.sh
push-to-store.sh
read-only-store.sh
readfile-context.nix
readfile-context.sh
recursive.nix
recursive.sh
referrers.sh
remote-store.sh
repair.sh
repl.sh
restricted.nix
restricted.sh
search.nix
search.sh
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
shell-hello.nix
shell.nix
shell.sh
shell.shebang.rb
shell.shebang.sh
signing.sh
simple-failing.nix
simple.builder.sh
simple.nix
simple.sh
ssh-relay.sh
store-ping.sh
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh
substitute-with-invalid-ca.sh
suggestions.sh
supplementary-groups.sh
tarball.sh
test-infra.sh
test-libstoreconsumer.sh
timeout.nix
timeout.sh
toString-path.sh
undefined-variable.nix
user-envs-migration.sh
user-envs.builder.sh
user-envs.nix
user-envs.sh
why-depends.sh nix/why-depends: fix output of --precise 2023-08-04 23:11:08 +02:00
zstd.sh