-
-
Notifications
You must be signed in to change notification settings - Fork 31k
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-98831: rewrite GET_LEN, GET_ITER, BEFORE_WITH and a few simple opcodes in the instruction definition DSL #101443
Conversation
iritkatriel
commented
Jan 31, 2023
•
edited by bedevere-bot
Loading
edited by bedevere-bot
- Issue: Generate the interpreter #98831
…le opcodes in the instruction definition DSL
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There might be leaks. :-(
Python/bytecodes.c
Outdated
goto error; | ||
ERROR_IF(true, error); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this leaks a reference to mgr
. You can either insert another DECREF_INPUTS()
before this line, or just keep the goto error
. I prefer the latter, we're not going to require using DECREF_INPUTS()
everywhere (it mostly exists because it would be useful with the register conversion).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm was just looking at this. I added DECREF_INPUTS in these two places and it is still leaking something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed the change with goto, still looking for the other leak.
Python/bytecodes.c
Outdated
goto error; | ||
ERROR_IF(true, error); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here.
Python/generated_cases.c.h
Outdated
goto error; | ||
} | ||
PUSH(res); | ||
if (res == NULL) goto pop_1_error; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's leaking when enter raises.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It leaks exit. Before this PR it put exit in the stack before the 'goto error', but now it doesn't so it needs to decref exit.
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 2ee6241 🤖 If you want to schedule another build, you need to add the |
2 similar comments
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 2ee6241 🤖 If you want to schedule another build, you need to add the |
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 2ee6241 🤖 If you want to schedule another build, you need to add the |
This reverts commit 2ee6241.
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit a925498 🤖 If you want to schedule another build, you need to add the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That LGTM, but there's still something that claims to leak -- importlib, no less. Let me re-run that build.
The PPC64 buildbots are simply out of disk space. (I think it may be the same machine.) |
…le opcodes in the instruction definition DSL (python#101443)
* main: pythongh-101440: fix json snippet error in logging-cookbook.rst (python#101439) pythongh-99276 - Updated Doc/faq/general.rst (python#101396) Add JOBS parameter to docs Makefile (python#101395) pythongh-98831: rewrite GET_LEN, GET_ITER, BEFORE_WITH and a few simple opcodes in the instruction definition DSL (python#101443) pythongh-77607: Improve accuracy of os.path.join docs (python#101406) Fixes typo in asyncio.TaskGroup context manager code example (python#101449) pythongh-98831: Clean up and add cache size static_assert to macro (python#101442) pythongh-99955: use SUCCESS/ERROR return values in optimizer and assembler. Use RETURN_IF_ERROR where appropriate. Fix a couple of bugs. (python#101412)