commit | ccdeeda22778df438e5f26d87b5d7fe61cd63f04 | [log] [tgz] |
---|---|---|
author | Googler <noreply@google.com> | Fri Nov 15 10:00:34 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Nov 15 10:01:37 2019 -0800 |
tree | 763110af90985fcf2ee26d5f4f3ba6c9ed9d7967 | |
parent | cc5c24c3797395aa2779d6e052e03396da3c4c34 [diff] |
bazel syntax: simplify and optimize list, tuple, range Sequence: - is now an interface - delete getContentsUnsafe: don't prescribe representation. - delete unnecessary stub methods from StarlarkValue and AbstractList. - delete abstract repeat method. It is defined only for list and tuple. Tuple: - now extends AbstractList - manipulates an Object[] directly, eliminating ImmutableList intermediary ...yet getImmutableList avoids a copy using the toArray sharing trick. - eliminate all unnecessary array copies - isHashable and isImmutable iterate over Object[] directly, not List wrapper. StarlarkList - now extends AbstractList - delete one overload of StarlarkList.wrapUnsafe - manipulates an Object[] directly, eliminating ArrayList intermediary. - eliminate all unnecessary array copies RangeList: - optimize equals() not to materialize the sequence - merge RangeList and RangeListView - delete unreachable repeat() method Also: - removed comment at Sequence.createImmutable. We should stop using StarlarkThread to mean Mutability. (Longer term, we should get rid of Mutability in favor of a per-object frozen bit.) PiperOrigin-RevId: 280680660
{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