commit | b74f1601586d4437409a28d7a4d2e907c8625c79 | [log] [tgz] |
---|---|---|
author | adonovan <adonovan@google.com> | Mon Nov 02 17:33:49 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Mon Nov 02 17:35:28 2020 -0800 |
tree | 4941c43cd70083a13cffa4367747365f6264b7ae | |
parent | 0c56a0636cf594bed2351d4ca5fe8db330cb531f [diff] |
starlark: clean up Dict construction Dict.copyOf used to call fromJava for each map value. This was a hack to support Bazel's attr.string_list_dict type (a Map<String, List<String>>) so that lists in dicts would be recursively converted; but it has no place here. Now, fromJava makes only a shallow copy, and Dict.copyOf asserts checkValid on all keys and values. Dict.Builder is a builder of Dicts, mutable or immutable. This avoids a number of hash table copies. Various places in the loading phase assume that Starlark.fromJava is the appropriate conversion from the internal form of rule attribute values to Starlark form. That is now incorrect. Attribute.valueToStarlark is the correct conversion, and those places now call it instead. PiperOrigin-RevId: 340350758
{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