diff options
author | 2017-11-29 10:54:23 -0800 | |
---|---|---|
committer | 2017-11-29 10:56:35 -0800 | |
commit | 17810adb392c3e38c5021cee14c5160fdaf2adef (patch) | |
tree | 205ec9938186f4e9b8465317b5190bdc2654c486 /src/main/java/com/google/devtools | |
parent | 1d1bee504bb22b75cd12c541522482edc8b8fa8c (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/google/devtools')
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; |