Re: Re: Faster zend sorting implementation
| From: | Julien Pauli | Date: | Mon, 05 Jan 2015 17:27:42 +0000 |
| Subject: | Re: Re: Faster zend sorting implementation | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-80188@lists.php.net to get a copy of this message | ||
On Mon, Jan 5, 2015 at 6:09 PM, Xinchen Hui <laruence@php.net> wrote:
> On Tue, Jan 6, 2015 at 1:08 AM, Xinchen Hui <laruence@php.net> wrote:
> > Hey:
> >
> > I was working on zend_qsort improvement. but I got a problem need
> > to be disscussed with you fist..
> first
> >
> > 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:
> does not
> >
> > array(2) {
> > [0]=>
> > string(1) "o"
> > [1]=>
> > string(1) "O"
>
> }
>
Hum, I dont think such a BC is acceptable.
There are tons of userland code out there relying on alpha case sorting
that could get impacted....
IMO :-)
Q: why extract the swap function from the qsort algo ? Is there an interest
of replacing it at runtime ?
Julien.P