From f7ba502005d6376328e1e2591d70973d4f1d6b15 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Wed, 12 Oct 2022 02:26:40 -0700 Subject: feat(tvix/eval): implement builtins.currentSystem This commit implements builtins.currentSystem, by capturing the cargo environment variable `TARGET` and exposing it to rustc as `TVIX_CURRENT_SYSTEM` so it can be inserted into the source code using `env!()`. The resulting value needs to be massaged a bit, since it is an "LLVM triple". The current code should work for all the platforms for which cppnix works (thanks qyliss for generating the list!). It does *not* reject all of the triples that cppnix's configure.ac rejects -- it is much more forgiving. We can tighten this up in a future commit. Signed-off-by: Adam Joseph Change-Id: I947f504b2af5a7fee8cf0cb301421d2fc9174ce1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6986 Tested-by: BuildkiteCI Reviewed-by: tazjin --- tvix/eval/src/tests/nix_tests/eval-okay-builtins.exp | 1 + tvix/eval/src/tests/nix_tests/eval-okay-builtins.nix | 12 ++++++++++++ .../src/tests/nix_tests/notyetpassing/eval-okay-builtins.exp | 1 - .../src/tests/nix_tests/notyetpassing/eval-okay-builtins.nix | 12 ------------ 4 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 tvix/eval/src/tests/nix_tests/eval-okay-builtins.exp create mode 100644 tvix/eval/src/tests/nix_tests/eval-okay-builtins.nix delete mode 100644 tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.exp delete mode 100644 tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.nix (limited to 'tvix/eval/src/tests') diff --git a/tvix/eval/src/tests/nix_tests/eval-okay-builtins.exp b/tvix/eval/src/tests/nix_tests/eval-okay-builtins.exp new file mode 100644 index 0000000000..0661686d61 --- /dev/null +++ b/tvix/eval/src/tests/nix_tests/eval-okay-builtins.exp @@ -0,0 +1 @@ +/foo diff --git a/tvix/eval/src/tests/nix_tests/eval-okay-builtins.nix b/tvix/eval/src/tests/nix_tests/eval-okay-builtins.nix new file mode 100644 index 0000000000..e9d65e88a8 --- /dev/null +++ b/tvix/eval/src/tests/nix_tests/eval-okay-builtins.nix @@ -0,0 +1,12 @@ +assert builtins ? currentSystem; +assert !builtins ? __currentSystem; + +let { + + x = if builtins ? dirOf then builtins.dirOf /foo/bar else ""; + + y = if builtins ? fnord then builtins.fnord "foo" else ""; + + body = x + y; + +} diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.exp b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.exp deleted file mode 100644 index 0661686d61..0000000000 --- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.exp +++ /dev/null @@ -1 +0,0 @@ -/foo diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.nix b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.nix deleted file mode 100644 index e9d65e88a8..0000000000 --- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-builtins.nix +++ /dev/null @@ -1,12 +0,0 @@ -assert builtins ? currentSystem; -assert !builtins ? __currentSystem; - -let { - - x = if builtins ? dirOf then builtins.dirOf /foo/bar else ""; - - y = if builtins ? fnord then builtins.fnord "foo" else ""; - - body = x + y; - -} -- cgit 1.4.1