Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | bpo-37543: optimize pymalloc (#14674) | Inada Naoki | 2019-07-17 | 1 | -218/+226 |
| | | | | | | PyObject_Malloc() and PyObject_Free() inlines pymalloc_alloc and pymalloc_free partially. But when PGO is not used, compiler don't know where is the hot part in pymalloc_alloc and pymalloc_free. | ||||
* | bpo-29548: no longer use PyEval_Call* functions (GH-14683) | Jeroen Demeyer | 2019-07-11 | 1 | -1/+10 |
| | |||||
* | bpo-37547: add _PyObject_CallMethodOneArg (GH-14685) | Jeroen Demeyer | 2019-07-11 | 2 | -6/+6 |
| | |||||
* | Fix compiler warning in new code. (#14690) | Tim Peters | 2019-07-10 | 1 | -1/+1 |
| | | | uintptr_t is an integer type, and can't be compared to NULL directly. | ||||
* | bpo-37537: Compute allocated blocks in _Py_GetAllocatedBlocks() (#14680) | Neil Schemenauer | 2019-07-10 | 1 | -7/+22 |
| | | | | | | Keeping an account of allocated blocks slows down _PyObject_Malloc() and _PyObject_Free() by a measureable amount. Have _Py_GetAllocatedBlocks() iterate over the arenas to sum up the allocated blocks for pymalloc. | ||||
* | bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) | Jeroen Demeyer | 2019-07-08 | 6 | -11/+11 |
| | |||||
* | bpo-37151: remove _PyMethodDef_RawFastCall* functions (GH-14603) | Jeroen Demeyer | 2019-07-05 | 1 | -259/+0 |
| | |||||
* | bpo-36974: separate vectorcall functions for each calling convention (GH-13781) | Jeroen Demeyer | 2019-07-05 | 3 | -79/+354 |
| | |||||
* | bpo-37483: add _PyObject_CallOneArg() function (#14558) | Jeroen Demeyer | 2019-07-04 | 15 | -40/+29 |
| | |||||
* | bpo-37233: optimize method_vectorcall in case of totalargs == 0 (GH-14550) | Jeroen Demeyer | 2019-07-03 | 1 | -6/+10 |
| | |||||
* | bpo-36904: Optimize _PyStack_UnpackDict (GH-14517) | Jeroen Demeyer | 2019-07-02 | 1 | -63/+85 |
| | |||||
* | bpo-37221: Add PyCode_NewWithPosOnlyArgs to be used internally and set ↵ | Pablo Galindo | 2019-07-01 | 1 | -15/+31 |
| | | | | | | PyCode_New as a compatibility wrapper (GH-13959) Add PyCode_NewEx to be used internally and set PyCode_New as a compatibility wrapper | ||||
* | bpo-37337: Add _PyObject_VectorcallMethod() (GH-14228) | Jeroen Demeyer | 2019-06-28 | 2 | -7/+46 |
| | |||||
* | bpo-37417: Fix error handling in bytearray.extend. (GH-14407) | Brandt Bucher | 2019-06-26 | 1 | -0/+4 |
| | |||||
* | bpo-37388: Add PyUnicode_Decode(str, 0) fast-path (GH-14385) | Victor Stinner | 2019-06-25 | 1 | -0/+4 |
| | | | Add a fast-path to PyUnicode_Decode() for size equals to 0. | ||||
* | bpo-37388: Development mode check encoding and errors (GH-14341) | Victor Stinner | 2019-06-25 | 1 | -5/+63 |
| | | | | | | | | | In development mode and in debug build, encoding and errors arguments are now checked on string encoding and decoding operations. Examples: open(), str.encode() and bytes.decode(). By default, for best performances, the errors argument is only checked at the first encoding/decoding error, and the encoding argument is sometimes ignored for empty strings. | ||||
* | bpo-24214: Fixed the UTF-8 and UTF-16 incremental decoders. (GH-14304) | Serhiy Storchaka | 2019-06-25 | 2 | -6/+10 |
| | | | | | | | * The UTF-8 incremental decoders fails now fast if encounter a sequence that can't be handled by the error handler. * The UTF-16 incremental decoders with the surrogatepass error handler decodes now a lone low surrogate with final=False. | ||||
* | bpo-36974: inherit tp_vectorcall_offset unconditionally (GH-13858) | Jeroen Demeyer | 2019-06-24 | 2 | -7/+7 |
| | |||||
* | bpo-37348: optimize decoding ASCII string (GH-14283) | Inada Naoki | 2019-06-24 | 1 | -34/+51 |
| | | | `_PyUnicode_Writer` is a relatively complex structure. Initializing it is significant overhead when decoding short ASCII string. | ||||
* | bpo-37151: remove _PyCFunction_FastCallDict (GH-14269) | Jeroen Demeyer | 2019-06-20 | 1 | -18/+0 |
| | |||||
* | bpo-36710: Use tstate in pylifecycle.c (GH-14249) | Victor Stinner | 2019-06-19 | 1 | -1/+3 |
| | | | | In pylifecycle.c: pass tstate argument, rather than interp argument, to functions. | ||||
* | bpo-37151: remove _PyFunction_FastCallDict (GH-13864) | Jeroen Demeyer | 2019-06-18 | 2 | -100/+1 |
| | |||||
* | bpo-37233: use _PY_FASTCALL_SMALL_STACK in method_vectorcall (GH-13974) | Jeroen Demeyer | 2019-06-18 | 1 | -5/+13 |
| | |||||
* | bpo-37151: use PyVectorcall_Call for all calls of "method" (GH-13972) | Jeroen Demeyer | 2019-06-18 | 1 | -12/+1 |
| | |||||
* | bpo-37194: Add a new public PyObject_CallNoArgs() function (GH-13890) | Victor Stinner | 2019-06-17 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | Add a new public PyObject_CallNoArgs() function to the C API: call a callable Python object without any arguments. It is the most efficient way to call a callback without any argument. On x86-64, for example, PyObject_CallFunctionObjArgs(func, NULL) allocates 960 bytes on the stack per call, whereas PyObject_CallNoArgs(func) only allocates 624 bytes per call. It is excluded from stable ABI 3.8. Replace private _PyObject_CallNoArg() with public PyObject_CallNoArgs() in C extensions: _asyncio, _datetime, _elementtree, _pickle, _tkinter and readline. | ||||
* | bpo-36922: use Py_TPFLAGS_METHOD_DESCRIPTOR in lookup_maybe_method() (GH-13865) | Jeroen Demeyer | 2019-06-17 | 1 | -1/+1 |
| | |||||
* | bpo-37231: remove _PyObject_FastCall_Prepend (GH-14153) | Jeroen Demeyer | 2019-06-17 | 1 | -36/+0 |
| | |||||
* | closes bpo-37300: Remove unnecessary Py_XINCREF in classobject.c. (GH-14120) | Hai Shi | 2019-06-16 | 1 | -1/+1 |
| | |||||
* | bpo-37249: add declaration of _PyObject_GetMethod (GH-14015) | Jeroen Demeyer | 2019-06-14 | 1 | -3/+0 |
| | |||||
* | bpo-37231: optimize calls of special methods (GH-13973) | Jeroen Demeyer | 2019-06-13 | 1 | -72/+86 |
| | |||||
* | bpo-37257: obmalloc: stop simple arena thrashing (#14039) | Tim Peters | 2019-06-13 | 1 | -2/+7 |
| | | | | | GH-14039: allow (no more than) one wholly empty arena on the usable_arenas list. This prevents thrashing in some easily-provoked simple cases that could end up creating and destroying an arena on each loop iteration in client code. Intuitively, if the only arena on the list becomes empty, it makes scant sense to give it back to the system unless we know we'll never need another free pool again before another arena frees a pool. If the latter obtains, then - yes - this will "waste" an arena. | ||||
* | bpo-37236: pragma optimize off for _Py_c_quot on Windows arm64 (GH-13983) | Paul Monson | 2019-06-12 | 1 | -0/+7 |
| | |||||
* | bpo-26219: Fix compiler warning in _PyCode_InitOpcache() (GH-13997) | Victor Stinner | 2019-06-12 | 1 | -1/+1 |
| | | | | | | | Fix MSVC warning: objects\codeobject.c(285): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned char', possible loss of data | ||||
* | bpo-37219: Remove erroneous optimization for differencing an empty set ↵ | Raymond Hettinger | 2019-06-11 | 1 | -8/+0 |
| | | | | | | (GH-13965) | ||||
* | bpo-37138: fix undefined behaviour with memcpy() on NULL array (GH-13867) | Jeroen Demeyer | 2019-06-07 | 1 | -1/+5 |
| | |||||
* | bpo-37151: simplify classmethoddescr_call (GH-13340) | Jeroen Demeyer | 2019-06-07 | 1 | -28/+16 |
| | |||||
* | bpo-37170: Fix the cast on error in PyLong_AsUnsignedLongLongMask() (GH-13860) | Zackery Spytz | 2019-06-06 | 1 | -2/+2 |
| | |||||
* | bpo-26219: Fix compiler warning in _PyCode_InitOpcache() (GH-13809) | Victor Stinner | 2019-06-04 | 1 | -1/+2 |
| | | | | | | Fix this MSVC warning: objects\codeobject.c(264): warning C4244: '=': conversion from 'Py_ssize_t' to 'unsigned char', possible loss of data | ||||
* | bpo-26219: per opcode cache for LOAD_GLOBAL (GH-12884) | Inada Naoki | 2019-06-03 | 2 | -12/+78 |
| | | | | | | This patch implements per opcode cache mechanism, and use it in only LOAD_GLOBAL opcode. Based on Yury's opcache3.patch in bpo-26219. | ||||
* | bpo-36027: Really fix "incompatible pointer type" compiler warning (GH-13761) | Petr Viktorin | 2019-06-03 | 1 | -1/+1 |
| | | | Apologies for the earlier hasty attempt. | ||||
* | bpo-36974: add some assertions for PEP 590 (GH-13682) | Jeroen Demeyer | 2019-06-02 | 1 | -0/+14 |
| | |||||
* | bpo-37012: Clean up special cases in PyType_FromSpecWithBases slot ↵ | Petr Viktorin | 2019-06-02 | 1 | -9/+11 |
| | | | | | | | | | assignments (GH-13496) The main slot assignment loop is now if-else if ladder, making the control flow clearer. Based on suggestion by Victor Stinner in: https://github.com/python/cpython/pull/10304/#issuecomment-491123026 | ||||
* | bpo-36027 bpo-36974: Fix "incompatible pointer type" compiler warnings ↵ | Petr Viktorin | 2019-06-02 | 1 | -1/+1 |
| | | | | (GH-13758) | ||||
* | bpo-36974: Make tp_call=PyVectorcall_Call work for inherited types (GH-13699) | Petr Viktorin | 2019-06-02 | 2 | -11/+25 |
| | | | | | | | | | | | | | | | | | | When inheriting a heap subclass from a vectorcall class that sets `.tp_call=PyVectorcall_Call` (as recommended in PEP 590), the subclass does not inherit `_Py_TPFLAGS_HAVE_VECTORCALL`, and thus `PyVectorcall_Call` does not work for it. This attempts to solve the issue by: * always inheriting `tp_vectorcall_offset` unless `tp_call` is overridden in the subclass * inheriting _Py_TPFLAGS_HAVE_VECTORCALL for static types, unless `tp_call` is overridden * making `PyVectorcall_Call` ignore `_Py_TPFLAGS_HAVE_VECTORCALL` This means it'll be ever more important to only call `PyVectorcall_Call` on classes that support vectorcall. In `PyVectorcall_Call`'s intended role as `tp_call` filler, that's not a problem. | ||||
* | Call PyObject_GC_UnTrack in structseq dealloc (GH-13751) | Pablo Galindo | 2019-06-02 | 1 | -0/+1 |
| | |||||
* | bpo-37126: Allow structseq objects to be tracked by the GC (GH-13729) | Pablo Galindo | 2019-06-02 | 1 | -2/+18 |
| | |||||
* | bpo-36027: Extend three-argument pow to negative second argument (GH-13266) | Mark Dickinson | 2019-06-02 | 1 | -12/+118 |
| | |||||
* | bpo-20092. Use __index__ in constructors of int, float and complex. (GH-13108) | Serhiy Storchaka | 2019-06-01 | 3 | -3/+31 |
| | |||||
* | bpo-36842: Pass positional only parameters to code_new audit hook (GH-13707) | Pablo Galindo | 2019-06-01 | 1 | -3/+3 |
| | |||||
* | Improve exception message for str.format (GH-12675) | Francisco Couzo | 2019-06-01 | 1 | -2/+7 |
| |