-*- coding: utf-8 -*-

commit 3aa674ad9923a4a362a29840fad8421a6be7131f
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-05 20:01:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-03 02:27:38 +0900

    [ruby/psych] Properly set the message of Exceptions on TruffleRuby

    * From https://github.com/truffleruby/truffleruby/commit/1f81db82d2969ff7c5de0dacdecb38252664f42c

    https://github.com/ruby/psych/commit/dbabe7aac6

commit d3907245d7928279fcffd1af2903d16b2dbb2d29
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-05 19:13:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-03 02:27:38 +0900

    [ruby/psych] Fix usage of rb_struct_initialize() to pass an Array of members values and not a Hash

    * rb_struct_initialize() does not accept a Hash, and it's very brittle
      to pass `[{...}]` and to rely on that C function using rb_keyword_given_p().
      It basically worked accidentally, by having **members in the caller of the caller.
      Such logic when Struct#initialize is defined in Ruby (as in TruffleRuby) is basically impossible to implement,
      because it's incorrectly treating positional arguments as keyword arguments.
    * rb_struct_initialize() is used in CRuby to set members of Data instances in marshal.c (there is no rb_data_initialize() yet).
      There, the code passes an Array of members values for Data (and for Struct which are not `keyword_init: true`):
      https://github.com/ruby/ruby/blob/48c7f349f68846e10d60ae77ad299a38ee014479/marshal.c#L2150-L2176
      So we should do the same in psych.
    * Rename to init_data since it's only used for Data.
    * See https://github.com/ruby/psych/pull/692#discussion_r2483947279.

    https://github.com/ruby/psych/commit/3550148378

commit 17bcd71e4218994bfb6c2d398fa784ccd74d2f2c
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-12-02 22:41:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-03 01:20:43 +0900

    [ruby/prism] Clean up test excludes

    Mostly not having to list version-specific excludes when testing against ripper/parse.y

    Also don't test new syntax additions against the parser gems. The version support
    for them may (or may not) be expanded but we shouldn't bother while the ruby version
    hasn't even released yet.
    (ruby_parser translation is not versioned, so let as is for now)

    I also removed excludes that have since been implemented by parse.y

    https://github.com/ruby/prism/commit/e5a0221c37

commit c06c2203ed14e67dc12486c815b246395ef711e1
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-12-02 18:54:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-03 01:20:43 +0900

    [ruby/prism] Fix the ripper translator to parse as the current ruby

    Otherwise, it uses the latest prism version

    https://github.com/ruby/prism/commit/86406f63aa

commit cc929bff7ddfeccf320c621a6ae0f106e76a52f0
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-12-02 23:45:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-03 00:59:25 +0900

    [ruby/json] Don't call to_json on the return value of as_json for Float::NAN

    https://github.com/ruby/json/commit/28c57df8f7

commit 9eafeaed67903bbf2f2dca5eb473c1bf774712f6
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-30 17:50:50 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-12-02 23:49:49 +0900

    Box: Free rb_classext_t struct for a box when the box is GCed

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15371

commit 84bc1f038a4df63ff09490c981753d7234a52ce4
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-30 17:36:17 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-12-02 23:49:49 +0900

    Box: Mark boxes when a class/module is originally defined in it.

    When a class/module defined by extension libraries in a box, checking
    types of instances of the class needs to access its data type (rb_data_type_t).
    So if a class still exists (not GCed), the box must exist too (to be marked).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15371

commit 75f8a116c94f538ae18cf3c6921c3b0d2724dee7
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-30 17:33:05 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-12-02 23:49:49 +0900

    Box: Fix data type name

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15371

commit 03ed220cb0581d36606e13b1709d5ad133a45dc0
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-22 17:48:41 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-12-02 23:49:49 +0900

    Box: load_wrapping is not needed now

    Top level constants are defined on the Object class's constant table,
    and those constants can be referred as box::CONST_NAME from outside box.
    So load_wrapping() is not needed now.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15371

commit e515fa7ab1981df439a3a6b3635a0389f4216cce
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-26 21:28:44 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-12-02 18:35:16 +0900

    ZJIT: Improve documentation and make it easy to generate the types graph

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15330

commit 456ba321a84d34e76c8837ac96f47a11457480cb
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-12-01 12:16:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-02 17:25:17 +0900

    [ruby/rubygems] Make BUNDLE_LOCKFILE environment variable have precedence over lockfile method in Gemfile

    It would be simpler to do `options[:lockfile] ||= ENV["BUNDLE_LOCKFILE"]`,
    but that doesn't work as `options` is frozen.

    Fixes https://github.com/ruby/rubygems/pull/9117

    https://github.com/ruby/rubygems/commit/6e3603a0e9

commit 0e22108d60fbd0e338fb6e110ddd81a93b45b592
  Author:     Sam Westerman <sam@sampersand.me>
  AuthorDate: 2025-12-02 16:00:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-02 16:00:53 +0900

    [ruby/optparse] Remove `const_set` and instead use explicit assignments

    https://github.com/ruby/optparse/commit/6e2709a5fd

commit 7df97983be41e893afee6d0012c6dced55ff98f8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-12-02 11:39:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-02 12:39:58 +0900

    [ruby/rubygems] Improve banner message for the default command.

    Co-authored-by: Benoit Daloze <eregontp@gmail.com>

    https://github.com/ruby/rubygems/commit/463488b439

    Co-authored-by: Patrik Ragnarsson <patrik@starkast.net>

commit e2d176556e36ae7911af3ff6163420a48b82af92
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-12-02 08:12:45 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    CI: Distclean mswin

    Use the given `make-command` instead of the hard-coded `make` command.

    TODO: Use it for `make up` as well, in the future.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit b563be302f635116e30e3d80812962650f5564ef
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-29 17:13:56 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Clean empty directories

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 0be626e7551f9e9ed201b9c4a66aab5fcf3e6fbb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-29 17:13:21 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Clean timestamp directory for platform

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit a9961701582d842bb5866d57d8e22cf4aa46eba8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-12 17:24:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Remove bundled gems directories

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit b17f6a2aae96bb0faf0d379dc54eda9878541f77
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 23:11:08 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Clean miniprelude

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 0e222991bf11e28457819d42d751b517686c71e9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 18:28:53 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Remove DLL files linked by `prepare-vcpkg`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit b2b674562db8e922fa6a6bd0469f20f4caf0954e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 18:26:52 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Support removing wildcards in middle of path

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit c4fb79caa72d667512d1ca7647ac0443b22a3d47
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 18:25:24 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Clean generated sources

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit ec80e92a4789533a2ae0be3aa3709c6d6ab229d2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 11:53:03 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Refine outputs

    - Suppress logos from sub makes.
    - Set the prompt for `for` command when `echo` is on.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit fa513886410a85c2229acfa558c5375e5fad278b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 01:14:23 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Append `-p` option to `RMDIRS`

    `rmdirs.bat` may require this option explicitly to remove parent
    directories, in the future.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit a6c5d290abaa232a60c21fa2a48ac0228de8270b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 01:06:34 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Clean prism

    - intermediate source files
    - timestamp files
    - build directories

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 00d05dfca5584537d4581420c26ce0864d3eff96
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-10 21:19:36 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Remove extra suffix for sub-make

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit b0b8eb6a31fbe484319c9fd042433094e0e69c93
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-10 21:17:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Fix removing symlink

    Try `rd` first for symlink to a directory; `del` attemps to remove all
    files under the target directory, instead of the symlink itself.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit bb76e65f5696e936f72aa2ee0d17b5087f4a26ad
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-10 13:21:48 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Add `DLEXT` for clean-spec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 9cdee9db9b3bfc58f773912c072ce7ab78a7d724
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-10 11:55:09 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Fix rm.bat removing non existent file

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 01fd348847a22cee75426373799ebc2b1b797209
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-12 22:42:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 09:55:01 +0900

    Win32: Fix @ in middle of commands

    `@` is not a command, and cannot be placed after `||`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12558

commit 07ea9a38097c088efd6c2872f2a563dbc69a544a
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-26 07:26:02 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-12-02 09:42:14 +0900

    ZJIT: Optimize GetIvar for non-T_OBJECT

    * All Invariant::SingleRactorMode PatchPoint are replaced by
      assume_single_ractor_mode() to fix https://github.com/Shopify/ruby/issues/875
      for SingleRactorMode patchpoints.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15327

commit 2dfb8149d58694cd578dbe2222640499ac021231
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 18:26:09 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-12-02 08:56:21 +0900

    Clean generated transcoders

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15364

commit d0bb505a04bcd6a3d86c01d7c402c1f6205e69b4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-12-02 04:57:11 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Split Lea memory reads on x86_64

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit b9f1976f2334b4d9f55be5607de408eb7973c188
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 13:37:24 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Add HIR test for VM_OPT_NEWARRAY_SEND_PACK_BUFFER

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 985a4d977f1c1a5051c88b0c2f8af8913bd93008
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 13:30:05 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Open-code String#getbyte

    Don't call a C function.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 74e9f717200106be553e954e8ac354b54acf1c60
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 13:18:13 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Mark String#ascii_only? as leaf

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 6db83a00a4272eb1089d67da83e1cd9d4e10227b
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:44:53 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Specialize Integer#>>

    Same as Integer#>>. Also add more strict type checks for both Integer#>>
    and Integer#<<.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit a25196395e7502e4d6faad0856c697690d8a202e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:44:15 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    Add BOP_GTGT

    This will help JITs (and maybe later the interpreter) optimize
    Integer#>>.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 8aed31103874524395912fb7ffaee88b5e59a9c3
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:24:45 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Specialize String#<< with Fixnum

    Append a codepoint.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 91432a6bad7c52859e2920e780d578adcf4ac3f3
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:19:15 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Add late pass to fold AnyToString

    This otherwise would miss annotations of C methods.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit fd7d17abde4943edaefac7840f7258c8283d1d8e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:18:43 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Don't use GuardTypeNot

    Use actual receiver type. This gives us better method lookup.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 8ce78821cd8713d149ff27d9fbed38799e983349
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-25 12:18:16 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-12-02 08:19:26 +0900

    ZJIT: Mark Integer#to_s as returning StringExact

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15326

commit 4161c78a9d0c84f5afe6eb40b2cea6266cd59987
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-29 08:01:37 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-12-02 08:02:26 +0900

    Add remembered flag to heap dump

    This should be less common than than many of the other flags, so should
    not inflate the heap too much. This is desirable because reducing the
    number of remembered objects will improve minor GC speeds.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15347

commit e68fcf111b48a25ccf465e7acef13e4e145bcfb6
  Author:     Berkan Ünal <32255826+brkn@users.noreply.github.com>
  AuthorDate: 2025-12-02 07:02:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-02 07:02:40 +0900

    [ruby/strscan] [DOC] Fix broken link to helper methods
    (https://github.com/ruby/strscan/pull/179)

    ### Helper methods link is broken at master branch

    To reproduce
    1. go to [StringScanner
    docs](https://docs.ruby-lang.org/en/master/StringScanner.html)
    2. Click to link at line
       > See examples at **helper_methods**
    3. Resolved url gives 404:
    https://docs.ruby-lang.org/en/master/strscan/helper_methods_md.html

    ### Fix

    Currently link resolves as `href="doc/strscan/helper_methods_md.html"`
    Correct link should be resolved as `href="helper_methods_md.html"`

    https://github.com/ruby/strscan/commit/adb8678aa6

commit a8b49ab48703dfb8862ca28a443da0e764d692c6
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-12-02 06:51:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-02 06:51:29 +0900

    Test CC invalidation for singleton classes of objects (#15360)

    I made a recent change where all the tests passed but it turns out it
    was still wrong. We didn't have any tests for CC invalidation on
    singletons of objects that aren't classes or modules.

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit f92001344d0595bb6ef3a9576853edf1fa7588ca
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-12-02 03:02:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-02 03:02:35 +0900

    ZJIT: Fix erroneous version number for Iongraph (#15357)

    As per
    https://github.com/mozilla-spidermonkey/iongraph/blob/8d5e531305320216f86a24bfc9bc136a3627e832/src/iongraph.ts#L147,
    correct version number for the web-based tool is 1, rather than 2.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 5f92d6da1e48ce62205858cdcc7e60108e585f5f
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-12-02 03:01:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-02 03:01:12 +0900

    ZJIT: Standardize method dispatch insns' `recv` field (#15334)

    ZJIT: Standardize C call related insn fields

    - Add `recv` field to `CCall` and `CCallWithFrame` so now all method dispatch
      related instructions have `recv` field, separate from `args` field.
      This ensures consistent pointer arithmetic when generating code for these
      instructions.
    - Standardize `recv` field's display position in send related instructions.

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit e02eda194f1d1ff6998b5eb462dd2a2afc54281c
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-12-02 02:55:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-02 02:55:39 +0900

    Speedup RBASIC_FIELDS_COUNT (#15273)

    We know the argument is not a class, module or special const, so we can
    skip these checks.

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit c58970b57a91a10eb75f933258643d0393ce0ba8
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-12-02 02:14:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-02 02:14:08 +0900

    ZJIT: Optimize variadic cfunc `Send` calls into `CCallVariadic` (#14898)

    ZJIT: Optimize variadic cfunc Send calls into CCallVariadic

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit 8dc5822b007937f75eb0b156c9d9dcc7b16f9de8
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-12-01 23:22:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-01 23:46:36 +0900

    [ruby/prism] PM_NODE_INIT

    Hide the initialization of the base node inside the node
    initializer lists by a macro. As such, consistently enforce flags
    are set properly.

    https://github.com/ruby/prism/commit/c7b3d66d84

commit bc9ea585bee075480b4f12f84c8ab99315766595
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-12-01 13:49:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-01 13:49:31 +0900

    Add `rb_ec_close` function to manage execution context cleanup. (#15253)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 8eea9a502031e866f210accc7d02347fc55f65c9
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-12-01 13:19:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-12-01 13:19:42 +0900

    Nullify scheduler during `terminate_atfork_i`. (#15354)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 4c56001d27c4b2431fee65e6e9426319c475c45d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-12-01 10:45:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-01 11:35:13 +0900

    [ruby/prism] Fix up newlines in newline-delimited-literals

    When you have a %-literal that is delimited by newlines, and you
    are also interpolating a heredoc into that literal, then both
    concepts will attempt to add the same newline to the newline list.

    https://github.com/ruby/prism/commit/c831abb888

commit bcdad7f2867c5955ce06cd6fabd3b3c06361eb47
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-12-01 10:25:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-12-01 10:44:25 +0900

    [ruby/prism] Properly remove references

    https://github.com/ruby/prism/commit/17b246fd6a

commit f92ff9a86b4de5cd6e368be62077741aa40abc64
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-12-01 07:15:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-12-01 07:15:36 +0900

    Remove an excess semicolon in a macro

commit a0cd81e005d185be37b3a0323e4ee61b7b4360a6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-30 21:07:33 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-30 21:39:26 +0900

    Remove stale check

    Any objects with `call` method can be accepted as trap handlers, and
    the check for `Proc` type is useless since [ruby/ruby@29f5911cf545](https://github.com/ruby/ruby/commit/29f5911cf545).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15353

commit 9aa9cf8ea02f9860d735103b0e3ccfde62c68f95
  Author:     Daisuke Fujimura (fd0) <booleanlabel@gmail.com>
  AuthorDate: 2025-11-30 12:01:44 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-11-30 21:03:00 +0900

    Fix switch fall-through in copy_ext_file_error

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15350

commit d7cfd275f881bbd29d95dfdba585f055dd89ba44
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-30 14:31:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-30 14:31:34 +0900

    Set DESTDIR if relative loading

    When relative loading, `prefix` makes no sense actually.  Use the
    given (or default) path as `DESTDIR` instead.

    This change affects only when the relative loading is enabled and the
    destdir is not given, and does not change the final installation path,
    but makes the configuration options simpler a little.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15351

commit 806e554cc027b71cf0970fd4eb8f9ee5f1ccf128
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-30 14:14:03 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-30 14:14:03 +0900

    Compare with the upper bound of the loop variable

    Fix sign-compare warning

commit 3bd9583a52e9c3f55adb2097a84c4adb09cf74a3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 05:58:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 13:24:06 +0900

    [ruby/prism] Update unicode tables to match that of CRuby

    The unicode version has been updated upstream, which means new
    codepoints mapped to alpha/alnum/isupper flags. We need to update
    our tables to match.

    I'm purposefully not adding a version check here, since that is
    such a large amount of code. It's possible that we could include
    different tables depending on a macro (like UNICODE_VERSION) or
    something to that effect, but it's such a minimal impact on the
    running of the actual parser that I don't think it's necessary.

    https://github.com/ruby/prism/commit/78925fe5b6

commit c4b5fa419ee266c973be9b676caa2cfad0400d58
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 05:25:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 11:08:52 +0900

    [ruby/prism] Ensure implicit parameter nodes are destroyed.

    When we are about to destroy a node because of a syntax error, we
    need to check if it is potentially containing an implicit
    parameter in its subtree.

    https://github.com/ruby/prism/commit/1531433e02

commit b1314f159ec501f4fdc1c055293799b33c9ad134
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 05:36:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 11:08:41 +0900

    [ruby/prism] Fully destroy call operator write arguments

    If we are about to delete a call operator write argument, it needs
    to be removed from the list of block exits as well.

    https://github.com/ruby/prism/commit/ebc91c2e39

commit e3bc1852b3a7bcacf3e18d1644fbea7839abe019
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 05:51:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 06:00:53 +0900

    [ruby/prism] Revert "Fix invalid Ruby code example in ClassNode comment"

    https://github.com/ruby/prism/commit/b960079559

commit 748dc9ac8d68b7979936f171179c475c7f174953
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 04:31:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 04:48:37 +0900

    [ruby/prism] Fix out-of-bounds read in parser_lex_magic_comment

    https://github.com/ruby/prism/commit/e24e701f3a

    Co-authored-by: Steven Johnstone <steven.james.johnstone@gmail.com>

commit 7c2eb946e04940901ee1957c3fb43897c661568e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 04:28:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 04:48:30 +0900

    [ruby/prism] Fix label interpolated string

    https://github.com/ruby/prism/commit/e3e2b1ed04

commit f0f2a45f2d46fa4a0323ba5f29fba895b9e78f4b
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 04:20:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 04:48:08 +0900

    [ruby/prism] Fix out-of-bounds read after utf-8 BOM

    https://github.com/ruby/prism/commit/198080c106

    Co-authored-by: Steven Johnstone <steven.james.johnstone@gmail.com>

commit f2a6cb2dc88ca12938b45f35bc6e64d72060a959
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-30 04:14:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 04:47:45 +0900

    [ruby/prism] Handle invalid string pattern key

    When a pattern match is using a string as a hash pattern key and is
    using it incorrectly, we were previously assuming it was a symbol.
    In the case of an error, that's not the case. So we need to add a
    missing node in this case.

    https://github.com/ruby/prism/commit/f0b06d6269

commit 48a73303e45b1dbaa3422e14e35c7834db98be4d
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-27 00:13:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 04:01:11 +0900

    [ruby/prism] Optimize `Prism::Source#find_line`

    This is more concise and ruby does a better job performance-wise.

    This used to be `bsearch_index` already but https://github.com/ruby/prism/commit/6d8358c08395438d5924777c1fc3001a5ebf0aa3 changed it.
    https://github.com/ruby/prism/pull/1733#discussion_r1373702087 said:
    > Yeah the edge case was that the value matched an element exactly

    But surely there would be a test to show this behaviour?

    Gets called as part of pretty-printing nodes.
    Further reduces the time for `SnapshotsTest` by ~16% for me.

    https://github.com/ruby/prism/commit/f448e2b995

commit 8a0ae3a71a8b12a5e5929a565ba98fdf7c16233b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-30 03:42:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 03:53:59 +0900

    [ruby/tempfile] [DOC] Monofont some text in Tempfile.create

    https://github.com/ruby/tempfile/commit/7fa7436baa

commit d9093eab625c7a7029888e538c5474430fb1c110
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-30 03:40:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 03:53:59 +0900

    [ruby/tempfile] [DOC] Fix monofont for Tempfile.create

    https://github.com/ruby/tempfile/commit/96361e9e42

commit bae06ce22c5ab6a4a3085300274f258d55858e90
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-11-30 01:47:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 02:05:19 +0900

    [ruby/openssl] Remove dummy declarations for mOSSL and eOSSLError

    These declarations were added to every source file because older
    versions of RDoc did not resolve ancestor tree across files. Since
    RDoc 6.9.0 supports this, this workaround is no longer needed.

        https://redirect.github.com/ruby/rdoc/pull/1217

    https://github.com/ruby/openssl/commit/6491ce63be

commit c8bfbd5700bc00ab06e715235818c099a0063436
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-11-30 01:29:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-30 01:41:54 +0900

    [ruby/openssl] ts: fix docs for attrs on OpenSSL::Timestamp::Factory

    Move attribute documentation out of the class-level section and into
    the appropriate sections so that they attach correctly.

    https://github.com/ruby/openssl/commit/61410acc50

commit e13ad22274ff2432f705536832f03f360a5b4af5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-29 10:28:42 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-30 00:15:57 +0900

    Re-enable clang-18

    The issue might have been fixed in 8bf333a.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15348

commit 82b91ec7e55cb5ef4acd61213843614542bea3b3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-29 10:06:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 11:06:53 +0900

    [ruby/rubygems] Also use String#include? for RUBY_PLATFORM

    https://github.com/ruby/rubygems/commit/5fd95f38d3

commit 0f80d0ee05a2cb9daad426a7aa9aad7c4f2c3401
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-29 10:39:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-29 10:43:26 +0900

    [DOC] Fix backticks in InstructionSequence docs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15349

commit 005fba0713947a8241b7560ec4a6f052f49067c0
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-29 10:27:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-29 10:27:35 +0900

    [DOC] Tweaks for Module#<=>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15298

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 688350dacc4bab436043bd2435fc64633a1408ce
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-25 14:11:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-29 10:24:13 +0900

    [DOC] Avoid term 'derived'; use 'subclass'

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15317

commit 34290048be4a480437bbfff3dc5d8bf93e495d9b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-29 09:05:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-29 10:02:25 +0900

    Fixup with mswin and nmake build for -j flag

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15346

commit a9d2a46d64ead4dae8491c2f93b9e86416006fd4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-28 19:23:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 08:50:00 +0900

    [ruby/rubygems] Add informational message when default_cli_command is unset.

    https://github.com/ruby/rubygems/commit/9e44b5ebc4

commit 69293f52550032cbda8d92188407b8700f4c3bb1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-27 04:03:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 08:50:00 +0900

    [ruby/rubygems] Print help summary when the default command fail

    As mentioned in https://github.com/ruby/rubygems/issues/9124,
    the intent for changing the default command was to be more welcoming.

    I think we can acheive that by attempting to install, but to print
    that same help message if there is no Gemfile.

    That should address both concerns.

    https://github.com/ruby/rubygems/commit/f3f505c02a

commit 7dae2a1f488afc4133dfbd6ea243aaeb71107f71
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-27 02:58:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 08:49:59 +0900

    [ruby/rubygems] Restore `install` as default command

    Fix: https://github.com/ruby/rubygems/issues/9124

    This behavior is a deeply entrenched convention and changing it
    will annoy lots of developers with unclear gains.

    https://github.com/ruby/rubygems/commit/628e0ede46

commit f18bedaf96d950a69ae18df9a7eeea6754224c20
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-29 07:18:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 08:43:24 +0900

    [ruby/rubygems] Use String#include? with suggested by Performance/StringInclude cop

    https://github.com/ruby/rubygems/commit/fdd3419144

commit bb2e4d58cce135d3609dba1ee17ed614522a88bf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-28 16:57:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 07:50:49 +0900

    [ruby/rubygems] Fixed checksums generation issue when no source is specified

    https://github.com/ruby/rubygems/commit/bb4d791cb4

commit 7bd80e7e3e3dbb724616c038e6e0944128d6f905
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-29 07:06:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-29 07:06:24 +0900

    nmake didn't support -j flag

commit 413d15a3440abf570fc4bff24fe4b5ee8b7880a5
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-28 10:08:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 06:01:44 +0900

    [ruby/rubygems] Add `MAKEFLAGS=-j` by default before compiling:

    - Depending on the native extension, it can greatly reduce compilation
      time when executing recipes simultaneously.

      For example on Prism:

      ```
      # Before

      time gem install prism
      Building native extensions. This could take a while...
      Successfully installed prism-1.6.0
      1 gem installed

      gem install prism  3.61s user 0.80s system 95% cpu 4.595 total
      ```

      ```
      # After

      time MAKEFLAGS="-j" gem install prism
      Building native extensions. This could take a while...
      Successfully installed prism-1.6.0
      1 gem installed

      MAKEFLAGS="-j" gem install prism  4.47s user 1.27s system 246% cpu 2.330 total
      ```

      I don't think adding `-j` as a default is harmful, but I'm admitedly
      not very knowledgable when it comes to compiler.

    https://github.com/ruby/rubygems/commit/61340081c6

    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

commit 8c70def42c4596a02d45464d0d694d0c234fb1d7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-28 15:57:48 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-29 02:50:38 +0900

    Use ALWAYS_INLINE for vm_getinstancevariable

    Recently rb_vm_getinstancevariable was introduced exposing this method
    to ZJIT. On clang specifically this ended up causing the compiler not to
    inline into vm_exec_core and cause a significant performance regression
    in optcarrot for the interpreter.

    Co-authored-by: Luke Gruber <luke.gru@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15341

commit 191bfcb9c505ba3f5771f7ac67d6131aeb6b6837
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-29 00:17:06 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-11-29 02:34:59 +0900

    Define Kernel#instance_variables_to_inspect

    [Bug #21718]

    Otherwise objects that don't define it, but define a fairly liberal
    `method_missing` method will run into errors that are hard to understand:

    ```ruby
    class Foo
      def method_missing(name, ...)
        name
      end
    end

    p Foo.new.inspect
    ```

    ```
    'Kernel#inspect': wrong argument type Symbol (expected Array) (TypeError)
            from ../test.rb:7:in '<main>'
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15345

commit 8eaefd93951143661b1f515a8c9cda12263d2b56
  Author:     qraqras <q100rrraaa@gmail.com>
  AuthorDate: 2025-11-28 09:58:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-29 00:38:40 +0900

    [ruby/prism] Fix invalid Ruby code example in ClassNode comment

    https://github.com/ruby/prism/commit/5b7456c8f6

commit dcb9e17f467683b32f429736cf7598b1ce89cdc5
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-28 19:49:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-28 19:49:46 +0900

    [DOC] Update bundled gems list at 5a82880ea98617ab6894cd771ea3c3

commit 5a82880ea98617ab6894cd771ea3c3899f9521bc
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-11-28 19:48:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-28 19:48:53 +0900

    Bump RDoc version to 6.16.1 (#15344)

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit 404e6aa9b5e56b094b50f54c00487e5a7bfdf142
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-28 11:14:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-28 11:23:56 +0900

    [DOC] Fix typo in rb_debug_inspector_current_depth

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15340

commit 5e2e45fc242b79e844754691ad106c463ebb6251
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-27 17:49:28 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-28 09:04:16 +0900

    Fix for modgc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15338

commit 9929dc4440a76b57f362ad676a9b8b64c309a6d8
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-20 19:42:42 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-28 09:04:16 +0900

    Mask off unused VWA bits

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15338

commit 5b1ed1ef2076b3a89ba28836eee6072cb16124dc
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-11-28 08:31:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-28 08:31:32 +0900

    [DOC] Remove unneeded filename from rdoc-ref links (#15339)

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit 4cd6661e1853930c8002174c4ccd14f927fcd33b
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-11-28 05:12:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-28 05:12:24 +0900

    Reorganize page documentations (#15154)

    Re-organize page docs

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit 2f192c73cccdfd81e4ac2206feadc48b2757c19c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-25 01:41:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-27 22:01:57 +0900

    [ruby/json] Respect Coder depth when generating

    https://github.com/ruby/json/commit/9c36681b17

commit 78aa8d5b1d62a04d7cb5492f653266c99f4c55a2
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-25 01:36:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-27 22:01:56 +0900

    [ruby/json] Test current behavior regarding depth for Coder

    Coder currently ignores its depth and always resets it to 0 when
    generating a new JSON document.

    https://github.com/ruby/json/commit/cca1f38316

commit 68a7edaa81ccf09871227bf3e06e18cd19eb4a3e
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-11-27 21:05:45 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-11-27 21:05:45 +0900

    [DOC] Fix a link in NEWS.md

commit aebd391f9c31151a963b407a0429a1d57bd59c28
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-26 13:40:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-27 18:47:59 +0900

    Clean prism directory

commit 3ebb5b9c7811c3f551f61111c8495f859ad1861c
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-12 22:23:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-27 16:30:16 +0900

    Remove unneeded trailing semicolons

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13865

commit 4917f2335d60f5ff48843542939e3227d8c9d9b8
  Author:     Tommaso Barbato <tommasobarbato@gmail.com>
  AuthorDate: 2025-11-12 18:25:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-27 16:06:25 +0900

    Store snapshot info date as Date instead of String

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15147

commit 0f45d0c4847aded77c3aa42ae8b4da8299fa0a12
  Author:     Kouhei Yanagita <yanagi@shakenbu.org>
  AuthorDate: 2024-11-06 10:47:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-27 16:00:35 +0900

    Update man and help: -d option set $VERBOSE to true

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12006

commit a2c12d3ffeea99c957ee317fc613c7e0897a04f9
  Author:     Sebastian Dufner <13749199+der-scheme@users.noreply.github.com>
  AuthorDate: 2025-11-10 23:39:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-27 15:48:10 +0900

    Documentation: Added the `|`(pipe)/OR operator to syntax/methods.

    It was not documented as an operator that can be overriden, which is confusing because it makes you think it can't be.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15126

commit 3e926cd5dd2dfb2176b7d65f802519586813284c
  Author:     Alex Clink <alexclink@gmail.com>
  AuthorDate: 2025-11-14 23:51:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-27 15:44:09 +0900

    NEWS.md: fix wording about Ractor::Port

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15186

commit 10522ca19739978911a490b0f948865d42e560f8
  Author:     NAITOH Jun <naitoh@gmail.com>
  AuthorDate: 2025-11-27 14:07:54 +0900
  Commit:     Sutou Kouhei <kou@clear-code.com>
  CommitDate: 2025-11-27 15:00:57 +0900

    [DOC] Include strscan/lib

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15337

commit 2e770cdf773d79327cfdeb8178a1cb9b340f4560
  Author:     TOMITA Masahiro <tommy@tmtm.org>
  AuthorDate: 2025-11-27 11:10:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-27 11:10:43 +0900

    Fix argument handling in `IO::Buffer#each_byte` (#15309)

    The method incorrectly ignored its first argument and treated the second argument as offset and the third as count.
    This change makes the first argument be treated as offset and the second as count.

    Also fix incorrect block parameter in comments.

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit a60cd8787cb65a6077f609652f6042143d81b227
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-27 07:37:30 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-27 09:13:38 +0900

    Error if deleting a nonexistent obj from geniv

    I don't think this ever happened, but we should raise the same error
    we'd raise on lookup

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15336

commit 5bef7577b3b336a709935dd39e69abcf397c4684
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-27 07:02:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-27 09:13:38 +0900

    Ensure we don't dereference fields_obj as Qundef

    We rely on the GC to clear this when the GC is run on another EC than
    the cache.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15336

commit 970b18e9a94ff3e6496fb7324cff0798ffec6f24
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-27 06:33:10 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-27 09:13:38 +0900

    Clear fields obj when removing

    This fixes a bug where the gen_fields_cache could become invalid when
    the last ivar was removed. Also adds more assertions.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15336

commit db94a79da432bcdb9d48517733f11ccf03c7cd5d
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-27 08:36:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-27 08:36:00 +0900

    ZJIT: Count fallback reasons for set/get/definedivar (#15324)

    lobsters:

    ```
    Top-4 setivar fallback reasons (100.0% of total 7,789,008):
      shape_transition: 6,074,085 (78.0%)
       not_monomorphic: 1,484,013 (19.1%)
          not_t_object:   172,629 ( 2.2%)
           too_complex:    58,281 ( 0.7%)
    Top-3 getivar fallback reasons (100.0% of total 9,348,832):
         not_t_object: 4,658,833 (49.8%)
      not_monomorphic: 4,542,316 (48.6%)
          too_complex:   147,683 ( 1.6%)
    Top-3 definedivar fallback reasons (100.0% of total 366,383):
      not_monomorphic: 361,389 (98.6%)
          too_complex:   3,062 ( 0.8%)
         not_t_object:   1,932 ( 0.5%)
    ```

    railsbench:

    ```
    Top-3 setivar fallback reasons (100.0% of total 15,119,057):
      shape_transition: 13,760,763 (91.0%)
       not_monomorphic:    982,368 ( 6.5%)
          not_t_object:    375,926 ( 2.5%)
    Top-2 getivar fallback reasons (100.0% of total 14,438,747):
         not_t_object: 7,643,870 (52.9%)
      not_monomorphic: 6,794,877 (47.1%)
    Top-2 definedivar fallback reasons (100.0% of total 209,613):
      not_monomorphic: 209,526 (100.0%)
         not_t_object:      87 ( 0.0%)
    ```

    shipit:

    ```
    Top-3 setivar fallback reasons (100.0% of total 14,516,254):
      shape_transition: 8,613,512 (59.3%)
       not_monomorphic: 5,761,398 (39.7%)
          not_t_object:   141,344 ( 1.0%)
    Top-2 getivar fallback reasons (100.0% of total 21,016,444):
      not_monomorphic: 11,313,482 (53.8%)
         not_t_object:  9,702,962 (46.2%)
    Top-2 definedivar fallback reasons (100.0% of total 290,382):
      not_monomorphic: 287,755 (99.1%)
         not_t_object:   2,627 ( 0.9%)
    ```

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit bee02c41bc15780a45f47986ef638e17ca323ec3
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-27 07:14:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-27 07:14:55 +0900

    Fix a ractor barrier issue during VM cleanup. (#15091)

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit 1660b8145c30f53771671dec343fa7025a953fb5
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-27 06:23:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-27 06:23:34 +0900

    Eliminate redundant work and branching when marking T_OBJECT (#15274)

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit 5f55c9c8fb8f401537e7121171747196e66c3ba0
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-26 11:29:02 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-27 05:56:27 +0900

    YJIT: Abort expandarray optimization if method_missing is defined

    Fixes: [Bug #21707]
    [AW: rewrote comments]
    Co-authored-by: Alan Wu <alanwu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15325

commit c42c6c27c37c8336b219678f858dabd17442737d
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-27 03:55:31 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-27 05:37:35 +0900

    ZJIT: Remove dead unnecessary_transmutes allow

    ```
    warning: unknown lint: `unnecessary_transmutes`
       --> zjit/src/cruby.rs:107:9
        |
    107 | #[allow(unnecessary_transmutes)] // https://github.com/rust-lang/rust-bindgen/issues/2807
        |         ^^^^^^^^^^^^^^^^^^^^^^
        |
        = note: `#[warn(unknown_lints)]` on by default
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15332

commit 67a14e94c6d3f5c30221da2659cb2e5604ce5c6f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-20 18:14:35 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-27 03:40:56 +0900

    Set age bitmap outside of adding to freelist

    This allows us to do less work when allocating a fresh page.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15328

commit 795e290ead63bdcc79e35d569759e07d594267ab
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-01 01:10:32 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-27 03:40:56 +0900

    Avoid extra set of age bit flags

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15328

commit e057ff333a3b2964e52c8a12485374efa2464762
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-27 02:06:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-11-27 02:06:58 +0900

    [Doc] Fix duplicated entry in GC.stat documentation

commit ab3b79ea3db7779a9ee9eb6e39226d23b50fd012
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-22 22:57:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Don't copy JSON_Generator_State in generate_new

    Now that the state isn't mutated in generate_new, we no longer need to
    copy the struct, we can just use it.

    https://github.com/ruby/json/commit/d7964f8892

commit 98a9667736f56336c920770095f9c367add2257b
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-22 21:59:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Don't write depth to JSON_Generator_State in some cases

    For `JSON.generate` and `JSON::State#generate_new`, don't copy
    generate_json_data::depth to JSON_Generator_State::depth.

    In `JSON.generate`, the JSON_Generator_State is on the stack and
    discarded anyway. In `JSON::State#generate_new`, we copy the struct to
    avoid mutating the original one.

    https://github.com/ruby/json/commit/873b29ea34

commit 4b8ec8c9fc79859456661381e3e138ecc3e8c298
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-22 20:30:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Add depth to struct generate_json_data

    Instead of incrementing JSON_Generator_State::depth, we now increment
    generate_json_data::depth, and only copied at the end.

    https://github.com/ruby/json/commit/5abd434907

commit adc0521b22968c9f580ebb5b4d5aa674bd906cd3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-26 19:03:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Test to_json using State#depth

    https://github.com/ruby/json/commit/ac0a980668

commit dd6a4ea2b9cf6f3ab1ea01e044f3d789fb6d5450
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-24 23:40:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Test depth

    https://github.com/ruby/json/commit/d02e40324a

commit fb642b78cb89dd26ade620bda16ca78b570a907e
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-23 19:36:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 23:47:27 +0900

    [ruby/json] Test that depth of unfrozen State does not change

    https://github.com/ruby/json/commit/9d32cf4618

commit 38022961ae399015c542c409948aa4885e8e56e0
  Author:     Sam Westerman <sam@sampersand.me>
  AuthorDate: 2025-11-26 11:26:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 19:40:38 +0900

    [ruby/optparse] Remove unneeded `public`

    Removed public visibility from the candidate method.

    https://github.com/ruby/optparse/commit/9a784a89a2

commit 6ace0251ef47e669994adf268cbf4362c292bab0
  Author:     Sam Westerman <sam@sampersand.me>
  AuthorDate: 2025-11-26 10:50:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 19:40:38 +0900

    [ruby/optparse] Put `private` before method declarations

    https://github.com/ruby/optparse/commit/5478354d4f

commit c85eb2d0d05d2175018b3e0e544f1d87da029ee7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-26 18:40:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 18:55:51 +0900

    [ruby/timeout] Revert "Suppress warnings in two tests"

    This reverts commit https://github.com/ruby/timeout/commit/983cbf636a17, that is
    fixed by test-unit 3.7.3.

    https://github.com/ruby/timeout/commit/095207f270

commit ecdeb90fe94af86c6d84fe343c1f95b7d801367a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-26 13:39:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 16:01:41 +0900

    [ruby/rubygems] Bump up to 4.0.0.beta2

    https://github.com/ruby/rubygems/commit/b8529f48bf

commit 525ee3ab260039d71bc210e442686fdfc35262ee
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-26 15:45:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 15:50:54 +0900

    [ruby/cgi] Fix mixed declarations and code

    Use C90 syntax only, as far as supporting ruby 2.6 or earlier.

    https://github.com/ruby/cgi/commit/886c82982a

commit 43ed35de6c1759feef57dbad0a2fad045ee2751f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-26 15:33:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 15:41:42 +0900

    [ruby/cgi] Skip unless `CGI::EscapeExt` methods are implemented

    https://github.com/ruby/cgi/commit/7b5a13952b

commit 72eb929ec1cafa9a4439520b5ba75ac4e5ef1a82
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-26 11:50:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-26 11:50:24 +0900

    [DOC] Exclude the word Box from RDoc's autolinking

commit 724e94a09c616fb71edd992e274e73ee14bee896
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-26 03:10:31 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-26 11:26:08 +0900

    ZJIT: CI: Run `btest` with call-threshold=2

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15323

commit 0b0c2cc4cbed72e952233953f90bc2dbdc77c11b
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-26 11:08:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 11:08:43 +0900

    Update bundled gems list as of 2025-11-25

commit 6354afa64a5c59de50f064a7827cbd15d29dc874
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-26 10:23:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-26 10:23:33 +0900

    Update bundled gems list as of 2025-11-26

commit 1e6079dcaff8853d4b36cda9e9bb751139b27375
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-11-26 10:22:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-26 10:22:39 +0900

    [DOC] Use Aliki as the documentation website theme (#15319)

    Use Aliki as the documentation website theme

  Notes:
    Merged-By: st0012 <stan001212@gmail.com>

commit e84b91a292f3cd94fdf5f2ef548bf2377b1cf537
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-26 00:36:55 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-11-26 10:10:47 +0900

    Box: mark/move Box object referred via ENV/rb_env_t

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15321

commit 0654bcd4f809e97bca4a099fa78db9990fa5a4ae
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-11-26 00:21:40 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-11-26 10:10:47 +0900

    Box: Add a test to drop the reference to a box

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15321

commit 8bf333a199b5c099c2e3d3efeb2ba06f265db324
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-25 12:32:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-26 07:19:30 +0900

    Fix live object count for multi-Ractor forking

    Since we do not run a Ractor barrier before forking, it's possible that
    another other Ractor is halfway through allocating an object during forking.
    This may lead to allocated_objects_count being off by one.

    For example, the following script reproduces the bug:

        100.times do |i|
          Ractor.new(i) do |j|
            10000.times do |i|
              "#{j}-#{i}"
            end
            Ractor.receive
          end
          pid = fork { GC.verify_internal_consistency }
          _, status = Process.waitpid2 pid
          raise unless status.success?
        end

    We need to run with `taskset -c 1` to force it to use a single CPU core
    to more consistenly reproduce the bug:

        heap_pages_final_slots: 1, total_freed_objects: 16628
        test.rb:8: [BUG] inconsistent live slot number: expect 19589, but 19588.
        ruby 4.0.0dev (2025-11-25T03:06:55Z master 55892f5994) +PRISM [x86_64-linux]

        -- Control frame information -----------------------------------------------
        c:0007 p:---- s:0029 e:000028 l:y b:---- CFUNC  :verify_internal_consistency
        c:0006 p:0004 s:0025 e:000024 l:n b:---- BLOCK  test.rb:8 [FINISH]
        c:0005 p:---- s:0022 e:000021 l:y b:---- CFUNC  :fork
        c:0004 p:0012 s:0018 E:0014c0 l:n b:---- BLOCK  test.rb:8
        c:0003 p:0024 s:0011 e:000010 l:y b:0001 METHOD <internal:numeric>:257
        c:0002 p:0005 s:0006 E:001730 l:n b:---- EVAL   test.rb:1 [FINISH]
        c:0001 p:0000 s:0003 E:001d20 l:y b:---- DUMMY  [FINISH]

        -- Ruby level backtrace information ----------------------------------------
        test.rb:1:in '<main>'
        <internal:numeric>:257:in 'times'
        test.rb:8:in 'block in <main>'
        test.rb:8:in 'fork'
        test.rb:8:in 'block (2 levels) in <main>'
        test.rb:8:in 'verify_internal_consistency'

        -- Threading information ---------------------------------------------------
        Total ractor count: 1
        Ruby thread count for this ractor: 1

        -- C level backtrace information -------------------------------------------
        ruby(rb_print_backtrace+0x14) [0x61b67ac48b60] vm_dump.c:1105
        ruby(rb_vm_bugreport) vm_dump.c:1450
        ruby(rb_bug_without_die_internal+0x5f) [0x61b67a818a28] error.c:1098
        ruby(rb_bug) error.c:1116
        ruby(gc_verify_internal_consistency_+0xbdd) [0x61b67a83d8ed] gc/default/default.c:5186
        ruby(gc_verify_internal_consistency+0x2d) [0x61b67a83d960] gc/default/default.c:5241
        ruby(rb_gc_verify_internal_consistency) gc/default/default.c:8950
        ruby(gc_verify_internal_consistency_m) gc/default/default.c:8966
        ruby(vm_call_cfunc_with_frame_+0x10d) [0x61b67a9e50fd] vm_insnhelper.c:3902
        ruby(vm_sendish+0x111) [0x61b67a9eeaf1] vm_insnhelper.c:6124
        ruby(vm_exec_core+0x84) [0x61b67aa07434] insns.def:903
        ruby(vm_exec_loop+0xa) [0x61b67a9f8155] vm.c:2811
        ruby(rb_vm_exec) vm.c:2787
        ruby(vm_yield_with_cref+0x90) [0x61b67a9fd2ea] vm.c:1865
        ruby(vm_yield) vm.c:1873
        ruby(rb_yield) vm_eval.c:1362
        ruby(rb_protect+0xef) [0x61b67a81fe6f] eval.c:1154
        ruby(rb_f_fork+0x16) [0x61b67a8e98ab] process.c:4293
        ruby(rb_f_fork) process.c:4284

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15314

commit 4263f1d718df65bdf465552029a71b1ea9747067
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-25 14:07:08 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-26 06:48:35 +0900

    Store fiber serial as Ractor-local

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15318

commit 0eb53053f00458b5b32bb66f63cb7c4c5f402ec8
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-26 03:50:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-26 03:50:55 +0900

    ZJIT: Specialize setinstancevariable when ivar is already in shape (#15290)

    Don't support shape transitions for now.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit a36ebb18a6d4c4726915b6d7c16cfdbf4e5d417b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-18 04:01:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-11-26 00:40:31 +0900

    vm_cc_new: don't assume `cme` is present.

    [Bug #21694]

    `vm_search_super_method` explictly calls `vm_cc_new` with `cme=NULL`
    when there is no super class.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15221

commit e920ee32894dcd2ab0f97ff6f45c29d65024da0c
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-11-23 13:31:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-25 17:09:52 +0900

    [ruby/rubygems] Support bundle install --lockfile option

    This allows for specifying the lockfile to read and write. It mirrors
    the --gemfile option, and has higher priority than the lockfile
    method in the Gemfile. It also mirrors the bundle lock --lockfile
    option.

    When the --lockfile option is used, it is applied twice. First, before
    the Gemfile is read, to specify the lockfile to operate on, and again
    after the Gemfile is read, so that if the Gemfile has a lockfile
    method that overrides the defintion's lockfile, the --lockfile option
    still has higher precedence.

    https://github.com/ruby/rubygems/commit/17acdd4a89

commit ec05bc39a3e8340aa3dcfc5f6f9ed791af232e78
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-25 12:13:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-25 13:47:45 +0900

    Fix the fallback using mutex

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15315

commit 2957ba7079c58eb18eb3d7b6b5392fa4aa88a845
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-25 12:12:55 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-25 13:47:45 +0900

    Try libatomic only if necessary

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15315

commit bbf4bde75e4c8d2eacc40fc5e544ee73b20cf586
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-25 11:59:50 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-25 13:47:45 +0900

    Reapply "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`"

    This reverts commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15315

commit f8ee06901cfec2ebb7340087f039b103e8ab51b3
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-21 07:25:53 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-25 13:46:06 +0900

    ZJIT: For JIT-to-JIT send, avoid loading uninitialized local through EP

    JIT-to-JIT sends don't blit locals to nil in the callee's
    EP memory region because HIR is aware of this initial state and
    memory ops are only done when necessary. Previously, we
    read from this initialized memory by emitting `GetLocal` in e.g. BBs
    that are immediate successor to an entrypoint.

    The entry points sets up the frame state properly and we also reload
    locals if necessary after an operation that potentially makes the
    environment escape. So, listen to the frame state when it's supposed to
    be up-to-date (`!local_inval`).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15267

commit 55892f5994f66567aa4c0c56fdb8bf31134c3972
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-25 11:27:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-25 12:06:55 +0900

    Fix style for rb_gc_impl_after_fork

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15313

commit 86b210203e5e54a70782fd050ca9826eb23e9c7e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-25 11:26:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-25 12:06:55 +0900

    Fix style for rb_gc_impl_before_fork

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15313

commit 58faaf11dfeed157bf57987661beed29cd69673f
  Author:     Yuji Yaginuma <yuuji.yaginuma@gmail.com>
  AuthorDate: 2025-11-23 17:09:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-25 11:15:08 +0900

    [ruby/uri] [DOC] Fix result of sample code in `#user=`

    A `password` is cleared when change a user now.

    https://github.com/ruby/uri/commit/af6714473c

commit 35445a736f509e6edbba8a08d8e4af69c206368a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-24 10:36:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-25 07:32:53 +0900

    Add SIGABRT to reserved signals in bundler spec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15308

commit 2315349b8ac10b1b4468ed10dabcb348a10bca0a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-24 07:34:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-25 07:32:53 +0900

    Handle SIGABRT and output bug report

    SIGABRT is for abnormal termination so we should handle it to output a bug
    report. Specifically, glibc malloc uses it to exit when there is corruption.
    For example, the following script produces a double free:

        mem = Fiddle.malloc(10)
        Fiddle.free(mem)
        Fiddle.free(mem)

    Before this patch, it just outputs the following and exits:

        free(): double free detected in tcache 2

    After this patch, it also outputs a bug report:

        free(): double free detected in tcache 2
        test.rb:11: [BUG] Aborted at 0x000003e8000ab65c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15308

commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-25 05:28:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-25 05:28:30 +0900

    Revert "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`" (#15311)

    This reverts commit d3b6f835d565ec1590059773fc87589ddf8adc37.

    This broke the Docker builds and presumably also 32-bit machines that
    don't already have libatomic installed.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit aeb7689e696540f3f96bad87efc91ba2b4187c99
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2024-08-20 07:03:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-24 17:44:28 +0900

    [ruby/forwardable] Use generic argument forwarding (...) instead of ruby2_keywords on Ruby 2.7+

    On Ruby 3.4+, generic argument forwarding is significantly faster
    as it does not allocate.

    https://github.com/ruby/forwardable/commit/b606c3bf0a

commit b75cf83a333ab4e321e89cdefb94e684f6648033
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-24 06:35:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-24 06:36:19 +0900

    [ruby/prism] Revert "Reject `p(p a, &block => value)` and similar"

    https://github.com/ruby/prism/commit/fef2c20777

commit 8d73a181879d3151bb5e7ecf928ec098d154d498
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-24 03:58:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-24 04:10:29 +0900

    [ruby/prism] Handle destroying implicit parameter

    Fixes https://github.com/ruby/prism/pull/3740

    https://github.com/ruby/prism/commit/464a849184

commit 390220579b7afe433731f4d2d119a57858e27911
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-24 02:47:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-24 03:54:44 +0900

    Replace vfork with fork for ASAN

    Older versions of ASAN do not support vfork. See https://github.com/google/sanitizers/issues/925

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15306

commit 026140b3a209ee2608241a91bb7728a429285685
  Author:     Steven Johnstone <steven.james.johnstone@gmail.com>
  AuthorDate: 2025-11-20 20:31:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-24 03:45:57 +0900

    [ruby/prism] Avoid reading out-of-bounds in pm_strnstr

    Fixes https://github.com/ruby/prism/pull/3738.

    https://github.com/ruby/prism/commit/37bb46ff5f

commit 2870b7d7df30bc227f40a4c04c97050b90f1f25b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-18 17:33:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-24 03:15:15 +0900

    [ruby/prism] Reject `p(p a, &block => value)` and similar

    They were being parsed as `p((p a, &block) => value)`.
    When we get to this point, we must not just have parsed a command call, always consuming the `=>` is not correct.

    Closes [Bug #21622]

    https://github.com/ruby/prism/commit/796ab0edf4

commit 190b017fc6c21ff7b61c2b5ece0294785e4a4ca2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-22 07:26:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-24 00:41:41 +0900

    Don't use non blocking pipes for RUBY_CRASH_REPORT

    [Bug #21703]

    RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux.
    For example, given the following shell script dump.sh:

        #!/usr/bin/env bash
        cat > /tmp/crash

    And we see it fails like this:

        $ RUBY_CRASH_REPORT="|dump.sh" ruby -rfiddle -e "Fiddle::Pointer.new(1, 10)[0]"
        cat: -: Resource temporarily unavailable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15292

commit 32a4545ee41240cb16344936e7c1c5ed01663059
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 21:46:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-23 21:46:51 +0900

    CI: Abandon CAPI check on macos-15

    `hashFiles` is very unstable on macOS runners.

commit 1738255f6d6c5e9c419e6951a07f59b3a73dfaf5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 19:04:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-23 19:04:17 +0900

    [Misc #21688] [DOC] Include box.md in Ruby::Box documentation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15305

commit 4a0e01d7681e72919f1fae7bc9db744e5a3fbe8c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 19:01:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-23 19:01:16 +0900

    [Misc #21688] Teach RDoc about the toplevel module `Ruby`

    Re-open the exising module by calling `rb_define_module`.
    RDoc (`RDoc::Parser::C#do_classes_and_modules`) does not recognize
    `rb_path2class` as a class/module definition.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15305

commit 422ed7489f80cc037a07b51044eaac19ad0b423b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 18:00:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-23 18:08:52 +0900

    [ruby/date] [DOC] Remove the name from same file references

    https://github.com/ruby/date/commit/e41082e068

commit fed528a995a4c29dc75961a99ef6bdf0094296e0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 17:56:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-23 17:56:11 +0900

    [DOC] Remove the name from same file references

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15304

commit beb85e7eeee4163cd45b69645a60cdb942f72c05
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-23 13:55:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-23 13:55:15 +0900

    [Bug #21705] Fix segfaults on Windows

    It should check the type of the argument and coercion before
    converting the encoding.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15302

commit a7f948c32c169ceabb5719f0328e594759c73cd8
  Author:     Brandon Zylstra <9854+brandonzylstra@users.noreply.github.com>
  AuthorDate: 2025-11-23 08:35:15 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-23 11:31:55 +0900

    [DOC] Fix a typo in enum.c documentation

    fix a minor misspelling in the documentation comments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15300

commit dd489ee9c48fc8c2b499b80f3ebcd053de33bb0a
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-11-19 01:41:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-23 01:48:13 +0900

    [ruby/openssl] asn1: refactor converting ASN1_OBJECT to string

    ruby/openssl exposes OIDs to Ruby as strings in many places, but the
    conversion logic has been duplicated and the behavior is inconsistent.
    There are mainly two patterns:

     - Returns the short name associated with the OID/NID, or the dotted
       decimal notation if it is unknown to OpenSSL.
     - Returns the long name, or the dotted decimal notation.

    These patterns are implemented using different OpenSSL APIs and that
    caused subtle differences. Add helper functions ossl_asn1obj_to_string()
    and ossl_asn1obj_to_string_long_name() to unify the logic.

    Also, document the current behaviors where it is not yet done. The
    inconsistency was likely unintentional, but since it dates back to the
    original implementations, standardizing it now would cause more issues
    than it resolves.

    https://github.com/ruby/openssl/commit/2ea36c21a4

commit 424499dd10aa01b3d84957761b19dde63b28113c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-05-17 18:42:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-23 01:48:13 +0900

    [ruby/openssl] ts: refactor converting string to ASN1_OBJECT

    obj_to_asn1obj() in ossl_ts.c and ossl_asn1.c are identical. Let's
    remove one in ossl_ts.c.

    eASN1Error can now be made static to ossl_asn1.c.

    https://github.com/ruby/openssl/commit/dcb05c40c2

commit f9efa0cc0468692739770e754c12edf46cdf7c8e
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-11-22 22:11:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 23:25:15 +0900

    [ruby/openssl] pkey/ec: fix OpenSSL::PKey::EC::Group#curve_name for unknown curves

    EC_GROUP_get_curve_name() returns NID_undef when OpenSSL does not
    recognize the curve and there is no associated OID.

    Handle this case explicitly and return nil instead of the string
    "UNDEF", which should not be exposed outside the extension.

    https://github.com/ruby/openssl/commit/2c16821c07

commit c7a84ae0bb8c6dab3463076d7e5ca9b6f89880f4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-22 22:13:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 22:52:26 +0900

    [ruby/json] parser.c: Record escape positions while parsing

    We can then pass them to the decoder to save having to parse
    the string again.

    ```
    == Parsing activitypub.json (58160 bytes)
    ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after     1.275k i/100ms
    Calculating -------------------------------------
                   after     12.774k (± 0.8%) i/s   (78.29 μs/i) -     65.025k in   5.090834s

    Comparison:
                  before:    12314.3 i/s
                   after:    12773.8 i/s - 1.04x  faster

    == Parsing twitter.json (567916 bytes)
    ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after   143.000 i/100ms
    Calculating -------------------------------------
                   after      1.441k (± 0.2%) i/s  (693.86 μs/i) -      7.293k in   5.060345s

    Comparison:
                  before:     1430.1 i/s
                   after:     1441.2 i/s - 1.01x  faster

    == Parsing citm_catalog.json (1727030 bytes)
    ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after    69.000 i/100ms
    Calculating -------------------------------------
                   after    695.919 (± 0.4%) i/s    (1.44 ms/i) -      3.519k in   5.056691s

    Comparison:
                  before:      687.8 i/s
                   after:      695.9 i/s - 1.01x  faster
    ```

    https://github.com/ruby/json/commit/4f4551f993

commit 735762747d818563555e13932b8e49f3801a8c7f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-22 20:59:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 22:12:16 +0900

    [ruby/json] Fix the parser to not accept invalid escapes

    Only `"\/bfnrtu` are valid after a backslash.

    https://github.com/ruby/json/commit/f7f8f552ed

commit ec296f63e33e78a95a20378b689efc0bf74f271a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-22 18:32:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 18:32:48 +0900

    [ruby/json] Use booleans in string_scan

    https://github.com/ruby/json/commit/256cad5def

commit 7789aaca3736fdac2c00b141b12f127168c485cd
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-22 01:44:55 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-22 07:16:33 +0900

    [DOC] Tweaks for Integer#**

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15286

commit b47b37c12cf30b06ec5afc365f3739b0744b3f4c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-21 21:46:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-22 07:11:54 +0900

    [DOC] Harmonize #* methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15279

commit 2289961b485b1cbf7b1012693722c16a6cdb4cda
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-22 03:30:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 06:29:20 +0900

    [ruby/rubygems] Undeprecate Gem::Version#<=> against strings

    This pattern is extremely common across the ecosystem, I don't think
    it's reasonable to deprecate it.

    I understand the performance argument, but perhaps the dependency
    resolution algorithm can use another method that is private API
    and only works with two `Version` instance.

    https://github.com/ruby/rubygems/commit/024b4b547a

commit 6e2906f60da20d6cd057aa8ad4b84f8c988406d9
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-22 03:43:52 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 04:16:26 +0900

    ZJIT: Don't make GuardNotFrozen consider immediates

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15251

commit e31c2569079d09cf63d6822558b053b8b8cc9937
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-20 08:17:43 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 04:16:26 +0900

    ZJIT: Inline GuardNotFrozen into LIR

    No sense calling a C function.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15251

commit 1959fcacb357ec548ed8a000c6dc6e5f39a3fb55
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-22 01:53:35 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 02:21:57 +0900

    ZJIT: Add tests for Kernel#kind_of?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15250

commit 14e34fa7c0f02402b322bc9bbdd34fec446b70e9
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-21 07:56:17 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 02:21:57 +0900

    ZJIT: Print class objects more nicely in HIR

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15250

commit ff89e470e21e9d021c6739d83eddda4bd8c071fe
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-20 06:37:45 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 02:21:57 +0900

    ZJIT: Specialize Module#=== and Kernel#is_a? into IsA

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15250

commit e0bb3fb1cda2238d0c98afcdec2fe282c29994aa
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-22 01:57:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-22 01:57:26 +0900

    ZJIT: Inline Integer#<< for constant rhs (#15258)

    This is good for protoboeuf and other binary parsing

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 8728406c418f1a200cda02a259ba164d185a8ebd
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-22 01:49:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-22 01:49:57 +0900

    ZJIT: Inline Thread.current (#15272)

    Add `LoadEC` then it's just two `LoadField`.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 8090988f878c71c2aaefbb3123ac13e3753c93da
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-20 10:53:41 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 01:49:03 +0900

    ZJIT: Inline ArrayLength into LIR

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15260

commit 6cebbf4037376f28d9792cecf38d4f770bcdcaac
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-21 00:43:08 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-22 01:49:03 +0900

    ZJIT: Split CSel memory reads on x86_64

    Fix https://github.com/Shopify/ruby/issues/876

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15260

commit f52edf172db0afa4b3867723f75d617291070d63
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-22 01:48:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-22 01:48:36 +0900

    ZJIT: Specialize monomorphic DefinedIvar (#15281)

    This lets us constant-fold common monomorphic cases.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit e5e8ac51496d8240f2c7a65aa9a9f300454d41b6
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-22 01:48:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-22 01:48:18 +0900

    ZJIT: Inline String#empty? (#15283)

    Don't emit a CCall.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit d3b6f835d565ec1590059773fc87589ddf8adc37
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-22 00:54:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-22 01:20:04 +0900

    Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`

    On some platoforms, 64bit atomic operations need the dedicated helper
    library.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15285

commit ffa105c27f943bf4170247137733ff7640cf24d0
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-21 20:48:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 01:12:35 +0900

    [ruby/json] Move RUBY_TYPED_FROZEN_SHAREABLE macro to json.h

    https://github.com/ruby/json/commit/2a4ebe8250

commit 419efd5ca5064e8f492660a898be36fe4f79b84a
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-21 19:53:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 01:12:35 +0900

    [ruby/json] Skip test failing with JRuby in CI

    https://github.com/ruby/json/commit/305d3832db

commit bdca2a9975c7859f2e1702a517d59bb6cb254acb
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-18 19:44:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-22 01:12:35 +0900

    [ruby/json] Ractor-shareable JSON::Coder

    https://github.com/ruby/json/commit/58d60d6b76

commit 7ae0809c7c03b9d31a57fb18e9b0d173eead6f74
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-22 00:00:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-22 00:30:37 +0900

    Remove clang-18 from compilers CI

    clang-18 has a bug that causes ruby_current_ec to sometimes be null when
    using Ractors and crashes like this:

        <internal:ractor>:700: [BUG] Segmentation fault at 0x0000000000000030
        ruby 4.0.0dev (2025-11-21T06:49:14Z master bcc7b2049c) +PRISM [x86_64-linux]

        -- Control frame information -----------------------------------------------
        c:0004 p:0003 s:0015 e:000014 l:y b:0001 METHOD <internal:ractor>:700
          me:
            called_id: receive, type: iseq
            owner class: 0x00007ff462dda500 T_CLASS/Ractor::Port
          self: 0x00007ff46146d068 ractor/port/Ractor::Port ractor/port
        c:0003 p:0008 s:0011 e:000010 l:y b:0001 METHOD <internal:ractor>:311
          me:
            called_id: receive, type: iseq
            owner class: 0x00007ff462ddae60 T_CLASS/(anon)
          self: 0x00007ff462ddaf00 T_CLASS/Ractor
        c:0002 p:0010 s:0007 e:000006 l:n b:---- BLOCK  bootstraptest.test_ractor.rb_2354_1323.rb:9 [FINISH]
          self: 0x00007ff46146d090 ractor/Ractor r:68
          lvars:
            j: T_FIXNUM 66
        c:0001 p:---- s:0003 e:000002 l:y b:---- DUMMY  [FINISH]
          self: T_NIL

        -- Ruby level backtrace information ----------------------------------------
        bootstraptest.test_ractor.rb_2354_1323.rb:9:in 'block (2 levels) in <main>'
        <internal:ractor>:311:in 'receive'
        <internal:ractor>:700:in 'receive'

        -- Threading information ---------------------------------------------------
        Total ractor count: 7
        Ruby thread count for this ractor: 1

        -- Machine register context ------------------------------------------------
        RIP: 0x00007ff47c7df5f0 RBP: 0x000055d77ea5b4f0 RSP: 0x00007ff445fa3af0
        RAX: 0x0000000000000000 RBX: 0x000055d77e9fd068 RCX: 0x000055d77e9fd040
        RDX: 0x000055d77eb2ac40 RDI: 0x00007ff47cbe7700 RSI: 0x0000000000000000
          R8: 0x0000000000000000  R9: 0x0000000000000000 R10: 0x000055d77e9fc830
        R11: 0x93ba1054e59bfb14 R12: 0x000055d77ea5b4f0 R13: 0x00007ff445f82f20
        R14: 0x00007ff4614cf668 R15: 0x000055d77e9fd040 EFL: 0x0000000000010246

        -- C level backtrace information -------------------------------------------
        libruby.so.4.0(rb_print_backtrace+0x14) [0x7ff47c8cbd18] vm_dump.c:1105
        libruby.so.4.0(rb_vm_bugreport) vm_dump.c:1450
        libruby.so.4.0(rb_bug_for_fatal_signal+0x162) [0x7ff47c70ce02] error.c:1131
        libruby.so.4.0(sigsegv+0x4a) [0x7ff47c82f20a] signal.c:948
        /lib/x86_64-linux-gnu/libc.so.6(0x7ff47c34a330) [0x7ff47c34a330]
        libruby.so.4.0(rb_ec_thread_ptr+0x0) [0x7ff47c7df5f0] vm_core.h:2092
        libruby.so.4.0(rb_ec_ractor_ptr) vm_core.h:2041
        libruby.so.4.0(rb_current_execution_context) vm_core.h:2110
        libruby.so.4.0(rb_current_ractor_raw) vm_core.h:2109
        libruby.so.4.0(rb_current_ractor) vm_core.h:2117
        libruby.so.4.0(ractor_unlock) ractor.c:110
        libruby.so.4.0(ractor_unlock_self) ractor.c:125
        libruby.so.4.0(ractor_wait) ractor_sync.c:1054
        libruby.so.4.0(ractor_wait_receive) ractor_sync.c:1113
        libruby.so.4.0(ractor_receive+0x25) [0x7ff47c7ded08] ractor_sync.c:1166
        libruby.so.4.0(ractor_port_receive) ractor_sync.c:143
        libruby.so.4.0(builtin_inline_class_700) ractor.rb:701
        libruby.so.4.0(invoke_bf+0x4) [0x7ff47c8a2060] vm_insnhelper.c:7534
        libruby.so.4.0(vm_invoke_builtin_delegate) vm_insnhelper.c:0
        libruby.so.4.0(vm_exec_core) insns.def:1674
        libruby.so.4.0(vm_exec_loop+0x0) [0x7ff47c89b868] vm.c:2784
        libruby.so.4.0(rb_vm_exec) vm.c:2787
        libruby.so.4.0(vm_invoke_proc+0x344) [0x7ff47c8b03f4] vm.c:1814
        libruby.so.4.0(thread_do_start_proc+0x17a) [0x7ff47c870bba] thread.c:593
        libruby.so.4.0(thread_do_start+0x162) [0x7ff47c87042f] thread.c:635
        libruby.so.4.0(thread_start_func_2) thread.c:686
        libruby.so.4.0(rb_native_mutex_lock+0x0) [0x7ff47c870fd1] thread_pthread.c:2238
        libruby.so.4.0(thread_sched_lock_) thread_pthread.c:403
        libruby.so.4.0(call_thread_start_func_2) thread_pthread_mn.c:466
        libruby.so.4.0(co_start) thread_pthread_mn.c:464

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15282

commit 5f5da2c293766b98e543b3215b1af7ad6950977d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-21 14:50:11 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-21 17:43:48 +0900

    Fix stdatomic case in rbimpl_atomic_u64_fetch_add

    This was failing on crossruby, likely because HAVE_GCC_ATOMIC_BUILTINS
    was true, but HAVE_GCC_ATOMIC_BUILTINS_64 was false. We probably should
    have feature detection of 64-bit stdatomics like we do for GCC, but for
    now let's keep rbimpl_atomic_u64_fetch_add in sync with load/set.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15276

commit b9a213f791eb79372d10f6ba07b3803140b3eb59
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-21 13:26:43 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-21 17:34:03 +0900

    Fix timezone of `yesterday`

    Set the `TZ environment variable.  `git log` does not recognize UTC
    offset in `--before` option, unless full datetime is given.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15278

commit d4e1f9e1b8621ef92caa5061dbc11e1860fa5eed
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-21 13:18:54 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-21 17:34:03 +0900

    Win: quote equal sign in command line

    `cmd.exe` splits the command line also by equal signs, not only by
    space characters.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15278

commit eb11b40bb54b11456f88564957ec22c8c08c203c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-21 16:20:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 17:32:50 +0900

    [ruby/rubygems] bin/rubocop -a

    https://github.com/ruby/rubygems/commit/fbf6fb667e

commit bcc7b2049c45356b11992e095e2f114c02736e24
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-21 14:52:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-21 15:49:14 +0900

    Use assert_match for uplevel option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15275

commit 1d160ed0591fbaabe1ae6d76920da409e238b396
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-21 14:39:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-21 15:49:14 +0900

    Fixed warning for String comparison of Gem::Version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15275

commit 451c12099472764f1190df8db451dbeaedd1b1c8
  Author:     Philip Arndt <git@p.arndt.io>
  AuthorDate: 2025-11-21 13:33:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 13:34:34 +0900

    [ruby/rubygems] Check for file existence before deletion from cache
    (https://github.com/ruby/rubygems/pull/9095)

    * Rescue when deleting a non-existent cached gem file

    When a gem was in the cache, but another process deletes it first, this
    delete command fails.

    To work around this, I'm rescuing from Errno::ENOENT and swalling the
    error. The file is gone, and we can move on.

    * Apply suggestion from @kou

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

    ---------

    https://github.com/ruby/rubygems/commit/b30bcbc648

    Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

commit ee002a5ee061e82da639e499a36810a747998747
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-21 11:22:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 13:20:05 +0900

    [ruby/rubygems] Respect `BUNDLE_VERSION` config at Gem::BundlerVersionFinder

    If we use "system" variable in BUNDLE_VERSION on Bundler configuration,
    we can use bundler version provided by system installation.

    But the current logic returns the first activated version of bundler
    like 2.7.2. It makes to confuse users.

    https://github.com/ruby/rubygems/commit/4eb66d9549

commit 917e77be5e5bf13b22009bec5568aa031138a605
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-15 10:26:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 13:03:44 +0900

    [ruby/rubygems] Deprecate comparing Gem::Version objects with strings

    Comparing version objects is a huge bottleneck in dependency solvers
    (like inside Bundler).  I would like to make comparing version objects
    cheaper.  Right now we support comparing version objects with strings by
    trying to coerce the string to a version.  So for example:

    ```ruby
    Gem::Version.new("1") <=> "12"
    ```

    I would like to deprecate and remove support for this feature so that we
    can reduce the overhead of `def <=>`.

    I'm not sure what version of RubyGems we could remove this from though.

    https://github.com/ruby/rubygems/commit/81b7602183

commit 8b116ee8b982f838d8464b7ee310f37bc3282efb
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-17 05:28:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 13:03:43 +0900

    [ruby/rubygems] create a gem version instead of comparing with a string

    https://github.com/ruby/rubygems/commit/c1e3d4d63b

commit 9aa09b4620fd633ef2ffaff4bdae5e344b173ee6
  Author:     sue445 <sue445@sue445.net>
  AuthorDate: 2025-11-21 09:50:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 12:13:59 +0900

    [ruby/rubygems] Fixed RuboCop offense in Rakefile generated by `bundle gem`

    ```
    Offenses:

    Rakefile:18:1: C: [Correctable] Layout/EmptyLines: Extra blank line detected.

    Diff:
    @@ -11,4 +11,5 @@
       ext.lib_dir = "lib/test_gem"
     end

    +
     task default: :compile

    https://github.com/ruby/rubygems/commit/8c414729df

commit a26f8235283b27dc1c5018addd0dfac209aaaa17
  Author:     sue445 <sue445@sue445.net>
  AuthorDate: 2025-11-20 22:34:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 12:13:59 +0900

    [ruby/rubygems] Add go_gem/rake_task for Go native extention gem skeleton

    https://github.com/ruby/rubygems/commit/64f92d2da0

commit 9d04fb52aff73ba2b73753f6d172c2d21322a3bc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-21 10:51:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-21 10:51:29 +0900

    CI: cmake in scoop seems unused

commit 9764306c48619e2d168235a4864c43f9e0db78e0
  Author:     John Hawthorn <john.hawthorn@shopify.com>
  AuthorDate: 2025-05-29 05:26:10 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-21 10:19:40 +0900

    Accurate GC.stat under multi-Ractor mode

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13460

commit 07ddb0ed73b1ea61cb717f4424f7b2909d8c0ab3
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-20 06:39:29 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-21 09:52:28 +0900

    ZJIT: Read `iseq->body->param` directly instead of through FFI

    Going through a call to a C function just to read a bitfield was a
    little extreme. We did it to be super conservative since bitfields
    have historically been the trigger of many bugs and surprises. Let's
    try directly accessing them with code from rust-bindgen. If this
    ends up causing issues, we can use the FFI approach behind nicer
    wrappers.

    In any case, directly access regular struct fields such as `lead_num`
    and `opt_num` to remove boilerplate.

commit 7a09df45f2619a672eaab763c2e2a0c5199d5daa
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-20 06:08:55 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-21 09:52:28 +0900

    Name the `iseq->body->param` struct and update bindings for JITs

    This will make reading the parameters nicer for the JITs. Should be
    no-op for the C side.

commit aa9e15cb1ecb0de598f816e44a09e016aaa8ef5c
  Author:     Alexander Bulancov <6594487+trinistr@users.noreply.github.com>
  AuthorDate: 2025-11-21 09:30:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-21 09:30:42 +0900

    Fix multiple bugs in `IO::Buffer.map` and update its documentation. (#15264)

    - Buffer's size did not account for offset when mapping the file, leading to possible crashes.
    - Size and offset were not checked properly, leading to many situations raising EINVAL errors with generic messages.
    - Documentation was wrong.

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 29d8a50d264be0c9cf1ddfc9fc2ce37724755b38
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-20 20:02:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 08:11:47 +0900

    [ruby/rubygems] Keep legacy windows platform, not removed them

    https://github.com/ruby/rubygems/commit/f360af8e3b

commit e15b4e1c56e826655e6fd10e32bdf974edf4b980
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-21 06:58:36 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 08:10:19 +0900

    Bump default compiler to clang-20 in CI

    clang-18 has a bug that causes the latest Ractor btest to crash.

commit 3ec44a99954a3c4c131f374020b7addcba9bc5f2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-18 11:53:30 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 08:10:19 +0900

    Add a Ractor test case that causes MMTk to deadlock

    This was a test case for Ractors discovered that causes MMTk to deadlock.
    There is a fix for it in https://github.com/ruby/mmtk/pull/49.

commit 010b23a7cfc4a20371d74406f9f0563331a233fd
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-11-11 11:23:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 08:01:03 +0900

    [ruby/rubygems] Add support for BUNDLE_LOCKFILE environment variable

    This specifies the lockfile location. This allows for easy support
    of different lockfiles per Ruby version or platform.

    https://github.com/ruby/rubygems/commit/b54d65bc0a

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
    Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>

commit 1562803e5103dea3949027e61672fa82f26782fd
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-11-09 09:03:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 08:01:03 +0900

    [ruby/rubygems] Add support for bundle install --no-lock

    This allows for the same behavior as including `lockfile false`
    in the Gemfile. This allows you to get the behavior without
    modifying the Gemfile, which is useful if you do not control the
    Gemfile.

    This is similar to the --no-lock option already supported by
    `gem install -g Gemfile`.

    https://github.com/ruby/rubygems/commit/6c94623881

    Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>

commit 82d8d24e7cdd26123ed4ad478ce6a0bb81d7abb5
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-11-09 09:00:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 08:01:02 +0900

    [ruby/rubygems] Add support for lockfile in Gemfile

    This allows you to specify the lockfile to use. This is useful if
    you want to use different lockfiles for different ruby versions or
    platforms. You can also skip writing the lockfile by using a false
    value.

    https://github.com/ruby/rubygems/commit/2896aa3fc2

    Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>

commit fb28d4748dc96d581592b0d4c186ca0a8d49fa26
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-21 07:04:45 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Change the output on redefined method tests to verify the new definition is used

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit 447989e5980510b0bcde34c58363b425c0e78224
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-21 06:57:46 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Update test names to use the same convention as the HIR tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit 36f1ab967f4b837dfb9856e1c29dd7ebeed8c3d3
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-21 06:49:26 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Add tests for `opt_newarray_send` with target methods redefined

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit 7d2f9ab9e1992dded620fe221421c9c247dcd408
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-18 01:41:30 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Handle display formatting for all defined bops

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit b06dd644da0ae87f33649ade6fc827a301b55b0c
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-15 04:43:57 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Compile the VM_OPT_NEWARRAY_SEND_HASH variant of opt_newarray_send

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit 604fc059618b8f1f94b19efa51d468d827a766d1
  Author:     Kevin Menard <kevin@nirvdrum.com>
  AuthorDate: 2025-11-14 01:56:23 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 07:35:09 +0900

    ZJIT: Rename array length reference to make the code easier to follow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15196

commit 2447380894e8ab4968d745f6844d2dc5278ebd6b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-19 07:07:21 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 07:30:42 +0900

    Run rb_gc_before_fork after before_exec

    before_exec stops the timer thread, which requires locking the Ractor
    scheduler lock. This may deadlock if rb_gc_before_fork locks the VM.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15232

commit 55938a45e8c6872df258b3ef52bba94a2cda846d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-21 06:50:00 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 07:08:15 +0900

    [DOC] Sort some methods in What's Here

commit d5368fc515788e03a11fc42b0d9a42c7c1837d2d
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-21 07:07:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-21 07:07:44 +0900

    [DOC] Tweaks for String#valid_encoding?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15247

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 826e91a7e2c427f604f47f775d156d1d398dadc6
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-21 05:57:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 07:06:41 +0900

    [DOC] Harmonize mod methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15265

commit ff1d23eccba3ab37e77bf2d2222cad9d6f99a0ab
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-06 05:27:26 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-21 07:06:33 +0900

    Use a serial to keep track of Mutex-owning Fiber

    Previously this held a pointer to the Fiber itself, which requires
    marking it (which was only implemented recently, prior to that it was
    buggy). Using a monotonically increasing integer instead allows us to
    avoid having a free function and keeps everything simpler.

    My main motivations in making this change are that the root fiber lazily
    allocates self, which makes the writebarrier implementation challenging
    to do correctly, and wanting to avoid sending Mutexes to the remembered
    set when locked by a short-lived Fiber.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15068

commit d1b11592af75a5eee9199951a0c330eb8caa2825
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-20 04:02:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 07:06:16 +0900

    [DOC] Tweaks for String#upto

commit 8b71234a4877b4bd2058cca2766ea9794fbcee41
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-20 09:57:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 07:05:13 +0900

    [ruby/rubygems] Change the logger instance for this spec:

    - With the logger change that is now threadsafe, such code no longer
      behaves the same:

      ```ruby
      Bundler.ui.silence do
        Bundler.ui.level = 'info'

        Bundler.ui.info("foo")
        # This used to output something. Now it doesn't.
      end
      ```

      IMHO this is the right behaviour since we are in a silence block,
      changing the level should have no effect. And fortunately it seems
      that we only need to change this spec.

      The call to `Bundler.ui.silence` is done in a `around` block
      https://github.com/ruby/rubygems/blob/4a13684f07ebb1dea5501e3f826fab414f96bf47/bundler/spec/spec_helper.rb#L119

    https://github.com/ruby/rubygems/commit/e716adb6c9

commit 409c004affa30efbbfd384a9cd645f7969ccc11a
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-20 07:15:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 07:05:13 +0900

    [ruby/rubygems] Make the Bundler logger thread safe:

    - The Logger is not thread safe when calling `with_level`.
      This now becomes problematic because we are using multiple
      threads during the resolution phase in order to fetch git gems.

    https://github.com/ruby/rubygems/commit/380653ae74

commit bd60600d00f13234cad83c9c5af5b6607a4b0fba
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-19 23:59:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 07:05:13 +0900

    [ruby/rubygems] Run git operations in parallel to speed things up:

    - ### Problem

      When you have a Gemfile that contains git gems, each repository will
      be fetched one by one. This is extremelly slow.
      A simple Gemfile with 5 git gems (small repositories) can take up
      to 10 seconds just to fetch the repos.

      We can speed this up by running multiple git process and fetching
      repositories silmutaneously.

      ### Solution

      The repositories are fetched in Bundler when `Source::Git#specs` is
      called.
      The problem is that `source.specs` is called in various places
      depending on Gemfile.

      I think the issue is that calling `source.specs` feels like that
      as a "side effect" we are going to clone repositories. I believe
      that fetching repositories should be an explicit call.

      For instance:

      ```ruby
      source "https://rubygems.org"

      gem "foo", github: "foo/foo"

      # The repository foo will be fetched as a side effect to the call to `source.spec_names`
      # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source_map.rb#L21
      ```

      ```ruby
      source "https://rubygems.org"

      gem "bar", source: "https://example.org"
      gem "foo", github: "foo/foo"

      # The repository foo will be fetched on a different codepath
      # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source/rubygems_aggregate.rb#L35

      # That is because the gem "bar" has a source that doesn't have the `/dependencies` API
      # endpoint and therefore Bundler enters a different branch condition.
      ```

      I opted to add a self explanatory call to fetch the git source
      repositories just before we start the resolution, and *just*
      before any other calls to `source.specs` is performed.

    https://github.com/ruby/rubygems/commit/f0ef526f23

commit 9b87a0b9b667ce12e9e6245d4eda40b5dfdeb5f9
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-05 10:15:59 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-21 07:05:00 +0900

    Fix missing write barrier on namespace classext

    Found by wbcheck

    It seems like here the classext was associated with the class, but it
    already had Ruby objects attached.

    rb_gc_writebarrier_remember works around that issue, but I suspect if we
    enabled autocompaction the values copied into the classext before it was
    attached could be broken.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15058

commit a4a99a24e8299f9595cb41591f3252e6082d744f
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-20 03:29:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-21 07:04:22 +0900

    [DOC] TWeaks for String#upcase!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15245

commit 59e0489248036f5923e04fdf16ce3d8244ed038d
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-21 07:03:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-21 07:03:58 +0900

    [DOC] Tweaks for String#upcase (#15244)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit cb9c7a6a0a451fc158055145d0bce4891b62e32f
  Author:     eileencodes <eileencodes@gmail.com>
  AuthorDate: 2025-11-20 02:08:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 07:02:28 +0900

    [ruby/rubygems] Improve error messages and handling in tests

    This is a first pass to improve the way errors are handled and raised in
    bundler's tests. The goal is to clean up tests and modernize them -
    these were some obvious areas that could be cleaned up.

    - Instead of raising "ZOMG" in the load error tests, it now tests for
    the actual error and gem raising.
    - Improve error messages where applicable.
    - All errors raise a specific error class, rather than falling back to a
    default and just setting a message.
    - Removed arguments and `bundle_dir` option from `TheBundle` class as it wasn't
    actually used so therefore we don't need to raise an error for extra
    arguments.
    - Removed error from `BundlerBuilder`, as it won't work if it's not
    `bundler`, also it never uses `name`. The only reaon `name` is passed
    in is because of metaprogramming on loading the right builder. I
    think that should eventually be refactored.
    - Replaced and removed `update_repo3` and `update_repo4` in favor of
    just `build_repo3` and `build_repo4`. Rather than tell someone writing
    tests to use a different method, automatically use the right method.

    https://github.com/ruby/rubygems/commit/68c39c8451

commit ba47c2f03305be10b7c28f7ff6783a533b57ef15
  Author:     Thiago Araujo <thd.araujo@gmail.com>
  AuthorDate: 2025-11-20 13:05:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 05:09:19 +0900

    [ruby/prism] Add tests to `regexp_encoding_option_mismatch`

    related to #2667

    https://github.com/ruby/prism/commit/44f075bae4

commit 0b4420bfd5f32fd715704f9adcf2320971f05ab3
  Author:     Steven Johnstone <steven.james.johnstone@gmail.com>
  AuthorDate: 2025-11-20 20:02:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 05:06:08 +0900

    [ruby/prism] Use memmove for overlapping memory ranges

    Fixes https://github.com/ruby/prism/pull/3736.

    https://github.com/ruby/prism/commit/1f5f192ab7

commit a8f269a2c665c0a471ecb28b3265cb4eb8a7ca2e
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-11-21 04:47:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-21 04:47:01 +0900

    ZJIT: Deduplicate successor and predecessor sets (#15263)

    Fixes https://github.com/Shopify/ruby/issues/877

    I didn't consider the ability to have the successor or predecessor sets having duplicates when originally crafting the Iongraph support PR, but have added this to prevent that happening in the future.

    I don't think it interferes with the underlying Iongraph implementation, but it doesn't really make sense.

    I think this kind of behaviour happens when there are multiple jump instructions that go to the same basic block within a given block.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 48027256cf9d3e3bf12603184448cf88406b92d0
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-11-21 00:41:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-21 02:23:37 +0900

    [ruby/json] Remove unused symbols

    https://github.com/ruby/json/commit/9364d0c761

commit f8cb9f320ceddbfe6feffb6410bb6212ed27673c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-21 00:28:23 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 01:32:17 +0900

    ZJIT: Put optional interpreter cache on both GetIvar and SetIvar

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15087

commit 0b6daad624e36d755f7a6919af2c2eee11353da1
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-21 00:13:04 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-21 01:32:17 +0900

    ZJIT: Fix pointer types for SetInstanceVariable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15087

commit 41b8e440e7f2c5d3d1c1a9644de4bdc06a343724
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-11-18 10:58:26 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-11-20 23:54:29 +0900

    Support backwards compatibility for Set subclasses

    For subclasses from Set, require `set/subclass_compatible`, and
    extend the subclass and include a module in it that makes it more
    backwards compatible with the pure Ruby Set implementation used
    before Ruby 4.

    The module included in the subclass contains a near-copy of the
    previous Set implementation, with the following changes:

    * Accesses to `@hash` are generally replaced with `super` calls. In
      some cases, they are replaced with a call to another instance method.
    * Some methods that only accessed `@hash` and nothing else are not
      defined, so they inherit behavior from core Set.
    * The previous `Set#divide` implementation is not used, to avoid
      depending on tsort.

    This fixes the following two issues:

    * [Bug #21375] Set[] does not call #initialize
    * [Bug #21396] Set#initialize should call Set#add on items passed in

    It should also fix the vast majority of backwards compatibility issues
    in other cases where code subclassed Set and depended on implementation
    details (such as which methods call which other methods).

    This does not affect Set internals, so Set itself remains fast. For
    users who want to subclass Set but do not need to worry about
    backwards compatibility, they can subclass from Set::CoreSet, a Set
    subclass that does not have the backward compatibility layer included.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15228

commit a24922a68040593598791c9d8b790282d36a15c9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-20 17:56:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-20 17:56:51 +0900

    Remove stale declaration

    `rb_zjit_option_enabled_p` seems no longer used/defined since
    ruby/ruby#f84bbb423836d9d0d018b8ab71ecceb5868fd5be.

commit d755052a921a3706cb591b3d7288a0b503b430be
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-20 17:42:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-20 17:42:17 +0900

    Remove wrong test

    `realloc` is not guaranteed to return the same address when shrinking.

commit 2c42f7c60115d78436e599cf4f56aaf05bc7ac79
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-18 19:34:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-20 16:59:44 +0900

    [ruby/resolv] Move minimal registry access to the extension

    Now win32/registry depends on fiddle, and its conversion is complex
    and too generic for the purpose of resolv.

    https://github.com/ruby/resolv/commit/bd24870d2d

commit 0653a01ada3c3c286de128074b58b32e7bf9eeca
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-20 10:05:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-20 11:41:53 +0900

    [ruby/rubygems] Bump up to 4.0.0.beta1

    https://github.com/ruby/rubygems/commit/9be811c01a

commit 167c3dbaa052d7ad34c374fc6c5f2cceab76b3ac
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-20 09:03:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-20 09:03:23 +0900

    Omit a test on s390x linux tripping over a git bug

    This test has been reliably failing on recent trunk versions.

    See: <https://github.com/ruby/ruby/actions/runs/19519712433/job/55880266450#step:14:120>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15252

    Merged-By: XrXr

commit f5f69d41146d5e17e93ec5b219ae6f5ecd59e38b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-20 07:15:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-20 08:25:29 +0900

    Implement heap_final_slots in GC.stat_heap

    [Feature #20408]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/10439

commit 83bf05427d882b9d5b9adf500abe3471eef14dd1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-20 07:13:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-20 08:25:29 +0900

    Implement heap_free_slots in GC.stat_heap

    [Feature #20408]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/10439

commit fa02d7a01f5e7516de8eb3c7f92ec75c50c06e3f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-20 07:09:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-20 08:25:29 +0900

    Implement heap_live_slots in GC.stat_heap

    [Feature #20408]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/10439

commit 2cd792a1cfefeaee948b321bbc14cb86acc2d456
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-19 07:46:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-20 08:14:01 +0900

    ZJIT: Fix assertion failure when profiling VM_BLOCK_HANDLER_NONE

    As can be seen in vm_block_handler_verify(), VM_BLOCK_HANDLER_NONE is
    not a valid argument for vm_block_handler(). Store nil in the profiler
    when seen instead of crashing.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15233

commit 4107a41020003d7106883b78891560e05d299310
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-19 07:45:27 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-20 08:14:01 +0900

    ZJIT: Re-link the test binary when only miniruby changes

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15233

commit 2ed287da177ea792e0673eaf7764cc7ca1fca8a1
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-11-20 08:00:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-20 08:00:44 +0900

    ZJIT: Add Iongraph compatibility (#14999)

    ## Components

    This PR adds functionality to visualize HIR using the [Iongraph](https://spidermonkey.dev/blog/2025/10/28/iongraph-web.html) tool first created for use with Spidermonkey.

    ## Justification

    Iongraph's viewer is (as mentioned in the article above) a few notches above graphviz for viewing large CFGs. It also allows easily inspecting different compiler optimization passes and multiple functions in the same browser window. Since Spidermonkey is using this format, it may be beneficial to use it for our own JIT development.

    The requirement for JSON is downstream from that of the Iongraph format. As for writing the implementation myself, ZJIT leans towards having fewer dependencies, so this is the preferred approach.

    ## How does it look?

    <img width="902" height="957" alt="image" src="https://github.com/user-attachments/assets/e4e0991b-572a-41fd-9fed-1215bd1926c3" />

    <img width="770" height="624" alt="image" src="https://github.com/user-attachments/assets/01398373-1f75-46b8-b1aa-7f5d4cbca6b8" />

    Right now, it's aesthetically minimal, but is fairly robust.

    ## Functionality

    Using `--zjit-dump-hir-iongraph` will dump all compiled functions into a directory named `/tmp/zjit-iongraph-{PROCESS_PID}`. Each file will be named `func_{ZJIT_FUNC_NAME}.json`. In order to use them in the Iongraph viewer, you'll need to use `jq` to collate them to a single file. An example invocation of `jq` is shown below for reference. The name of the file created does not matter to my understanding.

    `jq --slurp --null-input '.functions=inputs | .version=2' /tmp/zjit-iongraph-{PROCESS_PID}/func*.json > ~/Downloads/foo.json`

    From there, you can use https://mozilla-spidermonkey.github.io/iongraph/ to view your trace.

    ### Caveats

    - The upstream Iongraph viewer doesn't allow you to click arguments to an instruction to find the instruction that they originate from when using the format that this PR generates. (I have made a small fork at https://github.com/aidenfoxivey/iongraph that fixes that functionality via https://github.com/aidenfoxivey/iongraph/commit/9e9c29b41c4dbb35cf66cb6161e5b19c8b796379.patch)
    - The upstream Iongraph viewer can sometimes show "exiting edges" in the CFG as being not attached to the box representing its basic block.

    <img width="1814" height="762" alt="image" src="https://github.com/user-attachments/assets/afbbaa16-332f-498f-849e-11c69a8cb0cc" />

    (Image courtesy of @tekknolagi)

    This is because the original tool was (to our understanding) written for an SSA format that does not use extended basic blocks. (Extended basic blocks let you put a jump instruction, conditional or otherwise, anywhere in the basic block.) This means that our format may generate more outgoing edges than the viewer is written to handle.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 63a6290ce0bf1a7145c545632b22a5dfa170ea6a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-20 07:03:11 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-20 07:54:35 +0900

    [DOC] Update yjit.md to use a different email

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15248

commit d487e396bdeb33d0069bab2475103aa9b7109607
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-19 08:47:31 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-20 07:38:53 +0900

    ZJIT: [DOC] Comment copy-editing

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15235

commit ba2b97a9440d92e78d519fbcbdecc25b72a42705
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-20 07:37:37 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-20 07:37:37 +0900

    Update to ruby/spec@6e62695

commit 4e1f20fee6d97b6dc65e0d4eac1f9cc37312bd5f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-20 06:08:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-20 07:27:28 +0900

    [ruby/error_highlight] Fix prism_spot_def_for_name for singletons

    Previously calling a singleton method with invalid arguments would give:

        RuntimeError: Incompatible locations

    This is because `join` wants the operator to come before the location

    https://github.com/ruby/error_highlight/commit/44920551dd

commit 4a1af72a13d41dcc38af7d69ea1f44856265d43f
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-20 05:58:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-20 05:58:24 +0900

    ZJIT: Count all calls to C functions from generated code (#15240)

    lobsters:

    ```
    Top-20 calls to C functions from JIT code (79.9% of total 97,004,883):
                                 rb_vm_opt_send_without_block: 19,874,212 (20.5%)
                                    rb_vm_setinstancevariable:  9,774,841 (10.1%)
                                                  rb_ivar_get:  9,358,866 ( 9.6%)
                                                 rb_hash_aref:  6,828,948 ( 7.0%)
                                                   rb_vm_send:  6,441,551 ( 6.6%)
                                              rb_vm_env_write:  5,375,989 ( 5.5%)
                                            rb_vm_invokesuper:  3,037,836 ( 3.1%)
                                                   Module#===:  2,562,446 ( 2.6%)
                                                 rb_ary_entry:  2,354,546 ( 2.4%)
                                                 Kernel#is_a?:  1,424,092 ( 1.5%)
                                   rb_vm_opt_getconstant_path:  1,344,923 ( 1.4%)
                                               Thread.current:  1,300,822 ( 1.3%)
                                         rb_zjit_defined_ivar:  1,222,613 ( 1.3%)
                                            rb_vm_invokeblock:  1,184,555 ( 1.2%)
                                                     Hash#[]=:  1,061,969 ( 1.1%)
                                                  rb_ary_push:  1,024,987 ( 1.1%)
                                              rb_ary_new_capa:    904,003 ( 0.9%)
                                            rb_str_buf_append:    833,782 ( 0.9%)
                                   rb_class_allocate_instance:    822,626 ( 0.8%)
                                                   Hash#fetch:    755,913 ( 0.8%)
    ```

    railsbench:

    ```
    Top-20 calls to C functions from JIT code (74.8% of total 189,170,268):
                   rb_vm_opt_send_without_block: 29,870,307 (15.8%)
                      rb_vm_setinstancevariable: 17,631,199 ( 9.3%)
                                   rb_hash_aref: 16,928,890 ( 8.9%)
                                    rb_ivar_get: 14,441,240 ( 7.6%)
                                rb_vm_env_write: 11,571,001 ( 6.1%)
                                     rb_vm_send: 11,153,457 ( 5.9%)
                              rb_vm_invokesuper:  7,568,267 ( 4.0%)
                                     Module#===:  6,065,923 ( 3.2%)
                                       Hash#[]=:  2,842,990 ( 1.5%)
                                   rb_ary_entry:  2,766,125 ( 1.5%)
                                    rb_ary_push:  2,722,079 ( 1.4%)
                              rb_vm_invokeblock:  2,594,398 ( 1.4%)
                                 Thread.current:  2,560,129 ( 1.4%)
                                 rb_str_getbyte:  1,965,627 ( 1.0%)
                                   Kernel#is_a?:  1,961,815 ( 1.0%)
                     rb_vm_opt_getconstant_path:  1,863,678 ( 1.0%)
                          rb_hash_new_with_size:  1,796,456 ( 0.9%)
                     rb_class_allocate_instance:  1,785,043 ( 0.9%)
                                  String#empty?:  1,713,414 ( 0.9%)
                                rb_ary_new_capa:  1,678,834 ( 0.9%)
    ```

    shipit:

    ```
    Top-20 calls to C functions from JIT code (83.4% of total 182,402,821):
                                 rb_vm_opt_send_without_block: 45,753,484 (25.1%)
                                                  rb_ivar_get: 21,020,650 (11.5%)
                                    rb_vm_setinstancevariable: 17,528,603 ( 9.6%)
                                                 rb_hash_aref: 11,892,856 ( 6.5%)
                                                   rb_vm_send: 11,723,471 ( 6.4%)
                                              rb_vm_env_write: 10,434,452 ( 5.7%)
                                                   Module#===:  4,225,048 ( 2.3%)
                                            rb_vm_invokesuper:  3,705,906 ( 2.0%)
                                               Thread.current:  3,337,603 ( 1.8%)
                                                 rb_ary_entry:  3,114,378 ( 1.7%)
                                                     Hash#[]=:  2,509,912 ( 1.4%)
                                                 Array#empty?:  2,282,994 ( 1.3%)
                                            rb_vm_invokeblock:  2,210,511 ( 1.2%)
                                                   Hash#fetch:  2,017,960 ( 1.1%)
                                                        _bi20:  1,975,147 ( 1.1%)
                                         rb_zjit_defined_ivar:  1,897,127 ( 1.0%)
                                   rb_vm_opt_getconstant_path:  1,813,294 ( 1.0%)
                                              rb_ary_new_capa:  1,615,406 ( 0.9%)
                                                 Kernel#is_a?:  1,567,854 ( 0.9%)
                                   rb_class_allocate_instance:  1,560,035 ( 0.9%)
    ```

    Thanks to @eregon for the idea.

    Co-authored-by: Jacob Denbeaux <jacob.denbeaux@shopify.com>
    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 28908a95c4d303e3cf12f03b0b475a48778435a7
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-20 05:46:12 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-20 05:47:14 +0900

    Fix provided features spec with --repeat 2

commit 7840ef2f4370d22c5d793e2d32537d6bf9923ce6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 22:51:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-19 22:51:09 +0900

    Win32: Allow some mingw implemeations to use old msvcrt

commit f3f3a40cdc7ade6c35b5a38016a0c72f0bb09315
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-19 19:37:02 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 20:36:40 +0900

    The C-API specs cache should be invalidated when C-API specs .c & .h files are changed

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15239

commit 85cd08e4f9f422357207ace0a53b9ec8020df976
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-11-19 10:38:20 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 20:36:40 +0900

    Update to ruby/spec@2e11d2a

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15239

commit bbb4c7b88bf4fca08487d6b115b1031f56ac9cf6
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-11-19 10:38:18 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 20:36:40 +0900

    Update to ruby/mspec@bd8efcf

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15239

commit 169d6c7cadce7a27e62d9943559b9f712ea231f8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-19 15:29:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 16:43:24 +0900

    [ruby/rubygems] Use method_defined?(:method, false)

    https://github.com/ruby/rubygems/commit/6cc7d71dac

commit 339c1731b260e2fcc52e0dfeab0e16f7591af36d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 16:41:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-19 16:41:04 +0900

    Revert "[Bug #21697] Keep revision.h outside VCS"

    This reverts commit 8986115e0a2a989f2b2ea5945f02c7a13989d640.
    `RELEASE_DATE` including `YEAR`, `MONTH`, `DAY` are mandatory, while
    `REVISION` is not.

commit 8986115e0a2a989f2b2ea5945f02c7a13989d640
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 15:12:28 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 16:19:51 +0900

    [Bug #21697] Keep revision.h outside VCS

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15242

commit e31dc5f193e7bc87b0bf9a672f2ca184810cf098
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 16:05:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-19 16:05:12 +0900

    Fix a typo

commit 1443f89d6942e19516a0fb10d25876021202ec5e
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-17 04:46:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-19 11:57:29 +0900

    [DOC] Tweaks for String#unicode_normalize

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15207

commit 319001192d59bc57923ba3838eb83685cb3af014
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-19 11:56:14 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-19 11:56:14 +0900

    [DOC] Tweaks for String#dump and String#undump

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15180

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit a6cecda1dcf57d4db09c92706f69b018915f6530
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 11:02:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 11:31:03 +0900

    [ruby/etc] Win32: Drop support for older MSVC

    Ruby 2.7 supports MSVC 12.0/_MSC_VER 1800 or later.

    https://github.com/ruby/etc/commit/6f4404ec88

commit 685903e56efd9e4db178d8209c4eb079127b625a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-19 11:00:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 11:31:03 +0900

    [ruby/etc] Bump up the required ruby version to 2.7

    https://github.com/ruby/etc/commit/d047bb6856

commit f040b94cf559855ab3755f6333fb2d4a8f81e0d5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-18 11:39:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 11:08:49 +0900

    [ruby/mmtk] Ensure not blocking for GC in rb_gc_impl_before_fork

    In rb_gc_impl_before_fork, it locks the VM and barriers all the Ractors
    before calling mmtk_before_fork. However, since rb_mmtk_block_for_gc is
    a barrier point, one or more Ractors could be paused there. However,
    mmtk_before_fork is not compatible with that because it assumes that the
    MMTk workers are idle, but the workers are not idle because they are
    busy working on a GC.

    This commit essentially implements a trylock. It will optimistically
    lock but will release the lock if it detects that any other Ractors are
    waiting in rb_mmtk_block_for_gc.

    For example, the following script demonstrates the issue:

        puts "Hello #{Process.pid}"

        100.times do |i|
          puts "i = #{i}"
          Ractor.new(i) do |j|
            puts "Ractor #{j} hello"
            1000.times do |i|
              s = "#{j}-#{i}"
            end
            Ractor.receive
            puts "Ractor #{j} goodbye"
          end
          pid = fork { }
          puts "Child pid is #{pid}"
          _, status = Process.waitpid2 pid
          puts status.success?
        end

        puts "Goodbye"

    We can see the MMTk worker thread is waiting to start the GC:

        #4  0x00007ffff66538b1 in rb_mmtk_stop_the_world () at gc/mmtk/mmtk.c:101
        #5  0x00007ffff6d04caf in mmtk_ruby::collection::{impl#0}::stop_all_mutators<mmtk::scheduler::gc_work::{impl#14}::do_work::{closure_env#0}<mmtk::plan::immix::gc_work::ImmixGCWorkContext<mmtk_ruby::Ruby, 0>>> (_tls=..., mutator_visitor=...) at src/collection.rs:23

    However, the mutator thread is stuck in mmtk_before_fork trying to stop
    that worker thread:

        #4  0x00007ffff6c0b621 in std::sys::thread::unix::Thread::join () at library/std/src/sys/thread/unix.rs:134
        #5  0x00007ffff6658b6e in std::thread::JoinInner<()>::join<()> (self=...)
        #6  0x00007ffff6658d4c in std::thread::JoinHandle<()>::join<()> (self=...)
        #7  0x00007ffff665795e in mmtk_ruby::binding::RubyBinding::join_all_gc_threads (self=0x7ffff72462d0 <mmtk_ruby::BINDING+8>) at src/binding.rs:115
        #8  0x00007ffff66561a8 in mmtk_ruby::api::mmtk_before_fork () at src/api.rs:309
        #9  0x00007ffff66556ff in rb_gc_impl_before_fork (objspace_ptr=0x555555d17980) at gc/mmtk/mmtk.c:1054
        #10 0x00005555556bbc3e in rb_gc_before_fork () at gc.c:5429

    https://github.com/ruby/mmtk/commit/1a629504a7

commit 69b1c567d71b269edb59a026a9a9f04a6a9a0a49
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-18 11:28:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 11:08:49 +0900

    [ruby/mmtk] Add VM barrier in rb_gc_impl_before_fork

    We need the VM barrier in rb_gc_impl_before_fork to stop the other Ractors
    because otherwise they could be allocating objects in the fast path which
    could be calling mmtk_add_obj_free_candidate. Since mmtk_add_obj_free_candidate
    acquires a lock on obj_free_candidates in weak_proc.rs, this lock may not
    be released in the child process after the Ractor dies.

    For example, the following script demonstrates the issue:

        puts "Hello #{Process.pid}"

        100.times do |i|
          puts "i = #{i}"
          Ractor.new(i) do |j|
            puts "Ractor #{j} hello"
            1000.times do |i|
              s = "#{j}-#{i}"
            end
            Ractor.receive
            puts "Ractor #{j} goodbye"
          end
          pid = fork { }
          puts "Child pid is #{pid}"
          _, status = Process.waitpid2 pid
          puts status.success?
        end

        puts "Goodbye"

    In the child process, we can see that it is stuck trying to acquire the
    lock on obj_free_candidates:

        #5  0x00007192bfb53f10 in mmtk_ruby::weak_proc::WeakProcessor::get_all_obj_free_candidates (self=0x7192c0657498 <mmtk_ruby::BINDING+72>) at src/weak_proc.rs:52
        #6  0x00007192bfa634c3 in mmtk_ruby::api::mmtk_get_all_obj_free_candidates () at src/api.rs:295
        #7  0x00007192bfa61d50 in rb_gc_impl_shutdown_call_finalizer (objspace_ptr=0x578c17abfc50) at gc/mmtk/mmtk.c:1032
        #8  0x0000578c1601e48e in rb_ec_finalize (ec=0x578c17ac06d0) at eval.c:166
        #9  rb_ec_cleanup (ec=<optimized out>, ex=<optimized out>) at eval.c:257
        #10 0x0000578c1601ebf6 in ruby_cleanup (ex=<optimized out>) at eval.c:180
        #11 ruby_stop (ex=<optimized out>) at eval.c:292
        #12 0x0000578c16127124 in rb_f_fork (obj=<optimized out>) at process.c:4291
        #13 rb_f_fork (obj=<optimized out>) at process.c:4281

    https://github.com/ruby/mmtk/commit/eb4b229858

commit 1f2913e7417f5193ba52028e2a18c1e01b10d358
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-09 15:06:13 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 11:03:42 +0900

    Win32: Drop support for older than MSVC 14.0/_MSC_VER 1900

    Visual C++ 2015 (14.0):
    - _MSC_VER: 1900
    - MSVCRT_VERSION: 140

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15238

commit 7743123551eded908f0606319a66df1f123c7cd9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-09 15:04:01 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 11:03:42 +0900

    Win32: Drop support for older than MSVC 12.0/_MSC_VER 1800

    Visual C++ 2013 (12.0):
    - _MSC_VER: 1800
    - MSVCRT_VERSION: 120

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15238

commit 25f9e678bfb118309300de90803fe1ba4751f7da
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-09 15:00:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 11:03:42 +0900

    Win32: Drop support for older than MSVC 10.0/_MSC_VER 1600

    Visual C++ 2010 (10.0):
    - _MSC_VER: 1600
    - MSVCRT_VERSION: 100

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15238

commit 3dd39134cde1a5ecd3c5d3128afcabd3c95e5bea
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-09 14:58:15 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 11:03:42 +0900

    Win32: Drop support for older than MSVC 9.0/_MSC_VER 1500

    Visual C++ 2008 (9.0):
    - _MSC_VER: 1500
    - MSVCRT_VERSION: 90

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15238

commit cdb9893c552f67a6065dcb165b2040d35c57aee3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-09 14:56:58 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-19 11:03:42 +0900

    Win32: Drop support for older than MSVC 8.0/_MSC_VER 1400

    Visual C++ 2005 (8.0):
    - _MSC_VER: 1400
    - MSVCRT_VERSION: 80

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15238

commit 1979f8c07d6c2794dda7b482372c9dc0e9f305b0
  Author:     Alexander Momchilov <alexander.momchilov@shopify.com>
  AuthorDate: 2025-11-15 00:14:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 11:01:57 +0900

    [ruby/prism] Add docs for super nodes

    https://github.com/ruby/prism/commit/69abcdbb18

commit 3b9539176bc37b3e95864b04b0eef1263f434eef
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-18 05:33:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 10:37:57 +0900

    [ruby/rubygems] Warn users that `bundle` now display the help:

    - In https://github.com/ruby/rubygems/commit/31d67ecc056fb5a9193bc66a6e69e21576a87702
      we enforced the new behaviour where running `bundle` no longer
      installs gems but displays the help.
      Users now have a way to configure their preferred default command using
      the `BUNDLE_DEFAULT_CLI_COMMAND` flag.

      With the preview of Ruby 4.0 now being released, some people will
      start to see this new change.

      The problem is that the previous behaviour had existed for like an
      eternity and we didn't warn users about this change in advance.
      I'd like to provide a deprecation/warning cycle because this is
      confusing users already and this breaks various CI setup that now
      needs to be changed immediately.

    https://github.com/ruby/rubygems/commit/e415480ac5

commit 83b0cfe1b5d5cab1328aeeac0c1c6eb2484b66de
  Author:     Cody Cutrer <cody@instructure.com>
  AuthorDate: 2023-08-31 07:52:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 10:27:25 +0900

    [ruby/rubygems] Handle BUNDLER_VERSION being set to an empty string

    This is useful, in case you're using Docker, and an upstream
    Dockerfile sets BUNDLER_VERSION to something you don't want.
    It's impossible to unset it... only override to be the empty
    string.

    https://github.com/ruby/rubygems/commit/ffa3eb9ac6

commit 1f299dd309a963f533f107c576966a723568820f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-19 08:42:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-19 10:02:06 +0900

    Fix crash in optimal size for large T_OBJECT

    Previously any T_OBJECT with >= 94 IVARs would crash during compaction
    attempting to make an object too large to embed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15236

commit 4423facbffd5bd523541ebf42dc274272b1de732
  Author:     Go Sueyoshi <sue445@users.noreply.github.com>
  AuthorDate: 2025-11-19 09:46:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 09:47:07 +0900

    [ruby/rubygems] Add `--ext=go` to `bundle gem`
    (https://github.com/ruby/rubygems/pull/8183)

    * Add new gem templates

    * Add `--ext=go` in `bundle gem`

    * Add setup-go to .github/workflows/main.yml

    * Embed go version in go.mod

    * Use go in bundler CI

    * Add example method to template

    * Install Go in .circleci/config.yml

    * Install Go in .gitlab-ci.yml

    * Allow hard tabs in go template

    * Run `rake update_manifest`

    * Fix test

    * Move go_gem to gemspec

    Respect to 9b0ec80

    * nits: :golf:

    * includes valid module name in go.mod

    * generate header file

    * Run `go mod tidy` to create `go.sum`

    * Check if `go.sum` is generated only when Go is installed

    To avoid test failure in environments where Go is not installed

    * Run CI

    * Workaround for hung up

    c.f. https://github.com/rubygems/rubygems/actions/runs/11639408044/job/32415545422

    * Write man for --ext=go

    * Re-generate man with `./bin/rake man:build`

    * pinning :pushpin:

    * Update with `./bin/rake man:build`

    * nits: Extract to method

    * nits: Use `sys_exec` instead of `system`

    * Clean go module cache after test

    Workaround following error

    ```
    1) bundle gem gem naming with underscore --ext parameter set with go includes go_gem extension in extconf.rb
       Failure/Error: FileUtils.rm_r(dir)

       Errno::EACCES:
         Permission denied @ apply2files - /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
       # ./spec/support/helpers.rb:37:in `block in reset!'
       # ./spec/support/helpers.rb:21:in `each'
       # ./spec/support/helpers.rb:21:in `reset!'
       # ./spec/spec_helper.rb:130:in `block (2 levels) in <top (required)>'
       # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `load'
       # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `activate_and_load_bin_path'
    ```

    Files installed with `go get` have permissions set to 444
    ref. https://github.com/golang/go/issues/35615

    ```
    $ ls -l /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
    -r--r--r-- 1 runner runner 42320 Nov 15 06:38 /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go
    ```

    So they cannot be deleted by `FileUtils.rm_r`.
    Therefore, this is necessary to execute `go clean -modcache` separately from `FileUtils.rm_r` to circumvent it.

    * Remove needless changes

    ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532902051

    * ci: setup-go is needless

    * Don't run go command in `bundle gem`

    ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532765470

    * Revert unrelated date changes

    ---------

    https://github.com/ruby/rubygems/commit/260d7d60b3

    Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>

commit 0f89fa97e3629af427282b5b6a800d2b97dd7d65
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-19 09:36:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-19 09:36:29 +0900

    ZJIT: Inline BasicObject#! (#15201)

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 6f6a9ead961feb5c2d794bf9d1594c9e8e1de6ab
  Author:     eileencodes <eileencodes@gmail.com>
  AuthorDate: 2025-11-19 01:56:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-19 07:47:19 +0900

    [ruby/rubygems] Replace instance method look up in plugin installer

    `Gem::Installer.instance_methods(false).include?(:generate_plugins)` is
    63x slower than `Gem::Installer.method_defined?(:generate_plugins)` in a
    microbenchmark. The latter is a direct lookup, whereas the former will
    create an array, which will be slower.

    ```ruby
    require "benchmark/ips"

    Benchmark.ips do |x|
      x.report "instance_methods" do
        Gem::Installer.instance_methods(false).include?(:generate_plugins)
      end

      x.report "method_defined" do
        Gem::Installer.method_defined?(:generate_plugins)
      end

      x.compare!
    end
    ```

    ```
    $ ruby -I lib/ benchmark_methods.rb
    ruby 3.4.4 (2025-05-14 revision https://github.com/ruby/rubygems/commit/a38531fd3f) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
        instance_methods    58.449k i/100ms
          method_defined     3.375M i/100ms
    Calculating -------------------------------------
        instance_methods    541.874k (± 5.7%) i/s    (1.85 μs/i) -      2.747M in   5.087825s
          method_defined     34.263M (± 1.1%) i/s   (29.19 ns/i) -    172.135M in   5.024524s

    Comparison:
          method_defined: 34263189.1 i/s
        instance_methods:   541874.3 i/s - 63.23x  slower
    ```

    This does not make much difference in an overall benchmark or profile,
    but this is more idiomatic Ruby than the prior code.

    https://github.com/ruby/rubygems/commit/49dec52cb2

commit d5d12efde75515997d046448aa36eb9ed893517b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-19 07:45:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-19 07:45:59 +0900

    [ruby/json] parser.c: Remove unued JSON_ParserStruct.parsing_name

    https://github.com/ruby/json/commit/ab5efca015

commit f3f3e76882d01d5e0a006ff731b70053997396e8
  Author:     Jacob <jacob.denbeaux@shopify.com>
  AuthorDate: 2025-11-19 07:32:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-19 07:32:11 +0900

    Extract `KW_SPECIFIED_BITS_MAX` for JITs (GH-15039)

    Rename to `VM_KW_SPECIFIED_BITS_MAX` now that it's in `vm_core.h`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15039

    Merged-By: XrXr

commit cbe65ebbc3f2b77316d50b94e84df1c00822d0f2
  Author:     Shannon Skipper <shannonskipper@gmail.com>
  AuthorDate: 2025-11-17 02:01:50 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-19 06:57:47 +0900

    ZJIT: Skip empty counter sections in stats

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15206

commit 656600371239a4a62e7a26e148af70e98d0fa979
  Author:     Shannon Skipper <shannonskipper@gmail.com>
  AuthorDate: 2025-11-17 01:21:20 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-19 06:57:47 +0900

    ZJIT: Avoid `NaN%` ratio appearing in stats

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15206

commit ff2d2fc1bd9aa6a768e85276d7ba69bbe5af9572
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-19 04:24:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-19 04:24:49 +0900

    YJIT: omit single ractor mode assumption for `proc#call` (#15092)

    The comptime receiver, which is a proc, is either shareable or from this
    ractor so we don't need to assume single-ractor mode. We should never get
    the "defined with an un-shareable Proc in a different ractor" error.

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit ce73b6c0b6a81c70e5ac4f4e43dea05cd23bab20
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-19 01:26:08 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 02:54:40 +0900

    ZJIT: Pass the result of GuardNotFrozen to StoreField and WriteBarrier

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15055

commit 79633437e1a971abd5dda54dc584eec3adb4e7a7
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-19 00:41:15 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 02:54:40 +0900

    ZJIT: Rename the operand of Insn::GuardNotFrozen from val to recv

    * When writing to an object, the receiver should be checked if it's frozen,
      not the value, so this avoids an error-prone autocomplete.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15055

commit 0e10dfded0498cf71efb9fc61a804db6db540009
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-05 04:37:57 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 02:54:40 +0900

    ZJIT: Inline setting Struct fields

    * Add Insn::StoreField and Insn::WriteBarrier

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15055

commit f84bbb423836d9d0d018b8ab71ecceb5868fd5be
  Author:     Godfrey Chan <godfreykfc@gmail.com>
  AuthorDate: 2025-11-18 01:15:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-19 01:35:09 +0900

    ZJIT: add support for lazy `RubyVM::ZJIT.enable`

    This implements Shopify#854:

    - Splits boot-time and enable-time initialization,
      tracks progress with `InitializationState` enum

    - Introduces `RubyVM::ZJIT.enable` Ruby method for
      enabling the JIT lazily, if not already enabled

    - Introduces `--zjit-disable` flag, which can be
      used alongside the other `--zjit-*` flags but
      prevents enabling the JIT at boot time

    - Adds ZJIT infra to support JIT hooks, but this
      is not currently exercised (Shopify/ruby#667)

    Left for future enhancements:

    - Support kwargs for overriding the CLI flags in
      `RubyVM::ZJIT.enable`

    Closes Shopify#854

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15219

commit c38486ffef14f4991288afe9c0d8d23f57b617fc
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-11-18 21:44:40 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-11-19 00:34:06 +0900

    ZJIT: Validate types for all instructions

    * This can catch subtle errors early, so avoid a fallback case and
      handle every instruction explicitly.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15230

commit 522b7d823fb00821eea8d0cf13f33a73e91c0ab7
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-11-18 21:18:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 21:49:38 +0900

    [ruby/openssl] ssl: fix test_pqc_sigalg on RHEL 9.7

    RHEL 9.7 ships OpenSSL 3.5.1 with ML-DSA support, but it is disabled
    for TLS by default, according to the system configuration file:
    /etc/crypto-policies/back-ends/opensslcnf.config

    Specify SSLContext#sigalgs to override the default list.

    https://github.com/ruby/openssl/commit/fac3a26748

commit f168a6d0c2485b3bad5883865cc68ed16fd2ae5f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 18:32:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:30 +0900

    [ruby/rubygems] Handle to reverse order result in Ruby 3.2

    https://github.com/ruby/rubygems/actions/runs/19458155903/job/55676075439?pr=3857

    ```
           -Did you mean 'methods' or 'method'?
           +Could not find gem 'methosd'.
           +Did you mean 'method' or 'methods'?
    ```

    https://github.com/ruby/rubygems/commit/ab7d0fc7b0

commit e78a96b729d2817967857157cef476e1da295c09
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 15:15:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:30 +0900

    [ruby/rubygems] Spelling with the latest version of did_you_mean

    https://github.com/ruby/rubygems/commit/d604c1d1cb

commit c87b36aba1706c907caed5d7189103c27aaf81c0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 14:44:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:29 +0900

    [ruby/rubygems] bin/rubocop -a

    https://github.com/ruby/rubygems/commit/fee8dd2f08

commit e3c483b51d036664cd1d0da0896114ce38550fc4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 14:43:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:29 +0900

    [ruby/rubygems] Removed unused SimilarityDetector

    https://github.com/ruby/rubygems/commit/40ace48651

commit 2c169e15884d163e0a3b939f9d6a30b55c3e3b4f
  Author:     Austin Pray <austin@austinpray.com>
  AuthorDate: 2020-08-02 12:14:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:28 +0900

    [ruby/rubygems] More tests

    https://github.com/ruby/rubygems/commit/210fa87f65

commit 55afec32ff255b74ee7490177ed7ae0f4b5bde29
  Author:     Austin Pray <austin@austinpray.com>
  AuthorDate: 2020-08-02 11:53:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:28 +0900

    [ruby/rubygems] fix tests

    https://github.com/ruby/rubygems/commit/1dc669a0ab

commit dd6ccb44f0a5207ea5a0308f0917a23f7157dcfe
  Author:     Austin Pray <austin@austinpray.com>
  AuthorDate: 2020-08-02 10:30:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:28 +0900

    [ruby/rubygems] Progressively enhance if DidYouMean is available

    https://github.com/ruby/rubygems/commit/a02353fb96

commit 6aa16246f78de49df5ebd6dc5ea3a8c26830025a
  Author:     Austin Pray <austin@austinpray.com>
  AuthorDate: 2020-07-27 07:35:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:27 +0900

    [ruby/rubygems] Rubocop

    https://github.com/ruby/rubygems/commit/a6bc30a827

commit f3e8bc877076e4d0759cd788c4a8f87d88ffc836
  Author:     Austin Pray <austin@austinpray.com>
  AuthorDate: 2020-07-27 06:45:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 19:38:26 +0900

    [ruby/rubygems] use DidYouMean::SpellChecker for gem suggestions

    replaces Bundler::SimilarityDetector with DidYouMean::SpellChecker

    https://github.com/ruby/rubygems/commit/959bea1506

commit a1c76c7e3aeb403132a486ce96e3ae8a5ee0ea0a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 18:47:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 18:47:50 +0900

    Fixed conflict of vendor_gems.rb

commit 85abc59c32fc79c88db98bb0b9d9665254b0ff98
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-27 20:35:09 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-18 17:43:24 +0900

    [DOC] Add documentation about Ruby's VM stack

  Notes:
    Merged: https://github.com/ruby/ruby/pull/14964

commit f272aabb5c007d4a8f15e141edbd1bf2d079c5fc
  Author:     Scott Myron <samyron@gmail.com>
  AuthorDate: 2025-11-18 12:08:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 17:20:51 +0900

    [ruby/json] Use #if instead of #ifdef when checking for JSON_DEBUG so debugging code is not generated when JSON_DEBUG=0.

    https://github.com/ruby/json/commit/4f1adb10d3

commit 54c07383095957c49d91300af6012ff43d41160f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-18 16:10:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 16:17:31 +0900

    [ruby/resolv] Fix syntax error on older versions

    https://github.com/ruby/resolv/commit/599f78c451

commit ccdf83f17a115b53749ec22816467b2aa4f0ddc2
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-18 15:52:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 15:52:35 +0900

    Update bundled gems list as of 2025-11-18

commit 27770210615a56655af3837fd2d4c250354ea226
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-18 11:58:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:55:25 +0900

    Downgrade net-http 0.7.0 because JRuby is not working

commit 59461d123773902be41ac472aed3d52931d08e6d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 12:47:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:55:03 +0900

    Use released version of net-http-0.8.0

commit 0af941db7a9534587e72a3a9cc96cedda022f13d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 14:25:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:54:01 +0900

    [ruby/rubygems] Update resolv-0.6.3

    https://github.com/ruby/rubygems/commit/778426fb73

commit 32716e76ee14648cb456f3e0bea16c5736afcc6a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 14:18:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:54:01 +0900

    [ruby/rubygems] Update optparse-0.8.0

    https://github.com/ruby/rubygems/commit/4e02243f66

commit 8cfed30403197dc17bb2705d8aae3dcdf976bd38
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 12:54:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:54:00 +0900

    [ruby/rubygems] Update fileutils-1.8.0

    https://github.com/ruby/rubygems/commit/f8fe7a5208

commit 6ccc41998f81bd9b044736c2813712898853e22d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 12:51:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:53:59 +0900

    [ruby/rubygems] Update timeout-0.4.4

    https://github.com/ruby/rubygems/commit/b6deff99c9

commit e130375661540b47267e3262a739b7b276c3b101
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 12:50:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:53:58 +0900

    [ruby/rubygems] Update URI-1.1.1

    https://github.com/ruby/rubygems/commit/07f2daf51e

commit bfefb205ff4b549c0e48a1a70c45853e16a93a08
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 12:11:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-18 14:53:56 +0900

    [ruby/rubygems] Use released version of net-http-persistent-4.0.6

    https://github.com/ruby/rubygems/commit/b237f759b0

commit 5ccaeee2e89310d52d15469719c98d02f103b5aa
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-17 08:53:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 13:53:07 +0900

    [ruby/rubygems] Undeprecate `Gem::Version.new(nil)`

    It seems like we were trying to deprecate passing `nil` to
    Gem::Version.new.  This breaks existing code, and I don't think there is
    a good reason to deprecate this usage.

    I believe what we want to prevent is the following code:

    ```ruby
    Gem::Specification.new do |spec|
      spec.version = nil
      # suddenly the spec version is 0!
      p spec.version
    end
    ```

    This commit allows people to manually construct `Gem::Version.new(nil)`,
    but when someone assigns `nil` as the Gem specification version, it sets
    the spec version to `nil` (making the specification invalid).  People
    who manually construct `Gem::Version` objects and use nil should be
    allowed to do it, and `Gem::Version.new(nil) == Gem::Version.new("0")`,
    but people who assign `nil` in a gemspec will get an invalid gemspec.

    I think deprecation started
    [here](https://github.com/ruby/rubygems/pull/2203) but there doesn't
    seem to be a reason to do it.

    Fixes https://github.com/ruby/rubygems/pull/9052

    https://github.com/ruby/rubygems/commit/ded5e909c2

commit 0ce6eed7b91a4927ebe843b0be53822f34dd993f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-18 07:07:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-18 11:32:49 +0900

    Unskip test_alternative_pattern_nested for MMTk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15223

commit fa8799ca6d75b27d4958b8e0ee1dfadc16e18433
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-18 07:05:36 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-18 11:32:49 +0900

    Fix EnvUtil.current_parser for modular GC

    The regexp used in EnvUtil.current_parser did not allow square brackets
    for feature names. Modular GC uses square brackets for the GC name (such
    as +GC[mmtk]).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15223

commit 02279f01ac8408dbb6134a1f636537f3d4e4775f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 11:17:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 09:19:31 +0900

    [ruby/rubygems] Removed deprecated -C option from gem build

    https://github.com/ruby/rubygems/commit/3471646d43

commit 093dbbbd350cf1288c12287629db932faaab1b55
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 15:12:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 07:57:29 +0900

    [ruby/rubygems] Removed unused deprecate loading

    https://github.com/ruby/rubygems/commit/a49d315ecd

commit c0256d1d5d397991e4f2dec6359339f406aa3dd8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-18 03:41:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-11-18 03:46:32 +0900

    [DOC] Update GC.stat and GC.stat_heap documentation

    I noticed some of the keys have been gone or renamed for a while.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15218

commit f9e31f4307b23fe3dbb857f589350cde79155abd
  Author:     Sander Verdonschot <sander.verdonschot@shopify.com>
  AuthorDate: 2025-11-15 08:22:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 03:01:27 +0900

    [ruby/time] Defer default year for zone_offset until needed

    While parsing ISO 8601 timestamps like `2025-11-13T19:34:23.681726000Z`
    I noticed that a lot of time was spent to compute a default `year`
    argument to `zone_offset`. For ISO 8601, that year is never used, as
    all valid time zone designators match one of the earlier cases.

    This commit moves the computation of the default `year` value to just
    before it is used. This results in a 15% speedup parsing ISO 8601
    timestamps on Mac OS X.

    https://github.com/ruby/time/commit/4a0bcbe575

commit 371a295e190f5b1191400a6ed6944e85ed035598
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-13 02:51:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-18 00:53:47 +0900

    Fix improper termlen fill in `str_duplicate_setup_embed`.

    When term len != 1 (for example: Encoding::UTF32BE), term fill is wrong size.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15156

commit 9de66a8c5150266d9f827a11300cd8bcd4b64d4f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-17 21:43:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-18 00:14:21 +0900

    [ruby/prism] Remove now obsolete todos

    https://github.com/ruby/prism/commit/b00d098f9a

commit d66b37e3d8737451ae76b40823641582bd451f8f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-17 21:02:32 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-11-18 00:11:40 +0900

    Remove alternation pattern matching handling from the prism compiler

    Since https://github.com/ruby/ruby/pull/15212 these are proper syntax
    errors, so no need to handle this explicitly anymore.

    Also updated the example in the docs for this

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15215

commit a0ef236678c0e79d2f4ec369d3cbf2095013803b
  Author:     NARUSE, Yui <naruse@airemix.jp>
  AuthorDate: 2025-11-17 22:30:41 +0900
  Commit:     NARUSE, Yui <naruse@airemix.jp>
  CommitDate: 2025-11-17 22:30:41 +0900

    remove old code

commit 4fa6e9938cfb9458abd876ad4219a6648bfe1c96
  Author:     NARUSE, Yui <naruse@airemix.jp>
  AuthorDate: 2025-11-17 21:38:51 +0900
  Commit:     NARUSE, Yui <naruse@airemix.jp>
  CommitDate: 2025-11-17 21:39:04 +0900

    strnlen is not used now

commit 3bbd45dd86ba7a00319ba482bd09b15fc86b7466
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-17 18:11:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-17 21:34:44 +0900

    Fix `RUBY_API_VERSION_NAME` fallback definition

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15214

commit c32eb727bdde8b3e840198aaffb049a955d94783
  Author:     NARUSE, Yui <naruse@airemix.jp>
  AuthorDate: 2025-11-17 17:05:50 +0900
  Commit:     NARUSE, Yui <naruse@airemix.jp>
  CommitDate: 2025-11-17 17:06:27 +0900

    The prev_ver of 4.0.0 is 3.4.0

commit 3d8dfbf51e0133e76e5dca4f408c8f7efb6698b3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-17 16:07:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-17 16:08:31 +0900

    Skip TestCommitEmail if git is not available.

    https://github.com/ruby/actions/actions/runs/19420968008/job/55558315338

    ```
        1) Error:
      TestCommitEmail#test_sendmail_encoding:
      Test::Unit::ProxyError: No such file or directory - git
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:534:in 'Kernel#spawn'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:534:in 'Open3.popen_run'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:379:in 'Open3.popen2'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:785:in 'Open3.capture2'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:89:in 'TestCommitEmail#git'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:13:in 'block in TestCommitEmail#setup'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:12:in 'Dir.chdir'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:12:in 'TestCommitEmail#setup'

        2) Error:
      TestCommitEmail#test_sendmail_encoding:
      Test::Unit::ProxyError: no implicit conversion of nil into String
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:37:in 'File.unlink'
          /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:37:in 'TestCommitEmail#teardown'
    ```

commit 8d0105824f1cf722c1319496ed903b6a18efdafe
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-11-17 06:57:42 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-11-17 11:30:24 +0900

    Handle deeply nested capture variables syntax err

    When there are nested capture variables inside of a pattern match
    that has an alternation pattern, it is a syntax error. Currently it
    only adds a syntax error when it is at the top level of the pattern.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15212

commit 4870fbd04a015717800a8b5ab87da03e4d93e894
  Author:     Sergey Fedorov <vital.had@gmail.com>
  AuthorDate: 2025-11-17 08:49:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-17 08:49:56 +0900

    vm_dump.c: unbreak unwind on powerpc (#14650)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit bdeee7012c37834a17712c7aaa8c602ae1208a8e
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-15 05:53:42 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-17 08:23:28 +0900

    Avoid allocating intermediate string in zone_str

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15198

commit 3cd30814d415bba94adb26bdc04aeed7ff240d92
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-17 04:53:53 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-17 06:27:06 +0900

    [DOC] Tweaks for String#unicode_normalize!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15208

commit 17f3588a43ba2311f1ba7843a0293072861db760
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-17 05:17:22 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-17 06:26:46 +0900

    [DOC] Tweaks for String#unicode_normalized?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15209

commit 43e26d02df845e9fc0ee597cbfa4425537e76020
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-17 05:40:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-17 06:26:11 +0900

    [DOC] Tweaks for String#unpack

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15210

commit 00521434a4a727e5a312ac9a42d48572ffa6388a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-17 05:51:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-17 06:24:48 +0900

    [DOC] Tweaks for String#unpack1

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15211

commit bacd35626c500db1f27136b57363685e4da74d9b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-16 00:17:12 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-16 06:02:15 +0900

    Remove dead IBF_OBJECT_INTERNAL

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15203

commit 9e8a661f3baae0b86d5f83ac9719c8d3eb37a077
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-15 22:50:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-15 22:50:58 +0900

    [ruby/stringio] [DOC] Fix #seek link
    (https://github.com/ruby/stringio/pull/174)

    Method #seek deserves (and will get) documentation independent of that
    in class IO.

    Meanwhile, the link should go someplace sensible and useful.

    https://github.com/ruby/stringio/commit/d026549719

commit abf3056381a29847576d9d53242aaec5f7cc1ca4
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-15 22:48:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-15 22:49:03 +0900

    [ruby/stringio] [DOC] Doc for StringIO.size
    (https://github.com/ruby/stringio/pull/171)

    https://github.com/ruby/stringio/commit/95a111017a

commit b5c9269604f6dd816692b0c00b6a205f655e646a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-15 22:47:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-15 22:48:14 +0900

    [ruby/stringio] [DOC] Tweaks for StringIO#each_line
    (https://github.com/ruby/stringio/pull/165)

    Adds to "Position":  pos inside a character.

    Makes a couple of minor corrections.

    ---------

    https://github.com/ruby/stringio/commit/ff332abafa

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

commit 577cf5e3841e0ef142c192f9bd17d64707221402
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-15 12:07:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-15 12:23:44 +0900

    [DOC] Remove an obsolete file

    It has been merged into `doc/ruby/options.md` with
    `field_processing.md` at [ruby/ruby#10138](https://github.com/ruby/ruby/pull/10138).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15200

commit 70b49b657122da7f5cbfa2b93f198dddf2e41c30
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-11-15 01:15:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-15 11:04:49 +0900

    refactor io_each_codepoint

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15199

commit f1765cd4025ff5b3048cb9f330f6624d39e5a742
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2025-11-15 02:36:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-15 10:18:56 +0900

    [Doc] Remove leftover references to namespace from box.md

    And fix the indentation a little bit, since `box` is one character
    longer than `ns`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15191

commit d7369f027b630c5a83aea0de0f014908f7597460
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-13 07:25:41 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-15 09:34:29 +0900

    ZJIT: Add individual tests for complex arg pass counters

    Make it easier to see what happens when one is changed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15159

commit 6fabca80a3281c58c4ba501116cb9643756ca7c1
  Author:     Daisuke Fujimura (fd0) <booleanlabel@gmail.com>
  AuthorDate: 2025-11-14 23:53:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-15 08:37:23 +0900

    Add rubygems package to fix cygwin CI

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15187

commit eb6e36a87da8e87f181a006154c67f5dc4af990d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-14 12:03:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-15 07:26:09 +0900

    Skip tests in TestThreadLockNativeThread when using LSAN

    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

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15184

commit 89849f3b4a7b4b7f27d5942cdaf25bbe4f99025b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-15 05:20:01 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-15 06:35:12 +0900

    ZJIT: Support JIT-to-JIT calls to callees with optional parameters

     * 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`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15022

commit 5d35e24464ffdec1f79e40b64da87c31ca7281cf
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-11-15 05:05:19 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-15 06:35:12 +0900

    ZJIT: Check argument count matches callee's parameters

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15022

commit e417f6fec95ed08e78df7ad4f9d7e1e448608b29
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:11:26 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Remove dead function and set .freeze reason

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 491be5781a830c57c9a2df59862818286b211095
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:06:46 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_OR into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 22d2bb0132cc6ea28ba42f2fd7006409f76b12b9
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:04:33 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_AND into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 35c2c656da9dc6a023d14a697f2ab4e354785da5
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:03:17 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_GE into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 236366cbea309cac5e442e9703ba72e0af2c0f3c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:01:59 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_LE into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 1c4240bcca3a2d917ce838b2fb1325b9bb7a0e62
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 05:00:18 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_LT into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 1170493203b2dfbf38f2aed36ebd30aaea731b27
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:58:07 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_MOD into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 0851c2aa6609aa53bcd038362699ff7fc7fdd2ff
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:54:40 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_DIV into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit f0e57720e45dc0ad2c06cf7b1ff02f683f3ccaaa
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:53:22 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_MULT into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 7a7035eeadef7eb5c11c80e40f6bbd2e87c029e4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:50:13 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_NEQ into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit ad6ca3a7aaa6cd1306f1311148eb6673d1e64511
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:39:22 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_GT into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 4683ce5fecf65ffbbdeb800f9fc58e67d307a216
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:37:49 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_MINUS into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 47904d859e65d0ec4cd9ec41b1ed2c5f879f61c1
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:17:07 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_PLUS into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 94f701da4122f2cf2c9fab8f829a78cf481c04d8
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-15 03:56:20 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-11-15 05:41:05 +0900

    ZJIT: Move special Fixnum BOP_EQ into cruby_methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15195

commit 8e01768a4113afb10c0be9925a63044af50ef062
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-15 04:49:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-15 04:49:09 +0900

    ZJIT: Break out CFunc send fallback stats (#15193)

    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%)
    ```

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit de157f423ed6b4a6a741d480cd82dc163412c00a
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-15 03:46:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-15 03:46:42 +0900

    ZJIT: Skip a flaky DNS test (#15192)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit d966ba757c99e638aea5d96920987aa1a1aabc9a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-15 03:16:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-15 03:16:10 +0900

    Revert ".github/workflows: Stop ignoring RUBY_TESTOPTS"

    This reverts commit 946695cdad874e91bc25bedc3c7b322934ca0f07.

    Apparently this doesn't work for test-bundled-gems

commit 946695cdad874e91bc25bedc3c7b322934ca0f07
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-15 02:51:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-15 02:52:20 +0900

    .github/workflows: Stop ignoring RUBY_TESTOPTS

    $(RUBY_TESTOPTS) are used in $(TESTOPTS), so if you pass $(TESTOPTS),
    it'd be ignored.

commit e4295bc3f763d220a944ed353eaeda2c1c1b88cd
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-14 05:01:55 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-15 02:29:09 +0900

    YJIT: Fix stack handling in rb_str_dup

    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>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15179

commit 286e326299bffdc4061565162502f6c76caf1189
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-15 02:28:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-15 02:28:19 +0900

    ZJIT: Add tests for sending to methods with keyword args (#15183)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit bec69617a00e1d98748b319411f221568a4b6c66
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-03 20:24:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-15 01:27:38 +0900

    [ruby/prism] Reject endless method as a block parameter default

    Fixes [Bug #21661]

    https://github.com/ruby/prism/commit/475fa46a82

commit 0e604623d855934c1f10b293b698f223b79c5c07
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-14 10:51:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 22:47:49 +0900

    [ruby/prism] Use `method_defined?` instead of `instance_methods.include?`

    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

commit f4b6a5191ceb0ed0cd7a3e3c8bab24cc0dd15736
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-24 00:57:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-14 21:03:04 +0900

    [Feature #21572] Syntax error at capture in alternation pattern

    Should fail even with `-c` option.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/14923

commit 6f18898f4902b2717442f9bef4faa876d58f99de
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 15:14:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 16:36:28 +0900

    [ruby/rubygems] Removed deprecated Gem::Specification#has_rdoc, has_rdoc= and has_rdoc?

    https://github.com/ruby/rubygems/commit/b043538576

commit dabc86a5f305f09708df5a2476ce468b26a75b00
  Author:     Brandon Weaver <keystonelemur@gmail.com>
  AuthorDate: 2025-11-09 12:37:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:32:36 +0900

    [ruby/rubygems] Add pattern matching support to Gem::NameTuple

    https://github.com/ruby/rubygems/commit/9b19e1f555

commit 068b35ce3d85927765f8b448ecc6f2e866d2b9b7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 13:44:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:25:21 +0900

    [ruby/rubygems] Removed files for `gem query`

    https://github.com/ruby/rubygems/commit/de269cfbb6

commit 4a0465da6139bb691dc132e6bd91083a1aa92e84
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 13:50:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:25:04 +0900

    [ruby/rubygems] Removed deprecated Gem::DependencyInstaller#find_gems_with_sources

    https://github.com/ruby/rubygems/commit/1b3f3bf194

commit 46227126957b154a73ec34068ccb6c40b62981a8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 13:45:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:39 +0900

    [ruby/rubygems] bin/rubocop -a --only Layout/EmptyLinesAroundClassBody

    https://github.com/ruby/rubygems/commit/94d4e633d1

commit ecec9dc606c0816ddff241485389b892d19da144
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 12:04:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:38 +0900

    [ruby/rubygems] Removed deprecated Gem::Util.silent_system

    https://github.com/ruby/rubygems/commit/728269cc4a

commit 31928c10a25c8ad14b4e7d7378afa6d83a1ecec0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 12:01:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:38 +0900

    [ruby/rubygems] Removed deprecated Gem::Specification#validate_metadata, validate_dependencies and validate_permissions

    https://github.com/ruby/rubygems/commit/fbf38fc190

commit 9fd3ab9e4a7157830c425ddf190b455f3ab00871
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:55:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:37 +0900

    [ruby/rubygems] Removed deprecated Gem::Specification#default_executable

    https://github.com/ruby/rubygems/commit/84ceaff1b7

commit a6fa99fe18ec3d5f416c87cdb7e7fbb22f9de612
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:48:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:37 +0900

    [ruby/rubygems] Removed deprecated Gem::Platform.match

    https://github.com/ruby/rubygems/commit/f4b4f12f91

commit a242adc3e9de1e9124ba6a4f34d3b979afc6a671
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:36:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:37 +0900

    [ruby/rubygems] Removed deprecated Gem::Installer#unpack

    https://github.com/ruby/rubygems/commit/96cef34041

commit b3831efb974e4de04b7ccc4ebabb5056f7d2a4fb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:31:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 15:09:36 +0900

    [ruby/rubygems] Removed deprecated Gem::BasicSpecification.default_specifications_dir

    https://github.com/ruby/rubygems/commit/60f0b87d47

commit 917fd39982ee31f6fa8834c102db76dbc9ce17e2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 11:57:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 14:22:21 +0900

    [ruby/rubygems] Update vendored version of connection_pool to 2.5.4

    https://github.com/ruby/rubygems/commit/3f5330c9fc

commit e68c0fc75bebee31f6c57b9f02bb10019a91976b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:50:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 14:22:20 +0900

    [ruby/rubygems] bin/rubocop -a --only Style/RedundantParentheses

    https://github.com/ruby/rubygems/commit/be3b09c786

commit 2c546071df24128126a2516090b446d45b74dbb9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 10:11:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 14:22:20 +0900

    [ruby/rubygems] Update the all dependencies with rake update

    https://github.com/ruby/rubygems/commit/74c9eaf1f0

commit 47e3aff930942691321408ef785f7548b4948631
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-11-13 19:02:15 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-11-14 12:27:36 +0900

    Adapt to Unicode directory changes

    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/

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15170

commit cb3bc8ae3f02882debd5f56ee6ef8f99f0addda0
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-11-13 19:02:10 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-11-14 12:27:36 +0900

    [Feature #21275] Bump Unicode version to 17.0.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15170

commit e39385bf849610a58865722cdd330eff9475b00e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-14 10:57:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 12:24:42 +0900

    [ruby/rubygems] Use `method_defined?` instead of `instance_methods.include?`

    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

commit 256b4722a0dc45ee8d675db0a30f37d32a40ea88
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-14 11:45:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 12:22:49 +0900

    [ruby/mmtk] Lock VM in fork hooks

    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

commit c92a44ee685fc10ce7cf4f8865d1942eb40d2780
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-14 12:02:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-14 12:02:45 +0900

    ZJIT: Use Mem.num_bits in Mem split (#15177)

    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
    ```

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit e826f815bf5fea0d28e3dd71411eeac9e47d3c6e
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-13 23:15:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-14 11:28:09 +0900

    [DOC] Tweaks for String#tr_s!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15176

commit 6c7453c5deb76c0be336cedd5eba667e0b6629c6
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-13 23:07:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-14 11:27:43 +0900

    [DOC] Tweaks for String#tr_s

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15175

commit 7ea0d369661f9050d29e4a37899cafc8c03d5497
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-13 22:52:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-14 11:27:01 +0900

    [DOC] Tweaks for String#tr!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15174

commit 560ec9bfd2d16dc1836335a36430d67861feb87e
  Author:     yui-knk <spiketeika@gmail.com>
  AuthorDate: 2025-11-13 12:45:09 +0900
  Commit:     yui-knk <spiketeika@gmail.com>
  CommitDate: 2025-11-14 11:23:35 +0900

    Skip null check for `brace_block`

    `brace_block` is `'{' brace_body '}'` or `k_do do_body k_end`.
    Both of them are not null so no need to check `$5`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15167

commit 8a58e66a10b486923c63c8ba23d62740ecf98554
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-14 09:57:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 11:16:49 +0900

    [ruby/rubygems] Suppress gem build message of bundler like this:

    ```
    $ 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

commit 6e5bbbc598684b80bfa3fc6dff0a83a949e7d078
  Author:     isuckatcs <65320245+isuckatcs@users.noreply.github.com>
  AuthorDate: 2025-11-14 07:29:50 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-14 09:37:49 +0900

    Remove `include` prefix from include paths

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15182

commit d9bb60271cf94d099214f02a0226dd7d29873412
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 18:25:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 09:19:57 +0900

    [ruby/rubygems] Re-generate lockfile with double spaces

    https://github.com/ruby/rubygems/commit/a65a4b775e

commit 5924765b897dd419bcaf81f34cdfcb49c838af7e
  Author:     Jimmy Lin <jmlntw@gmail.com>
  AuthorDate: 2021-09-05 20:38:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 09:19:56 +0900

    [ruby/rubygems] Fix triple spacing when generating lockfile

    https://github.com/ruby/rubygems/commit/d3baf4110e

commit f100298e28b3f3db93956a563a11c5cc1dbcb0a7
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-14 06:42:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-14 06:42:38 +0900

    ext/socket: Set raddrinfo thread as detached before thread start (#15142)

    We were seeing segfaults when calling `pthread_detach`. Apparently in
    some versions of glibc there is a race between when this is called
    (usually right after starting a thread) and a short-lived thread's
    shutdown routine. The bug has been reported to glibc:

    https://sourceware.org/bugzilla/show_bug.cgi?id=19951

    I haven't been able to reproduce it on my Linux desktop but apparently
    it's easier to reproduce on certain kinds of servers.

    As a workaround, we can set the thread's detach state before thread
    start. I don't know of a platform that doesn't have
    `pthread_attr_setdetachstate`, but to be safe we check for it in
    `extconf.rb` and use `pthread_detach` as a backup if it isn't available.

    Fixes [Bug #21679]

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit 244a4bedc25a402af8f5112ce35b4d82c297fe3e
  Author:     Sorah Fukumori <her@sorah.jp>
  AuthorDate: 2025-11-14 01:00:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-14 01:01:15 +0900

    [ruby/net-http] releng v0.8.0

    https://github.com/ruby/net-http/commit/9d65391f54

commit 1d903b727f1ecd71e6e9776695937602177a0b6e
  Author:     Taketo Takashima <t.taketo1113@gmail.com>
  AuthorDate: 2025-11-13 22:56:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 23:33:22 +0900

    [ruby/net-http] Drop support for Ruby 2.6

    https://github.com/ruby/net-http/commit/a3a5bc45f6

commit 2ab21f56f9c96485def7c0b40bebb1ec2a4113c4
  Author:     Taketo Takashima <t.taketo1113@gmail.com>
  AuthorDate: 2025-11-05 11:47:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 23:33:22 +0900

    [ruby/net-http] Fix handling of IPv6 literal hosts in `Net::HTTPGenericRequest`

    Update uri dependency to version 0.11.0 or later to use `URI::HTTP#authority` and `URI#parse` without scheme

    https://github.com/ruby/net-http/commit/3d4f06bd7f

    Co-authored-by: 0x1eef <0x1eef@users.noreply.github.com>
    Co-authored-by: Sorah Fukumori <sora134@gmail.com>

commit 61500c6f48135ef018f5e496ff292a86b0043c65
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2025-11-13 20:01:37 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2025-11-13 22:00:07 +0900

    Add size checks to Range#to_set and Enumerator#to_set [Bug #21654]

    These two class are most common sources of infinite sequences.  This change should effectively prevent accidental infinite loops when calling to_set on them. [Bug #21513]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15173

commit 25c871fddf430d18a1f0a794a0f81598e9b79727
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2025-11-13 19:13:10 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2025-11-13 22:00:07 +0900

    Revert "[Bug #21513] Raise on converting endless range to set"

    This reverts commit d4020dd5faf28486123853e7f00c36139fc07793, which introduced performance regression for objects like ActiveRecord::Relation by calling the costly #size method on them.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15173

commit 4a1b88afb82291bd066472e8ad0000b23ed0d4dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-13 20:50:45 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-13 21:27:53 +0900

    Exclude lib/unicode_normalize from lib/un

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15172

commit 19c2c7e61059f42a29d0d54ee5fd4f021854b2b3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 19:47:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 20:59:34 +0900

    [ruby/rubygems] Fixed with Performance/RegexpMatch cop

    https://github.com/ruby/rubygems/commit/93b8492bc0

commit d80aa36847cb57a785ccaa9b1219fcbd26a74369
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 18:40:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-13 19:42:38 +0900

    Ractor support Windows platform. We need to skip only failing tests of RubyGems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15171

commit 7e37e4e743a1ca1d5d7bbb87cdd9b943e3a4fe1d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-13 11:02:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-13 16:15:00 +0900

    [Bug #21683] Respect reading encoding at `each_codepoint`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15169

commit 253485484c08aa56b1ea154b880eea217656d195
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-23 20:26:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 15:28:46 +0900

    [ruby/rubygems] We don't need to allow some warning because:

    Always build gems with RubyGems programmatically

    https://github.com/ruby/rubygems/commit/5cc0c34e64

commit 3c68b781dcf63fe29dbde569e534ab0e2b3eec0c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 11:45:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-13 14:29:16 +0900

    Use omit instead of return in assertion

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15164

commit 13407d959ab6e481db3148ea76f46c2f5aa70479
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 11:44:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-13 14:29:16 +0900

    Omit assert_ractor with Windows platform

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15164

commit 2c1b1751e4b28929f426e4fd92c38f550872dbf5
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-11 07:09:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 13:44:46 +0900

    [ruby/rubygems] Add debug logging information:

    - I'd like to be able to see how long bundler takes for basic
      operations such as downloading a gem from Rubygems.org and
      installing a gem.

      It will now be possible with this commit by running
      `DEBUG=true bundle install` and have output that looks like:

      Fetching rack-test 2.2.0
      Downloaded rack-test in: 50.523s
      Installing rack-test 2.2.0
      Installed rack-test in: : 0.003s

    https://github.com/ruby/rubygems/commit/46386d43e1

commit b4b7809f0be7897e194d0e215071b9a0e3fa716e
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-11-13 13:34:33 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-11-13 13:34:33 +0900

    Use path in tmpdir instead of IO::NULL

    The path already used in tool/test/test_sync_default_gems.rb .

    Try to fix errors on Windows.

    https://github.com/ruby/ruby/actions/runs/19316448613/job/55248700110

commit fe1e1c784ea762fd4b7f8d441b8a2508460646ab
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-11-13 03:19:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 13:23:32 +0900

    [ruby/rubygems] Adjust the API_REQUEST_LIMIT:

    - ### Problem

      This limit is used when Bundler fallback to getting a dependency
      list from a server `/dependencies?gem=` endpoint. Bundler uses
      this API endpoint fallback when a server doesn't expose the compact
      index API.
      This is not used for Rubygems.org, only private servers.

      This limit is then divided by the number of dependency to get
      and the result is the number of request we'll be doing.
      The bottleneck on the client is the network roundtrip. On the
      server, getting the info of 50 or 100 gems is a bit more expensive
      but this operation is heavily cached.

      This is an example of Rubygems.org implementation at the time the
      dependencies API wasn't deprecated
      https://github.com/rubygems/rubygems.org/blob/5a3a3ec02acc3a4e3aba077953a393ad20a06842/app/models/gem_dependent.rb#L15

      ### Context

      This limit used to be 100 a while ago but got changed
      to 50 in https://github.com/ruby/rubygems/commit/e745f8dc901dd419e7dc8aede3e8d49569fc7b1e
      I don't know why.

      ### Solution

      50 gems to query seems arbitrary low. By doubling this number, we
      make twice as less API requests which ultimately can shove up to two
      seconds on application relying on a large number of gems.

    https://github.com/ruby/rubygems/commit/831894043c

commit 057c6e3bab655dd5edb9500731a56503d22ac3f7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 10:57:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-13 10:57:04 +0900

    Revert "include ruby.h to avoid load failures"

    This reverts commit 35783854244f8dc6a9f7fb4dfae752f8361c66bd.

commit 3dd32fdf784dac5769f6a352fa16c42e2c60edf7
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-13 10:06:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-13 10:06:47 +0900

    ZJIT: Revert patch_point_count counter (#15160)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 37a05b591c989abe1ca524c3ff98b088d7e6a656
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-11-13 09:31:50 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-11-13 09:34:08 +0900

    Ignore ~/.gitconfig

    I use `commit.gpgsign=true`, so I want to ignore it in tests.

commit 8f9b038df30d1ba8310de642a5884d34fbf60e1a
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-11-13 09:06:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-13 09:06:52 +0900

    ZJIT: Add standalone JSON implementation (#15162)

    I split this off from https://github.com/ruby/ruby/pull/14999 to land the JSON component earlier.

    Iongraph's viewer is (as mentioned in the article above) a few notches above graphviz for viewing large CFGs. It also allows easily inspecting different compiler optimization passes and multiple functions in the same browser window. Since Spidermonkey is using this format, it may be beneficial to use it for our own JIT development.

    The requirement for JSON is downstream from that of the Iongraph format. As for writing the implementation myself, ZJIT leans towards having fewer dependencies, so this is the preferred approach.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 75f5a0bae9a288b71513d72ee1856bf67ad7b338
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-12 21:37:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-13 08:44:34 +0900

    Increase default stack sizes for LSAN

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15148

commit 9f7ef20de165a20de951574c6f807a78872a2d22
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-13 07:09:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 08:25:49 +0900

    [ruby/rubygems] Re-use assert_headers_equal from Gem::Package::TarTestCase

    https://github.com/ruby/rubygems/commit/0cf49e22af

commit be86e7c50e6cc91b5b50f9a346f353546c555d5b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-13 07:26:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 07:27:36 +0900

    [ruby/io-wait] Define ABI version

    https://github.com/ruby/io-wait/commit/ad6f47fd3a

commit 2247b0becbb2ad0939645f460669f8351fc0e376
  Author:     Brandon Weaver <keystonelemur@gmail.com>
  AuthorDate: 2025-11-11 14:58:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 07:23:10 +0900

    [ruby/rubygems] Add documentation for pattern matching methods

    https://github.com/ruby/rubygems/commit/18f64c6b29

commit 3efabc8355df489d1fa9717e7cb1b8daa8ddf92e
  Author:     Brandon Weaver <keystonelemur@gmail.com>
  AuthorDate: 2025-11-09 12:16:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 07:23:10 +0900

    [ruby/rubygems] Add pattern matching support to Gem::Platform

    https://github.com/ruby/rubygems/commit/b59917447c

commit cdc3faa6b3e02d9f40d9e1ff356bee9ad01ceb73
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 07:02:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 07:02:14 +0900

    erb/new_spec.rb: Fix a missing do

commit a4916a6f385b2c1323f0df45c5630f388c55bb4d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-13 03:43:45 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-13 07:02:07 +0900

    [DOC] Tweaks for String#tr

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15158

commit c13b4d79e1573c6ab9c66eadaccf30df12ed03c8
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-11-13 03:35:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-13 07:01:43 +0900

    [DOC] Tweaks for String#to_s

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15157

commit 936951b31238a873567be5fb049af9d383bc4c55
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 06:49:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 06:49:23 +0900

    erb/new_spec.rb: Update a version guard

    to the released version

commit e25fdc3d0048cd2ab5c92add8fb76c17240e6ffc
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 06:47:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 06:48:07 +0900

    [ruby/erb] Version 6.0.0

    https://github.com/ruby/erb/commit/bbaaf1f51b

commit fe1f8cd129cdfc23378e2c07f59e2a84bcbc7367
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 06:30:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 06:31:58 +0900

    [ruby/erb] Drop a deprecated constant ERB::Revision

    https://github.com/ruby/erb/commit/1f83b2578f

commit 07e78e31c6ebd2f6add2493aa072f45a57aec3b9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 05:49:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 05:50:49 +0900

    [ruby/erb] Drop an obsolete constant ERB::NOT_GIVEN

    and update some documentation

    https://github.com/ruby/erb/commit/9da628f21c

commit 7aba6ce2a6ee4dce9ed9578b71fe38999ed94bf1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 05:44:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 05:44:15 +0900

    erb/new_spec.rb: Fetch private ERB::VERSION

    for erb v4.0.4 or older

commit fb48b3020c351fab65e878af17dc941d0dd1e260
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 05:41:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 05:41:49 +0900

    spec_guards.yml: Add `fail-fast: false`

    fail-fast is never a good idea for master branch.

commit 6365d7b0a585c1cd416a52058b0daa9a87d0c8d0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 05:31:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 05:36:44 +0900

    Reapply "[ruby/erb] Reapply "Remove safe_level and further positional"

    This reverts commit 5b6658a406b5f1c535aed4cb68e8e18a3cbabb81.

    With a ruby spec fix.

commit 5b6658a406b5f1c535aed4cb68e8e18a3cbabb81
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-13 04:59:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-13 04:59:48 +0900

    Revert "[ruby/erb] Reapply "Remove safe_level and further positional"

    This reverts commit 6ea4f36716f8970f418f32837575405ddeea75aa.

    I'll fix ruby/spec shortly. For now, let me just revert it for ruby/ruby.

commit 6ea4f36716f8970f418f32837575405ddeea75aa
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-13 04:53:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-13 04:53:36 +0900

    [ruby/erb] Reapply "Remove safe_level and further positional
    arguments (https://github.com/ruby/erb/pull/7)"
    (https://github.com/ruby/erb/pull/95)

    This reverts commit https://github.com/ruby/erb/commit/1c02d23dc618.

    https://github.com/ruby/erb/commit/4162a24ecc

commit de6c4b62b00023ef372bae4c434f58014c3c8382
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-11-13 04:39:58 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-11-13 04:39:58 +0900

    Use patched rbs aware of io/wait method removals

commit 35783854244f8dc6a9f7fb4dfae752f8361c66bd
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-11-13 02:27:30 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-11-13 02:27:30 +0900

    include ruby.h to avoid load failures

    ```
    .../io/wait.so: undefined symbol: ruby_abi_version - ruby_abi_version
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15155

commit 6a055451843d28b9d75f581328cbdf6f03bea343
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 23:23:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 23:26:19 +0900

    [ruby/io-wait] No method definition is always ractor-safe

    https://github.com/ruby/io-wait/commit/44b68fc51b

commit ff4f9b88515babb34985521339b1410608c78589
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 21:32:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 23:10:36 +0900

    [ruby/io-wait] Drop support for ruby 3.1

    https://github.com/ruby/io-wait/commit/33efb55d0e

commit b4b0cd4a498679c27de1a1ed1add58a0e920b614
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 21:30:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 23:10:36 +0900

    [ruby/io-wait] Drop support for ruby 3.0

    https://github.com/ruby/io-wait/commit/62626dae8c

commit ab13ece69a061f9c52b7fa69fe9fdeaa31df9441
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 21:17:24 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 23:10:36 +0900

    [ruby/io-wait] Drop support for ruby 2.7

    https://github.com/ruby/io-wait/commit/dad4c70f2a

commit b70f5afb68253eb25cf5f8f2fdfbf01dae1d05d3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-04 21:42:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 22:48:18 +0900

    [ruby/io-wait] Remove `IO#nread` and `IO#ready?

    https://github.com/ruby/io-wait/commit/1decadc7f9

commit b1c578d83e59b74d7f327103025e05beb08528c7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 17:29:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 22:48:18 +0900

    [ruby/io-wait] Start 0.4.0

    https://github.com/ruby/io-wait/commit/f5c81139dd

commit b072c3995995ad70387378127a6984b9485a0a25
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 17:28:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 22:23:12 +0900

    [ruby/io-wait] Bump up to 0.3.6

    https://github.com/ruby/io-wait/commit/bf41116ff5

commit 4adb79f8aaddba977eac52600dffa5b5610ced39
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-04 18:03:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 22:23:12 +0900

    [ruby/io-wait] Deprecate `IO#nread` and `IO#ready?`

    To use these methods, busy loop is necessary somewhere.
    Use other method to wait instead.

    https://github.com/ruby/io-wait/commit/8ff4821cea

commit edb8296b991a0d6e2522511835315b10b846aef2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-12 22:19:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-12 22:19:08 +0900

    Make alias `Ractor#value` only if undefined

    `Ractor#value` replaces `Ractor#take`; if the former is defined the
    latter is undefined, and vice versa.

commit 82ecbbc918e9d6ae3add30dd68e26d56be8c88e7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 20:49:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 21:51:46 +0900

    [ruby/rubygems] Workaround for test failure of ruby_3_4 branch

    https://github.com/ruby/rubygems/commit/d7bc3a6d82

commit 3d554a586b5263c52de87aa58ab2f25f78ede30c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 20:24:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 21:51:45 +0900

    [ruby/rubygems] Support ruby_3_4 branch with assert_ractor argument

    https://github.com/ruby/rubygems/commit/da0a14801a

commit 41a2b2c85e7c865d84f139bf1828b9578d925e8e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 19:27:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 21:51:45 +0900

    [ruby/rubygems] Inject assert_ractor if TestGemPackageTarHeaderRactor is running under the ruby/rubygems repo

    https://github.com/ruby/rubygems/commit/47f41ce2df

commit 9046186065ff483386dfe27fe6f69e14b05cd938
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 19:26:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 21:51:44 +0900

    [ruby/rubygems] Added test-unit-ruby-core for assert_ractor

    https://github.com/ruby/rubygems/commit/be579a9c8c

commit bcfcfedc3085afe83dd39e68994524cdfec39a67
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-12 04:09:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-12 20:48:59 +0900

    Fix memory leak in invalidate_ccs_in_iclass_cc_tbl

    invalidate_ccs_in_iclass_cc_tbl deletes the ccs from the table but never
    frees it, causing memory to leak.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15143

commit 14e75435ea16601a800616835c8f89b320192e5c
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-12 19:13:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-12 19:13:29 +0900

    [DOC] Tweaks for String#to_r

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15038

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 0ca3eed109c42711ac66d65637724045c280def3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 15:59:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 18:51:57 +0900

    assert_separately: Suppress experimental warnings

    test-unit depends on power_assert that the recent versions require
    ruby 3.1 or later.  While test-unit rescues syntax error at loading
    power_assert for old ruby versions, warnings for experimental features
    are not suppressed, and `assert_separately` fails because stderr is
    not empty, by default.  Since adding `required_ruby_version` to
    power_assert causes the installation with old rubygems to fail, we
    just ignore warnings for experimental features totally.

commit f1972d400b5b8ecb7414b199e6a511dd832f0eb9
  Author:     Taketo Takashima <t.taketo1113@gmail.com>
  AuthorDate: 2025-10-07 22:35:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 18:51:23 +0900

    Fix SyntaxError: unexpected keyword_rescue, expecting keyword_end in Ruby 2.4 and earlier

commit d1240393ab86c8f681f84d88fd498c75409080f4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 17:23:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 18:35:16 +0900

    Split Ractor tests for Gem::Package

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15043

commit 96a425e5c53ab63f2b3065fd970481a80794445b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 17:22:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 18:35:16 +0900

    Support multiple require in assert_ractor

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15043

commit f958800574c42e69844db7305e69d1f494529543
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-04 11:00:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 18:35:16 +0900

    Reapply "[ruby/rubygems] Fix constants in TAR to be frozen"

    This reverts commit 136157e772ab2b2ea08555d0ad821da7dc2bde96.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15043

commit f4f728b319086eea3db6e9909fb9c849c276f813
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-11-12 13:58:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-12 13:58:38 +0900

    [Bug #21680] Fix (base**power_of_two).digits(base) bug (#15144)

    Fix wrong condition in base multiplying loop.

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit 090099b0c048c655c239a1cb81f551556f9bf2c5
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-11-12 10:35:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:52:22 +0900

    Development of 3.1.9 started.

commit 30b3ccbbcd7bfa22319eb9419bc81e06870b3071
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-12 09:16:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:47:10 +0900

    [ruby/rubygems] maybe this will work?

    https://github.com/ruby/rubygems/commit/4d8b1c77f4

commit ba1616fefb27845ecadb5a87b7a05a2212bd0541
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-12 09:05:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:47:09 +0900

    [ruby/rubygems] add rubygems-generate_index as a dev dep

    https://github.com/ruby/rubygems/commit/8df0e4e63e

commit 9775d60222d5bbdbde662fd48f0273be65ff6cdb
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-12 07:45:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:47:08 +0900

    [ruby/rubygems] Shell out fewer times

    This is a follow up to #9053. We can avoid shelling out for generating
    the gem index.

    https://github.com/ruby/rubygems/commit/e40bafe9f1

commit b33da0a6aa886d6a7d17a20dd88f4de35c7fe066
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 10:35:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:35:34 +0900

    Added email and name for `git pull --rebase`

    ```
    Rebasing (1/3)
    Committer identity unknown

    *** Please tell me who you are.

    Run

      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"

    to set your account's default identity.
    Omit --global to set the identity only in this repository.
    ```

commit 429b8e2e1c95121880a078bf647dee302668604d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 09:47:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:29:22 +0900

    tsort will be extracted at 4.1, not 3.6

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15145

commit bf970ed8a27abaa166fcbd04a769907af1554879
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-12 09:09:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:29:22 +0900

    Replace Ruby 3.5 with Ruby 4.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15145

commit da114dfe0bd208ff986db87890481f1ff7391bbd
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-11 21:37:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-12 10:14:56 +0900

    [ruby/error_highlight] Replace Ruby 3.5 with Ruby 4.0

    This commit updates the Ruby version to follow the commit in Ruby master branch.

    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    https://github.com/ruby/error_highlight/commit/dcecf68d75

commit c6997ddf3e7acf0f9d65837d2da591bc47afdaee
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-11 21:56:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 10:09:49 +0900

    [ruby/net-http] Replace Ruby 3.5 with Ruby 4.0

    This commit updates the Ruby version to follow the commit in Ruby master branch.
    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    https://github.com/ruby/net-http/commit/1e48cfaaf7

commit 8afe65cd92ba6a3c64924cad13f24a5d5fbb2b14
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-11-12 07:32:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 07:33:31 +0900

    [ruby/io-wait] Bump version to 0.3.5 to incorporate JRuby release fixes

    https://github.com/ruby/io-wait/commit/284cb654cf

commit 5c9d5a66e787b53f422608a9fa20982fa8f5e200
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-11-12 07:27:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 07:30:04 +0900

    [ruby/io-wait] 0.3.5.test1 fixing JRuby release process

    https://github.com/ruby/io-wait/commit/c0ae05e319

commit 8428e5e8c62ce24f2cd4d0b27249c1ab6cbdb4b5
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-11-12 07:17:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 07:18:18 +0900

    [ruby/io-wait] Bump version to 0.3.4

    https://github.com/ruby/io-wait/commit/cd163938e5

commit 9363231d249365b6426dc8579b6adcb813661cf2
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-11-12 06:41:46 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-11-12 06:41:46 +0900

    test_ractor.rb: Delete unnecessary GC.stress fiddling

    assert_ractor() runs in a subprocess.

commit c07b2329eda5fcd82d8cb0b8f6f2187d09e8f2ad
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-11 23:44:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 06:05:11 +0900

    [ruby/psych] Replace Ruby 3.5 with Ruby 4.0

    This commit updates the Ruby version to follow the commit in Ruby master branch.
    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    https://github.com/ruby/psych/commit/971b7de078

commit ade2b51a3b3ccdd9fe97d541c3dbb51339838d44
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-12 00:00:10 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-12 03:17:48 +0900

    Don't GC unprotect hash in Coverage.peek_result

    The call to unprotect the coverages hash was introduced in commit 99093e1
    where we used the raw ST table and st_foreach. We now use rb_hash_foreach
    which no longer requires GC unprotecting the coverages hash.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15140

commit 50c97e1c7807724a87341302b20c3c3bcb46e1db
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-12 00:58:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-12 00:58:44 +0900

    Update Ruby version to 4.0 for the cgi warnings (https://github.com/ruby/ruby/pull/15141)

    This commit updates the Ruby version in the error message to follow the commit in Ruby master branch.

    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 1577db908671be93db8277501445c5fc2c6052fc
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-12 00:51:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-12 00:52:08 +0900

    [ruby/erb] Replace Ruby 3.5 with Ruby 4.0
    (https://github.com/ruby/erb/pull/94)

    This commit updates the Ruby version to follow the commit in Ruby master branch.

    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    https://github.com/ruby/erb/commit/a5d42484e4

commit e451b3debd69651640a952489dd12a27012c995b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-11 09:32:45 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-11 23:58:19 +0900

    Remove useless cast in rb_managed_id_table_type

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15136

commit ca2fffd3a7c6cf138fd60e73320cfc8a87c5ff35
  Author:     Yasuo Honda <yasuo.honda@gmail.com>
  AuthorDate: 2025-11-11 21:49:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-11 22:08:02 +0900

    [ruby/openssl] Replace Ruby 3.5 with Ruby 4.0

    This commit updates the Ruby version in the error message to follow the commit in Ruby master branch.
    https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    https://github.com/ruby/openssl/commit/5a50a4d793

commit 48dce7874fcb571765635b32fa6a3e3a12e228f8
  Author:     nagachika <nagachika@ruby-lang.org>
  AuthorDate: 2025-11-10 08:37:58 +0900
  Commit:     nagachika <nagachika@ruby-lang.org>
  CommitDate: 2025-11-11 18:57:30 +0900

    simplify RSRING_GETMEM() definition.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15113

commit 367ddd445cdf5ccc55a0481c944746ef595f72f7
  Author:     nagachika <nagachika@ruby-lang.org>
  AuthorDate: 2025-11-10 08:35:09 +0900
  Commit:     nagachika <nagachika@ruby-lang.org>
  CommitDate: 2025-11-11 18:57:30 +0900

    include/ruby/internal/core/rstring.h: Remove rbimpl_rstring_getmem() definition.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15113

commit 9d44cb0b2b5520b2b299851003ca2a97bf1e2079
  Author:     nagachika <nagachika@ruby-lang.org>
  AuthorDate: 2025-11-09 15:10:35 +0900
  Commit:     nagachika <nagachika@ruby-lang.org>
  CommitDate: 2025-11-11 18:57:30 +0900

    Remove rbimpl_rstring_getmem() usage as workaround for GCC 15.2.1 optimization bug. [Bug #21655]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15113

commit c5bd4acd30320a8e180ce9fcb24acdab4e10c73a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-06 20:24:24 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-11 16:23:33 +0900

    [Bug #21666] Get rid of use of unspecified values

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15076

commit 66ecd00c19ed712243c4ee54dab32a8826f0bd81
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-11 14:22:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-11 16:11:05 +0900

    Support out-of-place build in ruby/ruby repo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15139

commit c8977e9064c9d3e73515b5ed39ef3ef6557517c0
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-11 15:53:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-11 15:53:52 +0900

    Update bundled gems list as of 2025-11-11

commit ddaa56d549768777c5ea42b0d6a11a0c4394718d
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-11 14:41:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 14:41:35 +0900

    Fix bootstraptest runner driver message (#15072)

    This was a mistake;
    the code tested for RUBY_PATCHLEVEL but then
    instead of using it used RUBY_PLATFORM twice.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit c477f59e3a56316f1e6112ae9417cb597df51e2c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-11 12:03:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-11 13:57:12 +0900

    [ruby/rubygems] Use Spec::Path.relative_gemspec

    https://github.com/ruby/rubygems/commit/2142e405b0

commit d3138912b8019591573c671662c1a2d9930aa034
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-04 03:29:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-11 13:57:12 +0900

    [ruby/rubygems] build gems directly instead of shelling out

    I'm trying to speed up the bundler tests. The tests shell out a lot in
    order to build gems. We can build gems without creating a sub-process.
    This change reduced the test suite time from ~24 minutes, to about ~21
    minutes on my machine.  Once we have more of these "asset generation"
    routines done in the same process, I think we can start caching the
    outputs for further improvements

    https://github.com/ruby/rubygems/commit/ebf27056c6

commit 71fecfa205f5ee2423f78877cca3a60bd07cbfd8
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-11 13:10:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 13:10:10 +0900

    ZJIT: Rename things so that they aren't named "not_optimized_optimized" (#15135)

    These refer to "OptimizedMethodType" which is a subcategory of "MethodType::Optimized"
    so name them after the latter to avoid "not_optimized_optimized".

commit d9f0b5a5f91b03ab5043029b4ae19847e965aa1a
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-11 13:07:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 13:07:35 +0900

    ZJIT: Set cfp->sp on leaf calls with GC (#15137)

    Co-authored-by: Randy Stauner <randy@r4s6.net>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 6e6f5d3c32a709c891ac6aa7833376907a6c81b5
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-01 19:07:50 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-11-11 12:46:11 +0900

    Add test for [Bug #21265]

    The crash was fixed by a4dff09be79b52288a47658964d25e5aa84fc960 ("Fix
    resolving refined module-defined method"). I had a patch for this around
    for a few months but never merged it. Oops!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13230

commit fafecb43c527bca8a3493436c16aa7d63782bb0c
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-11-11 12:21:10 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-11-11 12:21:10 +0900

    Fix printf specificer. %lp doesn't make sense. Triggered -Wformat

commit 148fde27545ee35c8aab4ec7bca027184d79fbc4
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-11 11:52:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 11:52:43 +0900

    Revert "ns_subclasses refcount accesses need to be atomic (#15083)" (#15138)

    This reverts commit 2998c8d6b99ec49925ebea42198b29c3e27b34a7.

    We need to find a better way to fix this bug. Even with this refcount
    change, errors were still being seen in CI. For now we need to remove
    this failing test.

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit 16c6f36039b14c983125db8144d791714035737b
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-11 10:33:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 10:33:07 +0900

    [DOC] Clarify `Thread#kill` documentation. (#15132)

    Mention that it is asynchronous and that the killed thread can still run
    a small amount of ruby code before exiting.

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit d2c30a3bae908772c1de453aad8686000f6a5096
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-11-11 10:32:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 10:32:30 +0900

    Fix `thread_sched_wait_events` race (#15067)

    This race condition was found when calling `Thread#join` with a timeout
    inside a ractor. The race is between the polling thread waking up the
    thread and the `ubf` getting called (`ubf_event_waiting`). The error was
    that the ubf or polling thread would set the thread as ready, but then
    the other function would do the same.

    Fixes [Bug #21614]

  Notes:
    Merged-By: luke-gru <luke.gru@gmail.com>

commit 222d8990d4b0acfd17db9bf9063af1ccf0fe036a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-11 00:16:41 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-11 09:47:40 +0900

    ZJIT: Reduce duplication between profiled_type_of_at and resolve_receiver_type

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15128

commit 327f070acd081d0b7e1d296f519aa6736bcc7cd3
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-10 22:30:30 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-11 09:47:40 +0900

    ZJIT: Don't need to store class in profiled type resolution enums

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15128

commit 87493e32ed822b78f1294c3c7a11f710ebdb6a90
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-11 08:08:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-11 09:34:00 +0900

    Fix memory leak in ObjectSpace tracing

    allocation_info_tracer_compact_update_object_table_i deletes entries where
    the key is no longer in the GC heap but did not free the allocation_info
    causing the memory to be leaked.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15133

commit d268a551865977160aba99429c29f61c8d7c0eb0
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-11 09:29:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 09:29:50 +0900

    ZJIT: Split unhandled_hir_insn and unknown_newarray_send stats (#15127)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 6238b6f53e4b10a1833eb90320f002f60be72d42
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-08 09:15:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-11 08:55:38 +0900

    Remove unused subclass methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15102

commit f95aa5b2a9d559d6deda1b0aa53aee8198ab3168
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-11 08:16:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 08:16:31 +0900

    ZJIT: Rename not_optimized_instruction to uncategorized_instruction (#15130)

    Make it more obvious that this hasn't been handled and could be
    broken down more.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit c7f0a9c4cd3ec65a06c6e51252af7a45afa9d358
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-10 07:35:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-11 08:07:02 +0900

    Fix memory leak in subclasses when freeing classext

    We don't decrement the super and module subclasses count for iclasses that
    are having their classext replaced. This causes the reference count to be
    incorrect and leak memory.

    The following script demonstrates the memory leak:

        module Foo
          refine(Object) do
            define_method(:<=) {}
          end
        end

        class Bar
          include Comparable
        end

    With RUBY_FREE_AT_EXIT and ASAN, we can see many memory leaks, including:

        Direct leak of 16 byte(s) in 1 object(s) allocated from:
            #0 0x599f715adca2 in calloc (miniruby+0x64ca2)
            #1 0x599f716bd779 in calloc1 gc/default/default.c:1495:12
            #2 0x599f716d1370 in rb_gc_impl_calloc gc/default/default.c:8216:5
            #3 0x599f716b8ab1 in ruby_xcalloc_body gc.c:5221:12
            #4 0x599f716b269c in ruby_xcalloc gc.c:5215:34
            #5 0x599f715eab23 in class_alloc0 class.c:790:22
            #6 0x599f715e4bec in class_alloc class.c:836:12
            #7 0x599f715e60c9 in module_new class.c:1693:17
            #8 0x599f715e60a2 in rb_module_new class.c:1701:12
            #9 0x599f715e6303 in rb_define_module class.c:1733:14
            #10 0x599f715ebc5f in Init_Comparable compar.c:315:22
            #11 0x599f716e35f5 in rb_call_inits inits.c:32:5
            #12 0x599f7169cbfd in ruby_setup eval.c:88:9
            #13 0x599f7169cdac in ruby_init eval.c:100:17
            #14 0x599f715b0fa9 in rb_main main.c:41:5
            #15 0x599f715b0f59 in main main.c:62:12
            #16 0x739b2f02a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
            #17 0x739b2f02a28a in __libc_start_main csu/../csu/libc-start.c:360:3
            #18 0x599f7157c424 in _start (miniruby+0x33424)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15120

commit f0541312883c27c7b98e004ebedc4d9e1874a147
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-11 06:47:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 06:47:56 +0900

    ZJIT: Add patch_point_count stat (#15100)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 3ddb5f99a9c472ea7273c3d6c99650eb1c8914f6
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-11 02:58:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-11 06:14:13 +0900

    Allow --jit to mean zjit if yjit isn't defined

    The --help output suggests this should work
    as ZJIT is labeled as the default if YJIT isn't enabled.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15129

commit 7b1e0a6096d5da629732bc95f2b991efdc8fa4f1
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-11-11 02:56:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-11 06:14:13 +0900

    ZJIT: Define jit_compile_exception for ZJIT even without YJIT

    Seems like an oversight

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15129

commit 03a9d075cd1b03e96959b42a7b86714410f3f2d7
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-11-11 01:26:55 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-11-11 01:26:55 +0900

    ZJIT: Fix land race

commit fb5f10e0d6fbf5b3f7f13b392e598ccd7c32c2bc
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-11-11 00:51:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 00:51:56 +0900

    ZJIT: Snapshot once per YARV insn (#15082)

    This is roughly net-neutral for the number of instructions created but
    at least cenetralizes where the Snapshot is made.

    Previously, we might have multiple Snapshot per YARV instruction
    depending on if it had event flags, if the body of the instruction also
    needed a Snapshot, etc.

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit b539cd2a33dae904e55fd8f054349b9ff076793a
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-11 00:30:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-11 00:30:17 +0900

    ZJIT: Deduplicate side exits (#15105)

commit 557eec792e520a25c3ca59aa0a824af5d009c7d8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 13:33:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-10 19:12:35 +0900

    [DOC] Update missing docs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15123

commit 286a8eee82767614641414a05d8b9400fb373c94
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 12:21:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-10 19:12:34 +0900

    Move grouping by upstreams to SyncDefaultGems::Repository

    It is also useful to distribution changes to each upstream repository.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15123

commit 9720d499ffc6b1990b6f80cff072c3380e02d10d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 19:06:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 19:12:10 +0900

    [ruby/zlib] [DOC] Missing documents

    https://github.com/ruby/zlib/commit/25355bc1dc

commit df9b8fdb16269ca2dde62eab81767c1f81a5cc63
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:58:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 19:03:07 +0900

    [ruby/yaml] [DOC] Missing documents

    https://github.com/ruby/yaml/commit/388cd27291

commit d2044ce01744a0f9b70d32d340009326133a1638
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:57:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 19:01:39 +0900

    [ruby/weakref] [DOC] Missing documents

    https://github.com/ruby/weakref/commit/cccde64080

commit ae0dd72b96ebd6e968ac639d08126e989cebf366
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:55:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 19:00:00 +0900

    [ruby/tempfile] [DOC] Suppress documentation for internals

    https://github.com/ruby/tempfile/commit/475d719e4d

commit 95c4ca62a891c4bad936c24f97959ae428661585
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:54:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:59:40 +0900

    [ruby/singleton] [DOC] Missing documentation

    Suppress documentation for internals

    https://github.com/ruby/singleton/commit/4ac0cc497d

commit f4b18c5d00f70a5dae36ef6466384037f3afd96f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-06-19 14:28:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:54:41 +0900

    [ruby/rubygems] Hide patchlevel from lockfile

    https://github.com/ruby/rubygems/commit/9b169c700f

commit 87f863276546e73dfed552fb171f0025912a61c7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:46:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:51:11 +0900

    [ruby/prettyprint] [DOC] Missing documents

    https://github.com/ruby/prettyprint/commit/3a43a4bbf6

commit caf40a39963c5badba08bd310e950ae9832a0a3f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:45:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:49:36 +0900

    [ruby/pp] [DOC] Suppress documentation for internals

    https://github.com/ruby/pp/commit/e1f39cb39c

commit 54b5f83aca2fc27a3e2d00b68109f6b6473122c7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:40:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:43:50 +0900

    [ruby/open3] [DOC] Missing documents

    https://github.com/ruby/open3/commit/e6d09a6aa8

commit 98f9211dc3cf9e1930463dbffa117f2c3b3385b2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:24:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:32:57 +0900

    [ruby/open-uri] [DOC] Missing documents

    https://github.com/ruby/open-uri/commit/1ccc576e9a

commit 0dfca2e3c3d9fbae19ecd2bfcf5da11cf2177614
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:21:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:28:06 +0900

    [ruby/forwardable] [DOC] Missing documents

    https://github.com/ruby/forwardable/commit/909986fee9

commit daf8c2fa13eb51734e73769428182c18c409b92b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:19:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:25:45 +0900

    [ruby/find] [DOC] Missing documents

    https://github.com/ruby/find/commit/01232ad51a

commit ea647f52c923330932998f34501cf647ac02d3d2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:13:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:15:48 +0900

    [ruby/erb] [DOC] Suppress documentation for internals

    https://github.com/ruby/erb/commit/332e200060

commit 309b6ca1c2c979f8370ef6466910edb52dba69aa
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 18:00:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 18:05:28 +0900

    [ruby/delegate] [DOC] Update missing docs and mark ups

    https://github.com/ruby/delegate/commit/020a6cfe4b

commit 2af63204de6047f5c3317467404a38853f414cbe
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 14:29:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 17:38:45 +0900

    [ruby/digest] [DOC] Missing documents

    https://github.com/ruby/digest/commit/16b598d6f2

commit bc177ff1cebee9e76234aad51ff7b3a158d037d6
  Author:     Olle Jonsson <olle.jonsson@auctionet.com>
  AuthorDate: 2025-11-10 17:27:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 17:31:11 +0900

    [ruby/timeout] Suppress warnings in two tests

    Failed build in #70.

    Pre-3.0 versions of Ruby didn't support pattern matching, and power_assert warned.

    https://github.com/ruby/timeout/commit/983cbf636a

commit 57daafc1da2eea71b50746893d77ad21658dd3b1
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-11-04 05:24:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 17:24:04 +0900

    [ruby/rubygems] Make verification methods private

    I would like to start making some of the methods in Gem::Package
    private so that we can refactor them better.  Right now we have many
    methods that are public, and since they are public we can't refactor
    them.  Historically, I think "private" methods have just been tagged
    with :nodoc:, but I would like to be more strict about our APIs

    https://github.com/ruby/rubygems/commit/fb352e9176

commit 57f2ac720d70b2245706f323cd7f3178aa5cfe6c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 13:46:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 15:44:27 +0900

    [ruby/rubygems] [DOC] Fix markups

    Use `<tt>` instead of `+` that cannot enclose punctuations.

    https://github.com/ruby/rubygems/commit/f84035c0b6

commit 73339ff2a1e5e8f35ad7224886ed56ae1da3e3ca
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 13:21:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 15:44:27 +0900

    [ruby/rubygems] [DOC] Fix the location of Gem::Deprecate document

    It was bound to `module Gem`, instead of `module Deprecate`.

    https://github.com/ruby/rubygems/commit/da29f74ba1

commit 28f760bf70085d97bab62c29e13c69c5a732e758
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 13:03:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 13:10:10 +0900

    [ruby/stringio] Suppress warnings against pattern matching on ruby 2.7

    https://github.com/ruby/stringio/commit/cf58a203eb

commit 19295f5db3316dd47d0aded90a21b07d7e761902
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 12:55:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 12:58:43 +0900

    [ruby/cgi] [DOC] Missing documents

    https://github.com/ruby/cgi/commit/ebd04d1eb1

commit 40d6626bbf0b0bd4c672d48dbf928ab8429912f9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-08 07:25:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 12:49:44 +0900

    [ruby/rubygems] Fixed with Lint/RedundantSplatExpansion

    https://github.com/ruby/rubygems/commit/2078f3d351

commit b1dfcd6507452d577162d12ecb0828abe64d8162
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 12:40:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 12:45:08 +0900

    [ruby/stringio] [DOC] Suppress documentation for internals

    https://github.com/ruby/stringio/commit/27b2fb2fce

commit 3147df87baf8898e6fb3c1482e7a5ed58945c97a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 12:36:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 12:38:04 +0900

    [ruby/net-http] [DOC] Suppress documentation for internals

    https://github.com/ruby/net-http/commit/b7c586985a

commit f29d772a73ed25c5bcc6eab1d55684894292d160
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-11-06 11:20:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 11:40:46 +0900

    [ruby/net-http] Remember if TCPSocket impl supports open_timeout

    For open_timeout support detection, the previous implementation relied
    on an ArgumentError being raised and then rescued. In Ruby, rescue is a
    rather expensive operation and should be avoided when possible.

    This patch reduces the number of begin-rescues by remembering if the
    TCPSocket implementation supports open_timeout.

    https://github.com/ruby/net-http/commit/06d982f3a1

commit 97efbc47d080e3ade3b5db889d3740fdf0711161
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-07-22 23:34:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 11:40:46 +0900

    [ruby/net-http] Ruby 2 compat

    https://github.com/ruby/net-http/commit/09bf573dd5

commit f710e6bb54a1e2cfe808222bc8d70d8f68ab5dc9
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-07-17 00:09:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 11:40:46 +0900

    [ruby/net-http] Replace Timeout.timeout with TCPSocket.open(open_timeout:) when available

    This patch replaces the implementation of #open_timeout from Timeout.timeout from the builtin timeout in TCPSocket.open, which was introduced in Ruby 3.5 (https://bugs.ruby-lang.org/issues/21347).

    The builtin timeout in TCPSocket.open is better in several ways than Timeout.timeout. It does not rely on a separate Ruby Thread for monitoring Timeout (which is what the timeout library internally does).

    Furthermore, it is compatible with Ractors, as opposed to Timeout.timeout (it internally uses Thread::Mutex which can not be used in non-main Ractors).
    This change allows the following code to work.

        require 'net/http'
        Ractor.new {
          uri = URI('http://example.com/')
          http = Net::HTTP.new(uri.host, uri.port)
          http.open_timeout = 1
          http.get(uri.path)
        }.value

    In Ruby <3.5 environments where `TCPSocket.open` does not have the `open_timeout` option, I have kept the behavior unchanged. net/http will use `Timeout.timeout { TCPSocket.open }`.

    https://github.com/ruby/net-http/commit/728eb8fc42

commit 8fa29a75abf265c20cdeb9779bf25c1b3eafcf26
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-10 11:10:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-10 11:10:23 +0900

    Fix condition for Timeout Error with >= macOS 26.1

commit a43acf9a3f411fac78d92b9f2f8060c83f9ab15b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-10 10:52:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 10:52:39 +0900

    [ruby/resolv] [DOC] `Resolv::LOC` itself is undocumented

    https://github.com/ruby/resolv/commit/7c5bfe7acd

commit d05f23b51f8b9c3f80eff6f5a304b07b9f9d7fcf
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-06 10:59:59 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-10 09:42:26 +0900

    ZJIT: handle megamorphic and skewed megamorphic profiling results

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15032

commit 6902bc71b9afeaa305342576dc1e75ceb0a175f4
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-11-02 00:49:10 +0900
  Commit:     Stan Lo <stan001212@gmail.com>
  CommitDate: 2025-11-10 09:42:26 +0900

    ZJIT: Refactor receiver type resolution

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15032

commit a731080f46f69bcb23aa98e565930931cf1faa0c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-06 12:52:46 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-10 04:14:54 +0900

    Make rb_gc_obj_optimal_size always return allocatable size

    It may return sizes that aren't allocatable for arrays and strings.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15119

commit 17efb770c89029f6b7df639b673a9a8cc08c8d0d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-10 02:54:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-10 03:01:56 +0900

    sync_default_gems.yml: Pull --rebase before push

    It was supposed to update a local branch in case the remote branch was
    updated between actions/checkout and the end of tool/sync_default_gems.rb.

    Note that this `git pull` didn't exist in the original bin/update-default-gem.sh
    https://github.com/ruby/git.ruby-lang.org/commit/d9e9bcc60dcf0dd1cbdc2dd42bc0286439e471aa,
    so it was newly introduced at https://github.com/ruby/ruby/commit/3ba5cfd1cb77b61b2b1ad1d03271bc1fe7b71969.

    But `git pull --no-ff` failed when master had updates in an unrelated
    repository. I think we need to use `git pull --rebase` instead.

    This fixes:

    * https://github.com/ruby/ruby/actions/runs/19207693793/job/54905403070
        * checkout: f08030e9dccf38d9ea5c9505203fe26484dc28d8
        * ruby tool/sync_default_gems.rb net-http ec9c70a6fba75a63c128864ef3cb32c883665a33..e4d80bd609f22cad04a2e2c1d54c981bb853c938
        * pull: 2bf82c627494e785737037bbaf9a6b98f3c6354c

commit f1b1899a749b28ce5c951034efeb096d15ae244c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-10 01:33:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-10 02:29:03 +0900

    [ruby/mmtk] Lock the VM when freeing objects in rb_gc_impl_shutdown_call_finalizer

    https://github.com/ruby/mmtk/commit/1828f6596f

commit 4639bbc8e91238caa4774a8916ec6555b71d6e1b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-10 00:35:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-10 00:35:28 +0900

    auto_review_pr.rb: Tweak the review message

commit 2b6580d44aef3f867321d1f8b346c500e51a4344
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-10 00:34:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-10 00:34:32 +0900

    auto_review_pr.rb: Remove an unused variable

    Follow-up: https://github.com/ruby/ruby/pull/15116

commit a7a4bb93fc37b3d4ad5a7b2147c9adf952928342
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-10 00:16:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-10 00:16:42 +0900

    Automatically review default-gem pull requests (#15116)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 4fe0342a860bc3aceb5f51707732545f83a0ac35
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 22:18:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 22:18:37 +0900

    Reapply "[ruby/net-http] [DOC] Suppress documentation for internals"

    This reverts commit af610e107c3a7515228843eb6b1c5978f2ee2685.
    Reverted by a mistake.

commit af610e107c3a7515228843eb6b1c5978f2ee2685
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:58:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 22:11:40 +0900

    Revert "[ruby/net-http] [DOC] Suppress documentation for internals"

    This reverts commit 155cdce539a95b510a80a19e3840cde6b293cd4d.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15115

commit 26fc938b9f81a023494ca356583c7c1a86972619
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:48:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 22:11:40 +0900

    [DOC] Sort undocumented items by locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15115

commit 87c39667bf881527d4ddfe1c558fc98adb9543a0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:13:01 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 22:11:40 +0900

    [DOC] ObjectSpace.trace_object_allocations_debug_start

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15115

commit 953fee11b39197f4ab6170c4c0a48a396be2b4cc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 19:09:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 22:11:39 +0900

    [DOC] Document of Coverage.line_stub from NEWS-2.6.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15115

commit 4170b70d32c3165da92eb258556f3ddf5b9767f3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 22:06:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 22:10:33 +0900

    [ruby/net-http] [DOC] Fix too stopped documentations

    https://github.com/ruby/net-http/commit/58685b78ab

commit bf29ba452aa946bc6791b9d04b69003ae41c42cb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:32:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:45:48 +0900

    [ruby/resolv] [DOC] Fix documentations

    https://github.com/ruby/resolv/commit/d8b8d36f63

commit d79ff407825352953293ea7c399cd3a94aef021f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:30:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:45:48 +0900

    [ruby/resolv] Require win32/resolv just once

    And Use Win32::Resolv instead of a constant `WINDOWS`.

    https://github.com/ruby/resolv/commit/b2c775cd80

commit 063aea8ce47162e8cf0abc48e00bdbbc5dfcbea2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:39:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:45:48 +0900

    [ruby/resolv] Exclude unneeded files

    https://github.com/ruby/resolv/commit/60bf151a1d

commit 79342334e0d1be3101568a0eb695414e5b0d3801
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:23:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:27:12 +0900

    [ruby/ipaddr] [DOC] Stop documentation for internals

    https://github.com/ruby/ipaddr/commit/cb9f561883

commit f23fab66c294ab39f822587432f1e8d1b6da2e3a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 21:21:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:27:12 +0900

    [ruby/ipaddr] gemspec files does not need to be included in spec.files

    https://github.com/ruby/ipaddr/commit/ada04589fe

commit 6cac64348725b4961a70597a4aa202f9e0c3c120
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 11:24:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 21:08:45 +0900

    [ruby/win32-registry] [DOC] Convert documents from RD2

    https://github.com/ruby/win32-registry/commit/8680eedd43

commit 155cdce539a95b510a80a19e3840cde6b293cd4d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 18:50:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 21:06:24 +0900

    [ruby/net-http] [DOC] Suppress documentation for internals

    https://github.com/ruby/net-http/commit/e4d80bd609

commit 001890b851cd058b2b9980709139070af27e3612
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 18:38:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 21:06:23 +0900

    [ruby/net-http] Exclude unneeded files

    https://github.com/ruby/net-http/commit/89e1ecb556

commit 2bf82c627494e785737037bbaf9a6b98f3c6354c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 18:15:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 20:18:09 +0900

    [ruby/net-protocol] [DOC] Suppress documentation for internals

    https://github.com/ruby/net-protocol/commit/6c5734dc1e

commit 44d19928b6b6af945b79415fcff4ffc731e99173
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 17:59:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 20:18:09 +0900

    [ruby/net-protocol] Exclude unneeded files

    https://github.com/ruby/net-protocol/commit/8286341e8c

commit f08030e9dccf38d9ea5c9505203fe26484dc28d8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 20:16:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 20:17:02 +0900

    [ruby/optparse] [DOC] A constant for compatibility

    https://github.com/ruby/optparse/commit/0125cb4918

commit a4dff09be79b52288a47658964d25e5aa84fc960
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-09 15:17:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-09 16:39:38 +0900

    [Bug #21673] Fix resolving refined module-defined method

    A method defined in a module has no `defined_class`, use the ICLASS
    for it as the `defined_class`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15114

commit a88d7718f427acdd040f7b978e0514f0fea0b1d8
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-11-09 15:50:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-09 15:50:26 +0900

    Update bundled gems list as of 2025-11-09

commit 529dd8d76efbe655fabce8933852504851266b2b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-09 12:49:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-09 12:49:32 +0900

    cygwin.yml: Disable a broken step

    https://github.com/ruby/ruby/actions/runs/19201736990/job/54890646022

commit 827f11fce3c92dce80ebc5dc80be9acdafae1173
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-11-09 07:13:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-11-09 10:58:25 +0900

    Move rb_gc_verify_shareable to gc.c

    rb_gc_verify_shareable is not GC implementation specific so it should live
    in gc.c.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15108

commit 79eed1158de4164f72def32093aa31bcac339639
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-09 07:27:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-09 07:27:26 +0900

    [DOC] Tweaks for String#to_i (#15036)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 75d25a42e6052b5f5d90d2d4022ae996fee5913a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-11-09 00:08:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-09 00:08:09 +0900

    [DOC] Tweaks for String#to_c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/14960

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 4365c4fb6bd816fc8e9a9dcabacde47c5264d713
  Author:     Joshua Young <djry1999@gmail.com>
  AuthorDate: 2025-11-08 20:52:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-08 20:52:39 +0900

    [DOC] Replace 3.5 reference in NEWS.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15106

    Merged-By: nobu <nobu@ruby-lang.org>

commit 3a5e7e9580fd8cea5f9b53dda377e61faeebe621
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-08 13:20:01 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-08 20:51:04 +0900

    Constify

commit aacd9f206a57375df38e1b2552da37a68d77e1e1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-11-08 14:55:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-11-08 14:55:41 +0900

    Notify CI failures of Cygwin

commit 4aea392e69488209d1f3c7b671aadafc0d2d76b3
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-11-08 12:47:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-08 12:47:32 +0900

    ZJIT: Specialize String#setbyte for fixnum case (#14927)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit c65f8b6370f5ef692148786b5e8de54c4d14c132
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-08 10:17:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-08 10:17:07 +0900

    Prevent the path for copied extension from GC

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15103

commit 3b588dab91f13b32b54cb1b9dedb9691e732c981
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-11-08 05:12:25 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-11-08 10:06:56 +0900

    Don't modify fstrings in rb_str_tmp_frozen_no_embed_acquire

    [Bug #21671]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15101

commit 7037d8f89e71a13547d031d76747e45cfe930c9f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-07 21:14:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 09:22:17 +0900

    [ruby/prism] Rename Ruby 3.5 to Ruby 4.0

    See https://github.com/ruby/ruby/commit/6d81969b475262aba251e99b518181bdf7c5a523

    It leaves the old variant around. RuboCop for examples accesses `Prism::Translation::Parser35`
    to test against ruby-head. For now I left these simply as an alias

    https://github.com/ruby/prism/commit/d0a823f045

commit a7c23b9a9f726bec7cbd6f89d157d7dd140420da
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-07 13:16:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 05:12:48 +0900

    [ruby/rubygems] Use Dir.pwd instead of Pathname.pwd

    https://github.com/ruby/rubygems/commit/6c161b253d

commit 110f24c47e162db7730757cb4a9b13d1148ec85e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-07 09:08:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 05:12:48 +0900

    [ruby/rubygems] Restore pathname for rake dev:deps

    https://github.com/ruby/rubygems/commit/89e95d0f15

commit 2518aa9117907d7ed08f469df596c0be961fc8fe
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-07 07:23:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 05:12:47 +0900

    [ruby/rubygems] Replace Pathname#rmtree to FileUtils.rm_rf directly

    https://github.com/ruby/rubygems/commit/33c7a9a565

commit 9767b31090f923200abff68657c6489e8f32cfde
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-07 07:14:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 05:12:47 +0900

    [ruby/rubygems] Removed unnecessary loading of pathname

    https://github.com/ruby/rubygems/commit/6e965b7872

commit 4816969c28def82d2fe57045758f5b39b3ac8081
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-11-07 07:12:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-08 05:12:46 +0900

    [ruby/rubygems] Replaced pathname auto-loading in bootstrap of bundler

    https://github.com/ruby/rubygems/commit/79ba4a537d

commit f55421e81c20dea72eb81b38cd1093e5d9936597
  Author:     Jacob <jacob.denbeaux@shopify.com>
  AuthorDate: 2025-11-08 03:50:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-08 03:50:17 +0900

    ZJIT: Add compilation for checkkeyword (#14764)

    <details>
    <summary>Before</summary>
    <br>

    ```
    **ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (64.0% of total 3,683,424):
                                   Kernel#is_a?: 427,127 (11.6%)
                                       Hash#[]=: 426,276 (11.6%)
                             String#start_with?: 336,245 ( 9.1%)
                     ObjectSpace::WeakKeyMap#[]: 139,406 ( 3.8%)
                                     Hash#fetch: 127,291 ( 3.5%)
                                    String#hash:  79,259 ( 2.2%)
                          Process.clock_gettime:  74,658 ( 2.0%)
                                     Array#any?:  74,441 ( 2.0%)
                                     Integer#==:  71,067 ( 1.9%)
                                     Kernel#dup:  68,058 ( 1.8%)
                                      Hash#key?:  62,306 ( 1.7%)
                                  Regexp#match?:  62,247 ( 1.7%)
                        SQLite3::Statement#step:  61,172 ( 1.7%)
                       SQLite3::Statement#done?:  61,172 ( 1.7%)
                                   Kernel#Array:  55,015 ( 1.5%)
                                    Integer#<=>:  49,127 ( 1.3%)
                                     String.new:  48,363 ( 1.3%)
                                        IO#read:  47,753 ( 1.3%)
                                 Array#include?:  43,307 ( 1.2%)
                              Struct#initialize:  42,650 ( 1.2%)
    Top-3 not optimized method types for send (100.0% of total 1,022,743):
       iseq: 736,483 (72.0%)
      cfunc: 286,174 (28.0%)
       null:      86 ( 0.0%)
    Top-6 not optimized method types for send_without_block (100.0% of total 189,556):
             optimized_call: 115,966 (61.2%)
             optimized_send:  36,767 (19.4%)
      optimized_struct_aset:  33,788 (17.8%)
                       null:   2,521 ( 1.3%)
       optimized_block_call:     510 ( 0.3%)
                      cfunc:       4 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 1,648,882):
                 invokesuper: 697,471 (42.3%)
                 invokeblock: 496,687 (30.1%)
                 sendforward: 221,094 (13.4%)
                      opt_eq: 147,620 ( 9.0%)
                   opt_minus:  40,865 ( 2.5%)
                    opt_plus:  22,912 ( 1.4%)
      opt_send_without_block:  18,932 ( 1.1%)
                      opt_gt:     867 ( 0.1%)
                    opt_mult:     768 ( 0.0%)
                     opt_neq:     654 ( 0.0%)
                      opt_or:     508 ( 0.0%)
                      opt_lt:     359 ( 0.0%)
                      opt_ge:     145 ( 0.0%)
    Top-13 send fallback reasons (100.0% of total 8,308,826):
                              send_without_block_polymorphic: 3,174,975 (38.2%)
                                   not_optimized_instruction: 1,648,882 (19.8%)
                                          fancy_call_feature: 1,072,807 (12.9%)
                              send_not_optimized_method_type: 1,022,743 (12.3%)
                                            send_no_profiles:   599,715 ( 7.2%)
                              send_without_block_no_profiles:   486,108 ( 5.9%)
      send_without_block_not_optimized_optimized_method_type:   187,031 ( 2.3%)
                                            send_polymorphic:   101,834 ( 1.2%)
                                    obj_to_string_not_string:     7,610 ( 0.1%)
                send_without_block_not_optimized_method_type:     2,525 ( 0.0%)
                     send_without_block_direct_too_many_args:     2,369 ( 0.0%)
                     send_without_block_cfunc_array_variadic:     2,190 ( 0.0%)
                              ccall_with_frame_too_many_args:        37 ( 0.0%)
    Top-8 popular unsupported argument-parameter features (100.0% of total 1,209,121):
              param_opt: 583,595 (48.3%)
      param_forwardable: 178,162 (14.7%)
            param_block: 162,689 (13.5%)
               param_kw: 150,575 (12.5%)
             param_rest:  90,091 ( 7.5%)
           param_kwrest:  33,791 ( 2.8%)
           caller_splat:  10,214 ( 0.8%)
        caller_kw_splat:       4 ( 0.0%)
    Top-7 unhandled YARV insns (100.0% of total 128,032):
            checkkeyword: 88,698 (69.3%)
      invokesuperforward: 22,296 (17.4%)
           getblockparam: 16,292 (12.7%)
             getconstant:    336 ( 0.3%)
              checkmatch:    290 ( 0.2%)
           setblockparam:    101 ( 0.1%)
                    once:     19 ( 0.0%)
    Top-1 compile error reasons (100.0% of total 21,283):
      exception_handler: 21,283 (100.0%)
    Top-18 side exit reasons (100.0% of total 2,335,562):
                       guard_type_failure: 677,930 (29.0%)
                      guard_shape_failure: 410,183 (17.6%)
                          unhandled_kwarg: 235,100 (10.1%)
         patchpoint_stable_constant_names: 206,172 ( 8.8%)
      block_param_proxy_not_iseq_or_ifunc: 199,931 ( 8.6%)
            patchpoint_no_singleton_class: 188,359 ( 8.1%)
                      unhandled_yarv_insn: 128,032 ( 5.5%)
                    unknown_newarray_send: 124,805 ( 5.3%)
              patchpoint_method_redefined:  73,062 ( 3.1%)
                       unhandled_hir_insn:  56,688 ( 2.4%)
                            compile_error:  21,283 ( 0.9%)
               block_param_proxy_modified:  11,647 ( 0.5%)
                     fixnum_mult_overflow:     954 ( 0.0%)
                  patchpoint_no_ep_escape:     813 ( 0.0%)
                 guard_bit_equals_failure:     316 ( 0.0%)
                   obj_to_string_fallback:     230 ( 0.0%)
                                interrupt:      35 ( 0.0%)
                   guard_type_not_failure:      22 ( 0.0%)
                                 send_count: 26,775,579
                         dynamic_send_count:  8,308,826 (31.0%)
                       optimized_send_count: 18,466,753 (69.0%)
                  iseq_optimized_send_count:  7,611,729 (28.4%)
          inline_cfunc_optimized_send_count:  5,935,290 (22.2%)
           inline_iseq_optimized_send_count:    657,555 ( 2.5%)
    non_variadic_cfunc_optimized_send_count:  3,169,054 (11.8%)
        variadic_cfunc_optimized_send_count:  1,093,125 ( 4.1%)
    dynamic_getivar_count:                        2,793,635
    dynamic_setivar_count:                        3,040,844
    compiled_iseq_count:                              4,496
    failed_iseq_count:                                    0
    compile_time:                                     915ms
    profile_time:                                       6ms
    gc_time:                                            6ms
    invalidation_time:                                 20ms
    vm_write_pc_count:                           26,857,114
    vm_write_sp_count:                           25,770,558
    vm_write_locals_count:                       25,770,558
    vm_write_stack_count:                        25,770,558
    vm_write_to_parent_iseq_local_count:            106,036
    vm_read_from_parent_iseq_local_count:         3,213,992
    guard_type_count:                            27,683,170
    guard_type_exit_ratio:                             2.4%
    code_region_bytes:                           32,178,176
    side_exit_count:                              2,335,562
    total_insn_count:                           170,714,077
    vm_insn_count:                               28,999,194
    zjit_insn_count:                            141,714,883
    ratio_in_zjit:                                    83.0%

    ```

    </details>
    <details>
    <summary>After</summary>
    <br>

    ```
    **ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (63.9% of total 3,686,703):
                                   Kernel#is_a?: 427,123 (11.6%)
                                       Hash#[]=: 426,276 (11.6%)
                             String#start_with?: 336,245 ( 9.1%)
                     ObjectSpace::WeakKeyMap#[]: 139,406 ( 3.8%)
                                     Hash#fetch: 127,291 ( 3.5%)
                                    String#hash:  79,259 ( 2.1%)
                          Process.clock_gettime:  74,658 ( 2.0%)
                                     Array#any?:  74,441 ( 2.0%)
                                     Integer#==:  71,067 ( 1.9%)
                                     Kernel#dup:  68,058 ( 1.8%)
                                  Regexp#match?:  62,336 ( 1.7%)
                                      Hash#key?:  62,306 ( 1.7%)
                        SQLite3::Statement#step:  61,172 ( 1.7%)
                       SQLite3::Statement#done?:  61,172 ( 1.7%)
                                   Kernel#Array:  55,048 ( 1.5%)
                                    Integer#<=>:  49,127 ( 1.3%)
                                     String.new:  48,363 ( 1.3%)
                                        IO#read:  47,753 ( 1.3%)
                                 Array#include?:  43,309 ( 1.2%)
                              Struct#initialize:  42,650 ( 1.2%)
    Top-3 not optimized method types for send (100.0% of total 1,026,413):
       iseq: 737,496 (71.9%)
      cfunc: 288,831 (28.1%)
       null:      86 ( 0.0%)
    Top-6 not optimized method types for send_without_block (100.0% of total 189,556):
             optimized_call: 115,966 (61.2%)
             optimized_send:  36,767 (19.4%)
      optimized_struct_aset:  33,788 (17.8%)
                       null:   2,521 ( 1.3%)
       optimized_block_call:     510 ( 0.3%)
                      cfunc:       4 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 1,648,949):
                 invokesuper: 697,452 (42.3%)
                 invokeblock: 496,687 (30.1%)
                 sendforward: 221,094 (13.4%)
                      opt_eq: 147,620 ( 9.0%)
                   opt_minus:  40,863 ( 2.5%)
                    opt_plus:  22,912 ( 1.4%)
      opt_send_without_block:  19,020 ( 1.2%)
                      opt_gt:     867 ( 0.1%)
                    opt_mult:     768 ( 0.0%)
                     opt_neq:     654 ( 0.0%)
                      opt_or:     508 ( 0.0%)
                      opt_lt:     359 ( 0.0%)
                      opt_ge:     145 ( 0.0%)
    Top-13 send fallback reasons (100.0% of total 8,318,975):
                              send_without_block_polymorphic: 3,177,471 (38.2%)
                                   not_optimized_instruction: 1,648,949 (19.8%)
                                          fancy_call_feature: 1,075,143 (12.9%)
                              send_not_optimized_method_type: 1,026,413 (12.3%)
                                            send_no_profiles:   599,748 ( 7.2%)
                              send_without_block_no_profiles:   486,190 ( 5.8%)
      send_without_block_not_optimized_optimized_method_type:   187,031 ( 2.2%)
                                            send_polymorphic:   102,497 ( 1.2%)
                                    obj_to_string_not_string:     8,412 ( 0.1%)
                send_without_block_not_optimized_method_type:     2,525 ( 0.0%)
                     send_without_block_direct_too_many_args:     2,369 ( 0.0%)
                     send_without_block_cfunc_array_variadic:     2,190 ( 0.0%)
                              ccall_with_frame_too_many_args:        37 ( 0.0%)
    Top-8 popular unsupported argument-parameter features (100.0% of total 1,211,457):
              param_opt: 584,073 (48.2%)
      param_forwardable: 178,907 (14.8%)
            param_block: 162,689 (13.4%)
               param_kw: 151,688 (12.5%)
             param_rest:  90,091 ( 7.4%)
           param_kwrest:  33,791 ( 2.8%)
           caller_splat:  10,214 ( 0.8%)
        caller_kw_splat:       4 ( 0.0%)
    Top-6 unhandled YARV insns (100.0% of total 39,334):
      invokesuperforward: 22,296 (56.7%)
           getblockparam: 16,292 (41.4%)
             getconstant:    336 ( 0.9%)
              checkmatch:    290 ( 0.7%)
           setblockparam:    101 ( 0.3%)
                    once:     19 ( 0.0%)
    Top-1 compile error reasons (100.0% of total 21,283):
      exception_handler: 21,283 (100.0%)
    Top-18 side exit reasons (100.0% of total 2,253,541):
                       guard_type_failure: 682,695 (30.3%)
                      guard_shape_failure: 410,183 (18.2%)
                          unhandled_kwarg: 236,780 (10.5%)
         patchpoint_stable_constant_names: 206,310 ( 9.2%)
      block_param_proxy_not_iseq_or_ifunc: 199,931 ( 8.9%)
            patchpoint_no_singleton_class: 188,438 ( 8.4%)
                    unknown_newarray_send: 124,805 ( 5.5%)
              patchpoint_method_redefined:  73,056 ( 3.2%)
                       unhandled_hir_insn:  56,686 ( 2.5%)
                      unhandled_yarv_insn:  39,334 ( 1.7%)
                            compile_error:  21,283 ( 0.9%)
               block_param_proxy_modified:  11,647 ( 0.5%)
                     fixnum_mult_overflow:     954 ( 0.0%)
                  patchpoint_no_ep_escape:     813 ( 0.0%)
                 guard_bit_equals_failure:     316 ( 0.0%)
                   obj_to_string_fallback:     230 ( 0.0%)
                                interrupt:      58 ( 0.0%)
                   guard_type_not_failure:      22 ( 0.0%)
                                 send_count: 27,032,751
                         dynamic_send_count:  8,318,975 (30.8%)
                       optimized_send_count: 18,713,776 (69.2%)
                  iseq_optimized_send_count:  7,809,698 (28.9%)
          inline_cfunc_optimized_send_count:  5,980,083 (22.1%)
           inline_iseq_optimized_send_count:    657,677 ( 2.4%)
    non_variadic_cfunc_optimized_send_count:  3,170,381 (11.7%)
        variadic_cfunc_optimized_send_count:  1,095,937 ( 4.1%)
    dynamic_getivar_count:                        2,793,987
    dynamic_setivar_count:                        3,350,905
    compiled_iseq_count:                              4,498
    failed_iseq_count:                                    0
    compile_time:                                     884ms
    profile_time:                                       6ms
    gc_time:                                            6ms
    invalidation_time:                                 19ms
    vm_write_pc_count:                           27,417,915
    vm_write_sp_count:                           26,327,928
    vm_write_locals_count:                       26,327,928
    vm_write_stack_count:                        26,327,928
    vm_write_to_parent_iseq_local_count:            106,036
    vm_read_from_parent_iseq_local_count:         3,213,992
    guard_type_count:                            27,937,831
    guard_type_exit_ratio:                             2.4%
    code_region_bytes:                           32,571,392
    side_exit_count:                              2,253,541
    total_insn_count:                           170,630,429
    vm_insn_count:                               26,617,244
    zjit_insn_count:                            144,013,185
    ratio_in_zjit:                                    84.4%

    ```

    </details>

  Notes:
    Merged-By: tekknolagi <donotemailthisaddress@bernsteinbear.com>

commit 9bbe4b600b2bc2866561d095c3409589a214a358
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-11-08 01:54:21 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-11-08 01:54:21 +0900

    ZJIT: Carve out IseqPayload into a separate module (#15098)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit a1366f21e3beb936fedcd2dcce51b2d10a5434a0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 23:47:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-07 23:47:16 +0900

    [Feature #19630] [DOC] News about removal of IO operation with `|`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15096

commit 201ed7541b840310105c272625e5c0d01fe1d48b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 23:09:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-07 23:46:00 +0900

    Suppress sign-compare warnings

commit a2201570bd12e096b0cecf9d82f4d45eb19c8676
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-11-07 21:55:17 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-11-07 23:35:51 +0900

    Remove `rb_path_check` declaration

    Implementation was removed in https://github.com/ruby/ruby/commit/a4c051b870ac7f7b3c5482baf05600e1f6751b47

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15095

commit 41865bb6712a14ad1fc2e729316b4e2d8452babc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 21:57:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-07 21:57:24 +0900

    Use `IO.popen` instead of `IO.foreach` with pipe

commit 1f32464a2dcaf641c9fd77a323a13e44dd1d2670
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 17:57:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-07 20:42:29 +0900

    Update Bundler::CurrentRuby::ALL_RUBY_VERSIONS

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15094

commit 996cae65f3cc8fed60c6bb758b00882cac49389d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-30 12:43:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-07 20:42:29 +0900

    Deprecate IO operation with `|`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15094

commit f4e01783d3412b10f9978b5297142979cb067ce8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-30 14:14:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-07 20:42:29 +0900

    Prism update for 4.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15094

commit a4c051b870ac7f7b3c5482baf05600e1f6751b47
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-29 22:14:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-11-07 20:42:29 +0900

    Remove PATH check

  Notes:
    Merged: https://github.com/ruby/ruby/pull/15094

commit f3dd4bef786f8d56a2702b340f66e3a374c3ad3f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-11-07 18:41:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-11-07 20:07:47 +0900

    Skip removed test for JSON.deep_const_get

commit a881f2a0f441bf6d06a68bf711ca81dd6b3a1026
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-07 18:04:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-07 18:06:36 +0900

    [ruby/json] Release 2.16.0

    https://github.com/ruby/json/commit/5a12067f88

commit cd8902cce871144931a492408945d233f0926584
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-07 17:51:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-07 18:02:47 +0900

    [ruby/json] Deprecate `JSON::State#[]` and `JSON::State#[]=`

    This prevent from freezing and sharing state instances.

    If you needs some sort of arguments or extra state to the generator
    methods, consider using `JSON::Coder` instead.

    https://github.com/ruby/json/commit/e9fbc8937f

commit da6ba845545036f9bb89dae390dda78e23a3a337
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-11-07 17:45:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-11-07 17:46:00 +0900

    [ruby/json] Get rid of JSON.deep_const_get (private API)

    https://github.com/ruby/json/commit/826cb2a4f4

commit 6d81969b475262aba251e99b518181bdf7c5a523
  Author:     Yukihiro "Matz" Matsumoto <matz@ruby.or.jp>
  AuthorDate: 2025-11-07 16:41:47 +0900
  Commit:     Yukihiro "Matz" Matsumoto <matz@ruby.or.jp>
  CommitDate: 2025-11-07 16:41:47 +0900

    Development of 4.0.0 started.
