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.4 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY 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 1E5851F506 for ; Thu, 22 Sep 2022 03:30:09 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="bQoDolAG"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 5D115120CDD; Thu, 22 Sep 2022 12:30:07 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id CE9A1120C8B for ; Thu, 22 Sep 2022 12:30:04 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=rmcHGgyY7l9BJvaovo+3+RASBW/7NIuUcLFAVgiK6d4=; b=bQoDolAGzEZXfwpjidzLFJl21TxJg00x859/ekjFuu/qoZyVkTwMX1SKdb+BOYDiWK8L YJIs5yU9XTJG7vMG+Jmrp6FCT78HAGQlBT/CKL/ePUqPRrlmyP6wpC1OYAR8BqA4AtFFx9 2xaKogq/Pie0RMGv0elTU3uW6FZPf53Mo= Received: by filterdrecv-55cf8496dd-htgnz with SMTP id filterdrecv-55cf8496dd-htgnz-1-632BD6BB-16 2022-09-22 03:30:03.22259997 +0000 UTC m=+191801.502555020 Received: from herokuapp.com (unknown) by geopod-ismtpd-5-2 (SG) with ESMTP id Mh0FbG-kSAihepRK8f58Vw for ; Thu, 22 Sep 2022 03:30:03.211 +0000 (UTC) Date: Thu, 22 Sep 2022 03:30:03 +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: 16122 X-Redmine-Issue-Author: zverok X-Redmine-Issue-Assignee: zverok 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: 86427 X-SG-EID: =?us-ascii?Q?rA5eEsXeCy+asKowYcicHxhOSUaOWYD+XnPnBc7LFC8Re9tNQ4Sv5BA=2FOz+glG?= =?us-ascii?Q?+50K4steq4vSjkkyeSAt=2FQpZK6mQgZdK22n=2FlxG?= =?us-ascii?Q?4Fre1BqDU0kN0yMn5H41SKPvi0Ic4voFPjIxzut?= =?us-ascii?Q?eNT3JthSY4VskroQGrn2yQ8=2F5UqkOSXrhzRwoAm?= =?us-ascii?Q?wHLKvhJLgxMhOcZZj0Tr8UtTYuibd9exobWFmXH?= =?us-ascii?Q?vFnk=2Ff9Na3VvOmXZVvSWahVqGcZyxDVJsGRLPe=2F?= =?us-ascii?Q?ePVFnTiCeA+VL27KRp1NQ=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109986 Subject: [ruby-core:109986] [Ruby master Feature#16122] Data: simple immutable value object 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" SXNzdWUgIzE2MTIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku DQoNCg0KQXMgQHVmdWsgd3JvdGUg8J+ZjywgSSBkb27igJl0IHRoaW5rIHRoZSBiZWhhdmlvciB3 b3J0aCB0byBiZSBrZXB0Lg0KSW4gdGhlIGNhc2UgeW91IHdhbnQgYSBuYW1lLCB5b3UgY2FuIGFz c2lnbiBpdCB0byBhIGNvbnN0YW50Lg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpGZWF0dXJlICMxNjEyMjogRGF0YTogc2ltcGxlIGltbXV0YWJsZSB2YWx1ZSBv YmplY3QNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjEyMiNjaGFuZ2UtOTky MzYNCg0KKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQ0KKiBTdGF0dXM6IEFzc2ln bmVkDQoqIFByaW9yaXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IHp2ZXJvayAoVmljdG9yIFNoZXBl bGV2KQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKipWYWx1ZSBP YmplY3QqKiBpcyBhIHVzZWZ1bCBjb25jZXB0LCBpbnRyb2R1Y2VkIGJ5IE1hcnRpbiBGb3dsZXIg KFtoaXMgcG9zdF0oaHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2JsaWtpL1ZhbHVlT2JqZWN0Lmh0 bWwpLCBbV2lraXBlZGlhIEVudHJ5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WYWx1 ZV9vYmplY3QpKSB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyAoc2ltcGxpZnlpbmcgdGhl IGlkZWEpOg0KDQoqIHJlcHJlc2VudGluZyBzb21lIHJlbGF0aXZlbHkgc2ltcGxlIGRhdGE7DQoq IGltbXV0YWJsZTsNCiogY29tcGFyZWQgYnkgdHlwZSAmIHZhbHVlOw0KKiBuaWNlbHkgcmVwcmVz ZW50ZWQuDQoNClZhbHVlIG9iamVjdHMgYXJlIHN1cGVyLXVzZWZ1bCBlc3BlY2lhbGx5IGZvciBk ZWZpbmluZyBBUElzLCB0aGVpciBpbnB1dC9yZXR1cm4gdmFsdWVzLiBSZWNlbnRseSwgdGhlcmUg d2VyZSBzb21lIG1vdmVtZW50IHRvd2FyZHMgdXNpbmcgbW9yZSBpbW11dGFiaWxpdHktZnJpZW5k bHkgYXBwcm9hY2ggaW4gUnVieSBwcm9ncmFtbWluZywgbGVhZGluZyB0byBjcmVhdGluZyBzZXZl cmFsIGRpc2N1c3Npb25zL2xpYnJhcmllcyB3aXRoIHZhbHVlIG9iamVjdHMuIEZvciBleGFtcGxl LCBbVG9tIERhbGxpbmcncyBnZW1dKGh0dHBzOi8vZ2l0aHViLmNvbS90b21kYWxsaW5nL3ZhbHVl X3NlbWFudGljcyksIFtHb29kIFJ1YnkgVmFsdWUgb2JqZWN0IGNvbnZlbnRpb25dKGh0dHBzOi8v Z2l0aHViLmNvbS96dmVyb2svZ29vZC12YWx1ZS1vYmplY3QpIChkaXNjbGFpbWVyOiB0aGUgbGF0 dGVyIGlzIG1haW50YWluZWQgYnkgeW91cnMgdHJ1bHkpLg0KDQpJIHByb3Bvc2UgdG8gaW50cm9k dWNlICoqbmF0aXZlIHZhbHVlIG9iamVjdHMqKiB0byBSdWJ5IGFzIGEgY29yZSBjbGFzcy4NCg0K KipXaHkgbm90IGEgZ2VtPyoqDQoNCiogSSBiZWxpZXZlIHRoYXQgY29uY2VwdCBpcyB0aGF0IHNp bXBsZSwgdGhhdCBub2JvZHkgKndpbGwgZXZlbiB0cnkqIHRvIHVzZSBhIGdlbSBmb3IgcmVwcmVz ZW50aW5nIGl0IHdpdGgsIHVubGVzcyB0aGUgZnJhbWV3b3JrL2xpYnJhcnkgdXNlZCBhbHJlYWR5 IHByb3ZpZGVzIG9uZS4NCiogUG90ZW50aWFsbHksIGEgbG90IG9mIHN0YW5kYXJkIGxpYnJhcnkg KGFuZCBwcm9iYWJseSBldmVuIGNvcmUpIEFQSXMgY291bGQgYmVuZWZpdCBmcm9tIHRoZSBjb25j ZXB0Lg0KDQoqKldoeSBgU3RydWN0YCBpcyBub3QgZW5vdWdoKioNCg0KQ29yZSBgU3RydWN0YCBj bGFzcyBpcyAic29tZXdoYXQgYWxpa2UiIHZhbHVlLW9iamVjdCwgYW5kIGZyZXF1ZW50bHkgdXNl ZCBpbnN0ZWFkIG9mIG9uZTogaXQgaXMgY29tcGFyZWQgYnkgdmFsdWUgYW5kIGNvbnNpc3RzIG9m IHNpbXBsZSBhdHRyaWJ1dGVzLiBPbiB0aGUgb3RoZXIgaGFuZCwgYFN0cnVjdGAgaXM6DQoqIG11 dGFibGU7DQoqIGNvbGxlY3Rpb24tYWxpa2UgKGRlZmluZXMgYHRvX2FgIGFuZCBpcyBgRW51bWVy YWJsZWApOw0KKiBkaWN0aW9uYXJ5LWFsaWtlIChoYXMgYFtdYCBhbmQgYC52YWx1ZXNgIG1ldGhv ZHMpLg0KDQpUaGUgYWJvdmUgdHJhaXRzIHNvbWVob3cgZXJvZGVzIHRoZSBzZW1hbnRpY3MsIG1h a2luZyBjb2RlIGxlc3MgY2xlYXIsIGVzcGVjaWFsbHkgd2hlbiBkdWNrLXR5cGluZyBpcyB1c2Vk Lg0KDQpGb3IgZXhhbXBsZSwgdGhpcyBjb2RlIHNuaXBwZXQgc2hvd3Mgd2h5IGB0b19hYCBpcyBw cm9ibGVtYXRpYzoNCg0KYGBgcnVieQ0KUmVzdWx0ID0gU3RydWN0Lm5ldyg6c3VjY2VzcywgOmNv bnRlbnQpDQoNCiMgTm93LCBpbWFnaW5lIHRoYXQgb3RoZXIgY29kZSBhc3N1bWVzIGBkYXRhYCBj b3VsZCBiZSBlaXRoZXIgUmVzdWx0LCBvciBbUmVzdWx0LCBSZXN1bHQsIFJlc3VsdF0NCiMgU28s IC4uLg0KDQpkYXRhID0gUmVzdWx0Lm5ldyh0cnVlLCAnaXQgaXMgYXdlc29tZScpDQoNCkFycmF5 KGRhdGEpICMgPT4gZXhwZWN0ZWQgW1Jlc3VsdCh0cnVlLCAnaXQgaXMgYXdlc29tZScpXSwgZ290 IFt0cnVlLCAnaXQgaXMgYXdlc29tZSddDQoNCiMgb3IuLi4NCmRlZiBmb28oYXJnMSwgYXJnMiA9 IG5pbCkNCnAgYXJnMSwgYXJnMg0KZW5kDQoNCmZvbygqZGF0YSkgIyA9PiBleHBlY3RlZCBbUmVz dWx0KHRydWUsICdpdCBpcyBhd2Vzb21lJyksIG5pbF0sIGdvdCBbdHJ1ZSwgJ2l0IGlzIGF3ZXNv bWUnXQ0KYGBgDQoNCkhhdmluZyBgW11gIGFuZCBgZWFjaGAgZGVmaW5lZCBvbiBzb21ldGhpbmcg dGhhdCBpcyB0aG91Z2h0IGFzICJqdXN0IHZhbHVlIiBjYW4gYWxzbyBsZWFkIHRvIHN1YnRsZSBi dWdzLCB3aGVuIHNvbWUgbWV0aG9kIGNoZWNrcyAiaWYgdGhlIHJlY2VpdmVkIGFyZ3VtZW50IGlz IGNvbGxlY3Rpb24tYWxpa2UiLCBhbmQgdmFsdWUgb2JqZWN0J3MgYXV0aG9yIGRvZXNuJ3QgdGhv dWdodCBvZiBpdCBhcyBhIGNvbGxlY3Rpb24uDQoNCioqQ29uY3JldGUgcHJvcG9zYWwqKg0KDQoq IENsYXNzIG5hbWU6IGBTdHJ1Y3Q6OlZhbHVlYDogbG90IG9mIFJ1Ynlpc3RzIGFyZSB1c2VkIHRv IGhhdmUgYFN0cnVjdGAgYXMgYSBxdWljayAic29tZXRoaW5nLWxpa2UtdmFsdWUiIGRyb3AtaW4s IHNvIGFsdGVybmF0aXZlLCBtb3JlIHN0cmljdCBpbXBsZW1lbnRhdGlvbiwgYmVpbmcgcGFydCBv ZiBgU3RydWN0YCBBUEksIHdpbGwgYmUgcXVpdGUgZGlzY292ZXJhYmxlOyAqYWx0ZXJuYXRpdmU6 IGp1c3QgYFZhbHVlYCoNCiogQ2xhc3MgQVBJIGlzIGNvcHlpbmcgYFN0cnVjdGBzIG9uZSAobW9z dCBvZiB0aGUgdGltZSAtLSBldmVuIHJldXNlcyB0aGUgaW1wbGVtZW50YXRpb24pLCB3aXRoIHRo ZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyAqKG5vdGU6IHRoZSBpbW11dGFiaWxpdHkgaXMgKipub3Qq KiB0aGUgb25seSBkaWZmZXJlbmNlKSo6DQogICogTm90IGBFbnVtZXJhYmxlYDsNCiAgKiBJbW11 dGFibGU7DQogICogRG9lc24ndCB0aGluayBvZiBpdHNlbGYgYXMgImFsbW9zdCBoYXNoIiAoZG9l c24ndCBoYXZlIGB0b19hYCwgYHZhbHVlc2AgYW5kIGBbXWAgbWV0aG9kcyk7DQogICogQ2FuIGhh dmUgZW1wdHkgbWVtYmVycyBsaXN0IChmdW4gZmFjdDogYFN0cnVjdC5uZXcoJ0ZvbycpYCBjcmVh dGluZyBtZW1iZXItbGVzcyBgU3RydWN0OjpGb29gLCBpcyBhbGxvd2VkLCBidXQgYFN0cnVjdC5u ZXcoKWAgaXMgbm90KSB0byBhbGxvdyB1c2FnZSBwYXR0ZXJucyBsaWtlOg0KDQpgYGBydWJ5DQpj bGFzcyBNeVNlcnZpY2UNCiAgU3VjY2VzcyA9IFN0cnVjdDo6VmFsdWUubmV3KDpyZXN1bHRzKQ0K ICBOb3RGb3VuZCA9IFN0cnVjdDo6VmFsdWUubmV3DQplbmQNCmBgYA0KDQpgTm90Rm91bmRgIGhl cmUsIHVubGlrZSwgc2F5LCBgT2JqZWN0Lm5ldy5mcmVlemVgIChhbm90aGVyIHBhdHRlcm4gZm9y IGNyZWF0aW5nICJlbXB0eSB0eXBlZCB2YWx1ZSBvYmplY3QiKSwgaGFzIG5pY2UgaW5zcGVjdCBg Izx2YWx1ZSBOb3RGb3VuZD5gLCBhbmQgY3JlYXRlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYFN1 Y2Nlc3NgLCBtYWtpbmcgdGhlIGNvZGUgbW9yZSByZWFkYWJsZS4gQW5kIGlmIGl0IHdpbGwgZXZv bHZlIHRvIGhhdmUgc29tZSBhdHRyaWJ1dGVzLCB0aGUgY29kZSBjaGFuZ2Ugd291bGQgYmUgZWFz eS4NCg0KKipQYXRjaCBpcyBwcm92aWRlZCoqDQoNCltTYW1wbGUgcmVuZGVyZWQgUkRvYyBkb2N1 bWVudGF0aW9uXShodHRwczovL3p2ZXJvay5naXRodWIuaW8vcnVieS1yZG9jL1N0cnVjdC1WYWx1 ZS5odG1sKQ0KDQotLS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpzdHJ1 Y3RfdmFsdWUucGF0Y2ggKDE4LjYgS0IpDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy8NCg==