diff options
author | janakr <janakr@google.com> | 2017-09-22 14:47:55 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-09-25 09:38:26 -0400 |
commit | 6acf6f00ab1b4dd8805b962f20f2897fc431e878 (patch) | |
tree | 877b8201b007eede845ea580c1e7c5c6fda5b47a /src/main/java/com/google/devtools | |
parent | 3c6c45fe9653b53288f99c68fc6b9d28da5a48ba (diff) |
Remove PrecomputedValue for BlazeDirectories. All consumers have the value injected directly, which makes sense, because it's immutable over the lifetime of the server.
Step 3.
PiperOrigin-RevId: 169717587
Diffstat (limited to 'src/main/java/com/google/devtools')
7 files changed, 24 insertions, 23 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java index b065806674..3a9305293a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java @@ -169,7 +169,7 @@ public class BazelRepositoryModule extends BlazeModule { isFetch, clientEnvironmentSupplier, directories)); - builder.addSkyFunction(MavenServerFunction.NAME, new MavenServerFunction()); + builder.addSkyFunction(MavenServerFunction.NAME, new MavenServerFunction(directories)); filesystem = directories.getFileSystem(); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java index dd9c51ced6..c6c92e23a2 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.rules.ExternalPackageUtil; import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.rules.repository.WorkspaceAttributeMapper; import com.google.devtools.build.lib.skyframe.FileValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.Fingerprint; @@ -56,7 +55,10 @@ public class MavenServerFunction implements SkyFunction { private static final String USER_KEY = "user"; private static final String SYSTEM_KEY = "system"; - public MavenServerFunction() { + private final BlazeDirectories directories; + + public MavenServerFunction(BlazeDirectories directories) { + this.directories = directories; } @Nullable @@ -71,7 +73,6 @@ public class MavenServerFunction implements SkyFunction { } catch (ExternalPackageUtil.ExternalRuleNotFoundException ex) { // Ignored. We throw a new one below. } - BlazeDirectories directories = PrecomputedValue.BLAZE_DIRECTORIES.get(env); if (env.valuesMissing()) { return null; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentFunction.java index 642aed2824..502184247f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentFunction.java @@ -44,12 +44,15 @@ import java.io.IOException; public final class ConfigurationFragmentFunction implements SkyFunction { private final Supplier<ImmutableList<ConfigurationFragmentFactory>> configurationFragments; private final RuleClassProvider ruleClassProvider; + private final BlazeDirectories directories; public ConfigurationFragmentFunction( Supplier<ImmutableList<ConfigurationFragmentFactory>> configurationFragments, - RuleClassProvider ruleClassProvider) { + RuleClassProvider ruleClassProvider, + BlazeDirectories directories) { this.configurationFragments = configurationFragments; this.ruleClassProvider = ruleClassProvider; + this.directories = directories; } @Override @@ -60,8 +63,8 @@ public final class ConfigurationFragmentFunction implements SkyFunction { BuildOptions buildOptions = configurationFragmentKey.getBuildOptions(); ConfigurationFragmentFactory factory = getFactory(configurationFragmentKey.getFragmentType()); try { - PackageProviderForConfigurations packageProvider = - new SkyframePackageLoaderWithValueEnvironment(env, ruleClassProvider); + PackageProviderForConfigurations packageProvider = + new SkyframePackageLoaderWithValueEnvironment(env, ruleClassProvider, directories); ConfigurationEnvironment confEnv = new ConfigurationBuilderEnvironment(packageProvider); Fragment fragment = factory.create(confEnv, buildOptions); 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 ebdbdf0656..1068aa9714 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 @@ -19,7 +19,6 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; -import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.WorkspaceStatusAction; import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory; import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory.BuildInfoKey; @@ -105,9 +104,6 @@ public final class PrecomputedValue implements SkyValue { public static final Precomputed<Map<BuildInfoKey, BuildInfoFactory>> BUILD_INFO_FACTORIES = new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "build_info_factories")); - public static final Precomputed<BlazeDirectories> BLAZE_DIRECTORIES = - new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "blaze_directories")); - public static final Precomputed<String> PRODUCT_NAME = new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "product_name")); 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 1cbb82743b..b44de64e71 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 @@ -427,8 +427,9 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { new PostConfiguredTargetFunction(new BuildViewProvider(), ruleClassProvider)); map.put(SkyFunctions.BUILD_CONFIGURATION, new BuildConfigurationFunction(directories, ruleClassProvider)); - map.put(SkyFunctions.CONFIGURATION_FRAGMENT, new ConfigurationFragmentFunction( - configurationFragments, ruleClassProvider)); + map.put( + SkyFunctions.CONFIGURATION_FRAGMENT, + new ConfigurationFragmentFunction(configurationFragments, ruleClassProvider, directories)); map.put(SkyFunctions.WORKSPACE_NAME, new WorkspaceNameFunction()); map.put(SkyFunctions.WORKSPACE_AST, new WorkspaceASTFunction(ruleClassProvider)); map.put( @@ -717,7 +718,6 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { protected void maybeInjectPrecomputedValuesForAnalysis() { if (needToInjectPrecomputedValuesForAnalysis) { - PrecomputedValue.BLAZE_DIRECTORIES.set(injectable(), directories); PrecomputedValue.PRODUCT_NAME.set(injectable(), productName); injectBuildInfoFactories(); injectExtraPrecomputedValues(extraPrecomputedValues); @@ -1069,7 +1069,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { /** * Asks the Skyframe evaluator to build the value for BuildConfigurationCollection and returns the - * result. Also invalidates {@link PrecomputedValue#BLAZE_DIRECTORIES} if it has changed. + * result. */ public BuildConfigurationCollection createConfigurations( ExtendedEventHandler eventHandler, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java index 18f7e98155..95e5c7e4b7 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java @@ -42,11 +42,15 @@ import java.io.IOException; class SkyframePackageLoaderWithValueEnvironment implements PackageProviderForConfigurations { private final SkyFunction.Environment env; private final RuleClassProvider ruleClassProvider; + private final BlazeDirectories directories; - public SkyframePackageLoaderWithValueEnvironment(SkyFunction.Environment env, - RuleClassProvider ruleClassProvider) { + SkyframePackageLoaderWithValueEnvironment( + SkyFunction.Environment env, + RuleClassProvider ruleClassProvider, + BlazeDirectories directories) { this.env = env; this.ruleClassProvider = ruleClassProvider; + this.directories = directories; } @Override @@ -96,7 +100,7 @@ class SkyframePackageLoaderWithValueEnvironment implements PackageProviderForCon @Override public BlazeDirectories getDirectories() throws InterruptedException { - return PrecomputedValue.BLAZE_DIRECTORIES.get(env); + return directories; } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java index fa12d24362..f5b0690752 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java @@ -213,15 +213,13 @@ public abstract class AbstractPackageLoader implements PackageLoader { makePreinjectedDiff( pkgLocator, builder.defaultsPackageContents, - ImmutableList.copyOf(builder.extraPrecomputedValues), - directories); + ImmutableList.copyOf(builder.extraPrecomputedValues)); } private static ImmutableDiff makePreinjectedDiff( PathPackageLocator pkgLocator, String defaultsPackageContents, - ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues, - BlazeDirectories directories) { + ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues) { final Map<SkyKey, SkyValue> valuesToInject = new HashMap<>(); Injectable injectable = new Injectable() { @@ -245,7 +243,6 @@ public abstract class AbstractPackageLoader implements PackageLoader { Options.getDefaults(SkylarkSemanticsOptions.class)); PrecomputedValue.DEFAULTS_PACKAGE_CONTENTS.set(injectable, defaultsPackageContents); PrecomputedValue.BLACKLISTED_PACKAGE_PREFIXES_FILE.set(injectable, PathFragment.EMPTY_FRAGMENT); - PrecomputedValue.BLAZE_DIRECTORIES.set(injectable, directories); return new ImmutableDiff(ImmutableList.<SkyKey>of(), valuesToInject); } |