New submission from penguin_wwy <940375...@qq.com>:

Although `ga_call` determines whether `origin` has a vectorcall, it needs to be 
unpacked the parameters that are already packed.
                                              /-> origin.vectorcall(unpacked)
MakeTpCall(packed) -> ga_call -> PyObject_Call
                                               \-> origin.tp_call

We can advance the `vectorcall` judgment to the `setup` phase.

ga_vectorcall -> origin.vectorcall

or

ga_make_tp_call -> _PyObject_MakeTpCall(packed argument) -> origin.tp_call

This will have no effect on tp_call, which still only needs to be packed once, 
while vectorcall does not need packed/unpacked

----------
components: Library (Lib)
messages: 415556
nosy: penguin_wwy
priority: normal
severity: normal
status: open
title: Add vectorcall for generica alias object
versions: Python 3.11

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue47067>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to