{"push_id":774534888,"size":13,"distinct_size":13,"ref":"refs/heads/work","head":"57af03a3861dd792f6c65cbff52376d050ee0d0a","before":"6a1bacecb2cc4661e297dbd53c99a4e8996d4c7d","commits":[{"sha":"3de82151f94f8e83e4365c82aaab03419d9f4c5c","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: Array.sort: very basic quicksort implementation\n\nThe speedup is dramatic, however the sort is very vulnerable both to\nstack overflow and worse case behavior.","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/3de82151f94f8e83e4365c82aaab03419d9f4c5c"},{"sha":"b10e8e046233f729786932b3c0e1e831af0b7eb3","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: Array.sort: protect against stack overlow and use insertion sort\n\n- perform tail recursion for the larger partition\n- fall back to insertion sort for 8 and fewer elements","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/b10e8e046233f729786932b3c0e1e831af0b7eb3"},{"sha":"5a91ab89a14d7f7aa976367de4f0728b6c33890b","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"tests/sortbench5.js: kills the performance of the default quicksort","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/5a91ab89a14d7f7aa976367de4f0728b6c33890b"},{"sha":"8df85bc05d2fe85f54d264239c4699d52a2c2d31","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: Array.sort: add median-of-three pivot selection","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/8df85bc05d2fe85f54d264239c4699d52a2c2d31"},{"sha":"5bb55715e6c9af3c3ba3501bc97fbf67406cb433","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"tests: add a quick sort killer and median-of-3 killer\n\nUnfortiunately there is an input sequence that defeats our quicksort\nimplementation. Added in tests/sortbench6.hs. tests/quicksort-killer.js\nis the tool to generate the sequence. See:\nhttp://www.cs.dartmouth.edu/~doug/mdmspe.pdf","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/5bb55715e6c9af3c3ba3501bc97fbf67406cb433"},{"sha":"ba66cb696734c1658d95c38118752a541668ecbe","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: implement and use heapSort()","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/ba66cb696734c1658d95c38118752a541668ecbe"},{"sha":"3784adbe1244da0c83e3b7cba890c8d770d3a90a","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: Array.sort: use \"intro sort\"\n\nIt falls back to heap sort if the recursion goes too deep. \"Cures\" our\n\"median-of-three killer\" test case.","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/3784adbe1244da0c83e3b7cba890c8d770d3a90a"},{"sha":"9963d5256dac847900621a3c88c7ab3c4ecac4f8","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime[sort.cpp]: adjust the insertion sort threshold to 6 (form 8)\n\nA very small (but measurable) performance improvement.","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/9963d5256dac847900621a3c88c7ab3c4ecac4f8"},{"sha":"3124e7aa59385a2aea0cfcae30469539b5c6ed7e","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: Array.sort: copy to a temporary array if we can't sort efficiently","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/3124e7aa59385a2aea0cfcae30469539b5c6ed7e"},{"sha":"32c85c17a29e358dcf569ae8bbed82a63364f59f","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: import dtoa+g_fmt from http://www.netlib.org/fp/","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/32c85c17a29e358dcf569ae8bbed82a63364f59f"},{"sha":"d1cbfa39c7421153107d995041b939cc8ee65113","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: use David Gay's g_fmt() for number toString()","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/d1cbfa39c7421153107d995041b939cc8ee65113"},{"sha":"1fcd127daced2e3e456a1622b0b7675cd6db26c4","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"runtime: implement Number.prototype.toString()","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/1fcd127daced2e3e456a1622b0b7675cd6db26c4"},{"sha":"57af03a3861dd792f6c65cbff52376d050ee0d0a","author":{"email":"374349a7e2be00b175c9af94511a6f041328794b@gmail.com","name":"Tzvetan Mikov"},"message":"hir.ts: correct output integer values >= 2**31,2**32","distinct":true,"url":"https://api.github.com/repos/tmikov/jscomp/commits/57af03a3861dd792f6c65cbff52376d050ee0d0a"}]}