feat(tvix/eval): implement builtins.fromTOML

This allows parsing TOML from Tvix. We can enable the eval-okay-fromTOML
testcase from nix_tests. It uses the `toml` crate, and the serde
integration it brings with it.

Change-Id: Ic6f95aacf2aeb890116629b409752deac49dd655
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7920
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-01-24 15:54:29 +01:00 committed by clbot
parent 1facd889bb
commit e0b05c0fa6
8 changed files with 273 additions and 3 deletions

View file

@ -3593,6 +3593,25 @@ rec {
features = { };
resolvedDefaultFeatures = [ "integration_tests" ];
};
"nom8" = rec {
crateName = "nom8";
version = "0.2.0";
edition = "2018";
sha256 = "1y6jzabxyrl05vxnh63r66ac2fh0symg5fnynxm4ii3zkif580df";
dependencies = [
{
name = "memchr";
packageId = "memchr";
usesDefaultFeatures = false;
}
];
features = {
"default" = [ "std" ];
"std" = [ "alloc" "memchr/std" ];
"unstable-doc" = [ "alloc" "std" ];
};
resolvedDefaultFeatures = [ "alloc" "default" "std" ];
};
"nu-ansi-term" = rec {
crateName = "nu-ansi-term";
version = "0.46.0";
@ -5478,6 +5497,23 @@ rec {
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"serde_spanned" = rec {
crateName = "serde_spanned";
version = "0.6.0";
edition = "2021";
sha256 = "1s1qvxk2h1i3p3b47p1vc7cr3f694zfvlajwjaw42f7mrqhyjs1c";
dependencies = [
{
name = "serde";
packageId = "serde";
optional = true;
}
];
features = {
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "serde" ];
};
"sha2" = rec {
crateName = "sha2";
version = "0.10.6";
@ -6472,6 +6508,107 @@ rec {
};
resolvedDefaultFeatures = [ "codec" "default" "tracing" ];
};
"toml" = rec {
crateName = "toml";
version = "0.6.0";
edition = "2021";
sha256 = "05zjz69wjymp9yrgccg5vhvxpf855rgn23vl1yvri4nwwj8difag";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
dependencies = [
{
name = "serde";
packageId = "serde";
}
{
name = "serde_spanned";
packageId = "serde_spanned";
features = [ "serde" ];
}
{
name = "toml_datetime";
packageId = "toml_datetime";
features = [ "serde" ];
}
{
name = "toml_edit";
packageId = "toml_edit";
optional = true;
features = [ "serde" ];
}
];
features = {
"default" = [ "parse" "display" ];
"display" = [ "dep:toml_edit" ];
"indexmap" = [ "dep:indexmap" ];
"parse" = [ "dep:toml_edit" ];
"preserve_order" = [ "indexmap" ];
};
resolvedDefaultFeatures = [ "default" "display" "parse" ];
};
"toml_datetime" = rec {
crateName = "toml_datetime";
version = "0.5.1";
edition = "2021";
sha256 = "1xcw3kyklh3s2gxp65ma26rgkl7505la4xx1r55kfgcfmikz8ls5";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
];
dependencies = [
{
name = "serde";
packageId = "serde";
optional = true;
}
];
features = {
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "serde" ];
};
"toml_edit" = rec {
crateName = "toml_edit";
version = "0.18.0";
edition = "2021";
sha256 = "108mfl5254lk7n4fa42fl8lpk5fjrgg5r3vp3w09rnj0dq4zv6vj";
authors = [
"Andronik Ordian <write@reusable.software>"
"Ed Page <eopage@gmail.com>"
];
dependencies = [
{
name = "indexmap";
packageId = "indexmap";
}
{
name = "nom8";
packageId = "nom8";
}
{
name = "serde";
packageId = "serde";
optional = true;
features = [ "derive" ];
}
{
name = "serde_spanned";
packageId = "serde_spanned";
optional = true;
features = [ "serde" ];
}
{
name = "toml_datetime";
packageId = "toml_datetime";
}
];
features = {
"easy" = [ "serde" ];
"perf" = [ "dep:kstring" ];
"serde" = [ "dep:serde" "toml_datetime/serde" "dep:serde_spanned" ];
};
resolvedDefaultFeatures = [ "default" "serde" ];
};
"tonic" = rec {
crateName = "tonic";
version = "0.8.3";
@ -7470,6 +7607,10 @@ rec {
packageId = "test-strategy";
optional = true;
}
{
name = "toml";
packageId = "toml";
}
{
name = "tvix-eval-builtin-macros";
packageId = "tvix-eval-builtin-macros";