-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
GH-127705: Use _PyStackRef
s in the default build.
#127875
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
75 commits
Select commit
Hold shift + click to select a range
2ec65dc
Initial implementation of tagged stackrefs for GIL build. Requires fi…
markshannon 9a5c3a6
Merge branch 'main' into use-stackrefs
markshannon ee7f3a6
Streamline PyStackRef_XCLOSE and PyStackRef_CLEAR.
markshannon 21d7e87
Fix error handling with not stackref outputs in code generator
markshannon 370e77b
Merge branch 'main' into use-stackrefs
markshannon 2636c04
Attempt to fix _BINARY_OP_INPLACE_ADD_UNICODE and use tag references …
markshannon 5a38e03
Merge branch 'main' into use-stackrefs
markshannon a79aa47
Show frame locals in lltrace
markshannon a90e644
Fix _PyFrame_Copy and add some asserts to make reference heap safe
markshannon 83e0323
Improve efficiency of _PyStackRef_FromPyObjectNew a bit
markshannon 7fb6a48
Merge branch 'main' into use-stackrefs
markshannon 7e6deef
Merge branch 'main' into use-stackrefs
markshannon f03f745
Make making heap safe more efficient
markshannon 67670f0
Merge branch 'main' into use-stackrefs
markshannon ff9d044
Fix up after merge
markshannon 3334c14
Merge branch 'main' into use-stackrefs
markshannon b7a8b5d
Restore immortality bit
markshannon 49d0d42
Fix validity check
markshannon 3a12d18
Add PyStackRef_IsMortal
markshannon 497fb9f
Reduce overhead of stackrefs a tiny bit for mortal objects
markshannon 4768a38
Merge branch 'main' into use-stackrefs
markshannon 806c28a
Attempt to use tagged RC for a bit of extra speed
markshannon c540f28
Merge branch 'main' into use-stackrefs
markshannon 0c20416
Revert addition of LOAD_FAST_WITH_COUNT
markshannon c88bcbc
Avoid INCREF + Steal pairs by using New or return stack ref directly
markshannon f5dec96
Avoid masking when comparing to True and False
markshannon bf2dca5
Merge branch 'main' into use-stackrefs
markshannon 1069d98
Revert not-quite-true assert
markshannon 2e752fc
Merge branch 'main' into use-stackrefs
markshannon d23ae47
Fix up after merge
markshannon 382d101
Merge branch 'main' into use-stackrefs
markshannon d230f68
Fix compiler errors and warnings
markshannon 1de6add
Merge branch 'main' into use-stackrefs
markshannon ad7e1e6
Merge branch 'main' into use-stackrefs
markshannon c96387a
Merge branch 'main' into use-stackrefs
markshannon 69e993c
Post merge fix up
markshannon 2a361c9
Merge branch 'main' into use-stackrefs
markshannon 2efa0bd
Post merge fixups
markshannon 036ffc5
Post merge fixup 2
markshannon ea43b6d
Revert changes to _PyLong_Add as not relevant to this PR
markshannon db7e049
Fix up a couple of comments
markshannon 26e7868
Add news
markshannon d3da41c
Clarifications
markshannon 9711f62
Fixup comments
markshannon d61e0bf
Tidy up frame ownership changes
markshannon 2bc9ace
Get Py_STACKREF_DEBUG working again
markshannon 12b961b
Turn off Py_STACKREF_DEBUG
markshannon 00cd065
Reduce diff
markshannon 0bea1f1
Reduce diff
markshannon 0bae25d
Reduce diff
markshannon 327f5c3
Merge branch 'main' into use-stackrefs
markshannon a527aaf
Fix immortality test
markshannon 375bd16
Merge remote-tracking branch 'faster/use-stackrefs' into use-stackrefs
markshannon 3b25dc3
Merge branch 'main' into use-stackrefs
markshannon 56509f4
Add some asserts
markshannon d270553
Fix refcount accounting
markshannon 98e132b
Use Sam's suggestion to avoid branching
markshannon 522c0e7
Merge branch 'main' into use-stackrefs
markshannon b1edb96
Post merge fixup
markshannon 4b0ef08
Revert changes to nogil flags
markshannon c501175
Revert erroneous change to FT refcount initialization
markshannon 4702d58
Use macros on Windows
markshannon 3e64d74
Fix typo
markshannon 0b7a544
Fix macro
markshannon 17b97c6
Make sure PyStackRef_DUP returns a reference
markshannon bf863cd
Avoid branch for known mortal objects
markshannon b7b9c6a
Merge branch 'main' into use-stackrefs
markshannon 1e66e50
Don't evaluate macro argument twice
markshannon 3e929d7
Add missing backslash
markshannon 3ef8571
Merge branch 'main' into use-stackrefs
markshannon e2f1387
Update Misc/NEWS.d/next/Core_and_Builtins/2025-02-17-12-48-00.gh-issu…
markshannon 36f6034
Use consistent return types for PyStackRef_IsHeapSafe
markshannon 0f9c865
Drop 'immortal' bit. Only use 'counted' bit.
markshannon 37f1e18
Remove use of Py_TAG_IMMORTAL
markshannon d744179
Rename functions and add comment
markshannon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.