bazel syntax: break dependency on lib.profiler
...by injecting the wall-time profiler from a
static initializer in lib.packages.
PiperOrigin-RevId: 312090563
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
index e7858f8..ea4b675 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkFile.java
@@ -153,4 +153,16 @@
public FileOptions getOptions() {
return options;
}
+
+ /** A ParseProfiler records the start and end times of parse operations. */
+ public interface ParseProfiler {
+ Object start(String filename);
+
+ void end(Object span);
+ }
+
+ /** Installs a global hook that will be notified of parse operations. */
+ public static void setParseProfiler(@Nullable ParseProfiler p) {
+ Parser.profiler = p;
+ }
}