The Ruby Programming Language
0
Ruby v4.0.0-preview2
Release date:
November 17, 2025
Previous version:
v3_5_0_preview1
(released April 17, 2025)
Magnitude:
125,697
Diff Delta
Contributors:
125 total committers
Commits:
2,283
impacting commits
895 Features Released with v4.0.0-preview2
Browse Other Releases
Latest Pending
Unreleased 😎
v4.0.1
Released January 13, 2026
91 Δ
v4.0.0
Released December 25, 2025
18,046 Δ
v4_0_0_preview2
Released November 17, 2025
27 Δ
v4.0.0-preview3
Released December 26, 2025
16,747 Δ
v4.0.0-preview2
Released November 17, 2025
125,697 Δ
v3_5_0_preview1
Released April 17, 2025
3,852 Δ
v3_4_8
Released December 16, 2025
80 Δ
v3_4_7
Released October 7, 2025
75 Δ
v3_4_6
Released October 5, 2025
62 Δ
v3_4_5
Released August 29, 2025
1,761 Δ
Top Contributors in v4.0.0-preview2
tekknolagi
k0kubun
byroot
nobu
deivid-rodriguez
rhenium
tagomoris
ko1
jeremyevans
XrXr
Directory Browser for v4.0.0-preview2
We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.
Release Notes Published
Note: The git tag v4_0_0_preview2 has been renamed to v4.0.0-preview2.
What's Changed
- Update usage of
enum rb_io_mode. by ioquatix · Pull Request #13128 - Feature #21268: Implement a lock-free hash set for fstring table - Ruby - Ruby Issue Tracking System
- Feature #20724: Update to Unicode 16.0 - Ruby - Ruby Issue Tracking System
- Ensure
struct rb_iois passed through tothread.c. by ioquatix · Pull Request #13134 - Tidy up
rb_io_fptr_finalize. by ioquatix · Pull Request #13136 - ZJIT: Add option to dump LIR by tekknolagi · Pull Request #13139
- Increase fiber sleep test tolerance. by ioquatix · Pull Request #13152
- ZJIT: Fix README example command by aidenfoxivey · Pull Request #13163
- Fix memoization for the
/(...){0}/case by makenowjust · Pull Request #13169 - ZJIT: Fold Send into SendWithoutBlockDirect if we know the class statically by tekknolagi · Pull Request #13172
- ZJIT: Emit CCall if we know the type statically, not just from profiles by tekknolagi · Pull Request #13173
- ZJIT: Bail out of HIR translation if we can't handle a send flag by tekknolagi · Pull Request #13182
- Feature #21216: Implement Set as a core class - Ruby - Ruby Issue Tracking System
- Bug #21257: YJIT can generate infinite loop when OOM - Ruby - Ruby Issue Tracking System
- ZJIT: Drop trace_zjit_* instructions by k0kubun · Pull Request #13189
- ZJIT: Drop a duplicated call into optimize by k0kubun · Pull Request #13196
- ZJIT: Replace GetConstantPath with Const if the IC is not empty by tekknolagi · Pull Request #13183
- ZJIT: Handle ZJIT options properly by k0kubun · Pull Request #13197
- ZJIT: Disable ZJIT instructions when USE_ZJIT is 0 by k0kubun · Pull Request #13199
- Update auto_request_review config for YJIT/ZJIT by k0kubun · Pull Request #13209
- Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing - Ruby - Ruby Issue Tracking System
- ZJIT: Compile opt_new to slow-path SendWithoutBlock by tekknolagi · Pull Request #13216
- ZJIT: Use RefCell to allow path compression in union-find by tekknolagi · Pull Request #13218
- Bug #21298:
ObjectSpace.allocation_class_pathreturns inconsistent results depending onTracePointstate - Ruby - Ruby Issue Tracking System - Bug #21289: Fix C level backtraces for USE_ELF - Ruby - Ruby Issue Tracking System
- ZJIT: Parse opt_newarray_send into HIR by tekknolagi · Pull Request #13242
- Fix
heap-use-after-freeinfree_fast_fallback_getaddrinfo_entryby shioimm · Pull Request #13231 - Bug #21303: heap-buffer-overflow of Array#difference via mutating hash method - Ruby - Ruby Issue Tracking System
- Bug #21305: heap-use-after-free of set#merge via mutating hash method - Ruby - Ruby Issue Tracking System
- Bug #21306: heap-use-after-free in set initialization via clearing the array while it’s being iterated - Ruby - Ruby Issue Tracking System
- Bug #21304: heap-use-after-free of Array#hash via mutating hash method - Ruby - Ruby Issue Tracking System
- YJIT: End the block after OPTIMIZE_METHOD_TYPE_CALL by k0kubun · Pull Request #13245
- Feature #15408: Deprecate ObjectSpace._id2ref - Ruby - Ruby Issue Tracking System
- Bug #18119: Ractor crashes when instantiating classes - Ruby - Ruby Issue Tracking System
- [DOC] Tweak for String#+@ by BurdetteLamar · Pull Request #13285
- ZJIT: Stop padding side exits by k0kubun · Pull Request #13295
- YJIT: Split the block on optimized getlocal/setlocal by k0kubun · Pull Request #13282
- Make
waiting_fdbehaviour per-IO. by ioquatix · Pull Request #13127 - Bug #19367: Issue with ractor local storage API - Ruby - Ruby Issue Tracking System
- Bug #21331: heap-use-after-free caused by rehash during transform_values! - Ruby - Ruby Issue Tracking System
- Bug #21332: heap-use-after-free caused by mutating the set - Ruby - Ruby Issue Tracking System
- Bump the required BASERUBY version to 3.1 by k0kubun · Pull Request #13321
- [DOC] Tweaks for String#[] by BurdetteLamar · Pull Request #13335
- [DOC] Tweaks for String#== by BurdetteLamar · Pull Request #13323
- [DOC] Tweaks for String#<< by BurdetteLamar · Pull Request #13306
- Bug #21333: heap-use-after-free caused by rehash during update - Ruby - Ruby Issue Tracking System
- Ensure that forked process do not see invalid blocking operations. by ioquatix · Pull Request #13343
- [DOC] Tweaks for String#=~ by BurdetteLamar · Pull Request #13325
- Prevent double free for too big repetition quantifiers by makenowjust · Pull Request #13332
- Don't enumerate
io->blocking_operationsif fork generation is different. by ioquatix · Pull Request #13359 - Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII - Ruby - Ruby Issue Tracking System
- Bug #21313:
itin rescue/ensure on prism - Ruby - Ruby Issue Tracking System - ZJIT: Create more ergonomic type profiling API by tekknolagi · Pull Request #13339
- Bug #21352: Invalid read in shape lookup code - Ruby - Ruby Issue Tracking System
- ZJIT: Propagate disasm feature to ZJIT and YJIT by k0kubun · Pull Request #13372
- Feature #21287: Remove SortedSet autoload and set/sorted_set - Ruby - Ruby Issue Tracking System
- ZJIT: Allow DCE to remove some CCalls by tekknolagi · Pull Request #13363
- Bug #21354: Symbol#to_proc is not ractor safe - Ruby - Ruby Issue Tracking System
- Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite - Ruby - Ruby Issue Tracking System
- [DOC] Set canonical root for online docs by st0012 · Pull Request #13410
- ZJIT: Parse getinstancevariable, setinstancevariable into HIR by tekknolagi · Pull Request #13413
- Allow
IO#closeto interrupt IO operations on fibers usingfiber_interrupthook. by ioquatix · Pull Request #12839 - Bump fiber scheduler version and add missing documentation. by ioquatix · Pull Request #13424
- ZJIT: Parse splatarray, concattoarray, pushtoarray into HIR by tekknolagi · Pull Request #13429
- Feature #21353: Add shape_id to RBasic under 32 bit - Ruby - Ruby Issue Tracking System
- Bug #21255: Can't build Ruby with Windows SDK 10.0.26100 - Ruby - Ruby Issue Tracking System
- bundle rbs-3.9.4 to fix test failure by soutaro · Pull Request #13287
- ZJIT: Add --enable-zjit=dev_nodebug by k0kubun · Pull Request #13456
- Bug #21380: Use-After-Free in String#split with In-Block String Modification - Ruby - Ruby Issue Tracking System
- Bug #21383: Prism leaks memory with invalid yield - Ruby - Ruby Issue Tracking System
- Feature #21205: Make File::Stat#birthtime available on Linux - Ruby - Ruby Issue Tracking System
- ZJIT: Assert that we're compiling a specific YARV insn to HIR by tekknolagi · Pull Request #13471
- ZJIT: Fold more fixnum operations by tavianator · Pull Request #13465
- Bug #15784: RUBY_DEBUG=gc_stress dumps core - Ruby - Ruby Issue Tracking System
- Bump bundled bigdecimal to 3.2.1 by tompng · Pull Request #13482
- Fix compatibility with fiber schedulers that don't implement
#fiber_interrupt. by ioquatix · Pull Request #13492 - Bug #21370:
itcan cause ISeq serialization failure - Ruby - Ruby Issue Tracking System - Bug #21394: Memory leak in Prism's RubyVM::InstructionSequence.new - Ruby - Ruby Issue Tracking System
- Launchable: Set env variables to prevent CI slowdowns by ono-max · Pull Request #13513
- ZJIT: Implement side exits for entry frames by k0kubun · Pull Request #13469
- ZJIT: Add newrange support by st0012 · Pull Request #13505
- Bug #21381: Different error messages when mixing
itand_1in block for Prism and parse.y - Ruby - Ruby Issue Tracking System - ZJIT: Pass self through basic block params by k0kubun · Pull Request #13529
- ZJIT: Panic unimplemented for OOB basic block args by havenwood · Pull Request #13533
- Bug #21400: rb_bug() hit when killing current root fiber on non-main thread - Ruby - Ruby Issue Tracking System
- Handle spurious wakeups in
Thread#join. by samuel-williams-shopify · Pull Request #13532 - Bug #21388: make install and bundled gems - Ruby - Ruby Issue Tracking System
- Bug #21201: Performance regression when defining methods inside
refineblocks - Ruby - Ruby Issue Tracking System - Feature #21219:
Object#inspectaccept a list of instance variables to display - Ruby - Ruby Issue Tracking System - Fix handling of cancelled blocking operations. by samuel-williams-shopify · Pull Request #13570
- Bug #21439: Crash with PM_SPLAT_NODE compiler error (Prism) - Ruby - Ruby Issue Tracking System
- Bug #21090: SEGV from require in Thread in Ractor - Ruby - Ruby Issue Tracking System
- ZJIT: Write a callee frame on JIT-to-JIT calls by k0kubun · Pull Request #13579
- Bug #21440: Cannot create instances of frozen Data subclasses - Ruby - Ruby Issue Tracking System
- ZJIT: Partially enable btest on CI by k0kubun · Pull Request #13613
- Feature #20782: Introduction of Happy Eyeballs Version 2 (RFC8305) in TCPSocket.new - Ruby - Ruby Issue Tracking System
- Fix blocking operation cancellation. by ioquatix · Pull Request #13614
- Bug #21438: use-after-free when resizing exivars - Ruby - Ruby Issue Tracking System
- Launchable: Terminate Launchable CLI process quickly by sending singa… by ono-max · Pull Request #13622
- ZJIT: Add support for putspecialobject by st0012 · Pull Request #13565
- Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals - Ruby - Ruby Issue Tracking System
- Bug #21441: SEGV during thread cleanup if profiler calls thread_profiles_frames at wrong time - Ruby - Ruby Issue Tracking System
- Bug #21312: ruby 3.5-dev installs a gemspec for rdoc that misses dependencies - Ruby - Ruby Issue Tracking System
- ZJIT: Support invokebuiltin opcodes by composerinteralia · Pull Request #13632
- ZJIT: Add pass to clean CFG by tekknolagi · Pull Request #13655
- Typofix by hsbt · Pull Request #13665
- ZJIT: Move ccall comments near ccall instructions by tekknolagi · Pull Request #13662
- Bug #21448: Random.urandom may fail to fall back to reading /dev/urandom on Linux < 3.17 - Ruby - Ruby Issue Tracking System
- Bug #21445: [BUG] push_mark_stack() called for broken object raised since cd9f447be247478d2eb3da985295735cce20cb23 - Ruby - Ruby Issue Tracking System
- Bug #21449: Set#divide is order dependent and not working correctly - Ruby - Ruby Issue Tracking System
- ZJIT: Optimize frozen array aref by tekknolagi · Pull Request #13666
- ZJIT: Parse putspecialobject(VMCore) into Const by tekknolagi · Pull Request #13683
- Allow wakeup mutex to be used in trap context. by ioquatix · Pull Request #13684
- Bug #17516: forking in a ractor causes Ruby to crash - Ruby - Ruby Issue Tracking System
- Feature #21389: Simplify Set#inspect output - Ruby - Ruby Issue Tracking System
- Bug #21377: core Set#inspect does not use inherited class name - Ruby - Ruby Issue Tracking System
- [DOC] Tweaks for String#byterindex by BurdetteLamar · Pull Request #13485
- Feature #21365: Add
Namespace#eval- Ruby - Ruby Issue Tracking System - ZJIT: Disable profiling instructions before asserting opcodes in tests by tekknolagi · Pull Request #13720
- ZJIT: Stop loading an extra parameter by k0kubun · Pull Request #13719
- Bug #21453: Missing rbs and rdbg binstubs - all OS's - Ruby - Ruby Issue Tracking System
- Fix race condition in signal handler query by sferik · Pull Request #13712
- ZJIT: setglobal should not return output by k0kubun · Pull Request #13744
- ZJIT: Add new ZJIT types for Set by st0012 · Pull Request #13743
- ZJIT: Enable a couple more btests by k0kubun · Pull Request #13748
- ZJIT: Don't compile functions with unhandled parameter types by tekknolagi · Pull Request #13749
- ZJIT: Mark GetLocal as having no effects by tekknolagi · Pull Request #13750
- ZJIT: Enable bootstraptest/test_block.rb by k0kubun · Pull Request #13751
- ZJIT: Stop tracking EP == BP assumption on JIT entry by k0kubun · Pull Request #13752
- ZJIT: Shorten Debug print for 64-bit VReg by k0kubun · Pull Request #13763
- Bug #21497: building issue when using gcc15, because C23 is default - Ruby - Ruby Issue Tracking System
- ZJIT: Support
Regexptype by st0012 · Pull Request #13760 - Launchable: Temporarily remove Launchable integration from Compilatio… by ono-max · Pull Request #13759
- ZJIT: Support spilling basic block arguments by k0kubun · Pull Request #13761
- ZJIT: Avoid panicing with "Option::unwrap() on None" by k0kubun · Pull Request #13762
- ZJIT: Add reason for SideExit by tekknolagi · Pull Request #13768
- ZJIT: Reject ISEQs with too-large stack_max by k0kubun · Pull Request #13770
- ZJIT: Skip a hanging ractor test by k0kubun · Pull Request #13774
- ZJIT: Bail out on register spill by k0kubun · Pull Request #13773
- ZJIT: Enable one more btest by k0kubun · Pull Request #13781
- ZJIT: Panic on BOP redefinition only when needed by k0kubun · Pull Request #13782
- ZJIT: Add a simple HIR validator by Fidget-Spinner · Pull Request #13780
- ZJIT: Add opnds macro for Vec<InsnId> to Vec<Opnd> by composerinteralia · Pull Request #13805
- [DOC] Tweaks for String#casecmp? by BurdetteLamar · Pull Request #13810
- ZJIT: Fix Rust warnings by st0012 · Pull Request #13813
- ZJIT: Support guarding *Exact types by st0012 · Pull Request #13797
- ZJIT: Mark profiled objects when marking ISEQ by k0kubun · Pull Request #13784
- Bug #19417: Regexp \p{Word} and [[:word:]] do not match Unicode Other_Number character - Ruby - Ruby Issue Tracking System
- Bug #21506: Fix timeout in
Addrinfo.getaddrinfoto actually take effect - Ruby - Ruby Issue Tracking System - [DOC] Tweaks for String#concat by BurdetteLamar · Pull Request #13836
- ZJIT: Avoid optimizing locals on eval by k0kubun · Pull Request #13840
- ZJIT: Add def-use validator via dataflow analysis by Fidget-Spinner · Pull Request #13814
- ZJIT: Implement patch points on BOP redefinition by k0kubun · Pull Request #13850
- Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it - Ruby - Ruby Issue Tracking System
- ZJIT: Print a message about ZJIT_RB_BUG when unused by k0kubun · Pull Request #13852
- Fix
heap-use-after-freeinrb_getaddrinfoby shioimm · Pull Request #13856 - Bug #21507: Regexp considers variable repetition quantifiers invalid in lookbehind - Ruby - Ruby Issue Tracking System
- ZJIT: Improve asm comments for side exits by k0kubun · Pull Request #13853
- ZJIT: Use Vec instead of HashMap for profiling by tekknolagi · Pull Request #13809
- ZJIT: Mark objects baked in JIT code by k0kubun · Pull Request #13862
- Bug #20686: URI::HTTPS can build URI with blank, invalid host - Ruby - Ruby Issue Tracking System
- Bug #21509: io/wait: IO#wait raises error when passed nil as timeout - Ruby - Ruby Issue Tracking System
- [DOC] Tweaks for String#delete_suffix! by BurdetteLamar · Pull Request #13872
- ZJIT: Restore SP register after JIT-to-JIT call by k0kubun · Pull Request #13882
- Feature #17473: Make Pathname to embedded class of Ruby - Ruby - Ruby Issue Tracking System
- Bug #21512: Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError) - Ruby - Ruby Issue Tracking System
- ZJIT: Only specialize direct positional-positional calls by tekknolagi · Pull Request #13899
- ZJIT: Start testing against
/test/ruby/and update all ZJIT related testing targets/docs by st0012 · Pull Request #13791 - Bug #21029: Prism behavior for
defined? (;x)differs - Ruby - Ruby Issue Tracking System - ZJIT: Profile each instruction at most num_profiles times by k0kubun · Pull Request #13903
- ZJIT: Remove an extra slash from $(TESTS) by k0kubun · Pull Request #13911
- Bug #21345: crash on evaluating 'a=>a,*,' - Ruby - Ruby Issue Tracking System
- ZJIT: run
zjit-test-allon CI with seed by st0012 · Pull Request #13912 - ZJIT: Remove dead have_two_fixnums function by tekknolagi · Pull Request #13913
- ZJIT: Split shift with immediate operand by tekknolagi · Pull Request #13914
- ZJIT: Eagerly infer types of rewritten Const instructions by tekknolagi · Pull Request #13917
- ZJIT: Check if BOP is redefined before rewriting by tekknolagi · Pull Request #13916
- YJIT: Side-exit on String#dup when it's not leaf by k0kubun · Pull Request #13921
- Feature #21347: Add
open_timeoutas an overall timeout option forSocket.tcp- Ruby - Ruby Issue Tracking System - Update NEWS for
open_timeoutofTCPSocket.newby shioimm · Pull Request #13930 - Flag rsock_raise_user_specified_timeout() as NORETURN by osyoyu · Pull Request #13928
- ZJIT: Mark the code region executable on partial failures by k0kubun · Pull Request #13937
- Bug #21461: Heap-buffer-overflow in Prism when encoding magic comment is invalid and assignment is incomplete - Ruby - Ruby Issue Tracking System
- Make protected documentation more explicit about differences by vinistock · Pull Request #13849
- ZJIT: Give up JIT-to-JIT calls for 6+ args by k0kubun · Pull Request #13939
- Bug #21256:
itvalue is wrapped in an array when that doesn't happen with numbered parameter - Ruby - Ruby Issue Tracking System - ZJIT: Remove obsoleted exit_trampoline by k0kubun · Pull Request #13943
- Bug #21326: Instruction generation differences between parse.y and prism for
def a(x, ...); b(...); end- Ruby - Ruby Issue Tracking System - ZJIT: Create perf map files for profilers by tekknolagi · Pull Request #13941
- ZJIT: Fix fixnum folding for negative values by st0012 · Pull Request #13942
- ZJIT: Support invalidating on method redefinition by st0012 · Pull Request #13875
- Bug #21187: Strings concatenated with
\getting frozen with literal hashes (PRISM only) - Ruby - Ruby Issue Tracking System - Launchable: Remove
launchable subsetcommand by ono-max · Pull Request #13969 - Fix bigand_int edgecase returning false by tompng · Pull Request #13987
- [DOC] Tweaks for String#each_grapheme_cluster by BurdetteLamar · Pull Request #13981
- Feature #21360: Inconsistent Support for
Exception#causeinFiber#raiseandThread#raise- Ruby - Ruby Issue Tracking System - ZJIT: Inline guard type checks for some built-in types by st0012 · Pull Request #14017
- ZJIT: Support invalidating constant patch points by st0012 · Pull Request #13998
- YJIT: Call YJIT hooks before enabling YJIT by k0kubun · Pull Request #14032
- Bug #21513: Converting endless range to set hangs - Ruby - Ruby Issue Tracking System
- Improve performance of bignum[beg, len] by tompng · Pull Request #14007
- ZJIT: Add --zjit-stats by k0kubun · Pull Request #14034
- ZJIT: Create delta debugging script to narrow JIT failures by tekknolagi · Pull Request #14041
- ZJIT: Catch more failed recursive compilations by tekknolagi · Pull Request #14042
- Port Oniguruma patches to prevent integer overflow by makenowjust · Pull Request #14027
- YJIT: Remove a dead test for getinlinecaches by st0012 · Pull Request #14033
- ZJIT: Prepare for sharing JIT hooks with ZJIT by k0kubun · Pull Request #14044
- Fix indents in Onigmo files to use spaces instead of tabs by makenowjust · Pull Request #14047
- ZJIT: Stub JIT-to-JIT calls by k0kubun · Pull Request #14052
- ZJIT: Add the ISEQ name to Block asm comments by k0kubun · Pull Request #14070
- ZJIT: Enable IncrCounter for arm64 by k0kubun · Pull Request #14086
- Bug #21188: PRISM does not end reading from tty with ^D twice - Ruby - Ruby Issue Tracking System
- ZJIT: Add helpers to prepare for C calls by k0kubun · Pull Request #14100
- ZJIT: Remove passing tests from exclusions by st0012 · Pull Request #14097
- Bug #21139: Prism and parse.y parses
it = itdifferently - Ruby - Ruby Issue Tracking System - [DOC] Tweaks for GC.start by BurdetteLamar · Pull Request #14093
- ZJIT: Profile type+shape distributions by tekknolagi · Pull Request #13901
- ZJIT: Avoid matching built-in iseq's HIR line numbers in tests by st0012 · Pull Request #14124
- ZJIT: Fix
Kernel#Float's annotation by st0012 · Pull Request #14123 - ZJIT: Fix "immediate value too large" on cmp for x86_64 by k0kubun · Pull Request #14125
- ZJIT: Implement SingleRactorMode invalidation by st0012 · Pull Request #14121
- ZJIT: Inline attr_reader/attr_accessor by tekknolagi · Pull Request #14126
- ZJIT: Set PC before StringCopy by tekknolagi · Pull Request #14141
- ZJIT: Create HeapObject Type by tekknolagi · Pull Request #14140
- ZJIT: Remove GC offsets overwritten by invalidation by k0kubun · Pull Request #14102
- ZJIT: Optimize class guards by directly reading klass field by st0012 · Pull Request #14136
- ZJIT: Implement
defined?codegen for non-yield calls by st0012 · Pull Request #14101 - ZJIT: Remove the need for unwrap() on with_num_bits() by k0kubun · Pull Request #14144
- ZJIT: Add a graphviz dumper for HIR by tekknolagi · Pull Request #14117
- ZJIT: Fix "memory operand with non-register base" by k0kubun · Pull Request #14153
- Bug #21398: Ractor.select hangs when multiple threads submit heavy jobs concurrently - Ruby - Ruby Issue Tracking System
- ZJIT: Add RubyVM::ZJIT.enabled? by k0kubun · Pull Request #14159
- ZJIT: Add compile/profile/GC/invalidation time stats by k0kubun · Pull Request #14158
- YJIT, ZJIT: Fix JITs compiling prelude by k0kubun · Pull Request #14171
- ZJIT: Implement
concatstringsinsn by st0012 · Pull Request #14154 - ZJIT: Add --zjit-exec-mem-size by k0kubun · Pull Request #14175
- ZJIT: Avoid splitting add_into/sub_into for x86_64 by k0kubun · Pull Request #14177
- ZJIT: Add flag to disable the HIR optimizer by tekknolagi · Pull Request #14181
- ZJIT: Avoid compiling failed ISEQs repeatedly by k0kubun · Pull Request #14195
- ZJIT: Prepare non-leaf calls for SetGlobal by st0012 · Pull Request #14197
- ZJIT: Fix
ObjToStringrewrite by st0012 · Pull Request #14196 - ZJIT: Implement
StringInterncodegen by st0012 · Pull Request #14207 - ZJIT: Enable or remove comments from YJIT by k0kubun · Pull Request #14214
- Ignore net-imap failures on Windows by k0kubun · Pull Request #14216
- ZJIT: Stop duplicating context-less side exits by k0kubun · Pull Request #14215
- Fix a static assertion incompatible with C++98 by k0kubun · Pull Request #14229
- Increase timeout for a flaky test by k0kubun · Pull Request #14228
- Skip an unstable Ractor test for macOS by k0kubun · Pull Request #14231
- Do not skip CI when it mentions "document" by k0kubun · Pull Request #14232
- Increase timeout for a flaky test by k0kubun · Pull Request #14233
- Fix RBS tests by soutaro · Pull Request #14220
- ZJIT: Set PC before function_stub_hit_body by k0kubun · Pull Request #14234
- Don't check for stack overflow when ec is NULL by jhawthorn · Pull Request #14236
- Skip an unstable test for macOS by k0kubun · Pull Request #14245
- Relax a delta for an unstable test by k0kubun · Pull Request #14246
- ZJIT: Make --zjit-dump-hir work with HIR opt disabled by k0kubun · Pull Request #14242
- ZJIT: Implement getspecial by eileencodes · Pull Request #13642
- Skip an unstable Ractor test for windows by k0kubun · Pull Request #14247
- ZJIT: Share function stub code using a trampoline by k0kubun · Pull Request #14225
- ZJIT: Remove unused HIR test code by tekknolagi · Pull Request #14248
- Bug #21546:
prefixin ruby.pc is wrong when--enable-load-relative- Ruby - Ruby Issue Tracking System - ZJIT: Codegen for NewHash by corona10 · Pull Request #14059
- ZJIT: Make sure output operands are not VRegs by tekknolagi · Pull Request #14188
- ZJIT: Handle ISEQ moves by k0kubun · Pull Request #14250
- Increase timeout on slow tests by tekknolagi · Pull Request #14264
- ZJIT: Fix BorrowError on --zjit-dump-disasm by k0kubun · Pull Request #14267
- Don't allow looking at the shape ID of immediates by tekknolagi · Pull Request #14266
- ZJIT: Compile toregexp by composerinteralia · Pull Request #14200
- ZJIT: Remove more Option from codegen by tekknolagi · Pull Request #14265
- ZJIT: Remove try_num_bits by k0kubun · Pull Request #14272
- Fix special consts unit tests for i686 by tekknolagi · Pull Request #14271
- YJIT: Improve locals names by st0012 · Pull Request #14285
- ZJIT: Remove unnecessary option return type on gen_branch_params by st0012 · Pull Request #14286
- Feature #21527: Proposal: Math.log1p and Math.expm1 - Ruby - Ruby Issue Tracking System
- Bug #21547: SEGV after 2083fa commit - Ruby - Ruby Issue Tracking System
- [DOC] Tweaks for String#hash by BurdetteLamar · Pull Request #14253
- ZJIT: Refactor
gen_new_hashby st0012 · Pull Request #14293 - Bug #20146: Code using Ractor with env
RUBY_MAX_CPU=1ends with unreachable - Ruby - Ruby Issue Tracking System - ZJIT: Allocate register for VRegs that begin and end at the same index by tekknolagi · Pull Request #14270
- ZJIT: Fill nils before function_stub_hit exit by k0kubun · Pull Request #14294
- Make
vm_search_methodreturn a cme instead of a cc by st0012 · Pull Request #14299 - [DOC] Write up NEWS entries for JITs by k0kubun · Pull Request #14301
- Bug #21548: SEGV: gc/default/default.c with rbs tests - Ruby - Ruby Issue Tracking System
- ZJIT: Allow querying a single ZJIT stat by k0kubun · Pull Request #14309
- ZJIT: Add compilation failure stats by k0kubun · Pull Request #14310
- ZJIT: Side-exit on unknown instructions by tekknolagi · Pull Request #14212
- Fix uninitialized next_shape_id by k0kubun · Pull Request #14348
- [DOC] Tweaks for String#intern by BurdetteLamar · Pull Request #14314
- Build ppc64le and s390x jobs in a separate workflow by k0kubun · Pull Request #14353
- Fix -Wcomment warnings from rbs by k0kubun · Pull Request #14349
- Feature #21553: Remove opt_aref_with and opt_aset_with instructions - Ruby - Ruby Issue Tracking System
- ZJIT: Canonicalize --zjit-log-compiled-iseqs filename by tekknolagi · Pull Request #14352
- ZJIT: Implement side exit stats by k0kubun · Pull Request #14357
- Bug #21535:
NoMethodErrorbecomesNameErrorwhen using...delegation and method call indirection - Ruby - Ruby Issue Tracking System - ZJIT: Specialize some Sends by tekknolagi · Pull Request #14363
- ZJIT: Pessimize locals in the presence of send (with block) by tekknolagi · Pull Request #14374
- Feature #21543: Point ArgumentError to the call site - Ruby - Ruby Issue Tracking System
- ZJIT: Refactor stats implementations by k0kubun · Pull Request #14378
- ZJIT: Add Ractor mode PatchPoint for ivar get/set by st0012 · Pull Request #14375
- ZJIT: Disable profiling in compile_iseq by tekknolagi · Pull Request #14385
- ZJIT: Prepare getglobal for non-leaf call by st0012 · Pull Request #14387
- ZJIT: Add code_region_bytes stat by k0kubun · Pull Request #14389
- ZJIT: Repurpose ExitCounters for unhandled YARV insns by k0kubun · Pull Request #14392
- ZJIT: Remove special case for defined?(method call) by tekknolagi · Pull Request #14401
- YJIT: Drop yjit-bench CI job by k0kubun · Pull Request #14394
- ZJIT: Specialize monomorphic GetIvar by tekknolagi · Pull Request #14388
- YJIT: Stop sharing rb_vm_send among different instructions by k0kubun · Pull Request #14393
- Bug #21538: initialize_dup not called when duping class/module - Ruby - Ruby Issue Tracking System
- Feature #21262: Proposal:
Ractor::Port- Ruby - Ruby Issue Tracking System - ZJIT: Bump default --zjit-call-threshold to 30 by k0kubun · Pull Request #14410
- ZJIT: Unskip a Ractor bootstrap test by st0012 · Pull Request #14421
- ZJIT: NewRangeFixnum instruction by altxtech · Pull Request #14409
- Update rbs sha to the latest aaa-3.9.x by k0kubun · Pull Request #14426
- ZJIT: Propagate and count CompileError on exits by k0kubun · Pull Request #14408
- ZJIT: Rename gen_save_pc to gen_prepare_call_with_gc by k0kubun · Pull Request #14427
- ZJIT: Clear jit entry from iseqs after TracePoint activation by st0012 · Pull Request #14407
- ZJIT: Remove unneeded test exclusions by st0012 · Pull Request #14430
- ZJIT: Use inspect_err on Result values by k0kubun · Pull Request #14431
- ZJIT: Handle
opt_case_dispatchinsn by st0012 · Pull Request #14433 - ZJIT: Count exits coming from jit_exception by k0kubun · Pull Request #14428
- ZJIT: Ensure
clippypasses and silence unnecessary warnings by aidenfoxivey · Pull Request #14439 - Bug #21534: ppc64le bootstraptest/test_ractor.rb aborted (core dumped) on configure cppflags=-DRUBY_DEBUG and -O3 - Ruby - Ruby Issue Tracking System
- ZJIT: Support compiling ISEQs for opt_pc = 0 by k0kubun · Pull Request #14441
- ZJIT: Add patchpoint for TracePoint by st0012 · Pull Request #14420
- ZJIT: Fix Rust compilation warning by st0012 · Pull Request #14443
- ZJIT: Compile invokesuper with dynamic dispatch by k0kubun · Pull Request #14444
- ZJIT: Run test-basic as well by k0kubun · Pull Request #14447
- ZJIT: Remove unneeded tracing and thread test exclusions by st0012 · Pull Request #14453
- ZJIT: Invalidate local variables on EP escape by k0kubun · Pull Request #14448
- ZJIT: Stop optimizing toplevel locals by k0kubun · Pull Request #14458
- ZJIT: Merge
make checkjobs by k0kubun · Pull Request #14459 - ZJIT: Fix tests for ZJIT by k0kubun · Pull Request #14460
- Bug #21563: Misleading error message when
to_procdoes not return a Proc in an Object used as a &block argument - Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- ZJIT: Add --zjit-stats=quiet option to collect stats without printing by rwstauner · Pull Request #14467
- ZJIT: Fix backtraces on opt_new by k0kubun · Pull Request #14461
- YJIT: Add more information to an assert message in jit_guard_known_class by k0kubun · Pull Request #14480
- ZJIT: Fix 30k if stmt test by aidenfoxivey · Pull Request #14446
- ZJIT, YJIT: Make the workflow names consistent with file names by k0kubun · Pull Request #14462
- ZJIT: Avoid mutating string in zjit stats by composerinteralia · Pull Request #14485
- ZJIT: Optimize
ObjToStringwith type guards by altxtech · Pull Request #14469 - ZJIT: Implement getblockparamproxy by k0kubun · Pull Request #14483
- ZJIT: Remove unneeded omission for optional param test by st0012 · Pull Request #14488
- ZJIT: Resurrect --seed to stabilize CI by k0kubun · Pull Request #14489
- Bug #21567: Crash when $LOADED_FEATURES is modified during require - Ruby - Ruby Issue Tracking System
- ZJIT: Compile ISEQs with forwardable parameters by k0kubun · Pull Request #14491
- YJIT: Stop sharing rb_vm_invokesuper among different instructions by k0kubun · Pull Request #14492
- ZJIT: Support
invokeblockinsn by st0012 · Pull Request #14496 - [DOC] ZJIT: Add a section for stats by st0012 · Pull Request #14497
- ZJIT: Set ZJIT_RB_BUG to help debugging CI issues by st0012 · Pull Request #14500
- YJIT: Rename
make yjit-smoke-testtomake yjit-checkby k0kubun · Pull Request #14502 - ZJIT: Revert
self_valremoval and rename it torecvby st0012 · Pull Request #14504 - YJIT: Tiny refactors by st0012 · Pull Request #14505
- Rename VM instruction classes to singular names by k0kubun · Pull Request #14507
- Explicitly declare VM instruction dependencies by k0kubun · Pull Request #14509
- ZJIT, YJIT: Drop "// From xxx.h" comments in bindgen by k0kubun · Pull Request #14519
- Bug #21561: Wrong encoding for File.dirname result on Windows - Ruby - Ruby Issue Tracking System
- [DOC] Tweaks for String#match? by BurdetteLamar · Pull Request #14477
- [DOC] Tweaks for String#match by BurdetteLamar · Pull Request #14476
- ZJIT: Add specific dynamic send type counters by st0012 · Pull Request #14528
- Feature #17398: SyntaxError in endless method - Ruby - Ruby Issue Tracking System
- ZJIT: Let fallbacks handle unknown call types by k0kubun · Pull Request #14518
- ZJIT: Share more code with YJIT in jit.c by k0kubun · Pull Request #14520
- Explicitly use a ruby version for prism to parse the code as by Earlopain · Pull Request #14523
- Feature #20925: Allow boolean operators at beginning of line to continue previous line - Ruby - Ruby Issue Tracking System
- Bug #21528: SyntaxError#message may have broken encoding with multibyte source under Prism - Ruby - Ruby Issue Tracking System
- ZJIT: Support compiling block args by k0kubun · Pull Request #14537
- ZJIT: Revert VM_CALL_ARGS_SPLAT and VM_CALL_KWARG support by k0kubun · Pull Request #14565
- ZJIT: Print local names in FrameState by tekknolagi · Pull Request #14571
- ZJIT: Debug mechanism to verify leafness for
gen_prepare_call_with_gcby altxtech · Pull Request #14553 - ZJIT: Revert documentation indent by aidenfoxivey · Pull Request #14580
- ZJIT: Add stat for
def_typeof send fallbacks by st0012 · Pull Request #14533 - ZJIT: Split Insn::Const from Insn::GetBlockParamProxy by k0kubun · Pull Request #14583
- Use
ec->interrupt_maskto prevent interrupts. by ioquatix · Pull Request #14588 - ZJIT: Annotate BasicObject#initialize by tekknolagi · Pull Request #14590
- ZJIT: Support variadic C calls by st0012 · Pull Request #14575
- ZJIT: Compile sendforward with dynamic dispatch by k0kubun · Pull Request #14501
- ZJIT: Count writes to the VM frame by tekknolagi · Pull Request #14597
- ZJIT: Put exit reasons later in stats_string by k0kubun · Pull Request #14599
- ZJIT: Test disasm with insta by k0kubun · Pull Request #14602
- ZJIT: Measure reading/writing locals with level > 0 by tekknolagi · Pull Request #14601
- Make it easier to reproduce commands from CI by rwstauner · Pull Request #14609
- ZJIT: Fix disasm tests on release build by k0kubun · Pull Request #14612
- ZJIT: Avoid unnecessary
PopOpndsandPushOpndscodegen by st0012 · Pull Request #14614 - ZJIT: Refactor
NewRangeFixnumby altxtech · Pull Request #14607 - ZJIT: Improve
zjit_bisect.rbby st0012 · Pull Request #14592 - Clarify what happens when IO.popen's block returns by rwstauner · Pull Request #14626
- ZJIT: Add polymorphism counters by aidenfoxivey · Pull Request #14608
- YJIT: Pass iseq pointer to get/set classvariable functions by st0012 · Pull Request #14625
- ZJIT: Clean up RangeType by tekknolagi · Pull Request #14627
- ZJIT: Add more type information to DefinedIvar by tekknolagi · Pull Request #14628
- ZJIT: Clarify --zjit-disable-hir-opt job names by k0kubun · Pull Request #14632
- ZJIT: Guard receiver class for CCallVariadic by k0kubun · Pull Request #14630
- Feature #21550: Ractor.shareable_proc/shareable_lambda to make sharable Proc object - Ruby - Ruby Issue Tracking System
- ZJIT: Support gdb for debugging zjit-test by k0kubun · Pull Request #14637
- ZJIT: Add stack overflow check to
gen_ccall_variadicby st0012 · Pull Request #14636 - ZJIT: Allow testing JIT code on zjit-test by k0kubun · Pull Request #14639
- ZJIT: Add Ruby class objects to HIR type lattice automatically by tekknolagi · Pull Request #14647
- ZJIT: Incorporate bb0-prologue and PC check into HIR by k0kubun · Pull Request #14643
- ZJIT: Prefer *const u8 for consts by k0kubun · Pull Request #14652
- Bug #21569: [armv7, musl] SIGBUS in ibf_load_object_float due to unaligned VFP double load when reading IBF - Ruby - Ruby Issue Tracking System
- Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC - Ruby - Ruby Issue Tracking System
- ZJIT: Compile ISEQ with optional arguments by k0kubun · Pull Request #14653
- ZJIT: Incorporate parameter loads into HIR by k0kubun · Pull Request #14659
- ZJIT: Add stats for cfuncs that are not optimized by st0012 · Pull Request #14638
- ZJIT: Count dynamic instance variable lookups by tekknolagi · Pull Request #14615
- ZJIT: Inline attr_accessor/attr_writer to SetIvar by tekknolagi · Pull Request #14629
- ZJIT: Revert SetIvar specialization by tekknolagi · Pull Request #14673
- ZJIT: Unify fallback counters for send-ish insns by k0kubun · Pull Request #14676
- ZJIT: Add --zjit-trace-exits by aidenfoxivey · Pull Request #14640
- ZJIT: Fix "malformed format string" on stats by k0kubun · Pull Request #14681
- ZJIT: Rust code refactors by st0012 · Pull Request #14687
- ZJIT: Decouple stats and side exit tracing by aidenfoxivey · Pull Request #14688
- ZJIT: Re-apply attr_writer inlining by tekknolagi · Pull Request #14678
- ZJIT: Add more *_send_count stats by k0kubun · Pull Request #14689
- ZJIT: Allow higher profile num by st0012 · Pull Request #14698
- Bug #21568: Requiring core libraries when already requiring multiple user defined libraries with the same name can error - Ruby - Ruby Issue Tracking System
- ZJIT: Enable sample rate for side exit tracing by aidenfoxivey · Pull Request #14696
- ZJIT: Add
NoSingletonClasspatch point by st0012 · Pull Request #14680 - Bug #21620: master branch: LTO with >= -O2 optimization causes miniruby to segfault in vm_cc - Ruby - Ruby Issue Tracking System
- ZJIT: Make sure zjit-test-update works in asm tests by k0kubun · Pull Request #14708
- ZJIT: Add HIR for calling Cfunc with frame by st0012 · Pull Request #14661
- ZJIT: Count CCallWithFrame as optimized_send_count by k0kubun · Pull Request #14722
- Migrate notes-github-pr to ruby/ruby by k0kubun · Pull Request #14725
- ZJIT: strengthen test_reset_stats by nvh0412 · Pull Request #14738
- ZJIT: reduce string allocation in the Counter::name() by nvh0412 · Pull Request #14743
- Add a workflow to sync default gems by k0kubun · Pull Request #14749
- Sync Prism by k0kubun · Pull Request #14751
- Resurrect sync from GitHub to git.ruby-lang.org by k0kubun · Pull Request #14765
- Carve out a workflow for post-push hooks by k0kubun · Pull Request #14768
- Bug #21629: Ruby-3.4.7 prints -Wdefault-const-init-field-unsafe warnings on clang / llvm 21 - Ruby - Ruby Issue Tracking System
- Bug #21623: Endless method definition without parenthesis is wrongly accepted in Prism - Ruby - Ruby Issue Tracking System
- Bump RDoc by st0012 · Pull Request #14747
- ZJIT: Use type alias for num-profile and call-threshold's types by st0012 · Pull Request #14777
- post_push.yml: Migrate commit-email.rb to post_push by k0kubun · Pull Request #14779
- Migrate a test for commit-email.rb by k0kubun · Pull Request #14784
- Allow test-tool to use bundled gems in child processes by k0kubun · Pull Request #14794
- compilers.yml: Run only specified tests for --with-gmp by k0kubun · Pull Request #14798
- ZJIT: Profile opt_aref by aidenfoxivey · Pull Request #14778
- ZJIT: Name enum for bindgen by tekknolagi · Pull Request #14802
- Update bundled bigdecimal version by tompng · Pull Request #14809
- ZJIT: Add Insn:: ArrayArefFixnum to accelerate Array#[] by aidenfoxivey · Pull Request #14717
- [DOC] String slices doc by BurdetteLamar · Pull Request #14740
- ZJIT: Count unoptimized
Sendby st0012 · Pull Request #14801 - Bug #21635: Reading code from STDIN unexpectedly sets $_ in 3.4.6+ - Ruby - Ruby Issue Tracking System
- Bug #21638: Ractor-local
$DEBUGis not marked - Ruby - Ruby Issue Tracking System - [DOC] Fix minor typos in YJIT comments by bugtender · Pull Request #14829
- ZJIT: Inline well-known C functions into HIR by tekknolagi · Pull Request #14679
- ZJIT: Don't push Ruby frame for Thread#current by tekknolagi · Pull Request #14832
- ZJIT: Profile opt_ltlt and opt_aset by tekknolagi · Pull Request #14834
- ZJIT: Profile opt_size, opt_length, opt_regexpmatch2 by tekknolagi · Pull Request #14837
- ZJIT: Centralize the allocation of scratch registers by k0kubun · Pull Request #14815
- ZJIT: Add trace exit counter by aidenfoxivey · Pull Request #14831
- ZJIT: Don't const-fold Array#[] on non-frozen array by tekknolagi · Pull Request #14841
- ZJIT: Add HashAref to HIR and inline Hash#[] to HashAref by aidenfoxivey · Pull Request #14838
- ZJIT: Inline String#getbyte by tekknolagi · Pull Request #14842
- ZJIT: Profile opt_succ and inline Integer#succ for Fixnum by tekknolagi · Pull Request #14846
- ZJIT: Inline BasicObject#initialize by tekknolagi · Pull Request #14856
- ZJIT: Break out patchpoint exit reasons by tekknolagi · Pull Request #14858
- ZJIT: Don't push frame for String#empty? by jacob-shops · Pull Request #14836
- ZJIT: Don't push frame for Hash#size by jacob-shops · Pull Request #14871
- ZJIT: Mark commonly-edited files as merge=union by tekknolagi · Pull Request #14865
- ZJIT: Add inlining for Kernel#respond_to? by aidenfoxivey · Pull Request #14873
- Bug #21644: Stack consistency error for the
newrangeINSN peephole optimization with chilled string - Ruby - Ruby Issue Tracking System - ZJIT: Implement expandarray by tekknolagi · Pull Request #14847
- ZJIT: Remove idx from hir::Insn::Param by tekknolagi · Pull Request #14872
- ZJIT: Optimize send with block into CCallWithFrame by st0012 · Pull Request #14863
- ZJIT: Implement codegen for FixnumMod by tekknolagi · Pull Request #14857
- [DOC] Tweaks for String#rstrip by BurdetteLamar · Pull Request #14881
- [DOC] Tweaks for String#scan by BurdetteLamar · Pull Request #14884
- [DOC] Tweaks for String#scrub! by BurdetteLamar · Pull Request #14893
- [DOC] Tweaks for String#scrub by BurdetteLamar · Pull Request #14892
- ZJIT: Specialize String#<< to StringAppend by aidenfoxivey · Pull Request #14861
- ZJIT: Support make in zjit_bisect.rb by tekknolagi · Pull Request #14584
- ZJIT: Fix some dead code in the backend by k0kubun · Pull Request #14897
- ZJIT: Inline simple SendWithoutBlockDirect by tekknolagi · Pull Request #14888
- ZJIT: Revert removal of empty samples from zjit trace exits by aidenfoxivey · Pull Request #14905
- ZJIT: Handle invalid Counter on --zjit-trace-exits=counter by aidenfoxivey · Pull Request #14911
- ZJIT: Disable not-annotated cfuncs in --zjit-stats by tekknolagi · Pull Request #14915
- ZJIT: Inline Kernel#block_given? by tekknolagi · Pull Request #14914
- intern.h: mark rb_num_zerodiv as NORETURN by xiw · Pull Request #147
- [ZJIT] Implement classvar get and set by composerinteralia · Pull Request #14918
- ZJIT: Use iseq pointer directly in get/set class var codegen by st0012 · Pull Request #14921
- ZJIT: Inline << and push for Array in single arg case by aidenfoxivey · Pull Request #14926
- ZJIT: Add tests for non-leaf classvar get and set by composerinteralia · Pull Request #14924
- ZJIT: Specialize string length, bytesize, and size by jacob-shops · Pull Request #14928
- Bug #21648: [prism] ruby crashes for
for * in [10]; end- Ruby - Ruby Issue Tracking System - ZJIT: Remove a duplicated annotation by k0kubun · Pull Request #14968
- ZJIT: Print out full path to --zjit-trace-exits output by tekknolagi · Pull Request #14966
- ZJIT: Fix internal compiler error looking up profiles for trace_getinstancevariable by tekknolagi · Pull Request #14969
- ZJIT: Specialize Array#pop for no argument case by aidenfoxivey · Pull Request #14933
- ZJIT: Split HIR tests by aidenfoxivey · Pull Request #14967
- ZJIT: Support ParallelMov into memory by k0kubun · Pull Request #14975
- ZJIT: Drop --seed from test-all on CI by k0kubun · Pull Request #14976
- ZJIT: Add type checker to HIR by tekknolagi · Pull Request #14978
- Bug #21652: Marshal#dump documentation out-of-date/unclear regarding Data class - Ruby - Ruby Issue Tracking System
- ZJIT: Introduce a better LIR printer by k0kubun · Pull Request #14986
- ZJIT: Fix LoadIvarExtended test by tekknolagi · Pull Request #14989
- [DOC] ZJIT: Add documentation about native stack and Ruby's VM stack by st0012 · Pull Request #14993
- ZJIT: Fix incorrect self.class.respond_to? folding by tekknolagi · Pull Request #15001
- ZJIT: Split out optimized method types in stats by tekknolagi · Pull Request #15002
- ZJIT: Prevent specialization of splats instead of side-exiting by aidenfoxivey · Pull Request #15005
- Change load factor of concur. set from 0.5 to 0.75 by luke-gru · Pull Request #15007
- ZJIT: Run ruby-bench as a test suite by k0kubun · Pull Request #15003
- ZJIT: Simplify some profiling APIs by tekknolagi · Pull Request #15017
- ZJIT: Let AssemblerPanicHook write into stderr by k0kubun · Pull Request #15019
- ZJIT: Optimize VM_METHOD_TYPE_ALIAS by tekknolagi · Pull Request #15018
- ZJIT: Standardize variable name for callable method entry by st0012 · Pull Request #15021
- Update bundled irb and repl_type_completor version by tompng · Pull Request #15030
- Avoid taking vm barrier in heap_prepare() by luke-gruber · Pull Request #14425
- ZJIT: Implement include_p for opt_(new|dup)array_send YARV insns by rwstauner · Pull Request #14885
- ZJIT: Inline String#bytesize by Max-Leopold · Pull Request #15033
- ZJIT: Implement register spill by k0kubun · Pull Request #14936
- [DOC] Mention on top of
vm_*.cfiles the VM translation unit they're in by XrXr · Pull Request #15048 - Release VM lock before running finalizers by luke-gruber · Pull Request #15050
- ZJIT: Add test to reproduce binarytrees crash by rwstauner · Pull Request #15054
- ZJIT: Fix --zjit-mem-size and add --zjit-exec-mem-size by k0kubun · Pull Request #15041
- ZJIT: Use a shared trampoline across all ISEQs by k0kubun · Pull Request #15042
- Don't run global variable hook functions with VM lock held by luke-gruber · Pull Request #15053
- Bug #21664: Segfault when running Ractor tests in the same process - Ruby - Ruby Issue Tracking System
- ZJIT: Run ruby-bench CI for macOS arm64 as well by k0kubun · Pull Request #15040
- ZJIT: Track guard shape exit ratio by rwstauner · Pull Request #15052
- ZJIT: Add zjit_alloc_bytes and total_mem_bytes stats by k0kubun · Pull Request #15059
- ZJIT: Don't side-exit on VM_CALL_KWARG just SendWithoutBlock by rwstauner · Pull Request #15065
- ZJIT: Profile specific objects for invokeblock by tekknolagi · Pull Request #15051
- [DOC] Update glossary by rwstauner · Pull Request #15070
- ZJIT: Use interpreter inline cache in setinstancevariable by tekknolagi · Pull Request #14925
- ZJIT: Restore dropped_bytes after temporary OOM by k0kubun · Pull Request #15069
- zjit-macos.yml: Unset MAKEFLAGS before ruby-bench by k0kubun · Pull Request #15084
- ZJIT: Untag block handler by tekknolagi · Pull Request #15085
- ns_subclasses refcount accesses need to be atomic by luke-gruber · Pull Request #15083
- ZJIT: Fix an incomplete comment by k0kubun · Pull Request #15088
- ZJIT: Remove obsolete register spill counters by k0kubun · Pull Request #15089
- Feature #19630: [RFC] Deprecate
Kernel#open("|command-here")due to frequent security issues - Ruby - Ruby Issue Tracking System - ZJIT: Carve out IseqPayload into a separate module by k0kubun · Pull Request #15098
- ZJIT: Add compilation for checkkeyword by jacob-shops · Pull Request #14764
- Bug #21671: Rails CI raises
Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26with "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled - Ruby - Ruby Issue Tracking System - ZJIT: Specialize String#setbyte for fixnum case by aidenfoxivey · Pull Request #14927
- [DOC] Tweaks for String#to_i by BurdetteLamar · Pull Request #15036
- Bug #21673: Segmentation Fault in IRB when refining
Kernel#putsusingModule#refine(Regression since Ruby 3.4) - Ruby - Ruby Issue Tracking System - Automatically review default-gem pull requests by k0kubun · Pull Request #15116
- ZJIT: Deduplicate side exits by k0kubun · Pull Request #15105
- ZJIT: Snapshot once per YARV insn by tekknolagi · Pull Request #15082
- ZJIT: Add patch_point_count stat by k0kubun · Pull Request #15100
- ZJIT: Rename not_optimized_instruction to uncategorized_instruction by rwstauner · Pull Request #15130
- ZJIT: Split unhandled_hir_insn and unknown_newarray_send stats by k0kubun · Pull Request #15127
- Bug #21614: thread_sched_wait_events race with timer_thread_wakeup - Ruby - Ruby Issue Tracking System
- [DOC] Clarify
Thread#killdocumentation. by luke-gruber · Pull Request #15132 - Bug #21265: Crash when proc from Symbol#to_proc called outside refinement scope - Ruby - Ruby Issue Tracking System
- ZJIT: Set cfp->sp on leaf calls with GC by k0kubun · Pull Request #15137
- ZJIT: Rename things so that they aren't named "not_optimized_optimized" by rwstauner · Pull Request #15135
- Fix bootstraptest runner driver message by rwstauner · Pull Request #15072
- Bug #21666: Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44 - Ruby - Ruby Issue Tracking System
- Bug #21655: segfault when building 3.3.10 with GCC 15.2.1, regression from 3.3.9 - Ruby - Ruby Issue Tracking System
- Update Ruby version to 4.0 for the cgi warnings by yahonda · Pull Request #15141
- Bug #21680: Integer#digits bug starting from Ruby 3.1 - Ruby - Ruby Issue Tracking System
- ZJIT: Add standalone JSON implementation by aidenfoxivey · Pull Request #15162
- ZJIT: Revert patch_point_count counter by k0kubun · Pull Request #15160
- Bug #21683: IO#each_codepoint do not take care of encoding when IO uses encoding conversion for reading. - Ruby - Ruby Issue Tracking System
- Bug #21654: Set#new calls extra methods compared to previous versions - Ruby - Ruby Issue Tracking System
- Bug #21679: Segfault when ruby calls pthread_detach in rb_getnameinfo - Ruby - Ruby Issue Tracking System
- ZJIT: Use Mem.num_bits in Mem split by tekknolagi · Pull Request #15177
- Feature #21275: Update to Unicode 17.0 - Ruby - Ruby Issue Tracking System
- Feature #21572: Make illegal variable in alternation pattern a syntax error - Ruby - Ruby Issue Tracking System
- Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism - Ruby - Ruby Issue Tracking System
- ZJIT: Add tests for sending to methods with keyword args by rwstauner · Pull Request #15183
- ZJIT: Skip a flaky DNS test by k0kubun · Pull Request #15192
- ZJIT: Break out CFunc send fallback stats by tekknolagi · Pull Request #15193
- vm_dump.c: unbreak unwind on powerpc by barracuda156 · Pull Request #14650
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
https://github.com/ruby/ruby/compare/v3_5_0_preview1...v4.0.0-preview2
