diff options
author | nharmata <nharmata@google.com> | 2017-12-22 08:59:51 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-22 09:01:56 -0800 |
commit | 34753fc18b97312606258e330c22924255ae9004 (patch) | |
tree | e5ffdc7ed754831ccec9e3c60e2ff3b2e08fb5d3 /src/main/java/com/google/devtools/build/lib/skyframe/packages | |
parent | e5a9f7646ec62f7d538e001d355a50d12d6af66e (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.java | 13 |
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(); } |