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)