From bfdad902c89b101fd39a9795ea493ca5e0531052 Mon Sep 17 00:00:00 2001 From: janakr Date: Wed, 3 May 2017 21:38:28 +0200 Subject: Make SkyKey an interface, and start the migration of not creating SkyKey wrapper objects: for OwnedArtifacts, which are the most numerous during builds, and for Labels for TransitiveTraversalValues, which are the most numerous during queries. PiperOrigin-RevId: 154989520 --- .../build/lib/skyframe/ASTFileLookupValue.java | 3 +- .../lib/skyframe/ActionEnvironmentFunction.java | 5 ++- .../lib/skyframe/ActionExecutionFunction.java | 3 +- .../build/lib/skyframe/ActionExecutionValue.java | 4 +- .../lib/skyframe/ActionTemplateExpansionValue.java | 6 +-- .../build/lib/skyframe/ArtifactSkyKey.java | 50 ++++++++++++++++++++-- .../build/lib/skyframe/AspectCompletionValue.java | 4 +- .../skyframe/BlacklistedPackagePrefixesValue.java | 3 +- .../lib/skyframe/BuildConfigurationValue.java | 8 ++-- .../build/lib/skyframe/ChainUniquenessUtils.java | 3 +- .../CollectPackagesUnderDirectoryValue.java | 3 +- .../lib/skyframe/CollectTargetsInPackageValue.java | 3 +- .../lib/skyframe/ConfigurationCollectionValue.java | 4 +- .../lib/skyframe/ConfigurationFragmentValue.java | 5 +-- .../skyframe/ConfiguredTargetCycleReporter.java | 3 +- .../lib/skyframe/ContainingPackageLookupValue.java | 3 +- .../build/lib/skyframe/CoverageReportValue.java | 3 +- .../lib/skyframe/DirectoryListingStateValue.java | 5 +-- .../build/lib/skyframe/DirectoryListingValue.java | 4 +- .../lib/skyframe/ExternalPackageFunction.java | 3 +- .../build/lib/skyframe/FileStateValue.java | 5 +-- .../devtools/build/lib/skyframe/FileValue.java | 3 +- .../build/lib/skyframe/FilesetEntryValue.java | 3 +- .../devtools/build/lib/skyframe/GlobValue.java | 3 +- .../lib/skyframe/LocalRepositoryLookupValue.java | 3 +- .../build/lib/skyframe/PackageErrorFunction.java | 3 +- .../build/lib/skyframe/PackageLookupValue.java | 3 +- .../devtools/build/lib/skyframe/PackageValue.java | 4 +- .../lib/skyframe/PostConfiguredTargetValue.java | 3 +- .../build/lib/skyframe/PrecomputedValue.java | 27 ++++++------ .../lib/skyframe/PrepareDepsOfPatternValue.java | 4 +- .../lib/skyframe/PrepareDepsOfPatternsValue.java | 4 +- .../PrepareDepsOfTargetsUnderDirectoryValue.java | 4 +- .../RecursiveFilesystemTraversalValue.java | 5 +-- .../build/lib/skyframe/RecursivePkgValue.java | 4 +- .../build/lib/skyframe/RepositoryValue.java | 3 +- .../lib/skyframe/SequencedSkyframeExecutor.java | 3 +- .../devtools/build/lib/skyframe/SkyFunctions.java | 2 - .../build/lib/skyframe/SkyframeExecutor.java | 2 +- .../lib/skyframe/SkylarkImportLookupValue.java | 3 +- .../build/lib/skyframe/TargetCompletionValue.java | 6 +-- .../build/lib/skyframe/TargetMarkerValue.java | 3 +- .../lib/skyframe/TargetPatternPhaseValue.java | 6 ++- .../build/lib/skyframe/TargetPatternValue.java | 3 +- .../build/lib/skyframe/TestCompletionValue.java | 6 +-- .../lib/skyframe/TestSuiteExpansionValue.java | 4 +- .../build/lib/skyframe/TestsInSuiteValue.java | 5 ++- .../build/lib/skyframe/TransitiveTargetValue.java | 5 +-- .../lib/skyframe/TransitiveTraversalValue.java | 2 +- .../build/lib/skyframe/WorkspaceASTValue.java | 4 +- .../build/lib/skyframe/WorkspaceFileValue.java | 4 +- .../build/lib/skyframe/WorkspaceNameValue.java | 3 +- .../build/lib/skyframe/WorkspaceStatusValue.java | 3 +- 53 files changed, 170 insertions(+), 100 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/skyframe') diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java index fa425bc5b8..9fa3809f2b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupValue.java @@ -17,6 +17,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.syntax.BuildFileAST; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -95,6 +96,6 @@ public abstract class ASTFileLookupValue implements SkyValue { } public static SkyKey key(Label astFileLabel) { - return SkyKey.create(SkyFunctions.AST_FILE_LOOKUP, astFileLabel); + return LegacySkyKey.create(SkyFunctions.AST_FILE_LOOKUP, astFileLabel); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java index ea4cde03df..efc6c9a84c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableList; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -44,12 +45,12 @@ public final class ActionEnvironmentFunction implements SkyFunction { if (actionEnv.containsKey(key) && actionEnv.get(key) != null) { return new ClientEnvironmentValue(actionEnv.get(key)); } - return env.getValue(SkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, key)); + return env.getValue(LegacySkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, key)); } /** @return the SkyKey to invoke this function for the environment variable {@code variable}. */ public static SkyKey key(String variable) { - return SkyKey.create(SkyFunctions.ACTION_ENVIRONMENT_VARIABLE, variable); + return LegacySkyKey.create(SkyFunctions.ACTION_ENVIRONMENT_VARIABLE, variable); } /** diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java index 213ceecc91..1b4bb29503 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java @@ -43,6 +43,7 @@ import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyKey; @@ -91,7 +92,7 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver new Function() { @Override public SkyKey apply(String var) { - return SkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, var); + return LegacySkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, var); } }; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionValue.java index 3d71d1b8cd..080c1047f4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionValue.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.util.Map; @@ -132,7 +133,8 @@ public class ActionExecutionValue implements SkyValue { @ThreadSafe @VisibleForTesting public static SkyKey key(SkyKey lookupKey, int index) { - return SkyKey.create(SkyFunctions.ACTION_EXECUTION, new ActionLookupData(lookupKey, index)); + return LegacySkyKey.create( + SkyFunctions.ACTION_EXECUTION, new ActionLookupData(lookupKey, index)); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java index 22e9b7f631..18f7aaa383 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.actions.ActionLookupValue; import com.google.devtools.build.lib.analysis.actions.ActionTemplate; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; @@ -36,9 +37,8 @@ public final class ActionTemplateExpansionValue extends ActionLookupValue { } static SkyKey key(ActionTemplate actionTemplate) { - return SkyKey.create( - SkyFunctions.ACTION_TEMPLATE_EXPANSION, - createActionTemplateExpansionKey(actionTemplate)); + return LegacySkyKey.create( + SkyFunctions.ACTION_TEMPLATE_EXPANSION, createActionTemplateExpansionKey(actionTemplate)); } static ActionTemplateExpansionKey createActionTemplateExpansionKey( diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactSkyKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactSkyKey.java index 4fa5d9537d..770fecc4e2 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactSkyKey.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactSkyKey.java @@ -15,11 +15,14 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Function; import com.google.common.collect.Collections2; +import com.google.common.collect.Interner; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; import java.util.Collection; @@ -36,12 +39,13 @@ import java.util.Collection; @Immutable @ThreadSafe public final class ArtifactSkyKey { + private static final Interner INTERNER = BlazeInterners.newWeakInterner(); + private ArtifactSkyKey() {} @ThreadSafe public static SkyKey key(Artifact artifact, boolean isMandatory) { - return SkyKey.create( - SkyFunctions.ARTIFACT, + return INTERNER.intern( artifact.isSourceArtifact() ? new OwnedArtifact(artifact, isMandatory) : new OwnedArtifact(artifact)); @@ -98,10 +102,16 @@ public final class ArtifactSkyKey { * since outside of Skyframe it is quite crucial that Artifacts with different owners be able to * compare equal. */ - static class OwnedArtifact { + static class OwnedArtifact implements SkyKey { private final Artifact artifact; // Always true for derived artifacts. private final boolean isMandatory; + // TODO(janakr): we may want to remove this field in the future. The expensive hash computation + // is already cached one level down (in the Artifact), so the CPU overhead here may not be + // worth the memory. However, when running with +CompressedOops, this field is free, so we leave + // it. When running with -CompressedOops, we might be able to save memory by using polymorphism + // for isMandatory and dropping this field. + private int hashCode = 0; /** Constructs an OwnedArtifact wrapper for a source artifact. */ private OwnedArtifact(Artifact sourceArtifact, boolean mandatory) { @@ -123,8 +133,42 @@ public final class ArtifactSkyKey { this.isMandatory = true; // Unused. } + @Override + public SkyFunctionName functionName() { + return SkyFunctions.ARTIFACT; + } + + @Override + public OwnedArtifact argument() { + return this; + } + @Override public int hashCode() { + // We use the hash code caching strategy employed by java.lang.String. There are three subtle + // things going on here: + // + // (1) We use a value of 0 to indicate that the hash code hasn't been computed and cached yet. + // Yes, this means that if the hash code is really 0 then we will "recompute" it each time. + // But this isn't a problem in practice since a hash code of 0 should be rare. + // + // (2) Since we have no synchronization, multiple threads can race here thinking there are the + // first one to compute and cache the hash code. + // + // (3) Moreover, since 'hashCode' is non-volatile, the cached hash code value written from one + // thread may not be visible by another. Note that we probably don't need to worry about + // multiple inefficient reads of 'hashCode' on the same thread since it's non-volatile. + // + // All three of these issues are benign from a correctness perspective; in the end we have no + // overhead from synchronization, at the cost of potentially computing the hash code more than + // once. + if (hashCode == 0) { + hashCode = computeHashCode(); + } + return hashCode; + } + + private int computeHashCode() { int initialHash = artifact.hashCode() + artifact.getArtifactOwner().hashCode(); return isMandatory ? initialHash : 47 * initialHash + 1; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletionValue.java index 45c17faf99..ea6c77468c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletionValue.java @@ -18,9 +18,9 @@ import com.google.common.base.Function; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.analysis.TopLevelArtifactContext; import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.Collection; /** @@ -44,7 +44,7 @@ public class AspectCompletionValue implements SkyValue { new Function() { @Override public SkyKey apply(AspectValue aspectValue) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.ASPECT_COMPLETION, AspectCompletionKey.create(aspectValue.getKey(), ctx)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesValue.java index b5c942015e..c6b8f32549 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesValue.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -26,7 +27,7 @@ public class BlacklistedPackagePrefixesValue implements SkyValue { private final ImmutableSet patterns; private static final SkyKey BLACKLIST_KEY = - SkyKey.create(SkyFunctions.BLACKLISTED_PACKAGE_PREFIXES, ""); + LegacySkyKey.create(SkyFunctions.BLACKLISTED_PACKAGE_PREFIXES, ""); public BlacklistedPackagePrefixesValue(ImmutableSet exclusions) { this.patterns = Preconditions.checkNotNull(exclusions); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java index 9bd14e8fe2..85b97de04d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationValue.java @@ -17,9 +17,9 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; import java.util.Set; @@ -51,7 +51,8 @@ public class BuildConfigurationValue implements SkyValue { @ThreadSafe public static SkyKey key(Set> fragments, BuildOptions buildOptions) { - return SkyKey.create(SkyFunctions.BUILD_CONFIGURATION, new Key(fragments, buildOptions, true)); + return LegacySkyKey.create( + SkyFunctions.BUILD_CONFIGURATION, new Key(fragments, buildOptions, true)); } /** @@ -65,7 +66,8 @@ public class BuildConfigurationValue implements SkyValue { public static SkyKey disabledActionsKey( Set> fragments, BuildOptions buildOptions) { - return SkyKey.create(SkyFunctions.BUILD_CONFIGURATION, new Key(fragments, buildOptions, false)); + return LegacySkyKey.create( + SkyFunctions.BUILD_CONFIGURATION, new Key(fragments, buildOptions, false)); } static final class Key implements Serializable { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ChainUniquenessUtils.java b/src/main/java/com/google/devtools/build/lib/skyframe/ChainUniquenessUtils.java index dfff25096b..3d29f8d980 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ChainUniquenessUtils.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ChainUniquenessUtils.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; @@ -33,7 +34,7 @@ class ChainUniquenessUtils { */ static SkyKey key(SkyFunctionName functionName, ImmutableList chain) { Preconditions.checkState(!chain.isEmpty()); - return SkyKey.create(functionName, canonicalize(chain)); + return LegacySkyKey.create(functionName, canonicalize(chain)); } private static ImmutableList canonicalize(ImmutableList cycle) { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java index b4118e3fab..5f819e58ae 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.skyframe.RecursivePkgValue.RecursivePkgKey; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.util.Objects; @@ -230,6 +231,6 @@ public abstract class CollectPackagesUnderDirectoryValue implements SkyValue { } static SkyKey key(RecursivePkgKey recursivePkgKey) { - return SkyKey.create(SkyFunctions.COLLECT_PACKAGES_UNDER_DIRECTORY, recursivePkgKey); + return LegacySkyKey.create(SkyFunctions.COLLECT_PACKAGES_UNDER_DIRECTORY, recursivePkgKey); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java index 4809ae1426..700d32226a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.auto.value.AutoValue; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.pkgcache.FilteringPolicy; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -30,7 +31,7 @@ public class CollectTargetsInPackageValue implements SkyValue { * comment for what callers should have done beforehand. */ static SkyKey key(PackageIdentifier packageId, FilteringPolicy filteringPolicy) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.COLLECT_TARGETS_IN_PACKAGE, CollectTargetsInPackageKey.create(packageId, filteringPolicy)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionValue.java index eb5f173c25..6d591f3b7e 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionValue.java @@ -19,9 +19,9 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; @@ -44,7 +44,7 @@ public class ConfigurationCollectionValue implements SkyValue { @ThreadSafe public static SkyKey key(BuildOptions buildOptions, ImmutableSet multiCpu) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.CONFIGURATION_COLLECTION, new ConfigurationCollectionKey(buildOptions, multiCpu)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentValue.java index 45740ddb3a..79686fbd87 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentValue.java @@ -23,12 +23,11 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.packages.RuleClassProvider; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; - import javax.annotation.Nullable; /** @@ -57,7 +56,7 @@ public class ConfigurationFragmentValue implements SkyValue { BuildConfiguration.getOptionsClasses( ImmutableList.>of(fragmentType), ruleClassProvider)); - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.CONFIGURATION_FRAGMENT, new ConfigurationFragmentKey(optionsKey, fragmentType)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetCycleReporter.java index aee158ebb3..4e0b959674 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetCycleReporter.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetCycleReporter.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.events.ExtendedEventHandler; import com.google.devtools.build.lib.pkgcache.PackageProvider; import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey; import com.google.devtools.build.skyframe.CycleInfo; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; /** @@ -94,7 +95,7 @@ class ConfiguredTargetCycleReporter extends AbstractLabelCycleReporter { private SkyKey asTransitiveTargetKey(SkyKey key) { return IS_TRANSITIVE_TARGET_SKY_KEY.apply(key) ? key - : SkyKey.create(TRANSITIVE_TARGET, ((ConfiguredTargetKey) key.argument()).getLabel()); + : LegacySkyKey.create(TRANSITIVE_TARGET, ((ConfiguredTargetKey) key.argument()).getLabel()); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java index 0405f63c24..b952a97575 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.Path; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -40,7 +41,7 @@ public abstract class ContainingPackageLookupValue implements SkyValue { public static SkyKey key(PackageIdentifier id) { Preconditions.checkArgument(!id.getPackageFragment().isAbsolute(), id); Preconditions.checkArgument(!id.getRepository().isDefault(), id); - return SkyKey.create(SkyFunctions.CONTAINING_PACKAGE_LOOKUP, id); + return LegacySkyKey.create(SkyFunctions.CONTAINING_PACKAGE_LOOKUP, id); } public static ContainingPackage withContainingPackage(PackageIdentifier pkgId, Path root) { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java index 3d63fe04ad..3f9c8d84e4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java @@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; import com.google.devtools.build.lib.actions.ActionLookupValue; import com.google.devtools.build.lib.actions.ArtifactOwner; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; @@ -28,7 +29,7 @@ public class CoverageReportValue extends ActionLookupValue { // There should only ever be one CoverageReportValue value in the graph. public static final ArtifactOwner ARTIFACT_OWNER = new CoverageReportKey(); - static final SkyKey SKY_KEY = SkyKey.create(SkyFunctions.COVERAGE_REPORT, ARTIFACT_OWNER); + static final SkyKey SKY_KEY = LegacySkyKey.create(SkyFunctions.COVERAGE_REPORT, ARTIFACT_OWNER); CoverageReportValue( ImmutableList coverageReportActions, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java index 7664fd2117..2a10797305 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java @@ -19,9 +19,9 @@ import com.google.devtools.build.lib.vfs.Dirent; import com.google.devtools.build.lib.vfs.Dirent.Type; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.lib.vfs.Symlinks; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.IOException; import java.io.Serializable; import java.util.Arrays; @@ -30,7 +30,6 @@ import java.util.Collection; import java.util.Comparator; import java.util.Iterator; import java.util.Objects; - import javax.annotation.Nullable; /** @@ -57,7 +56,7 @@ public final class DirectoryListingStateValue implements SkyValue { @ThreadSafe public static SkyKey key(RootedPath rootedPath) { - return SkyKey.create(SkyFunctions.DIRECTORY_LISTING_STATE, rootedPath); + return LegacySkyKey.create(SkyFunctions.DIRECTORY_LISTING_STATE, rootedPath); } /** diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java index 3f61fe660e..d6fb7b484b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java @@ -16,9 +16,9 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.Objects; /** @@ -55,7 +55,7 @@ public abstract class DirectoryListingValue implements SkyValue { */ @ThreadSafe public static SkyKey key(RootedPath directoryUnderRoot) { - return SkyKey.create(SkyFunctions.DIRECTORY_LISTING, directoryUnderRoot); + return LegacySkyKey.create(SkyFunctions.DIRECTORY_LISTING, directoryUnderRoot); } static DirectoryListingValue value(RootedPath dirRootedPath, FileValue dirFileValue, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java index 8a7bdd92d9..c21aa6c95a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -57,6 +58,6 @@ public class ExternalPackageFunction implements SkyFunction { * Returns a SkyKey to find the WORKSPACE file at the given path. */ public static SkyKey key(RootedPath workspacePath) { - return SkyKey.create(SkyFunctions.EXTERNAL_PACKAGE, workspacePath); + return LegacySkyKey.create(SkyFunctions.EXTERNAL_PACKAGE, workspacePath); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateValue.java index 9206534613..e8c6379272 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateValue.java @@ -24,13 +24,12 @@ import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.lib.vfs.Symlinks; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.IOException; import java.util.Arrays; import java.util.Objects; - import javax.annotation.Nullable; /** @@ -103,7 +102,7 @@ public abstract class FileStateValue implements SkyValue { @VisibleForTesting @ThreadSafe public static SkyKey key(RootedPath rootedPath) { - return SkyKey.create(SkyFunctions.FILE_STATE, rootedPath); + return LegacySkyKey.create(SkyFunctions.FILE_STATE, rootedPath); } public abstract Type getType(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileValue.java index 6b2bfa7216..3874674b23 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FileValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileValue.java @@ -19,6 +19,7 @@ import com.google.devtools.build.lib.skyframe.FileStateValue.Type; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.util.Objects; @@ -115,7 +116,7 @@ public abstract class FileValue implements SkyValue { */ @ThreadSafe public static SkyKey key(RootedPath rootedPath) { - return SkyKey.create(SkyFunctions.FILE, rootedPath); + return LegacySkyKey.create(SkyFunctions.FILE, rootedPath); } /** diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java index d628da2bb8..38386e264d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.actions.FilesetOutputSymlink; import com.google.devtools.build.lib.actions.FilesetTraversalParams; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -44,7 +45,7 @@ public final class FilesetEntryValue implements SkyValue { } public static SkyKey key(FilesetTraversalParams params) { - return SkyKey.create(SkyFunctions.FILESET_ENTRY, params); + return LegacySkyKey.create(SkyFunctions.FILESET_ENTRY, params); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GlobValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/GlobValue.java index cd4dd85f34..67ff7b1979 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/GlobValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/GlobValue.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.UnixGlob; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -103,7 +104,7 @@ public final class GlobValue implements SkyValue { @ThreadSafe static SkyKey internalKey(PackageIdentifier packageId, Path packageRoot, PathFragment subdir, String pattern, boolean excludeDirs) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.GLOB, new GlobDescriptor(packageId, packageRoot, subdir, pattern, excludeDirs)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java index 794dcc37d6..b2a0c548e1 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -27,7 +28,7 @@ import com.google.devtools.build.skyframe.SkyValue; public abstract class LocalRepositoryLookupValue implements SkyValue { static SkyKey key(RootedPath directory) { - return SkyKey.create(SkyFunctions.LOCAL_REPOSITORY_LOOKUP, directory); + return LegacySkyKey.create(SkyFunctions.LOCAL_REPOSITORY_LOOKUP, directory); } private static final LocalRepositoryLookupValue MAIN_REPO_VALUE = new MainRepositoryLookupValue(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java index 17ba9bee28..b08329c487 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java @@ -19,6 +19,7 @@ import com.google.devtools.build.lib.packages.BuildFileNotFoundException; import com.google.devtools.build.lib.packages.NoSuchPackageException; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -38,7 +39,7 @@ import javax.annotation.Nullable; */ public class PackageErrorFunction implements SkyFunction { public static SkyKey key(PackageIdentifier packageIdentifier) { - return SkyKey.create(SkyFunctions.PACKAGE_ERROR, packageIdentifier); + return LegacySkyKey.create(SkyFunctions.PACKAGE_ERROR, packageIdentifier); } @Nullable diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java index 79f6a41679..4bf711f336 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java @@ -19,6 +19,7 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -156,7 +157,7 @@ public abstract class PackageLookupValue implements SkyValue { public static SkyKey key(PackageIdentifier pkgIdentifier) { Preconditions.checkArgument(!pkgIdentifier.getRepository().isDefault()); - return SkyKey.create(SkyFunctions.PACKAGE_LOOKUP, pkgIdentifier); + return LegacySkyKey.create(SkyFunctions.PACKAGE_LOOKUP, pkgIdentifier); } /** Successful lookup value. */ diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java index d637a7fecf..2e7fad2945 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java @@ -19,9 +19,9 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.NotComparableSkyValue; import com.google.devtools.build.skyframe.SkyKey; - import java.util.ArrayList; import java.util.List; @@ -55,7 +55,7 @@ public class PackageValue implements NotComparableSkyValue { public static SkyKey key(PackageIdentifier pkgIdentifier) { Preconditions.checkArgument(!pkgIdentifier.getRepository().isDefault()); - return SkyKey.create(SkyFunctions.PACKAGE, pkgIdentifier); + return LegacySkyKey.create(SkyFunctions.PACKAGE, pkgIdentifier); } public static List keys(Iterable pkgIdentifiers) { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java index 4ef9ae33e6..5b80c1c9f6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetValue.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -40,7 +41,7 @@ class PostConfiguredTargetValue implements SkyValue { } public static SkyKey key(ConfiguredTargetKey lac) { - return SkyKey.create(SkyFunctions.POST_CONFIGURED_TARGET, lac); + return LegacySkyKey.create(SkyFunctions.POST_CONFIGURED_TARGET, lac); } public ConfiguredTarget getCt() { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java index d879c8f8b6..78c525f1e5 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java @@ -30,6 +30,7 @@ import com.google.devtools.build.lib.syntax.SkylarkSemanticsOptions; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.Injectable; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -77,44 +78,44 @@ public final class PrecomputedValue implements SkyValue { } public static final Precomputed DEFAULTS_PACKAGE_CONTENTS = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "default_pkg")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "default_pkg")); public static final Precomputed BLACKLISTED_PACKAGE_PREFIXES_FILE = new Precomputed<>( - SkyKey.create(SkyFunctions.PRECOMPUTED, "blacklisted_package_prefixes_file")); + LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "blacklisted_package_prefixes_file")); public static final Precomputed DEFAULT_VISIBILITY = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "default_visibility")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "default_visibility")); public static final Precomputed SKYLARK_SEMANTICS = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "skylark_semantics")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "skylark_semantics")); static final Precomputed BUILD_ID = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "build_id")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "build_id")); static final Precomputed> ACTION_ENV = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "action_env")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "action_env")); static final Precomputed WORKSPACE_STATUS_KEY = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "workspace_status_action")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "workspace_status_action")); static final Precomputed> COVERAGE_REPORT_KEY = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "coverage_report_actions")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "coverage_report_actions")); public static final Precomputed> BUILD_INFO_FACTORIES = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "build_info_factories")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "build_info_factories")); public static final Precomputed BLAZE_DIRECTORIES = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "blaze_directories")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "blaze_directories")); public static final Precomputed PRODUCT_NAME = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "product_name")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "product_name")); static final Precomputed> BAD_ACTIONS = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "bad_actions")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "bad_actions")); public static final Precomputed PATH_PACKAGE_LOCATOR = - new Precomputed<>(SkyKey.create(SkyFunctions.PRECOMPUTED, "path_package_locator")); + new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "path_package_locator")); private final Object value; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java index eb1754e9dd..79fd2fb9b2 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java @@ -23,9 +23,9 @@ import com.google.devtools.build.lib.pkgcache.FilteringPolicies; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternSkyKeyOrException; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.List; /** @@ -209,7 +209,7 @@ public class PrepareDepsOfPatternValue implements SkyValue { @Override public SkyKey getSkyKey() throws TargetParsingException { - return SkyKey.create(SkyFunctions.PREPARE_DEPS_OF_PATTERN, targetPatternKey); + return LegacySkyKey.create(SkyFunctions.PREPARE_DEPS_OF_PATTERN, targetPatternKey); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java index cbcd9717df..8a3a3c5391 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java @@ -18,9 +18,9 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; @@ -55,7 +55,7 @@ public final class PrepareDepsOfPatternsValue implements SkyValue { @ThreadSafe public static SkyKey key(ImmutableList patterns, String offset) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.PREPARE_DEPS_OF_PATTERNS, new TargetPatternSequence(patterns, offset)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java index c937263614..2c7e318f93 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java @@ -23,9 +23,9 @@ import com.google.devtools.build.lib.skyframe.RecursivePkgValue.RecursivePkgKey; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; @@ -61,7 +61,7 @@ public final class PrepareDepsOfTargetsUnderDirectoryValue implements SkyValue { @ThreadSafe public static SkyKey key(RepositoryName repository, RootedPath rootedPath, ImmutableSet excludedPaths, FilteringPolicy filteringPolicy) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.PREPARE_DEPS_OF_TARGETS_UNDER_DIRECTORY, new PrepareDepsOfTargetsUnderDirectoryKey( new RecursivePkgKey(repository, rootedPath, excludedPaths), filteringPolicy)); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java index 7f2777c379..c3d465e622 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java @@ -26,11 +26,10 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.regex.Pattern; - import javax.annotation.Nullable; /** @@ -105,7 +104,7 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { } public static SkyKey key(TraversalRequest traversal) { - return SkyKey.create(SkyFunctions.RECURSIVE_FILESYSTEM_TRAVERSAL, traversal); + return LegacySkyKey.create(SkyFunctions.RECURSIVE_FILESYSTEM_TRAVERSAL, traversal); } /** The parameters of a file or directory traversal. */ diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java index 9bec1eeb25..2d3025b612 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java @@ -23,9 +23,9 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.Serializable; import java.util.Objects; @@ -58,7 +58,7 @@ public class RecursivePkgValue implements SkyValue { @ThreadSafe public static SkyKey key(RepositoryName repositoryName, RootedPath rootedPath, ImmutableSet excludedPaths) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.RECURSIVE_PKG, new RecursivePkgKey(repositoryName, rootedPath, excludedPaths)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java index 575c2a2d86..a09d839654 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryValue.java @@ -19,6 +19,7 @@ import com.google.common.base.Preconditions; import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue; import com.google.devtools.build.lib.vfs.Path; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -121,6 +122,6 @@ public abstract class RepositoryValue implements SkyValue { } public static SkyKey key(RepositoryName repositoryName) { - return SkyKey.create(SkyFunctions.REPOSITORY, repositoryName); + return LegacySkyKey.create(SkyFunctions.REPOSITORY, repositoryName); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java index 264f549dda..86858d2d6f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java @@ -62,6 +62,7 @@ import com.google.devtools.build.skyframe.BuildDriver; import com.google.devtools.build.skyframe.Differencer; import com.google.devtools.build.skyframe.InMemoryMemoizingEvaluator; import com.google.devtools.build.skyframe.Injectable; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.MemoizingEvaluator.EvaluatorSupplier; import com.google.devtools.build.skyframe.NodeEntry; import com.google.devtools.build.skyframe.RecordingDifferencer; @@ -385,7 +386,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor { envToCheck.addAll(clientEnv.get().keySet()); previousClientEnvironment = clientEnv.get().keySet(); for (String env : envToCheck) { - SkyKey key = SkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, env); + SkyKey key = LegacySkyKey.create(SkyFunctions.CLIENT_ENVIRONMENT_VARIABLE, env); if (values.containsKey(key)) { String value = ((ClientEnvironmentValue) values.get(key)).getValue(); String newValue = clientEnv.get().get(env); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java index 05c78873b6..e0f8a845fc 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java @@ -67,8 +67,6 @@ public final class SkyFunctions { public static final SkyFunctionName RECURSIVE_PKG = SkyFunctionName.create("RECURSIVE_PKG"); public static final SkyFunctionName TRANSITIVE_TARGET = SkyFunctionName.create("TRANSITIVE_TARGET"); - public static final SkyFunctionName TRANSITIVE_TRAVERSAL = - SkyFunctionName.create("TRANSITIVE_TRAVERSAL"); public static final SkyFunctionName CONFIGURED_TARGET = SkyFunctionName.create("CONFIGURED_TARGET"); public static final SkyFunctionName POST_CONFIGURED_TARGET = diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index a2a85757bf..f058a4ec1f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -400,7 +400,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { map.put(SkyFunctions.PACKAGE_ERROR, new PackageErrorFunction()); map.put(SkyFunctions.TARGET_MARKER, new TargetMarkerFunction()); map.put(SkyFunctions.TRANSITIVE_TARGET, new TransitiveTargetFunction(ruleClassProvider)); - map.put(SkyFunctions.TRANSITIVE_TRAVERSAL, new TransitiveTraversalFunction()); + map.put(Label.TRANSITIVE_TRAVERSAL, new TransitiveTraversalFunction()); map.put( SkyFunctions.CONFIGURED_TARGET, new ConfiguredTargetFunction( diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java index d97c034dfe..583e1558dc 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java @@ -17,6 +17,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.syntax.Environment.Extension; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.io.Serializable; @@ -98,7 +99,7 @@ public class SkylarkImportLookupValue implements SkyValue { } static SkyKey key(Label importLabel, boolean inWorkspace) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.SKYLARK_IMPORTS_LOOKUP, new SkylarkImportLookupKey(importLabel, inWorkspace)); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java index ef55b9f2e6..476f69da44 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java @@ -19,9 +19,9 @@ import com.google.common.collect.Iterables; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.LabelAndConfiguration; import com.google.devtools.build.lib.analysis.TopLevelArtifactContext; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.Collection; /** @@ -41,7 +41,7 @@ public class TargetCompletionValue implements SkyValue { public static SkyKey key( LabelAndConfiguration labelAndConfiguration, TopLevelArtifactContext topLevelArtifactContext) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.TARGET_COMPLETION, TargetCompletionKey.create(labelAndConfiguration, topLevelArtifactContext)); } @@ -53,7 +53,7 @@ public class TargetCompletionValue implements SkyValue { new Function() { @Override public SkyKey apply(ConfiguredTarget ct) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.TARGET_COMPLETION, TargetCompletionKey.create(LabelAndConfiguration.of(ct), ctx)); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java index f1aa03dadc..c4419d4dce 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java @@ -17,6 +17,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -47,6 +48,6 @@ public final class TargetMarkerValue implements SkyValue { @ThreadSafe public static SkyKey key(Label label) { Preconditions.checkArgument(!label.getPackageIdentifier().getRepository().isDefault()); - return SkyKey.create(SkyFunctions.TARGET_MARKER, label); + return LegacySkyKey.create(SkyFunctions.TARGET_MARKER, label); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java index 085eacdc31..187a94280f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.LoadingResult; import com.google.devtools.build.lib.pkgcache.TestFilter; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.io.ObjectInputStream; @@ -131,7 +132,7 @@ public final class TargetPatternPhaseValue implements SkyValue { boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests, ImmutableList buildTargetFilter, boolean buildManualTests, @Nullable TestFilter testFilter) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.TARGET_PATTERN_PHASE, new TargetPatternList( targetPatterns, @@ -140,7 +141,8 @@ public final class TargetPatternPhaseValue implements SkyValue { buildTestsOnly, determineTests, buildTargetFilter, - buildManualTests, testFilter)); + buildManualTests, + testFilter)); } /** diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java index 22b400e80d..ce65642e65 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java @@ -31,6 +31,7 @@ import com.google.devtools.build.lib.pkgcache.FilteringPolicy; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.InterruptibleSupplier; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.io.IOException; @@ -146,7 +147,7 @@ public final class TargetPatternValue implements SkyValue { !positive, offset, ImmutableSet.of()); - SkyKey skyKey = SkyKey.create(SkyFunctions.TARGET_PATTERN, targetPatternKey); + SkyKey skyKey = LegacySkyKey.create(SkyFunctions.TARGET_PATTERN, targetPatternKey); builder.add(new TargetPatternSkyKeyValue(skyKey)); } return builder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java index 01f5698eb0..68e09f22de 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java @@ -19,9 +19,9 @@ import com.google.common.collect.Iterables; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.LabelAndConfiguration; import com.google.devtools.build.lib.analysis.TopLevelArtifactContext; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.util.Collection; /** @@ -37,7 +37,7 @@ public class TestCompletionValue implements SkyValue { LabelAndConfiguration lac, final TopLevelArtifactContext topLevelArtifactContext, final boolean exclusiveTesting) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.TEST_COMPLETION, TestCompletionKey.create(lac, topLevelArtifactContext, exclusiveTesting)); } @@ -50,7 +50,7 @@ public class TestCompletionValue implements SkyValue { new Function() { @Override public SkyKey apply(ConfiguredTarget ct) { - return SkyKey.create( + return LegacySkyKey.create( SkyFunctions.TEST_COMPLETION, TestCompletionKey.create( LabelAndConfiguration.of(ct), topLevelArtifactContext, exclusiveTesting)); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionValue.java index a7a330f36d..9810b75333 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestSuiteExpansionValue.java @@ -22,9 +22,9 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.util.Preconditions; +import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; - import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; @@ -70,7 +70,7 @@ public final class TestSuiteExpansionValue implements SkyValue { */ @ThreadSafe public static SkyKey key(Collection