Damien Martin-Guillerez | f88f4d8 | 2015-09-25 13:56:55 +0000 | [diff] [blame] | 1 | // Copyright 2014 The Bazel Authors. All rights reserved. |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 2 | // |
| 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. |
| 14 | package com.google.devtools.build.lib.skyframe; |
| 15 | |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 16 | import com.google.common.base.Predicate; |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 17 | import com.google.devtools.build.skyframe.SkyFunctionName; |
| 18 | import com.google.devtools.build.skyframe.SkyKey; |
| 19 | |
schmitt | 9c230f1 | 2019-03-13 13:42:51 -0700 | [diff] [blame] | 20 | /** Value types in Skyframe. */ |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 21 | public final class SkyFunctions { |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 22 | public static final SkyFunctionName PRECOMPUTED = |
| 23 | SkyFunctionName.createNonHermetic("PRECOMPUTED"); |
Klaus Aehlig | cd708c3 | 2016-09-15 13:48:47 +0000 | [diff] [blame] | 24 | public static final SkyFunctionName CLIENT_ENVIRONMENT_VARIABLE = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 25 | SkyFunctionName.createNonHermetic("CLIENT_ENVIRONMENT_VARIABLE"); |
felly | c5c078c | 2019-07-31 12:05:24 -0700 | [diff] [blame] | 26 | static final SkyFunctionName ACTION_SKETCH = SkyFunctionName.createHermetic("ACTION_SKETCH"); |
Damien Martin-Guillerez | 777f3af | 2017-02-08 17:22:02 +0000 | [diff] [blame] | 27 | public static final SkyFunctionName ACTION_ENVIRONMENT_VARIABLE = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 28 | SkyFunctionName.createHermetic("ACTION_ENVIRONMENT_VARIABLE"); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 29 | public static final SkyFunctionName DIRECTORY_LISTING_STATE = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 30 | SkyFunctionName.createNonHermetic("DIRECTORY_LISTING_STATE"); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 31 | public static final SkyFunctionName DIRECTORY_LISTING = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 32 | SkyFunctionName.createHermetic("DIRECTORY_LISTING"); |
janakr | a34fbbd | 2019-01-07 15:06:27 -0800 | [diff] [blame] | 33 | // Hermetic even though package lookups secretly access the set of deleted packages, because |
janakr | 62dfdf5 | 2019-01-07 13:32:55 -0800 | [diff] [blame] | 34 | // SequencedSkyframeExecutor deletes any affected PACKAGE_LOOKUP nodes when that set changes. |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 35 | public static final SkyFunctionName PACKAGE_LOOKUP = |
janakr | 62dfdf5 | 2019-01-07 13:32:55 -0800 | [diff] [blame] | 36 | SkyFunctionName.createHermetic("PACKAGE_LOOKUP"); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 37 | public static final SkyFunctionName CONTAINING_PACKAGE_LOOKUP = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 38 | SkyFunctionName.createHermetic("CONTAINING_PACKAGE_LOOKUP"); |
adonovan | 0a1f0f5 | 2020-09-16 11:11:04 -0700 | [diff] [blame] | 39 | public static final SkyFunctionName BZL_COMPILE = SkyFunctionName.createHermetic("BZL_COMPILE"); |
brandjon | a61681e | 2020-05-20 10:00:40 -0700 | [diff] [blame] | 40 | public static final SkyFunctionName STARLARK_BUILTINS = |
| 41 | SkyFunctionName.createHermetic("STARLARK_BUILTINS"); |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 42 | public static final SkyFunctionName BZL_LOAD = SkyFunctionName.createHermetic("BZL_LOAD"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 43 | 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"); |
shreyax | dcae7dc | 2018-10-02 12:56:15 -0700 | [diff] [blame] | 46 | public static final SkyFunctionName PACKAGE_ERROR_MESSAGE = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 47 | SkyFunctionName.createHermetic("PACKAGE_ERROR_MESSAGE"); |
janakr | 83e31f6 | 2019-02-06 13:46:15 -0800 | [diff] [blame] | 48 | // Semi-hermetic because accesses package locator |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 49 | public static final SkyFunctionName TARGET_PATTERN = |
janakr | 83e31f6 | 2019-02-06 13:46:15 -0800 | [diff] [blame] | 50 | SkyFunctionName.createSemiHermetic("TARGET_PATTERN"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 51 | static final SkyFunctionName TARGET_PATTERN_ERROR = |
| 52 | SkyFunctionName.createHermetic("TARGET_PATTERN_ERROR"); |
Mark Schaller | f7cb668 | 2015-03-30 14:37:36 +0000 | [diff] [blame] | 53 | public static final SkyFunctionName PREPARE_DEPS_OF_PATTERNS = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 54 | SkyFunctionName.createHermetic("PREPARE_DEPS_OF_PATTERNS"); |
| 55 | // Non-hermetic because accesses package locator |
Mark Schaller | 7b0bc0a | 2015-06-30 23:57:45 +0000 | [diff] [blame] | 56 | public static final SkyFunctionName PREPARE_DEPS_OF_PATTERN = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 57 | SkyFunctionName.createNonHermetic("PREPARE_DEPS_OF_PATTERN"); |
Mark Schaller | 7b0bc0a | 2015-06-30 23:57:45 +0000 | [diff] [blame] | 58 | public static final SkyFunctionName PREPARE_DEPS_OF_TARGETS_UNDER_DIRECTORY = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 59 | SkyFunctionName.createHermetic("PREPARE_DEPS_OF_TARGETS_UNDER_DIRECTORY"); |
shreyax | dcae7dc | 2018-10-02 12:56:15 -0700 | [diff] [blame] | 60 | public static final SkyFunctionName PREPARE_TEST_SUITES_UNDER_DIRECTORY = |
| 61 | SkyFunctionName.createHermetic("PREPARE_TEST_SUITES_UNDER_DIRECTORY"); |
Janak Ramakrishnan | 79eb409 | 2016-10-11 22:06:40 +0000 | [diff] [blame] | 62 | public static final SkyFunctionName COLLECT_TARGETS_IN_PACKAGE = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 63 | SkyFunctionName.createHermetic("COLLECT_TARGETS_IN_PACKAGE"); |
shreyax | dcae7dc | 2018-10-02 12:56:15 -0700 | [diff] [blame] | 64 | public static final SkyFunctionName COLLECT_TEST_SUITES_IN_PACKAGE = |
| 65 | SkyFunctionName.createHermetic("COLLECT_TEST_SUITES_IN_PACKAGE"); |
Janak Ramakrishnan | f1e257d | 2016-01-07 17:14:59 +0000 | [diff] [blame] | 66 | public static final SkyFunctionName COLLECT_PACKAGES_UNDER_DIRECTORY = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 67 | SkyFunctionName.createHermetic("COLLECT_PACKAGES_UNDER_DIRECTORY"); |
kkress | 1847a01 | 2020-06-24 12:30:11 -0700 | [diff] [blame] | 68 | public static final SkyFunctionName IGNORED_PACKAGE_PREFIXES = |
| 69 | SkyFunctionName.createHermetic("IGNORED_PACKAGE_PREFIXES"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 70 | 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"); |
ulfjack | 36fbbde | 2018-08-02 05:16:00 -0700 | [diff] [blame] | 76 | static final SkyFunctionName PREPARE_ANALYSIS_PHASE = |
| 77 | SkyFunctionName.createNonHermetic("PREPARE_ANALYSIS_PHASE"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 78 | static final SkyFunctionName RECURSIVE_PKG = SkyFunctionName.createHermetic("RECURSIVE_PKG"); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 79 | public static final SkyFunctionName CONFIGURED_TARGET = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 80 | SkyFunctionName.createHermetic("CONFIGURED_TARGET"); |
janakr | 6d185b8 | 2020-03-30 14:08:01 -0700 | [diff] [blame] | 81 | 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"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 85 | public static final SkyFunctionName ASPECT = SkyFunctionName.createHermetic("ASPECT"); |
messa | c4157da | 2021-08-06 11:17:19 -0700 | [diff] [blame] | 86 | 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 Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 90 | public static final SkyFunctionName TARGET_COMPLETION = |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 91 | SkyFunctionName.createHermetic("TARGET_COMPLETION"); |
Dmitry Lomov | e2033b1 | 2015-08-19 16:57:49 +0000 | [diff] [blame] | 92 | public static final SkyFunctionName ASPECT_COMPLETION = |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 93 | SkyFunctionName.createHermetic("ASPECT_COMPLETION"); |
| 94 | static final SkyFunctionName TEST_COMPLETION = SkyFunctionName.createHermetic("TEST_COMPLETION"); |
shahan | dce9c45 | 2018-10-12 06:45:27 -0700 | [diff] [blame] | 95 | public static final SkyFunctionName BUILD_CONFIGURATION = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 96 | SkyFunctionName.createHermetic("BUILD_CONFIGURATION"); |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 97 | // Action execution can be nondeterministic, so semi-hermetic. |
Googler | 1d8d138 | 2020-05-18 12:10:49 -0700 | [diff] [blame] | 98 | public static final SkyFunctionName ACTION_EXECUTION = |
| 99 | SkyFunctionName.createSemiHermetic("ACTION_EXECUTION"); |
leba | 07924e8 | 2019-10-10 05:16:01 -0700 | [diff] [blame] | 100 | public static final SkyFunctionName ARTIFACT_NESTED_SET = |
| 101 | SkyFunctionName.createHermetic("ARTIFACT_NESTED_SET"); |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 102 | static final SkyFunctionName RECURSIVE_FILESYSTEM_TRAVERSAL = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 103 | SkyFunctionName.createHermetic("RECURSIVE_DIRECTORY_TRAVERSAL"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 104 | 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"); |
schmitt | d350b4f | 2019-03-18 12:59:07 -0700 | [diff] [blame] | 111 | public static final SkyFunctionName PLATFORM_MAPPING = |
schmitt | 9c230f1 | 2019-03-13 13:42:51 -0700 | [diff] [blame] | 112 | SkyFunctionName.createHermetic("PLATFORM_MAPPING"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 113 | static final SkyFunctionName COVERAGE_REPORT = SkyFunctionName.createHermetic("COVERAGE_REPORT"); |
Kristina Chodorow | 734e7f7 | 2016-01-29 15:04:31 +0000 | [diff] [blame] | 114 | public static final SkyFunctionName REPOSITORY_DIRECTORY = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 115 | SkyFunctionName.createNonHermetic("REPOSITORY_DIRECTORY"); |
| 116 | public static final SkyFunctionName WORKSPACE_AST = |
| 117 | SkyFunctionName.createHermetic("WORKSPACE_AST"); |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 118 | public static final SkyFunctionName EXTERNAL_PACKAGE = |
mjhalupka | bb3989b | 2019-01-08 14:10:49 -0800 | [diff] [blame] | 119 | SkyFunctionName.createHermetic("EXTERNAL_PACKAGE"); |
mjhalupka | b02348a | 2018-10-09 13:02:31 -0700 | [diff] [blame] | 120 | public static final SkyFunctionName ACTION_TEMPLATE_EXPANSION = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 121 | SkyFunctionName.createHermetic("ACTION_TEMPLATE_EXPANSION"); |
John Cater | b4f461e | 2016-10-25 16:16:35 +0000 | [diff] [blame] | 122 | public static final SkyFunctionName LOCAL_REPOSITORY_LOOKUP = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 123 | 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 Cater | a3df53c | 2019-04-16 11:15:28 -0700 | [diff] [blame] | 128 | static final SkyFunctionName SINGLE_TOOLCHAIN_RESOLUTION = |
| 129 | SkyFunctionName.createHermetic("SINGLE_TOOLCHAIN_RESOLUTION"); |
John Cater | e39e5c9 | 2019-04-23 10:28:02 -0700 | [diff] [blame] | 130 | public static final SkyFunctionName TOOLCHAIN_RESOLUTION = |
John Cater | 77a4962 | 2019-04-19 07:23:33 -0700 | [diff] [blame] | 131 | SkyFunctionName.createHermetic("TOOLCHAIN_RESOLUTION"); |
dannark | c349585 | 2018-06-04 13:53:22 -0700 | [diff] [blame] | 132 | public static final SkyFunctionName REPOSITORY_MAPPING = |
janakr | e54491e | 2018-07-11 16:29:13 -0700 | [diff] [blame] | 133 | SkyFunctionName.createHermetic("REPOSITORY_MAPPING"); |
Klaus Aehlig | 0ac4737 | 2018-08-24 05:22:56 -0700 | [diff] [blame] | 134 | public static final SkyFunctionName RESOLVED_FILE = |
| 135 | SkyFunctionName.createHermetic("RESOLVED_FILE"); |
Klaus Aehlig | 24d3a01 | 2018-07-25 10:39:40 -0700 | [diff] [blame] | 136 | public static final SkyFunctionName RESOLVED_HASH_VALUES = |
| 137 | SkyFunctionName.createHermetic("RESOLVED_HASH_VALUES"); |
wyv | efa35e3 | 2021-06-18 02:01:40 -0700 | [diff] [blame] | 138 | public static final SkyFunctionName MODULE_FILE = |
| 139 | SkyFunctionName.createNonHermetic("MODULE_FILE"); |
leba | 68bc63d | 2021-09-07 02:51:25 -0700 | [diff] [blame] | 140 | public static final SkyFunctionName BUILD_DRIVER = |
| 141 | SkyFunctionName.createNonHermetic("BUILD_DRIVER"); |
wyv | a20b326 | 2021-09-08 10:25:18 -0700 | [diff] [blame] | 142 | public static final SkyFunctionName BAZEL_MODULE_RESOLUTION = |
| 143 | SkyFunctionName.createHermetic("BAZEL_MODULE_RESOLUTION"); |
Googler | 11ec226 | 2022-05-11 10:35:33 -0700 | [diff] [blame] | 144 | public static final SkyFunctionName BAZEL_MODULE_INSPECTION = |
| 145 | SkyFunctionName.createHermetic("BAZEL_MODULE_INSPECTION"); |
wyv | 2768a64 | 2021-09-15 05:42:01 -0700 | [diff] [blame] | 146 | 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 Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 152 | |
jhorvitz | 7f55cb7 | 2021-12-16 18:52:24 -0800 | [diff] [blame] | 153 | public static Predicate<SkyKey> isSkyFunction(SkyFunctionName functionName) { |
| 154 | return key -> key.functionName().equals(functionName); |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 155 | } |
| 156 | } |