aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-11-29 10:54:23 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-29 10:56:35 -0800
commit17810adb392c3e38c5021cee14c5160fdaf2adef (patch)
tree205ec9938186f4e9b8465317b5190bdc2654c486 /src/main/java/com
parent1d1bee504bb22b75cd12c541522482edc8b8fa8c (diff)
Remove the concept of a mandatory input which is allowed to be missing.
RELNOTES: None. PiperOrigin-RevId: 177332323
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java20
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java4
6 files changed, 4 insertions, 54 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
index daf3d3c1b8..4ae356de33 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
@@ -14,8 +14,6 @@
package com.google.devtools.build.lib.runtime;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.eventbus.SubscriberExceptionHandler;
@@ -31,7 +29,6 @@ import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.SkyframeExecutorFactory;
import com.google.devtools.build.lib.util.AbruptExitException;
-import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
import java.util.Map;
@@ -48,7 +45,6 @@ public final class WorkspaceBuilder {
private WorkspaceStatusAction.Factory workspaceStatusActionFactory;
private final ImmutableList.Builder<DiffAwareness.Factory> diffAwarenessFactories =
ImmutableList.builder();
- private Predicate<PathFragment> allowedMissingInputs;
// We use an immutable map builder for the nice side effect that it throws if a duplicate key
// is inserted.
private final ImmutableMap.Builder<SkyFunctionName, SkyFunction> skyFunctions =
@@ -71,9 +67,6 @@ public final class WorkspaceBuilder {
if (skyframeExecutorFactory == null) {
skyframeExecutorFactory = new SequencedSkyframeExecutorFactory();
}
- if (allowedMissingInputs == null) {
- allowedMissingInputs = Predicates.alwaysFalse();
- }
SkyframeExecutor skyframeExecutor =
skyframeExecutorFactory.create(
@@ -83,7 +76,6 @@ public final class WorkspaceBuilder {
workspaceStatusActionFactory,
ruleClassProvider.getBuildInfoFactories(),
diffAwarenessFactories.build(),
- allowedMissingInputs,
skyFunctions.build(),
customDirtinessCheckers.build());
return new BlazeWorkspace(
@@ -140,18 +132,6 @@ public final class WorkspaceBuilder {
return this;
}
- /**
- * Action inputs are allowed to be missing for all inputs where this predicate returns true. Only
- * one predicate may be set per workspace.
- */
- public WorkspaceBuilder setAllowedMissingInputs(Predicate<PathFragment> allowedMissingInputs) {
- Preconditions.checkArgument(this.allowedMissingInputs == null,
- "At most one module may set allowed missing inputs. But found two: %s and %s",
- this.allowedMissingInputs, allowedMissingInputs);
- this.allowedMissingInputs = Preconditions.checkNotNull(allowedMissingInputs);
- return this;
- }
-
/** Add an "extra" SkyFunction for SkyValues. */
public WorkspaceBuilder addSkyFunction(SkyFunctionName name, SkyFunction skyFunction) {
Preconditions.checkNotNull(name);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
index 6be94fb614..bb0ddbacd9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
@@ -36,7 +36,6 @@ import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.skyframe.ArtifactSkyKey.OwnedArtifact;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
-import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionException;
@@ -52,12 +51,6 @@ import javax.annotation.Nullable;
/** A builder of values for {@link ArtifactSkyKey} keys. */
class ArtifactFunction implements SkyFunction {
- private final Predicate<PathFragment> allowedMissingInputs;
-
- ArtifactFunction(Predicate<PathFragment> allowedMissingInputs) {
- this.allowedMissingInputs = allowedMissingInputs;
- }
-
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws ArtifactFunctionException, InterruptedException {
@@ -234,7 +227,7 @@ class ArtifactFunction implements SkyFunction {
return null;
}
if (!fileValue.exists()) {
- if (!mandatory || isAllowedMissingInput(fileSkyKey)) {
+ if (!mandatory) {
return FileArtifactValue.MISSING_FILE_MARKER;
} else {
throw makeMissingInputFileException(artifact, mandatory, null, env.getListener());
@@ -243,17 +236,10 @@ class ArtifactFunction implements SkyFunction {
try {
return FileArtifactValue.create(artifact, fileValue);
} catch (IOException e) {
- if (isAllowedMissingInput(fileSkyKey)) {
- return FileArtifactValue.MISSING_FILE_MARKER;
- }
throw makeMissingInputFileException(artifact, mandatory, e, env.getListener());
}
}
- private boolean isAllowedMissingInput(SkyKey fileSkyKey) {
- return allowedMissingInputs.apply(((RootedPath) fileSkyKey.argument()).getRelativePath());
- }
-
private static MissingInputFileException makeMissingInputFileException(
Artifact artifact, boolean mandatory, Exception failure, EventHandler reporter) {
String extraMsg = (failure == null) ? "" : (":" + failure.getMessage());
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 8f39fb6c78..7ae1bca0a3 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
@@ -136,7 +136,6 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories,
- Predicate<PathFragment> allowedMissingInputs,
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers,
PathFragment blacklistedPackagePrefixesFile,
@@ -150,7 +149,6 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
directories,
workspaceStatusActionFactory,
buildInfoFactories,
- allowedMissingInputs,
extraSkyFunctions,
ExternalFileAction.DEPEND_ON_EXTERNAL_PKG_FOR_EXTERNAL_REPO_PATHS,
blacklistedPackagePrefixesFile,
@@ -168,7 +166,6 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories,
- Predicate<PathFragment> allowedMissingInputs,
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers,
PathFragment blacklistedPackagePrefixesFile,
@@ -184,7 +181,6 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor {
workspaceStatusActionFactory,
buildInfoFactories,
diffAwarenessFactories,
- allowedMissingInputs,
extraSkyFunctions,
customDirtinessCheckers,
blacklistedPackagePrefixesFile,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
index 0b645fb34b..6e5c409912 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorFactory.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
-import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
@@ -38,7 +37,6 @@ public class SequencedSkyframeExecutorFactory implements SkyframeExecutorFactory
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories,
- Predicate<PathFragment> allowedMissingInputs,
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers) {
return SequencedSkyframeExecutor.create(
@@ -48,7 +46,6 @@ public class SequencedSkyframeExecutorFactory implements SkyframeExecutorFactory
workspaceStatusActionFactory,
buildInfoFactories,
diffAwarenessFactories,
- allowedMissingInputs,
extraSkyFunctions,
customDirtinessCheckers,
PathFragment.EMPTY_FRAGMENT,
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 6db04c3616..d233aab791 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
@@ -262,7 +262,6 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
protected int modifiedFiles;
protected int outputDirtyFiles;
protected int modifiedFilesDuringPreviousBuild;
- private final Predicate<PathFragment> allowedMissingInputs;
private final ExternalFileAction externalFileAction;
private final ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions;
@@ -296,7 +295,6 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
BlazeDirectories directories,
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
- Predicate<PathFragment> allowedMissingInputs,
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
ExternalFileAction externalFileAction,
PathFragment blacklistedPackagePrefixesFile,
@@ -321,7 +319,6 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
factoryMapBuilder.put(factory.getKey(), factory);
}
this.buildInfoFactories = factoryMapBuilder.build();
- this.allowedMissingInputs = allowedMissingInputs;
this.extraSkyFunctions = extraSkyFunctions;
this.externalFileAction = externalFileAction;
this.blacklistedPackagePrefixesFile = blacklistedPackagePrefixesFile;
@@ -341,8 +338,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
}
private ImmutableMap<SkyFunctionName, SkyFunction> skyFunctions(
- PackageFactory pkgFactory,
- Predicate<PathFragment> allowedMissingInputs) {
+ PackageFactory pkgFactory) {
ConfiguredRuleClassProvider ruleClassProvider =
(ConfiguredRuleClassProvider) pkgFactory.getRuleClassProvider();
// TODO(janakr): use this semaphore to bound memory usage for SkyFunctions besides
@@ -431,7 +427,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
map.put(SkyFunctions.TARGET_COMPLETION, CompletionFunction.targetCompletionFunction(eventBus));
map.put(SkyFunctions.ASPECT_COMPLETION, CompletionFunction.aspectCompletionFunction(eventBus));
map.put(SkyFunctions.TEST_COMPLETION, new TestCompletionFunction());
- map.put(SkyFunctions.ARTIFACT, new ArtifactFunction(allowedMissingInputs));
+ map.put(SkyFunctions.ARTIFACT, new ArtifactFunction());
map.put(
SkyFunctions.BUILD_INFO_COLLECTION,
new BuildInfoCollectionFunction(
@@ -593,8 +589,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
*/
protected void init() {
progressReceiver = newSkyframeProgressReceiver();
- ImmutableMap<SkyFunctionName, SkyFunction> skyFunctions =
- skyFunctions(pkgFactory, allowedMissingInputs);
+ ImmutableMap<SkyFunctionName, SkyFunction> skyFunctions = skyFunctions(pkgFactory);
memoizingEvaluator =
evaluatorSupplier.create(
skyFunctions,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
index 246c6831bd..e27182f64e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorFactory.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
-import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
@@ -22,7 +21,6 @@ import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory;
import com.google.devtools.build.lib.packages.PackageFactory;
import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.vfs.FileSystem;
-import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -41,7 +39,6 @@ public interface SkyframeExecutorFactory {
* @param workspaceStatusActionFactory a factory for creating WorkspaceStatusAction objects
* @param buildInfoFactories list of BuildInfoFactories
* @param diffAwarenessFactories
- * @param allowedMissingInputs
* @param extraSkyFunctions
* @param customDirtinessCheckers
* @return an instance of the SkyframeExecutor
@@ -54,7 +51,6 @@ public interface SkyframeExecutorFactory {
Factory workspaceStatusActionFactory,
ImmutableList<BuildInfoFactory> buildInfoFactories,
Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories,
- Predicate<PathFragment> allowedMissingInputs,
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
Iterable<SkyValueDirtinessChecker> customDirtinessCheckers)
throws AbruptExitException;