GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||
GeezerVison is showing github.com — gh-134584: Eliminate redundant refcounting from `_CALL_TUPLE_1` by noamcohen97 · Pull Request #135860 · python/cpython Conversation
|
|
Nice! That was fast. This PR LGTM, but we need to wait will Mark merges his register allocation PR to get the benefits of this work. See my other comment here #135818 (comment) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Cool. I see an ~5% improvement in this code: Considering only one reference count was eliminated, this is good news for everything else that will remove more! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@markshannon sorry can you please check if this is correct? I think the ERROR_IF might be misplaced, sorry! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
the generated code looks correct but I wonder if the C analyzer treats it any differently |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
So this seems to be the case. If you look at the error case, it leaks a reference on exit, as it doesn't decref/close it. Sorry I have to revert this PR, or provide a fix. So sorry again! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Yes, this leaks |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I confirm that this change introduced a memory leak in the following tests: Example AMD64 Fedora Stable Refleaks 3.x: https://buildbot.python.org/#/builders/320/builds/3425 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@Fidget-Spinner wrote #142604 to fix the leak. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Sorry about that! Thanks @Fidget-Spinner 🙏 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
He wrote another change to fix the leak: #142620. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.