summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-11-14ZJIT: Add individual tests for complex arg pass countersRandy Stauner
Make it easier to see what happens when one is changed.
2025-11-15Add rubygems package to fix cygwin CIDaisuke Fujimura (fd0)
2025-11-14Skip tests in TestThreadLockNativeThread when using LSANPeter Zhu
These tests use NM threads but NT is not freed for MN thread, causing it to be reported as memory leaks in LSAN. For example: #1 0x62ee7bc67e99 in calloc1 gc/default/default.c:1495:12 #2 0x62ee7bc7ba00 in rb_gc_impl_calloc gc/default/default.c:8216:5 #3 0x62ee7bc631d1 in ruby_xcalloc_body gc.c:5221:12 #4 0x62ee7bc5cdbc in ruby_xcalloc gc.c:5215:34 #5 0x62ee7bdea4c6 in native_thread_alloc thread_pthread.c:2187:35 #6 0x62ee7bdec31b in native_thread_check_and_create_shared thread_pthread_mn.c:429:39 #7 0x62ee7bdea484 in native_thread_create_shared thread_pthread_mn.c:531:12 #8 0x62ee7bdea1da in native_thread_create thread_pthread.c:2403:16 #9 0x62ee7bdde2eb in thread_create_core thread.c:884:11 #10 0x62ee7bde4466 in thread_initialize thread.c:992:16
2025-11-14ZJIT: Support JIT-to-JIT calls to callees with optional parametersAlan Wu
* Correct JIT entry points for optionals so each optional start with nil before their initialization routine runs. Establish `jit_entry_points[filled_opts_num]` gives the appropriate entry point * Correct number of HIR block parameters for each JIT entry point * Entry points that share the same ISEQ PC get separate entries since they start with different state. No more deduplication. * Reject post parameters. Was hidden behind check for optionals. * Make sure to visit every BB in iseq_to_hir(). Some wasn't visited when the initialization routine for an optional terminates the block in a `SideExit`. Remove the now impossible `FailedOptionalArguments`.
2025-11-14ZJIT: Check argument count matches callee's parametersAlan Wu
2025-11-14ZJIT: Remove done TODO [ci skip]Alan Wu
2025-11-14ZJIT: Remove dead function and set .freeze reasonMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_OR into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_AND into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_GE into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_LE into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_LT into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_MOD into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_DIV into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_MULT into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_NEQ into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_GT into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_MINUS into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_PLUS into cruby_methodsMax Bernstein
2025-11-14ZJIT: Move special Fixnum BOP_EQ into cruby_methodsMax Bernstein
2025-11-14ZJIT: Break out CFunc send fallback stats (#15193)Max Bernstein
lobsters before: ``` Top-14 instructions with uncategorized fallback reason (100.0% of total 5,583,226): invokesuper: 3,039,693 (54.4%) invokeblock: 1,181,433 (21.2%) sendforward: 572,612 (10.3%) opt_eq: 464,760 ( 8.3%) opt_plus: 169,904 ( 3.0%) opt_minus: 77,487 ( 1.4%) opt_send_without_block: 42,264 ( 0.8%) opt_gt: 12,263 ( 0.2%) opt_neq: 9,033 ( 0.2%) opt_mult: 8,384 ( 0.2%) opt_or: 4,792 ( 0.1%) opt_lt: 404 ( 0.0%) opt_and: 160 ( 0.0%) opt_ge: 37 ( 0.0%) Top-15 send fallback reasons (100.0% of total 33,316,627): send_without_block_polymorphic: 12,847,877 (38.6%) uncategorized: 5,583,226 (16.8%) one_or_more_complex_arg_pass: 4,504,446 (13.5%) send_not_optimized_method_type: 3,773,513 (11.3%) send_without_block_no_profiles: 2,663,575 ( 8.0%) send_no_profiles: 2,206,479 ( 6.6%) send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%) send_polymorphic: 467,750 ( 1.4%) send_without_block_megamorphic: 428,364 ( 1.3%) send_without_block_direct_too_many_args: 33,097 ( 0.1%) send_without_block_cfunc_array_variadic: 22,255 ( 0.1%) obj_to_string_not_string: 19,435 ( 0.1%) send_megamorphic: 17,153 ( 0.1%) send_without_block_not_optimized_method_type: 5,922 ( 0.0%) ccall_with_frame_too_many_args: 961 ( 0.0%) ``` lobsters after: ``` Top-4 instructions with uncategorized fallback reason (100.0% of total 4,835,995): invokesuper: 3,039,692 (62.9%) invokeblock: 1,181,427 (24.4%) sendforward: 572,612 (11.8%) opt_send_without_block: 42,264 ( 0.9%) Top-17 send fallback reasons (100.0% of total 33,316,645): send_without_block_polymorphic: 12,847,879 (38.6%) uncategorized: 4,835,995 (14.5%) one_or_more_complex_arg_pass: 4,502,767 (13.5%) send_without_block_no_profiles: 2,663,578 ( 8.0%) send_not_optimized_method_type: 2,381,743 ( 7.1%) send_no_profiles: 2,206,481 ( 6.6%) send_cfunc_variadic: 1,391,775 ( 4.2%) send_without_block_operands_not_fixnum: 747,228 ( 2.2%) send_without_block_not_optimized_method_type_optimized: 742,574 ( 2.2%) send_polymorphic: 467,750 ( 1.4%) send_without_block_megamorphic: 428,364 ( 1.3%) send_without_block_direct_too_many_args: 33,097 ( 0.1%) send_without_block_cfunc_array_variadic: 22,255 ( 0.1%) obj_to_string_not_string: 19,440 ( 0.1%) send_megamorphic: 17,153 ( 0.1%) send_without_block_not_optimized_method_type: 7,605 ( 0.0%) ccall_with_frame_too_many_args: 961 ( 0.0%) ```
2025-11-14ZJIT: Skip a flaky DNS test (#15192)Takashi Kokubun
2025-11-14Revert ".github/workflows: Stop ignoring RUBY_TESTOPTS"Takashi Kokubun
This reverts commit 946695cdad874e91bc25bedc3c7b322934ca0f07. Apparently this doesn't work for test-bundled-gems
2025-11-14.github/workflows: Stop ignoring RUBY_TESTOPTSTakashi Kokubun
$(RUBY_TESTOPTS) are used in $(TESTOPTS), so if you pass $(TESTOPTS), it'd be ignored.
2025-11-14YJIT: Fix stack handling in rb_str_dupJohn Hawthorn
Previously because we did a stack_push before ccall, in some cases we could end up pushing an uninitialized value to the VM stack when spilling regs as part of the ccall. Co-authored-by: Luke Gruber <luke.gru@gmail.com>
2025-11-14ZJIT: Add tests for sending to methods with keyword args (#15183)Randy Stauner
2025-11-14[ruby/prism] Reject endless method as a block parameter defaultEarlopain
Fixes [Bug #21661] https://github.com/ruby/prism/commit/475fa46a82
2025-11-14[ruby/prism] Use `method_defined?` instead of `instance_methods.include?`Nobuyoshi Nakada
While the latter creates an intermediate array of all method names including all ancestors, the former just traverse the inheritance chain and can stop if found once. https://github.com/ruby/prism/commit/6da384dd0e
2025-11-14[Feature #21572] Syntax error at capture in alternation patternNobuyoshi Nakada
Should fail even with `-c` option.
2025-11-14[ruby/rubygems] Removed deprecated Gem::Specification#has_rdoc, has_rdoc= ↵Hiroshi SHIBATA
and has_rdoc? https://github.com/ruby/rubygems/commit/b043538576
2025-11-14[ruby/rubygems] Add pattern matching support to Gem::NameTupleBrandon Weaver
https://github.com/ruby/rubygems/commit/9b19e1f555
2025-11-14[ruby/rubygems] Removed files for `gem query`Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/de269cfbb6
2025-11-14[ruby/rubygems] Removed deprecated ↵Hiroshi SHIBATA
Gem::DependencyInstaller#find_gems_with_sources https://github.com/ruby/rubygems/commit/1b3f3bf194
2025-11-14[ruby/rubygems] bin/rubocop -a --only Layout/EmptyLinesAroundClassBodyHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/94d4e633d1
2025-11-14[ruby/rubygems] Removed deprecated Gem::Util.silent_systemHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/728269cc4a
2025-11-14[ruby/rubygems] Removed deprecated Gem::Specification#validate_metadata, ↵Hiroshi SHIBATA
validate_dependencies and validate_permissions https://github.com/ruby/rubygems/commit/fbf38fc190
2025-11-14[ruby/rubygems] Removed deprecated Gem::Specification#default_executableHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/84ceaff1b7
2025-11-14[ruby/rubygems] Removed deprecated Gem::Platform.matchHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/f4b4f12f91
2025-11-14[ruby/rubygems] Removed deprecated Gem::Installer#unpackHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/96cef34041
2025-11-14[ruby/rubygems] Removed deprecated ↵Hiroshi SHIBATA
Gem::BasicSpecification.default_specifications_dir https://github.com/ruby/rubygems/commit/60f0b87d47
2025-11-14[ruby/rubygems] Update vendored version of connection_pool to 2.5.4Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/3f5330c9fc
2025-11-14[ruby/rubygems] bin/rubocop -a --only Style/RedundantParenthesesHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/be3b09c786
2025-11-14[ruby/rubygems] Update the all dependencies with rake updateHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/74c9eaf1f0
2025-11-14Adapt to Unicode directory changesMari Imaizumi
https://www.unicode.org/Public/emoji/ReadMe.txt > This directory contains data files for versions 1.0 to 16.0 of Unicode Emoji. > Starting with Unicode 17.0.0, the data files for Unicode Emoji are published in > https://www.unicode.org/Public/<version>/emoji/ > together with the related files in > https://www.unicode.org/Public/<version>/ucd/emoji/
2025-11-14[Feature #21275] Bump Unicode version to 17.0.0Mari Imaizumi
2025-11-14[ruby/rubygems] Use `method_defined?` instead of `instance_methods.include?`Nobuyoshi Nakada
While the latter creates an intermediate array of all method names including all ancestors, the former just traverse the inheritance chain and can stop if found once. https://github.com/ruby/rubygems/commit/b291070b3b
2025-11-14[ruby/mmtk] Lock VM in fork hooksPeter Zhu
If we are using multiple Ractors, other Ractors may allocate objects after rb_gc_impl_before_fork is ran because it does not lock the VM. This can cause the GC to be in a bad state since rb_gc_impl_before_fork may have terminated GC threads so a GC cannot run until rb_gc_impl_after_fork is ran. https://github.com/ruby/mmtk/commit/e4bea5676d
2025-11-14ZJIT: Use Mem.num_bits in Mem split (#15177)Max Bernstein
Fix the ``` write(2, "ruby: ZJIT has panicked. More info to follow...\n", 48) = 48 write(2, "\nthread '<unnamed>' panicked at zjit/src/backend/lir.rs:160:17:\nassertion failed: num_bits <= out_num_bits\n", 107) = 107 ``` based on ``` #25 0x0000aaaaaae8fb14 in zjit::backend::lir::Opnd::mem (num_bits=64, base=..., disp=0) at zjit/src/backend/lir.rs:160 #26 zjit::backend::arm64::{impl#3}::arm64_split::split_memory_address (asm=<optimized out>, opnd=<error reading variable: Cannot access memory at address 0x0>) at zjit/src/backend/arm64/mod.rs:260 #27 zjit::backend::arm64::{impl#3}::arm64_split::split_load_operand (asm=<optimized out>, opnd=...) at zjit/src/backend/arm64/mod.rs:273 ```
2025-11-13[DOC] Tweaks for String#tr_s!BurdetteLamar
2025-11-13[DOC] Tweaks for String#tr_sBurdetteLamar