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 — bpo-46921: Vectorcall support for `super()` by Fidget-Spinner · Pull Request #31687 · python/cpython Conversation
|
|
When you're done making the requested changes, leave the comment: |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
See my benchmark: https://bugs.python.org/msg414577 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Co-Authored-By: Dong-hee Na <[email protected]>
|
@corona10 thanks for taking the time to benchmark this and for the extremely useful suggestions too. I forgot all the cool argument checking helpers we have since I'm a little rusty. If you're interested, there's the monster GH-30992 too where I measured >2X speedup. But it's very complex and I don't have high hopes for it being merged. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I wonder how much a free list would help? I'd bet super objects typically have short lifetimes and not many are alive at once. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
As I wrote, please add the test for checking TypeError when the given number of arguments are greater equal than 3 :) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
🤦 my bad, I missed that. Thanks again. I added one more test since I noticed it wasn't covered in the test suite. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There will probably be some improvement versus relying on CPython's obmalloc "free list". My final goal is to not need any super object at all though :). BTW, are you able to guesstimate how much more complexity we need for a super free list? If it isn't too complex, it's likely more worth it than my cached superinstruction overkill implementation. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I think it's (relatively) straightforward, see floatobject.c for an example. The actual free list gets attached to _PyInterpreterState there. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Feel free to merge this PR :)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@corona10 thanks for the reviews! |
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.