INADA Naoki added the comment: > I'm wondering why new dict implementation don't keep the array of items > compact? Original Raymond's implementation did not preserve the order after > deletions, but saved items in an array without gaps. This could simplify and > speed up an iteration (no need to check values for NULL, and needed to > iterate fewer elements), and could get rid of reallocations in often mutated > dicts. I haven't found clear explanation of this.
As far as I remember, I choose it because: 1. easy to explain, easy to discussion. "keep insertion order" is easier than "keep insertion order unless deletion". I want to start discussion based on most simple behavior. But my patch was reviewed by core developers in sprint, when right before 3.6b1. 2. I want to share same implementation with OrderedDict, like PyPy. 3. Make patch compact. If we compact dk_entries when deletion, we need another dk_indices compaction. Before sprint, my patch wasn't reviewed for months. I was afraid that my patch wasn't reviewed by 3.6b1. For now, "namespace dict keeps insertion order" is language spec. `del` shouldn't break insertion order. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29202> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com