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 <adam@westernsemico.com> Change-Id: I947f504b2af5a7fee8cf0cb301421d2fc9174ce1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6986 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
e2f0967d3f
commit
f7ba502005
6 changed files with 360 additions and 0 deletions
|
|
@ -1 +0,0 @@
|
|||
/foo
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue