-
-
Notifications
You must be signed in to change notification settings - Fork 32k
gh-117139: Convert the evaluation stack to stack refs #118450
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
152 commits
Select commit
Hold shift + click to select a range
a6275f1
merge from upstream
Fidget-Spinner 7e7627f
remove test tags
Fidget-Spinner 00dde8e
add test for immortal
Fidget-Spinner eadc4fc
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 64e2800
minor cleanups
Fidget-Spinner bf6b7e4
Create 2024-05-01-05-09-16.gh-issue-117139.t41w_D.rst
Fidget-Spinner 865ff8d
remove bad assert
Fidget-Spinner b1777c4
rename tagged -> stackref
Fidget-Spinner 50cfefa
trivial fixes first
Fidget-Spinner 39e9057
fix anti-patterns (use deferred everywhere)
Fidget-Spinner 1bb3c51
Delete 2024-03-26-20-31-34.gh-issue-117139.eELvoZ.rst
Fidget-Spinner 18ef669
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 3fedc6f
replace and use macro
Fidget-Spinner 1942d78
fix refcounting issues
Fidget-Spinner 5a1c46f
Fix decref inputs problem
Fidget-Spinner dcc55b0
fix cases generator
Fidget-Spinner ec70b3b
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 542cfbb
fix problems from upstream
Fidget-Spinner 3af1ef1
cleanup
Fidget-Spinner 6bc29a1
formatting
Fidget-Spinner 9052526
change used tags to 0b01
Fidget-Spinner c38de34
alignment
Fidget-Spinner 106058c
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner f545b2f
fix merge problems
Fidget-Spinner 0d1b38f
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner a597536
use PyStackRef_IsNull
Fidget-Spinner 9d43727
tagged ->stackref
Fidget-Spinner bc96ae6
use Mark's naming scheme
Fidget-Spinner 1d71dd1
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner e12337a
Update pycore_object_deferred.h
Fidget-Spinner 91a8c81
tag all pointers, address some comments
Fidget-Spinner 64bdfe2
fix free threaded, address more reviews
Fidget-Spinner 88e0ea8
remove GC changes
Fidget-Spinner 64b237c
address all of Mark's review
Fidget-Spinner 97f6e14
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 834cdf0
fix refcounting issue
Fidget-Spinner 99611cb
fix gdb failures
Fidget-Spinner 512cd2e
fix specialization
Fidget-Spinner df176bf
fix tier 2
Fidget-Spinner 576909d
fix optimizer builds
Fidget-Spinner adb54d8
don't check immortal when tagging
Fidget-Spinner d86652f
remove immortal check for tagging
Fidget-Spinner bca14a8
remove unsafe ptr conversions
Fidget-Spinner 4eaece7
Revert "remove immortal check for tagging"
Fidget-Spinner 4930f6f
Revert "don't check immortal when tagging"
Fidget-Spinner 8670ee4
tag immortal objects
Fidget-Spinner 144a6fa
Remove PyObject_To_StackRef_Steal
Fidget-Spinner c2bbe17
minor clenaups
Fidget-Spinner a6bfc97
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner e21a76a
Use Sam's and Mark's naming scheme
Fidget-Spinner e12942d
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 64c070d
regen
Fidget-Spinner 4a103fb
fix test_generated_cases
Fidget-Spinner 0bd7435
address partially reviews
Fidget-Spinner 51908e9
convert the rest to stackrefs
Fidget-Spinner e99f019
fix tests
Fidget-Spinner fde830d
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner c73f8ac
ifdef out on default builds
Fidget-Spinner 6a6bae2
add back XCLOSE and XDUP for perf reasons
Fidget-Spinner 3d23f56
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 99fa382
Low the C recursion limit in WASI, it's failing
Fidget-Spinner 5a5e329
Revert "Low the C recursion limit in WASI, it's failing"
Fidget-Spinner 4a5ae8c
use macros instead of static inline for most things
Fidget-Spinner 4e9740d
Revert "use macros instead of static inline for most things"
Fidget-Spinner c49cf1c
double WASI stack size of pydebug
Fidget-Spinner 1b45992
Revert "Revert "use macros instead of static inline for most things""
Fidget-Spinner e5130a9
Revert "double WASI stack size of pydebug"
Fidget-Spinner 505d640
inline functions directly for non-gil to pass on WASI debug
Fidget-Spinner 5053536
Update configure
Fidget-Spinner 0242212
convert more stuff to macros to try fix wasi
Fidget-Spinner 12f8c0e
Increase wasm limit to 32kb
Fidget-Spinner db89f64
Revert "Increase wasm limit to 32kb"
Fidget-Spinner 79714c2
skip test on WASI
Fidget-Spinner 9a33b7f
fix uses of dup
Fidget-Spinner 18894ca
refactor calls according to Mark
Fidget-Spinner 67e0d25
fix bug
Fidget-Spinner 4423794
fix macro
Fidget-Spinner 66eb526
regen frozemain?
Fidget-Spinner 2eda2f9
add PyStackRef_IsFalse/True
Fidget-Spinner 8f97ae2
skip bad test
Fidget-Spinner 58c3c55
fix tier 2 and JIT builds
Fidget-Spinner ca92d4a
fix macro
Fidget-Spinner 3356eda
fix error handling
Fidget-Spinner 8274425
revert unicode
Fidget-Spinner 4405a5c
DCE hack
Fidget-Spinner 2d69426
revert dictionary
Fidget-Spinner 4f4107a
revert slice
Fidget-Spinner 65be3fd
revert lists
Fidget-Spinner 78dbf36
revert tuple
Fidget-Spinner a21eddd
Address review
Fidget-Spinner d744c8a
address changes (woops)
Fidget-Spinner 6c76fe3
Address half of Mark's review
Fidget-Spinner 8dc4fc6
Address rest of review
Fidget-Spinner 8044c7e
Address rest of review
Fidget-Spinner 90ebfc4
rename for clarity
Fidget-Spinner e4ccb65
rename PyStackRef_AsPyObjectDeferredToNew -> PyStackRef_AsPyObjectDef…
Fidget-Spinner 2ff4f36
Drop defer, just steal
Fidget-Spinner 992731d
Address half of Mark's review
Fidget-Spinner 12f19ce
revert test frozenmain changes
Fidget-Spinner 268eb0e
remove istrue
Fidget-Spinner d3b9e51
remove isfalse
Fidget-Spinner 680e828
remove isnone
Fidget-Spinner 27eda47
rename gen_frame_o
Fidget-Spinner be25a04
Fixup
Fidget-Spinner ae8c050
rename
Fidget-Spinner 6e84d69
rename true and false to static const
Fidget-Spinner c523386
try fix on msvc
Fidget-Spinner d565b0d
try fix
Fidget-Spinner 983764c
fix codegen
Fidget-Spinner 7f3c02d
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 656f35c
Use macro
Fidget-Spinner 92ada68
rename to PyStackRef_none
Fidget-Spinner 24bd03f
Fix tier 2 generation
Fidget-Spinner fd1140c
cleanup code generator
Fidget-Spinner fc66d1c
Change is_abstract to extract_bits
Fidget-Spinner 9dda41f
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 233f9e2
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner ef5a057
address review: use macro for conversion
Fidget-Spinner d2c14f7
fix space issue
Fidget-Spinner 09a3848
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 40e72e1
(test) remove skips
Fidget-Spinner b33d161
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner b160409
fix upstream changes
Fidget-Spinner 8ffd7ff
Convert functions back to static inline
Fidget-Spinner cbc1b6f
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 6adbcbf
Update test_frozenmain.h
Fidget-Spinner fdd24d6
Tighten diff
Fidget-Spinner 9acd39d
Apply all suggestions and reviews by Mark
Fidget-Spinner e600102
Apply comment from line 1112
Fidget-Spinner add5f75
borrow, not steal
Fidget-Spinner f811462
Add documentation and guide
Fidget-Spinner c4dd69b
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 60e2bb4
Address review by Mark
Fidget-Spinner c7eac22
fix for free-threaded builds
Fidget-Spinner 8bf685a
fix typo
Fidget-Spinner 7cf0369
Rename Py_STACKREF_NULL to PyStackRef_NULL
Fidget-Spinner 37c31d1
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner 2d38baa
Reduce scratch size on apple
Fidget-Spinner 8d82237
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner a959249
Address review, increase scratch
Fidget-Spinner cab1d5b
Apply most suggestions
Fidget-Spinner ee6630f
Fix write underflow
Fidget-Spinner 9b67932
reduce stack requirements
Fidget-Spinner 475e2dc
Update ceval_macros.h
Fidget-Spinner 126b60d
fix off by one
Fidget-Spinner 197e1ba
regen
Fidget-Spinner 4074bc3
undo immortal changes (they caused asserts to fail)
Fidget-Spinner 50c92d0
Merge remote-tracking branch 'upstream/main' into stackref_all
Fidget-Spinner ce77fe4
Fix bug in malloc case
Fidget-Spinner 193e216
Use immortal
Fidget-Spinner 30f7a09
Remove borrowed load in counter_optimize
Fidget-Spinner ff41e0c
silence warning
Fidget-Spinner 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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#ifndef Py_INTERNAL_OBJECT_DEFERRED_H | ||
#define Py_INTERNAL_OBJECT_DEFERRED_H | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
#include "pycore_gc.h" | ||
|
||
#ifndef Py_BUILD_CORE | ||
# error "this header requires Py_BUILD_CORE define" | ||
#endif | ||
|
||
// Mark an object as supporting deferred reference counting. This is a no-op | ||
// in the default (with GIL) build. Objects that use deferred reference | ||
// counting should be tracked by the GC so that they are eventually collected. | ||
extern void _PyObject_SetDeferredRefcount(PyObject *op); | ||
|
||
static inline int | ||
_PyObject_HasDeferredRefcount(PyObject *op) | ||
{ | ||
#ifdef Py_GIL_DISABLED | ||
return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_DEFERRED); | ||
#else | ||
return 0; | ||
#endif | ||
} | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
#endif // !Py_INTERNAL_OBJECT_DEFERRED_H |
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
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.