Avoid repo mapping lookup to check builtin restrictions #28173
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
BuiltinRestriction currently accounts for 10-20% of the total CPU time for
bazel build --nobuild //src:bazel. This is improved by avoiding the repeated creation of "non-visible"RepositoryNameobjects, which trigger aSpellCheckercomputation. Instead, the apparent repo names, which are in fact either module names or legacy WORKSPACE repo names that no longer matter in Bazel 9 and later, are turned into canonical repo name prefixes by appending a+.Note that there is still overhead in the 2-3% range even after this change due to repeated linear searches as well as repeated recreations of allowlists in the
check_private_apiC++ Starlark API.This PR also closes a loophole where a module could give itself a repo name of e.g.
bazel_build_rules_androidto then use private APIs.