aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2021-12-13 17:06:33 -0800
committerYifan Hong <elsk@google.com>2021-12-14 21:08:49 +0000
commitf298da8c0defb1761d47d0417dda89b1171ef1a2 (patch)
treee67d91811c377ab11beae9ff6afcc24c8d838497
parent65cc9ba16295f4f2c7f59015c1e7433c586d35f6 (diff)
downloadinterceptor-f298da8c0defb1761d47d0417dda89b1171ef1a2.tar.gz
add readme.md
Change-Id: Ie82d4e210ba8595412c05689e9fb34df88f7a5ac
-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.