tvl-depot/tvix/eval/src
Ryan Lahfa 863c4207cc feat(tvix/eval): contextful JSON operations
`toJSON` transform a Nix structure into a JSON string.

For each context in that Nix structure, the JSON string must possess it.

Thus, it is necessary to take the union of all contexts and attach it to
the final structure.

Unfortunately, the return type of `into_json` is a serde's JSON object,
not a string. Therefore, it is not possible to reuse `NixString`
machinery.

Context tests are reinforced as Nix does not test those behaviors.

Fixes b/393.

Change-Id: I5afdbc4e18dd70469192c1aa657d1049ba330149
Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11266
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-04-13 10:11:18 +00:00
..
builtins feat(tvix/eval): contextful JSON operations 2024-04-13 10:11:18 +00:00
compiler fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
tests fix(tvix/eval): propagate errs from key comparison in genericClosure 2024-03-19 06:20:52 +00:00
value feat(tvix/eval): contextful JSON operations 2024-04-13 10:11:18 +00:00
vm feat(tvix/eval): contextful JSON operations 2024-04-13 10:11:18 +00:00
chunk.rs feat(tvix/eval): Don't emit OpForce for non-thunk constants 2024-02-01 21:08:35 +00:00
errors.rs feat(tvix/eval): implement builtins.hashString 2024-02-23 16:04:35 +00:00
io.rs fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
lib.rs fix(tvix/eval): propagate catchable errors at the top of an eval 2024-02-20 12:33:57 +00:00
nix_search_path.rs refactor(tvix/eval): Box the strings in CatchableErrorKind 2024-02-10 20:35:28 +00:00
observer.rs feat(tvix/eval/observer): Allow capturing timing of events 2024-01-31 04:41:37 +00:00
opcode.rs refactor(tvix/eval): let OpCoerceToString select the CoercionKind 2023-12-29 21:34:45 +00:00
pretty_ast.rs fix(tvix/eval): fix current clippy warnings 2022-12-25 18:25:06 +00:00
properties.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
source.rs refactor(tvix/eval): impl Default for SourceCode 2023-08-20 21:52:21 +00:00
spans.rs feat(tvix/eval): drop LightSpan::Delayed 2023-12-12 14:34:28 +00:00
systems.rs fix(tvix/eval): fix current clippy warnings 2022-12-25 18:25:06 +00:00
test_utils.rs test(tvix/eval): Add proof-of-concept test for Chunk 2022-09-18 17:55:06 +00:00
upvalues.rs fix(tvix/eval): remove impl PartialEq for Value 2022-11-04 00:30:13 +00:00
warnings.rs feat(tvix/glue): emit a warning in case of bad SRI hashes 2024-01-03 13:01:02 +00:00