A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2019-April/157225.html below:

[Python-Dev] PEP 590 discussion

[Python-Dev] PEP 590 discussion [Python-Dev] PEP 590 discussionMark Shannon mark at hotpy.org
Sat Apr 27 05:19:15 EDT 2019
Hi Jeroen,

On 15/04/2019 9:38 am, Jeroen Demeyer wrote:
> On 2019-04-14 13:30, Mark Shannon wrote:
>> PY_VECTORCALL_ARGUMENTS_OFFSET exists so that callables that make onward
>> calls with an additional argument can do so efficiently. The obvious
>> example is bound-methods, but classes are at least as important.
>> cls(*args) -> cls.new(cls, *args) -> cls.__init__(self, *args)
> 
> But tp_new and tp_init take the "cls" and "self" as separate arguments, 
> not as part of *args. So I don't see why you need 
> PY_VECTORCALL_ARGUMENTS_OFFSET for this.

Here's some (untested) code for an implementation of vectorcall for 
object subtypes implemented in Python. It uses 
PY_VECTORCALL_ARGUMENTS_OFFSET to save memory allocation when calling 
the __init__ method.

https://github.com/python/cpython/commit/9ff46e3ba0747f386f9519933910d63d5caae6ee#diff-c3cf251f16d5a03a9e7d4639f2d6f998R3820

Cheers,
Mark.
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4