Changes SplitTransition#split's return type to Map and updates the current native implementations to return CPU-based keys. Lists returned by Starlark transitions are automatically keyed by indexes.

This change relands https://github.com/bazelbuild/bazel/commit/528cb62caa4a742c9918d984d929fe8662a539df with a fix to the duplicate map key issue in the new objc handling code. Other parts of the change are free of the problem because they already deduplicate CPU flag values with ImmutableSortedSet. Added a test case to ObjcSkylarkTest.java and ran TGP with no suspicious results found.

RELNOTES: None
PiperOrigin-RevId: 293656453
17 files changed
tree: 29711a6744ce2539ced2e8fbb728ee31657465a5
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEOWNERS
  15. combine_distfiles.py
  16. combine_distfiles_to_tar.sh
  17. compile.sh
  18. CONTRIBUTING.md
  19. CONTRIBUTORS
  20. distdir.bzl
  21. ISSUE_TEMPLATE.md
  22. LICENSE
  23. README.md
  24. WORKSPACE
README.md

Bazel

{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.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status