Add some Python 3.7 backports (#306)

* make.com now uses stack size of 2mb
* optimize _PyCFunction_FastCallKeywords
* backport python@cpython/7fc252adfbedece75f2330bcfdadbf84dee7836f
This commit is contained in:
Gautham 2021-10-30 11:24:14 +05:30 committed by GitHub
parent 903cc38c37
commit d7ff346b52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 700 additions and 504 deletions

View file

@ -16,8 +16,12 @@ PyObject *PyObject_Call(PyObject *callable_object, PyObject *args,
PyObject *_PyStack_AsTuple(PyObject **stack, Py_ssize_t nargs);
PyObject *_PyStack_AsDict(PyObject **values, PyObject *kwnames);
int _PyStack_UnpackDict(PyObject **args, Py_ssize_t nargs, PyObject *kwargs,
PyObject ***p_stack, PyObject **p_kwnames);
PyObject ** _PyStack_UnpackDict(
PyObject **args,
Py_ssize_t nargs,
PyObject *kwargs,
PyObject **kwnames,
PyObject *func);
PyObject *_PyObject_FastCallDict(PyObject *func, PyObject **args,
Py_ssize_t nargs, PyObject *kwargs);

View file

@ -108,6 +108,7 @@ PyObject * PyDict_Copy(PyObject *mp);
int PyDict_Contains(PyObject *mp, PyObject *key);
#ifndef Py_LIMITED_API
int _PyDict_Contains(PyObject *mp, PyObject *key, Py_hash_t hash);
#define PyDict_GET_SIZE(mp) (assert(PyDict_Check(mp)),((PyDictObject *)mp)->ma_used)
PyObject * _PyDict_NewPresized(Py_ssize_t minused);
void _PyDict_MaybeUntrack(PyObject *mp);
int _PyDict_HasOnlyStringKeys(PyObject *mp);

View file

@ -23,6 +23,14 @@ PyObject * _Py_VaBuildValue_SizeT(const char *, va_list);
#endif /* !Py_LIMITED_API */
#endif
#define _Py_VaBuildStack _Py_VaBuildStack_SizeT
PyObject ** _Py_VaBuildStack_SizeT(
PyObject **small_stack,
Py_ssize_t small_stack_len,
const char *format,
va_list va,
Py_ssize_t *p_nargs);
/* Due to a glitch in 3.2, the _SizeT versions weren't exported from the DLL. */
#if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
int PyArg_Parse(PyObject *, const char *, ...);