Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reverting my previous commit. | Yury Selivanov | 2015-05-30 | 1 | -104/+41 |
| | | | | Something went horribly wrong when I was doing `hg rebase`. | ||||
* | 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 |
| | |||||
* | Minor beautification. Put updates and declarations in a more logical order. | Raymond Hettinger | 2013-09-21 | 1 | -2/+2 |
| | |||||
* | When LINEAR_PROBES=0, let the compiler remove the dead code on its own. | Raymond Hettinger | 2013-09-21 | 1 | -12/+0 |
| | |||||
* | Make the linear probe sequence clearer. | Raymond Hettinger | 2013-09-21 | 1 | -8/+4 |
| | |||||
* | Issue 18771: Make it possible to set the number linear probes at compile-time. | Raymond Hettinger | 2013-09-15 | 1 | -5/+19 |
| | |||||
* | Put the defines in the logical section and fix indentation. | Raymond Hettinger | 2013-09-08 | 1 | -8/+8 |
| | |||||
* | Minor code beautification. | Raymond Hettinger | 2013-09-08 | 1 | -6/+5 |
| | |||||
* | Improve code clarity by removing two unattractive macros. | Raymond Hettinger | 2013-09-08 | 1 | -16/+18 |
| | |||||
* | Remove the freelist scheme for setobjects. | Raymond Hettinger | 2013-09-08 | 1 | -47/+8 |
| | | | | | | | | | The setobject freelist was consuming memory but not providing much value. Even when a freelisted setobject was available, most of the setobject fields still needed to be initialized and the small table still required a memset(). This meant that the custom freelisting scheme for sets was providing almost no incremental benefit over the default Python freelist scheme used by _PyObject_Malloc() in Objects/obmalloc.c. | ||||
* | Small rearrangement to bring together the three functions for probing the ↵ | Raymond Hettinger | 2013-09-08 | 1 | -32/+39 |
| | | | | hash table. | ||||
* | Move the overview comment to the top of the file. | Raymond Hettinger | 2013-09-07 | 1 | -22/+20 |
| | |||||
* | Minor touchups. | Raymond Hettinger | 2013-09-02 | 1 | -4/+6 |
| | |||||
* | Factor-out the common code for setting a KeyError. | Raymond Hettinger | 2013-09-02 | 1 | -15/+1 |
| | |||||
* | Instead of XORed indicies, switch to a hybrid of linear probing and open ↵ | Raymond Hettinger | 2013-09-02 | 1 | -91/+68 |
| | | | | | | | | | | | | | | | addressing. Modern processors tend to make consecutive memory accesses cheaper than random probes into memory. Small sets can fit into L1 cache, so they get less benefit. But they do come out ahead because the consecutive probes don't probe the same key more than once and because the randomization step occurs less frequently (or not at all). For the open addressing step, putting the perturb shift before the index calculation gets the upper bits into play sooner. | ||||
* | Update copyright. | Raymond Hettinger | 2013-09-01 | 1 | -1/+1 |
| | |||||
* | Further reduce the cost of hash collisions by inspecting an additional ↵ | Raymond Hettinger | 2013-09-01 | 1 | -4/+39 |
| | | | | nearby entry. | ||||
* | Tighten-up the lookkey() logic and beautify the code a bit. | Raymond Hettinger | 2013-08-29 | 1 | -88/+43 |
| | | | | | | | Use less code by moving many of the steps from the initial lookup into the main search loop. Beautify the code but keep the overall logic unchanged. | ||||
* | Issue #18772: fix the gdb plugin after the set implementation changes | Antoine Pitrou | 2013-08-24 | 1 | -8/+2 |
| | |||||
* | Add the same dummy type that is used in dictionaries. | Raymond Hettinger | 2013-08-23 | 1 | -15/+49 |
| |