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-Status: No, score=-2.6 required=3.0 tests=AWL,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,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 9F3601F4B4 for ; Sun, 27 Dec 2020 16:14:22 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 0D718120AB6; Mon, 28 Dec 2020 01:13: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 83FC3120AAE for ; Mon, 28 Dec 2020 01:13:31 +0900 (JST) Received: by filterdrecv-p3iad2-74bd9fb996-s7qqb with SMTP id filterdrecv-p3iad2-74bd9fb996-s7qqb-19-5FE8B2D8-50 2020-12-27 16:14:16.860416626 +0000 UTC m=+1444323.425280555 Received: from herokuapp.com (unknown) by ismtpd0098p1mdw1.sendgrid.net (SG) with ESMTP id 4v861_jdTqKVMSsYEsklrQ for ; Sun, 27 Dec 2020 16:14:16.758 +0000 (UTC) Date: Sun, 27 Dec 2020 16:14:16 +0000 (UTC) From: eregontp@gmail.com Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 77649 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 17472 X-Redmine-Issue-Author: naruse X-Redmine-Sender: Eregon 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-SG-EID: =?us-ascii?Q?KippOI8ZHtTweq7XfQzW93937kJ4QNWwSBuHnaMEcr3fA9fM2xvcgdMi6f2zOF?= =?us-ascii?Q?vr3=2FFc7+pjqAshvHSxofsVWswxtvU5fPbEfkNSF?= =?us-ascii?Q?5X1VVkycw=2FD0DhvSjft12UwGSU8R4GdC9BvecDw?= =?us-ascii?Q?nVgIhcxoIWjNfyF+RwF94AiuGqiOmg+7uhqF7z5?= =?us-ascii?Q?nyE1NWSw7obNNHGqluXt8=2FNmMJVT8yXfXx2mwEa?= =?us-ascii?Q?cnHzwgQHaOhBvSpYE=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 101747 Subject: [ruby-core:101747] [Ruby master Feature#17472] HashWithIndifferentAccess like Hash extension X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #17472 has been updated by Eregon (Benoit Daloze). I don't think C code will be more efficient for things like https://github.com/rails/rails/blob/914caca2d31bd753f47f9168f2a375921d9e91cc/activesupport/lib/active_support/hash_with_indifferent_access.rb#L367. And translating the rest of the logic to C would just make it harder to read, maintain, and not gain anything. Are we going to rewrite Rails in C too? ;) Honestly, I think it's a waste of time to even experiment, it's bound to insifignicant gains for large efforts and maintenance cost. IMHO, HashWithIndifferentAccess would be a mistake, as plain as a mistake can be. Also, I see no valid reason to have this in core, if people really want to try this, they can make a C extension. ---------------------------------------- Feature #17472: HashWithIndifferentAccess like Hash extension https://bugs.ruby-lang.org/issues/17472#change-89569 * Author: naruse (Yui NARUSE) * Status: Open * Priority: Normal * Target version: 3.1 ---------------------------------------- Rails has [ActiveSupport::HashWithIndifferentAccess](https://api.rubyonrails.org/classes/ActiveSupport/HashWithIndifferentAccess.html), which is widely used in Rails to handle Request, Session, ActionView's form construction, ActiveRecord's DB communication, and so on. It receives String or Symbol and normalize them to fetch the value. But it is implemented with Ruby. If we provide C implementation of that, Rails will gain the performance improvement. -- https://bugs.ruby-lang.org/