On 5/29/19 2:25 PM, Jeroen Demeyer wrote: > Hello, > > I have one implementation question about vectorcall which is not > specified in PEP 590: what should happen if a type implements vectorcall > (i.e. _Py_TPFLAGS_HAVE_VECTORCALL is set) but doesn't set tp_call (i.e. > tp_call == NULL)? I see the following possibilities: > > 1. Ignore this problem/assume that it won't happen. This would be bad, > since callable(obj) would be False even though obj() would succeed. > > 2. Raise SystemError. > > 3. Automatically set tp_call to PyVectorcall_Call. > > I would vote for 3 since it's the most user-friendly option. There is > also no way how it could be wrong: it ensures that tp_call and > vectorcall are consistent. That sounds like a good idea for PyType_FromSpec. For static types I either wouldn't bother at all, or only check in debug builds and fail with Py_FatalError.
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