aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2017-04-11 13:23:18 +0000
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-04-12 11:49:00 +0200
commitfe2fa83059119cf9b3dd93a0f16c59e36d616e16 (patch)
tree828da572b6a2d14b61d0d71f24d439f2f78c5a1c /src/main
parente7c730ba64d1c34ac7049f4165a33dc1329d0019 (diff)
Remove Preprocessing support from PackageFactory
RELNOTES: None. PiperOrigin-RevId: 152804937
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java68
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java12
3 files changed, 10 insertions, 80 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index b8b8adc177..cd832a91bb 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -333,7 +333,6 @@ public final class PackageFactory {
private final RuleClassProvider ruleClassProvider;
private AtomicReference<? extends UnixGlob.FilesystemCalls> syscalls;
- private Preprocessor.Factory preprocessorFactory = Preprocessor.Factory.NullFactory.INSTANCE;
private final ThreadPoolExecutor threadPool;
private Map<String, String> platformSetRegexps;
@@ -413,13 +412,6 @@ public final class PackageFactory {
this.packageBuilderHelper = packageBuilderHelper;
}
- /**
- * Sets the preprocessor used.
- */
- public void setPreprocessorFactory(Preprocessor.Factory preprocessorFactory) {
- this.preprocessorFactory = preprocessorFactory;
- }
-
/**
* Sets the syscalls cache used in globbing.
*/
@@ -1344,7 +1336,6 @@ public final class PackageFactory {
prefetchGlobs(
packageId,
astAfterPreprocessing.ast,
- false /* waspreprocessed */,
buildFile,
globber,
defaultVisibility,
@@ -1416,14 +1407,8 @@ public final class PackageFactory {
}
Globber globber = createLegacyGlobber(buildFile.getParentDirectory(), packageId, locator);
- Preprocessor.Result preprocessingResult;
- try {
- preprocessingResult = preprocess(buildFile, packageId, buildFileBytes, globber);
- } catch (IOException e) {
- eventHandler.handle(
- Event.error(Location.fromFile(buildFile), "preprocessing failed: " + e.getMessage()));
- throw new BuildFileContainsErrorsException(packageId, "preprocessing failed", e);
- }
+ Preprocessor.Result preprocessingResult =
+ Preprocessor.Result.noPreprocessing(buildFile.asFragment(), buildFileBytes);
Package result =
createPackageFromPreprocessingResult(
@@ -1441,44 +1426,6 @@ public final class PackageFactory {
return result;
}
- /** Preprocesses the given BUILD file. */
- public Preprocessor.Result preprocess(
- PackageIdentifier packageId, Path buildFile, CachingPackageLocator locator)
- throws InterruptedException, IOException {
- byte[] buildFileBytes =
- FileSystemUtils.readWithKnownFileSize(buildFile, buildFile.getFileSize());
- Globber globber = createLegacyGlobber(buildFile.getParentDirectory(), packageId, locator);
- try {
- return preprocess(buildFile, packageId, buildFileBytes, globber);
- } finally {
- globber.onCompletion();
- }
- }
-
- /**
- * Preprocesses the given BUILD file, executing {@code globber.onInterrupt()} on an
- * {@link InterruptedException}.
- */
- public Preprocessor.Result preprocess(
- Path buildFilePath, PackageIdentifier packageId, byte[] buildFileBytes,
- Globber globber) throws InterruptedException, IOException {
- Preprocessor preprocessor = preprocessorFactory.getPreprocessor();
- if (preprocessor == null) {
- return Preprocessor.Result.noPreprocessing(buildFilePath.asFragment(), buildFileBytes);
- }
- try {
- return preprocessor.preprocess(
- buildFilePath,
- buildFileBytes,
- packageId.toString(),
- globber,
- ruleFactory.getRuleClassNames());
- } catch (InterruptedException e) {
- globber.onInterrupt();
- throw e;
- }
- }
-
/** Returns a new {@link LegacyGlobber}. */
public LegacyGlobber createLegacyGlobber(
Path packageDirectory,
@@ -1638,9 +1585,9 @@ public final class PackageFactory {
pkgEnv
.setup("native", nativeModule)
.setup("distribs", newDistribsFunction.apply(context))
- .setup("glob", newGlobFunction.apply(context, /*async=*/false))
- .setup("mocksubinclude", newMockSubincludeFunction.apply(context))
+ .setup("glob", newGlobFunction.apply(context, /*async=*/ false))
.setup("licenses", newLicensesFunction.apply(context))
+ .setup("mocksubinclude", newMockSubincludeFunction.apply(context))
.setup("exports_files", newExportsFilesFunction.apply())
.setup("package_group", newPackageGroupFunction.apply())
.setup("package", newPackageFunction(packageArguments))
@@ -1768,19 +1715,12 @@ public final class PackageFactory {
private void prefetchGlobs(
PackageIdentifier packageId,
BuildFileAST buildFileAST,
- boolean wasPreprocessed,
Path buildFilePath,
Globber globber,
RuleVisibility defaultVisibility,
MakeEnvironment.Builder pkgMakeEnv,
Map<String, Extension> imports)
throws InterruptedException {
- if (wasPreprocessed && preprocessorFactory.considersGlobs()) {
- // All the globs have either already been evaluated and they aren't in the ast anymore, or
- // they are in the ast but the globber has been evaluating them lazily and so there is no
- // point in prefetching them again.
- return;
- }
// TODO(bazel-team): It may be wasteful to evaluate the BUILD file here, only to throw away the
// result. It may be better to first scan the ast and see if there are even possibly any globs
// at all. Additionally, it's wasteful to execute Skylark code that cannot invoke globs. So one
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index 23ecccec99..115c343f22 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -1151,14 +1151,8 @@ public class PackageFunction implements SkyFunction {
throw new PackageFunctionException(new BuildFileContainsErrorsException(
packageId, e.getMessage()), Transience.TRANSIENT);
}
- try {
- preprocessingResult = packageFactory.preprocess(buildFilePath, packageId,
- buildFileBytes, skyframeGlobber);
- } catch (IOException e) {
- throw new PackageFunctionException(
- new BuildFileContainsErrorsException(
- packageId, "preprocessing failed" + e.getMessage(), e), Transience.TRANSIENT);
- }
+ preprocessingResult =
+ Preprocessor.Result.noPreprocessing(buildFilePath.asFragment(), buildFileBytes);
} else {
ParserInputSource replacementSource =
ParserInputSource.create(replacementContents, buildFilePath.asFragment());
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 b5bda26ca8..182a14a215 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
@@ -1014,16 +1014,12 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
private void checkPreprocessorFactory() {
if (preprocessorFactory == null) {
- Preprocessor.Factory newPreprocessorFactory = preprocessorFactorySupplier.getFactory(
- packageManager, directories.getOutputBase());
- pkgFactory.setPreprocessorFactory(newPreprocessorFactory);
- preprocessorFactory = newPreprocessorFactory;
+ preprocessorFactory =
+ preprocessorFactorySupplier.getFactory(packageManager, directories.getOutputBase());
} else if (!preprocessorFactory.isStillValid()) {
- Preprocessor.Factory newPreprocessorFactory = preprocessorFactorySupplier.getFactory(
- packageManager, directories.getOutputBase());
+ preprocessorFactory =
+ preprocessorFactorySupplier.getFactory(packageManager, directories.getOutputBase());
invalidate(SkyFunctionName.functionIs(SkyFunctions.PACKAGE));
- pkgFactory.setPreprocessorFactory(newPreprocessorFactory);
- preprocessorFactory = newPreprocessorFactory;
}
}