Releases: ruby/ruby
3.4.3
What's Changed
- Bug #21145: Prism accepts newlines in-between curly unicode escape - Ruby - Ruby Issue Tracking System
- Bug #21153: ::Foo ||= p 1 should parse - Ruby - Ruby Issue Tracking System
- Bug #21030: Bug: #step with
Range<ActiveSupport::Duration>
behavior broken on Ruby 3.4.1 - Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Feature #19521: Support for
Module#name=
andClass#name=
. - Ruby - Ruby Issue Tracking System - Bug #21159:
Module#set_temporary_name
should freeze given name - Ruby - Ruby Issue Tracking System - Bug #21161: Crash when locale is set to Turkish tr_TR.UTF-8 - Ruby - Ruby Issue Tracking System
- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #21172: Race condition in
register_fstring
- Ruby - Ruby Issue Tracking System - Bug #21163: Inconsistencies in Kernel.Float compared to other number parsing methods - Ruby - Ruby Issue Tracking System
- Bug #21173: RUBY_FREE_AT_EXIT does not work when error in -r - Ruby - Ruby Issue Tracking System
- Bug #21179: Introduction Happy Eyeballs Version 2 broke
Socket.tcp
from secondary Ractors - Ruby - Ruby Issue Tracking System - Bug #19841: Marshal.dump stack overflow with recursive Time - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #21186: Inconsistent parsing of ?あand 0 - Ruby - Ruby Issue Tracking System
- Bug #21094: Module#set_temporary_name does not affect a name of a nested module - Ruby - Ruby Issue Tracking System
- Bug #21195: Crash when using IO#timeout - Ruby - Ruby Issue Tracking System
- Bug #21196: Ruby 3.4 ignores visibility when passing arguments using
...
- Ruby - Ruby Issue Tracking System - Bug #21141:
Time#utc?
does not work with a timezone object - Ruby - Ruby Issue Tracking System - Bug #21211: Incomplete Backtrace for Socket Errors in Ruby 3.4+ - Ruby - Ruby Issue Tracking System
- Bug #21197: Prism does not accept newline after defined? keyword - Ruby - Ruby Issue Tracking System
- Bug #21183: Ractor error with Prism::VERSION - Ruby - Ruby Issue Tracking System
- Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18 - Ruby - Ruby Issue Tracking System
- Bug #21220: Memory corruption in update_line_coverage() [write at index -1] - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.3.8
What's Changed
- Bump net-imap to 0.4.19 for Ruby 3.3 (CVE-2025-25186) by nevans · Pull Request #12732
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #20951: Confusing handling of timezone object's
#utc_to_local
results - Ruby - Ruby Issue Tracking System - Bug #21046: Backport: TLS fix for ARM64 - Ruby - Ruby Issue Tracking System
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Ruby - Ruby Issue Tracking System - Bug #21095: Prefer
uname -n
overhostname
in tests. - Ruby - Ruby Issue Tracking System - Bug #21112: Typo in error message when an incorrect key is used with WeakKeyMap - Ruby - Ruby Issue Tracking System
- Bug #21092: error building ruby 3.4.1 on cygwin/msys2 - Ruby - Ruby Issue Tracking System
- Bug #21159:
Module#set_temporary_name
should freeze given name - Ruby - Ruby Issue Tracking System - Bug #21172: Race condition in
register_fstring
- Ruby - Ruby Issue Tracking System - Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Bug #19841: Marshal.dump stack overflow with recursive Time - Ruby - Ruby Issue Tracking System
- Bug #21186: Inconsistent parsing of ?あand 0 - Ruby - Ruby Issue Tracking System
- Bug #21094: Module#set_temporary_name does not affect a name of a nested module - Ruby - Ruby Issue Tracking System
- Bug #21195: Crash when using IO#timeout - Ruby - Ruby Issue Tracking System
- Bug #20984: ENV.inspect is not encoding aware - Ruby - Ruby Issue Tracking System
- Bug #21027:
not()
receiver should benil
- Ruby - Ruby Issue Tracking System - Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18 - Ruby - Ruby Issue Tracking System
- Bug #21141:
Time#utc?
does not work with a timezone object - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.2.8
Security fixes
What's Changed
- Bug #21092: error building ruby 3.4.1 on cygwin/msys2 - Ruby - Ruby Issue Tracking System
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #18257: rb_mRubyVMFrozenCore is broken by GC run - Ruby - Ruby Issue Tracking System
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Bug #19584: Crash in rb_gc_register_address - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #20025: Parsing identifiers/constants is case-folding dependent - Ruby - Ruby Issue Tracking System
- Bug #19426: Endless
Range#step
of object with#succ
method does not work - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.1.7
Security fixes
- CVE-2025-27219, CVE-2025-27220 and CVE-2025-27221
- Update REXML-3.3.4 and rss-0.3.1 as bundled gems
What's Changed
- Bug #20516: The version of rexml in ruby 3.3.2 has not been updated since 3.2.6. - Ruby - Ruby Issue Tracking System
- Improve base time of assert_linear_performance by tompng · Pull Request #11369
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.2
What's Changed
- Bug #21024: Ruby including generates compilation warning with GCC 15, header is deprecated in C++17,
- Bug #21021: "try to mark T_NONE object" with 3.4.1
- Bug #20997: YJIT panic assertion
left == right
failed: leave instruction expects stack size 1, but was: 2 - Bug #20981: rb_undefine_finalizer is missing
- Bug #20989: Segmentation fault in Ripper when lexing
/#{"\xcd"}/
- Bug #21003: unexpected warning about ignored block
- Bug #21002: Please include license information of turbo_tests
- Bug #21001: unexpected nil result from proc with ensure and next
- Bug #21010: Endless method definition of
[]=
is SyntaxError in parse.y but allowed in Prism - Bug #20992:
eval(ascii_encoded_code)
raises EncodingError when multibyte local variable exists - Bug #21017:
--with-parser=parse.y
configure option does not work - Bug #21014: Prism doesn't set node_id on iseqs correctly
- Bug #21027:
not()
receiver should benil
- Bug #20995: exception escapes block given to IO.popen("-") in child process
- Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
- Bug #21044: Prism maximum recursion depth is 1_000, parse.y is 10_000
- Bug #21031: Incompatibility with prism and parse.y when eval'ing unnamed forwarding variables
- Bug #21085: [BUG] Stack consistency error with -ne
- Bug #21048: [Prism] rescue in modifier form with condition behaves differently
- Bug #21046: Backport: TLS fix for ARM64
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - Bug #21038: Preserve
errno
inrb_fiber_scheduler_unblock
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Bug #21092: error building ruby 3.4.1 on cygwin/msys2
- Bug #21095: Prefer
uname -n
overhostname
in tests. - Bug #21103: Binding problem with delegate methods
- Bug #21088: TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
- Bug #21112: Typo in error message when an incorrect key is used with WeakKeyMap
- Bug #21117: Inconsistent behaviour between "_1" and "it" variables
- Bug #21114: Prism hangs up while parsing deeply nested
def
- Bug #20984: ENV.inspect is not encoding aware
- Bug #20982: Inconsistency between Hash#inspect and ENV.inspect in Ruby 3.4
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.2.7
What's Changed
- Bug #20853: Hash key retrieval after Process.warmup
- Bug #20868: Method#hash changes after compaction
- Bug #20883: sprintf with binary strings has incorrect coderange
- Bug #20873:
printf("%f")
returns wrong result forRational
withFIXNUM_MIN
- Bug #20898: Backport https://github.com/ruby/ruby/pull/9737 to Ruby 3.3 and 3.2
- Bug #20871: Including methods in Enumerable doesn't make them available in Array
- Bug #20907: Fiber scheduler does not correctly re-lock mutex if
Mutex#sleep
is interrupted. - Bug #20909: Backport String indexing bug fixes
- Bug #20921: Use-after-free in constant cache
- Bug #20915: Segfault with
TracePoint#parameters
and aliased C method - Bug #20447: Ruby 3.3.1 broken on i686 due to "incompatible pointer type" error
- Bug #20924: IO#readline ignores the limit argument when the encoding is UTF-32LE and the limit would split a character
- Bug #20984: ENV.inspect is not encoding aware
- Bug #20995: exception escapes block given to IO.popen("-") in child process
- Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - Bug #21038: Preserve
errno
inrb_fiber_scheduler_unblock
- Bug #20997: YJIT panic assertion
left == right
failed: leave instruction expects stack size 1, but was: 2
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.3.7
What's Changed
- Bug #20883: sprintf with binary strings has incorrect coderange
- Bug #20886: Crash due to double free on regex timeout after stack allocations
- Bug #20892:
ObjectSpace.dump
can produce broken JSON for classes with temporary names - [Backport 3.3] wasm: align fiber stack pointer to 16 bytes by kateinoigakukun · Pull Request #12101
- Bug #20787: IO#readline does not check its arguments like IO#gets and will read more data than limit
- Bug #20868: Method#hash changes after compaction
- Bug #20873:
printf("%f")
returns wrong result forRational
withFIXNUM_MIN
- Bug #20907: Fiber scheduler does not correctly re-lock mutex if
Mutex#sleep
is interrupted. - Bug #20871: Including methods in Enumerable doesn't make them available in Array
- Bug #20909: Backport String indexing bug fixes
- Bug #20915: Segfault with
TracePoint#parameters
and aliased C method - Bug #20921: Use-after-free in constant cache
- Bug #20924: IO#readline ignores the limit argument when the encoding is UTF-32LE and the limit would split a character
- Bug #20950: Use-after-free in ep in Proc#dup for ifunc procs
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - Bug #20984: ENV.inspect is not encoding aware
- Bug #20995: exception escapes block given to IO.popen("-") in child process
- Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
- Bug #21038: Preserve
errno
inrb_fiber_scheduler_unblock
- Bug #20997: YJIT panic assertion
left == right
failed: leave instruction expects stack size 1, but was: 2
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.1
3.4.0
This release only listed between 3.4.0-rc1 and 3.4.0 final release. See also 3.4.0-preview1, 3.4.0-preview2 and 3.4.0-rc1.
What's Changed
- Launchable: Start recording test-spec results by ono-max · Pull Request #12302
- Feature #20884: reserve "Ruby" toplevel module for Ruby language
- Feature #20875: Atomic initialization for Ractor local storage
- [DOC] Fix grammar errors, typos, and improve readability of trace_point.rb by st0012 · Pull Request #12150
- Bug #20918: Prism error indicates line number of
-e
that does not exist - Feature #20861: Add an environment variable for tuning the default thread quantum
- [DOC] Improve formatting in Markdown files by amomchilov · Pull Request #12322
- Improve "Building Ruby" docs by amomchilov · Pull Request #12320
- get rid of unknown error on travis-ci by nobu · Pull Request #1171
- Launchable: Refactor entrypoint.sh by ono-max · Pull Request #12314
- Bug #20950: Use-after-free in ep in Proc#dup for ifunc procs
- YJIT: Speculate block arg for
c_func_method(&nil)
calls by XrXr · Pull Request #12326 - [DOC] Fix incorrect
Array#fetch_values
examples by kyanagi · Pull Request #12337 - [DOC] Improve array.rb documentation by alexcrocha · Pull Request #12340
- Feature #20205: Enable
frozen_string_literal
by default - Bug #20952: A weird error message for []= with keyword arguments
- Bug #20638: Threads not collected by GC under RUBY_MN_THREADS=1
- Improve APIs for Globally Enabling/Disabling fast_fallback in Socket by shioimm · Pull Request #12257
- Update NEWS.md for
Socket.tcp
andTCPSocket.new
by shioimm · Pull Request #12347 - Bug #20927:
{ **{ } }
behaves differently whenshareable_constant_value: experimental_everything
- Bug #20951: Confusing handling of timezone object's
#utc_to_local
results - Bug #20940: Colored syntax error from prism
- [DOC] Adjust argument unpacking docs and document **nil by zverok · Pull Request #12228
- Bug #20954: Ractor.main? returns 0 on the main ractor
- Bug #20785: Should
a in b, and c
a in b, or c
a in b, rescue c
be syntax ok? - Add back summary table for pack/unpack directives by eregon · Pull Request #12349
- Fix constant documents by soutaro · Pull Request #12357
- Launchable: Start recording test-spec in compilers.yaml by ono-max · Pull Request #12364
- Bug #20956: Nested alternation pattern matching bug in 3.4.0-rc1
- [DOC] Change arg names from n to count by BurdetteLamar · Pull Request #12288
- YJIT: Load registers on JIT entry to reuse blocks by k0kubun · Pull Request #12355
- [DOC] Added references of github releases for bundled gems by hsbt · Pull Request #12365
- Wrap
do_fast_fallback_getaddrinfo
withrb_thread_prevent_fork
by shioimm · Pull Request #12366 - Bug #20963: compile error due to lack of MAYBE_UNUSED macro e.g. Oracle Developer Studio 12.x on Solaris 10
- Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- Document 'it' and update numbered parameters docs by zverok · Pull Request #12375
- Bug #20965:
it
vsbinding.local_variables
- Bug #20969: Segmentation fault with
Ripper.lex '/(?<_1>)/=~s'
- Bundle rbs-3.8 by soutaro · Pull Request #12399
- Bug #20942: Infinite loop when out of memory
- Fix tests for fast_fallback by shioimm · Pull Request #12406
- Bug #20973:
it
in pattern matching pin operator causes BUG - [DOC] Refresh standard libraries page by st0012 · Pull Request #12404
- Bug #20916: Prism compiler should support ** in Ractor constant
- Properly document Ractor#require by zverok · Pull Request #12389
- [DOC] Move Time#xmlschema docs to the core by zverok · Pull Request #12403
- Bug #3456: bisarre comma
- Improve doc for
Socket::ResolutionError
by shioimm · Pull Request #12434 - Bug #20978: Ractor[]/Thread[]/Fiber[] behavior difference
- YJIT: Return None if entry block compilation fails by k0kubun · Pull Request #12445
- Bug #20779: Un-rescuable thread creation limit on Mac
- Bug #19562: Setting default_(in|ex)ternal encoding after running an Ractor freezes ruby
- Bug #20929: TestTime have an assertion different from current implementation.
- Bug #20979: +comment does not affect parsetree without
--parser=parse.y
- Bundle rbs-3.8.0 by soutaro · Pull Request #12453
- Introduce a timeout to prevent
rb_thread_fd_select
from hanging with write(2) failure by shioimm · Pull Request #12457 - [DOC] Adjust documentation related to backtraces by zverok · Pull Request #12420
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.0-rc1
What's Changed
- YJIT: Add --yjit-mem-size option by k0kubun · Pull Request #11810
- [DOC] Tweaks for Array#permutation by BurdetteLamar · Pull Request #11802
- [DOC] Tweaks for Array#pop by BurdetteLamar · Pull Request #11821
- YJIT: Fastpath for Module#name by XrXr · Pull Request #11819
- [DOC] Tweaks for Array#product by BurdetteLamar · Pull Request #11823
- Bug #20791: RbCONFIG::CONFIG does not have a LIBRUBY_RELATIVE key on mswin
- Bug #20789:
->a=1...{}
is syntax error in 3.4.0dev parse.y - intern.h: mark rb_num_zerodiv as NORETURN by xiw · Pull Request #147
- Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta
- Bug #20788: Prism issues unused variable warnings for negative line numbers
- [DOC] Tweaks for Array#repeated_combination by BurdetteLamar · Pull Request #11839
- [DOC] Tweaks for Array#reverse_each by BurdetteLamar · Pull Request #11855
- Update
rsock_connect
to takeVALUE io
argument. by ioquatix · Pull Request #11847 - Remove 1 allocation in Enumerable#each_with_index by XrXr · Pull Request #11868
- YJIT: Improve build instructions for non-hackers by XrXr · Pull Request #11878
- [DOC] Tweaks for Array#repeated_permutation by BurdetteLamar · Pull Request #11873
- [DOC] Tweaks for Array#sample by BurdetteLamar · Pull Request #11876
- [DOC] Tweaks for Array#rotate! by BurdetteLamar · Pull Request #11875
- Support
IO#timeout
forrsock_connect
. by ioquatix · Pull Request #11880 - [DOC] Tweaks for Array#shift by BurdetteLamar · Pull Request #11886
- Bug #20797: UTC offset seconds part is not checked
- [DOC] Tweaks for Array#shuffle! by BurdetteLamar · Pull Request #11891
- Bug #20799: Bug in forwarding to struct methods
- Making StringIO#to_s behave as one would expect by awebneck · Pull Request #149
- [DOC] Tweaks for Array#slice! by BurdetteLamar · Pull Request #11902
- [DOC] Tweaks for Array#sort by BurdetteLamar · Pull Request #11907
- YJIT: Add compilation log by nirvdrum · Pull Request #11818
- YJIT: Allow shareable consts in multi-ractor mode by jhawthorn · Pull Request #11917
- Feature #20205: Enable
frozen_string_literal
by default - Bug #20796: Segmentation fault in rubyzip tests with ruby 3.4.0-preview2~659 e7cb70be4e on x86_64-darwin24
- YJIT: Rename method substitution functions and improve docs (+1) by XrXr · Pull Request #11919
- Bug #20804: Stop reserving stack ahead-of-time in on Linux
- [DOC] Tweaks for Array#take by BurdetteLamar · Pull Request #11929
- [DOC] Tweaks for Array#take_while by BurdetteLamar · Pull Request #11930
- Rewrite Numeric#dup and Numeric#+@ in Ruby by k0kubun · Pull Request #11933
- Rb ary inspect by BurdetteLamar · Pull Request #11935
- Bug #20803: Windows intermittent spec failure - ObjectSpace.memsize_of(:abc)
- grammar, 'same as a' for Proc#arity by BenMorganIO · Pull Request #764
- [DOC] Tweaks for Array#uniq! by BurdetteLamar · Pull Request #11950
- [DOC] Tweaks for Array#uniq by BurdetteLamar · Pull Request #11949
- Introduce Fiber Scheduler
blocking_region
hook. by ioquatix · Pull Request #11963 - Feature #19528:
JSON.load
defaults are surprising (create_additions: true
) - Bug #20853: Hash key retrieval after Process.warmup
- Add documentation for
RUBY_ASSERT_CRITICAL_SECTION
. by ioquatix · Pull Request #11982 - YJIT: Replace Array#each only when YJIT is enabled by k0kubun · Pull Request #11955
- Bug #20762:
make test-basic
with -DRGENGC_FORCE_MAJOR_GC is always failure - Bug #20856: Incorrect and inconsistent multi-thread eval execution with Prism compiler
- Feature #15554: warn/error passing a block to a method which never use a block
- Bug #20873:
printf("%f")
returns wrong result forRational
withFIXNUM_MIN
- Bug #20868: Method#hash changes after compaction
- Bug #20745: IO::Buffer#copy triggers UB when src/dest buffers overlap
ubf_th
appears to be unused. by ioquatix · Pull Request #11994- [DOC] Doc for Array#values_at by BurdetteLamar · Pull Request #11960
- Bug #20802: It is possible to set the encoding of an IO instance to one that requires binmode when binmode is not set
- Bug #20869: IO buffer handling is inconsistent when seeking
- Feature #19790: Optionally write Ruby crash reports into a file rather than STDERR
- Feature #20715:
Ractor.[]
andRactor.[]=
to access Ractor local storage - Feature #20627:
require
on Ractor should run on the main Ractor - Feature #20811:
warning: in a**b, b may be too big
is really helpful? - [DOC] Doc for Array#zip by BurdetteLamar · Pull Request #11961
- Bug #20883: sprintf with binary strings has incorrect coderange
- Bug #20800: Don't place
ruby
executable into/usr/libexec/x86_64-linux/bin
- Fix false-positive memory leak using Valgrind in YJIT by peterzhu2118 · Pull Request #12057
- Bug #20808: Data#pretty_print doesn't handle private or remove attribute readers
- Bug #20886: Crash due to double free on regex timeout after stack allocations
- Allow Net::HTTP#request to raise Net::OpenTimeout by shioimm · Pull Request #12062
- Bug #20892:
ObjectSpace.dump
can produce broken JSON for classes with temporary names - Feature #20350: Return chilled string from Symbol#to_s
- YJIT: Specialize
String#[]
(String#slice
) with fixnum arguments by rwstauner · Pull Request #12069 - YJIT: Add inline_block_count stat by k0kubun · Pull Request #12081
- Feature #20794: Expose information about the currently running GC module
- Do not wait connection attempt delay without in progress fds by shioimm · Pull Request #12087
- YJIT: Specialize Integer#pred by k0kubun · Pull Request #12082
- YJIT: Specialize String#dup by k0kubun · Pull Request #12090
- Make fast_fallback option false by default temporarily by shioimm · Pull Request #12070
- Disable HEv2 tests temporarily by shioimm · Pull Request #12097
- Fix stack-use-after-return by shioimm · Pull Request #12105
- Bug #20900: Net.send(:remove_const, :HTTPSession) does not emit warnings
- Feature #20901: What's status of Refinement#refined_class?
- Feature #20876: Introduce
Fiber::Scheduler#blocking_operation_wait
to avoid stalling the event loop. - Feature #20902: Allow
IO::Buffer#copy
to release the GVL. - Bug #20871: Including methods in Enumerable doesn't make them available in Array
- Bug #20863:
zlib.c
callsrb_str_set_len
andrb_str_modify_expand
(and others) without holding the GVL. - [YJIT: Make compilat...