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 <larue...@gmail.com> wrote:
> Hey:
>
>> On Jan 6, 2015, at 1:27 AM, Julien Pauli <jpa...@php.net> wrote:
>>
>>> On Mon, Jan 5, 2015 at 6:09 PM, Xinchen Hui <larue...@php.net> wrote:
>>> 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..
>>> 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

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to