bazel packages: add --record_rule_instantiation_callstack flag
This flag (default: false) causes each rule to record the Starlark
call stack at the moment of its instantiation.
The stacks are displayed by blaze query --output=build.
Example output:
# /workspace/x/BUILD:2:1
cc_library(
name = "a",
...
)
# Instantiation stack:
# /workspace/x/inc.bzl:4:3 called from g
# /workspace/x/inc.bzl:2:3 called from f
# /workspace/x/BUILD:2:1 called from <toplevel>
By combining two optimizations, prefix sharing using a linked tree,
and element compression using packed integers, this feature
imposes an additional retained heap space cost of only 1.5%
for deps(//X) where X is Google's web server.
PiperOrigin-RevId: 300408104
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md