-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
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
GH-124483: Mark Py_DECREF
, etc. as escaping for the JIT
#128678
GH-124483: Mark Py_DECREF
, etc. as escaping for the JIT
#128678
Conversation
Py_DECREF
, etc. as escaping for tier 1Py_DECREF
, etc. as escaping for tier 1
Py_DECREF
, etc. as escaping for tier 1Py_DECREF
, etc. as escaping for the JIT
Co-authored-by: Irit Katriel <[email protected]>
@markshannon, I think we also need to handle
An alternative that we discussed is to make the steal-y things only steal on success, and we count on the error handler to pop things otherwise., since it would be a shame if returning a tuple was an "escaping" operation. We could probably also do something similar for |
Unlike #124615 this doesn't change tier 1 or GC behavior at all.
This ensures correctness of tier 2 without any potential breakage.
We will want to handle
Py_DECREF
etc. in a more sophisticated way in the future, to improve GC and enable refcounting optimizations. For now though, this fixes the bug in tier2._Py_Dealloc
is an escaping call #124483