{"push_id":659143174,"size":67,"distinct_size":0,"ref":"refs/heads/master","head":"6b6a997fa3795832ef4d88c26023e4e2ffdab68d","before":"4c573b638417fad4141463ee47edd28344f602fe","commits":[{"sha":"f96672e1f3da611696f5f5df60587fe87916f25e","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"create separate benchmark for just Hash::Ordered","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/f96672e1f3da611696f5f5df60587fe87916f25e"},{"sha":"5a222940b0dad27e9630e114422eea70ca078e51","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"replace List::Util::first with loop\n\nIt turns out that because List::Util has to call the block over and\nover, the function call overhead is worse than just incrementing an\nindex until the key is found.\n\nHat-tip to Mario Roy for this discovery.","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/5a222940b0dad27e9630e114422eea70ca078e51"},{"sha":"c1c7699299a793fc1814b8e1b80b7d573ba5f4df","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"add Mario Roy to contributors","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/c1c7699299a793fc1814b8e1b80b7d573ba5f4df"},{"sha":"e883617419a00e9b4d5e5650ae1702a3c9910e3c","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"update to latest @DAGOLDEN and repo meta files","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/e883617419a00e9b4d5e5650ae1702a3c9910e3c"},{"sha":"fc6eaea983f51f99fc9e91192a89c6a4450df3d5","author":{"email":"ad7ae24c038e6dc272acc84d198d385066728329@gmail.com","name":"Benct Philip Jonsson"},"message":"Added clear method with test.","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/fc6eaea983f51f99fc9e91192a89c6a4450df3d5"},{"sha":"ee0075c79329a69313d4d8cc231cc9784be392f6","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"updated Changes","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/ee0075c79329a69313d4d8cc231cc9784be392f6"},{"sha":"34074012377a02b0c4c2c5506c72acc94a9c8455","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"After release: bump $VERSION and timestamp Changes","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/34074012377a02b0c4c2c5506c72acc94a9c8455"},{"sha":"90e0820bcdf96732dced522acdc3c981269ec496","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"update Changes","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/90e0820bcdf96732dced522acdc3c981269ec496"},{"sha":"4344fd4e264bcf5c366093838a21267c55d3a488","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"After release: bump $VERSION and timestamp Changes","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/4344fd4e264bcf5c366093838a21267c55d3a488"},{"sha":"ed1b6f4dfe214a347d6e0cbb7bed17807a55932f","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"optimize deletion with indexed tombstones\n\nFor hashes over a threshold size, deletion will trigger indexing of\nthe position of ordered keys.  On deletion, keys will be tombstoned.\nWhen the number of tombstones exceeds half the size of the keys array\n(i.e. more tombstones than valid keys), the tombstones are garbage\ncollected.  Tombstones at the start and end of the keys array are always\nremoved.\n\nTo avoid re-indexing, the index uses an offset to account for elements\nadded or removed from the start of the keys list.\n\nEven without much threshold tuning, this *significantly* speeds up\ndeletion for large hashes, while incurring minimal overhead for hashes\nthat never delete (and thus never add indexing overhead).","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/ed1b6f4dfe214a347d6e0cbb7bed17807a55932f"},{"sha":"88be9df04a940f635357eb305bc476217c16f1b3","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"re-enable 5.10.1+ stringification","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/88be9df04a940f635357eb305bc476217c16f1b3"},{"sha":"e5116e8f38f1e060e853fae33f8f28de1434b366","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"update Makefile.PL","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/e5116e8f38f1e060e853fae33f8f28de1434b366"},{"sha":"402025e66c847f2b2053602fac01d5d5c5b7aa4a","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"optimize shift and pop\n\nIf there is no index, there are no tombstones to worry about, so\nwe can shift/pop the underlying keys array directly.","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/402025e66c847f2b2053602fac01d5d5c5b7aa4a"},{"sha":"b472cf03031ff25812330fdc5013c3aabfefc724","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"remove unnecessary termination condition","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/b472cf03031ff25812330fdc5013c3aabfefc724"},{"sha":"631db8d3810291253d14fcfb2280a48d32157d56","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"add test coverage for cloning large hashes with tombstones","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/631db8d3810291253d14fcfb2280a48d32157d56"},{"sha":"af50e50050201e0b8b53a8da8a3e2ff62df82ee7","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"micro-optimize","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/af50e50050201e0b8b53a8da8a3e2ff62df82ee7"},{"sha":"dfe13d4726fda427a8d719236a0740a4cc1ae042","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"split overloading cleanly into boolean, stringify and numify","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/dfe13d4726fda427a8d719236a0740a4cc1ae042"},{"sha":"099ac1aff9d9069073fd6effbf68e6d005804438","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"optimize keys in scalar context to return count","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/099ac1aff9d9069073fd6effbf68e6d005804438"},{"sha":"fd815c8912735c6bbbe36ab1a46b96ba4da93f89","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"improve test coverage of list methods","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/fd815c8912735c6bbbe36ab1a46b96ba4da93f89"},{"sha":"0ca377b763050261274fb1410a3529e6868590c8","author":{"email":"096ec09ce670984e7b6ea0057c1f66bf3c59e583@cpan.org","name":"David Golden"},"message":"mark some branches as uncoverable","distinct":false,"url":"https://api.github.com/repos/bpj/Hash-Ordered/commits/0ca377b763050261274fb1410a3529e6868590c8"}]}