I don't see big problems committing this. In some cases new sort() functions may provide different results, but they are still valid, because the order of "equal" elements after sort is not defined.
Thanks. Dmitry. On Wed, Jan 14, 2015 at 12:59 PM, Xinchen Hui <larue...@php.net> wrote: > Hey: > > I made a PR here: https://github.com/php/php-src/pull/999 for > reviewing > > in benchmark this can brings more than 30% performance gain in > array_sort etc functions. > > tests fails are related to non-stable vs stable sorting difference. > > anyway, I feel it's better to ask you to do a final review, what > do you think? > > is there any objections to merge this? > > thanks > > On Tue, Jan 6, 2015 at 1:08 AM, Xinchen Hui <larue...@php.net> wrote: > > Hey: > > > > I was working on zend_qsort improvement. but I got a problem need > > to be disscussed with you fist.. > > > > as we know, previously zend_qsort is not a stable sorting algo. > > > > my draft patch (which already get 0.1% IRs reduce in wordpress) > > is kindof a stable sorting algo, you can find it here > > (https://github.com/laruence/php-src/compare/zend_sort) > > > > so, there is a bc break, like for : > > > > $array = array("o", "O"); > > sort($array, SORT_STRING|SORT_FLAG_CASE); > > > > var_dump($array); > > > > previously implementation does the swap: > > > > array(2) { > > [0]=> > > string(1) "O" > > [1]=> > > string(1) "o" > > } > > > > but new implementation doesn't not: > > > > array(2) { > > [0]=> > > string(1) "o" > > [1]=> > > string(1) "O" > > } > > > > do you think such BC break is acceptable? or I still need a RFC? :< > > > > thanks > > -- > > Xinchen Hui > > @Laruence > > http://www.laruence.com/ > > > > -- > Xinchen Hui > @Laruence > http://www.laruence.com/ >