Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | | Issue 24581: Revert c9782a9ac031 pending a stronger test for mutation during ↵ | Raymond Hettinger | 2015-07-07 | 1 | -13/+22 | |
| | | | | | | | | | | | | | | | | iteration. | |||||
* | | | | Minor bit of factoring-out common code. | Raymond Hettinger | 2015-07-07 | 1 | -18/+11 | |
| | | | | ||||||
* | | | | Tighten-up code in the set iterator to use an entry pointer rather than ↵ | Raymond Hettinger | 2015-07-07 | 1 | -22/+13 | |
| | | | | | | | | | | | | | | | | indexing. | |||||
* | | | | Tighten-up code in set_next() to use an entry pointer rather than indexing. | Raymond Hettinger | 2015-07-06 | 1 | -5/+7 | |
| | | | | ||||||
* | | | | Bring related functions add/contains/discard together in the code. | Raymond Hettinger | 2015-07-05 | 1 | -40/+34 | |
| | | | | ||||||
* | | | | Change add/contains/discard calls to pass the key and hash instead of an ↵ | Raymond Hettinger | 2015-07-05 | 1 | -52/+42 | |
| | | | | | | | | | | | | | | | | entry struct. | |||||
* | | | | Clean-up call patterns for add/contains/discard to better match the caller's ↵ | Raymond Hettinger | 2015-07-05 | 1 | -36/+33 | |
| | | | | | | | | | | | | | | | | needs. | |||||
* | | | | Make the unicode equality test an external function rather than in-lining it. | Raymond Hettinger | 2015-07-04 | 1 | -5/+4 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The real benefit of the unicode specialized function comes from bypassing the overhead of PyObject_RichCompareBool() and not from being in-lined (especially since there was almost no shared data between the caller and callee). Also, the in-lining was having a negative effect on code generation for the callee. | |||||
* | | | | Make sure the dummy percentage calculation won't overflow. | Raymond Hettinger | 2015-07-04 | 1 | -2/+2 | |
| | | | | ||||||
* | | | | Minor cleanup. | Raymond Hettinger | 2015-07-04 | 1 | -2/+2 | |
| | | | | ||||||
* | | | | Minor nit: Make the style of checking error return values more consistent. | Raymond Hettinger | 2015-07-04 | 1 | -16/+16 | |
| | | | | ||||||
* | | | | Minor factoring: move redundant resize scaling logic into the resize function. | Raymond Hettinger | 2015-07-04 | 1 | -4/+5 | |
| | | | | ||||||
* | | | | Call set_lookkey() directly to avoid unnecessary memory spills and reloads. | Raymond Hettinger | 2015-07-04 | 1 | -4/+5 | |
| | | | | ||||||
* | | | | Move insertion resize logic into set_insert_key(). | Raymond Hettinger | 2015-07-04 | 1 | -45/+24 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplifies the code a little bit and does the resize check only when a new key is added (giving a small speed up in the case where the key already exists). Fixes possible bug in set_merge() where the set_insert_key() call relies on a big resize at the start to make enough room for the keys but is vulnerable to a comparision callback that could cause the table to shrink in the middle of the merge. Also, changed the resize threshold from two-thirds of the mask+1 to just two-thirds. The plus one offset gave no real benefit (afterall, the two-thirds mark is just a heuristic and isn't a precise cut-off). | |||||
* | | | | Minor refactoring. Move reference count logic into function that adds entry. | Raymond Hettinger | 2015-06-28 | 1 | -14/+4 | |
| | | | | ||||||
* | | | | Minor tweeak to tighten the inner-loop. | Raymond Hettinger | 2015-06-26 | 1 | -1/+1 | |
| | | | | ||||||
* | | | | Minor code cleanup. | Raymond Hettinger | 2015-06-24 | 1 | -3/+5 | |
| | | | | ||||||
* | | | | Harmonize the bottom of the outer loop with its entry point | Raymond Hettinger | 2015-06-21 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | | | | | | | giving a small simplification. Timings show that hash pre-check seems only benefit the inner-loop (the linear probes). | |||||
* | | | | Restore quick exit (no freeslot check) for common case (found null on first ↵ | Raymond Hettinger | 2015-06-21 | 1 | -1/+11 | |
|/ / / | | | | | | | | | | probe). | |||||
* | | | Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(), | Serhiy Storchaka | 2015-05-30 | 1 | -4/+13 | |
|\ \ \ | | | | | | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly. | |||||
| * \ \ | Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(), | Serhiy Storchaka | 2015-05-30 | 1 | -4/+13 | |
| |\ \ \ | | |/ / | | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly. | |||||
| | * | | Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(), | Serhiy Storchaka | 2015-05-30 | 1 | -4/+13 | |
| | | | | | | | | | | | | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly. | |||||
* | | | | Issue #23359: Specialize set_lookkey intoa lookup function and an insert ↵ | Raymond Hettinger | 2015-05-27 | 1 | -41/+104 | |
|/ / / | | | | | | | | | | function. | |||||
* | | | Minor stylistic and consistency cleanup. | Raymond Hettinger | 2015-05-13 | 1 | -19/+19 | |
| | | | ||||||
* | | | Issue #23290: Optimize set_merge() for cases where the target is empty. | Raymond Hettinger | 2015-05-13 | 1 | -10/+40 | |
| | | | | | | | | | | | | (Contributed by Serhiy Storchaka.) | |||||
* | | | Mirco-optimizations to reduce register spills and reloads observed on CLANG ↵ | Raymond Hettinger | 2015-02-09 | 1 | -2/+4 | |
| | | | | | | | | | | | | and GCC. | |||||
* | | | Minor code clean up. | Raymond Hettinger | 2015-02-04 | 1 | -2/+2 | |
| | | | ||||||
* | | | Issue 23359: Reduce size of code in set_lookkey. Only do linear probes when ↵ | Raymond Hettinger | 2015-02-03 | 1 | -33/+0 | |
| | | | | | | | | | | | | | | | | | | there is no wrap-around. Nice simplification contributed by Serhiy Storchaka :-) | |||||
* | | | Issue 23359: Tighten inner search loop for sets (don't and-mask every entry ↵ | Raymond Hettinger | 2015-02-02 | 1 | -24/+53 | |
| | | | | | | | | | | | | lookup). | |||||
* | | | Keep the definition of i consistent between set_lookkey() and ↵ | Raymond Hettinger | 2015-01-31 | 1 | -4/+4 | |
| | | | | | | | | | | | | set_insert_clean(). | |||||
* | | | Minor tweak to improve code clarity. | Raymond Hettinger | 2015-01-31 | 1 | -1/+1 | |
| | | | ||||||
* | | | Fix typo in a comment. | Raymond Hettinger | 2015-01-31 | 1 | -1/+1 | |
| | | | ||||||
* | | | Revert unintended part of the commit (the key==dummy test wasn't supposed to ↵ | Raymond Hettinger | 2015-01-27 | 1 | -6/+2 | |
| | | | | | | | | | | | | change). | |||||
* | | | Remove unneeded dummy test from the set search loop (when the hashes match ↵ | Raymond Hettinger | 2015-01-27 | 1 | -4/+11 | |
| | | | | | | | | | | | | we know the key is not a dummy). | |||||
* | | | Issue #23269: Tighten search_loop in set_insert_clean() | Raymond Hettinger | 2015-01-27 | 1 | -6/+17 | |
| | | | | | | | | | | | | | | | Instead of masking and shifting every loopup, move the wrap-around test outside of the inner-loop. | |||||
* | | | Set the hash values of dummy entries to -1. Improves quality of entry->hash ↵ | Raymond Hettinger | 2015-01-26 | 1 | -0/+2 | |
| | | | | | | | | | | | | == hash tests. | |||||
* | | | Update out-of-date comments. | Raymond Hettinger | 2015-01-26 | 1 | -5/+3 | |
| | | | ||||||
* | | | Issue #23119: Simplify setobject by inlining the special case for unicode ↵ | Raymond Hettinger | 2015-01-26 | 1 | -70/+11 | |
| | | | | | | | | | | | | equality testing. | |||||
* | | | A hybrid of and-masking and a conditional-set-to-zero produce even faster ↵ | Raymond Hettinger | 2015-01-19 | 1 | -1/+2 | |
| | | | | | | | | | | | | search loop. | |||||
* | | | Update copyright for 2015 updates. | Raymond Hettinger | 2015-01-19 | 1 | -1/+1 | |
| | | | ||||||
* | | | Clean-up, simplify, and slightly speed-up bounds logic in set_pop(). | Raymond Hettinger | 2015-01-19 | 1 | -10/+3 | |
| | | | | | | | | | | | | | | | | | | | | | Elsewhere in the setobject.c code we do a bitwise-and with the mask instead of using a conditional to reset to zero on wrap-around. Using that same technique here use gives cleaner, faster, and more consistent code. | |||||
* | | | Issue 23261: Clean-up the hack to store the set.pop() search finger in a ↵ | Raymond Hettinger | 2015-01-18 | 1 | -21/+12 | |
| | | | | | | | | | | | | hash field instead of the setobject. | |||||
* | | | Small clean-up. Factor-out common code for add, contains, and discard ↵ | Raymond Hettinger | 2014-12-27 | 1 | -43/+27 | |
| | | | | | | | | | | | | function pairs. | |||||
* | | | Issue #23107: Tighten-up loops in setobject.c | Raymond Hettinger | 2014-12-27 | 1 | -55/+46 | |
| | | | | | | | | | | | | | | | | | | * Move the test for an exact key match to after a hash match * Use "used" as a loop counter instead of "fill" * Minor improvements to variable names and code consistency | |||||
* | | | Issue #22156: Fix "comparison between signed and unsigned integers" compiler | Victor Stinner | 2014-08-15 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | | | | | warnings in the Objects/ subdirectory. PyType_FromSpecWithBases() and PyType_FromSpec() now reject explicitly negative slot identifiers. | |||||
* | | | Add development comments to setobject.c | Raymond Hettinger | 2014-05-18 | 1 | -8/+15 | |
|/ / | ||||||
* | | Fix typo in comment. | Eric V. Smith | 2014-01-14 | 1 | -1/+1 | |
| | | ||||||
* | | Add comments to frozenset_hash(). | Raymond Hettinger | 2014-01-05 | 1 | -1/+14 | |
| | | | | | | | | Also, provide a minor hint to the compiler on how to group the xors. | |||||
* | | Minor code clean-up. Keep the C-API all in one section. | Raymond Hettinger | 2013-12-15 | 1 | -3/+3 | |
| | | ||||||
* | | Note that LINEAR_PROBES can be set to zero. | Raymond Hettinger | 2013-09-22 | 1 | -1/+1 | |
| | |