summaryrefslogtreecommitdiffstats
path: root/Modules/_collectionsmodule.c
Commit message (Collapse)AuthorAgeFilesLines
...
* bpo-37493: use _PyObject_CallNoArg in more places (GH-14575)Jeroen Demeyer2019-07-041-1/+1
|
* bpo-37483: add _PyObject_CallOneArg() function (#14558)Jeroen Demeyer2019-07-041-2/+1
|
* bpo-37165: Convert _count_elements to the argument clinic (GH-13848)Raymond Hettinger2019-06-051-11/+16
|
* bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async ↵Jeroen Demeyer2019-05-311-10/+10
| | | | | | | | | (GH-13464) Automatically replace tp_print -> tp_vectorcall_offset tp_compare -> tp_as_async tp_reserved -> tp_as_async
* bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264)Serhiy Storchaka2019-03-131-1/+1
|
* Fix the C function signature for _collections._tuplegetter.__reduce__. ↵Serhiy Storchaka2019-03-051-2/+2
| | | | | (GH-12180) Correctly fixes bpo-36197.
* bpo-33012: Fix compilation warnings in memoryobject.c and ↵Stéphane Wirtel2019-03-051-1/+1
| | | | | | _collectionsmodule.c (GH-12179) Cast function pointers to (void(*)(void)) before casting to (PyCFunction) to make "warning: cast between incompatible function types" false alarm quiet.
* bpo-36068: Make _tuplegetter objects serializable (GH-11981)Joe Jevnik2019-02-211-1/+12
|
* Speed-up argument parsing for common cases in deque.__init__()(GH-11717)Raymond Hettinger2019-02-011-3/+7
|
* bpo-32492: Tweak _collections._tuplegetter. (GH-11367)Serhiy Storchaka2018-12-311-8/+8
| | | | | | * Replace the docstrings cache with sys.intern(). * Improve tests. * Unify names of tp_descr_get and tp_descr_set functions.
* bpo-32492: 1.6x speed up in namedtuple attribute access using C fast-path ↵Pablo Galindo2018-12-301-0/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#10495) * bpo-32492: 2.5x speed up in namedtuple attribute access using C fast path * Add News entry * fixup! bpo-32492: 2.5x speed up in namedtuple attribute access using C fast path * Check for tuple in the __get__ of the new descriptor and don't cache the descriptor itself * Don't inherit from property. Implement GC methods to handle __doc__ * Add a test for the docstring substitution in descriptors * Update NEWS entry to reflect time against 3.7 branch * Simplify implementation with argument clinic, better error messages, only __new__ * Use positional-only parameters for the __new__ * Use PyTuple_GET_SIZE and PyTuple_GET_ITEM to tighter the implementation of tuplegetterdescr_get * Implement __set__ to make tuplegetter a data descriptor * Use Py_INCREF now that we inline PyTuple_GetItem * Apply the valid_index() function, saving one test * Move Py_None test out of the critical path.
* bpo-33029: Fix signatures of getter and setter functions. (GH-10746)Serhiy Storchaka2018-11-271-1/+1
| | | Fix also return type for few other functions (clear, releasebuffer).
* bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749)Serhiy Storchaka2018-11-271-3/+3
| | | | | | Fix invalid function cast warnings with gcc 8 for method conventions different from METH_NOARGS, METH_O and METH_VARARGS excluding Argument Clinic generated code.
* bpo-33012: Fix signatures of METH_NOARGS funstions. (GH-10736)Serhiy Storchaka2018-11-271-1/+1
|
* Minor performance tweak for deque.index() with a start argument (GH-9440)Raymond Hettinger2018-09-211-2/+4
|
* closes bpo-31608: Fix a crash in methods of a subclass of _collections.deque ↵Oren Milman2018-09-111-4/+13
| | | | with a bad __new__(). (GH-3788)
* Factor-out two substantially identical code blocks. (GH-8219)Raymond Hettinger2018-07-101-46/+10
|
* bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)Serhiy Storchaka2018-05-311-3/+4
|
* bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. ↵Siddhesh Poyarekar2018-04-291-13/+13
| | | | | | | | | (GH-6030) METH_NOARGS functions need only a single argument but they are cast into a PyCFunction, which takes two arguments. This triggers an invalid function cast warning in gcc8 due to the argument mismatch. Fix this by adding a dummy unused argument.
* bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code ↵Serhiy Storchaka2018-01-251-5/+3
| | | | | (GH-5222) Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()
* bpo-32240: Add the const qualifier to declarations of PyObject* array ↵Serhiy Storchaka2017-12-151-3/+3
| | | | arguments. (#4746)
* bpo-31586: Use _count_element fast path for real dicts.Oren Milman2017-09-271-1/+3
|
* bpo-27541: Reprs of subclasses of some classes now contain actual type name. ↵Serhiy Storchaka2017-09-211-4/+7
| | | | | (#3631) Affected classes are bytearray, array, deque, defaultdict, count and repeat.
* Code clean-up. Remove unnecessary pre-increment before the loop starts. (#3312)Raymond Hettinger2017-09-041-17/+10
|
* bpo-31095: fix potential crash during GC (GH-2974)INADA Naoki2017-08-241-0/+4
|
* bpo-29464: Rename METH_FASTCALL to METH_FASTCALL|METH_KEYWORDS and make (#1955)Serhiy Storchaka2017-07-031-15/+3
| | | | | the bare METH_FASTCALL be used for functions with positional-only parameters.
* bpo-29935: Fixed error messages in the index() method of tuple, list and ↵Serhiy Storchaka2017-03-301-2/+2
| | | | | deque (#887) when pass indices of wrong type.
* bpo-29878: Add global instances of int for 0 and 1. (#852)Serhiy Storchaka2017-03-301-16/+4
|
* bpo-29634: Reduce deque repeat execution when maxlen exist and size is not 1 ↵Louie Lu2017-02-241-0/+4
| | | | (#255) (#255)
* Optimize deque index, insert and rotate() methodsVictor Stinner2017-02-061-11/+29
| | | | | | | | | | | Issue #29452: Use METH_FASTCALL calling convention for index(), insert() and rotate() methods of collections.deque to avoid the creation a temporary tuple to pass position arguments. Speedup on deque methods: * d.rotate(): 1.10x faster * d.rotate(1): 1.24x faster * d.insert(): 1.18x faster * d.index(): 1.24x faster
* Fix typoRaymond Hettinger2017-01-131-1/+1
|
* Issue #28858: Remove _PyObject_CallArg1() macroVictor Stinner2016-12-051-1/+2
| | | | | | | | | | | Replace _PyObject_CallArg1(func, arg) with PyObject_CallFunctionObjArgs(func, arg, NULL) Using the _PyObject_CallArg1() macro increases the usage of the C stack, which was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this issue.
* Replace PyObject_CallFunction() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | | | | Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
* Issue #28123: _PyDict_GetItem_KnownHash() now can raise an exception asSerhiy Storchaka2016-11-061-0/+2
| | | | PyDict_GetItemWithError(). Patch by Xiang Zhang.
* Revert part of 3471a3515827 that caused a performance regressionRaymond Hettinger2016-09-121-8/+44
|
* Avoid inefficient way to call functions without argumentVictor Stinner2016-09-061-1/+1
| | | | | | Don't pass "()" format to PyObject_CallXXX() to call a function without argument: pass NULL as the format string instead. It avoids to have to parse a string to produce 0 argument.
* - Modules/_collectionsmodule.c: Mark one more internal symbol as static.doko@ubuntu.com2016-06-141-1/+1
|
* - make some internal symbols staticdoko@ubuntu.com2016-05-171-1/+1
|
* Issue #26482: Allowed pickling recursive dequeues.Serhiy Storchaka2016-03-061-18/+18
|
* More logicial order. Move space saving step to just before it is used.Raymond Hettinger2016-03-041-14/+14
|
* Factor-out common subexpression.Raymond Hettinger2016-03-021-3/+3
|
* Put block length computations in a more logical order.Raymond Hettinger2016-03-021-2/+2
|
* Issue #26200: The SETREF macro adds unnecessary work in some cases.Raymond Hettinger2016-02-091-1/+4
|
* mergeRaymond Hettinger2016-02-021-5/+2
|
* mergeRaymond Hettinger2016-01-271-0/+7
|\
| * Issue #26194: Fix undefined behavior for deque.insert() when len(d) == maxlenRaymond Hettinger2016-01-271-0/+7
| |
* | Convert another post-decrement while-loop to pre-decrement for consistencyRaymond Hettinger2016-01-241-1/+2
| | | | | | | | and better generated code (on both GCC and CLang).
* | Convert two other post-decrement while-loops to pre-decrements for consistencyRaymond Hettinger2016-01-241-2/+4
| | | | | | | | and for better code generation.
* | Miscellaneous refactoringsRaymond Hettinger2016-01-241-65/+58
| | | | | | | | | | | | | | | | * Add comment to the maxlen structure entry about the meaning of maxlen == -1 * Factor-out code common to deque_append(left) and deque_extend(left) * Factor inner-loop in deque_clear() to use only 1 test per loop instead of 2 * Tighten inner-loops for deque_item() and deque_ass_item() so that the compiler can combine the decrement and test into a single step.
* | merge 3.5Benjamin Peterson2016-01-011-2/+0
|\ \ | |/