From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.0 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI, SPF_HELO_PASS,SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id D9AFD1F910 for ; Tue, 15 Nov 2022 00:48:37 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.b="DdigBI46"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 75B84120EA6; Tue, 15 Nov 2022 09:48:35 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 06663120EA6 for ; Tue, 15 Nov 2022 09:48:32 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=s1; bh=/X86HLAW/nqZWCMeM24KMfOiBFI5L2p8aVpYcPCiDig=; b=DdigBI46Y+fUxFQmjfrMsTto+OdfPxsaHprCoZTzkq/h6Celg4MU/G9ms81p2OAKhdpa SJhmOUEzp0WIYsgOiSVvu2SC2cRnO0X5LorKxe2zRs6TgdboB3Ae6GxtmmsdUsNExK56mY g1pojJ9WZFpmAcubWpIqA9k8jAQ8XFgm6d5BrEFq0bSn77cPwpZKyqZlWwjTk3+6FDNyFm LIB0Odl5Vjx7fvQClx0Gbn4dAXfBjirEp5uKx+v+saEpU7ZlE1TzIrjdaL+tw1THuPDnqL dSWkaq6Dsh6r5HRHD5M57OIBbYjCVN2qHfujEyHIo+1VABNl+1nt5u1LHHzayzAg== Received: by filterdrecv-6df5cf8469-9kvmn with SMTP id filterdrecv-6df5cf8469-9kvmn-1-6372E1DE-24 2022-11-15 00:48:30.723600841 +0000 UTC m=+363701.581002622 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-2 (SG) with ESMTP id 8kgaGDI9RbKVbAOPHwpVuw for ; Tue, 15 Nov 2022 00:48:30.500 +0000 (UTC) Date: Tue, 15 Nov 2022 00:48:30 +0000 (UTC) From: "nobu (Nobuyoshi Nakada)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 19129 X-Redmine-Issue-Author: e8c X-Redmine-Sender: nobu X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 87209 X-SG-EID: =?us-ascii?Q?rA5eEsXeCy+asKowYcicHxhOSUaOWYD+XnPnBc7LFC8Re9tNQ4Sv5BA=2FOz+glG?= =?us-ascii?Q?+50K4steq4vSjkkyeSAt=2FQpZK6mQgZdK22n=2FlxG?= =?us-ascii?Q?4Fre1C3rotwad5njG1q6qAnjYom+rnjaLtJP6aO?= =?us-ascii?Q?H6YXKLgkl73nbxbX=2F271+MnG9PWI5SYHygUhzCu?= =?us-ascii?Q?bVfZMXvJV8YnHjLSG6lpxwqWfhUdmrL4fmU7Ldv?= =?us-ascii?Q?ZavLg1+pv0aSY1L+depzB8sBd65kdNsFDagAyeV?= =?us-ascii?Q?0sn66fxU9mv=2FDzy5QOIkw=3D=3D?= To: ruby-core@neon.ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 110757 Subject: [ruby-core:110757] [Ruby master Feature#19129] Radix_Sort for arrays of fixnums (implemented) X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE5MTI5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku CgoKVGhhdCBpZGVhIGlzIGludGVyZXN0aW5nLgoKSSBoYXZlIGEgZmV3IHF1ZXN0aW9ucy4KCiog SG93IGlzIExpbnV4IGNvbmNlcm5lZD8KKiBXaGF0IGFyZSB0b25zIG9mIG1hZ2ljIG51bWJlcnM/ CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUgIzE5MTI5 OiBSYWRpeF9Tb3J0IGZvciBhcnJheXMgb2YgZml4bnVtcyAoaW1wbGVtZW50ZWQpCmh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTEyOSNjaGFuZ2UtMTAwMDk1CgoqIEF1dGhvcjog ZThjIChWaWt0b3IgUmV6bm92KQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDb2RlIGlzIGFscmVhZHkgd3Jp dHRlbiwgYWxsIGluIG9uZSBsaXN0aW5nIChnaXQgZGlmZiwgdGVzdCBmaWxlLCBhbmQgcmVzdWx0 cyBvZiB0ZXN0cyk6CgpgYGAKJCBjYXQgLi4vcnVieV9zb3J0L3Rlc3QucmIgCiMhL2Jpbi9ydWJ5 CgpzcmFuZCAwCnIgPSBBcnJheS5uZXcgMWU3LnRvX2kgZG8gcmFuZCAtMiAqKiA0MC4uLjIgKiog NDAgZW5kCgpwdXRzCgo1LnRpbWVzIGRvCgogICAgYSA9IHIuY2xvbmUKICAgIHQgPSBUaW1lLm5v dwogICAgYS5zb3J0IQogICAgcHV0cyAiXHRSdW4gIyN7XzEgKyAxfTogJS4zZiBzIiAlIFtUaW1l Lm5vdyAtIHRdCiAgICAKZW5kCgpwdXRzOyBleGl0IHVubGVzcyAkKlswXQoKcCAoci5zb3J0IHsg XzEgPD0+IF8yIH0pID09IChyLnNvcnQpCgpwdXRzCgokIC4vbWluaXJ1YnkgLi4vcnVieV9zb3J0 L3Rlc3QucmIgICMgcXNvcnQKCglSdW4gIzE6IDIuMjA5IHMKCVJ1biAjMjogMi4yNTkgcwoJUnVu ICMzOiAyLjIyOSBzCglSdW4gIzQ6IDIuMTk2IHMKCVJ1biAjNTogMi4yMjYgcwoKJCAuL21pbmly dWJ5IC4uL3J1Ynlfc29ydC90ZXN0LnJiICAjIHJzb3J0CgoJUnVuICMxOiAwLjMyOCBzCglSdW4g IzI6IDAuMzUxIHMKCVJ1biAjMzogMC4zNTIgcwoJUnVuICM0OiAwLjMyMyBzCglSdW4gIzU6IDAu MzQyIHMKCmRpZmYgLS1naXQgYS9hcnJheS5jIGIvYXJyYXkuYwppbmRleCBhMzNjNDNiZGJmLi5m ZTUyMjkxYzIxIDEwMDY0NAotLS0gYS9hcnJheS5jCisrKyBiL2FycmF5LmMKQEAgLTM1MjEsNiAr MzUyMSw4MyBAQCBzb3J0XzIoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwLCB2b2lkICpk dW1teSkKICAgICByZXR1cm4gbjsKIH0KIAorI2lmIF9fbGludXhfXyAmJiBfX1NJWkVPRl9QT0lO VEVSX18gPT0gOAorCitzdGF0aWMgaW50IHJzb3J0KHZvaWQgKmNvbnN0IF9wLCBjb25zdCBsb25n IGwpIHsKKworICAgIGZvciAoY29uc3QgVkFMVUUgKnAgPSBfcCwgKmNvbnN0IFAgPSBwICsgNjQ7 IHAgPCBQOykKKyAgICAgICAgaWYgKCFGSVhOVU1fUCgqcCsrKSkgcmV0dXJuIDE7CisKKyAgICB1 aW50NjRfdCBGWzhdWzI1Nl0gPSB7fSwgKmEgPSBfcCwgKmIgPSBtYWxsb2MoOCAqIGwpOworICAg IGlmIChiID09IE5VTEwpIHJldHVybiAxOworCisgICAgZm9yICh1aW50NjRfdCAqcCA9IGEgKyA2 NCwgKnAyID0gYiArIDY0LCAqY29uc3QgUCA9IHAgKyAobCAtIDY0KTsgcCA8IFA7IHAyKyspIHsK KyAgICAgICAgKnAyID0gKnAgXiAoMVVMIDw8IDYzKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCA4OyBpKyspCisgICAgICAgICAgICBGW2ldWygqcDIgPj4gaSAqIDgpICYgMjU1XSsrOwor ICAgICAgICBpZiAoIUZJWE5VTV9QKCpwKyspKSB7CisgICAgICAgICAgICBmcmVlKGIpOworICAg ICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKHVpbnQ2NF90 ICpwID0gYSwgKnAyID0gYiwgKmNvbnN0IFAgPSBwICsgNjQ7IHAgPCBQOyBwMisrKSB7CisgICAg ICAgICpwMiA9ICpwKysgXiAoMVVMIDw8IDYzKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCA4OyBpKyspCisgICAgICAgICAgICBGW2ldWygqcDIgPj4gaSAqIDgpICYgMjU1XSsrOworICAg IH0KKworICAgIHsgdWludDY0X3QgKnQgPSBhOyBhID0gYiwgYiA9IHQ7IH0KKworICAgIHVpbnQ2 NF90IHNraXBbOF0gPSB7fTsgaW50IGxhc3QgPSAxMDsKKworICAgIGZvciAoaW50IGkgPSAwOyBp IDwgODsgaSsrKSB7CisgICAgICAgIHVpbnQ2NF90IHggPSAwLCB0LCAqbyA9IEZbaV07CisgICAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgMjU2OyBqKyspIHsKKyAgICAgICAgICAgIGlmICgodCA9 IG9bal0pID09ICh1aW50NjRfdClsKSB7CisgICAgICAgICAgICAgICAgc2tpcFtpXSA9IDE7Cisg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4ID0gKG9b al0gPSB4KSArIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGludCBpID0gNzsgaSA+ PSAwOyAtLWkpCisgICAgICAgIGlmIChza2lwW2ldID09IDApIHsKKyAgICAgICAgICAgIGxhc3Qg PSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIGlmIChsYXN0ID09IDEw KSB7CisgICAgICAgIGZyZWUoYSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIGlmIChza2lwW2ldKSBjb250aW51 ZTsKKyAgICAgICAgdWludDY0X3QgKm8gPSBGW2ldOworICAgICAgICBpZiAoaSA8IGxhc3QpCisg ICAgICAgICAgICBmb3IgKHVpbnQ2NF90ICpwID0gYSwgKmNvbnN0IFAgPSBwICsgbDsgcCA8IFA7 IHArKykgeworICAgICAgICAgICAgICAgIGJbb1soKnAgPj4gaSAqIDgpICYgMjU1XSsrXSA9ICpw OworICAgICAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3IgKHVpbnQ2NF90 ICpwID0gYSwgKmNvbnN0IFAgPSBwICsgbDsgcCA8IFA7IHArKykgeworICAgICAgICAgICAgICAg IGJbb1soKnAgPj4gaSAqIDgpICYgMjU1XSsrXSA9ICpwIF4gKDFVTCA8PCA2Myk7CisgICAgICAg ICAgICB9CisgICAgICAgIG8gPSBhLCBhID0gYiwgYiA9IG87CisgICAgfQorCisgICAgaWYgKGEg IT0gX3ApIHsKKyAgICAgICAgbWVtY3B5KF9wLCBhLCA4ICogbCk7CisgICAgICAgIGIgPSBhOwor ICAgIH0KKworICAgIGZyZWUoYik7CisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZgorCiAvKgog ICogIGNhbGwtc2VxOgogICogICAgYXJyYXkuc29ydCEgLT4gc2VsZgpAQCAtMzU3Nyw4ICszNjU0 LDIwIEBAIHJiX2FyeV9zb3J0X2JhbmcoVkFMVUUgYXJ5KQogICAgICAgICBkYXRhLmNtcF9vcHQu b3B0X21ldGhvZHMgPSAwOwogICAgICAgICBkYXRhLmNtcF9vcHQub3B0X2luaXRlZCA9IDA7CiAg ICAgICAgIFJBUlJBWV9QVFJfVVNFKHRtcCwgcHRyLCB7CisKKyNpZiBfX2xpbnV4X18gJiYgX19T SVpFT0ZfUE9JTlRFUl9fID09IDgKKworICAgICAgICAgICAgaWYgKChsZW4gPCAxMDAwMCB8fCBy Yl9ibG9ja19naXZlbl9wKCkpIHx8IHJzb3J0KHB0ciwgbGVuKSkKKyAgICAgICAgICAgICAgICBy dWJ5X3Fzb3J0KHB0ciwgbGVuLCBzaXplb2YoVkFMVUUpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmJfYmxvY2tfZ2l2ZW5fcCgpID8gc29ydF8xIDogc29ydF8yLCAmZGF0YSk7CisKKyNl bHNlCisKICAgICAgICAgICAgIHJ1YnlfcXNvcnQocHRyLCBsZW4sIHNpemVvZihWQUxVRSksCi0g ICAgICAgICAgICAgICAgICAgICAgIHJiX2Jsb2NrX2dpdmVuX3AoKT9zb3J0XzE6c29ydF8yLCAm ZGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgIHJiX2Jsb2NrX2dpdmVuX3AoKSA/IHNvcnRf MSA6IHNvcnRfMiwgJmRhdGEpOworCisjZW5kaWYKKwogICAgICAgICB9KTsgLyogV0I6IG5vIG5l dyByZWZlcmVuY2UgKi8KICAgICAgICAgcmJfYXJ5X21vZGlmeShhcnkpOwogICAgICAgICBpZiAo QVJZX0VNQkVEX1AodG1wKSkgewpgYGAKCkZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGFudHVk eWsveFBORy9ibG9iLzhkY2I4NWNkZTIwYTQxMDMwZmQxZGU4NDAyYTdhYTAwNDc5MzZhMjUvdW50 aWxfZm9yay9ydWJ5X3NvcnQudHh0CgpObyB0aW1lIHRvIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdC4K CgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwo=