Exposes the Value constructors, for use by other bindings like
nix-flake, which needs to construct e.g. a flake outputs Value.
See https://github.com/nixops4/nixops4/issues/25
> We have two related issues:
> A bunch of implementation details cannot be made private, since they must be used from one of the other crates (e.g. Values are defined in the value module but used from eval_state
> While we don't want users to need to use these features, it may be good to provide escape hatches so they can interface with the raw API if they need more control.
> Problem (1) has been solved in other crates with a __private module with #[doc(hidden)] set. See for instance:
I'm leaving docs turned on for (2). The issue has more thoughts about
alternatives.
(cherry picked from commit eb6744d1519febe5b6aa6233eb3f3e8a049f12d4)
They're somewhat safe to use on a different thread, but we don't need
to for now. By removing this, we'll be made aware as needed.
(cherry picked from commit 2e953d0a1268e2f19671fdbc9e721fc630ac346b)
A step toward handling the arrival of new data (stdin) with priority
over commands, avoiding roundtrips and re-evaluations.
(cherry picked from commit 8a2a5197886025caf35653001f76a4b209d8c9e4)
This spreads out transitively to many places and requires that
we use `check_call!` instead of `check_one_call` in a number of
places.
(cherry picked from commit 6bc31dcf206518a7be7f0ac6e773d5dfe25531ea)
The mutation-based methods had some pitfalls, and we don't really
need them.
We could re-add them if we need to.
(cherry picked from commit ca92b8491d87cebf54dd2468599168fc7a16c07f)
This loses the custom name for "thunk", but checking thunkness is
a niche use case that I don't think we should spend much code on.
(cherry picked from commit 7bdff525c13234ce6a32ea9346292d948b0840c1)