lix/src/libcmd
John Ericson 7ad66cb3ef Allow dynamic derivation deps in inputDrvs
We use the same nested map representation we used for goals, again in
order to save space. We might someday want to combine with `inputDrvs`,
by doing `V = bool` instead of `V = std::set<OutputName>`, but we are
not doing that yet for sake of a smaller diff.

The ATerm format for Derivations also needs to be extended, in addition
to the in-memory format. To accomodate this, we added a new basic
versioning scheme, so old versions of Nix will get nice errors. (And
going forward, if the ATerm format changes again the errors will be even
better.)

`parsedStrings`, an internal function used as part of parsing
derivations in A-Term format, used to consume the final `]` but expect
the initial `[` to already be consumed. This made for what looked like
unbalanced brackets at callsites, which was confusing. Now it consumes
both which is hopefully less confusing.

As part of testing, we also created a unit test for the A-Term format for
regular non-experimental derivations too.

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>

Apply suggestions from code review

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-09-07 10:39:37 -04:00
..
built-path.cc Allow dynamic derivation deps in inputDrvs 2023-09-07 10:39:37 -04:00
built-path.hh Allow dynamic derivation deps in inputDrvs 2023-09-07 10:39:37 -04:00
command-installable-value.cc Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
command-installable-value.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
command.cc Clean up a few things related to profiles (#8526) 2023-06-19 04:04:59 +00:00
command.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
common-eval-args.cc Move evaluator settings (type and global) to separate file/header 2023-07-31 10:14:15 -04:00
common-eval-args.hh Clean up SearchPath 2023-07-09 23:22:22 -04:00
editor-for.cc Backport SourcePath from the lazy-trees branch 2023-04-06 13:15:50 +02:00
editor-for.hh Merge remote-tracking branch 'upstream/master' into source-path 2023-04-17 11:41:50 +02:00
installable-attr-path.cc Fixing #7479 2023-08-18 11:44:00 -04:00
installable-attr-path.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
installable-derived-path.cc Fixing #7479 2023-08-18 11:44:00 -04:00
installable-derived-path.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
installable-flake.cc Fixing #7479 2023-08-18 11:44:00 -04:00
installable-flake.hh Rename 'resolvedRef' to 'lockedRef' 2023-07-03 12:23:57 +02:00
installable-value.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
installable-value.hh Make more string values work as installables 2023-05-15 09:03:38 -04:00
installables.cc Fixing #7479 2023-08-18 11:44:00 -04:00
installables.hh Move BuiltPath to its own header/C++ file in libcmd 2023-07-12 23:01:10 -04:00
legacy.cc Move command plugin interface to libnixcmd 2021-01-26 06:22:24 -05:00
legacy.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
local.mk Split out CmdRepl and editorFor 2023-02-20 09:45:29 -05:00
markdown.cc do not render relative links in help pages 2022-08-26 17:10:41 +02:00
markdown.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
nix-cmd.pc.in Fix building with GCC 9 2023-02-10 18:38:57 +01:00
repl.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
repl.hh Clean up SearchPath 2023-07-09 23:22:22 -04:00