summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules/CC/EXPRESSIONS12
-rw-r--r--rules/CC/RULES18
-rw-r--r--rules/CC/foreign/RULES18
-rw-r--r--rules/CC/foreign/cmake/EXPRESSIONS19
-rw-r--r--rules/CC/foreign/make/EXPRESSIONS19
-rw-r--r--rules/CC/foreign/shell/EXPRESSIONS25
-rw-r--r--rules/CC/pkgconfig/RULES35
-rw-r--r--rules/CC/proto/RULES18
-rw-r--r--rules/CC/test/EXPRESSIONS17
-rw-r--r--rules/EXPRESSIONS16
-rw-r--r--rules/lint/RULES25
-rw-r--r--rules/patch/RULES18
-rw-r--r--rules/shell/RULES44
-rw-r--r--rules/shell/test/RULES17
14 files changed, 108 insertions, 193 deletions
diff --git a/rules/CC/EXPRESSIONS b/rules/CC/EXPRESSIONS
index fe6f9cb..c616dfa 100644
--- a/rules/CC/EXPRESSIONS
+++ b/rules/CC/EXPRESSIONS
@@ -2829,16 +2829,8 @@
}
]
}
- , "cmd":
- [ "sh"
- , "-c"
- , { "type": "join"
- , "$1":
- [ "cd work && "
- , {"type": "join_cmd", "$1": {"type": "var", "name": "cmd"}}
- ]
- }
- ]
+ , "cmd": {"type": "var", "name": "cmd"}
+ , "cwd": "work"
, "env": {"type": "var", "name": "ENV"}
}
]
diff --git a/rules/CC/RULES b/rules/CC/RULES
index 51b2578..6c07275 100644
--- a/rules/CC/RULES
+++ b/rules/CC/RULES
@@ -99,7 +99,6 @@
, "base-provides-++": "defaults-base-provides-++"
, "base-provides-list": "defaults-base-provides-list"
, "artifacts_list": ["./", "..", "field_artifacts_list"]
- , "nub_left": ["", "nub_left"]
, "compile-deps": "compile-deps"
, "compile-args-deps": "compile-args-deps"
, "link-deps": "link-deps"
@@ -182,17 +181,14 @@
]
, ["provider", "PATH"]
, [ "PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
, ["provider", "ENV"]
diff --git a/rules/CC/foreign/RULES b/rules/CC/foreign/RULES
index 935d477..e6463f8 100644
--- a/rules/CC/foreign/RULES
+++ b/rules/CC/foreign/RULES
@@ -31,7 +31,6 @@
, "base-provides-++": ["./", "..", "defaults-base-provides-++"]
, "base-provides-list": ["./", "..", "defaults-base-provides-list"]
, "artifacts_list": ["./", "../..", "field_artifacts_list"]
- , "nub_left": ["", "nub_left"]
, "for host": ["transitions", "for host"]
}
, "config_transitions":
@@ -60,17 +59,14 @@
]
, ["provider", "PATH"]
, [ "PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
, ["provider", "ENV"]
diff --git a/rules/CC/foreign/cmake/EXPRESSIONS b/rules/CC/foreign/cmake/EXPRESSIONS
index c8f6dc1..a36725b 100644
--- a/rules/CC/foreign/cmake/EXPRESSIONS
+++ b/rules/CC/foreign/cmake/EXPRESSIONS
@@ -28,7 +28,6 @@
]
, "imports":
{ "artifacts": ["", "field_artifacts"]
- , "nub_left": ["", "nub_left"]
, "flags-cc": ["CC", "flags-cc"]
, "flags-cxx": ["CC", "flags-cxx"]
, "compiler-cc": ["CC", "compiler-cc"]
@@ -228,18 +227,14 @@
, { "type": "join"
, "separator": ":"
, "$1":
- { "type": "let*"
- , "bindings":
- [ [ "list"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
- , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- ]
- }
+ { "type": "nub_left"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ }
}
}
]
diff --git a/rules/CC/foreign/make/EXPRESSIONS b/rules/CC/foreign/make/EXPRESSIONS
index 1707104..68aa728 100644
--- a/rules/CC/foreign/make/EXPRESSIONS
+++ b/rules/CC/foreign/make/EXPRESSIONS
@@ -30,7 +30,6 @@
]
, "imports":
{ "artifacts": ["", "field_artifacts"]
- , "nub_left": ["", "nub_left"]
, "flags-cc": ["CC", "flags-cc"]
, "flags-cxx": ["CC", "flags-cxx"]
, "compiler-cc": ["CC", "compiler-cc"]
@@ -205,18 +204,14 @@
, { "type": "join"
, "separator": ":"
, "$1":
- { "type": "let*"
- , "bindings":
- [ [ "list"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
- , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- ]
- }
+ { "type": "nub_left"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ }
}
}
]
diff --git a/rules/CC/foreign/shell/EXPRESSIONS b/rules/CC/foreign/shell/EXPRESSIONS
index a1dcd0c..a37d315 100644
--- a/rules/CC/foreign/shell/EXPRESSIONS
+++ b/rules/CC/foreign/shell/EXPRESSIONS
@@ -22,7 +22,6 @@
]
, "imports":
{ "artifacts": ["", "field_artifacts"]
- , "nub_left": ["", "nub_left"]
, "flags-cc": ["CC", "flags-cc"]
, "flags-cxx": ["CC", "flags-cxx"]
, "compiler-cc": ["CC", "compiler-cc"]
@@ -194,22 +193,18 @@
, { "type": "join"
, "separator": ":"
, "$1":
- { "type": "let*"
- , "bindings":
- [ [ "list"
- , { "type": "++"
- , "$1":
- [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
- , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
- , { "type": "let*"
- , "bindings": [["fieldname", "shell defaults"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "sh-PATH"}
- }
- ]
+ { "type": "nub_left"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ {"type": "CALL_EXPRESSION", "name": "foreign-PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "default-PATH"}
+ , { "type": "let*"
+ , "bindings": [["fieldname", "shell defaults"]]
+ , "body": {"type": "CALL_EXPRESSION", "name": "sh-PATH"}
}
]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ }
}
}
]
diff --git a/rules/CC/pkgconfig/RULES b/rules/CC/pkgconfig/RULES
index 363136f..f72fdf6 100644
--- a/rules/CC/pkgconfig/RULES
+++ b/rules/CC/pkgconfig/RULES
@@ -14,7 +14,6 @@
, "imports":
{ "base-provides": ["./", "..", "defaults-base-provides"]
, "base-provides-++": ["./", "..", "defaults-base-provides-++"]
- , "nub_left": ["", "nub_left"]
}
, "expression":
{ "type": "let*"
@@ -31,33 +30,27 @@
, ["PATH", {"type": "FIELD", "name": "PATH"}]
, ["provider", "PATH"]
, [ "PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
, ["PKG_CONFIG_PATH", {"type": "FIELD", "name": "PKG_CONFIG_PATH"}]
, ["provider", "PKG_CONFIG_PATH"]
, [ "PKG_CONFIG_PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PKG_CONFIG_PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PKG_CONFIG_PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PKG_CONFIG_PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PKG_CONFIG_PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
]
diff --git a/rules/CC/proto/RULES b/rules/CC/proto/RULES
index 6fb0f40..e7a2f46 100644
--- a/rules/CC/proto/RULES
+++ b/rules/CC/proto/RULES
@@ -83,7 +83,6 @@
, "base-provides-++": ["./", "..", "defaults-base-provides-++"]
, "base-provides-list": ["./", "..", "defaults-base-provides-list"]
, "artifacts_list": ["", "field_artifacts_list"]
- , "nub_left": ["", "nub_left"]
, "compile-deps": ["CC", "compile-deps"]
, "compile-args-deps": ["CC", "compile-args-deps"]
, "link-deps": ["CC", "link-deps"]
@@ -139,17 +138,14 @@
]
, ["provider", "PATH"]
, [ "PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
, ["provider", "ENV"]
diff --git a/rules/CC/test/EXPRESSIONS b/rules/CC/test/EXPRESSIONS
index b12b80d..1389bbc 100644
--- a/rules/CC/test/EXPRESSIONS
+++ b/rules/CC/test/EXPRESSIONS
@@ -377,19 +377,16 @@
}
]
, [ "artifacts"
- , { "type": "map_union"
+ , { "type": "`"
, "$1":
- [ { "type": "singleton_map"
- , "key": "pwd"
- , "value": {"type": "BLOB", "data": "/summary"}
- }
- , {"type": "var", "name": "summary"}
- , { "type": "singleton_map"
- , "key": "work"
- , "value":
+ { "pwd":
+ {"type": ",", "$1": {"type": "BLOB", "data": "/summary"}}
+ , "work":
+ { "type": ","
+ , "$1":
{"type": "TREE", "$1": {"type": "var", "name": "attempts"}}
}
- ]
+ }
}
]
, [ "runfiles"
diff --git a/rules/EXPRESSIONS b/rules/EXPRESSIONS
index 52a381f..0c1f611 100644
--- a/rules/EXPRESSIONS
+++ b/rules/EXPRESSIONS
@@ -126,7 +126,7 @@
, "expression":
{ "type": "map_union"
, "$1":
- [ {"type": "singleton_map", "key": "PATH", "value": "/bin:/usr/bin"}
+ [ {"type": "'", "$1": {"PATH": "/bin:/usr/bin"}}
, {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
]
}
@@ -226,18 +226,4 @@
}
}
}
-, "nub_left":
- { "doc": ["Removes all but the leftmost duplicate from the list."]
- , "vars": ["list"]
- , "vars_doc": {"list": ["The list to remove duplicates from."]}
- , "expression":
- { "type": "let*"
- , "bindings":
- [ ["list", {"type": "reverse", "$1": {"type": "var", "name": "list"}}]
- , ["list", {"type": "nub_right", "$1": {"type": "var", "name": "list"}}]
- , ["list", {"type": "reverse", "$1": {"type": "var", "name": "list"}}]
- ]
- , "body": {"type": "var", "name": "list"}
- }
- }
}
diff --git a/rules/lint/RULES b/rules/lint/RULES
index e1000d9..0da42d2 100644
--- a/rules/lint/RULES
+++ b/rules/lint/RULES
@@ -21,23 +21,17 @@
{ "type": "let*"
, "bindings":
[ [ "PATH"
- , { "type": "reverse"
+ , { "type": "nub_left"
, "$1":
- { "type": "nub_right"
+ { "type": "++"
, "$1":
- { "type": "reverse"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "FIELD", "name": "PATH"}
- , { "type": "let*"
- , "bindings": [["provider", "PATH"]]
- , "body":
- {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- }
- ]
+ [ {"type": "FIELD", "name": "PATH"}
+ , { "type": "let*"
+ , "bindings": [["provider", "PATH"]]
+ , "body":
+ {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
}
- }
+ ]
}
}
]
@@ -99,8 +93,7 @@
, "call_lint": ["call_lint"]
, "call_summary": ["call_summary"]
}
- , "config_transitions":
- {"targets": [{"type": "singleton_map", "key": "LINT", "value": true}]}
+ , "config_transitions": {"targets": [{"type": "'", "$1": {"LINT": true}}]}
, "anonymous":
{"lint": {"target": "targets", "provider": "lint", "rule_map": {}}}
, "imports":
diff --git a/rules/patch/RULES b/rules/patch/RULES
index c55de58..ea495f0 100644
--- a/rules/patch/RULES
+++ b/rules/patch/RULES
@@ -32,7 +32,6 @@
, "base-provides-++": ["CC", "defaults-base-provides-++"]
, "base-provides-list": ["CC", "defaults-base-provides-list"]
, "artifacts_list": ["", "field_artifacts_list"]
- , "nub_left": ["", "nub_left"]
, "for host": ["transitions", "for host"]
}
, "config_transitions":
@@ -52,17 +51,14 @@
]
, ["provider", "PATH"]
, [ "PATH"
- , { "type": "++"
+ , { "type": "nub_left"
, "$1":
- [ {"type": "var", "name": "PATH"}
- , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- ]
- }
- ]
- , [ "PATH"
- , { "type": "let*"
- , "bindings": [["list", {"type": "var", "name": "PATH"}]]
- , "body": {"type": "CALL_EXPRESSION", "name": "nub_left"}
+ { "type": "++"
+ , "$1":
+ [ {"type": "var", "name": "PATH"}
+ , {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
+ ]
+ }
}
]
, ["provider", "ENV"]
diff --git a/rules/shell/RULES b/rules/shell/RULES
index 29b670e..7f53a4b 100644
--- a/rules/shell/RULES
+++ b/rules/shell/RULES
@@ -116,44 +116,32 @@
}
]
, [ "PATH"
- , { "type": "reverse"
+ , { "type": "nub_left"
, "$1":
- { "type": "nub_right"
+ { "type": "++"
, "$1":
- { "type": "reverse"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "FIELD", "name": "PATH"}
- , { "type": "let*"
- , "bindings": [["provider", "PATH"]]
- , "body":
- {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- }
- ]
+ [ {"type": "FIELD", "name": "PATH"}
+ , { "type": "let*"
+ , "bindings": [["provider", "PATH"]]
+ , "body":
+ {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
}
- }
+ ]
}
}
]
, [ "bin dirs"
- , { "type": "reverse"
+ , { "type": "nub_left"
, "$1":
- { "type": "nub_right"
+ { "type": "++"
, "$1":
- { "type": "reverse"
- , "$1":
- { "type": "++"
- , "$1":
- [ {"type": "FIELD", "name": "bin dirs"}
- , { "type": "let*"
- , "bindings": [["provider", "bin dirs"]]
- , "body":
- {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
- }
- ]
+ [ {"type": "FIELD", "name": "bin dirs"}
+ , { "type": "let*"
+ , "bindings": [["provider", "bin dirs"]]
+ , "body":
+ {"type": "CALL_EXPRESSION", "name": "base-provides-++"}
}
- }
+ ]
}
}
]
diff --git a/rules/shell/test/RULES b/rules/shell/test/RULES
index 1c069dc..bab1d8b 100644
--- a/rules/shell/test/RULES
+++ b/rules/shell/test/RULES
@@ -331,19 +331,16 @@
}
]
, [ "artifacts"
- , { "type": "map_union"
+ , { "type": "`"
, "$1":
- [ { "type": "singleton_map"
- , "key": "pwd"
- , "value": {"type": "BLOB", "data": "/summary"}
- }
- , {"type": "var", "name": "summary"}
- , { "type": "singleton_map"
- , "key": "work"
- , "value":
+ { "pwd":
+ {"type": ",", "$1": {"type": "BLOB", "data": "/summary"}}
+ , "work":
+ { "type": ","
+ , "$1":
{"type": "TREE", "$1": {"type": "var", "name": "attempts"}}
}
- ]
+ }
}
]
, [ "runfiles"