gh-141510: Update specializer to support frozendict with BINARY_SUBSCR#144911
Closed
corona10 wants to merge 13 commits intopython:mainfrom
Closed
gh-141510: Update specializer to support frozendict with BINARY_SUBSCR#144911corona10 wants to merge 13 commits intopython:mainfrom
corona10 wants to merge 13 commits intopython:mainfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
We need to register frozendict for support in the specializer.
Since frozendict is only introduced in Python 3.15, it is not yet widely used. However, it is thread safe for many operations, including
CALL_LENandBINARY_OP_SUBSCR. It could also be optimized more aggressively in the JIT usingKNOWN_CLASSoptimizations in the pipeline.This is just part of a draft PR. I am also happy to make
_BINARY_OP_SUBSCR_FROZEN_DICTpart of_BINARY_OP_SUBSCR_DICT, depending on what the JIT team prefers.Without this PR, frozendict would be at a performance disadvantage, even though it is intended to be a first-class citizen alongside dict.