[ruby-core:93090] [Ruby trunk Feature#15836] [Proposal] Make Module#name and Symbol#to_s return their internal fstrings
From:
duerst@...
Date:
2019-06-13 06:05:10 UTC
List:
ruby-core #93090
Issue #15836 has been updated by duerst (Martin D=FCrst). Isn't one main purpose of converting a Symbol to a String that you want to = change the symbol string? This proposal would make that use case more tedio= us. ---------------------------------------- Feature #15836: [Proposal] Make Module#name and Symbol#to_s return their in= ternal fstrings https://bugs.ruby-lang.org/issues/15836#change-78512 * Author: byroot (Jean Boussier) * Status: Feedback * Priority: Normal * Assignee: = * Target version: = ---------------------------------------- # Why ? In many codebases, especially Rails apps, these two methods are the source = of quite a lot of object allocations. `Module#name` is often accessed for various introspection features, autoloa= ding etc. `Symbol#to_s` is access a lot by HashWithIndifferentAccess other various AP= Is accepting both symbols and strings. = Returning fstrings for both of these methods could significantly reduce all= ocations, as well as sligthly reduce retention as it would reduce some dupl= ications. Also, more and more Ruby APIs are now returning fstrings. `frozen_string_li= teral`AFAIK should become the default some day, string used as hash keys ar= e now automatically interned as well. ### Backward compatibilty = Of course this is not fully backward compatible, it's inevitable that some = code in the wild is mutating the strings returned by these methods, but I d= o believe it's a rare occurence, and easy to fix. = ### Implementation I implemented it here: https://github.com/ruby/ruby/pull/2175 -- = https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=3Dunsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>