summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2025-11-13[DOC] Tweaks for String#tr!BurdetteLamar
2025-11-14Skip null check for `brace_block`yui-knk
`brace_block` is `'{' brace_body '}'` or `k_do do_body k_end`. Both of them are not null so no need to check `$5`.
2025-11-14[ruby/rubygems] Suppress gem build message of bundler like this:Hiroshi SHIBATA
``` $ rake spec:regular Successfully built RubyGem Name: bundler Version: 4.0.0.dev File: bundler-4.0.0.dev.gem ``` https://github.com/ruby/rubygems/commit/8f0ca5eefa