summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-11-05Remove dead rb_hash_dumpPeter Zhu
2025-11-05[DOC] Update glossary (#15070)Randy Stauner
2025-11-05ZJIT: Profile specific objects for invokeblock (#15051)Max Bernstein
I made a special kind of `ProfiledType` that looks at specific objects, not just their classes/shapes (https://github.com/ruby/ruby/pull/15051). Then I profiled some of our benchmarks. For lobsters: ``` Top-6 invokeblock handler (100.0% of total 1,064,155): megamorphic: 494,931 (46.5%) monomorphic_iseq: 337,171 (31.7%) polymorphic: 113,381 (10.7%) monomorphic_ifunc: 52,260 ( 4.9%) monomorphic_other: 38,970 ( 3.7%) no_profiles: 27,442 ( 2.6%) ``` For railsbench: ``` Top-6 invokeblock handler (100.0% of total 2,529,104): monomorphic_iseq: 834,452 (33.0%) megamorphic: 818,347 (32.4%) polymorphic: 632,273 (25.0%) monomorphic_ifunc: 224,243 ( 8.9%) monomorphic_other: 19,595 ( 0.8%) no_profiles: 194 ( 0.0%) ``` For shipit: ``` Top-6 invokeblock handler (100.0% of total 2,104,148): megamorphic: 1,269,889 (60.4%) polymorphic: 411,475 (19.6%) no_profiles: 173,367 ( 8.2%) monomorphic_other: 118,619 ( 5.6%) monomorphic_iseq: 84,891 ( 4.0%) monomorphic_ifunc: 45,907 ( 2.2%) ``` Seems like a monomorphic case for a specific ISEQ actually isn't a bad way of going about this, at least to start...
2025-11-05ZJIT: Don't side-exit on VM_CALL_KWARG just SendWithoutBlock (#15065)Randy Stauner
2025-11-05ZJIT: Add zjit_alloc_bytes and total_mem_bytes stats (#15059)Takashi Kokubun
2025-11-05ZJIT: Track guard shape exit ratio (#15052)Randy Stauner
new ZJIT stats excerpt from liquid-runtime: ``` vm_read_from_parent_iseq_local_count: 10,909,753 guard_type_count: 45,109,441 guard_type_exit_ratio: 4.3% guard_shape_count: 15,272,133 guard_shape_exit_ratio: 20.1% code_region_bytes: 3,899,392 ``` lobsters ``` guard_type_count: 71,765,580 guard_type_exit_ratio: 4.3% guard_shape_count: 21,872,560 guard_shape_exit_ratio: 8.0% ``` railsbench ``` guard_type_count: 117,661,124 guard_type_exit_ratio: 0.7% guard_shape_count: 28,032,665 guard_shape_exit_ratio: 5.1% ``` shipit ``` guard_type_count: 106,195,615 guard_type_exit_ratio: 3.5% guard_shape_count: 33,672,673 guard_shape_exit_ratio: 10.1% ```
2025-11-05Skip an unstable IO test for mswinTakashi Kokubun
https://github.com/ruby/ruby/actions/runs/19107764906/job/54596244201
2025-11-05Extend timeout for unstable testsTakashi Kokubun
https://github.com/ruby/ruby/actions/runs/19111531630/job/54609629054
2025-11-05[ruby/erb] Fix tag shown in example of ERB expression tag andSam Partington
execution tag (https://github.com/ruby/erb/pull/92) These were the wrong way around. https://github.com/ruby/erb/commit/50a5cd76fe
2025-11-05ZJIT: Run ruby-bench CI for macOS arm64 as well (#15040)Takashi Kokubun
2025-11-05Fix ractor move of object with generic ivars (#15056)Luke Gruber
This bug was happening only when the `id2ref` table exists. We need to replace the generic fields before replacing the object id of the newly moved object. Fixes [Bug #21664]
2025-11-05Update bundled gems list as of 2025-11-05git
2025-11-06Update power_assert to 3.0.1Kazuki Tsujimoto
2025-11-05Suppressing unused warningsHiroshi SHIBATA
2025-11-05[ruby/strscan] [DOC] no doc for internal methodsNobuyoshi Nakada
https://github.com/ruby/strscan/commit/5614095d9c
2025-11-05[ruby/strscan] Deprecate constant `Id`Nobuyoshi Nakada
`$Id$` is for RCS, CVS, and SVN; no information with GIT. https://github.com/ruby/strscan/commit/9e3db14fa2
2025-11-05[ruby/strscan] [DOC] Add document of StringScanner::ErrorNobuyoshi Nakada
https://github.com/ruby/strscan/commit/16ec901356
2025-11-05Use Ruby 3.4 for sync_default_gems.rbHiroshi SHIBATA
``` tool/sync_default_gems.rb:177:in `block in <module:SyncDefaultGems>': undefined local variable or method `it' for SyncDefaultGems:Module (NameError) it.exclude << "lib/open3/jruby_windows.rb" ^^ from <internal:kernel>:90:in `tap' from tool/sync_default_gems.rb:176:in `<module:SyncDefaultGems>' from tool/sync_default_gems.rb:10:in `<main>' ```
2025-11-05sync_default_gems.rb: gracefully handle merge commitsKazuki Yamaguchi
Find interesting commits by following parents instead of relying on "git log". If we encounter a merge commit that may contain a conflict resolution, fall back to cherry-picking the merge commit as a whole rather than replaying each individual commit. The sync commit will include a shortlog for the squashed commits in that case.
2025-11-05sync_default_gems.rb: update paths and then do cherry-pickKazuki Yamaguchi
Currently, we try to git cherry-pick the upstream commit and then resolve merge conflicts in the working tree with the help of Git's rename detection. By the nature of heuristics, it does not work reliably when the upstream adds or removes files. Instead, first prepare temporary commit objects with uninteresting files removed and file paths adjusted for ruby/ruby, and then cherry-pick it. The cherry-pick should succeed as long as the mapping rules are correct, the upstream does not contain a funny merge that strictly depends on merge order, and there are no local changes in ruby/ruby.
2025-11-05sync_default_gems.rb: use declarative mapping rulesKazuki Yamaguchi
No behavior change is intended by this change.
2025-11-05sync_default_gems.rb: simplify rewriting commit messageKazuki Yamaguchi
Use "git commit --amend" instead of "git filter-branch" since we only need to handle one commit at HEAD.
2025-11-05sync_default_gems.rb: fix release check on case-sensitive filesystemsKazuki Yamaguchi
This fixes it for the English gem.
2025-11-05Support passing a #to_str object to Pathname.new for compatibilityBenoit Daloze
* See https://github.com/ruby/pathname/pull/57#issuecomment-3485646510
2025-11-05[ruby/strscan] Deprecate undocumented toplevel constant `ScanError`Nobuyoshi Nakada
https://github.com/ruby/strscan/commit/b4ddc3a2a6
2025-11-05[ruby/strscan] ISO C90 forbids mixed declarations and codeNobuyoshi Nakada
Cannot use C99 syntax, as far as supporting Ruby 2.6 and earlier. https://github.com/ruby/strscan/commit/f6d178fda5
2025-11-05Use the exception class mentioned in the docNobuyoshi Nakada
Instead of an undocumented constant.
2025-11-04ZJIT: Allow Store with 8-bit Opnd::MemTakashi Kokubun
2025-11-04ZJIT: Split LShift in arm64_scratch_splitTakashi Kokubun
2025-11-04ZJIT: Count caller side features for `complex_arg_pass`Alan Wu
After 34b0ac68b31, we use a fallback instead of side exit for splats. Count splats under `send_fallback_one_or_more_complex_arg_pass`.
2025-11-04ZJIT: Fallback counter rename: s/fancy/complex/Alan Wu
Kokubun bought up that "complex" is a more fitting name for what these counters count. Thanks! Also: - make the SendFallbackReason enum name consistent with the counter name - rewrite the printout prompt in zjit.rb
2025-11-04Don't run global variable hook functions with VM lock held (#15053)Luke Gruber
We can't run arbitrary ruby code with the VM lock held.
2025-11-05[ruby/strscan] [DOC] Remove the statement `rest?` is obsoleteNobuyoshi Nakada
`eos?` is opposite, cannot be used instead of `rest?`. https://github.com/ruby/strscan/commit/bee8cc547b
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#string=Burdette Lamar
(https://github.com/ruby/stringio/pull/172) https://github.com/ruby/stringio/commit/17ae4daf9a
2025-11-04ZJIT: Use a shared trampoline across all ISEQs (#15042)Takashi Kokubun
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#flushBurdette Lamar
(https://github.com/ruby/stringio/pull/169) https://github.com/ruby/stringio/commit/bef6541b55
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#isattyBurdette Lamar
(https://github.com/ruby/stringio/pull/167) https://github.com/ruby/stringio/commit/94303ace95
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#fsyncBurdette Lamar
(https://github.com/ruby/stringio/pull/170) https://github.com/ruby/stringio/commit/da338d7e5d
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#filenoBurdette Lamar
(https://github.com/ruby/stringio/pull/168) https://github.com/ruby/stringio/commit/9f10c7ae86
2025-11-05[ruby/stringio] [DOC] Tweaks for StringIO#internal_encodingBurdette Lamar
(https://github.com/ruby/stringio/pull/166) https://github.com/ruby/stringio/commit/5eeb61df34
2025-11-04[ruby/stringio] [DOC] Doc for StringIO.getcBurdette Lamar
(https://github.com/ruby/stringio/pull/163) https://github.com/ruby/stringio/commit/a126fe252f
2025-11-04ZJIT: Fix --zjit-mem-size and add --zjit-exec-mem-size (#15041)Takashi Kokubun
ZJIT: Fix --zjit-mem-size and resurrect --zjit-exec-mem-size
2025-11-04Resurrect tests for StringScanner#rest?Takashi Kokubun
that has not been obsolete. Partially reverting https://github.com/ruby/ruby/pull/15049.
2025-11-04[ruby/strscan] Resurrect a method that has not been obsoleteTakashi Kokubun
(https://github.com/ruby/strscan/pull/169) Partially revert https://github.com/ruby/strscan/pull/168 because strscan_rest_p did not have `rb_warning("StringScanner#rest? is obsolete")`. It is actively used by the latest tzinfo.gem, and we shouldn't remove it without deprecating it. https://github.com/ruby/strscan/commit/f3fdf21189
2025-11-04ZJIT: Add test to reproduce binarytrees crash (#15054)Randy Stauner
2025-11-04Release VM lock before running finalizers (#15050)Luke Gruber
We shouldn't run any ruby code with the VM lock held.
2025-11-04[ruby/strscan] Remove methods have been obsolete over two decadesNobuyoshi Nakada
https://github.com/ruby/strscan/commit/1387def685
2025-11-05Remove tests for obsolete StringScanner methodsNobuyoshi Nakada
ruby/strscan#168
2025-11-04[ruby/stringio] fix: (jruby) failing to clean buffer's code-rangekares
same bug as: https://github.com/jruby/jruby/issues/9035 https://github.com/ruby/stringio/commit/65b144b175
2025-11-04[ruby/strscan] Remove no longer used variableNobuyoshi Nakada
Since https://github.com/ruby/strscan/commit/92961cde2b42. https://github.com/ruby/strscan/commit/911f9c682a