Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | Issue #28818: Simplify lookdict functions | INADA Naoki | 2016-12-07 | 1 | -122/+94 | |
| | | | ||||||
* | | | Use _PyObject_CallNoArg() | Victor Stinner | 2016-12-06 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | | | | Replace: PyObject_CallObject(callable, NULL) with: _PyObject_CallNoArg(callable) | |||||
* | | | Backed out changeset b9c9691c72c5 | Victor Stinner | 2016-12-04 | 1 | -1/+2 | |
| | | | | | | | | | | | | | | | | | | Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like _PyObject_CallArg1() uses more stack memory than PyObject_CallFunctionObjArgs(). | |||||
* | | | Replace PyObject_CallFunctionObjArgs() with fastcall | Victor Stinner | 2016-12-01 | 1 | -2/+1 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func) * PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg) PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires extra work to "parse" C arguments to build a C array of PyObject*. _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack. This change is part of the fastcall project. The change on listsort() is related to the issue #23507. | |||||
* | | | Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict | INADA Naoki | 2016-11-22 | 1 | -5/+19 | |
| | | | | | | | | | | | | Improve speed of dict literal with constant keys up to 30%. | |||||
* | | | Issue #28618: Mark dict lookup functions as hot | Victor Stinner | 2016-11-15 | 1 | -4/+4 | |
| | | | | | | | | | | | | It's common to see these functions in the top 3 of "perf report". | |||||
* | | | Use PyThreadState_GET() in performance critical code | Victor Stinner | 2016-11-11 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | It seems like _PyThreadState_UncheckedGet() is not inlined as expected, even when using gcc -O3. | |||||
* | | | Issue #28199: Microoptimized dict resizing. Based on patch by Naoki Inada. | Serhiy Storchaka | 2016-10-29 | 1 | -60/+63 | |
| | | | ||||||
* | | | Issue #28123: _PyDict_GetItem_KnownHash() now can raise an exception as | Serhiy Storchaka | 2016-11-06 | 1 | -26/+22 | |
|\ \ \ | |/ / | | | | | | | PyDict_GetItemWithError(). Patch by Xiang Zhang. | |||||
| * | | Issue #28123: _PyDict_GetItem_KnownHash() now can raise an exception as | Serhiy Storchaka | 2016-11-06 | 1 | -26/+22 | |
| | | | | | | | | | | | | PyDict_GetItemWithError(). Patch by Xiang Zhang. | |||||
* | | | Issue #28580: Optimize iterating split table values. | INADA Naoki | 2016-11-04 | 1 | -37/+25 | |
| | | | | | | | | | | | | Patch by Xiang Zhang. | |||||
* | | | Issue #28583: PyDict_SetDefault didn't combine split table when needed. | INADA Naoki | 2016-11-02 | 1 | -15/+45 | |
|\ \ \ | |/ / | | | | | | | Patch by Xiang Zhang. | |||||
| * | | Issue #28583: PyDict_SetDefault didn't combine split table when needed. | INADA Naoki | 2016-11-02 | 1 | -15/+45 | |
| | | | | | | | | | | | | Patch by Xiang Zhang. | |||||
* | | | Merge from 3.6. | Serhiy Storchaka | 2016-10-31 | 1 | -63/+60 | |
|\ \ \ | |/ / | ||||||
| * | | Backed out changeset 6b88dfc7b25d | Serhiy Storchaka | 2016-10-31 | 1 | -63/+60 | |
| | | | ||||||
* | | | Issue #28199: Microoptimized dict resizing. Based on patch by Naoki Inada. | Serhiy Storchaka | 2016-10-29 | 1 | -60/+63 | |
|\ \ \ | |/ / | ||||||
| * | | Issue #28199: Microoptimized dict resizing. Based on patch by Naoki Inada. | Serhiy Storchaka | 2016-10-29 | 1 | -60/+63 | |
| | | | ||||||
* | | | Merge 3.6 (issue #28544) | Yury Selivanov | 2016-10-28 | 1 | -2/+6 | |
|\ \ \ | |/ / | ||||||
| * | | Issue #28544: Pass `PyObject*` to _PyDict_Pop, not `PyDictObject*` | Yury Selivanov | 2016-10-28 | 1 | -2/+6 | |
| | | | ||||||
* | | | Issue #28509: dict.update() no longer allocate unnecessary large memory | INADA Naoki | 2016-10-27 | 1 | -2/+4 | |
|\ \ \ | |/ / | ||||||
| * | | Issue #28509: dict.update() no longer allocate unnecessary large memory | INADA Naoki | 2016-10-27 | 1 | -2/+4 | |
| | | | ||||||
| * | | - dictobject.c: Make dict_merge symbol a static symbol | doko@ubuntu.com | 2016-10-11 | 1 | -1/+1 | |
| | | | ||||||
* | | | Reference the original compact-and-ordered proposal | Raymond Hettinger | 2016-10-22 | 1 | -2/+3 | |
| | | | ||||||
* | | | - dictobject.c: Make dict_merge symbol a static symbol | doko@ubuntu.com | 2016-10-11 | 1 | -1/+1 | |
|/ / | ||||||
* | | Issue #28183: Optimize and cleanup dict iteration. | Serhiy Storchaka | 2016-10-09 | 1 | -109/+106 | |
| | | ||||||
* | | Issue #28201: Dict reduces possibility of 2nd conflict in hash table. | INADA Naoki | 2016-10-06 | 1 | -16/+22 | |
| | | | | | | | | Do perturb shift after first conflict. | |||||
* | | Issue #27358: Optimized merging var-keyword arguments and improved error | Serhiy Storchaka | 2016-10-02 | 1 | -9/+36 | |
| | | | | | | | | message when pass a non-mapping as a var-keyword argument. | |||||
* | | issue #28144: Decrease empty_keys_struct's dk_refcnt | Serhiy Storchaka | 2016-09-26 | 1 | -1/+1 | |
| | | | | | | | | | | since there is no dummy_struct any more. Patch by Xiang Zhang. | |||||
* | | Issue #28194: Clean up some checks in dict implementation. | Serhiy Storchaka | 2016-09-26 | 1 | -10/+11 | |
| | | | | | | | | Patch by Xiang Zhang. | |||||
* | | merge | Raymond Hettinger | 2016-09-18 | 1 | -1/+1 | |
| | | ||||||
* | | Add _PyDict_CheckConsistency() | Victor Stinner | 2016-09-14 | 1 | -2/+88 | |
| | | | | | | | | | | | | | | | | Issue #28127: Add a function to check that a dictionary remains consistent after any change. By default, tables are not checked, only basic attributes. Define DEBUG_PYDICT (ex: gcc -D DEBUG_PYDICT) to also check dictionary "content". | |||||
* | | Fix _PyDict_Pop() on pending key | Victor Stinner | 2016-09-13 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | Issue #28120: Fix dict.pop() for splitted dictionary when trying to remove a "pending key" (Not yet inserted in split-table). Patch by Xiang Zhang. | |||||
* | | Issue #28040: Cleanup find_empty_slot() | Victor Stinner | 2016-09-13 | 1 | -6/+2 | |
| | | | | | | | | find_empty_slot() only supports combined dict | |||||
* | | Issue #28077: find_empty_slot() only supports combined dict | Victor Stinner | 2016-09-12 | 1 | -3/+7 | |
| | | ||||||
* | | Fixed compiler warnings in compact dict implementation on 32-bit platforms. | Serhiy Storchaka | 2016-09-10 | 1 | -11/+11 | |
| | | ||||||
* | | dictobject.c: explain why stringlib is used | Victor Stinner | 2016-09-09 | 1 | -1/+1 | |
| | | ||||||
* | | Fix SystemError in compact dict | Victor Stinner | 2016-09-09 | 1 | -19/+33 | |
| | | | | | | | | | | | | | | | | | | Issue #28040: Fix _PyDict_DelItem_KnownHash() and _PyDict_Pop(): convert splitted table to combined table to be able to delete the item. Write an unit test for the issue. Patch by INADA Naoki. | |||||
* | | Issue #28033: Fix typo in dictobject.c | Berker Peksag | 2016-09-09 | 1 | -1/+1 | |
| | | | | | | | | Patch by Wesley Emeneker. | |||||
* | | do not worry about 64-bit dict sizes on 32-bit platforms | Benjamin Peterson | 2016-09-08 | 1 | -3/+7 | |
| | | ||||||
* | | Add a new private version to the builtin dict type | Victor Stinner | 2016-09-08 | 1 | -0/+19 | |
| | | | | | | | | | | | | | | Issue #26058: Add a new private version to the builtin dict type, incremented at each dictionary creation and at each dictionary change. Implementation of the PEP 509. | |||||
* | | access dk_indices through a union | Benjamin Peterson | 2016-09-08 | 1 | -16/+12 | |
| | | ||||||
* | | Add documentation to the dict implementation | Victor Stinner | 2016-09-08 | 1 | -1/+1 | |
| | | | | | | | | Issue #27350. | |||||
* | | Reindeint DK_xxx macros | Victor Stinner | 2016-09-08 | 1 | -6/+11 | |
| | | | | | | | | Issue #27350. | |||||
* | | dk_get_index/dk_set_index uses a type indices variable | Victor Stinner | 2016-09-08 | 1 | -8/+16 | |
| | | | | | | | | Issue #27350. | |||||
* | | Split lookdict_unicode_nodummy() assertion to debug | Victor Stinner | 2016-09-08 | 1 | -1/+2 | |
| | | | | | | | | Issue #27350. | |||||
* | | Add assertions to dk_set_index() | Victor Stinner | 2016-09-08 | 1 | -4/+14 | |
| | | | | | | | | Issue #27350. | |||||
* | | link to canonical blogspot | Benjamin Peterson | 2016-09-08 | 1 | -1/+1 | |
| | | ||||||
* | | use native inline instead of Py_LOCAL_INLINE | Benjamin Peterson | 2016-09-08 | 1 | -3/+3 | |
| | | ||||||
* | | rearrange to make gcc happy | Benjamin Peterson | 2016-09-08 | 1 | -1/+3 | |
| | | ||||||
* | | Add Py_MEMBER_SIZE macro | Victor Stinner | 2016-09-08 | 1 | -8/+12 | |
| | | | | | | | | | | Issue #27350: use Py_MEMBER_SIZE() macro to get the size of PyDictKeyEntry.dk_indices, rather than hardcoding 8. |