aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..232f2a3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,25 @@
+# Interceptor
+
+**WARNING**: The interceptor is still a work in progress. Contents of this
+section are subject to change.
+
+The interceptor is a tool to intercept all `execve` and other system calls
+during the build (specifically, `make`) in order to construct the dependency
+tree and understand a list of commands executed by the build system. With the
+interceptor, the Bazel build system may first "dry-run", analyze all inputs and
+outputs of each command, generate `BUILD.bazel` files for each command, then
+execute on these generated build files.
+
+This allows us to enable the following:
+
+* Trim the dependency tree for each command.
+ * Reduce the possibility of invalidating an output when an unrelated input
+ file is touched
+ * More parallelism within Bazel, not make
+ * Even faster incremental builds
+* Generate
+ [compile\_commands.json](https://clang.llvm.org/docs/JSONCompilationDatabase.html),
+ which can then be plugged into IDEs and code search tools (e.g. https://cs.android.com/android/kernel/superproject)
+* More cache hits for Remote Build Execution (RBE)
+* Give a more trimmed and precise list of resources for DDK
+* etc.