]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-46329: Split calls into precall and call instructions. (GH-30855)
authorMark Shannon <mark@hotpy.org>
Fri, 28 Jan 2022 12:42:30 +0000 (12:42 +0000)
committerGitHub <noreply@github.com>
Fri, 28 Jan 2022 12:42:30 +0000 (12:42 +0000)
commit89fd7c34520aac493a8784a221366ed04452612b
treeda2dd6dfe862b1351063e2c0ee2a3564c4773416
parent5a9e423473bf2c4eb32a0982e8d73420875db1da
bpo-46329: Split calls into precall and call instructions. (GH-30855)

* Add PRECALL_FUNCTION opcode.

* Move 'call shape' varaibles into struct.

* Replace CALL_NO_KW and CALL_KW with KW_NAMES and CALL instructions.

* Specialize for builtin methods taking using the METH_FASTCALL | METH_KEYWORDS protocol.

* Allow kwnames for specialized calls to builtin types.

* Specialize calls to tuple(arg) and str(arg).
16 files changed:
Doc/library/dis.rst
Doc/whatsnew/3.11.rst
Include/internal/pycore_code.h
Include/internal/pycore_frame.h
Include/opcode.h
Lib/importlib/_bootstrap_external.py
Lib/opcode.py
Lib/test/test_compile.py
Lib/test/test_dis.py
Misc/NEWS.d/next/Core and Builtins/2022-01-25-11-44-17.bpo-46329.SEhynE.rst [new file with mode: 0644]
Programs/test_frozenmain.h
Python/ceval.c
Python/compile.c
Python/frame.c
Python/opcode_targets.h
Python/specialize.c