Currently, drvPath attributes have a very weird DrvDeep nix string context elem. This string context element makes refer to
all the outputs of all the derivations in the the closure of the path.
The "all the outputs part" is really weird! builtins.unsafeDiscardOutputDependency turns this back to a regular string context, but it is unfortunate to have to use an "unsafe" function to get back to the more normal behavior.
Instead, it would be nice if drvPath had a regular Opaque string context, and instead there was a primop to do the opposite: turn a string with a single such opaque string context elem to one with a single drv-deep string context elem.
See also #7330
TODO
Currently,
drvPathattributes have a very weirdDrvDeepnix string context elem. This string context element makes refer toThe "all the outputs part" is really weird!
builtins.unsafeDiscardOutputDependencyturns this back to a regular string context, but it is unfortunate to have to use an "unsafe" function to get back to the more normal behavior.Instead, it would be nice if
drvPathhad a regularOpaquestring context, and instead there was a primop to do the opposite: turn a string with a single such opaque string context elem to one with a single drv-deep string context elem.See also #7330
TODO
builtins.addDrvOutputDependenciesprimopbuiltins.unsafeDiscardOutputDependencyto NixpkgsmkDerivation'sdrvPath.