Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:80184 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 37521 invoked from network); 5 Jan 2015 17:09:59 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Jan 2015 17:09:59 -0000 Authentication-Results: pb1.pair.com smtp.mail=xinchen.h@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=laruence@php.net; sender-id=unknown Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.215.52 as permitted sender) X-PHP-List-Original-Sender: xinchen.h@zend.com X-Host-Fingerprint: 209.85.215.52 mail-la0-f52.google.com Received: from [209.85.215.52] ([209.85.215.52:62784] helo=mail-la0-f52.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id FC/13-21693-665CAA45 for ; Mon, 05 Jan 2015 12:09:58 -0500 Received: by mail-la0-f52.google.com with SMTP id hs14so18379061lab.39 for ; Mon, 05 Jan 2015 09:09:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=28EEMTq3UVr8qgpx2YaS+/dsm5wlI93MpSB0uGnjKKg=; b=Sp7M2VnYnWd/uBp5UAqTv6HciJcMPVtY28rFcINAV5AGdqYpnqU2/0jEvHVSuCd+pL 9CZGiloGc3otCyTEdIck7qlh+A2biWwc75HcMITYeCoMuVcxsdBA81+mI0XE6sriiz8M foTPL3n7EaCIe1diaI8bC5yW6/WQJY4Eeumn2Pygaw+Ly6EJd/IhdHTNLCQAhjwW5VCw Xn1cG7V1XH3RymhOXUb7KtVaHO1Ry2OZPfnQbjP+ymktdBA2LN8zE8gd/N7pGLsCo/H9 VHg3oJbg1NSeH31vr9Y2qiypiqJ8Ap65XZwH3JUZBIHhg4sypcR175tW5dl3k/8rcxL/ +kDQ== X-Gm-Message-State: ALoCoQmAvKHgnzpEbDnmlv8ZyJMQzYoR0OrgocXrjy+FjjPQyeOIfbUf3KDcg2tj4VBT8q+PiFyVpblvDqtqugG9AMpU3RkWsv974khpZotlqHMU90TWN+Ky7cufuoHiEo5BZJqLj33f9zbLVWz6eW0bTJsLvndXjA== X-Received: by 10.112.222.135 with SMTP id qm7mr93025050lbc.19.1420477795717; Mon, 05 Jan 2015 09:09:55 -0800 (PST) Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com. [209.85.217.181]) by mx.google.com with ESMTPSA id zo3sm14792414lbb.10.2015.01.05.09.09.54 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 05 Jan 2015 09:09:54 -0800 (PST) Received: by mail-lb0-f181.google.com with SMTP id l4so17695041lbv.40 for ; Mon, 05 Jan 2015 09:09:53 -0800 (PST) X-Received: by 10.152.5.38 with SMTP id p6mr93942334lap.91.1420477793783; Mon, 05 Jan 2015 09:09:53 -0800 (PST) MIME-Version: 1.0 Received: by 10.114.64.176 with HTTP; Mon, 5 Jan 2015 09:09:33 -0800 (PST) In-Reply-To: References: Date: Tue, 6 Jan 2015 01:09:33 +0800 Message-ID: To: PHP Internals , Dmitry Stogov , Nikita Popov Content-Type: text/plain; charset=UTF-8 Subject: Re: Faster zend sorting implementation From: laruence@php.net (Xinchen Hui) On Tue, Jan 6, 2015 at 1:08 AM, Xinchen Hui 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" > } > > 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/