mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-22 21:32:31 +00:00
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:
parent
903cc38c37
commit
d7ff346b52
9 changed files with 700 additions and 504 deletions
8
third_party/python/Include/abstract.h
vendored
8
third_party/python/Include/abstract.h
vendored
|
@ -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);
|
||||
|
|
1
third_party/python/Include/dictobject.h
vendored
1
third_party/python/Include/dictobject.h
vendored
|
@ -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);
|
||||
|
|
8
third_party/python/Include/modsupport.h
vendored
8
third_party/python/Include/modsupport.h
vendored
|
@ -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 *, ...);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue