commit | 8ac221090040dc290d56f0711b092ca9dd2bbb78 | [log] [tgz] |
---|---|---|
author | Googler <noreply@google.com> | Tue Nov 26 19:07:38 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Nov 26 19:08:44 2019 -0800 |
tree | 6f5ab1f47583b7af4f2fe7e945898e2edc8a8abc | |
parent | 733a37723e831c959c7298fa04ab3f4d9575e8fa [diff] |
bazel syntax: eliminate unnecessary array copying Before, EvalUtils.toCollection would return a view (if given a Sequence) but a copy if given a Dict. This makes it inefficient and also hard to reason about. This change replaces it with Starlark.toIterable and Starlark.toArray: the first always returns a view, the second a copy. Also: - CallUtils: eliminate array copying in handling of *args and **kwargs. - Start removing Location parameters from everything we touch. Location is automatically added to EvalExceptions by the interpreter. - MethodLibrary: eliminate array copies in sorted, reverse, tuple, list, enumerate. - Also in string.join, string.partition. Simplify the latter function. - Improve text of an error message. - Declare Starlark.len, which returns the length of a string or iterable. This change removes support for Starlark Map other than Dict, because there are none today. PiperOrigin-RevId: 282682290
{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