Re: Re: Faster zend sorting implementation

From: Date: Mon, 05 Jan 2015 17:59:46 +0000
Subject: Re: Re: Faster zend sorting implementation
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-80190@lists.php.net to get a copy of this message
Sounds more like a bugfix to me and def'ly an acceptable BC break in either case. The behavior isn't specified and if anything I would assume there _wouldn't_ be a swap with SORT_FLAG_CASE on. Interesting though that many sorting examples (across languages) sidestep this clearly common case. -- S. On Mon, Jan 5, 2015 at 12:36 PM, Xinchen Hui <laruence@gmail.com> wrote: > Hey: > >> On Jan 6, 2015, at 1:27 AM, Julien Pauli <jpauli@php.net> wrote: >> >>> 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. >> > I am not sure if you get the problem? > > "O" and "o" are equal is that script > > The flags means using case-insensitive string sorting mean > > Thanks >> 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

« previous php.internals (#80190) next »