Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108868 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 81612 invoked from network); 5 Mar 2020 15:51:37 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 5 Mar 2020 15:51:37 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CBFEF180089; Thu, 5 Mar 2020 06:11:14 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS; Thu, 5 Mar 2020 06:11:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1583417471; bh=aiHAaRtSejNWfQWeI1uOFcUzwUnxgMDt4706W2CDyyY=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=fWHGCaQ44y7Ye7uQMdl8xKpwg99q0GORk7Yz9BxCwB5aQoJkysOsMbLqCWlUBn1yc DbYe0hJcgA668LjSKeQRNtvXtzpdcPhUmQps9+4i4lGWSBpTg/I0lEtGHxEd4kEY/N Hxv6sCETM1t73vAQyxm62Q9mdbiuJno03bST4w84= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([84.179.232.93]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MWigq-1iqAad3M9A-00X8BN; Thu, 05 Mar 2020 15:11:11 +0100 To: Nikita Popov Cc: Sara Golemon , PHP internals References: Message-ID: <2a923cab-fb69-7456-f584-8d09ec2f8005@gmx.de> Date: Thu, 5 Mar 2020 15:11:11 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:yYxOWoY2WSA2/PJP5C2UuB05lrTWZtrpDlzgV85riCulCzSnUVh 5Zy+bN4wfR0+cjNHV1vfK3QLEPc+ez62lgw+b6Pmlq6OdezvXchxbY5EPhMwCpjM+G0UYAO /2AeD8BZgo26ol80147jImFzA13RqpjVZ45tAy5E0UV7phD1atDdG+xILzhPzDnW0bzkT2Z Lqi9v1M6INYSGpe90hzHw== X-UI-Out-Filterresults: notjunk:1;V03:K0:aS25AJz+fzU=:02k5VXiw62/eRoSzVnl88b Djg5c8OTAzKPAolxhVcpDQ8TMiM2/uu94ntwOmvrbDs9H/LO41o+ba91Zo1NP2rXlddXNBtPZ GQizgQ6proUZlTi0fHJOAF2dRX7Ur9TdIRBhBZrSY4b5xLLvawFb94Q9P2W5OO1gB1y6ntGfL L6x+asx/Y5QBA2XPmq/h4xhQOo9CvJT4Mx3OB/IIEedset9KsexZRgcz6ycghYFkVHXhB5Bwx BUhb6zybk7r5yePy/Tf+od23m75KXRAOYL3RDQn/YrsXo6j+RDSgVZmM5302haKwN2Y1x43H9 g6F7mh0CgRcIrXfoxrSOzOMhO90PL3mKNgrnjbkg6Dx8T5GtivuQQcKtITXMy+CNH2G3jhBCF 90zkp1z4W7xdQOQbqUQRRIulRPGyHiuDe6L+bsFa1Kypr9DqdpfY/4Sy/6Y3Pt6LVNeY3NuIu tmD0dLstfCsEATTVE2lVC/TRD07B86r/oD/rtC01AFF7/G4XrFer2TBtpBNK1b6MnMgyzdSK8 1ugASdo1/Bbw7FvWfKdMwiiadirLDXca5B+ciJeoHjjGkK6hWg/yXIACJGwfl2LEZXmXZinrp 9W6U+Jp1T+vFsbqCl1b2EjJsxMvV+lxsRknfrBuiNpcK6RfWZqiV/LIl+TnyycutV71n1RhAm DYs6SOGgU6n1Ip7DWHMMNl9z9fCuKZwYuK5yt1P9VM4qAch+o6hbVWA71kvrSOu9pxFjMZcKT W3vRzZ3Qn6LWyy863XFkuHrTirpvL0hPYjOmksoSeyhucUw146BCXJZxcEXr4JPAJMmiGOrLP kFhg9tINeZNC3/lQ9M6wDo49DvhaTLAIAK2Z0Gpt9lVeoEcN0LzNGJF0/npgcBypPVAP0jY3k weu+t+wlKBTNNKOyX60+jczC2fs5TAbbocBWuxWg9Rmu8L3UrAV/Eq3VVirHvLmQ4jfiicHPW AtRihXGqY04GoG3rrP/y/hMSPOYwQgM8s89pfUDjOQqYf09hInhE1ArXqrOEoxQkRsu0C+m3D xvkqalSo0S2MHsJL13SW3U5+dCxU5qU3C+0x1E+HbhJm5q01Jc8tbqEey3uJC4QuAH2WHzhT+ 4hqM7zTAMRAkYZON3mKk7nQibmYfRXEouaXiTLqug6r7QrWbyTKRprjg9xMJuk34DRo3lqy27 mMKErpLRnIz35I+g7nQYxF4xo90SaidTd8GJlORENEN1WFiO/6S+Z/0DqswG+O/oLVXc7VSFr g3jsIuZIo3GdIA2nN Subject: Re: [PHP-DEV] Make sorting stable From: cmbecker69@gmx.de ("Christoph M. Becker") On 05.03.2020 at 13:05, Nikita Popov wrote: >> Given that we have internal classes which deliberately have such >> comparison behavior (i.e. returning 0 or 1, to signal that there is no >> order defined), e.g. Closures[1], I tend to prefer raising a warning >> instead of trying to recover. >> >> [1] >> > > This is a different case. The problem with my example is that it reports > equality where none exists, which is an issue if you try to change the > ordering of equal elements. Your case (which is indeed somewhat common i= n > extension code) always returns "greater-than" for non-equal elements. Th= e > end result here is that the sort will not have any defined order regardl= ess > of how we perform it. We can't really do anything about such cases. Oops, of course. Thanks for clarifying! :) > I expect that a proposal for userland compare and equality overloading m= ay > want to make the "not ordered" case more explicit, in which case we coul= d > throw a warning when such comparisons are performed as part of sorting. ACK. =2D- Christoph M. Becker