aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/packages
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2017-12-22 08:59:51 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-22 09:01:56 -0800
commit34753fc18b97312606258e330c22924255ae9004 (patch)
treee5ffdc7ed754831ccec9e3c60e2ff3b2e08fb5d3 /src/main/java/com/google/devtools/build/lib/skyframe/packages
parente5a9f7646ec62f7d538e001d355a50d12d6af66e (diff)
Tell PackageFunction if it will never be used to do incremental package loading. Have PackageFunction optimize for the non-incremental case by not doing Skyframe [hybrid] globbing. Have AbstractPackageLoader use PackageFunction in non-incremental mode (recall that AbstractPackageLoader, by design, has no incrementality).
Since AbstractPackageLoader now doesn't need GlobFunction, it now also doesn't need DirectoryListingFunction and therefore also doesn't need DirectoryListingStateFunction. In the entire Bazel codebase, DirectoryListingStateFunction is only used by DirectoryListingFunction. And DirectoryListingFunction's only use in package loading (in cases currently supported by AbstractPackageLoader*) is GlobFunction. *AndroidRepositoryFunction apparently uses DirectoryListingFunction, but AbstractPackageLoader doesn't yet support all Bazel repository types. We can address this in future changes, if needed. RELNOTES: None PiperOrigin-RevId: 179931359
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java13
1 files changed, 4 insertions, 9 deletions
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 46ba9f5c78..7fee331968 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
@@ -44,8 +44,6 @@ import com.google.devtools.build.lib.skyframe.ASTFileLookupFunction;
import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
import com.google.devtools.build.lib.skyframe.BlacklistedPackagePrefixesFunction;
import com.google.devtools.build.lib.skyframe.ContainingPackageLookupFunction;
-import com.google.devtools.build.lib.skyframe.DirectoryListingFunction;
-import com.google.devtools.build.lib.skyframe.DirectoryListingStateFunction;
import com.google.devtools.build.lib.skyframe.ExternalFilesHelper;
import com.google.devtools.build.lib.skyframe.ExternalFilesHelper.ExternalFileAction;
import com.google.devtools.build.lib.skyframe.ExternalPackageFunction;
@@ -53,9 +51,9 @@ import com.google.devtools.build.lib.skyframe.FileFunction;
import com.google.devtools.build.lib.skyframe.FileStateFunction;
import com.google.devtools.build.lib.skyframe.FileSymlinkCycleUniquenessFunction;
import com.google.devtools.build.lib.skyframe.FileSymlinkInfiniteExpansionUniquenessFunction;
-import com.google.devtools.build.lib.skyframe.GlobFunction;
import com.google.devtools.build.lib.skyframe.PackageFunction;
import com.google.devtools.build.lib.skyframe.PackageFunction.ActionOnIOExceptionReadingBuildFile;
+import com.google.devtools.build.lib.skyframe.PackageFunction.IncrementalityIntent;
import com.google.devtools.build.lib.skyframe.PackageLookupFunction;
import com.google.devtools.build.lib.skyframe.PackageLookupFunction.CrossRepositoryLabelViolationStrategy;
import com.google.devtools.build.lib.skyframe.PackageValue;
@@ -368,15 +366,11 @@ public abstract class AbstractPackageLoader implements PackageLoader {
builder
.put(SkyFunctions.PRECOMPUTED, new PrecomputedFunction())
.put(SkyFunctions.FILE_STATE, new FileStateFunction(tsgm, externalFilesHelper))
- .put(
- SkyFunctions.DIRECTORY_LISTING_STATE,
- new DirectoryListingStateFunction(externalFilesHelper))
.put(SkyFunctions.FILE_SYMLINK_CYCLE_UNIQUENESS, new FileSymlinkCycleUniquenessFunction())
.put(
SkyFunctions.FILE_SYMLINK_INFINITE_EXPANSION_UNIQUENESS,
new FileSymlinkInfiniteExpansionUniquenessFunction())
.put(SkyFunctions.FILE, new FileFunction(pkgLocatorRef))
- .put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction())
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
@@ -398,7 +392,6 @@ public abstract class AbstractPackageLoader implements PackageLoader {
SkyFunctions.WORKSPACE_FILE,
new WorkspaceFileFunction(ruleClassProvider, pkgFactory, directories))
.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
- .put(SkyFunctions.GLOB, new GlobFunction(/*alwaysUseDirListing=*/ false))
.put(
SkyFunctions.PACKAGE,
new PackageFunction(
@@ -410,7 +403,9 @@ public abstract class AbstractPackageLoader implements PackageLoader {
/*numPackagesLoaded=*/ new AtomicInteger(0),
/*skylarkImportLookupFunctionForInlining=*/ null,
/*packageProgress=*/ null,
- getActionOnIOExceptionReadingBuildFile()))
+ getActionOnIOExceptionReadingBuildFile(),
+ // Tell PackageFunction to optimize for our use-case of no incrementality.
+ IncrementalityIntent.NON_INCREMENTAL))
.putAll(extraSkyFunctions);
return builder.build();
}