Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.1k
Conversation
markshannon commentedMay 3, 2022
itamaro left a comment
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.
lgtm, thanks@markshannon !
| @@ -1466,6 +1467,11 @@ specialize_py_call(PyFunctionObject *func, _Py_CODEUNIT *instr, int nargs, | |||
| assert(_Py_OPCODE(*instr) == CALL_ADAPTIVE); | |||
| PyCodeObject *code = (PyCodeObject *)func->func_code; | |||
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.
will we want to add a check here for overriddenvectorcall onfunc as well, or is it already covered somewhere else? (assuming the vectorcall set API sets the version to zero)
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 think we want to check for that in#92257
Lib/test/test_capi.py Outdated
| def test_specialize_before_intercept(self): | ||
| def func2(): | ||
| pass | ||
| for _ in range(SUFFICIENT_TO_SPECIALIZE): | ||
| func2() | ||
| self.do_test(func2) |
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.
more for my understanding - this test case fails without the addedPEP-523 checks? (but the other one passes?)
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.
Both tests should fail without the checks.
| TARGET(CALL_PY_EXACT_ARGS) { | ||
| assert(call_shape.kwnames == NULL); | ||
| DEOPT_IF(tstate->interp->eval_frame, CALL); |
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 don't know how to verify that these opcodes (CALL_PY_EXACT_ARGS &CALL_PY_WITH_DEFAULTS) are the only ones where this check is needed - I trust you :)
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.
Make sure that we respect PEP 523 when specializing