aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-09-22 14:47:55 -0400
committerGravatar John Cater <jcater@google.com>2017-09-25 09:38:26 -0400
commit6acf6f00ab1b4dd8805b962f20f2897fc431e878 (patch)
tree877b8201b007eede845ea580c1e7c5c6fda5b47a /src/main/java/com/google/devtools
parent3c6c45fe9653b53288f99c68fc6b9d28da5a48ba (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationFragmentFunction.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java7
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);
}