Dmytro Shteflyuk created THRIFT-5950:
----------------------------------------

             Summary: Add frozen_string_literal to Ruby files to reduce 
allocations
                 Key: THRIFT-5950
                 URL: https://issues.apache.org/jira/browse/THRIFT-5950
             Project: Thrift
          Issue Type: Improvement
          Components: Ruby - Library
            Reporter: Dmytro Shteflyuk


Ruby is moving toward a future where string literals are frozen by default, but 
that transition is not complete yet. Per byroot’s October 28, 2025 write-up, 
the migration actually started in Ruby 3.4.0 with chilled strings, not Ruby 
4.0: when a file has no explicit {{# frozen_string_literal}} comment, Ruby now 
marks literals in a way that supports deprecation warnings as a step toward 
eventual default freezing.

If we want the benefits today, enabling {{# frozen_string_literal: true}} is 
the simplest and lowest-friction way to get them now. Frozen string literals 
are strictly less work for the Ruby VM, because the compiler can reuse literal 
strings directly instead of allocating mutable copies and defensively 
duplicating them. That reduces object allocation and copying, removes the need 
for many older {{.freeze}}-based workarounds, and can produce meaningful 
performance gains in allocation-heavy code paths.

h2. References

* https://byroot.github.io/ruby/performance/2025/10/28/string-literals.html
* https://github.com/rails/rails/pull/29506
* https://github.com/rack/rack/pull/1250



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to