blob: 469e8761892b66ab7408b75bfd64fd8bf6479880 [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14package com.google.devtools.build.lib.skyframe;
15
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010016import com.google.common.base.Predicate;
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010017import com.google.devtools.build.skyframe.SkyFunctionName;
18import com.google.devtools.build.skyframe.SkyKey;
19
schmitt9c230f12019-03-13 13:42:51 -070020/** Value types in Skyframe. */
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010021public final class SkyFunctions {
janakre54491e2018-07-11 16:29:13 -070022 public static final SkyFunctionName PRECOMPUTED =
23 SkyFunctionName.createNonHermetic("PRECOMPUTED");
Klaus Aehligcd708c32016-09-15 13:48:47 +000024 public static final SkyFunctionName CLIENT_ENVIRONMENT_VARIABLE =
janakre54491e2018-07-11 16:29:13 -070025 SkyFunctionName.createNonHermetic("CLIENT_ENVIRONMENT_VARIABLE");
fellyc5c078c2019-07-31 12:05:24 -070026 static final SkyFunctionName ACTION_SKETCH = SkyFunctionName.createHermetic("ACTION_SKETCH");
Damien Martin-Guillerez777f3af2017-02-08 17:22:02 +000027 public static final SkyFunctionName ACTION_ENVIRONMENT_VARIABLE =
janakre54491e2018-07-11 16:29:13 -070028 SkyFunctionName.createHermetic("ACTION_ENVIRONMENT_VARIABLE");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010029 public static final SkyFunctionName DIRECTORY_LISTING_STATE =
janakre54491e2018-07-11 16:29:13 -070030 SkyFunctionName.createNonHermetic("DIRECTORY_LISTING_STATE");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010031 public static final SkyFunctionName DIRECTORY_LISTING =
janakre54491e2018-07-11 16:29:13 -070032 SkyFunctionName.createHermetic("DIRECTORY_LISTING");
janakra34fbbd2019-01-07 15:06:27 -080033 // Hermetic even though package lookups secretly access the set of deleted packages, because
janakr62dfdf52019-01-07 13:32:55 -080034 // SequencedSkyframeExecutor deletes any affected PACKAGE_LOOKUP nodes when that set changes.
janakre54491e2018-07-11 16:29:13 -070035 public static final SkyFunctionName PACKAGE_LOOKUP =
janakr62dfdf52019-01-07 13:32:55 -080036 SkyFunctionName.createHermetic("PACKAGE_LOOKUP");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010037 public static final SkyFunctionName CONTAINING_PACKAGE_LOOKUP =
janakre54491e2018-07-11 16:29:13 -070038 SkyFunctionName.createHermetic("CONTAINING_PACKAGE_LOOKUP");
adonovan0a1f0f52020-09-16 11:11:04 -070039 public static final SkyFunctionName BZL_COMPILE = SkyFunctionName.createHermetic("BZL_COMPILE");
brandjona61681e2020-05-20 10:00:40 -070040 public static final SkyFunctionName STARLARK_BUILTINS =
41 SkyFunctionName.createHermetic("STARLARK_BUILTINS");
jhorvitz7f55cb72021-12-16 18:52:24 -080042 public static final SkyFunctionName BZL_LOAD = SkyFunctionName.createHermetic("BZL_LOAD");
janakre54491e2018-07-11 16:29:13 -070043 public static final SkyFunctionName GLOB = SkyFunctionName.createHermetic("GLOB");
44 public static final SkyFunctionName PACKAGE = SkyFunctionName.createHermetic("PACKAGE");
45 static final SkyFunctionName PACKAGE_ERROR = SkyFunctionName.createHermetic("PACKAGE_ERROR");
shreyaxdcae7dc2018-10-02 12:56:15 -070046 public static final SkyFunctionName PACKAGE_ERROR_MESSAGE =
janakre54491e2018-07-11 16:29:13 -070047 SkyFunctionName.createHermetic("PACKAGE_ERROR_MESSAGE");
janakr83e31f62019-02-06 13:46:15 -080048 // Semi-hermetic because accesses package locator
janakre54491e2018-07-11 16:29:13 -070049 public static final SkyFunctionName TARGET_PATTERN =
janakr83e31f62019-02-06 13:46:15 -080050 SkyFunctionName.createSemiHermetic("TARGET_PATTERN");
janakre54491e2018-07-11 16:29:13 -070051 static final SkyFunctionName TARGET_PATTERN_ERROR =
52 SkyFunctionName.createHermetic("TARGET_PATTERN_ERROR");
Mark Schallerf7cb6682015-03-30 14:37:36 +000053 public static final SkyFunctionName PREPARE_DEPS_OF_PATTERNS =
janakre54491e2018-07-11 16:29:13 -070054 SkyFunctionName.createHermetic("PREPARE_DEPS_OF_PATTERNS");
55 // Non-hermetic because accesses package locator
Mark Schaller7b0bc0a2015-06-30 23:57:45 +000056 public static final SkyFunctionName PREPARE_DEPS_OF_PATTERN =
janakre54491e2018-07-11 16:29:13 -070057 SkyFunctionName.createNonHermetic("PREPARE_DEPS_OF_PATTERN");
Mark Schaller7b0bc0a2015-06-30 23:57:45 +000058 public static final SkyFunctionName PREPARE_DEPS_OF_TARGETS_UNDER_DIRECTORY =
janakre54491e2018-07-11 16:29:13 -070059 SkyFunctionName.createHermetic("PREPARE_DEPS_OF_TARGETS_UNDER_DIRECTORY");
shreyaxdcae7dc2018-10-02 12:56:15 -070060 public static final SkyFunctionName PREPARE_TEST_SUITES_UNDER_DIRECTORY =
61 SkyFunctionName.createHermetic("PREPARE_TEST_SUITES_UNDER_DIRECTORY");
Janak Ramakrishnan79eb4092016-10-11 22:06:40 +000062 public static final SkyFunctionName COLLECT_TARGETS_IN_PACKAGE =
janakre54491e2018-07-11 16:29:13 -070063 SkyFunctionName.createHermetic("COLLECT_TARGETS_IN_PACKAGE");
shreyaxdcae7dc2018-10-02 12:56:15 -070064 public static final SkyFunctionName COLLECT_TEST_SUITES_IN_PACKAGE =
65 SkyFunctionName.createHermetic("COLLECT_TEST_SUITES_IN_PACKAGE");
Janak Ramakrishnanf1e257d2016-01-07 17:14:59 +000066 public static final SkyFunctionName COLLECT_PACKAGES_UNDER_DIRECTORY =
janakre54491e2018-07-11 16:29:13 -070067 SkyFunctionName.createHermetic("COLLECT_PACKAGES_UNDER_DIRECTORY");
kkress1847a012020-06-24 12:30:11 -070068 public static final SkyFunctionName IGNORED_PACKAGE_PREFIXES =
69 SkyFunctionName.createHermetic("IGNORED_PACKAGE_PREFIXES");
janakre54491e2018-07-11 16:29:13 -070070 static final SkyFunctionName TEST_SUITE_EXPANSION =
71 SkyFunctionName.createHermetic("TEST_SUITE_EXPANSION");
72 static final SkyFunctionName TESTS_IN_SUITE = SkyFunctionName.createHermetic("TESTS_IN_SUITE");
73 // Non-hermetic because accesses package locator
74 static final SkyFunctionName TARGET_PATTERN_PHASE =
75 SkyFunctionName.createNonHermetic("TARGET_PATTERN_PHASE");
ulfjack36fbbde2018-08-02 05:16:00 -070076 static final SkyFunctionName PREPARE_ANALYSIS_PHASE =
77 SkyFunctionName.createNonHermetic("PREPARE_ANALYSIS_PHASE");
janakre54491e2018-07-11 16:29:13 -070078 static final SkyFunctionName RECURSIVE_PKG = SkyFunctionName.createHermetic("RECURSIVE_PKG");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010079 public static final SkyFunctionName CONFIGURED_TARGET =
janakre54491e2018-07-11 16:29:13 -070080 SkyFunctionName.createHermetic("CONFIGURED_TARGET");
janakr6d185b82020-03-30 14:08:01 -070081 static final SkyFunctionName ACTION_LOOKUP_CONFLICT_FINDING =
82 SkyFunctionName.createHermetic("ACTION_LOOKUP_CONFLICT_DETECTION");
83 static final SkyFunctionName TOP_LEVEL_ACTION_LOOKUP_CONFLICT_FINDING =
84 SkyFunctionName.createHermetic("TOP_LEVEL_ACTION_LOOKUP_CONFLICT_DETECTION");
janakre54491e2018-07-11 16:29:13 -070085 public static final SkyFunctionName ASPECT = SkyFunctionName.createHermetic("ASPECT");
messac4157da2021-08-06 11:17:19 -070086 static final SkyFunctionName TOP_LEVEL_ASPECTS =
87 SkyFunctionName.createHermetic("TOP_LEVEL_ASPECTS");
88 static final SkyFunctionName BUILD_TOP_LEVEL_ASPECTS_DETAILS =
89 SkyFunctionName.createHermetic("BUILD_TOP_LEVEL_ASPECTS_DETAILS");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010090 public static final SkyFunctionName TARGET_COMPLETION =
jhorvitz7f55cb72021-12-16 18:52:24 -080091 SkyFunctionName.createHermetic("TARGET_COMPLETION");
Dmitry Lomove2033b12015-08-19 16:57:49 +000092 public static final SkyFunctionName ASPECT_COMPLETION =
jhorvitz7f55cb72021-12-16 18:52:24 -080093 SkyFunctionName.createHermetic("ASPECT_COMPLETION");
94 static final SkyFunctionName TEST_COMPLETION = SkyFunctionName.createHermetic("TEST_COMPLETION");
shahandce9c452018-10-12 06:45:27 -070095 public static final SkyFunctionName BUILD_CONFIGURATION =
janakre54491e2018-07-11 16:29:13 -070096 SkyFunctionName.createHermetic("BUILD_CONFIGURATION");
jhorvitz7f55cb72021-12-16 18:52:24 -080097 // Action execution can be nondeterministic, so semi-hermetic.
Googler1d8d1382020-05-18 12:10:49 -070098 public static final SkyFunctionName ACTION_EXECUTION =
99 SkyFunctionName.createSemiHermetic("ACTION_EXECUTION");
leba07924e82019-10-10 05:16:01 -0700100 public static final SkyFunctionName ARTIFACT_NESTED_SET =
101 SkyFunctionName.createHermetic("ARTIFACT_NESTED_SET");
jhorvitz7f55cb72021-12-16 18:52:24 -0800102 static final SkyFunctionName RECURSIVE_FILESYSTEM_TRAVERSAL =
janakre54491e2018-07-11 16:29:13 -0700103 SkyFunctionName.createHermetic("RECURSIVE_DIRECTORY_TRAVERSAL");
janakre54491e2018-07-11 16:29:13 -0700104 public static final SkyFunctionName FILESET_ENTRY =
105 SkyFunctionName.createHermetic("FILESET_ENTRY");
106 static final SkyFunctionName BUILD_INFO_COLLECTION =
107 SkyFunctionName.createHermetic("BUILD_INFO_COLLECTION");
108 public static final SkyFunctionName BUILD_INFO = SkyFunctionName.createHermetic("BUILD_INFO");
109 public static final SkyFunctionName WORKSPACE_NAME =
110 SkyFunctionName.createHermetic("WORKSPACE_NAME");
schmittd350b4f2019-03-18 12:59:07 -0700111 public static final SkyFunctionName PLATFORM_MAPPING =
schmitt9c230f12019-03-13 13:42:51 -0700112 SkyFunctionName.createHermetic("PLATFORM_MAPPING");
janakre54491e2018-07-11 16:29:13 -0700113 static final SkyFunctionName COVERAGE_REPORT = SkyFunctionName.createHermetic("COVERAGE_REPORT");
Kristina Chodorow734e7f72016-01-29 15:04:31 +0000114 public static final SkyFunctionName REPOSITORY_DIRECTORY =
janakre54491e2018-07-11 16:29:13 -0700115 SkyFunctionName.createNonHermetic("REPOSITORY_DIRECTORY");
116 public static final SkyFunctionName WORKSPACE_AST =
117 SkyFunctionName.createHermetic("WORKSPACE_AST");
janakre54491e2018-07-11 16:29:13 -0700118 public static final SkyFunctionName EXTERNAL_PACKAGE =
mjhalupkabb3989b2019-01-08 14:10:49 -0800119 SkyFunctionName.createHermetic("EXTERNAL_PACKAGE");
mjhalupkab02348a2018-10-09 13:02:31 -0700120 public static final SkyFunctionName ACTION_TEMPLATE_EXPANSION =
janakre54491e2018-07-11 16:29:13 -0700121 SkyFunctionName.createHermetic("ACTION_TEMPLATE_EXPANSION");
John Caterb4f461e2016-10-25 16:16:35 +0000122 public static final SkyFunctionName LOCAL_REPOSITORY_LOOKUP =
janakre54491e2018-07-11 16:29:13 -0700123 SkyFunctionName.createHermetic("LOCAL_REPOSITORY_LOOKUP");
124 static final SkyFunctionName REGISTERED_EXECUTION_PLATFORMS =
125 SkyFunctionName.createHermetic("REGISTERED_EXECUTION_PLATFORMS");
126 static final SkyFunctionName REGISTERED_TOOLCHAINS =
127 SkyFunctionName.createHermetic("REGISTERED_TOOLCHAINS");
John Catera3df53c2019-04-16 11:15:28 -0700128 static final SkyFunctionName SINGLE_TOOLCHAIN_RESOLUTION =
129 SkyFunctionName.createHermetic("SINGLE_TOOLCHAIN_RESOLUTION");
John Catere39e5c92019-04-23 10:28:02 -0700130 public static final SkyFunctionName TOOLCHAIN_RESOLUTION =
John Cater77a49622019-04-19 07:23:33 -0700131 SkyFunctionName.createHermetic("TOOLCHAIN_RESOLUTION");
dannarkc3495852018-06-04 13:53:22 -0700132 public static final SkyFunctionName REPOSITORY_MAPPING =
janakre54491e2018-07-11 16:29:13 -0700133 SkyFunctionName.createHermetic("REPOSITORY_MAPPING");
Klaus Aehlig0ac47372018-08-24 05:22:56 -0700134 public static final SkyFunctionName RESOLVED_FILE =
135 SkyFunctionName.createHermetic("RESOLVED_FILE");
Klaus Aehlig24d3a012018-07-25 10:39:40 -0700136 public static final SkyFunctionName RESOLVED_HASH_VALUES =
137 SkyFunctionName.createHermetic("RESOLVED_HASH_VALUES");
wyvefa35e32021-06-18 02:01:40 -0700138 public static final SkyFunctionName MODULE_FILE =
139 SkyFunctionName.createNonHermetic("MODULE_FILE");
leba68bc63d2021-09-07 02:51:25 -0700140 public static final SkyFunctionName BUILD_DRIVER =
141 SkyFunctionName.createNonHermetic("BUILD_DRIVER");
wyva20b3262021-09-08 10:25:18 -0700142 public static final SkyFunctionName BAZEL_MODULE_RESOLUTION =
143 SkyFunctionName.createHermetic("BAZEL_MODULE_RESOLUTION");
Googler11ec2262022-05-11 10:35:33 -0700144 public static final SkyFunctionName BAZEL_MODULE_INSPECTION =
145 SkyFunctionName.createHermetic("BAZEL_MODULE_INSPECTION");
wyv2768a642021-09-15 05:42:01 -0700146 public static final SkyFunctionName MODULE_EXTENSION_RESOLUTION =
147 SkyFunctionName.createHermetic("MODULE_EXTENSION_RESOLUTION");
148 public static final SkyFunctionName SINGLE_EXTENSION_USAGES =
149 SkyFunctionName.createHermetic("SINGLE_EXTENSION_USAGES");
150 public static final SkyFunctionName SINGLE_EXTENSION_EVAL =
151 SkyFunctionName.createNonHermetic("SINGLE_EXTENSION_EVAL");
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100152
jhorvitz7f55cb72021-12-16 18:52:24 -0800153 public static Predicate<SkyKey> isSkyFunction(SkyFunctionName functionName) {
154 return key -> key.functionName().equals(functionName);
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100155 }
156}