commit | 7e538803d775929beb3c9af1cd2e87667d373bbe | [log] [tgz] |
---|---|---|
author | Googler <steinman@google.com> | Sat Mar 22 18:52:09 2025 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Sat Mar 22 18:53:24 2025 -0700 |
tree | 29dde205406aa8521d20644848efc5ed85221a7c | |
parent | 4f40b7fb7b0521b56767dcf147d4d13e21f3b692 [diff] |
Use rule machinery for handling Symbolic Macro attrs in order to reduce the memory overhead of symbolic macros. In particular, RuleOrMacroInstance holds shared logic between Rule and MacroInstance, and both RuleClass and MacroClass now hold an AttributeProvider, which gives access to their Attributes. Together, this gives us: - Use of the package's list interner for attributes - Map of Attributes is now a list (the key/name is already stored in the attribute) - Default values of Attributes are not stored - Compact attr representation once the macro is frozen - Attrs are stored as Native types instead of Starlark types As a side effect of doing this, Attribute.valueToStarlark() now works with Selects. PiperOrigin-RevId: 739568597 Change-Id: Ia6219f3105ede816c08105fec6c0df03d7b8a5e6
{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:
To report a security issue, please email security@bazel.build with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Our vulnerability management team will respond within 3 working days of your email. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.
See CONTRIBUTING.md