GH-103906: Remove immortal refcounting in the interpreter#103909
GH-103906: Remove immortal refcounting in the interpreter#103909brandtbucher merged 7 commits intopython:mainfrom
Conversation
hauntsaninja
left a comment
There was a problem hiding this comment.
Hooray! Looks great
| } | ||
| else if (Py_IsFalse(cond)) { | ||
| _Py_DECREF_NO_DEALLOC(cond); | ||
| if (Py_IsFalse(cond)) { |
There was a problem hiding this comment.
Will this cause a performance change, since formerly IsTrue then IsFalse, now IsFalse then IsTrue
Though this comparison is lightweight.
There was a problem hiding this comment.
Honestly, I doubt it.
|
🤖 New build scheduled with the buildbot fleet by @brandtbucher for commit fd95518 🤖 If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
sobolevn
left a comment
There was a problem hiding this comment.
What about other places, like Modules/? Should it be done later?
|
@sobolevn possibly, but it's best left to a different PR. In many places it's unlikely to make a significant difference, so it might not be worth the churn to make the change everywhere. |
|
Annoyingly, perf impact is neutral. However, it appears that the results are being pulled way down by a couple of known unstable benchmarks that should be unaffected by this change. I might try running them again tonight, just to see. (I still think this is worth doing, though, as it clearly removes unnecessary work from many hot code paths.) |
markshannon
left a comment
There was a problem hiding this comment.
Even if the performance change is negligible, this seems like a worthwhile cleanup.
|
I noticed one more opportunity like this: in the |
|
* main: (26 commits) pythonGH-101520: Move tracemalloc functionality into core, leaving interface in Modules. (python#104508) typing: Add more tests for TypeVar (python#104571) pythongh-104572: Improve error messages for invalid constructs in PEP 695 contexts (python#104573) typing: Use PEP 695 syntax in typing.py (python#104553) pythongh-102153: Start stripping C0 control and space chars in `urlsplit` (python#102508) pythongh-104469: Update README.txt for _testcapi (pythongh-104529) pythonGH-103092: isolate `_elementtree` (python#104561) pythongh-104050: Add typing to Argument Clinic converters (python#104547) pythonGH-103906: Remove immortal refcounting in the interpreter (pythonGH-103909) pythongh-87474: Fix file descriptor leaks in subprocess.Popen (python#96351) pythonGH-103092: isolate `pyexpat` (python#104506) pythongh-75367: Fix data descriptor detection in inspect.getattr_static (python#104517) pythongh-104050: Add more annotations to `Tools/clinic.py` (python#104544) pythongh-104555: Fix isinstance() and issubclass() for runtime-checkable protocols that use PEP 695 (python#104556) pythongh-103865: add monitoring support to LOAD_SUPER_ATTR (python#103866) CODEOWNERS: Assign new PEP 695 files to myself (python#104551) pythonGH-104510: Fix refleaks in `_io` base types (python#104516) pythongh-104539: Fix indentation error in logging.config.rst (python#104545) pythongh-104050: Don't star-import 'types' in Argument Clinic (python#104543) pythongh-104050: Add basic typing to CConverter in clinic.py (python#104538) ...
Uh oh!
There was an error while loading. Please reload this page.