PEP 590
E896510
PEP 590 is the Python Enhancement Proposal that introduced the "vectorcall" protocol to speed up and standardize function calls in CPython.
All labels observed (1)
| Label | Occurrences |
|---|---|
| PEP 590 canonical | 1 |
How this entity was disambiguated
This entity first appeared as the object of triple T10851819 — resolving that mention is where its identity was fixed. The disambiguator weighed these candidate entities and picked the highlighted one (or “None”, minting a new entity). This is how homonymy is resolved: the same surface form can point to different entities.
NED1
Entity disambiguation (via context triple)
gpt-5-mini-2025-08-07
Target entity: PEP 590 Context triple: [Python 3.8, hasPEP, PEP 590]
-
A.
PEP 570
PEP 570 is the Python Enhancement Proposal that introduced positional-only parameters to Python function definitions, formalizing a syntax for arguments that must be passed by position.
-
B.
PEP 572
PEP 572 is the Python proposal that introduced the “walrus operator” (:=) for assignment expressions, allowing assignment within larger expressions.
-
C.
PEP 578
PEP 578 is a Python enhancement proposal that introduces a security audit hook framework to help monitor and control runtime events in Python applications.
-
D.
PEP 695
PEP 695 is a Python Enhancement Proposal that introduces a new, more concise syntax for type parameter declarations to improve the language’s support for generics and static typing.
-
E.
PEP 622
PEP 622 is a Python Enhancement Proposal that introduced the design for structural pattern matching syntax later adopted in Python 3.10.
- F. None of above. chosen
- G. Unsure - the case is ambiguous/there is not enough information to decide.
NED2
Entity disambiguation (via description)
gpt-5-mini-2025-08-07
Target entity: PEP 590 Target entity description: PEP 590 is the Python Enhancement Proposal that introduced the "vectorcall" protocol to speed up and standardize function calls in CPython.
-
A.
PEP 570
PEP 570 is the Python Enhancement Proposal that introduced positional-only parameters to Python function definitions, formalizing a syntax for arguments that must be passed by position.
-
B.
PEP 572
PEP 572 is the Python proposal that introduced the “walrus operator” (:=) for assignment expressions, allowing assignment within larger expressions.
-
C.
PEP 578
PEP 578 is a Python enhancement proposal that introduces a security audit hook framework to help monitor and control runtime events in Python applications.
-
D.
PEP 695
PEP 695 is a Python Enhancement Proposal that introduces a new, more concise syntax for type parameter declarations to improve the language’s support for generics and static typing.
-
E.
PEP 622
PEP 622 is a Python Enhancement Proposal that introduced the design for structural pattern matching syntax later adopted in Python 3.10.
- F. None of above. chosen
Statements (50)
| Predicate | Object |
|---|---|
| instanceOf | Python Enhancement Proposal ⓘ |
| acceptedInYear | 2019 ⓘ |
| affects |
C extension types implementing vectorcall
ⓘ
built-in functions ⓘ built-in methods ⓘ |
| aimsTo |
speed up function calls in CPython
ⓘ
standardize low-level calling convention in CPython ⓘ |
| appliesTo | CPython 3.8 and later ⓘ |
| backwardsCompatibility | keeps Python-level call semantics unchanged ⓘ |
| benefit |
enables more efficient inlining and optimization by compilers
ⓘ
reduces overhead of argument tuple creation in many calls ⓘ simplifies internal call machinery in CPython ⓘ |
| createdBy |
Jeroen Demeyer
NERFINISHED
ⓘ
Mark Shannon NERFINISHED ⓘ Pablo Galindo NERFINISHED ⓘ Petr Viktorin NERFINISHED ⓘ Victor Stinner NERFINISHED ⓘ |
| decisionBody | Python core developers NERFINISHED ⓘ |
| definesConcept |
vectorcall
ⓘ
vectorcall protocol ⓘ |
| definesDataModel |
calling convention using C array of PyObject* arguments
ⓘ
separate tuple for keyword names ⓘ |
| discusses |
ABI stability concerns for C extensions
ⓘ
migration path from older fast-call APIs ⓘ |
| discussionsTo | [email protected] ⓘ |
| documentationURL | https://peps.python.org/pep-0590/ ⓘ |
| hasNumber | 590 ⓘ |
| introducedIn | CPython 3.8 NERFINISHED ⓘ |
| introducesAPI |
PyObject_Vectorcall
NERFINISHED
ⓘ
PyVectorcall_Call NERFINISHED ⓘ PyVectorcall_Function type NERFINISHED ⓘ vectorcall function pointer slot in PyTypeObject ⓘ |
| introducesMacro | PyVectorcall_NARGS ⓘ |
| isCompatibleWith | existing Python call syntax ⓘ |
| language | Python NERFINISHED ⓘ |
| modifiesComponent |
CPython C API
NERFINISHED
ⓘ
PyObject call conventions ⓘ |
| motivatedBy |
need to unify multiple fast-call code paths
ⓘ
performance of C extension calls ⓘ performance of Python function calls ⓘ performance of bound method calls ⓘ |
| relatedTo |
PEP 579
NERFINISHED
ⓘ
PEP 580 NERFINISHED ⓘ |
| replacesMechanism |
_PyObject_FastCall and related private APIs
ⓘ
tp_call-based calling for many callables ⓘ |
| scope | low-level C calling protocol, not Python language syntax ⓘ |
| status | Final ⓘ |
| targetImplementation | CPython NERFINISHED ⓘ |
| title | PEP 590 – Vectorcall: a fast calling protocol for CPython NERFINISHED ⓘ |
| type | Standards Track ⓘ |
How these facts were elicited
The pipeline generated the facts above by prompting gpt-5.1 with this entity's name + description and the instruction below.
Instruction
You are a knowledge base construction expert. Given a subject entity and a description of it, return factual statements that you know for the subject as a JSON list of dictionaries(triples), where keys must be "subject", "predicate" and "object". The number of facts may be very high, between 25 to 50 or more, for very popular subjects. For less popular subjects, the number of facts can be very low, like 5 or 10. # Requirements - If you don't know the subject at all, return an empty list. - If the subject is not a named entity, return an empty list. - Include at least one triple where predicate is "instanceOf". - Do not get too wordy. - Separate several objects into multiple triples with one object.
Input
Subject: PEP 590 Description of subject: PEP 590 is the Python Enhancement Proposal that introduced the "vectorcall" protocol to speed up and standardize function calls in CPython.
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.