commit | d533996b2c8eabaa8e796f3aad57bca13878f460 | [log] [tgz] |
---|---|---|
author | nharmata <nharmata@google.com> | Fri Feb 11 14:44:08 2022 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Feb 11 14:45:27 2022 -0800 |
tree | 15849ae5ce9d30967ed7f6b473932aef774e7fbe | |
parent | bbc506790230181196b91148de50daf7a04f8c6b [diff] |
Make `RootedPath` implement `SkyKey`, and make it the key type for `FileStateValue`. By doing this, we no longer need the `FileState.Key` wrapper around `RootedPath`. The prior https://github.com/bazelbuild/bazel/commit/ab31f74f509c2af593b783e86d76c8b6188c9aaa already reduced the shallow heap size of that wrapper from 24 bytes to 16 bytes, but "0 bytes" is better. Kudos to janakr@ for the suggestion. To achieve this refactor and still maintain readability, I introduced a `FileStateKey` interface so that it will be obvious to a caller of `FileStateValue#key` that the returned type is a `SkyKey` whose `#argument` returns `RootedPath`. I then made one slight improvement to one part of the codebase (no need to make an intermediate collection to transform some `RootedPath` instances to some `SkyKey` instances), but there may be other improvements along these lines we can make in the future. PiperOrigin-RevId: 428094803
{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