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.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,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 624911F953 for ; Tue, 11 Jan 2022 07:43:39 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id B51C512122A; Tue, 11 Jan 2022 16:43:34 +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 10534121225 for ; Tue, 11 Jan 2022 16:43:32 +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; s=smtpapi; bh=WjamidR/E7RVQKriGYn0sRmyOZ9ihP/kV6BoYM7fJJU=; b=ymhP2O16s4GYD0IsAX0bvXc4bY8oLQko2Caqdd6fEPMZTOgR/d9gcm6hpvKQvNlY6Vye bW1eSxEgxdqd/wP3LVPgIHC8B1wiquMeEl8qmPaVYXmso/DJ6Cu81D8Wi3cu0PQeOH49Vh ObFnyXt+VAKY9a3fHkwbIF1T4gI0PHxhs= Received: by filterdrecv-55446c4d49-kv7js with SMTP id filterdrecv-55446c4d49-kv7js-1-61DD3522-10 2022-01-11 07:43:30.355008541 +0000 UTC m=+11352182.998102814 Received: from herokuapp.com (unknown) by geopod-ismtpd-2-2 (SG) with ESMTP id Vytr4c3DTIa2SUMfRVWJCQ for ; Tue, 11 Jan 2022 07:43:30.254 +0000 (UTC) Date: Tue, 11 Jan 2022 07:43:30 +0000 (UTC) From: "zverok (Victor Shepelev)" 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-Sender: zverok 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: 83306 X-SG-EID: =?us-ascii?Q?vLdgaQzz4KZHZppNimNu6godbwy4DPDfaokKfkcKIsHH9HoWRMTGi1fgazO6QX?= =?us-ascii?Q?U7wgPqm75iWCI6P56xR7c5BTJvbXtPRr6+AwosQ?= =?us-ascii?Q?qMCNTjynWw7jQO=2FGU0SOlcCjTHRLlcPZCG4Pp6g?= =?us-ascii?Q?MlWmO3cBgC921AvZf3UWZPGN4NuJq8YAvz3zD8v?= =?us-ascii?Q?SRSuxiFd58R+BCa8wJy=2FSY2QYoSpZ+yEDx7yAQa?= =?us-ascii?Q?tECSXYjRfGfbCNQZYYJRcfdwIEgwrRFzrzTUOmn?= =?us-ascii?Q?kdWtIEjl4EIhASNL9yo=2FA=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 107041 Subject: [ruby-core:107041] [Ruby master Feature#16122] Struct::Value: 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" SXNzdWUgIzE2MTIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp LgoKCkBrbzEsIHRoZSBpbml0aWFsIHRpY2tldCBwcm92aWRlcyBzb21lIGV4cGxhbmF0aW9uczoK Cj4gRm9yIGV4YW1wbGUsIHRoaXMgY29kZSBzbmlwcGV0IHNob3dzIHdoeSBgdG9fYWAgaXMgcHJv YmxlbWF0aWM6CgpgYGBydWJ5ClJlc3VsdCA9IFN0cnVjdC5uZXcoOnN1Y2Nlc3MsIDpjb250ZW50 KQoKIyBOb3csIGltYWdpbmUgdGhhdCBvdGhlciBjb2RlIGFzc3VtZXMgYGRhdGFgIGNvdWxkIGJl IGVpdGhlciBSZXN1bHQsIG9yIFtSZXN1bHQsIFJlc3VsdCwgUmVzdWx0XQojIFNvLCAuLi4KCmRh dGEgPSBSZXN1bHQubmV3KHRydWUsICdpdCBpcyBhd2Vzb21lJykKCkFycmF5KGRhdGEpICMgPT4g ZXhwZWN0ZWQgW1Jlc3VsdCh0cnVlLCAnaXQgaXMgYXdlc29tZScpXSwgZ290IFt0cnVlLCAnaXQg aXMgYXdlc29tZSddCgojIG9yLi4uCmRlZiBmb28oYXJnMSwgYXJnMiA9IG5pbCkKcCBhcmcxLCBh cmcyCmVuZAoKZm9vKCpkYXRhKSAjID0+IGV4cGVjdGVkIFtSZXN1bHQodHJ1ZSwgJ2l0IGlzIGF3 ZXNvbWUnKSwgbmlsXSwgZ290IFt0cnVlLCAnaXQgaXMgYXdlc29tZSddCmBgYAoKVGhhdCdzIGFi b3V0IGp1c3QgYCN0b19hYCBtZXRob2QsIGJ1dCBJIHRoaW5rIHRoYXQgaW4gZ2VuZXJhbCwgY29u c2lkZXJpbmcgZHVjayB0eXBpbmcsIGl0IGlzIHVuZGVzaXJhYmxlIHRoYXQgdGhlIG9iamVjdCB0 aGF0IHRoZSBkZXZlbG9wZXIgdGhpbmtzIG9mIGFzIGFuICJhdG9taWMiIHdpbGwgYmUgZHVjay10 eXBlZCBhcyBhIGNvbGxlY3Rpb24gKGAjcmVzcG9uZF90bz8oOmVhY2gpYCkuIEluIGdlbmVyYWws IHlvdSBuZXZlciBrbm93IHdoZW4gImlzIGl0IG9uZSB0aGluZywgb3IgaXMgaXQgYW4gZW51bWVy YXRpb24gb2YgdGhpbmdzIiB3aWxsIGJlIGNydWNpYWwgaW4gY29kZSwgYW5kIEkgdGhpbmsgaXQg aXMgaW1wb3J0YW50IHRvIHVuZGVybGluZSBgU3RydWN0OjpWYWx1ZWAgaXMgX29uZV8gdGhpbmcu IAoKSSBiZWxpZXZlIHRoZXJlIGFyZSBnb29kIHJlYXNvbnMgd2h5IGAjZWFjaGAgd2FzIHJlbW92 ZWQgZnJvbSBgU3RyaW5nYCwgZm9yIGV4YW1wbGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUgIzE2MTIyOiBTdHJ1Y3Q6OlZhbHVlOiBzaW1wbGUgaW1t dXRhYmxlIHZhbHVlIG9iamVjdApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTYx MjIjY2hhbmdlLTk1ODcyCgoqIEF1dGhvcjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpCiogU3Rh dHVzOiBGZWVkYmFjawoqIFByaW9yaXR5OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoqKlZhbHVlIE9iamVjdCoqIGlzIGEgdXNlZnVsIGNvbmNlcHQsIGlu dHJvZHVjZWQgYnkgTWFydGluIEZvd2xlciAoW2hpcyBwb3N0XShodHRwczovL21hcnRpbmZvd2xl ci5jb20vYmxpa2kvVmFsdWVPYmplY3QuaHRtbCksIFtXaWtpcGVkaWEgRW50cnldKGh0dHBzOi8v ZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhbHVlX29iamVjdCkpIHdpdGggdGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIChzaW1wbGlmeWluZyB0aGUgaWRlYSk6CgoqIHJlcHJlc2VudGluZyBzb21lIHJl bGF0aXZlbHkgc2ltcGxlIGRhdGE7CiogaW1tdXRhYmxlOwoqIGNvbXBhcmVkIGJ5IHR5cGUgJiB2 YWx1ZTsKKiBuaWNlbHkgcmVwcmVzZW50ZWQuCgpWYWx1ZSBvYmplY3RzIGFyZSBzdXBlci11c2Vm dWwgZXNwZWNpYWxseSBmb3IgZGVmaW5pbmcgQVBJcywgdGhlaXIgaW5wdXQvcmV0dXJuIHZhbHVl cy4gUmVjZW50bHksIHRoZXJlIHdlcmUgc29tZSBtb3ZlbWVudCB0b3dhcmRzIHVzaW5nIG1vcmUg aW1tdXRhYmlsaXR5LWZyaWVuZGx5IGFwcHJvYWNoIGluIFJ1YnkgcHJvZ3JhbW1pbmcsIGxlYWRp bmcgdG8gY3JlYXRpbmcgc2V2ZXJhbCBkaXNjdXNzaW9ucy9saWJyYXJpZXMgd2l0aCB2YWx1ZSBv YmplY3RzLiBGb3IgZXhhbXBsZSwgW1RvbSBEYWxsaW5nJ3MgZ2VtXShodHRwczovL2dpdGh1Yi5j b20vdG9tZGFsbGluZy92YWx1ZV9zZW1hbnRpY3MpLCBbR29vZCBSdWJ5IFZhbHVlIG9iamVjdCBj b252ZW50aW9uXShodHRwczovL2dpdGh1Yi5jb20venZlcm9rL2dvb2QtdmFsdWUtb2JqZWN0KSAo ZGlzY2xhaW1lcjogdGhlIGxhdHRlciBpcyBtYWludGFpbmVkIGJ5IHlvdXJzIHRydWx5KS4KCkkg cHJvcG9zZSB0byBpbnRyb2R1Y2UgKipuYXRpdmUgdmFsdWUgb2JqZWN0cyoqIHRvIFJ1YnkgYXMg YSBjb3JlIGNsYXNzLgoKKipXaHkgbm90IGEgZ2VtPyoqCgoqIEkgYmVsaWV2ZSB0aGF0IGNvbmNl cHQgaXMgdGhhdCBzaW1wbGUsIHRoYXQgbm9ib2R5ICp3aWxsIGV2ZW4gdHJ5KiB0byB1c2UgYSBn ZW0gZm9yIHJlcHJlc2VudGluZyBpdCB3aXRoLCB1bmxlc3MgdGhlIGZyYW1ld29yay9saWJyYXJ5 IHVzZWQgYWxyZWFkeSBwcm92aWRlcyBvbmUuCiogUG90ZW50aWFsbHksIGEgbG90IG9mIHN0YW5k YXJkIGxpYnJhcnkgKGFuZCBwcm9iYWJseSBldmVuIGNvcmUpIEFQSXMgY291bGQgYmVuZWZpdCBm cm9tIHRoZSBjb25jZXB0LgoKKipXaHkgYFN0cnVjdGAgaXMgbm90IGVub3VnaCoqCgpDb3JlIGBT dHJ1Y3RgIGNsYXNzIGlzICJzb21ld2hhdCBhbGlrZSIgdmFsdWUtb2JqZWN0LCBhbmQgZnJlcXVl bnRseSB1c2VkIGluc3RlYWQgb2Ygb25lOiBpdCBpcyBjb21wYXJlZCBieSB2YWx1ZSBhbmQgY29u c2lzdHMgb2Ygc2ltcGxlIGF0dHJpYnV0ZXMuIE9uIHRoZSBvdGhlciBoYW5kLCBgU3RydWN0YCBp czoKKiBtdXRhYmxlOwoqIGNvbGxlY3Rpb24tYWxpa2UgKGRlZmluZXMgYHRvX2FgIGFuZCBpcyBg RW51bWVyYWJsZWApOwoqIGRpY3Rpb25hcnktYWxpa2UgKGhhcyBgW11gIGFuZCBgLnZhbHVlc2Ag bWV0aG9kcykuCgpUaGUgYWJvdmUgdHJhaXRzIHNvbWVob3cgZXJvZGVzIHRoZSBzZW1hbnRpY3Ms IG1ha2luZyBjb2RlIGxlc3MgY2xlYXIsIGVzcGVjaWFsbHkgd2hlbiBkdWNrLXR5cGluZyBpcyB1 c2VkLgoKRm9yIGV4YW1wbGUsIHRoaXMgY29kZSBzbmlwcGV0IHNob3dzIHdoeSBgdG9fYWAgaXMg cHJvYmxlbWF0aWM6CgpgYGBydWJ5ClJlc3VsdCA9IFN0cnVjdC5uZXcoOnN1Y2Nlc3MsIDpjb250 ZW50KQoKIyBOb3csIGltYWdpbmUgdGhhdCBvdGhlciBjb2RlIGFzc3VtZXMgYGRhdGFgIGNvdWxk IGJlIGVpdGhlciBSZXN1bHQsIG9yIFtSZXN1bHQsIFJlc3VsdCwgUmVzdWx0XQojIFNvLCAuLi4K CmRhdGEgPSBSZXN1bHQubmV3KHRydWUsICdpdCBpcyBhd2Vzb21lJykKCkFycmF5KGRhdGEpICMg PT4gZXhwZWN0ZWQgW1Jlc3VsdCh0cnVlLCAnaXQgaXMgYXdlc29tZScpXSwgZ290IFt0cnVlLCAn aXQgaXMgYXdlc29tZSddCgojIG9yLi4uCmRlZiBmb28oYXJnMSwgYXJnMiA9IG5pbCkKcCBhcmcx LCBhcmcyCmVuZAoKZm9vKCpkYXRhKSAjID0+IGV4cGVjdGVkIFtSZXN1bHQodHJ1ZSwgJ2l0IGlz IGF3ZXNvbWUnKSwgbmlsXSwgZ290IFt0cnVlLCAnaXQgaXMgYXdlc29tZSddCmBgYAoKSGF2aW5n IGBbXWAgYW5kIGBlYWNoYCBkZWZpbmVkIG9uIHNvbWV0aGluZyB0aGF0IGlzIHRob3VnaHQgYXMg Imp1c3QgdmFsdWUiIGNhbiBhbHNvIGxlYWQgdG8gc3VidGxlIGJ1Z3MsIHdoZW4gc29tZSBtZXRo b2QgY2hlY2tzICJpZiB0aGUgcmVjZWl2ZWQgYXJndW1lbnQgaXMgY29sbGVjdGlvbi1hbGlrZSIs IGFuZCB2YWx1ZSBvYmplY3QncyBhdXRob3IgZG9lc24ndCB0aG91Z2h0IG9mIGl0IGFzIGEgY29s bGVjdGlvbi4KCioqQ29uY3JldGUgcHJvcG9zYWwqKgoKKiBDbGFzcyBuYW1lOiBgU3RydWN0OjpW YWx1ZWA6IGxvdCBvZiBSdWJ5aXN0cyBhcmUgdXNlZCB0byBoYXZlIGBTdHJ1Y3RgIGFzIGEgcXVp Y2sgInNvbWV0aGluZy1saWtlLXZhbHVlIiBkcm9wLWluLCBzbyBhbHRlcm5hdGl2ZSwgbW9yZSBz dHJpY3QgaW1wbGVtZW50YXRpb24sIGJlaW5nIHBhcnQgb2YgYFN0cnVjdGAgQVBJLCB3aWxsIGJl IHF1aXRlIGRpc2NvdmVyYWJsZTsgKmFsdGVybmF0aXZlOiBqdXN0IGBWYWx1ZWAqCiogQ2xhc3Mg QVBJIGlzIGNvcHlpbmcgYFN0cnVjdGBzIG9uZSAobW9zdCBvZiB0aGUgdGltZSAtLSBldmVuIHJl dXNlcyB0aGUgaW1wbGVtZW50YXRpb24pLCB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyAq KG5vdGU6IHRoZSBpbW11dGFiaWxpdHkgaXMgKipub3QqKiB0aGUgb25seSBkaWZmZXJlbmNlKSo6 CiAgKiBOb3QgYEVudW1lcmFibGVgOwogICogSW1tdXRhYmxlOwogICogRG9lc24ndCB0aGluayBv ZiBpdHNlbGYgYXMgImFsbW9zdCBoYXNoIiAoZG9lc24ndCBoYXZlIGB0b19hYCwgYHZhbHVlc2Ag YW5kIGBbXWAgbWV0aG9kcyk7CiAgKiBDYW4gaGF2ZSBlbXB0eSBtZW1iZXJzIGxpc3QgKGZ1biBm YWN0OiBgU3RydWN0Lm5ldygnRm9vJylgIGNyZWF0aW5nIG1lbWJlci1sZXNzIGBTdHJ1Y3Q6OkZv b2AsIGlzIGFsbG93ZWQsIGJ1dCBgU3RydWN0Lm5ldygpYCBpcyBub3QpIHRvIGFsbG93IHVzYWdl IHBhdHRlcm5zIGxpa2U6CgpgYGBydWJ5CmNsYXNzIE15U2VydmljZQogIFN1Y2Nlc3MgPSBTdHJ1 Y3Q6OlZhbHVlLm5ldyg6cmVzdWx0cykKICBOb3RGb3VuZCA9IFN0cnVjdDo6VmFsdWUubmV3CmVu ZApgYGAKCmBOb3RGb3VuZGAgaGVyZSwgdW5saWtlLCBzYXksIGBPYmplY3QubmV3LmZyZWV6ZWAg KGFub3RoZXIgcGF0dGVybiBmb3IgY3JlYXRpbmcgImVtcHR5IHR5cGVkIHZhbHVlIG9iamVjdCIp LCBoYXMgbmljZSBpbnNwZWN0IGAjPHZhbHVlIE5vdEZvdW5kPmAsIGFuZCBjcmVhdGVkIGNvbnNp c3RlbnRseSB3aXRoIHRoZSBgU3VjY2Vzc2AsIG1ha2luZyB0aGUgY29kZSBtb3JlIHJlYWRhYmxl LiBBbmQgaWYgaXQgd2lsbCBldm9sdmUgdG8gaGF2ZSBzb21lIGF0dHJpYnV0ZXMsIHRoZSBjb2Rl IGNoYW5nZSB3b3VsZCBiZSBlYXN5LgoKKipQYXRjaCBpcyBwcm92aWRlZCoqCgpbU2FtcGxlIHJl bmRlcmVkIFJEb2MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly96dmVyb2suZ2l0aHViLmlvL3J1Ynkt cmRvYy9TdHJ1Y3QtVmFsdWUuaHRtbCkKCi0tLUZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0Kc3RydWN0X3ZhbHVlLnBhdGNoICgxOC42IEtCKQoKCi0tIApodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy8K