-*- coding: utf-8 -*-

commit 3b87e76cc6a2ab7f6e625953b0954edfb9e5c647
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-10-20 05:20:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-21 10:38:18 +0900

    [DOC] Tweaks for String#rpartition

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

commit e930bd3eae441df07ded74d97dd76c0d700fbdb3
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-10-20 05:44:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-21 10:37:26 +0900

    [DOC] Tweaks for String#rstrip!

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

commit 17368234bfd0b37c58a4b694d764d42e2cad8880
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-21 06:30:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-21 06:30:48 +0900

    ZJIT: Implement codegen for FixnumMod (#14857)

    This is mostly to see what happens to the loops-times benchmark.

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

commit 6e9f7974df5608dd74b5a107658ac944ec05f8d0
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-09-18 05:30:41 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-21 05:55:39 +0900

    [DOC] Create doc/contributing/concurrency_guide.md

    This guide is for those that want to contribute to ruby but don't
    understand where they need to use locks or other concurrency mechanisms.
    It teaches them how to use these locks safely and what is prohibited in
    certain circumstances.

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

commit e047cea2804c987c32450279a9b8fd78655cfa9d
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-21 05:10:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-21 05:10:25 +0900

    ZJIT: Optimize send with block into CCallWithFrame (#14863)

    Since `Send` has a block iseq, I updated `CCallWithFrame` to take an optional `blockiseq` as well, and then generate `CCallWithFrame` for `Send` when the condition is right.

    ## Stats

    `liquid-render` Benchmark

      | Metric               | Before             | After              | Change  |
      |----------------------|--------------------|--------------------|--------------------- |
      | send_no_profiles     | 3,209,418 (34.1%)  | 4,119 (0.1%)       | -3,205,299 (-99.9%) |
      | dynamic_send_count   | 9,410,758 (23.1%)  | 6,459,678 (15.9%)  | -2,951,080 (-31.4%) |
      | optimized_send_count | 31,269,388 (76.9%) | 34,220,474 (84.1%) | +2,951,086 (+9.4%) |

    `lobsters` Benchmark

      | Metric               | Before     | After      | Change              |
      |----------------------|------------|------------|---------------------|
      | send_no_profiles     | 10,769,052 | 2,902,865  | -7,866,187 (-73.0%) |
      | dynamic_send_count   | 45,673,185 | 42,880,160 | -2,793,025 (-6.1%)  |
      | optimized_send_count | 75,142,407 | 78,378,514 | +3,236,107 (+4.3%)  |


    ### `liquid-render` Before

    <details>

    ```
    Average of last 22, non-warmup iters: 262ms
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (96.9% of total 10,370,809):
                        Kernel#respond_to?: 5,069,204 (48.9%)
                                 Hash#key?: 2,394,488 (23.1%)
                              Set#include?:   778,429 ( 7.5%)
                                String#===:   326,134 ( 3.1%)
                                 String#<<:   203,231 ( 2.0%)
                                Integer#<<:   166,768 ( 1.6%)
                              Kernel#is_a?:   164,272 ( 1.6%)
                             Kernel#format:   124,262 ( 1.2%)
                                 Integer#/:   124,262 ( 1.2%)
                                  Array#<<:   115,325 ( 1.1%)
                         Regexp.last_match:    94,862 ( 0.9%)
                                  Hash#[]=:    88,485 ( 0.9%)
                        String#start_with?:    55,933 ( 0.5%)
                 CGI::EscapeExt#escapeHTML:    55,471 ( 0.5%)
                               Array#shift:    55,298 ( 0.5%)
                                Regexp#===:    48,928 ( 0.5%)
                                 String#=~:    48,477 ( 0.5%)
                             Array#unshift:    47,331 ( 0.5%)
                             String#empty?:    42,870 ( 0.4%)
                                Array#push:    41,215 ( 0.4%)
    Top-20 not annotated C methods (97.1% of total 10,394,421):
                        Kernel#respond_to?: 5,069,204 (48.8%)
                                 Hash#key?: 2,394,488 (23.0%)
                              Set#include?:   778,429 ( 7.5%)
                                String#===:   326,134 ( 3.1%)
                              Kernel#is_a?:   208,664 ( 2.0%)
                                 String#<<:   203,231 ( 2.0%)
                                Integer#<<:   166,768 ( 1.6%)
                                 Integer#/:   124,262 ( 1.2%)
                             Kernel#format:   124,262 ( 1.2%)
                                  Array#<<:   115,325 ( 1.1%)
                         Regexp.last_match:    94,862 ( 0.9%)
                                  Hash#[]=:    88,485 ( 0.9%)
                        String#start_with?:    55,933 ( 0.5%)
                 CGI::EscapeExt#escapeHTML:    55,471 ( 0.5%)
                               Array#shift:    55,298 ( 0.5%)
                                Regexp#===:    48,928 ( 0.5%)
                                 String#=~:    48,477 ( 0.5%)
                             Array#unshift:    47,331 ( 0.5%)
                             String#empty?:    42,870 ( 0.4%)
                                Array#push:    41,215 ( 0.4%)
    Top-2 not optimized method types for send (100.0% of total 2,382):
      cfunc: 1,196 (50.2%)
       iseq: 1,186 (49.8%)
    Top-4 not optimized method types for send_without_block (100.0% of total 2,561,006):
           iseq: 2,442,091 (95.4%)
      optimized:   118,882 ( 4.6%)
          alias:        20 ( 0.0%)
           null:        13 ( 0.0%)
    Top-9 not optimized instructions (100.0% of total 685,128):
                 invokeblock: 227,376 (33.2%)
                     opt_neq: 166,471 (24.3%)
                     opt_and: 166,471 (24.3%)
                      opt_eq:  66,721 ( 9.7%)
                 invokesuper:  39,363 ( 5.7%)
                      opt_le:  16,278 ( 2.4%)
                   opt_minus:   1,574 ( 0.2%)
      opt_send_without_block:     772 ( 0.1%)
                      opt_or:     102 ( 0.0%)
    Top-8 send fallback reasons (100.0% of total 9,410,758):
                                  send_no_profiles: 3,209,418 (34.1%)
                    send_without_block_polymorphic: 2,858,558 (30.4%)
      send_without_block_not_optimized_method_type: 2,561,006 (27.2%)
                         not_optimized_instruction:   685,128 ( 7.3%)
                    send_without_block_no_profiles:    91,913 ( 1.0%)
                    send_not_optimized_method_type:     2,382 ( 0.0%)
                          obj_to_string_not_string:     2,352 ( 0.0%)
           send_without_block_cfunc_array_variadic:         1 ( 0.0%)
    Top-3 unhandled YARV insns (100.0% of total 83,682):
      getclassvariable: 83,431 (99.7%)
                  once:    137 ( 0.2%)
           getconstant:    114 ( 0.1%)
    Top-3 compile error reasons (100.0% of total 5,431,910):
      register_spill_on_alloc: 4,665,393 (85.9%)
            exception_handler:   766,347 (14.1%)
      register_spill_on_ccall:       170 ( 0.0%)
    Top-11 side exit reasons (100.0% of total 14,635,508):
                            compile_error: 5,431,910 (37.1%)
                      guard_shape_failure: 3,436,341 (23.5%)
                       guard_type_failure: 2,545,791 (17.4%)
                          unhandled_splat: 2,162,907 (14.8%)
                          unhandled_kwarg:   952,568 ( 6.5%)
                      unhandled_yarv_insn:    83,682 ( 0.6%)
                       unhandled_hir_insn:    19,112 ( 0.1%)
         patchpoint_stable_constant_names:     1,608 ( 0.0%)
                   obj_to_string_fallback:       902 ( 0.0%)
              patchpoint_method_redefined:       599 ( 0.0%)
      block_param_proxy_not_iseq_or_ifunc:        88 ( 0.0%)
                                 send_count: 40,680,153
                         dynamic_send_count:  9,410,758 (23.1%)
                       optimized_send_count: 31,269,395 (76.9%)
                  iseq_optimized_send_count: 13,886,902 (34.1%)
          inline_cfunc_optimized_send_count:  7,011,684 (17.2%)
    non_variadic_cfunc_optimized_send_count:  4,670,333 (11.5%)
        variadic_cfunc_optimized_send_count:  5,700,476 (14.0%)
    dynamic_getivar_count:                         1,144,613
    dynamic_setivar_count:                           950,830
    compiled_iseq_count:                                 402
    failed_iseq_count:                                    48
    compile_time:                                      976ms
    profile_time:                                    3,223ms
    gc_time:                                            22ms
    invalidation_time:                                   0ms
    vm_write_pc_count:                            37,744,491
    vm_write_sp_count:                            37,511,865
    vm_write_locals_count:                        37,511,865
    vm_write_stack_count:                         37,511,865
    vm_write_to_parent_iseq_local_count:             558,177
    vm_read_from_parent_iseq_local_count:         14,317,032
    code_region_bytes:                             2,211,840
    side_exit_count:                              14,635,508
    total_insn_count:                            476,097,972
    vm_insn_count:                               253,795,154
    zjit_insn_count:                             222,302,818
    ratio_in_zjit:                                     46.7%
    ```

    </details>

    ### `liquid-render` After

    <details>

    ```
    Average of last 21, non-warmup iters: 272ms
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (96.8% of total 10,093,966):
                        Kernel#respond_to?: 4,932,224 (48.9%)
                                 Hash#key?: 2,329,928 (23.1%)
                              Set#include?:   757,389 ( 7.5%)
                                String#===:   317,494 ( 3.1%)
                                 String#<<:   197,831 ( 2.0%)
                                Integer#<<:   162,268 ( 1.6%)
                              Kernel#is_a?:   159,892 ( 1.6%)
                             Kernel#format:   120,902 ( 1.2%)
                                 Integer#/:   120,902 ( 1.2%)
                                  Array#<<:   112,225 ( 1.1%)
                         Regexp.last_match:    92,382 ( 0.9%)
                                  Hash#[]=:    86,145 ( 0.9%)
                        String#start_with?:    54,953 ( 0.5%)
                               Array#shift:    54,038 ( 0.5%)
                 CGI::EscapeExt#escapeHTML:    53,971 ( 0.5%)
                                Regexp#===:    47,848 ( 0.5%)
                                 String#=~:    47,237 ( 0.5%)
                             Array#unshift:    46,051 ( 0.5%)
                             String#empty?:    41,750 ( 0.4%)
                                Array#push:    40,115 ( 0.4%)
    Top-20 not annotated C methods (97.1% of total 10,116,938):
                        Kernel#respond_to?: 4,932,224 (48.8%)
                                 Hash#key?: 2,329,928 (23.0%)
                              Set#include?:   757,389 ( 7.5%)
                                String#===:   317,494 ( 3.1%)
                              Kernel#is_a?:   203,084 ( 2.0%)
                                 String#<<:   197,831 ( 2.0%)
                                Integer#<<:   162,268 ( 1.6%)
                             Kernel#format:   120,902 ( 1.2%)
                                 Integer#/:   120,902 ( 1.2%)
                                  Array#<<:   112,225 ( 1.1%)
                         Regexp.last_match:    92,382 ( 0.9%)
                                  Hash#[]=:    86,145 ( 0.9%)
                        String#start_with?:    54,953 ( 0.5%)
                               Array#shift:    54,038 ( 0.5%)
                 CGI::EscapeExt#escapeHTML:    53,971 ( 0.5%)
                                Regexp#===:    47,848 ( 0.5%)
                                 String#=~:    47,237 ( 0.5%)
                             Array#unshift:    46,051 ( 0.5%)
                             String#empty?:    41,750 ( 0.4%)
                                Array#push:    40,115 ( 0.4%)
    Top-2 not optimized method types for send (100.0% of total 182,938):
       iseq: 178,414 (97.5%)
      cfunc:   4,524 ( 2.5%)
    Top-4 not optimized method types for send_without_block (100.0% of total 2,492,246):
           iseq: 2,376,511 (95.4%)
      optimized:   115,702 ( 4.6%)
          alias:        20 ( 0.0%)
           null:        13 ( 0.0%)
    Top-9 not optimized instructions (100.0% of total 667,727):
                 invokeblock: 221,375 (33.2%)
                     opt_neq: 161,971 (24.3%)
                     opt_and: 161,971 (24.3%)
                      opt_eq:  64,921 ( 9.7%)
                 invokesuper:  39,243 ( 5.9%)
                      opt_le:  15,838 ( 2.4%)
                   opt_minus:   1,534 ( 0.2%)
      opt_send_without_block:     772 ( 0.1%)
                      opt_or:     102 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 6,287,956):
                    send_without_block_polymorphic: 2,782,058 (44.2%)
      send_without_block_not_optimized_method_type: 2,492,246 (39.6%)
                         not_optimized_instruction:   667,727 (10.6%)
                    send_not_optimized_method_type:   182,938 ( 2.9%)
                    send_without_block_no_profiles:    89,613 ( 1.4%)
                                  send_polymorphic:    66,962 ( 1.1%)
                                  send_no_profiles:     4,059 ( 0.1%)
                          obj_to_string_not_string:     2,352 ( 0.0%)
           send_without_block_cfunc_array_variadic:         1 ( 0.0%)
    Top-3 unhandled YARV insns (100.0% of total 81,482):
      getclassvariable: 81,231 (99.7%)
                  once:    137 ( 0.2%)
           getconstant:    114 ( 0.1%)
    Top-3 compile error reasons (100.0% of total 5,286,310):
      register_spill_on_alloc: 4,540,413 (85.9%)
            exception_handler:   745,727 (14.1%)
      register_spill_on_ccall:       170 ( 0.0%)
    Top-12 side exit reasons (100.0% of total 14,244,881):
                            compile_error: 5,286,310 (37.1%)
                      guard_shape_failure: 3,346,873 (23.5%)
                       guard_type_failure: 2,477,071 (17.4%)
                          unhandled_splat: 2,104,447 (14.8%)
                          unhandled_kwarg:   926,828 ( 6.5%)
                      unhandled_yarv_insn:    81,482 ( 0.6%)
                       unhandled_hir_insn:    18,672 ( 0.1%)
         patchpoint_stable_constant_names:     1,608 ( 0.0%)
                   obj_to_string_fallback:       902 ( 0.0%)
              patchpoint_method_redefined:       599 ( 0.0%)
      block_param_proxy_not_iseq_or_ifunc:        88 ( 0.0%)
                                interrupt:         1 ( 0.0%)
                                 send_count: 39,591,410
                         dynamic_send_count:  6,287,956 (15.9%)
                       optimized_send_count: 33,303,454 (84.1%)
                  iseq_optimized_send_count: 13,514,283 (34.1%)
          inline_cfunc_optimized_send_count:  6,823,745 (17.2%)
    non_variadic_cfunc_optimized_send_count:  7,417,432 (18.7%)
        variadic_cfunc_optimized_send_count:  5,547,994 (14.0%)
    dynamic_getivar_count:                        1,110,647
    dynamic_setivar_count:                          927,309
    compiled_iseq_count:                                403
    failed_iseq_count:                                   48
    compile_time:                                     968ms
    profile_time:                                   3,547ms
    gc_time:                                           22ms
    invalidation_time:                                  0ms
    vm_write_pc_count:                           36,735,108
    vm_write_sp_count:                           36,508,262
    vm_write_locals_count:                       36,508,262
    vm_write_stack_count:                        36,508,262
    vm_write_to_parent_iseq_local_count:            543,097
    vm_read_from_parent_iseq_local_count:        13,930,672
    code_region_bytes:                            2,228,224
    side_exit_count:                             14,244,881
    total_insn_count:                           463,357,969
    vm_insn_count:                              247,003,727
    zjit_insn_count:                            216,354,242
    ratio_in_zjit:                                    46.7%
    ```

    </details>

    ### `lobsters` Before

    <details>

    ```
    Average of last 10, non-warmup iters: 898ms
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (61.3% of total 19,495,906):
                                      String#<<: 1,764,437 ( 9.1%)
                                   Kernel#is_a?: 1,615,120 ( 8.3%)
                                       Hash#[]=: 1,159,455 ( 5.9%)
                                  Regexp#match?:   777,496 ( 4.0%)
                                  String#empty?:   722,953 ( 3.7%)
                                      Hash#key?:   685,258 ( 3.5%)
                             Kernel#respond_to?:   602,017 ( 3.1%)
                                  TrueClass#===:   447,671 ( 2.3%)
                                 FalseClass#===:   439,276 ( 2.3%)
                                 Array#include?:   426,758 ( 2.2%)
                            Kernel#block_given?:   405,271 ( 2.1%)
                                     Hash#fetch:   382,302 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                             String#start_with?:   353,793 ( 1.8%)
                                Kernel#kind_of?:   340,341 ( 1.7%)
                                     Kernel#dup:   328,162 ( 1.7%)
                                     String.new:   306,667 ( 1.6%)
                                      String#==:   287,549 ( 1.5%)
                                 BasicObject#!=:   284,642 ( 1.5%)
                                  String#length:   256,070 ( 1.3%)
    Top-20 not annotated C methods (62.4% of total 19,796,172):
                                   Kernel#is_a?: 1,993,676 (10.1%)
                                      String#<<: 1,764,437 ( 8.9%)
                                       Hash#[]=: 1,159,634 ( 5.9%)
                                  Regexp#match?:   777,496 ( 3.9%)
                                  String#empty?:   738,030 ( 3.7%)
                                      Hash#key?:   685,258 ( 3.5%)
                             Kernel#respond_to?:   602,017 ( 3.0%)
                                  TrueClass#===:   447,671 ( 2.3%)
                                 FalseClass#===:   439,276 ( 2.2%)
                                 Array#include?:   426,758 ( 2.2%)
                            Kernel#block_given?:   425,813 ( 2.2%)
                                     Hash#fetch:   382,302 ( 1.9%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                             String#start_with?:   353,793 ( 1.8%)
                                Kernel#kind_of?:   340,375 ( 1.7%)
                                     Kernel#dup:   328,169 ( 1.7%)
                                     String.new:   306,667 ( 1.5%)
                                      String#==:   293,520 ( 1.5%)
                                 BasicObject#!=:   284,825 ( 1.4%)
                                  String#length:   256,070 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 115,007):
      cfunc: 76,172 (66.2%)
       iseq: 38,835 (33.8%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,003,641):
           iseq: 3,999,211 (50.0%)
        bmethod: 1,750,271 (21.9%)
      optimized: 1,653,426 (20.7%)
          alias:   591,342 ( 7.4%)
           null:     8,174 ( 0.1%)
          cfunc:     1,217 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 7,590,826):
                 invokesuper: 4,335,446 (57.1%)
                 invokeblock: 1,329,215 (17.5%)
                 sendforward:   841,463 (11.1%)
                      opt_eq:   810,614 (10.7%)
                    opt_plus:   141,773 ( 1.9%)
                   opt_minus:    52,270 ( 0.7%)
      opt_send_without_block:    43,248 ( 0.6%)
                     opt_neq:    15,047 ( 0.2%)
                    opt_mult:    13,824 ( 0.2%)
                      opt_or:     7,451 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 45,673,212):
                    send_without_block_polymorphic: 17,390,335 (38.1%)
                                  send_no_profiles: 10,769,053 (23.6%)
      send_without_block_not_optimized_method_type:  8,003,641 (17.5%)
                         not_optimized_instruction:  7,590,826 (16.6%)
                    send_without_block_no_profiles:  1,757,109 ( 3.8%)
                    send_not_optimized_method_type:    115,007 ( 0.3%)
           send_without_block_cfunc_array_variadic:     31,149 ( 0.1%)
                          obj_to_string_not_string:     15,518 ( 0.0%)
           send_without_block_direct_too_many_args:        574 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 1,242,228):
             expandarray: 622,203 (50.1%)
            checkkeyword: 316,111 (25.4%)
        getclassvariable: 120,540 ( 9.7%)
           getblockparam:  88,480 ( 7.1%)
      invokesuperforward:  78,842 ( 6.3%)
       opt_duparray_send:  14,149 ( 1.1%)
             getconstant:   1,588 ( 0.1%)
              checkmatch:     288 ( 0.0%)
                    once:      27 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 6,769,693):
      register_spill_on_alloc: 6,188,305 (91.4%)
      register_spill_on_ccall:   347,108 ( 5.1%)
            exception_handler:   234,280 ( 3.5%)
    Top-17 side exit reasons (100.0% of total 20,142,827):
                            compile_error: 6,769,693 (33.6%)
                       guard_type_failure: 5,169,050 (25.7%)
                      guard_shape_failure: 3,726,362 (18.5%)
                      unhandled_yarv_insn: 1,242,228 ( 6.2%)
      block_param_proxy_not_iseq_or_ifunc:   984,480 ( 4.9%)
                          unhandled_kwarg:   800,154 ( 4.0%)
                    unknown_newarray_send:   539,317 ( 2.7%)
         patchpoint_stable_constant_names:   340,283 ( 1.7%)
                          unhandled_splat:   229,440 ( 1.1%)
                       unhandled_hir_insn:   147,351 ( 0.7%)
            patchpoint_no_singleton_class:   128,856 ( 0.6%)
              patchpoint_method_redefined:    32,718 ( 0.2%)
               block_param_proxy_modified:    25,274 ( 0.1%)
                  patchpoint_no_ep_escape:     7,559 ( 0.0%)
                   obj_to_string_fallback:        24 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        16 ( 0.0%)
                                 send_count: 120,815,640
                         dynamic_send_count:  45,673,212 (37.8%)
                       optimized_send_count:  75,142,428 (62.2%)
                  iseq_optimized_send_count:  32,188,039 (26.6%)
          inline_cfunc_optimized_send_count:  23,458,483 (19.4%)
    non_variadic_cfunc_optimized_send_count:  14,809,797 (12.3%)
        variadic_cfunc_optimized_send_count:   4,686,109 ( 3.9%)
    dynamic_getivar_count:                       13,023,437
    dynamic_setivar_count:                       12,311,158
    compiled_iseq_count:                              4,806
    failed_iseq_count:                                  466
    compile_time:                                   8,943ms
    profile_time:                                      99ms
    gc_time:                                           45ms
    invalidation_time:                                239ms
    vm_write_pc_count:                          113,652,291
    vm_write_sp_count:                          111,209,623
    vm_write_locals_count:                      111,209,623
    vm_write_stack_count:                       111,209,623
    vm_write_to_parent_iseq_local_count:            516,800
    vm_read_from_parent_iseq_local_count:        11,225,587
    code_region_bytes:                           22,609,920
    side_exit_count:                             20,142,827
    total_insn_count:                           926,088,942
    vm_insn_count:                              297,636,255
    zjit_insn_count:                            628,452,687
    ratio_in_zjit:                                    67.9%
    ```

    </details>

    ### `lobsters` After

    <details>

    ```
    Average of last 10, non-warmup iters: 919ms
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (61.3% of total 19,495,868):
                                      String#<<: 1,764,437 ( 9.1%)
                                   Kernel#is_a?: 1,615,110 ( 8.3%)
                                       Hash#[]=: 1,159,455 ( 5.9%)
                                  Regexp#match?:   777,496 ( 4.0%)
                                  String#empty?:   722,953 ( 3.7%)
                                      Hash#key?:   685,258 ( 3.5%)
                             Kernel#respond_to?:   602,016 ( 3.1%)
                                  TrueClass#===:   447,671 ( 2.3%)
                                 FalseClass#===:   439,276 ( 2.3%)
                                 Array#include?:   426,758 ( 2.2%)
                            Kernel#block_given?:   405,271 ( 2.1%)
                                     Hash#fetch:   382,302 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                             String#start_with?:   353,793 ( 1.8%)
                                Kernel#kind_of?:   340,341 ( 1.7%)
                                     Kernel#dup:   328,162 ( 1.7%)
                                     String.new:   306,667 ( 1.6%)
                                      String#==:   287,545 ( 1.5%)
                                 BasicObject#!=:   284,642 ( 1.5%)
                                  String#length:   256,070 ( 1.3%)
    Top-20 not annotated C methods (62.4% of total 19,796,134):
                                   Kernel#is_a?: 1,993,666 (10.1%)
                                      String#<<: 1,764,437 ( 8.9%)
                                       Hash#[]=: 1,159,634 ( 5.9%)
                                  Regexp#match?:   777,496 ( 3.9%)
                                  String#empty?:   738,030 ( 3.7%)
                                      Hash#key?:   685,258 ( 3.5%)
                             Kernel#respond_to?:   602,016 ( 3.0%)
                                  TrueClass#===:   447,671 ( 2.3%)
                                 FalseClass#===:   439,276 ( 2.2%)
                                 Array#include?:   426,758 ( 2.2%)
                            Kernel#block_given?:   425,813 ( 2.2%)
                                     Hash#fetch:   382,302 ( 1.9%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                             String#start_with?:   353,793 ( 1.8%)
                                Kernel#kind_of?:   340,375 ( 1.7%)
                                     Kernel#dup:   328,169 ( 1.7%)
                                     String.new:   306,667 ( 1.5%)
                                      String#==:   293,516 ( 1.5%)
                                 BasicObject#!=:   284,825 ( 1.4%)
                                  String#length:   256,070 ( 1.3%)
    Top-4 not optimized method types for send (100.0% of total 4,749,678):
       iseq: 2,563,391 (54.0%)
      cfunc: 2,064,888 (43.5%)
      alias:   118,577 ( 2.5%)
       null:     2,822 ( 0.1%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,003,641):
           iseq: 3,999,211 (50.0%)
        bmethod: 1,750,271 (21.9%)
      optimized: 1,653,426 (20.7%)
          alias:   591,342 ( 7.4%)
           null:     8,174 ( 0.1%)
          cfunc:     1,217 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 7,590,818):
                 invokesuper: 4,335,442 (57.1%)
                 invokeblock: 1,329,215 (17.5%)
                 sendforward:   841,463 (11.1%)
                      opt_eq:   810,610 (10.7%)
                    opt_plus:   141,773 ( 1.9%)
                   opt_minus:    52,270 ( 0.7%)
      opt_send_without_block:    43,248 ( 0.6%)
                     opt_neq:    15,047 ( 0.2%)
                    opt_mult:    13,824 ( 0.2%)
                      opt_or:     7,451 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-10 send fallback reasons (100.0% of total 43,152,037):
                    send_without_block_polymorphic: 17,390,322 (40.3%)
      send_without_block_not_optimized_method_type:  8,003,641 (18.5%)
                         not_optimized_instruction:  7,590,818 (17.6%)
                    send_not_optimized_method_type:  4,749,678 (11.0%)
                                  send_no_profiles:  2,893,666 ( 6.7%)
                    send_without_block_no_profiles:  1,757,109 ( 4.1%)
                                  send_polymorphic:    719,562 ( 1.7%)
           send_without_block_cfunc_array_variadic:     31,149 ( 0.1%)
                          obj_to_string_not_string:     15,518 ( 0.0%)
           send_without_block_direct_too_many_args:        574 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 1,242,215):
             expandarray: 622,203 (50.1%)
            checkkeyword: 316,111 (25.4%)
        getclassvariable: 120,540 ( 9.7%)
           getblockparam:  88,467 ( 7.1%)
      invokesuperforward:  78,842 ( 6.3%)
       opt_duparray_send:  14,149 ( 1.1%)
             getconstant:   1,588 ( 0.1%)
              checkmatch:     288 ( 0.0%)
                    once:      27 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 6,769,688):
      register_spill_on_alloc: 6,188,305 (91.4%)
      register_spill_on_ccall:   347,108 ( 5.1%)
            exception_handler:   234,275 ( 3.5%)
    Top-17 side exit reasons (100.0% of total 20,144,372):
                            compile_error: 6,769,688 (33.6%)
                       guard_type_failure: 5,169,204 (25.7%)
                      guard_shape_failure: 3,726,374 (18.5%)
                      unhandled_yarv_insn: 1,242,215 ( 6.2%)
      block_param_proxy_not_iseq_or_ifunc:   984,480 ( 4.9%)
                          unhandled_kwarg:   800,154 ( 4.0%)
                    unknown_newarray_send:   539,317 ( 2.7%)
         patchpoint_stable_constant_names:   340,283 ( 1.7%)
                          unhandled_splat:   229,440 ( 1.1%)
                       unhandled_hir_insn:   147,351 ( 0.7%)
            patchpoint_no_singleton_class:   130,252 ( 0.6%)
              patchpoint_method_redefined:    32,716 ( 0.2%)
               block_param_proxy_modified:    25,274 ( 0.1%)
                  patchpoint_no_ep_escape:     7,559 ( 0.0%)
                   obj_to_string_fallback:        24 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        19 ( 0.0%)
                                 send_count: 120,812,030
                         dynamic_send_count:  43,152,037 (35.7%)
                       optimized_send_count:  77,659,993 (64.3%)
                  iseq_optimized_send_count:  32,187,900 (26.6%)
          inline_cfunc_optimized_send_count:  23,458,491 (19.4%)
    non_variadic_cfunc_optimized_send_count:  17,327,499 (14.3%)
        variadic_cfunc_optimized_send_count:   4,686,103 ( 3.9%)
    dynamic_getivar_count:                       13,023,424
    dynamic_setivar_count:                       12,310,991
    compiled_iseq_count:                              4,806
    failed_iseq_count:                                  466
    compile_time:                                   9,012ms
    profile_time:                                     104ms
    gc_time:                                           44ms
    invalidation_time:                                239ms
    vm_write_pc_count:                          113,648,665
    vm_write_sp_count:                          111,205,997
    vm_write_locals_count:                      111,205,997
    vm_write_stack_count:                       111,205,997
    vm_write_to_parent_iseq_local_count:            516,800
    vm_read_from_parent_iseq_local_count:        11,225,587
    code_region_bytes:                           23,052,288
    side_exit_count:                             20,144,372
    total_insn_count:                           926,090,214
    vm_insn_count:                              297,647,811
    zjit_insn_count:                            628,442,403
    ratio_in_zjit:                                    67.9%
    ```

    </details>

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

commit 33f1af6779a22ab84633b43d42dcf273a7e3bbe9
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-21 01:22:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-21 01:22:53 +0900

    ZJIT: Remove idx from hir::Insn::Param (#14872)

    It turns out that we don't use it anywhere.

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

commit fba349e65883b7b9541433f7716e41d27c7e8a69
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-20 23:55:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-20 23:55:52 +0900

    ZJIT: Implement expandarray (#14847)

    Only support the simple case: no splat or rest.

    lobsters before:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (60.5% of total 11,039,954):
                                   Kernel#is_a?: 1,030,769 ( 9.3%)
                                      String#<<:   851,954 ( 7.7%)
                                       Hash#[]=:   742,941 ( 6.7%)
                                  Regexp#match?:   399,894 ( 3.6%)
                                  String#empty?:   353,775 ( 3.2%)
                                      Hash#key?:   349,147 ( 3.2%)
                             String#start_with?:   334,961 ( 3.0%)
                             Kernel#respond_to?:   316,528 ( 2.9%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.2%)
                                  TrueClass#===:   235,771 ( 2.1%)
                                 FalseClass#===:   231,144 ( 2.1%)
                                 Array#include?:   211,385 ( 1.9%)
                                     Hash#fetch:   204,702 ( 1.9%)
                            Kernel#block_given?:   181,797 ( 1.6%)
                                     Kernel#dup:   179,341 ( 1.6%)
                                 BasicObject#!=:   175,997 ( 1.6%)
                                      Class#new:   168,079 ( 1.5%)
                                Kernel#kind_of?:   165,600 ( 1.5%)
                                      String#==:   157,735 ( 1.4%)
                           Module#clock_gettime:   144,992 ( 1.3%)
    Top-20 not annotated C methods (61.4% of total 11,202,087):
                                   Kernel#is_a?: 1,212,660 (10.8%)
                                      String#<<:   851,954 ( 7.6%)
                                       Hash#[]=:   743,120 ( 6.6%)
                                  Regexp#match?:   399,894 ( 3.6%)
                                  String#empty?:   361,013 ( 3.2%)
                                      Hash#key?:   349,147 ( 3.1%)
                             String#start_with?:   334,961 ( 3.0%)
                             Kernel#respond_to?:   316,528 ( 2.8%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.1%)
                                  TrueClass#===:   235,771 ( 2.1%)
                                 FalseClass#===:   231,144 ( 2.1%)
                                 Array#include?:   211,385 ( 1.9%)
                                     Hash#fetch:   204,702 ( 1.8%)
                            Kernel#block_given?:   191,666 ( 1.7%)
                                     Kernel#dup:   179,348 ( 1.6%)
                                 BasicObject#!=:   176,181 ( 1.6%)
                                      Class#new:   168,079 ( 1.5%)
                                Kernel#kind_of?:   165,634 ( 1.5%)
                                      String#==:   163,667 ( 1.5%)
                           Module#clock_gettime:   144,992 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,682):
           iseq: 2,271,936 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,703 (21.0%)
          alias:   310,747 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,171):
                 invokesuper: 2,373,404 (55.3%)
                 invokeblock:   811,926 (18.9%)
                 sendforward:   505,452 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,404 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,530,724):
                    send_without_block_polymorphic: 9,722,491 (38.1%)
                                  send_no_profiles: 5,894,788 (23.1%)
      send_without_block_not_optimized_method_type: 4,523,682 (17.7%)
                         not_optimized_instruction: 4,293,171 (16.8%)
                    send_without_block_no_profiles:   998,746 ( 3.9%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,950):
             expandarray: 328,490 (47.5%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,901 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  49,119 ( 7.1%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,718,636):
      register_spill_on_alloc: 3,418,255 (91.9%)
      register_spill_on_ccall:   182,018 ( 4.9%)
            exception_handler:   118,363 ( 3.2%)
    Top-14 side exit reasons (100.0% of total 10,860,385):
                            compile_error: 3,718,636 (34.2%)
                       guard_type_failure: 2,638,926 (24.3%)
                      guard_shape_failure: 1,917,209 (17.7%)
                      unhandled_yarv_insn:   690,950 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,789 ( 4.9%)
                          unhandled_kwarg:   455,347 ( 4.2%)
                               patchpoint:   370,476 ( 3.4%)
                    unknown_newarray_send:   314,786 ( 2.9%)
                          unhandled_splat:   122,071 ( 1.1%)
                       unhandled_hir_insn:    76,397 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                   obj_to_string_fallback:       566 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        17 ( 0.0%)
                                 send_count: 62,244,604
                         dynamic_send_count: 25,530,724 (41.0%)
                       optimized_send_count: 36,713,880 (59.0%)
                  iseq_optimized_send_count: 18,587,512 (29.9%)
          inline_cfunc_optimized_send_count:  7,086,414 (11.4%)
    non_variadic_cfunc_optimized_send_count:  8,375,754 (13.5%)
        variadic_cfunc_optimized_send_count:  2,664,200 ( 4.3%)
    dynamic_getivar_count:                        7,365,995
    dynamic_setivar_count:                        7,245,005
    compiled_iseq_count:                              4,796
    failed_iseq_count:                                  447
    compile_time:                                     814ms
    profile_time:                                       9ms
    gc_time:                                            9ms
    invalidation_time:                                 72ms
    vm_write_pc_count:                           64,156,223
    vm_write_sp_count:                           62,812,449
    vm_write_locals_count:                       62,812,449
    vm_write_stack_count:                        62,812,449
    vm_write_to_parent_iseq_local_count:            292,458
    vm_read_from_parent_iseq_local_count:         6,599,701
    code_region_bytes:                           22,953,984
    side_exit_count:                             10,860,385
    total_insn_count:                           517,606,340
    vm_insn_count:                              162,979,530
    zjit_insn_count:                            354,626,810
    ratio_in_zjit:                                    68.5%
    ```

    </details>

    lobsters after:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (59.9% of total 11,291,815):
                                   Kernel#is_a?: 1,046,269 ( 9.3%)
                                      String#<<:   851,954 ( 7.5%)
                                       Hash#[]=:   743,274 ( 6.6%)
                                  Regexp#match?:   399,894 ( 3.5%)
                                  String#empty?:   353,775 ( 3.1%)
                                      Hash#key?:   349,147 ( 3.1%)
                             String#start_with?:   334,961 ( 3.0%)
                             Kernel#respond_to?:   316,502 ( 2.8%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.1%)
                                  TrueClass#===:   235,771 ( 2.1%)
                                 FalseClass#===:   231,144 ( 2.0%)
                                    String#sub!:   219,579 ( 1.9%)
                                 Array#include?:   211,385 ( 1.9%)
                                     Hash#fetch:   204,702 ( 1.8%)
                            Kernel#block_given?:   181,797 ( 1.6%)
                                     Kernel#dup:   179,341 ( 1.6%)
                                 BasicObject#!=:   175,997 ( 1.6%)
                                      Class#new:   168,079 ( 1.5%)
                                Kernel#kind_of?:   165,600 ( 1.5%)
                                      String#==:   157,742 ( 1.4%)
    Top-20 not annotated C methods (60.9% of total 11,466,928):
                                   Kernel#is_a?: 1,239,923 (10.8%)
                                      String#<<:   851,954 ( 7.4%)
                                       Hash#[]=:   743,453 ( 6.5%)
                                  Regexp#match?:   399,894 ( 3.5%)
                                  String#empty?:   361,013 ( 3.1%)
                                      Hash#key?:   349,147 ( 3.0%)
                             String#start_with?:   334,961 ( 2.9%)
                             Kernel#respond_to?:   316,502 ( 2.8%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.1%)
                                  TrueClass#===:   235,771 ( 2.1%)
                                 FalseClass#===:   231,144 ( 2.0%)
                                    String#sub!:   219,579 ( 1.9%)
                                 Array#include?:   211,385 ( 1.8%)
                                     Hash#fetch:   204,702 ( 1.8%)
                            Kernel#block_given?:   191,666 ( 1.7%)
                                     Kernel#dup:   179,348 ( 1.6%)
                                 BasicObject#!=:   176,181 ( 1.5%)
                                      Class#new:   168,079 ( 1.5%)
                                Kernel#kind_of?:   165,634 ( 1.4%)
                                      String#==:   163,674 ( 1.4%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,524,016):
           iseq: 2,272,269 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,704 (21.0%)
          alias:   310,747 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,294,241):
                 invokesuper: 2,375,446 (55.3%)
                 invokeblock:   810,955 (18.9%)
                 sendforward:   505,451 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,404 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,534,542):
                    send_without_block_polymorphic: 9,723,469 (38.1%)
                                  send_no_profiles: 5,896,023 (23.1%)
      send_without_block_not_optimized_method_type: 4,524,016 (17.7%)
                         not_optimized_instruction: 4,294,241 (16.8%)
                    send_without_block_no_profiles:   998,947 ( 3.9%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-8 unhandled YARV insns (100.0% of total 362,460):
            checkkeyword: 190,694 (52.6%)
        getclassvariable:  59,901 (16.5%)
      invokesuperforward:  49,503 (13.7%)
           getblockparam:  49,119 (13.6%)
       opt_duparray_send:  11,978 ( 3.3%)
             getconstant:     952 ( 0.3%)
              checkmatch:     290 ( 0.1%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,798,744):
      register_spill_on_alloc: 3,495,669 (92.0%)
      register_spill_on_ccall:   184,712 ( 4.9%)
            exception_handler:   118,363 ( 3.1%)
    Top-15 side exit reasons (100.0% of total 10,637,319):
                            compile_error: 3,798,744 (35.7%)
                       guard_type_failure: 2,655,504 (25.0%)
                      guard_shape_failure: 1,917,217 (18.0%)
      block_param_proxy_not_iseq_or_ifunc:   535,789 ( 5.0%)
                          unhandled_kwarg:   455,492 ( 4.3%)
                               patchpoint:   370,478 ( 3.5%)
                      unhandled_yarv_insn:   362,460 ( 3.4%)
                    unknown_newarray_send:   314,786 ( 3.0%)
                          unhandled_splat:   122,071 ( 1.1%)
                       unhandled_hir_insn:    83,066 ( 0.8%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                 guard_int_equals_failure:     1,914 ( 0.0%)
                   obj_to_string_fallback:       566 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        17 ( 0.0%)
                                 send_count: 62,495,067
                         dynamic_send_count: 25,534,542 (40.9%)
                       optimized_send_count: 36,960,525 (59.1%)
                  iseq_optimized_send_count: 18,582,072 (29.7%)
          inline_cfunc_optimized_send_count:  7,086,638 (11.3%)
    non_variadic_cfunc_optimized_send_count:  8,392,657 (13.4%)
        variadic_cfunc_optimized_send_count:  2,899,158 ( 4.6%)
    dynamic_getivar_count:                        7,365,994
    dynamic_setivar_count:                        7,248,500
    compiled_iseq_count:                              4,780
    failed_iseq_count:                                  463
    compile_time:                                     816ms
    profile_time:                                       9ms
    gc_time:                                           11ms
    invalidation_time:                                 70ms
    vm_write_pc_count:                           64,363,541
    vm_write_sp_count:                           63,022,221
    vm_write_locals_count:                       63,022,221
    vm_write_stack_count:                        63,022,221
    vm_write_to_parent_iseq_local_count:            292,458
    vm_read_from_parent_iseq_local_count:         6,850,977
    code_region_bytes:                           23,019,520
    side_exit_count:                             10,637,319
    total_insn_count:                           517,303,190
    vm_insn_count:                              160,562,103
    zjit_insn_count:                            356,741,087
    ratio_in_zjit:                                    69.0%
    ```

    </details>

    railsbench before:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (66.1% of total 25,524,934):
                                       Hash#[]=: 1,700,237 ( 6.7%)
                                 String#getbyte: 1,572,123 ( 6.2%)
                                      String#<<: 1,494,022 ( 5.9%)
                                   Kernel#is_a?: 1,429,930 ( 5.6%)
                                  String#empty?: 1,370,323 ( 5.4%)
                                  Regexp#match?: 1,235,067 ( 4.8%)
                             Kernel#respond_to?: 1,198,251 ( 4.7%)
                                      Hash#key?: 1,087,406 ( 4.3%)
                                 String#setbyte:   810,022 ( 3.2%)
                                      Integer#^:   766,624 ( 3.0%)
                            Kernel#block_given?:   603,613 ( 2.4%)
                                      String#==:   590,409 ( 2.3%)
                                      Class#new:   506,216 ( 2.0%)
                                    Hash#delete:   455,288 ( 1.8%)
                                 BasicObject#!=:   428,771 ( 1.7%)
                                     Hash#fetch:   408,621 ( 1.6%)
                             String#ascii_only?:   373,915 ( 1.5%)
                     ObjectSpace::WeakKeyMap#[]:   287,957 ( 1.1%)
                                   NilClass#===:   277,244 ( 1.1%)
                                   Kernel#Array:   269,590 ( 1.1%)
    Top-20 not annotated C methods (66.8% of total 25,392,654):
                                       Hash#[]=: 1,700,416 ( 6.7%)
                                 String#getbyte: 1,572,123 ( 6.2%)
                                   Kernel#is_a?: 1,515,672 ( 6.0%)
                                      String#<<: 1,494,022 ( 5.9%)
                                  String#empty?: 1,370,478 ( 5.4%)
                                  Regexp#match?: 1,235,067 ( 4.9%)
                             Kernel#respond_to?: 1,198,251 ( 4.7%)
                                      Hash#key?: 1,087,406 ( 4.3%)
                                 String#setbyte:   810,022 ( 3.2%)
                                      Integer#^:   766,624 ( 3.0%)
                            Kernel#block_given?:   603,613 ( 2.4%)
                                      String#==:   601,115 ( 2.4%)
                                      Class#new:   506,216 ( 2.0%)
                                    Hash#delete:   455,288 ( 1.8%)
                                 BasicObject#!=:   428,876 ( 1.7%)
                                     Hash#fetch:   408,621 ( 1.6%)
                             String#ascii_only?:   373,915 ( 1.5%)
                     ObjectSpace::WeakKeyMap#[]:   287,957 ( 1.1%)
                                   NilClass#===:   277,244 ( 1.1%)
                                   Kernel#Array:   269,590 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 186,159):
       iseq: 112,747 (60.6%)
      cfunc:  73,412 (39.4%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,142,248):
           iseq: 3,464,671 (42.6%)
      optimized: 2,632,884 (32.3%)
        bmethod: 1,290,701 (15.9%)
          alias:   706,020 ( 8.7%)
           null:    47,942 ( 0.6%)
          cfunc:        30 ( 0.0%)
    Top-11 not optimized instructions (100.0% of total 8,394,873):
                 invokesuper: 5,602,274 (66.7%)
                 invokeblock: 1,764,936 (21.0%)
                 sendforward:   551,832 ( 6.6%)
                      opt_eq:   441,959 ( 5.3%)
                    opt_plus:    31,635 ( 0.4%)
      opt_send_without_block:     1,163 ( 0.0%)
                      opt_lt:       372 ( 0.0%)
                    opt_mult:       251 ( 0.0%)
                      opt_ge:       193 ( 0.0%)
                     opt_neq:       149 ( 0.0%)
                      opt_or:       109 ( 0.0%)
    Top-8 send fallback reasons (100.0% of total 40,748,753):
                    send_without_block_polymorphic: 12,933,923 (31.7%)
                                  send_no_profiles:  9,033,636 (22.2%)
                         not_optimized_instruction:  8,394,873 (20.6%)
      send_without_block_not_optimized_method_type:  8,142,248 (20.0%)
                    send_without_block_no_profiles:  1,839,228 ( 4.5%)
           send_without_block_cfunc_array_variadic:    215,046 ( 0.5%)
                    send_not_optimized_method_type:    186,159 ( 0.5%)
                          obj_to_string_not_string:      3,640 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 1,604,456):
        getclassvariable: 458,136 (28.6%)
           getblockparam: 455,921 (28.4%)
            checkkeyword: 265,425 (16.5%)
      invokesuperforward: 239,383 (14.9%)
             expandarray: 137,305 ( 8.6%)
             getconstant:  48,100 ( 3.0%)
              checkmatch:     149 ( 0.0%)
                    once:      23 ( 0.0%)
       opt_duparray_send:      14 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 5,570,130):
      register_spill_on_alloc: 4,994,130 (89.7%)
            exception_handler:   356,784 ( 6.4%)
      register_spill_on_ccall:   219,216 ( 3.9%)
    Top-13 side exit reasons (100.0% of total 12,412,181):
                            compile_error: 5,570,130 (44.9%)
                      unhandled_yarv_insn: 1,604,456 (12.9%)
                      guard_shape_failure: 1,462,872 (11.8%)
                       guard_type_failure:   845,891 ( 6.8%)
      block_param_proxy_not_iseq_or_ifunc:   765,968 ( 6.2%)
                          unhandled_kwarg:   658,341 ( 5.3%)
                               patchpoint:   504,437 ( 4.1%)
                          unhandled_splat:   446,990 ( 3.6%)
                    unknown_newarray_send:   332,740 ( 2.7%)
                       unhandled_hir_insn:   160,205 ( 1.3%)
               block_param_proxy_modified:    59,589 ( 0.5%)
                   obj_to_string_fallback:       553 ( 0.0%)
                                interrupt:         9 ( 0.0%)
                                 send_count: 119,067,587
                         dynamic_send_count:  40,748,753 (34.2%)
                       optimized_send_count:  78,318,834 (65.8%)
                  iseq_optimized_send_count:  39,936,542 (33.5%)
          inline_cfunc_optimized_send_count:  12,857,358 (10.8%)
    non_variadic_cfunc_optimized_send_count:  19,722,584 (16.6%)
        variadic_cfunc_optimized_send_count:   5,802,350 ( 4.9%)
    dynamic_getivar_count:                      10,980,323
    dynamic_setivar_count:                      12,962,726
    compiled_iseq_count:                             2,531
    failed_iseq_count:                                 245
    compile_time:                                    414ms
    profile_time:                                     21ms
    gc_time:                                          33ms
    invalidation_time:                                 5ms
    vm_write_pc_count:                         129,093,714
    vm_write_sp_count:                         126,023,084
    vm_write_locals_count:                     126,023,084
    vm_write_stack_count:                      126,023,084
    vm_write_to_parent_iseq_local_count:           385,461
    vm_read_from_parent_iseq_local_count:       11,266,484
    code_region_bytes:                          12,156,928
    side_exit_count:                            12,412,181
    total_insn_count:                          866,780,158
    vm_insn_count:                             216,821,134
    zjit_insn_count:                           649,959,024
    ratio_in_zjit:                                   75.0%
    ```

    </details>

    railsbench after:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (66.0% of total 25,597,895):
                                       Hash#[]=: 1,724,042 ( 6.7%)
                                 String#getbyte: 1,572,123 ( 6.1%)
                                      String#<<: 1,494,022 ( 5.8%)
                                   Kernel#is_a?: 1,429,946 ( 5.6%)
                                  String#empty?: 1,370,323 ( 5.4%)
                                  Regexp#match?: 1,235,067 ( 4.8%)
                             Kernel#respond_to?: 1,198,251 ( 4.7%)
                                      Hash#key?: 1,087,406 ( 4.2%)
                                 String#setbyte:   810,022 ( 3.2%)
                                      Integer#^:   766,624 ( 3.0%)
                            Kernel#block_given?:   603,613 ( 2.4%)
                                      String#==:   590,699 ( 2.3%)
                                      Class#new:   506,216 ( 2.0%)
                                    Hash#delete:   455,288 ( 1.8%)
                                 BasicObject#!=:   428,771 ( 1.7%)
                                     Hash#fetch:   408,621 ( 1.6%)
                             String#ascii_only?:   373,915 ( 1.5%)
                     ObjectSpace::WeakKeyMap#[]:   287,957 ( 1.1%)
                                   NilClass#===:   277,244 ( 1.1%)
                                   Kernel#Array:   269,590 ( 1.1%)
    Top-20 not annotated C methods (66.7% of total 25,465,615):
                                       Hash#[]=: 1,724,221 ( 6.8%)
                                 String#getbyte: 1,572,123 ( 6.2%)
                                   Kernel#is_a?: 1,515,688 ( 6.0%)
                                      String#<<: 1,494,022 ( 5.9%)
                                  String#empty?: 1,370,478 ( 5.4%)
                                  Regexp#match?: 1,235,067 ( 4.8%)
                             Kernel#respond_to?: 1,198,251 ( 4.7%)
                                      Hash#key?: 1,087,406 ( 4.3%)
                                 String#setbyte:   810,022 ( 3.2%)
                                      Integer#^:   766,624 ( 3.0%)
                            Kernel#block_given?:   603,613 ( 2.4%)
                                      String#==:   601,405 ( 2.4%)
                                      Class#new:   506,216 ( 2.0%)
                                    Hash#delete:   455,288 ( 1.8%)
                                 BasicObject#!=:   428,876 ( 1.7%)
                                     Hash#fetch:   408,621 ( 1.6%)
                             String#ascii_only?:   373,915 ( 1.5%)
                     ObjectSpace::WeakKeyMap#[]:   287,957 ( 1.1%)
                                   NilClass#===:   277,244 ( 1.1%)
                                   Kernel#Array:   269,590 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 186,159):
       iseq: 112,747 (60.6%)
      cfunc:  73,412 (39.4%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,142,248):
           iseq: 3,464,671 (42.6%)
      optimized: 2,632,884 (32.3%)
        bmethod: 1,290,701 (15.9%)
          alias:   706,020 ( 8.7%)
           null:    47,942 ( 0.6%)
          cfunc:        30 ( 0.0%)
    Top-11 not optimized instructions (100.0% of total 8,442,456):
                 invokesuper: 5,649,857 (66.9%)
                 invokeblock: 1,764,936 (20.9%)
                 sendforward:   551,832 ( 6.5%)
                      opt_eq:   441,959 ( 5.2%)
                    opt_plus:    31,635 ( 0.4%)
      opt_send_without_block:     1,163 ( 0.0%)
                      opt_lt:       372 ( 0.0%)
                    opt_mult:       251 ( 0.0%)
                      opt_ge:       193 ( 0.0%)
                     opt_neq:       149 ( 0.0%)
                      opt_or:       109 ( 0.0%)
    Top-8 send fallback reasons (100.0% of total 40,796,314):
                    send_without_block_polymorphic: 12,933,921 (31.7%)
                                  send_no_profiles:  9,033,616 (22.1%)
                         not_optimized_instruction:  8,442,456 (20.7%)
      send_without_block_not_optimized_method_type:  8,142,248 (20.0%)
                    send_without_block_no_profiles:  1,839,228 ( 4.5%)
           send_without_block_cfunc_array_variadic:    215,046 ( 0.5%)
                    send_not_optimized_method_type:    186,159 ( 0.5%)
                          obj_to_string_not_string:      3,640 ( 0.0%)
    Top-8 unhandled YARV insns (100.0% of total 1,467,151):
        getclassvariable: 458,136 (31.2%)
           getblockparam: 455,921 (31.1%)
            checkkeyword: 265,425 (18.1%)
      invokesuperforward: 239,383 (16.3%)
             getconstant:  48,100 ( 3.3%)
              checkmatch:     149 ( 0.0%)
                    once:      23 ( 0.0%)
       opt_duparray_send:      14 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 5,825,923):
      register_spill_on_alloc: 5,225,940 (89.7%)
            exception_handler:   356,784 ( 6.1%)
      register_spill_on_ccall:   243,199 ( 4.2%)
    Top-13 side exit reasons (100.0% of total 12,530,763):
                            compile_error: 5,825,923 (46.5%)
                      unhandled_yarv_insn: 1,467,151 (11.7%)
                      guard_shape_failure: 1,462,876 (11.7%)
                       guard_type_failure:   845,913 ( 6.8%)
      block_param_proxy_not_iseq_or_ifunc:   765,968 ( 6.1%)
                          unhandled_kwarg:   658,341 ( 5.3%)
                               patchpoint:   504,437 ( 4.0%)
                          unhandled_splat:   446,990 ( 3.6%)
                    unknown_newarray_send:   332,740 ( 2.7%)
                       unhandled_hir_insn:   160,273 ( 1.3%)
               block_param_proxy_modified:    59,589 ( 0.5%)
                   obj_to_string_fallback:       553 ( 0.0%)
                                interrupt:         9 ( 0.0%)
                                 send_count: 119,163,569
                         dynamic_send_count:  40,796,314 (34.2%)
                       optimized_send_count:  78,367,255 (65.8%)
                  iseq_optimized_send_count:  39,911,967 (33.5%)
          inline_cfunc_optimized_send_count:  12,857,393 (10.8%)
    non_variadic_cfunc_optimized_send_count:  19,770,401 (16.6%)
        variadic_cfunc_optimized_send_count:   5,827,494 ( 4.9%)
    dynamic_getivar_count:                      10,980,323
    dynamic_setivar_count:                      12,986,381
    compiled_iseq_count:                             2,523
    failed_iseq_count:                                 252
    compile_time:                                    420ms
    profile_time:                                     21ms
    gc_time:                                          30ms
    invalidation_time:                                 4ms
    vm_write_pc_count:                         128,973,665
    vm_write_sp_count:                         125,926,968
    vm_write_locals_count:                     125,926,968
    vm_write_stack_count:                      125,926,968
    vm_write_to_parent_iseq_local_count:           385,752
    vm_read_from_parent_iseq_local_count:       11,267,766
    code_region_bytes:                          12,189,696
    side_exit_count:                            12,530,763
    total_insn_count:                          866,667,490
    vm_insn_count:                             217,813,201
    zjit_insn_count:                           648,854,289
    ratio_in_zjit:                                   74.9%
    ```

    </details>

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

commit 6eb75f6c36288cdd7522f27ad18608d13031f2b8
  Author:     Mat Sadler <mat@sourcetagsandcodes.com>
  AuthorDate: 2025-10-18 11:49:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-20 16:04:08 +0900

    [ruby/rubygems] update magnus version in rust extension gem template

    https://github.com/ruby/rubygems/commit/1ba8eb4ab3

commit b6f1c4edee9e3e1c5e81229225170a06b921b6f2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-20 14:01:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-20 15:52:55 +0900

    [ruby/rubygems] Use ruby/rubygems instead of rubygems/rubygems at document, tool and configurations

    https://github.com/ruby/rubygems/commit/749b498822

commit 22ceaf278f66db8e30c0b20aef34750a6de4f3e5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-20 10:23:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-20 15:52:54 +0900

    [ruby/rubygems] Now ruby/rubygems is the canonical repository url

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

commit 7587e92910e7604a4c66f2b804bfa2076339c6ff
  Author:     viralpraxis <viralpraxis@evilmartians.com>
  AuthorDate: 2025-10-20 03:55:45 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-20 14:17:36 +0900

    [Bug #21644] compile.c: fix `newrange` INSN peephole optimization for chilled string

    ref: https://bugs.ruby-lang.org/issues/21644

    ```shell
    $ ruby -v -e '("a" || "b").."c"'
    ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]
    -e:1: warning: possibly useless use of .. in void context
    -e:1: [BUG] Stack consistency error (sp: 7, bp: 6)
    ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]

    -- Control frame information -----------------------------------------------
    c:0002 p:0013 s:0007 e:000005 EVAL   -e:1 [FINISH]
    c:0001 p:0000 s:0003 E:001920 DUMMY  [FINISH]

    -- Ruby level backtrace information ----------------------------------------
    -e:1:in '<main>'

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

    -- C level backtrace information -------------------------------------------
    ruby/3.4.7/lib/libruby.so.3.4(rb_print_backtrace+0x8) [0x78aa9573c882] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm_dump.c:823
    ruby/3.4.7/lib/libruby.so.3.4(rb_vm_bugreport) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm_dump.c:1155
    ruby/3.4.7/lib/libruby.so.3.4(rb_bug_without_die_internal+0x6b) [0x78aa9544c62f] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/error.c:1097
    ruby/3.4.7/lib/libruby.so.3.4(rb_bug) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/error.c:1115
    ruby/3.4.7/lib/libruby.so.3.4(vm_stack_consistency_error+0x1f) [0x78aa9544f091] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm_insnhelper.c:6523
    ruby/3.4.7/lib/libruby.so.3.4(vm_get_cref) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/insns.def:1134
    ruby/3.4.7/lib/libruby.so.3.4(vm_setclassvariable) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm_insnhelper.c:1630
    ruby/3.4.7/lib/libruby.so.3.4(vm_setclassvariable) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm_insnhelper.c:1627
    ruby/3.4.7/lib/libruby.so.3.4(vm_exec_core) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/insns.def:253
    ruby/3.4.7/lib/libruby.so.3.4(vm_exec_loop+0xa) [0x78aa95724959] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm.c:2622
    ruby/3.4.7/lib/libruby.so.3.4(rb_vm_exec) /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/vm.c:2598
    ruby/3.4.7/lib/libruby.so.3.4(rb_ec_exec_node+0xa5) [0x78aa95525695] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/eval.c:281
    ruby/3.4.7/lib/libruby.so.3.4(ruby_run_node+0x83) [0x78aa95529333] /tmp/ruby-build.20251010151551.31019.jR04SY/ruby-3.4.7/eval.c:319
    ruby/3.4.7/bin/ruby(rb_main+0x21) [0x59d86f5e0186] ./main.c:43
    ruby/3.4.7/bin/ruby(main) ./main.c:68
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_call_main+0x7a) [0x78aa9502a1ca] ../sysdeps/nptl/libc_start_call_main.h:58
    /lib/x86_64-linux-gnu/libc.so.6(call_init+0x0) [0x78aa9502a28b] ../csu/libc-start.c:360
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main_impl) ../csu/libc-start.c:347
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main) (null):0
    [0x59d86f5e01d5]
    ```

    The optimization in question:

    https://github.com/ruby/ruby/blob/957c832db137e67289e93dfd9fd9e915b1f2fc87/compile.c\#L3453-L3480

    Before entering the `newrange` optimization, the iseq looks like this:

    ```
    == disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(1,17)>
    0000 putchilledstring                       "a"                       (   1)[Li]
    0002 dup
    0003 branchif                               8
    0005 pop
    0006 putchilledstring                       "b"
    0008 putchilledstring                       "c"
    0010 newrange                               0
    0012 leave
    ```

    So the optimization constructs a new range using the wrong operands (`"b"` and `"c"` instead of `"a"` and `"c"`).

    I tried to fix this by checking whether the two previous instructions are labeled.

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

commit 4353187d0812e55c5663299eca16b962000fccd9
  Author:     Daisuke Fujimura (fd0) <booleanlabel@gmail.com>
  AuthorDate: 2025-10-17 22:16:42 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-20 09:38:57 +0900

    Fix extension file permissions on Cygwin in namespace feature

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

commit 957c832db137e67289e93dfd9fd9e915b1f2fc87
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-19 03:32:25 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-19 23:22:25 +0900

    Fix memory leak in rb_const_remove when using namespace

    We need to free the rb_const_entry_t we remove from the RCLASS_WRITABLE_CONST_TBL
    otherwise it will leak memory.

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

commit 2f20dc5dc5806cf1a836420e0216b814d0c6252a
  Author:     TaoufikMejri <taoufik.almejri@gmail.com>
  AuthorDate: 2025-10-13 03:55:07 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-19 20:35:57 +0900

    [DOC] Improve loop code example documentation

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

commit 8edb40f6e82994059c25917a193bf317897ec4d0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-19 19:18:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-19 19:18:28 +0900

    Change upstream repository of rubygems

commit 56afc0a0cef4c3e5a05839b12ea387f434ef49df
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-13 13:20:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-19 09:58:08 +0900

    [ruby/English] [DOC] Markup variables in the full list as code

    https://github.com/ruby/English/commit/5e60c1068a

commit 4e6d78b8f4f9493a6ea15cc4bd0c03099008931d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-13 13:14:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-19 09:58:07 +0900

    [ruby/English] [DOC] Enclose English in quotes

    https://github.com/ruby/English/commit/70b46b58cc

commit ddd1aeaa648d7fe608d73004f3bfb2f11108c5d3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-18 11:23:26 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-18 23:40:43 +0900

    Free loaded_features_index in namespace

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

commit eb4a6f0cda35e9f7dc926d5cf66efdfaf3136ac3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-18 10:41:12 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-18 23:40:43 +0900

    Fix memory leak of TypedData data in Namespace

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

commit d7f412e685aee3138213734ad81ffd5fe0e4be8c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-18 09:45:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-18 23:40:43 +0900

    Add rb_root_namespace_data_type

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

commit db357848950d54128d6505621037872e7575697a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-17 16:15:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-18 12:54:28 +0900

    [ruby/zlib] Initialize const member

    ```
      /github/workspace/src/ext/zlib/zlib.c:2608:25: warning: default initialization of an object of type 'struct read_raw_arg' with const member leaves the object uninitialized [-Wdefault-const-init-field-unsafe]
       2608 |     struct read_raw_arg ra;
            |                         ^
      /github/workspace/src/ext/zlib/zlib.c:2450:14: note: member 'argv' declared 'const' here
       2450 |         const VALUE argv[2]; /* for rb_funcallv */
            |                     ^
    ```

    https://github.com/ruby/zlib/commit/dfa1fcbd37

commit 7989a2ff46e0dc8dc26b1571215768801fa04463
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-18 06:28:55 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-18 09:44:04 +0900

    Preallocate capacity for id table in rb_singleton_class_clone_and_attach

    We know the exact capacity for the constant table created in
    rb_singleton_class_clone_and_attach so we can preallocate it.

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

commit 9b2216954a34934fd855deb642a4369fc009c68a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-10-18 09:40:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-18 09:40:58 +0900

    [DOC] Tweaks for String#rindex

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

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

commit a0bf6d349856dfca22798a49c5b4e05162edaf3c
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-10-18 07:37:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-18 07:37:22 +0900

    ZJIT: Add inlining for Kernel#respond_to? (#14873)

    lobsters before:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (61.1% of total 10,568,718):
                                   Kernel#is_a?: 1,030,925 ( 9.8%)
                                      String#<<:   851,954 ( 8.1%)
                                       Hash#[]=:   742,942 ( 7.0%)
                                  Regexp#match?:   399,898 ( 3.8%)
                                      Hash#key?:   349,146 ( 3.3%)
                             String#start_with?:   334,963 ( 3.2%)
                             Kernel#respond_to?:   316,528 ( 3.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.3%)
                                  TrueClass#===:   235,771 ( 2.2%)
                                 FalseClass#===:   231,144 ( 2.2%)
                                 Array#include?:   211,386 ( 2.0%)
                                     Hash#fetch:   204,702 ( 1.9%)
                            Kernel#block_given?:   181,796 ( 1.7%)
                                     Kernel#dup:   179,341 ( 1.7%)
                                 BasicObject#!=:   175,997 ( 1.7%)
                                     String.new:   166,696 ( 1.6%)
                                Kernel#kind_of?:   165,600 ( 1.6%)
                                      String#==:   157,746 ( 1.5%)
                          Process.clock_gettime:   144,992 ( 1.4%)
                                     Array#any?:   138,310 ( 1.3%)
    Top-20 not annotated C methods (62.1% of total 10,723,613):
                                   Kernel#is_a?: 1,212,816 (11.3%)
                                      String#<<:   851,954 ( 7.9%)
                                       Hash#[]=:   743,121 ( 6.9%)
                                  Regexp#match?:   399,898 ( 3.7%)
                                      Hash#key?:   349,146 ( 3.3%)
                             String#start_with?:   334,963 ( 3.1%)
                             Kernel#respond_to?:   316,528 ( 3.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.2%)
                                  TrueClass#===:   235,771 ( 2.2%)
                                 FalseClass#===:   231,144 ( 2.2%)
                                 Array#include?:   211,386 ( 2.0%)
                                     Hash#fetch:   204,702 ( 1.9%)
                            Kernel#block_given?:   191,665 ( 1.8%)
                                     Kernel#dup:   179,348 ( 1.7%)
                                 BasicObject#!=:   176,181 ( 1.6%)
                                     String.new:   166,696 ( 1.6%)
                                Kernel#kind_of?:   165,634 ( 1.5%)
                                      String#==:   163,678 ( 1.5%)
                          Process.clock_gettime:   144,992 ( 1.4%)
                                     Array#any?:   138,310 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 72,324):
      cfunc: 48,057 (66.4%)
       iseq: 24,267 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,699):
           iseq: 2,271,952 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,704 (21.0%)
          alias:   310,747 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,340):
                 invokesuper: 2,373,561 (55.3%)
                 invokeblock:   811,934 (18.9%)
                 sendforward:   505,452 (11.8%)
                      opt_eq:   451,756 (10.5%)
                    opt_plus:    74,406 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,481,476):
                    send_without_block_polymorphic: 9,722,801 (38.2%)
                                  send_no_profiles: 5,894,799 (23.1%)
      send_without_block_not_optimized_method_type: 4,523,699 (17.8%)
                         not_optimized_instruction: 4,293,340 (16.8%)
                    send_without_block_no_profiles:   948,985 ( 3.7%)
                    send_not_optimized_method_type:    72,324 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,957):
             expandarray: 328,491 (47.5%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,907 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  49,119 ( 7.1%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,718,841):
      register_spill_on_alloc: 3,418,472 (91.9%)
      register_spill_on_ccall:   182,023 ( 4.9%)
            exception_handler:   118,346 ( 3.2%)
    Top-17 side exit reasons (100.0% of total 10,861,013):
                            compile_error: 3,718,841 (34.2%)
                       guard_type_failure: 2,638,940 (24.3%)
                      guard_shape_failure: 1,917,541 (17.7%)
                      unhandled_yarv_insn:   690,957 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,789 ( 4.9%)
                          unhandled_kwarg:   455,351 ( 4.2%)
                    unknown_newarray_send:   314,786 ( 2.9%)
         patchpoint_stable_constant_names:   235,507 ( 2.2%)
                          unhandled_splat:   122,071 ( 1.1%)
            patchpoint_no_singleton_class:   109,668 ( 1.0%)
                       unhandled_hir_insn:    76,397 ( 0.7%)
              patchpoint_method_redefined:    21,598 ( 0.2%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                  patchpoint_no_ep_escape:     3,765 ( 0.0%)
                   obj_to_string_fallback:       568 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        19 ( 0.0%)
                                 send_count: 68,205,150
                         dynamic_send_count: 25,481,476 (37.4%)
                       optimized_send_count: 42,723,674 (62.6%)
                  iseq_optimized_send_count: 18,588,101 (27.3%)
          inline_cfunc_optimized_send_count: 13,566,855 (19.9%)
    non_variadic_cfunc_optimized_send_count:  7,904,518 (11.6%)
        variadic_cfunc_optimized_send_count:  2,664,200 ( 3.9%)
    dynamic_getivar_count:                        7,366,650
    dynamic_setivar_count:                        7,245,122
    compiled_iseq_count:                              4,796
    failed_iseq_count:                                  447
    compile_time:                                     778ms
    profile_time:                                       9ms
    gc_time:                                           11ms
    invalidation_time:                                 77ms
    vm_write_pc_count:                           63,636,742
    vm_write_sp_count:                           62,292,946
    vm_write_locals_count:                       62,292,946
    vm_write_stack_count:                        62,292,946
    vm_write_to_parent_iseq_local_count:            292,458
    vm_read_from_parent_iseq_local_count:         6,600,017
    code_region_bytes:                           22,970,368
    side_exit_count:                             10,861,013
    total_insn_count:                           517,633,620
    vm_insn_count:                              162,995,567
    zjit_insn_count:                            354,638,053
    ratio_in_zjit:                                    68.5%
    ```

    </details>

    lobsters after:

    <details>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (61.1% of total 10,239,008):
                                   Kernel#is_a?: 1,030,914 (10.1%)
                                      String#<<:   851,954 ( 8.3%)
                                       Hash#[]=:   742,942 ( 7.3%)
                                  Regexp#match?:   376,144 ( 3.7%)
                                      Hash#key?:   349,147 ( 3.4%)
                             String#start_with?:   334,963 ( 3.3%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.3%)
                                  TrueClass#===:   235,771 ( 2.3%)
                                 FalseClass#===:   231,144 ( 2.3%)
                                 Array#include?:   211,386 ( 2.1%)
                                     Hash#fetch:   204,702 ( 2.0%)
                            Kernel#block_given?:   181,797 ( 1.8%)
                                     Kernel#dup:   179,341 ( 1.8%)
                                 BasicObject#!=:   175,997 ( 1.7%)
                                     String.new:   166,696 ( 1.6%)
                                Kernel#kind_of?:   165,600 ( 1.6%)
                                      String#==:   157,751 ( 1.5%)
                          Process.clock_gettime:   144,992 ( 1.4%)
                                     Array#any?:   138,311 ( 1.4%)
                                   Set#include?:   134,362 ( 1.3%)
    Top-20 not annotated C methods (62.2% of total 10,372,753):
                                   Kernel#is_a?: 1,212,805 (11.7%)
                                      String#<<:   851,954 ( 8.2%)
                                       Hash#[]=:   743,121 ( 7.2%)
                                  Regexp#match?:   376,144 ( 3.6%)
                                      Hash#key?:   349,147 ( 3.4%)
                             String#start_with?:   334,963 ( 3.2%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.3%)
                                  TrueClass#===:   235,771 ( 2.3%)
                                 FalseClass#===:   231,144 ( 2.2%)
                                 Array#include?:   211,386 ( 2.0%)
                                     Hash#fetch:   204,702 ( 2.0%)
                            Kernel#block_given?:   191,666 ( 1.8%)
                                     Kernel#dup:   179,348 ( 1.7%)
                                 BasicObject#!=:   176,181 ( 1.7%)
                                     String.new:   166,696 ( 1.6%)
                                Kernel#kind_of?:   165,634 ( 1.6%)
                                      String#==:   163,683 ( 1.6%)
                          Process.clock_gettime:   144,992 ( 1.4%)
                                     Array#any?:   138,311 ( 1.3%)
                                    Integer#<=>:   135,056 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 72,324):
      cfunc: 48,057 (66.4%)
       iseq: 24,267 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,699):
           iseq: 2,271,952 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,704 (21.0%)
          alias:   310,747 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,339):
                 invokesuper: 2,373,561 (55.3%)
                 invokeblock:   811,933 (18.9%)
                 sendforward:   505,452 (11.8%)
                      opt_eq:   451,756 (10.5%)
                    opt_plus:    74,406 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,457,719):
                    send_without_block_polymorphic: 9,699,046 (38.1%)
                                  send_no_profiles: 5,894,798 (23.2%)
      send_without_block_not_optimized_method_type: 4,523,699 (17.8%)
                         not_optimized_instruction: 4,293,339 (16.9%)
                    send_without_block_no_profiles:   948,985 ( 3.7%)
                    send_not_optimized_method_type:    72,324 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,957):
             expandarray: 328,491 (47.5%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,907 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  49,119 ( 7.1%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,706,981):
      register_spill_on_alloc: 3,406,595 (91.9%)
      register_spill_on_ccall:   182,023 ( 4.9%)
            exception_handler:   118,363 ( 3.2%)
    Top-17 side exit reasons (100.0% of total 10,837,266):
                            compile_error: 3,706,981 (34.2%)
                       guard_type_failure: 2,638,921 (24.4%)
                      guard_shape_failure: 1,917,552 (17.7%)
                      unhandled_yarv_insn:   690,957 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,789 ( 4.9%)
                          unhandled_kwarg:   455,351 ( 4.2%)
                    unknown_newarray_send:   314,786 ( 2.9%)
         patchpoint_stable_constant_names:   223,630 ( 2.1%)
                          unhandled_splat:   122,071 ( 1.1%)
            patchpoint_no_singleton_class:   109,668 ( 1.0%)
                       unhandled_hir_insn:    76,397 ( 0.7%)
              patchpoint_method_redefined:    21,598 ( 0.2%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                  patchpoint_no_ep_escape:     3,765 ( 0.0%)
                   obj_to_string_fallback:       568 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        17 ( 0.0%)
                                 send_count: 68,157,710
                         dynamic_send_count: 25,457,719 (37.4%)
                       optimized_send_count: 42,699,991 (62.6%)
                  iseq_optimized_send_count: 18,588,067 (27.3%)
          inline_cfunc_optimized_send_count: 13,872,916 (20.4%)
    non_variadic_cfunc_optimized_send_count:  7,904,566 (11.6%)
        variadic_cfunc_optimized_send_count:  2,334,442 ( 3.4%)
    dynamic_getivar_count:                        7,342,896
    dynamic_setivar_count:                        7,245,126
    compiled_iseq_count:                              4,796
    failed_iseq_count:                                  447
    compile_time:                                     791ms
    profile_time:                                       9ms
    gc_time:                                            9ms
    invalidation_time:                                 68ms
    vm_write_pc_count:                           63,283,243
    vm_write_sp_count:                           61,939,447
    vm_write_locals_count:                       61,939,447
    vm_write_stack_count:                        61,939,447
    vm_write_to_parent_iseq_local_count:            292,458
    vm_read_from_parent_iseq_local_count:         6,576,263
    code_region_bytes:                           22,872,064
    side_exit_count:                             10,837,266
    total_insn_count:                           517,075,555
    vm_insn_count:                              162,674,783
    zjit_insn_count:                            354,400,772
    ratio_in_zjit:                                    68.5%
    ```

    </details>

    ---------

    Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>

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

commit cb55043383cbf39ac1df1d227836080a3d7cef33
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-17 06:11:30 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-18 06:26:00 +0900

    Set method table owned by iclass in rb_class_duplicate_classext

    We duplicate the method table in rb_class_duplicate_classext, so we should
    set RCLASSEXT_ICLASS_IS_ORIGIN and unset RCLASSEXT_ICLASS_ORIGIN_SHARED_MTBL
    to signal that the iclass owns the method table and it should be freed.

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

commit 1c119f02456ff7dd3a4025456f8de5e50be88ef3
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-18 05:29:03 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-10-18 05:29:03 +0900

    Revert "ZJIT: Mark commonly-edited files as merge=union (#14865)"

    This reverts commit 23287c45806cac060ed63e87176d1a87968b9267.

    This looks like a mixed bag...

commit 23287c45806cac060ed63e87176d1a87968b9267
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-18 04:48:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-18 04:48:54 +0900

    ZJIT: Mark commonly-edited files as merge=union (#14865)

    This helps the default merge driver make reasonable decisions (and
    therefore avoid conflicts) when multiple people are e.g. adding tests
    to src/hir.rs at the same time.

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

commit 0594646c0b6c94cb25f86445582623c9c98ea900
  Author:     Jacob <jacob.denbeaux@shopify.com>
  AuthorDate: 2025-10-18 04:33:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-18 04:33:11 +0900

    ZJIT: Don't push frame for Hash#size (#14871)

    `Hash#size` was not in "Top-20 not annotated C methods" on lobsters so our before / after benchmarks are not very helpful for this change.
    <details>
    <summary>Before</summary>
    <br>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (60.9% of total 10,963,289):
                                   Kernel#is_a?: 1,047,725 ( 9.6%)
                                      String#<<:   861,497 ( 7.9%)
                                       Hash#[]=:   740,725 ( 6.8%)
                                  Regexp#match?:   398,297 ( 3.6%)
                                  String#empty?:   354,809 ( 3.2%)
                                      Hash#key?:   349,173 ( 3.2%)
                             String#start_with?:   337,387 ( 3.1%)
                             Kernel#respond_to?:   321,134 ( 2.9%)
                                  TrueClass#===:   239,657 ( 2.2%)
                     ObjectSpace::WeakKeyMap#[]:   238,988 ( 2.2%)
                                 FalseClass#===:   234,777 ( 2.1%)
                                 Array#include?:   213,229 ( 1.9%)
                            Kernel#block_given?:   181,801 ( 1.7%)
                                     Kernel#dup:   179,349 ( 1.6%)
                                Kernel#kind_of?:   174,710 ( 1.6%)
                                 BasicObject#!=:   174,448 ( 1.6%)
                                     String.new:   167,716 ( 1.5%)
                                     Hash#fetch:   160,704 ( 1.5%)
                                      String#==:   158,858 ( 1.4%)
                          Process.clock_gettime:   145,002 ( 1.3%)
    Top-20 not annotated C methods (61.8% of total 11,128,431):
                                   Kernel#is_a?: 1,226,218 (11.0%)
                                      String#<<:   861,497 ( 7.7%)
                                       Hash#[]=:   740,904 ( 6.7%)
                                  Regexp#match?:   398,297 ( 3.6%)
                                  String#empty?:   362,047 ( 3.3%)
                                      Hash#key?:   349,173 ( 3.1%)
                             String#start_with?:   337,387 ( 3.0%)
                             Kernel#respond_to?:   321,134 ( 2.9%)
                                  TrueClass#===:   239,657 ( 2.2%)
                     ObjectSpace::WeakKeyMap#[]:   238,988 ( 2.1%)
                                 FalseClass#===:   234,777 ( 2.1%)
                                 Array#include?:   213,229 ( 1.9%)
                            Kernel#block_given?:   191,670 ( 1.7%)
                                     Kernel#dup:   179,356 ( 1.6%)
                                Kernel#kind_of?:   174,745 ( 1.6%)
                                 BasicObject#!=:   174,632 ( 1.6%)
                                     String.new:   167,716 ( 1.5%)
                                      String#==:   164,789 ( 1.5%)
                                     Hash#fetch:   160,704 ( 1.4%)
                          Process.clock_gettime:   145,002 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 62,854):
      cfunc: 47,647 (75.8%)
       iseq: 15,207 (24.2%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,497,956):
           iseq: 2,236,049 (49.7%)
        bmethod:   993,299 (22.1%)
      optimized:   949,781 (21.1%)
          alias:   313,166 ( 7.0%)
           null:     5,106 ( 0.1%)
          cfunc:       555 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,255,830):
                 invokesuper: 2,371,027 (55.7%)
                 invokeblock:   811,314 (19.1%)
                 sendforward:   506,486 (11.9%)
                      opt_eq:   415,294 ( 9.8%)
                    opt_plus:    77,090 ( 1.8%)
                   opt_minus:    36,228 ( 0.9%)
      opt_send_without_block:    20,297 ( 0.5%)
                     opt_neq:     7,248 ( 0.2%)
                    opt_mult:     6,754 ( 0.2%)
                      opt_or:     3,617 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 24,945,472):
                    send_without_block_polymorphic: 9,308,731 (37.3%)
                                  send_no_profiles: 5,907,934 (23.7%)
      send_without_block_not_optimized_method_type: 4,497,956 (18.0%)
                         not_optimized_instruction: 4,255,830 (17.1%)
                    send_without_block_no_profiles:   887,000 ( 3.6%)
                    send_not_optimized_method_type:    62,854 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,138 ( 0.1%)
                          obj_to_string_not_string:     9,767 ( 0.0%)
           send_without_block_direct_too_many_args:       262 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 707,558):
             expandarray: 347,142 (49.1%)
            checkkeyword: 190,708 (27.0%)
        getclassvariable:  59,296 ( 8.4%)
           getblockparam:  49,122 ( 6.9%)
      invokesuperforward:  48,163 ( 6.8%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     840 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 3,649,990):
      register_spill_on_alloc: 3,428,507 (93.9%)
      register_spill_on_ccall:   221,483 ( 6.1%)
    Top-17 side exit reasons (100.0% of total 10,833,336):
                            compile_error: 3,649,990 (33.7%)
                       guard_type_failure: 2,681,177 (24.7%)
                      guard_shape_failure: 1,897,864 (17.5%)
                      unhandled_yarv_insn:   707,558 ( 6.5%)
      block_param_proxy_not_iseq_or_ifunc:   536,761 ( 5.0%)
                          unhandled_kwarg:   456,394 ( 4.2%)
                    unknown_newarray_send:   314,671 ( 2.9%)
         patchpoint_stable_constant_names:   229,825 ( 2.1%)
                          unhandled_splat:   129,577 ( 1.2%)
            patchpoint_no_singleton_class:   108,465 ( 1.0%)
                       unhandled_hir_insn:    76,401 ( 0.7%)
              patchpoint_method_redefined:    20,493 ( 0.2%)
               block_param_proxy_modified:    20,204 ( 0.2%)
                  patchpoint_no_ep_escape:     3,765 ( 0.0%)
                   obj_to_string_fallback:       156 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        13 ( 0.0%)
                                 send_count: 67,968,616
                         dynamic_send_count: 24,945,472 (36.7%)
                       optimized_send_count: 43,023,144 (63.3%)
                  iseq_optimized_send_count: 18,621,234 (27.4%)
          inline_cfunc_optimized_send_count: 13,438,621 (19.8%)
    non_variadic_cfunc_optimized_send_count:  8,333,523 (12.3%)
        variadic_cfunc_optimized_send_count:  2,629,766 ( 3.9%)
    dynamic_getivar_count:                        7,351,238
    dynamic_setivar_count:                        7,267,701
    compiled_iseq_count:                              4,772
    failed_iseq_count:                                  465
    compile_time:                                   7,006ms
    profile_time:                                      52ms
    gc_time:                                           46ms
    invalidation_time:                                123ms
    vm_write_pc_count:                           63,668,147
    vm_write_sp_count:                           62,343,075
    vm_write_locals_count:                       62,343,075
    vm_write_stack_count:                        62,343,075
    vm_write_to_parent_iseq_local_count:            292,130
    vm_read_from_parent_iseq_local_count:         6,623,223
    code_region_bytes:                           22,724,608
    side_exit_count:                             10,833,336
    total_insn_count:                           519,162,657
    vm_insn_count:                              164,942,584
    zjit_insn_count:                            354,220,073
    ratio_in_zjit:                                    68.2%
    ```

    </details>
    <details>
    <summary>After</summary>
    <br>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (61.1% of total 10,915,774):
                                   Kernel#is_a?: 1,027,957 ( 9.4%)
                                      String#<<:   851,954 ( 7.8%)
                                       Hash#[]=:   740,863 ( 6.8%)
                                  Regexp#match?:   398,265 ( 3.6%)
                                  String#empty?:   353,775 ( 3.2%)
                                      Hash#key?:   349,161 ( 3.2%)
                             String#start_with?:   337,386 ( 3.1%)
                             Kernel#respond_to?:   316,003 ( 2.9%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.2%)
                                  TrueClass#===:   235,771 ( 2.2%)
                                 FalseClass#===:   231,144 ( 2.1%)
                                 Array#include?:   211,340 ( 1.9%)
                                     Hash#fetch:   204,703 ( 1.9%)
                            Kernel#block_given?:   181,791 ( 1.7%)
                                     Kernel#dup:   179,337 ( 1.6%)
                                 BasicObject#!=:   174,430 ( 1.6%)
                                     String.new:   166,696 ( 1.5%)
                                Kernel#kind_of?:   165,600 ( 1.5%)
                                      String#==:   154,751 ( 1.4%)
                          Process.clock_gettime:   144,992 ( 1.3%)
    Top-20 not annotated C methods (62.0% of total 11,078,184):
                                   Kernel#is_a?: 1,209,975 (10.9%)
                                      String#<<:   851,954 ( 7.7%)
                                       Hash#[]=:   741,042 ( 6.7%)
                                  Regexp#match?:   398,265 ( 3.6%)
                                  String#empty?:   361,013 ( 3.3%)
                                      Hash#key?:   349,161 ( 3.2%)
                             String#start_with?:   337,386 ( 3.0%)
                             Kernel#respond_to?:   316,003 ( 2.9%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 2.2%)
                                  TrueClass#===:   235,771 ( 2.1%)
                                 FalseClass#===:   231,144 ( 2.1%)
                                 Array#include?:   211,340 ( 1.9%)
                                     Hash#fetch:   204,703 ( 1.8%)
                            Kernel#block_given?:   191,660 ( 1.7%)
                                     Kernel#dup:   179,344 ( 1.6%)
                                 BasicObject#!=:   174,614 ( 1.6%)
                                     String.new:   166,696 ( 1.5%)
                                Kernel#kind_of?:   165,634 ( 1.5%)
                                      String#==:   160,682 ( 1.5%)
                          Process.clock_gettime:   144,992 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 71,084):
      cfunc: 47,638 (67.0%)
       iseq: 23,446 (33.0%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,469,252):
           iseq: 2,217,500 (49.6%)
        bmethod:   985,636 (22.1%)
      optimized:   949,705 (21.2%)
          alias:   310,751 ( 7.0%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,264,988):
                 invokesuper: 2,346,307 (55.0%)
                 invokeblock:   809,211 (19.0%)
                 sendforward:   505,452 (11.9%)
                      opt_eq:   454,244 (10.7%)
                    opt_plus:    74,059 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,396 ( 0.5%)
                     opt_neq:     7,247 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,617 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,044,791):
                    send_without_block_polymorphic: 9,439,021 (37.7%)
                                  send_no_profiles: 5,892,924 (23.5%)
      send_without_block_not_optimized_method_type: 4,469,252 (17.8%)
                         not_optimized_instruction: 4,264,988 (17.0%)
                    send_without_block_no_profiles:   882,357 ( 3.5%)
                    send_not_optimized_method_type:    71,084 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,136 ( 0.1%)
                          obj_to_string_not_string:     9,767 ( 0.0%)
           send_without_block_direct_too_many_args:       262 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 688,760):
             expandarray: 328,369 (47.7%)
            checkkeyword: 190,697 (27.7%)
        getclassvariable:  59,286 ( 8.6%)
           getblockparam:  49,119 ( 7.1%)
      invokesuperforward:  48,162 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     840 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 3,642,051):
      register_spill_on_alloc: 3,420,578 (93.9%)
      register_spill_on_ccall:   221,473 ( 6.1%)
    Top-17 side exit reasons (100.0% of total 10,740,844):
                            compile_error: 3,642,051 (33.9%)
                       guard_type_failure: 2,624,731 (24.4%)
                      guard_shape_failure: 1,902,123 (17.7%)
                      unhandled_yarv_insn:   688,760 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   534,951 ( 5.0%)
                          unhandled_kwarg:   455,354 ( 4.2%)
                    unknown_newarray_send:   314,667 ( 2.9%)
         patchpoint_stable_constant_names:   227,790 ( 2.1%)
                          unhandled_splat:   121,916 ( 1.1%)
            patchpoint_no_singleton_class:   108,465 ( 1.0%)
                       unhandled_hir_insn:    76,397 ( 0.7%)
              patchpoint_method_redefined:    20,487 ( 0.2%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                  patchpoint_no_ep_escape:     3,765 ( 0.0%)
                   obj_to_string_fallback:       156 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                interrupt:        16 ( 0.0%)
                                 send_count: 67,576,368
                         dynamic_send_count: 25,044,791 (37.1%)
                       optimized_send_count: 42,531,577 (62.9%)
                  iseq_optimized_send_count: 18,461,332 (27.3%)
          inline_cfunc_optimized_send_count: 13,154,471 (19.5%)
    non_variadic_cfunc_optimized_send_count:  8,243,438 (12.2%)
        variadic_cfunc_optimized_send_count:  2,672,336 ( 4.0%)
    dynamic_getivar_count:                        7,322,001
    dynamic_setivar_count:                        7,230,445
    compiled_iseq_count:                              4,771
    failed_iseq_count:                                  466
    compile_time:                                   7,134ms
    profile_time:                                      52ms
    gc_time:                                           46ms
    invalidation_time:                                123ms
    vm_write_pc_count:                           63,337,758
    vm_write_sp_count:                           62,014,782
    vm_write_locals_count:                       62,014,782
    vm_write_stack_count:                        62,014,782
    vm_write_to_parent_iseq_local_count:            292,458
    vm_read_from_parent_iseq_local_count:         6,589,698
    code_region_bytes:                           22,724,608
    side_exit_count:                             10,740,844
    total_insn_count:                           515,656,824
    vm_insn_count:                              163,676,059
    zjit_insn_count:                            351,980,765
    ratio_in_zjit:                                    68.3%

    ```

    </details>

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

commit 0e5cb74a0016b3facd3055fefc439ea6472981fd
  Author:     Jacob <jacob.denbeaux@shopify.com>
  AuthorDate: 2025-10-18 02:26:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-18 02:26:03 +0900

    ZJIT: Don't push frame for String#empty? (#14836)

    lobsters before:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (71.9% of total 15,247,103):
                                        Hash#[]: 4,516,006 (29.6%)
                                  Class#current: 1,154,273 ( 7.6%)
                                   Kernel#is_a?: 1,027,952 ( 6.7%)
                                  Regexp#match?:   398,256 ( 2.6%)
                                  String#empty?:   353,775 ( 2.3%)
                                      Hash#key?:   349,154 ( 2.3%)
                                       Hash#[]=:   344,347 ( 2.3%)
                             String#start_with?:   337,386 ( 2.2%)
                             Kernel#respond_to?:   316,003 ( 2.1%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.6%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,339 ( 1.4%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   181,789 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,336 ( 1.2%)
                                 BasicObject#!=:   174,429 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,600 ( 1.1%)
    Top-20 not annotated C methods (72.5% of total 15,409,355):
                                        Hash#[]: 4,516,016 (29.3%)
                                   Kernel#is_a?: 1,209,970 ( 7.9%)
                                  Class#current: 1,154,273 ( 7.5%)
                                  Regexp#match?:   398,256 ( 2.6%)
                                  String#empty?:   361,013 ( 2.3%)
                                      Hash#key?:   349,154 ( 2.3%)
                                       Hash#[]=:   344,347 ( 2.2%)
                             String#start_with?:   337,386 ( 2.2%)
                             Kernel#respond_to?:   316,003 ( 2.1%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.6%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,339 ( 1.4%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   191,658 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,343 ( 1.2%)
                                 BasicObject#!=:   174,613 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,634 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 71,083):
      cfunc: 47,637 (67.0%)
       iseq: 23,446 (33.0%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,482,446):
           iseq: 2,227,443 (49.7%)
        bmethod:   985,679 (22.0%)
      optimized:   952,914 (21.3%)
          alias:   310,750 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,264,922):
                 invokesuper: 2,346,296 (55.0%)
                 invokeblock:   809,163 (19.0%)
                 sendforward:   505,446 (11.9%)
                      opt_eq:   454,244 (10.7%)
                    opt_plus:    74,059 ( 1.7%)
                   opt_minus:    36,227 ( 0.8%)
      opt_send_without_block:    21,396 ( 0.5%)
                     opt_neq:     7,247 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,617 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 27,366,538):
                    send_without_block_polymorphic: 9,222,828 (33.7%)
                                  send_no_profiles: 5,892,897 (21.5%)
      send_without_block_not_optimized_method_type: 4,482,446 (16.4%)
                         not_optimized_instruction: 4,264,922 (15.6%)
                    send_without_block_no_profiles: 3,407,046 (12.4%)
                    send_not_optimized_method_type:    71,083 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,135 ( 0.1%)
                          obj_to_string_not_string:     9,919 ( 0.0%)
           send_without_block_direct_too_many_args:       262 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 688,292):
             expandarray: 328,369 (47.7%)
            checkkeyword: 190,697 (27.7%)
        getclassvariable:  59,286 ( 8.6%)
           getblockparam:  48,651 ( 7.1%)
      invokesuperforward:  48,162 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     840 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 3,675,808):
      register_spill_on_alloc: 3,459,950 (94.1%)
      register_spill_on_ccall:   215,858 ( 5.9%)
    Top-14 side exit reasons (100.0% of total 10,732,532):
                            compile_error: 3,675,808 (34.2%)
                       guard_type_failure: 2,616,693 (24.4%)
                      guard_shape_failure: 1,902,102 (17.7%)
                      unhandled_yarv_insn:   688,292 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   534,943 ( 5.0%)
                          unhandled_kwarg:   421,996 ( 3.9%)
                               patchpoint:   359,831 ( 3.4%)
                    unknown_newarray_send:   314,665 ( 2.9%)
                          unhandled_splat:   121,910 ( 1.1%)
                       unhandled_hir_insn:    76,393 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                                interrupt:       528 ( 0.0%)
                   obj_to_string_fallback:       156 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,343,482
                         dynamic_send_count: 27,366,538 (41.2%)
                       optimized_send_count: 38,976,944 (58.8%)
                  iseq_optimized_send_count: 17,935,768 (27.0%)
          inline_cfunc_optimized_send_count:  5,794,073 ( 8.7%)
    non_variadic_cfunc_optimized_send_count: 12,588,582 (19.0%)
        variadic_cfunc_optimized_send_count:  2,658,521 ( 4.0%)
    dynamic_getivar_count:                        7,321,990
    dynamic_setivar_count:                        7,231,183
    compiled_iseq_count:                              4,770
    failed_iseq_count:                                  468
    compile_time:                                   7,466ms
    profile_time:                                      52ms
    gc_time:                                           33ms
    invalidation_time:                                116ms
    vm_write_pc_count:                           64,768,186
    vm_write_sp_count:                           63,445,066
    vm_write_locals_count:                       63,445,066
    vm_write_stack_count:                        63,445,066
    vm_write_to_parent_iseq_local_count:            292,445
    vm_read_from_parent_iseq_local_count:         6,461,354
    code_region_bytes:                           22,446,080
    side_exit_count:                             10,732,532
    total_insn_count:                           515,600,654
    vm_insn_count:                              163,640,874
    zjit_insn_count:                            351,959,780
    ratio_in_zjit:                                    68.3%
    ```

    lobsters after:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (72.3% of total 14,893,304):
                                        Hash#[]: 4,515,997 (30.3%)
                                  Class#current: 1,154,273 ( 7.8%)
                                   Kernel#is_a?: 1,027,957 ( 6.9%)
                                  Regexp#match?:   398,259 ( 2.7%)
                                      Hash#key?:   349,149 ( 2.3%)
                                       Hash#[]=:   344,347 ( 2.3%)
                             String#start_with?:   337,386 ( 2.3%)
                             Kernel#respond_to?:   316,003 ( 2.1%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.6%)
                                  TrueClass#===:   235,771 ( 1.6%)
                                 FalseClass#===:   231,144 ( 1.6%)
                                 Array#include?:   211,333 ( 1.4%)
                                     Hash#fetch:   204,703 ( 1.4%)
                            Kernel#block_given?:   181,781 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,337 ( 1.2%)
                                 BasicObject#!=:   174,429 ( 1.2%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,600 ( 1.1%)
                                      String#==:   154,751 ( 1.0%)
    Top-20 not annotated C methods (72.9% of total 15,048,318):
                                        Hash#[]: 4,516,007 (30.0%)
                                   Kernel#is_a?: 1,209,975 ( 8.0%)
                                  Class#current: 1,154,273 ( 7.7%)
                                  Regexp#match?:   398,259 ( 2.6%)
                                      Hash#key?:   349,149 ( 2.3%)
                                       Hash#[]=:   344,347 ( 2.3%)
                             String#start_with?:   337,386 ( 2.2%)
                             Kernel#respond_to?:   316,003 ( 2.1%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.6%)
                                  TrueClass#===:   235,771 ( 1.6%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,333 ( 1.4%)
                                     Hash#fetch:   204,703 ( 1.4%)
                            Kernel#block_given?:   191,650 ( 1.3%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,344 ( 1.2%)
                                 BasicObject#!=:   174,613 ( 1.2%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,634 ( 1.1%)
                                      String#==:   160,682 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 71,084):
      cfunc: 47,638 (67.0%)
       iseq: 23,446 (33.0%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,482,444):
           iseq: 2,227,440 (49.7%)
        bmethod:   985,679 (22.0%)
      optimized:   952,916 (21.3%)
          alias:   310,749 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,264,913):
                 invokesuper: 2,346,301 (55.0%)
                 invokeblock:   809,153 (19.0%)
                 sendforward:   505,445 (11.9%)
                      opt_eq:   454,244 (10.7%)
                    opt_plus:    74,056 ( 1.7%)
                   opt_minus:    36,227 ( 0.8%)
      opt_send_without_block:    21,396 ( 0.5%)
                     opt_neq:     7,247 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,617 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 27,366,491):
                    send_without_block_polymorphic: 9,222,820 (33.7%)
                                  send_no_profiles: 5,892,885 (21.5%)
      send_without_block_not_optimized_method_type: 4,482,444 (16.4%)
                         not_optimized_instruction: 4,264,913 (15.6%)
                    send_without_block_no_profiles: 3,407,030 (12.4%)
                    send_not_optimized_method_type:    71,084 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,919 ( 0.0%)
           send_without_block_direct_too_many_args:       262 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 688,291):
             expandarray: 328,368 (47.7%)
            checkkeyword: 190,697 (27.7%)
        getclassvariable:  59,286 ( 8.6%)
           getblockparam:  48,651 ( 7.1%)
      invokesuperforward:  48,162 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     840 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 3,675,807):
      register_spill_on_alloc: 3,459,949 (94.1%)
      register_spill_on_ccall:   215,858 ( 5.9%)
    Top-14 side exit reasons (100.0% of total 10,732,546):
                            compile_error: 3,675,807 (34.2%)
                       guard_type_failure: 2,616,699 (24.4%)
                      guard_shape_failure: 1,902,100 (17.7%)
                      unhandled_yarv_insn:   688,291 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   534,950 ( 5.0%)
                          unhandled_kwarg:   421,993 ( 3.9%)
                               patchpoint:   359,837 ( 3.4%)
                    unknown_newarray_send:   314,667 ( 2.9%)
                          unhandled_splat:   121,913 ( 1.1%)
                       unhandled_hir_insn:    76,393 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                                interrupt:       525 ( 0.0%)
                   obj_to_string_fallback:       156 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,343,388
                         dynamic_send_count: 27,366,491 (41.2%)
                       optimized_send_count: 38,976,897 (58.8%)
                  iseq_optimized_send_count: 17,935,730 (27.0%)
          inline_cfunc_optimized_send_count:  6,147,863 ( 9.3%)
    non_variadic_cfunc_optimized_send_count: 12,234,780 (18.4%)
        variadic_cfunc_optimized_send_count:  2,658,524 ( 4.0%)
    dynamic_getivar_count:                        7,321,987
    dynamic_setivar_count:                        7,231,160
    compiled_iseq_count:                              4,770
    failed_iseq_count:                                  468
    compile_time:                                   7,223ms
    profile_time:                                      51ms
    gc_time:                                           32ms
    invalidation_time:                                107ms
    vm_write_pc_count:                           64,414,293
    vm_write_sp_count:                           63,091,183
    vm_write_locals_count:                       63,091,183
    vm_write_stack_count:                        63,091,183
    vm_write_to_parent_iseq_local_count:            292,443
    vm_read_from_parent_iseq_local_count:         6,461,326
    code_region_bytes:                           22,446,080
    side_exit_count:                             10,732,546
    total_insn_count:                           515,600,823
    vm_insn_count:                              163,641,263
    zjit_insn_count:                            351,959,560
    ratio_in_zjit:                                    68.3%
    ```

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

commit 5298e979547a5859e84a70da88df0d7e4d308877
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-17 20:00:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-17 21:39:13 +0900

    [rubygems/rubygems] Postpone to remove legacy mingw platform

    https://github.com/rubygems/rubygems/commit/9b3a5a8ae9

commit fb72e188ef2401c5399d855c198783a256a524c0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-17 21:26:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-17 21:26:41 +0900

    Update repository urls for rubygems and bundler

commit 837947ac7fb52c0492eb148e3cb17946aefaadc4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-17 17:34:59 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-17 18:55:54 +0900

    Compatibility with test-unit-ruby-core

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

commit 943b5f66f7b2e90c349b1751b489b9881f6c26bc
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-10-09 23:52:04 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-10-17 18:37:15 +0900

    CI: Launchable: Fix errors at actions/setup-python on ppc64le/s390x

    The following errors happened at the actions/setup-python step.

    https://github.com/ruby/ruby/actions/runs/18229870239

    > The version '3.x' with architecture 's390x' was not found for Ubuntu 24.04.
    > The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

    > The version '3.x' with architecture 'ppc64' was not found for Ubuntu 24.04.
    > The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

    After skipping the actions/setup-python step, the following errors also
    happened at the actions/setup-java step.

    https://github.com/ruby/ruby/actions/runs/18355975425?pr=14721

    > make-ibm (check, ubuntu-24.04-ppc64le)
    > Could not find satisfied version for SemVer '17'.

    > make-ibm (check, ubuntu-24.04-s390x)
    > The process '/usr/bin/bash' failed with exit code 1

    > make-ibm (check, ubuntu-24.04-s390x)
    > Process completed with exit code 127.

    To fix the errors, I started using the Java distribution semeru (IBM Semeru
    Runtime Open Edition) on the ppc64le/s390x cases.

    You can see the following page for the details of the Java distribution semeru.

    https://github.com/actions/setup-java?tab=readme-ov-file#supported-distributions
    https://github.com/actions/setup-java/blob/ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0/src/distributions/semeru/installer.ts#L20-L27

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

commit 5ced99dddb384762a79c9aa07de130e460479f06
  Author:     Charlie Savage <cfis@savagexi.com>
  AuthorDate: 2025-06-06 15:30:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-17 17:24:02 +0900

    [rubygems/rubygems] :Revamp CmakeBuilder to fix the issues described in #8572. Specifically:

    * Correctly pass command line arguments to CMake
    * Call CMake twice - once to configure a project and a second time to build (which is the standard way to use CMake). This fixes the previously incorrect assumption that CMake generates a Make file.
    * Update the tests to specify a CMake minimum version of 3.26 (which is already two years old). 3.26 is a bit arbritary but it aligns with Rice, and updates from the ancient 3.5 version being used (which CMake generates a warning message saying stop using it!)
    * Update the CMake call to use CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY to tell CMake to copy compiled binaries to the a Gem's lib directory.

    Note the updated builder took inspiration from the Cargo Builder, meaning you first create an instance of CmakeBuilder versus just calling class methods.

    https://github.com/rubygems/rubygems/commit/9e248d4679

commit c2860bff88cc4ba692273a5bd2393fa03b78db9a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-16 22:15:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:16 +0900

    CI: Try mingw arm64

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

commit 87593f2c0fcf317cf8fcafb2e9ad3742c4d8f76b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-16 21:49:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:16 +0900

    Disable shorten-64-to-32 warning on IL32LLP64

    Disable the shorten-64-to-32 warning for now, because it currently
    generates a lot of warnings on platforms where `sizeof(void*)` is
    larger than `sizeof(long)`.

    TODO: Replace `long` with `ptrdiff_t` or something in the all sources.

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

commit 485f079dc59d0bdc76a12292e46b616346de29de
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-16 10:43:13 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:15 +0900

    win32: OBJCOPY is not needed on Windows in favor of def file

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

commit 1546362fd10cc6cf441bbbdaf6bb7c48439e0cd4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-15 23:12:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:15 +0900

    win32: Prefix `clock_getclock` and `clock_getres`

    Get rid of conflict with inline versions provided in time.h.

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

commit 89961f8581e0b6c84dd24b01c3e1c0f39bd1fdb6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-13 22:05:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:15 +0900

    configure.ac: Update caches for functions defined in win32.c

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

commit 3dc620166bd3c914722c04120ec0b127294d66a7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-13 12:53:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:09:15 +0900

    win32: Install the same packages as vcpkg even on msys

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

commit 2dc23c1ad84ee756ff678412636ae255e25d9176
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-17 15:08:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-17 15:08:45 +0900

    win32: Fix missing type

commit 5a23716c4f10700e9378f66702cd6797475ec30e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-17 12:01:43 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-17 14:52:19 +0900

    Skip low precision clocks to measure performances

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

commit b2d4dc9c46719b1a67bd24a4b4cf444c90621a78
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-16 10:41:40 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-17 14:52:19 +0900

    win32: Support more `clockid_t`

    Add `CLOCK_PROCESS_CPUTIME_ID` and `CLOCK_THREAD_CPUTIME_ID`.

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

commit ff6bd7fb4ef54b6963b5a09f2e09e3dd0d9d7156
  Author:     ishikawa999 <remember929@gmail.com>
  AuthorDate: 2024-04-27 16:24:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-17 14:11:36 +0900

    [ruby/ipaddr] Fix InvalidAddressError message

    https://github.com/ruby/ipaddr/commit/c96dbadee3

commit 9664191e19892b30bc7db349aa7cd71de1549983
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-17 10:24:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-17 10:54:32 +0900

    Use ruby/setup-ruby v1.265.0

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

commit 4f51f6243eb75395dcc31407fd76cc1b2b356c65
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-10-17 06:05:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-17 08:40:04 +0900

    [rubygems/rubygems] Restrict what schemes are acceptable in the remote fetcher

    The remote fetcher only works with certain schemes (`http`, `https`,
    `s3`, and `file`).  It's possible for other schemes to show up in this
    code and it can cause bugs.

    Before this patch, doing `gem install path:///hello` would result in an
    infinite loop because this function would do `send "fetch_path"`,
    calling itself forever.  Now we see an exception.

    I think we should validate gem names earlier, but it's really best
    practice to restrict the possible strings passed to `send`.

    https://github.com/rubygems/rubygems/commit/54e2781b73

commit 9a80258b23c76a40070668dbebab8dd6f0361b92
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-16 08:30:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-17 06:03:20 +0900

    Fix crash when freeing namespaces

    remove_class_from_subclasses calls st_insert, which mallocs. Malloc is not
    allowed in GC. This commit replaces the st_insert with an st_update since
    we know that ns_id exists in the st_table.

    The following script reproduces the crash:

        require "tempfile"

        Tempfile.create do |file|
          ns = Namespace.new
          ns.require(file)
        end

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

commit 3fa848460098d1e77919f5280ff3dfd7687e243b
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-17 02:06:03 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-17 05:47:49 +0900

    ZJIT: Add to counters when FnProperties.inline inlining succeeds

    This counts methods that can be folded away to nothing *in addition* to
    the already-counted `CCall`.

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

commit 9598b4449d50eb7d262a3711c43345cb987834f6
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-17 01:57:00 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-17 05:47:49 +0900

    ZJIT: Fix singleton class qualified method names in stats

    Now methods on singleton classes (for example, `new`) get split up into
    `String*#new`, `Array*#new`, ... (where the `*` indicates a singleton
    class) instead of all looking like `Class#new`.

    before:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (59.8% of total 10,506,888):
                                      String#<<: 987,752 ( 9.4%)
                                   Kernel#is_a?: 755,223 ( 7.2%)
                                       Hash#[]=: 700,802 ( 6.7%)
                                  Regexp#match?: 400,129 ( 3.8%)
                                  String#empty?: 353,775 ( 3.4%)
                             String#start_with?: 334,961 ( 3.2%)
                                      Hash#key?: 331,080 ( 3.2%)
                     ObjectSpace::WeakKeyMap#[]: 238,978 ( 2.3%)
                                  TrueClass#===: 235,771 ( 2.2%)
                                 FalseClass#===: 231,144 ( 2.2%)
                                 Array#include?: 213,362 ( 2.0%)
                             Kernel#respond_to?: 198,730 ( 1.9%)
                                     Kernel#dup: 178,920 ( 1.7%)
                            Kernel#block_given?: 178,767 ( 1.7%)
                                 BasicObject#!=: 170,602 ( 1.6%)
                                      Class#new: 168,079 ( 1.6%)
                                Kernel#kind_of?: 165,600 ( 1.6%)
                                      String#==: 158,036 ( 1.5%)
                           Module#clock_gettime: 144,992 ( 1.4%)
                                   NilClass#===: 137,833 ( 1.3%)
    ```

    after:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (59.8% of total 10,506,906):
                                      String#<<: 987,752 ( 9.4%)
                                   Kernel#is_a?: 755,237 ( 7.2%)
                                       Hash#[]=: 700,802 ( 6.7%)
                                  Regexp#match?: 400,129 ( 3.8%)
                                  String#empty?: 353,775 ( 3.4%)
                             String#start_with?: 334,961 ( 3.2%)
                                      Hash#key?: 331,080 ( 3.2%)
                     ObjectSpace::WeakKeyMap#[]: 238,978 ( 2.3%)
                                  TrueClass#===: 235,771 ( 2.2%)
                                 FalseClass#===: 231,144 ( 2.2%)
                                 Array#include?: 213,362 ( 2.0%)
                             Kernel#respond_to?: 198,730 ( 1.9%)
                                     Kernel#dup: 178,920 ( 1.7%)
                            Kernel#block_given?: 178,767 ( 1.7%)
                                 BasicObject#!=: 170,602 ( 1.6%)
                                    String*#new: 166,696 ( 1.6%)
                                Kernel#kind_of?: 165,600 ( 1.6%)
                                      String#==: 158,039 ( 1.5%)
                         Process*#clock_gettime: 144,992 ( 1.4%)
                                   NilClass#===: 137,833 ( 1.3%)
    ```

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

commit 037b6e24ea89e15c9b24e427862ba43a916401ee
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-17 04:16:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-17 04:16:47 +0900

    ZJIT: Break out patchpoint exit reasons (#14858)

    We have a lot of patchpoint exits on some applications and this helps
    pin down why.

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

commit 190a3cd4759e62166004639bbe3b1f6a134b1f3b
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-10-17 02:35:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-17 02:35:33 +0900

    ZJIT: [DOC] Recommend cargo-binstall for ZJIT tool installation (GH-14859)

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

    Merged-By: XrXr

commit f925f1ae7b18c6314fe59d19cd56107de91c3b26
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-17 00:34:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-17 00:34:07 +0900

    ZJIT: Inline BasicObject#initialize (#14856)

    It just returns nil.

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

commit 68f45a6da7bcea9126e04653a5ab47ddcb3b3126
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 23:37:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 23:38:14 +0900

    [ruby/prism] Do not rely on RUBY_VERSION being consistent

    https://github.com/ruby/prism/commit/34428946db

commit a8a8f1c20e3f10614de7b6bc262d910678b4f526
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 23:29:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 23:29:43 +0900

    [ruby/prism] Handle RUBY_VERSION being nil

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

commit cea3307fe61992f576dd665ae1066e8073b53dab
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 23:10:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 23:10:39 +0900

    [ruby/prism] Do not stub Ruby version

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

commit 6652d5072fa4888443d43db0a4026524b56925bf
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 22:59:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 23:00:28 +0900

    [ruby/prism] Create a new string for the current version error

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

commit 99929d6f2b8433d5d2573054f08070e8a4c6bac3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 22:20:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 22:20:44 +0900

    [ruby/prism] Do not rely on Gem being loaded

    https://github.com/ruby/prism/commit/2466940e49

commit aa2d3cd5133e6a5deb24fa047e5a66c2b65873eb
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-16 21:33:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 21:43:49 +0900

    [ruby/prism] Bump to v1.6.0

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

commit f5d3b6e6261569a7205b637052d1fec45ae4620b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-10-15 15:46:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 21:34:14 +0900

    [ruby/prism] Add support for `Prism.parse(foo, version: "current")`

    The docs currently say to use `Prism.parse(foo, version: RUBY_VERSION)` for this.
    By specifying "current" instead, we can have prism raise a more specifc error.

    Note: Does not use `ruby_version` from `ruby/version.h` because writing a test for that is not really possible.
    `RUBY_VERSION` is nicely stubbable for both the c-ext and FFI backend.

    https://github.com/ruby/prism/commit/9c5cd205cf

commit 1d95d75c3f8821309356131beea837ff158dffc1
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-16 12:40:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-16 12:40:45 +0900

    ZJIT: Profile opt_succ and inline Integer#succ for Fixnum (#14846)

    This is only really called a lot in the benchmark harness, as far as I
    can tell.

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

commit 7a474e1fbd6198e2bffff9bc4f94bfa376162d59
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-16 11:01:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-16 11:01:00 +0900

    ZJIT: Inline String#getbyte (#14842)

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

commit 45c016866c24a244d286a2db0babab1ff6867ba0
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-23 01:40:20 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-16 10:21:52 +0900

    Use explicit memory orders in concurrent_set

    The atomic load/store operations here should mostly be using
    release/acquire semantics. This may lead to better performance than what
    we had under the default seq_cst.

    On x86 this may make the atomic store of hash faster, as it can avoid
    xchg. On ARM the loads may be faster (depending on target CPU for the
    compiler).

    Reference for comparison of atomic operations
    https://godbolt.org/z/6EdaMa5rG

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

commit 9e4a75696303812d23366d57e4381166b1f88bb1
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-15 15:59:39 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-16 09:13:19 +0900

    Use BUILTIN_TYPE in gc_mark_check_t_none

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

commit 5a9fac6939af7be2991a5fe16df5fcba8f24eab9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-15 09:49:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-16 08:29:30 +0900

    Fix assert_equal order in test_namespace.rb

    The expected value is the first parameter and the actual value is the
    second in assert_equal.

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

commit d272a81f42414d1576dbb44128fcbea74a6cf1d2
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-16 03:39:46 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-16 06:24:51 +0900

    ZJIT: Rewrite arm64_split_with_scratch_reg for clarity

    * The while loop pattern can be rewritten to be more idiomatic, which
      also allows the iterator to no longer be mutable.

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

commit 4c426e98a89015de0ccbd52f3ceb92aa71d31bb4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-16 02:53:57 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-16 05:36:46 +0900

    ZJIT: Use rb_gc_disable() over rb_gc_disable_no_rest()

    no_rest() trips an assert inside the GC when we allocate with the GC
    disabled this way:

        (gc_continue) ../src/gc/default/default.c:2029
        (newobj_cache_miss+0x128) [0x105040048] ../src/gc/default/default.c:2370
        (rb_gc_impl_new_obj+0x7c) [0x105036374] ../src/gc/default/default.c:2482
        (newobj_of) ../src/gc.c:995
        (rb_method_entry_alloc+0x40) [0x1051e6c64] ../src/vm_method.c:1102
        (rb_method_entry_complement_defined_class) ../src/vm_method.c:1180
        (prepare_callable_method_entry+0x14c) [0x1051e87b8] ../src/vm_method.c:1728
        (callable_method_entry_or_negative+0x1e8) [0x1051e809c] ../src/vm_method.c:1874

    It's tries to continue the GC because it was out of space. Looks like
    it's not safe to allocate new objects after using
    rb_gc_disable_no_rest(); existing usages use it for malloc calls.

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

commit b052d706a53e764786093d6d1cade5a9adebbb7b
  Author:     Nathan Froyd <froydnj@gmail.com>
  AuthorDate: 2025-10-16 02:26:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 03:34:43 +0900

    [ruby/prism] explicitly cast constants in initializers as well

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

commit 829b1884c0c917ca47988abc2c626c47c5748197
  Author:     Nathan Froyd <froydnj@gmail.com>
  AuthorDate: 2025-10-16 02:24:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-16 03:34:43 +0900

    [ruby/prism] explicitly cast shifted constant to unsigned to avoid undefined behavior

    https://github.com/ruby/prism/commit/0b2710a6c9

commit 6a94632d4a92c17f97acdc2856a36a187092efcd
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-16 03:00:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-16 03:00:44 +0900

    ZJIT: Add HashAref to HIR and inline Hash#[] to HashAref (#14838)

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

    ## Testing on `liquid-render`:

    <details>

    <summary>Before patch:</summary>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (96.8% of total 20,222,783):
             Kernel#respond_to?: 9,725,886 (48.1%)
                      Hash#key?: 4,589,528 (22.7%)
                   Set#include?: 1,493,789 ( 7.4%)
                     String#===:   616,183 ( 3.0%)
                        Hash#[]:   453,675 ( 2.2%)
                      String#<<:   386,831 ( 1.9%)
                     Integer#<<:   319,768 ( 1.6%)
                   Kernel#is_a?:   312,176 ( 1.5%)
                      Integer#/:   238,502 ( 1.2%)
                  Kernel#format:   238,502 ( 1.2%)
                       Array#<<:   220,724 ( 1.1%)
               Class#last_match:   179,182 ( 0.9%)
                       Hash#[]=:   167,728 ( 0.8%)
      CGI::EscapeExt#escapeHTML:   106,471 ( 0.5%)
                    Array#shift:    98,030 ( 0.5%)
                  Array#unshift:    90,851 ( 0.4%)
                      String#=~:    90,637 ( 0.4%)
             String#start_with?:    88,122 ( 0.4%)
                     Regexp#===:    85,648 ( 0.4%)
                  String#empty?:    80,950 ( 0.4%)
    Top-20 not annotated C methods (97.0% of total 20,268,253):
             Kernel#respond_to?: 9,725,886 (48.0%)
                      Hash#key?: 4,589,528 (22.6%)
                   Set#include?: 1,493,789 ( 7.4%)
                     String#===:   616,183 ( 3.0%)
                        Hash#[]:   453,675 ( 2.2%)
                   Kernel#is_a?:   397,366 ( 2.0%)
                      String#<<:   386,831 ( 1.9%)
                     Integer#<<:   319,768 ( 1.6%)
                      Integer#/:   238,502 ( 1.2%)
                  Kernel#format:   238,502 ( 1.2%)
                       Array#<<:   220,724 ( 1.1%)
               Class#last_match:   179,182 ( 0.9%)
                       Hash#[]=:   167,728 ( 0.8%)
      CGI::EscapeExt#escapeHTML:   106,471 ( 0.5%)
                    Array#shift:    98,030 ( 0.5%)
                  Array#unshift:    90,851 ( 0.4%)
                      String#=~:    90,637 ( 0.4%)
             String#start_with?:    88,122 ( 0.4%)
                     Regexp#===:    85,648 ( 0.4%)
                  String#empty?:    80,950 ( 0.4%)
    Top-2 not optimized method types for send (100.0% of total 1,180):
       iseq: 602 (51.0%)
      cfunc: 578 (49.0%)
    Top-3 not optimized method types for send_without_block (100.0% of total 4,896,785):
           iseq: 4,669,764 (95.4%)
      optimized:   227,001 ( 4.6%)
          alias:        20 ( 0.0%)
    Top-9 not optimized instructions (100.0% of total 1,255,287):
                 invokeblock: 430,174 (34.3%)
                     opt_neq: 319,471 (25.5%)
                     opt_and: 319,471 (25.5%)
                      opt_eq: 127,926 (10.2%)
                      opt_le:  31,238 ( 2.5%)
                 invokesuper:  23,409 ( 1.9%)
                   opt_minus:   2,934 ( 0.2%)
      opt_send_without_block:     562 ( 0.0%)
                      opt_or:     102 ( 0.0%)
    Top-7 send fallback reasons (100.0% of total 17,930,659):
                                  send_no_profiles: 6,145,096 (34.3%)
                    send_without_block_polymorphic: 5,459,600 (30.4%)
      send_without_block_not_optimized_method_type: 4,896,785 (27.3%)
                         not_optimized_instruction: 1,255,287 ( 7.0%)
                    send_without_block_no_profiles:   170,037 ( 0.9%)
                          obj_to_string_not_string:     2,674 ( 0.0%)
                    send_not_optimized_method_type:     1,180 ( 0.0%)
    Top-3 unhandled YARV insns (100.0% of total 157,831):
      getclassvariable: 157,694 (99.9%)
                  once:     121 ( 0.1%)
           getconstant:      16 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 8,905,991):
      register_spill_on_alloc: 8,905,891 (100.0%)
      register_spill_on_ccall:       100 ( 0.0%)
    Top-9 side exit reasons (100.0% of total 26,549,652):
                            compile_error: 8,905,991 (33.5%)
                      guard_shape_failure: 6,590,116 (24.8%)
                       guard_type_failure: 4,882,217 (18.4%)
                          unhandled_splat: 4,150,547 (15.6%)
                          unhandled_kwarg: 1,827,728 ( 6.9%)
                      unhandled_yarv_insn:   157,831 ( 0.6%)
                       unhandled_hir_insn:    34,072 ( 0.1%)
                               patchpoint:     1,100 ( 0.0%)
      block_param_proxy_not_iseq_or_ifunc:        50 ( 0.0%)
                                 send_count: 72,944,863
                         dynamic_send_count: 17,930,659 (24.6%)
                       optimized_send_count: 55,014,204 (75.4%)
                  iseq_optimized_send_count: 26,520,888 (36.4%)
          inline_cfunc_optimized_send_count:  8,270,533 (11.3%)
    non_variadic_cfunc_optimized_send_count:  9,344,065 (12.8%)
        variadic_cfunc_optimized_send_count: 10,878,718 (14.9%)
    dynamic_getivar_count:                        2,171,396
    dynamic_setivar_count:                        1,737,553
    compiled_iseq_count:                                383
    failed_iseq_count:                                   46
    compile_time:                                     820ms
    profile_time:                                       4ms
    gc_time:                                           22ms
    invalidation_time:                                  0ms
    vm_write_pc_count:                           71,973,068
    vm_write_sp_count:                           71,544,492
    vm_write_locals_count:                       71,544,492
    vm_write_stack_count:                        71,544,492
    vm_write_to_parent_iseq_local_count:          1,070,897
    vm_read_from_parent_iseq_local_count:        27,449,010
    code_region_bytes:                            2,113,536
    side_exit_count:                             26,549,652
    total_insn_count:                           908,528,764
    vm_insn_count:                              484,633,128
    zjit_insn_count:                            423,895,636
    ratio_in_zjit:                                    46.7%
    ```

    </details>




    <details>

    <summary>after patch:</summary>
    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (97.2% of total 19,769,108):
             Kernel#respond_to?: 9,725,886 (49.2%)
                      Hash#key?: 4,589,528 (23.2%)
                   Set#include?: 1,493,789 ( 7.6%)
                     String#===:   616,183 ( 3.1%)
                      String#<<:   386,831 ( 2.0%)
                     Integer#<<:   319,768 ( 1.6%)
                   Kernel#is_a?:   312,176 ( 1.6%)
                      Integer#/:   238,502 ( 1.2%)
                  Kernel#format:   238,502 ( 1.2%)
                       Array#<<:   220,724 ( 1.1%)
               Class#last_match:   179,182 ( 0.9%)
                       Hash#[]=:   167,728 ( 0.8%)
      CGI::EscapeExt#escapeHTML:   106,471 ( 0.5%)
                    Array#shift:    98,030 ( 0.5%)
                  Array#unshift:    90,851 ( 0.5%)
                      String#=~:    90,637 ( 0.5%)
             String#start_with?:    88,122 ( 0.4%)
                     Regexp#===:    85,648 ( 0.4%)
                  String#empty?:    80,950 ( 0.4%)
                     Array#push:    78,615 ( 0.4%)
    Top-20 not annotated C methods (97.4% of total 19,814,578):
             Kernel#respond_to?: 9,725,886 (49.1%)
                      Hash#key?: 4,589,528 (23.2%)
                   Set#include?: 1,493,789 ( 7.5%)
                     String#===:   616,183 ( 3.1%)
                   Kernel#is_a?:   397,366 ( 2.0%)
                      String#<<:   386,831 ( 2.0%)
                     Integer#<<:   319,768 ( 1.6%)
                      Integer#/:   238,502 ( 1.2%)
                  Kernel#format:   238,502 ( 1.2%)
                       Array#<<:   220,724 ( 1.1%)
               Class#last_match:   179,182 ( 0.9%)
                       Hash#[]=:   167,728 ( 0.8%)
      CGI::EscapeExt#escapeHTML:   106,471 ( 0.5%)
                    Array#shift:    98,030 ( 0.5%)
                  Array#unshift:    90,851 ( 0.5%)
                      String#=~:    90,637 ( 0.5%)
             String#start_with?:    88,122 ( 0.4%)
                     Regexp#===:    85,648 ( 0.4%)
                  String#empty?:    80,950 ( 0.4%)
                     Array#push:    78,615 ( 0.4%)
    Top-2 not optimized method types for send (100.0% of total 1,180):
       iseq: 602 (51.0%)
      cfunc: 578 (49.0%)
    Top-3 not optimized method types for send_without_block (100.0% of total 4,896,785):
           iseq: 4,669,764 (95.4%)
      optimized:   227,001 ( 4.6%)
          alias:        20 ( 0.0%)
    Top-9 not optimized instructions (100.0% of total 1,255,287):
                 invokeblock: 430,174 (34.3%)
                     opt_neq: 319,471 (25.5%)
                     opt_and: 319,471 (25.5%)
                      opt_eq: 127,926 (10.2%)
                      opt_le:  31,238 ( 2.5%)
                 invokesuper:  23,409 ( 1.9%)
                   opt_minus:   2,934 ( 0.2%)
      opt_send_without_block:     562 ( 0.0%)
                      opt_or:     102 ( 0.0%)
    Top-7 send fallback reasons (100.0% of total 17,930,659):
                                  send_no_profiles: 6,145,096 (34.3%)
                    send_without_block_polymorphic: 5,459,600 (30.4%)
      send_without_block_not_optimized_method_type: 4,896,785 (27.3%)
                         not_optimized_instruction: 1,255,287 ( 7.0%)
                    send_without_block_no_profiles:   170,037 ( 0.9%)
                          obj_to_string_not_string:     2,674 ( 0.0%)
                    send_not_optimized_method_type:     1,180 ( 0.0%)
    Top-3 unhandled YARV insns (100.0% of total 157,831):
      getclassvariable: 157,694 (99.9%)
                  once:     121 ( 0.1%)
           getconstant:      16 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 8,905,991):
      register_spill_on_alloc: 8,905,891 (100.0%)
      register_spill_on_ccall:       100 ( 0.0%)
    Top-9 side exit reasons (100.0% of total 26,549,652):
                            compile_error: 8,905,991 (33.5%)
                      guard_shape_failure: 6,590,116 (24.8%)
                       guard_type_failure: 4,882,217 (18.4%)
                          unhandled_splat: 4,150,547 (15.6%)
                          unhandled_kwarg: 1,827,728 ( 6.9%)
                      unhandled_yarv_insn:   157,831 ( 0.6%)
                       unhandled_hir_insn:    34,072 ( 0.1%)
                               patchpoint:     1,100 ( 0.0%)
      block_param_proxy_not_iseq_or_ifunc:        50 ( 0.0%)
                                 send_count: 72,491,188
                         dynamic_send_count: 17,930,659 (24.7%)
                       optimized_send_count: 54,560,529 (75.3%)
                  iseq_optimized_send_count: 26,520,888 (36.6%)
          inline_cfunc_optimized_send_count:  8,270,533 (11.4%)
    non_variadic_cfunc_optimized_send_count:  8,890,390 (12.3%)
        variadic_cfunc_optimized_send_count: 10,878,718 (15.0%)
    dynamic_getivar_count:                        2,171,396
    dynamic_setivar_count:                        1,737,553
    compiled_iseq_count:                                383
    failed_iseq_count:                                   46
    compile_time:                                     808ms
    profile_time:                                       4ms
    gc_time:                                           21ms
    invalidation_time:                                  0ms
    vm_write_pc_count:                           71,973,068
    vm_write_sp_count:                           71,544,492
    vm_write_locals_count:                       71,544,492
    vm_write_stack_count:                        71,544,492
    vm_write_to_parent_iseq_local_count:          1,070,897
    vm_read_from_parent_iseq_local_count:        27,449,010
    code_region_bytes:                            2,097,152
    side_exit_count:                             26,549,652
    total_insn_count:                           908,528,764
    vm_insn_count:                              484,633,128
    zjit_insn_count:                            423,895,636
    ratio_in_zjit:                                    46.7%
    ```
    </details>

    ## Testing on `lobsters`:

    <details>

    <summary>Before patch:</summary>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (71.0% of total 28,729,305):
                                        Hash#[]: 8,490,837 (29.6%)
                                   Kernel#is_a?: 1,861,955 ( 6.5%)
                                      String#<<: 1,773,932 ( 6.2%)
                                       Hash#[]=: 1,159,328 ( 4.0%)
                                  Regexp#match?:   775,654 ( 2.7%)
                                  String#empty?:   724,503 ( 2.5%)
                                      Hash#key?:   691,233 ( 2.4%)
                             Kernel#respond_to?:   608,714 ( 2.1%)
                                  TrueClass#===:   451,557 ( 1.6%)
                                 FalseClass#===:   442,907 ( 1.5%)
                                 Array#include?:   429,408 ( 1.5%)
             ActiveSupport::OrderedOptions#_get:   377,468 ( 1.3%)
                             String#start_with?:   373,685 ( 1.3%)
                     ObjectSpace::WeakKeyMap#[]:   356,664 ( 1.2%)
                                Kernel#kind_of?:   349,451 ( 1.2%)
                                     Kernel#dup:   328,120 ( 1.1%)
                                      Class#new:   310,590 ( 1.1%)
                            Kernel#block_given?:   307,113 ( 1.1%)
                                      String#==:   290,654 ( 1.0%)
                                     Hash#fetch:   290,533 ( 1.0%)
    Top-20 not annotated C methods (71.7% of total 29,033,802):
                                        Hash#[]: 8,490,847 (29.2%)
                                   Kernel#is_a?: 2,231,950 ( 7.7%)
                                      String#<<: 1,773,932 ( 6.1%)
                                       Hash#[]=: 1,159,507 ( 4.0%)
                                  Regexp#match?:   775,654 ( 2.7%)
                                  String#empty?:   739,580 ( 2.5%)
                                      Hash#key?:   691,233 ( 2.4%)
                             Kernel#respond_to?:   608,714 ( 2.1%)
                                  TrueClass#===:   451,557 ( 1.6%)
                                 FalseClass#===:   442,907 ( 1.5%)
                                 Array#include?:   429,408 ( 1.5%)
             ActiveSupport::OrderedOptions#_get:   377,468 ( 1.3%)
                             String#start_with?:   373,685 ( 1.3%)
                     ObjectSpace::WeakKeyMap#[]:   356,664 ( 1.2%)
                                Kernel#kind_of?:   349,486 ( 1.2%)
                                     Kernel#dup:   328,127 ( 1.1%)
                            Kernel#block_given?:   327,655 ( 1.1%)
                                      Class#new:   310,590 ( 1.1%)
                                      String#==:   296,624 ( 1.0%)
                                     Hash#fetch:   290,533 ( 1.0%)
    Top-2 not optimized method types for send (100.0% of total 96,231):
      cfunc: 75,873 (78.8%)
       iseq: 20,358 (21.2%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,044,793):
           iseq: 4,034,262 (50.1%)
        bmethod: 1,757,537 (21.8%)
      optimized: 1,647,169 (20.5%)
          alias:   596,446 ( 7.4%)
           null:     8,161 ( 0.1%)
          cfunc:     1,218 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 7,507,191):
                 invokesuper: 4,343,829 (57.9%)
                 invokeblock: 1,323,655 (17.6%)
                 sendforward:   842,491 (11.2%)
                      opt_eq:   722,952 ( 9.6%)
                    opt_plus:   145,599 ( 1.9%)
                   opt_minus:    52,269 ( 0.7%)
      opt_send_without_block:    39,595 ( 0.5%)
                     opt_neq:    15,048 ( 0.2%)
                    opt_mult:    13,826 ( 0.2%)
                      opt_or:     7,452 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 45,075,567):
                    send_without_block_polymorphic: 17,072,731 (37.9%)
                                  send_no_profiles: 10,490,735 (23.3%)
      send_without_block_not_optimized_method_type:  8,044,793 (17.8%)
                         not_optimized_instruction:  7,507,191 (16.7%)
                    send_without_block_no_profiles:  1,816,853 ( 4.0%)
                    send_not_optimized_method_type:     96,231 ( 0.2%)
           send_without_block_cfunc_array_variadic:     31,156 ( 0.1%)
                          obj_to_string_not_string:     15,303 ( 0.0%)
           send_without_block_direct_too_many_args:        574 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 1,279,306):
             expandarray: 660,222 (51.6%)
            checkkeyword: 316,124 (24.7%)
        getclassvariable: 119,678 ( 9.4%)
           getblockparam:  88,485 ( 6.9%)
      invokesuperforward:  78,843 ( 6.2%)
       opt_duparray_send:  14,149 ( 1.1%)
             getconstant:   1,496 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 6,508,618):
      register_spill_on_alloc: 6,162,701 (94.7%)
      register_spill_on_ccall:   345,917 ( 5.3%)
    Top-14 side exit reasons (100.0% of total 19,988,958):
                            compile_error: 6,508,618 (32.6%)
                       guard_type_failure: 5,255,050 (26.3%)
                      guard_shape_failure: 3,698,481 (18.5%)
                      unhandled_yarv_insn: 1,279,306 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   990,585 ( 5.0%)
                          unhandled_kwarg:   801,146 ( 4.0%)
                    unknown_newarray_send:   539,110 ( 2.7%)
                               patchpoint:   496,826 ( 2.5%)
                          unhandled_splat:   242,104 ( 1.2%)
                       unhandled_hir_insn:   147,346 ( 0.7%)
               block_param_proxy_modified:    29,122 ( 0.1%)
                                interrupt:     1,072 ( 0.0%)
                   obj_to_string_fallback:       170 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 118,969,379
                         dynamic_send_count:  45,075,567 (37.9%)
                       optimized_send_count:  73,893,812 (62.1%)
                  iseq_optimized_send_count:  32,439,432 (27.3%)
          inline_cfunc_optimized_send_count:  12,725,075 (10.7%)
    non_variadic_cfunc_optimized_send_count:  24,121,279 (20.3%)
        variadic_cfunc_optimized_send_count:   4,608,026 ( 3.9%)
    dynamic_getivar_count:                      13,002,365
    dynamic_setivar_count:                      12,402,229
    compiled_iseq_count:                             4,817
    failed_iseq_count:                                 466
    compile_time:                                  8,961ms
    profile_time:                                     68ms
    gc_time:                                          41ms
    invalidation_time:                               288ms
    vm_write_pc_count:                         113,940,194
    vm_write_sp_count:                         111,595,088
    vm_write_locals_count:                     111,595,088
    vm_write_stack_count:                      111,595,088
    vm_write_to_parent_iseq_local_count:           514,997
    vm_read_from_parent_iseq_local_count:       11,288,600
    code_region_bytes:                          22,970,368
    side_exit_count:                            19,988,958
    total_insn_count:                          928,321,939
    vm_insn_count:                             297,374,855
    zjit_insn_count:                           630,947,084
    ratio_in_zjit:                                   68.0%
    ```

    </details>




    <details>

    <summary>after patch:</summary>

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (60.9% of total 19,827,919):
                                   Kernel#is_a?: 1,827,297 ( 9.2%)
                                      String#<<: 1,764,393 ( 8.9%)
                                       Hash#[]=: 1,159,637 ( 5.8%)
                                  Regexp#match?:   775,625 ( 3.9%)
                                  String#empty?:   723,469 ( 3.6%)
                                      Hash#key?:   691,214 ( 3.5%)
                             Kernel#respond_to?:   602,389 ( 3.0%)
                                  TrueClass#===:   447,671 ( 2.3%)
                                 FalseClass#===:   439,274 ( 2.2%)
                                 Array#include?:   425,491 ( 2.1%)
                                     Hash#fetch:   382,294 ( 1.9%)
                             String#start_with?:   373,684 ( 1.9%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                                Kernel#kind_of?:   340,341 ( 1.7%)
                                     Kernel#dup:   328,108 ( 1.7%)
                                      Class#new:   309,571 ( 1.6%)
                            Kernel#block_given?:   307,098 ( 1.5%)
                                      String#==:   286,539 ( 1.4%)
                                 BasicObject#!=:   284,640 ( 1.4%)
                                  String#length:   256,345 ( 1.3%)
    Top-20 not annotated C methods (62.1% of total 20,127,933):
                                   Kernel#is_a?: 2,205,849 (11.0%)
                                      String#<<: 1,764,393 ( 8.8%)
                                       Hash#[]=: 1,159,816 ( 5.8%)
                                  Regexp#match?:   775,625 ( 3.9%)
                                  String#empty?:   738,546 ( 3.7%)
                                      Hash#key?:   691,214 ( 3.4%)
                             Kernel#respond_to?:   602,389 ( 3.0%)
                                  TrueClass#===:   447,671 ( 2.2%)
                                 FalseClass#===:   439,274 ( 2.2%)
                                 Array#include?:   425,491 ( 2.1%)
                                     Hash#fetch:   382,294 ( 1.9%)
                             String#start_with?:   373,684 ( 1.9%)
                     ObjectSpace::WeakKeyMap#[]:   356,654 ( 1.8%)
                                Kernel#kind_of?:   340,375 ( 1.7%)
                                     Kernel#dup:   328,115 ( 1.6%)
                            Kernel#block_given?:   327,640 ( 1.6%)
                                      Class#new:   309,571 ( 1.5%)
                                      String#==:   292,509 ( 1.5%)
                                 BasicObject#!=:   284,824 ( 1.4%)
                                  String#length:   256,345 ( 1.3%)
    Top-2 not optimized method types for send (100.0% of total 113,430):
      cfunc: 75,863 (66.9%)
       iseq: 37,567 (33.1%)
    Top-6 not optimized method types for send_without_block (100.0% of total 8,005,732):
           iseq: 4,007,647 (50.1%)
        bmethod: 1,750,263 (21.9%)
      optimized: 1,647,088 (20.6%)
          alias:   591,356 ( 7.4%)
           null:     8,161 ( 0.1%)
          cfunc:     1,217 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 7,569,803):
                 invokesuper: 4,320,589 (57.1%)
                 invokeblock: 1,321,548 (17.5%)
                 sendforward:   841,452 (11.1%)
                      opt_eq:   811,601 (10.7%)
                    opt_plus:   142,565 ( 1.9%)
                   opt_minus:    52,268 ( 0.7%)
      opt_send_without_block:    42,982 ( 0.6%)
                     opt_neq:    15,047 ( 0.2%)
                    opt_mult:    13,824 ( 0.2%)
                      opt_or:     7,452 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 45,409,745):
                    send_without_block_polymorphic: 17,360,049 (38.2%)
                                  send_no_profiles: 10,502,130 (23.1%)
      send_without_block_not_optimized_method_type:  8,005,732 (17.6%)
                         not_optimized_instruction:  7,569,803 (16.7%)
                    send_without_block_no_profiles:  1,811,570 ( 4.0%)
                    send_not_optimized_method_type:    113,430 ( 0.2%)
           send_without_block_cfunc_array_variadic:     31,154 ( 0.1%)
                          obj_to_string_not_string:     15,303 ( 0.0%)
           send_without_block_direct_too_many_args:        574 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 1,241,241):
             expandarray: 622,183 (50.1%)
            checkkeyword: 316,113 (25.5%)
        getclassvariable: 119,668 ( 9.6%)
           getblockparam:  88,481 ( 7.1%)
      invokesuperforward:  78,842 ( 6.4%)
       opt_duparray_send:  14,149 ( 1.1%)
             getconstant:   1,496 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      19 ( 0.0%)
    Top-2 compile error reasons (100.0% of total 6,521,426):
      register_spill_on_alloc: 6,175,519 (94.7%)
      register_spill_on_ccall:   345,907 ( 5.3%)
    Top-14 side exit reasons (100.0% of total 19,869,193):
                            compile_error: 6,521,426 (32.8%)
                       guard_type_failure: 5,167,727 (26.0%)
                      guard_shape_failure: 3,708,529 (18.7%)
                      unhandled_yarv_insn: 1,241,241 ( 6.2%)
      block_param_proxy_not_iseq_or_ifunc:   990,130 ( 5.0%)
                          unhandled_kwarg:   800,104 ( 4.0%)
                    unknown_newarray_send:   539,105 ( 2.7%)
                               patchpoint:   494,790 ( 2.5%)
                          unhandled_splat:   229,423 ( 1.2%)
                       unhandled_hir_insn:   147,342 ( 0.7%)
               block_param_proxy_modified:    28,111 ( 0.1%)
                                interrupt:     1,073 ( 0.0%)
                   obj_to_string_fallback:       170 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 109,972,903
                         dynamic_send_count:  45,409,745 (41.3%)
                       optimized_send_count:  64,563,158 (58.7%)
                  iseq_optimized_send_count:  32,205,906 (29.3%)
          inline_cfunc_optimized_send_count:  12,529,333 (11.4%)
    non_variadic_cfunc_optimized_send_count:  15,123,197 (13.8%)
        variadic_cfunc_optimized_send_count:   4,704,722 ( 4.3%)
    dynamic_getivar_count:                       12,973,226
    dynamic_setivar_count:                       12,381,984
    compiled_iseq_count:                              4,816
    failed_iseq_count:                                  467
    compile_time:                                   8,116ms
    profile_time:                                      59ms
    gc_time:                                           35ms
    invalidation_time:                                289ms
    vm_write_pc_count:                          113,616,123
    vm_write_sp_count:                          111,273,109
    vm_write_locals_count:                      111,273,109
    vm_write_stack_count:                       111,273,109
    vm_write_to_parent_iseq_local_count:            516,816
    vm_read_from_parent_iseq_local_count:        11,255,225
    code_region_bytes:                           22,872,064
    side_exit_count:                             19,869,193
    total_insn_count:                           924,733,475
    vm_insn_count:                              296,183,588
    zjit_insn_count:                            628,549,887
    ratio_in_zjit:                                    68.0%
    ```
    </details>

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

commit 27ff586152321a43cc678f65e5f489a2c0f1e9af
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-10-11 03:47:46 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-16 02:49:37 +0900

    We can't grab the VM Lock in free functions

    This is due to the way MMTK frees objects, which is on another native thread.
    Due to this, there's no `ec` so we can't grab the VM Lock.

    This was causing issues in release builds of MMTK on CI like:

    ```
      /home/runner/work/ruby/ruby/build/ruby(sigsegv+0x46) [0x557905117ef6] ../src/signal.c:948
      /lib/x86_64-linux-gnu/libc.so.6(0x7f555f845330) [0x7f555f845330]
      /home/runner/work/ruby/ruby/build/ruby(rb_ec_thread_ptr+0x0) [0x5579051d59d5] ../src/vm_core.h:2087
      /home/runner/work/ruby/ruby/build/ruby(rb_ec_ractor_ptr) ../src/vm_core.h:2036
      /home/runner/work/ruby/ruby/build/ruby(rb_current_execution_context) ../src/vm_core.h:2105
      /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor_raw) ../src/vm_core.h:2104
      /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor) ../src/vm_core.h:2112
      /home/runner/work/ruby/ruby/build/ruby(rb_current_ractor) ../src/vm_core.h:2110
      /home/runner/work/ruby/ruby/build/ruby(vm_locked) ../src/vm_sync.c:15
      /home/runner/work/ruby/ruby/build/ruby(rb_vm_lock_enter_body) ../src/vm_sync.c:141
      /home/runner/work/ruby/ruby/build/ruby(rb_vm_lock_enter+0xa) [0x557905390a5a] ../src/vm_sync.h:76
      /home/runner/work/ruby/ruby/build/ruby(fiber_pool_stack_release) ../src/cont.c:777
      /home/runner/work/ruby/ruby/build/ruby(fiber_stack_release+0xe) [0x557905392075] ../src/cont.c:919
      /home/runner/work/ruby/ruby/build/ruby(cont_free) ../src/cont.c:1087
      /home/runner/work/ruby/ruby/build/ruby(fiber_free) ../src/cont.c:1180
    ```

    This would have ran into an assertion error in a debug build but we don't run debug builds of MMTK on Github's CI.

    Co-authored-by: john.hawthorn@shopify.com

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

commit 31a1a39ace8971f7ac8e1d192c4e61ae89108422
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-10-16 02:27:30 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-10-16 02:27:30 +0900

    ZJIT: Never yield to the GC while compiling

    This fixes a reliable "ZJIT saw a dead object" repro on my machine, and should
    fix the flaky ones on CI. The code for disabling the GC is the same as
    the code in newobj_of().

    See: https://github.com/ruby/ruby/actions/runs/18511676257/job/52753782036

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

commit 63a58c7943603b5774e0d55dadf6035b6235a72a
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-15 23:24:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 23:24:10 +0900

    ZJIT: Don't const-fold Array#[] on non-frozen array (#14841)

    Accidentally added in https://github.com/ruby/ruby/pull/14679

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

commit bb4526b9b1c25f2e6435802321137d0d33216b76
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-15 18:56:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 18:56:31 +0900

    ZJIT: Add trace exit counter (#14831)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit dce202d6d653dfc1b2c64822fe53066c3c558a78
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-10-10 00:23:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 18:54:50 +0900

    [rubygems/rubygems] Add checksum of gems hosted on private servers:

    - ### Problem

      Running `bundle lock --add-checksums` doesn't add the checksum of
      gems hosted on server that don't implement the compact index API.

      This result in a lockfile which is unusable in production as
      some checksums will be missing and Bundler raising an error.
      Users can work around this problem by running:

      `BUNDLE_LOCKFILE_CHECKSUMS=true bundle install --force`

      But this means redownloading and installing all gems which isn't
      great and slow on large apps.

      ### Context

      Bundler uses the Compact Index API to get the checksum of gems,
      but most private gem servers don't implement the compact index API
      (such as cloudsmith or packagecloud). This results in a soft failure
      on bundler side, and bundler leaving out blank checksum for those
      gems.

      ### Solution

      For gems that are hosted on private servers that don't send back
      the checksum of the gem, I'd like to fallback to the
      `bundle install` mechanism, which don't rely on an external API but
      instead compute the checksum of the package installed on disk.

      This patch goes through the spec that didn't return a checksum,
      and compute one if the package exists on disk.
      This solution makes the  `bundle lock --add-checksums` command
      actually usable in real world scenarios while keeping the
      `bundle lock` command fast enough.

    https://github.com/rubygems/rubygems/commit/8e9abb5472

commit 51b2c5a4cd8d1a26f25767366e95391b9de203b5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 14:11:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:50 +0900

    [rubygems/rubygems] Removed obsoleted option from bundle-exec manpages

    https://github.com/rubygems/rubygems/commit/6a3342541a

commit 6c9acb533f747682df2f681070596c7bbaccde18
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 13:43:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:49 +0900

    [rubygems/rubygems] Added example for global path with Gemfile

    https://github.com/rubygems/rubygems/commit/cd1493eec4

commit c3e6e65591e881fd8816de79d00d4be73a4edf3f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 13:39:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:49 +0900

    [rubygems/rubygems] Removed duplicated examples with bundle install

    https://github.com/rubygems/rubygems/commit/59b909fa74

commit a60b56c33d0eb40d8ad9731fe8611f401923a11a
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:22:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:49 +0900

    [rubygems/rubygems] Use `default_cache_path` helper for brevity

    https://github.com/rubygems/rubygems/commit/29a12c3d46

commit 92cbd7ec3354e652d8fcc52ad772bc4699475469
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:22:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:48 +0900

    [rubygems/rubygems] Test current clean after bundle update behavior

    https://github.com/rubygems/rubygems/commit/c43e35c3ea

commit d99a4295a8e2727023292ac78c058bdfc922c2a6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 13:22:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:48 +0900

    [rubygems/rubygems] Restore an accidentally changes of cache_spec.rb

    https://github.com/rubygems/rubygems/commit/06508374aa

commit fdc37df3d3bd8cb2c4b2fdbafa9e3a6d93d51ab4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 13:09:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:48 +0900

    [rubygems/rubygems] Removed deprecated settings methods

    https://github.com/rubygems/rubygems/commit/89bcdfc941

commit 8104c833ef47429ded66edf328fc7f9b57874cb4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 12:23:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 16:15:47 +0900

    [rubygems/rubygems] Fixed wrong option message

    https://github.com/rubygems/rubygems/commit/15be905c44

commit 1142abb1de10d8c47278d09a90d7c0cc713f59af
  Author:     Marino Bonetti <marinobonetti@gmail.com>
  AuthorDate: 2025-10-15 13:58:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 13:58:24 +0900

    [DOC] Update making_changes_to_stdlibs.md mirror Example

    CSV is no more part of the standard lib, but the documentation was not
    updated (the example link was broken for the master branch)

    Selected ERB that has the dedicated directory, like CSV.

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

    Merged-By: nobu <nobu@ruby-lang.org>

commit 26d1e6947e174b499aae9833d9a4c434fa9a5415
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-15 09:28:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 11:40:13 +0900

    [rubygems/rubygems] Replaced Bundler::SharedHelpers.major_deprecation to feature_removed! or feature_deprecated!

    https://github.com/rubygems/rubygems/commit/b1b963b34a

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit 5bda42e4dec9106fb310c30178c1283ff92ebfa2
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-15 10:45:10 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-15 11:34:50 +0900

    ZJIT: Include GC object dump when seeing dead objects

    Strictly more info than just the builtin_type from `assert_ne!`.

    Old:

        assertion `left != right` failed: ZJIT should only see live objects
          left: 0
         right: 0

    New:

        ZJIT saw a dead object. T_type=0, out-of-heap:0x0000000110d4bb40

    Also, the new `VALUE::obj_info` is more flexible for print debugging than the
    dump_info() it replaces. It now allows you to use it as part of a `format!`
    string instead of always printing to stderr for you.

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

commit 8d438678023aa453717954bb519308b5c3eec0fe
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-10-15 09:30:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-15 11:05:45 +0900

    [rubygems/rubygems] remove some memoization

    I don't think these methods are hotspots, and since gem specifications
    are sometimes serialized to yaml / marshal, I think we should remove as
    many instance variables as possible

    https://github.com/rubygems/rubygems/commit/40490d918b

commit df5d63cfa2af8902526d83775bec8192e29fcd1b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-15 07:26:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-15 07:26:08 +0900

    [DOC] Fix typo in String#partition

commit 57bb7268843831ed8cd701b0fc109d9ed856206e
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-10-15 07:16:07 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-10-15 07:16:07 +0900

    YJIT: Use `mem::take` over `drain(..).collect()`

commit ed94e543515cad8624120c09500ff38fe1b56160
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-15 05:36:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 05:36:47 +0900

    ZJIT: Centralize the allocation of scratch registers (#14815)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit de9298635dc7dd212c9d80db404f20855b1426af
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-15 05:17:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 05:17:54 +0900

    ZJIT: Profile opt_size, opt_length, opt_regexpmatch2 (#14837)

    These bring `send_without_block_no_profiles` numbers down more.

    On lobsters:
      Before:  send_without_block_no_profiles: 1,293,375
      After:   send_without_block_no_profiles: 998,724

    all stats before:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (71.1% of total 15,575,335):
                                        Hash#[]: 4,519,774 (29.0%)
                                   Kernel#is_a?: 1,030,758 ( 6.6%)
                                      String#<<:   851,929 ( 5.5%)
                                       Hash#[]=:   742,941 ( 4.8%)
                                  Regexp#match?:   399,889 ( 2.6%)
                                  String#empty?:   353,775 ( 2.3%)
                                      Hash#key?:   349,129 ( 2.2%)
                             String#start_with?:   334,961 ( 2.2%)
                             Kernel#respond_to?:   316,527 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,381 ( 1.4%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   181,792 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,340 ( 1.2%)
                                 BasicObject#!=:   175,997 ( 1.1%)
                                      Class#new:   168,078 ( 1.1%)
                                Kernel#kind_of?:   165,600 ( 1.1%)
    Top-20 not annotated C methods (71.6% of total 15,737,478):
                                        Hash#[]: 4,519,784 (28.7%)
                                   Kernel#is_a?: 1,212,649 ( 7.7%)
                                      String#<<:   851,929 ( 5.4%)
                                       Hash#[]=:   743,120 ( 4.7%)
                                  Regexp#match?:   399,889 ( 2.5%)
                                  String#empty?:   361,013 ( 2.3%)
                                      Hash#key?:   349,129 ( 2.2%)
                             String#start_with?:   334,961 ( 2.1%)
                             Kernel#respond_to?:   316,527 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,381 ( 1.3%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   191,661 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,347 ( 1.1%)
                                 BasicObject#!=:   176,181 ( 1.1%)
                                      Class#new:   168,078 ( 1.1%)
                                Kernel#kind_of?:   165,634 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,648):
           iseq: 2,271,904 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,702 (21.0%)
          alias:   310,746 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,096):
                 invokesuper: 2,373,391 (55.3%)
                 invokeblock:   811,872 (18.9%)
                 sendforward:   505,448 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,403 ( 1.7%)
                   opt_minus:    36,225 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,824,463):
                    send_without_block_polymorphic: 9,721,727 (37.6%)
                                  send_no_profiles: 5,894,760 (22.8%)
      send_without_block_not_optimized_method_type: 4,523,648 (17.5%)
                         not_optimized_instruction: 4,293,096 (16.6%)
                    send_without_block_no_profiles: 1,293,386 ( 5.0%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,482):
             expandarray: 328,490 (47.6%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,901 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  48,651 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,752,502):
      register_spill_on_alloc: 3,457,791 (92.1%)
      register_spill_on_ccall:   176,348 ( 4.7%)
            exception_handler:   118,363 ( 3.2%)
    Top-14 side exit reasons (100.0% of total 10,860,787):
                            compile_error: 3,752,502 (34.6%)
                       guard_type_failure: 2,638,903 (24.3%)
                      guard_shape_failure: 1,917,195 (17.7%)
                      unhandled_yarv_insn:   690,482 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,787 ( 4.9%)
                          unhandled_kwarg:   421,943 ( 3.9%)
                               patchpoint:   370,449 ( 3.4%)
                    unknown_newarray_send:   314,785 ( 2.9%)
                          unhandled_splat:   122,060 ( 1.1%)
                       unhandled_hir_insn:    76,396 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                   obj_to_string_fallback:       566 ( 0.0%)
                                interrupt:       504 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,945,801
                         dynamic_send_count: 25,824,463 (38.6%)
                       optimized_send_count: 41,121,338 (61.4%)
                  iseq_optimized_send_count: 18,587,368 (27.8%)
          inline_cfunc_optimized_send_count:  6,958,635 (10.4%)
    non_variadic_cfunc_optimized_send_count: 12,911,155 (19.3%)
        variadic_cfunc_optimized_send_count:  2,664,180 ( 4.0%)
    dynamic_getivar_count:                        7,365,975
    dynamic_setivar_count:                        7,245,897
    compiled_iseq_count:                              4,794
    failed_iseq_count:                                  450
    compile_time:                                     760ms
    profile_time:                                       9ms
    gc_time:                                            8ms
    invalidation_time:                                 55ms
    vm_write_pc_count:                           64,284,053
    vm_write_sp_count:                           62,940,297
    vm_write_locals_count:                       62,940,297
    vm_write_stack_count:                        62,940,297
    vm_write_to_parent_iseq_local_count:            292,446
    vm_read_from_parent_iseq_local_count:         6,470,923
    code_region_bytes:                           23,019,520
    side_exit_count:                             10,860,787
    total_insn_count:                           517,576,320
    vm_insn_count:                              163,188,910
    zjit_insn_count:                            354,387,410
    ratio_in_zjit:                                    68.5%
    ```

    all stats after:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (70.4% of total 15,740,856):
                                        Hash#[]: 4,519,792 (28.7%)
                                   Kernel#is_a?: 1,030,776 ( 6.5%)
                                      String#<<:   851,940 ( 5.4%)
                                       Hash#[]=:   742,914 ( 4.7%)
                                  Regexp#match?:   399,887 ( 2.5%)
                                  String#empty?:   353,775 ( 2.2%)
                                      Hash#key?:   349,139 ( 2.2%)
                             String#start_with?:   334,961 ( 2.1%)
                             Kernel#respond_to?:   316,529 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,381 ( 1.3%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   181,788 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,341 ( 1.1%)
                                 BasicObject#!=:   175,996 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,600 ( 1.1%)
    Top-20 not annotated C methods (70.9% of total 15,902,999):
                                        Hash#[]: 4,519,802 (28.4%)
                                   Kernel#is_a?: 1,212,667 ( 7.6%)
                                      String#<<:   851,940 ( 5.4%)
                                       Hash#[]=:   743,093 ( 4.7%)
                                  Regexp#match?:   399,887 ( 2.5%)
                                  String#empty?:   361,013 ( 2.3%)
                                      Hash#key?:   349,139 ( 2.2%)
                             String#start_with?:   334,961 ( 2.1%)
                             Kernel#respond_to?:   316,529 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,381 ( 1.3%)
                                     Hash#fetch:   204,702 ( 1.3%)
                            Kernel#block_given?:   191,657 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.1%)
                                     Kernel#dup:   179,348 ( 1.1%)
                                 BasicObject#!=:   176,180 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,634 ( 1.0%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,637):
           iseq: 2,271,900 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,695 (21.0%)
          alias:   310,746 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,128):
                 invokesuper: 2,373,401 (55.3%)
                 invokeblock:   811,890 (18.9%)
                 sendforward:   505,449 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,403 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,530,605):
                    send_without_block_polymorphic: 9,722,499 (38.1%)
                                  send_no_profiles: 5,894,763 (23.1%)
      send_without_block_not_optimized_method_type: 4,523,637 (17.7%)
                         not_optimized_instruction: 4,293,128 (16.8%)
                    send_without_block_no_profiles:   998,732 ( 3.9%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,482):
             expandarray: 328,490 (47.6%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,901 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  48,651 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,752,500):
      register_spill_on_alloc: 3,457,792 (92.1%)
      register_spill_on_ccall:   176,348 ( 4.7%)
            exception_handler:   118,360 ( 3.2%)
    Top-14 side exit reasons (100.0% of total 10,860,797):
                            compile_error: 3,752,500 (34.6%)
                       guard_type_failure: 2,638,909 (24.3%)
                      guard_shape_failure: 1,917,203 (17.7%)
                      unhandled_yarv_insn:   690,482 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,784 ( 4.9%)
                          unhandled_kwarg:   421,947 ( 3.9%)
                               patchpoint:   370,474 ( 3.4%)
                    unknown_newarray_send:   314,786 ( 2.9%)
                          unhandled_splat:   122,067 ( 1.1%)
                       unhandled_hir_insn:    76,395 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                   obj_to_string_fallback:       566 ( 0.0%)
                                interrupt:       469 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,945,326
                         dynamic_send_count: 25,530,605 (38.1%)
                       optimized_send_count: 41,414,721 (61.9%)
                  iseq_optimized_send_count: 18,587,439 (27.8%)
          inline_cfunc_optimized_send_count:  7,086,426 (10.6%)
    non_variadic_cfunc_optimized_send_count: 13,076,682 (19.5%)
        variadic_cfunc_optimized_send_count:  2,664,174 ( 4.0%)
    dynamic_getivar_count:                       7,365,985
    dynamic_setivar_count:                       7,245,954
    compiled_iseq_count:                             4,794
    failed_iseq_count:                                 450
    compile_time:                                    748ms
    profile_time:                                      9ms
    gc_time:                                           8ms
    invalidation_time:                                58ms
    vm_write_pc_count:                          64,155,801
    vm_write_sp_count:                          62,812,041
    vm_write_locals_count:                      62,812,041
    vm_write_stack_count:                       62,812,041
    vm_write_to_parent_iseq_local_count:           292,448
    vm_read_from_parent_iseq_local_count:        6,470,939
    code_region_bytes:                          23,052,288
    side_exit_count:                            10,860,797
    total_insn_count:                          517,576,915
    vm_insn_count:                             163,192,099
    zjit_insn_count:                           354,384,816
    ratio_in_zjit:                                   68.5%
    ```

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

commit d75207d0043c56034e68c306f6dfe5e7b4f09438
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-15 04:09:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 04:09:53 +0900

    ZJIT: Profile opt_ltlt and opt_aset (#14834)

    These bring `send_without_block_no_profiles` numbers down dramatically.

    On lobsters:
      Before: send_without_block_no_profiles: 3,466,375
      After:  send_without_block_no_profiles: 1,293,375

    all stats before:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (70.4% of total 14,174,061):
                                        Hash#[]: 4,519,771 (31.9%)
                                   Kernel#is_a?: 1,030,757 ( 7.3%)
                                  Regexp#match?:   399,885 ( 2.8%)
                                  String#empty?:   353,775 ( 2.5%)
                                      Hash#key?:   349,125 ( 2.5%)
                                       Hash#[]=:   344,348 ( 2.4%)
                             String#start_with?:   334,961 ( 2.4%)
                             Kernel#respond_to?:   316,527 ( 2.2%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.7%)
                                  TrueClass#===:   235,770 ( 1.7%)
                                 FalseClass#===:   231,143 ( 1.6%)
                                 Array#include?:   211,383 ( 1.5%)
                                     Hash#fetch:   204,702 ( 1.4%)
                            Kernel#block_given?:   181,793 ( 1.3%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.3%)
                                     Kernel#dup:   179,341 ( 1.3%)
                                 BasicObject#!=:   175,996 ( 1.2%)
                                      Class#new:   168,079 ( 1.2%)
                                Kernel#kind_of?:   165,600 ( 1.2%)
                                      String#==:   157,734 ( 1.1%)
    Top-20 not annotated C methods (71.1% of total 14,336,035):
                                        Hash#[]: 4,519,781 (31.5%)
                                   Kernel#is_a?: 1,212,647 ( 8.5%)
                                  Regexp#match?:   399,885 ( 2.8%)
                                  String#empty?:   361,013 ( 2.5%)
                                      Hash#key?:   349,125 ( 2.4%)
                                       Hash#[]=:   344,348 ( 2.4%)
                             String#start_with?:   334,961 ( 2.3%)
                             Kernel#respond_to?:   316,527 ( 2.2%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.7%)
                                  TrueClass#===:   235,770 ( 1.6%)
                                 FalseClass#===:   231,143 ( 1.6%)
                                 Array#include?:   211,383 ( 1.5%)
                                     Hash#fetch:   204,702 ( 1.4%)
                            Kernel#block_given?:   191,662 ( 1.3%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.3%)
                                     Kernel#dup:   179,348 ( 1.3%)
                                 BasicObject#!=:   176,180 ( 1.2%)
                                      Class#new:   168,079 ( 1.2%)
                                Kernel#kind_of?:   165,634 ( 1.2%)
                                      String#==:   163,666 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,536,895):
           iseq: 2,281,897 (50.3%)
        bmethod:   985,679 (21.7%)
      optimized:   952,914 (21.0%)
          alias:   310,745 ( 6.8%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,123):
                 invokesuper: 2,373,396 (55.3%)
                 invokeblock:   811,891 (18.9%)
                 sendforward:   505,449 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,403 ( 1.7%)
                   opt_minus:    36,227 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 27,795,022):
                    send_without_block_polymorphic: 9,505,835 (34.2%)
                                  send_no_profiles: 5,894,763 (21.2%)
      send_without_block_not_optimized_method_type: 4,536,895 (16.3%)
                         not_optimized_instruction: 4,293,123 (15.4%)
                    send_without_block_no_profiles: 3,466,407 (12.5%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,918 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,482):
             expandarray: 328,490 (47.6%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,901 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  48,651 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,752,391):
      register_spill_on_alloc: 3,457,680 (92.1%)
      register_spill_on_ccall:   176,348 ( 4.7%)
            exception_handler:   118,363 ( 3.2%)
    Top-14 side exit reasons (100.0% of total 10,852,021):
                            compile_error: 3,752,391 (34.6%)
                       guard_type_failure: 2,630,877 (24.2%)
                      guard_shape_failure: 1,917,208 (17.7%)
                      unhandled_yarv_insn:   690,482 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,784 ( 4.9%)
                          unhandled_kwarg:   421,989 ( 3.9%)
                               patchpoint:   369,799 ( 3.4%)
                    unknown_newarray_send:   314,786 ( 2.9%)
                          unhandled_splat:   122,062 ( 1.1%)
                       unhandled_hir_insn:    76,394 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                   obj_to_string_fallback:       566 ( 0.0%)
                                interrupt:       468 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,989,407
                         dynamic_send_count: 27,795,022 (41.5%)
                       optimized_send_count: 39,194,385 (58.5%)
                  iseq_optimized_send_count: 18,060,194 (27.0%)
          inline_cfunc_optimized_send_count:  6,960,130 (10.4%)
    non_variadic_cfunc_optimized_send_count: 11,523,682 (17.2%)
        variadic_cfunc_optimized_send_count:  2,650,379 ( 4.0%)
    dynamic_getivar_count:                        7,365,982
    dynamic_setivar_count:                        7,245,929
    compiled_iseq_count:                              4,795
    failed_iseq_count:                                  449
    compile_time:                                     846ms
    profile_time:                                      12ms
    gc_time:                                            9ms
    invalidation_time:                                 61ms
    vm_write_pc_count:                           64,326,442
    vm_write_sp_count:                           62,982,524
    vm_write_locals_count:                       62,982,524
    vm_write_stack_count:                        62,982,524
    vm_write_to_parent_iseq_local_count:            292,448
    vm_read_from_parent_iseq_local_count:         6,471,353
    code_region_bytes:                           22,708,224
    side_exit_count:                             10,852,021
    total_insn_count:                           517,550,288
    vm_insn_count:                              162,946,459
    zjit_insn_count:                            354,603,829
    ratio_in_zjit:                                    68.5%
    ```

    all stats after:

    ```
    ***ZJIT: Printing ZJIT statistics on exit***
    Top-20 not inlined C methods (71.1% of total 15,575,343):
                                        Hash#[]: 4,519,778 (29.0%)
                                   Kernel#is_a?: 1,030,758 ( 6.6%)
                                      String#<<:   851,931 ( 5.5%)
                                       Hash#[]=:   742,938 ( 4.8%)
                                  Regexp#match?:   399,886 ( 2.6%)
                                  String#empty?:   353,775 ( 2.3%)
                                      Hash#key?:   349,127 ( 2.2%)
                             String#start_with?:   334,961 ( 2.2%)
                             Kernel#respond_to?:   316,529 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,380 ( 1.4%)
                                     Hash#fetch:   204,701 ( 1.3%)
                            Kernel#block_given?:   181,792 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,341 ( 1.2%)
                                 BasicObject#!=:   175,997 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,600 ( 1.1%)
    Top-20 not annotated C methods (71.6% of total 15,737,486):
                                        Hash#[]: 4,519,788 (28.7%)
                                   Kernel#is_a?: 1,212,649 ( 7.7%)
                                      String#<<:   851,931 ( 5.4%)
                                       Hash#[]=:   743,117 ( 4.7%)
                                  Regexp#match?:   399,886 ( 2.5%)
                                  String#empty?:   361,013 ( 2.3%)
                                      Hash#key?:   349,127 ( 2.2%)
                             String#start_with?:   334,961 ( 2.1%)
                             Kernel#respond_to?:   316,529 ( 2.0%)
                     ObjectSpace::WeakKeyMap#[]:   238,978 ( 1.5%)
                                  TrueClass#===:   235,771 ( 1.5%)
                                 FalseClass#===:   231,144 ( 1.5%)
                                 Array#include?:   211,380 ( 1.3%)
                                     Hash#fetch:   204,701 ( 1.3%)
                            Kernel#block_given?:   191,661 ( 1.2%)
             ActiveSupport::OrderedOptions#_get:   181,272 ( 1.2%)
                                     Kernel#dup:   179,348 ( 1.1%)
                                 BasicObject#!=:   176,181 ( 1.1%)
                                      Class#new:   168,079 ( 1.1%)
                                Kernel#kind_of?:   165,634 ( 1.1%)
    Top-2 not optimized method types for send (100.0% of total 72,318):
      cfunc: 48,055 (66.4%)
       iseq: 24,263 (33.6%)
    Top-6 not optimized method types for send_without_block (100.0% of total 4,523,650):
           iseq: 2,271,911 (50.2%)
        bmethod:   985,636 (21.8%)
      optimized:   949,696 (21.0%)
          alias:   310,747 ( 6.9%)
           null:     5,106 ( 0.1%)
          cfunc:       554 ( 0.0%)
    Top-13 not optimized instructions (100.0% of total 4,293,126):
                 invokesuper: 2,373,395 (55.3%)
                 invokeblock:   811,894 (18.9%)
                 sendforward:   505,449 (11.8%)
                      opt_eq:   451,754 (10.5%)
                    opt_plus:    74,403 ( 1.7%)
                   opt_minus:    36,228 ( 0.8%)
      opt_send_without_block:    21,792 ( 0.5%)
                     opt_neq:     7,231 ( 0.2%)
                    opt_mult:     6,752 ( 0.2%)
                      opt_or:     3,753 ( 0.1%)
                      opt_lt:       348 ( 0.0%)
                      opt_ge:        91 ( 0.0%)
                      opt_gt:        36 ( 0.0%)
    Top-9 send fallback reasons (100.0% of total 25,824,512):
                    send_without_block_polymorphic: 9,721,725 (37.6%)
                                  send_no_profiles: 5,894,761 (22.8%)
      send_without_block_not_optimized_method_type: 4,523,650 (17.5%)
                         not_optimized_instruction: 4,293,126 (16.6%)
                    send_without_block_no_profiles: 1,293,404 ( 5.0%)
                    send_not_optimized_method_type:    72,318 ( 0.3%)
           send_without_block_cfunc_array_variadic:    15,134 ( 0.1%)
                          obj_to_string_not_string:     9,765 ( 0.0%)
           send_without_block_direct_too_many_args:       629 ( 0.0%)
    Top-9 unhandled YARV insns (100.0% of total 690,482):
             expandarray: 328,490 (47.6%)
            checkkeyword: 190,694 (27.6%)
        getclassvariable:  59,901 ( 8.7%)
      invokesuperforward:  49,503 ( 7.2%)
           getblockparam:  48,651 ( 7.0%)
       opt_duparray_send:  11,978 ( 1.7%)
             getconstant:     952 ( 0.1%)
              checkmatch:     290 ( 0.0%)
                    once:      23 ( 0.0%)
    Top-3 compile error reasons (100.0% of total 3,752,504):
      register_spill_on_alloc: 3,457,793 (92.1%)
      register_spill_on_ccall:   176,348 ( 4.7%)
            exception_handler:   118,363 ( 3.2%)
    Top-14 side exit reasons (100.0% of total 10,860,754):
                            compile_error: 3,752,504 (34.6%)
                       guard_type_failure: 2,638,901 (24.3%)
                      guard_shape_failure: 1,917,198 (17.7%)
                      unhandled_yarv_insn:   690,482 ( 6.4%)
      block_param_proxy_not_iseq_or_ifunc:   535,785 ( 4.9%)
                          unhandled_kwarg:   421,947 ( 3.9%)
                               patchpoint:   370,447 ( 3.4%)
                    unknown_newarray_send:   314,786 ( 2.9%)
                          unhandled_splat:   122,065 ( 1.1%)
                       unhandled_hir_insn:    76,395 ( 0.7%)
               block_param_proxy_modified:    19,193 ( 0.2%)
                   obj_to_string_fallback:       566 ( 0.0%)
                                interrupt:       463 ( 0.0%)
                   guard_type_not_failure:        22 ( 0.0%)
                                 send_count: 66,945,926
                         dynamic_send_count: 25,824,512 (38.6%)
                       optimized_send_count: 41,121,414 (61.4%)
                  iseq_optimized_send_count: 18,587,430 (27.8%)
          inline_cfunc_optimized_send_count:  6,958,641 (10.4%)
    non_variadic_cfunc_optimized_send_count: 12,911,166 (19.3%)
        variadic_cfunc_optimized_send_count:  2,664,177 ( 4.0%)
    dynamic_getivar_count:                        7,365,985
    dynamic_setivar_count:                        7,245,942
    compiled_iseq_count:                              4,794
    failed_iseq_count:                                  450
    compile_time:                                     852ms
    profile_time:                                      13ms
    gc_time:                                           11ms
    invalidation_time:                                 63ms
    vm_write_pc_count:                           64,284,194
    vm_write_sp_count:                           62,940,427
    vm_write_locals_count:                       62,940,427
    vm_write_stack_count:                        62,940,427
    vm_write_to_parent_iseq_local_count:            292,447
    vm_read_from_parent_iseq_local_count:         6,470,931
    code_region_bytes:                           23,019,520
    side_exit_count:                             10,860,754
    total_insn_count:                           517,576,267
    vm_insn_count:                              163,188,187
    zjit_insn_count:                            354,388,080
    ratio_in_zjit:                                    68.5%
    ```

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

commit 8baf170e936525bbda4838db5bbfb138cf724229
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-15 03:21:59 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-15 04:01:38 +0900

    ZJIT: `mem::take` instead of `drain` then `collect`

    Gets rid of one transient vec copy/allocation.

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

commit d1442727dd8dc6ae62d0addac2aba3bd8602430f
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-15 02:36:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 02:36:50 +0900

    ZJIT: Don't push Ruby frame for Thread#current (#14832)

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

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

commit de310176c25bfb82e972025c1ea388228bcea159
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-15 00:13:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-15 00:13:05 +0900

    ZJIT: Inline well-known C functions into HIR (#14679)

    Add the ability to create a Rust function that "open-codes" HIR
    implementations of specific well-known C functions, starting with
    `String#to_s`. It supports emitting multiple instructions into a
    temporary block, but does not support emitting *new blocks* (yet?).

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

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

commit 55e76b4cc969b0ff6ece433c13fae8084744acf4
  Author:     Jason Garber <jason@sixtwothree.org>
  AuthorDate: 2025-10-14 23:44:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 23:45:28 +0900

    [ruby/erb] Add `changelog_uri` to spec metadata
    (https://github.com/ruby/erb/pull/89)

    This project's `NEWS.md` file appears to be the closest thing to a
    changelog file that I could find. The change here links to the file in
    the released version's branch. RubyGems.org will use this metadata to
    display a link to this file on the gem's release pages.

    https://github.com/ruby/erb/commit/85a4f10332

commit cad692de63d59ef365bce96e78f1baf137919590
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-14 22:07:22 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-14 22:59:14 +0900

    Remove useless comments

    Namespace frame exists, but it is used only for Namespace#eval now.

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

commit 29adf0bb74670e06c0aa49cbd49012c74edea895
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-14 22:03:13 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-14 22:59:14 +0900

    Split gvar space between root and main namespaces

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

commit d60ee6fb7c3ce92963f52b16294c2be61549fd9f
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-14 22:02:41 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-14 22:59:14 +0900

    Remove a comment - we cannot remove this method now probably

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

commit 9743b51806a8dc6843444e42f8e838831da99bcd
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-14 21:42:55 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-14 22:59:14 +0900

    Define main.to_s even in namespaces

    It just shows "main" just like the main object without namespace.
    All main objects in namespaces will show "main" and it is impossible
    to determine a main from main objects if it returns "main".
    But it's not a problem because we don't define anything on main
    objects usually.

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

commit 7e07a8d8f662edcf112094750f6e2abed8b84803
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-14 21:30:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-14 22:59:14 +0900

    Remove a debug method that is useless now

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

commit 25a420351df113e02536e0ec98cf1671e437c772
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-13 23:26:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 21:12:56 +0900

    [rubygems/rubygems] Fix typo

    https://github.com/rubygems/rubygems/commit/e4f1772d80

commit 34ee5cbf13d42d2fc48f48cbf787571d0c6e5729
  Author:     Vincent Lin <bugtender@users.noreply.github.com>
  AuthorDate: 2025-10-14 20:05:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-14 20:05:18 +0900

    [DOC] Fix minor typos in YJIT comments (#14829)

    [DOC] Fix typos in YJIT core

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 2002aa3ec295b4323cb10a7e80f057a1e61341f1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-14 18:12:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 19:41:48 +0900

    [rubygems/rubygems] Removed legacy_check option from SpecSet#for

    https://github.com/rubygems/rubygems/commit/376e4ec8c7

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit 366e9c55f5b16c9f1dacccf5b54163e5ea42ebd2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-14 15:58:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 17:30:06 +0900

    [rubygems/rubygems] Bump up to test version for 4.0.0.dev

    https://github.com/rubygems/rubygems/commit/9d70887185

commit d0b89cab4ed7661cc0acea28ec04793f19ce3953
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-14 15:20:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 16:55:36 +0900

    [rubygems/rubygems] Added example for legacy windows platform

    https://github.com/rubygems/rubygems/commit/90130c0648

commit f142d1b598d54b71a85f5ab952a96f9af14cf434
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-14 15:18:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 16:55:36 +0900

    [rubygems/rubygems] Removed obsoleted examples for legacy windows platform

    https://github.com/rubygems/rubygems/commit/7b0da18764

commit e326e22eb83f420982dce32347929f538e764204
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-14 14:39:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 16:55:36 +0900

    [rubygems/rubygems] Removed deprecated legacy windows platform support

    https://github.com/rubygems/rubygems/commit/7d910dd94c

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit e94a2f691d67ad98be9036e76c765fcfa7d22552
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-14 12:38:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-14 12:38:52 +0900

    [Bug #21638] Mark ractor-local `$VERBOSE` and `$DEBUG`

    https://github.com/sampersand/blog/blob/master/the%20-s%20flag.md#the-segfault

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

commit da3336c52b2884640a40adfc8d3a7f6032c4c259
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-14 09:42:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-14 09:42:32 +0900

    [ruby/strscan] Fix typo (https://github.com/ruby/strscan/pull/164)

    https://github.com/ruby/strscan/commit/29ad49f89d

commit 25821f3438fda08b54c7ff1702f0c87ffe6e7217
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-10-14 01:33:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-14 07:14:57 +0900

    [DOC] Tweaks for String#rjust

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

commit 53ca9fbb4c9a307379b0647130564f2ef3ad07c7
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-10-14 01:27:50 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-14 07:14:57 +0900

    [DOC] Tweaks for String#rjust

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

commit 79b268567512cdb802488107be1dcf843f371076
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-13 23:33:17 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-14 04:21:36 +0900

    [DOC] Fix typos

    Inspired by 42ba82424d908c290a4a34ced8853f0a403b734b, I looked for other
    occurrences of "the the".

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

commit d11df4172ef203425fd7ee773b1e328b14da43c8
  Author:     Sharon Rosner <sharon@noteflakes.com>
  AuthorDate: 2025-10-13 23:48:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-13 23:48:58 +0900

    [ruby/erb] html_escape: refactor redundant if
    (https://github.com/ruby/erb/pull/88)

    https://github.com/ruby/erb/commit/c231ced3f4

commit f0a76f6295ce1ac2cbc7f3152949301afa95d42e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-13 22:06:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-13 22:06:11 +0900

    ruby_defint.m4: variable names must not contain spaces

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

commit c78895b1d61e74d62df6795fac439586135dd9c9
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-13 16:30:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-13 17:41:36 +0900

    Add "Namespace detection information" section in bug reports

    * To show environments stack when the current namespace is unexpected or
      namespace detection is broken
    * It is displayed only when RUBY_BUGREPORT_NAMESPACE_ENV=1 is specified

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

commit 226312ecd45304698f5ac74f9413057d5e351ba2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-12 16:57:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-12 16:58:37 +0900

    [ruby/erb] Version 5.1.1

    https://github.com/ruby/erb/commit/3dc0bb09bf

commit 7cc3191ea1d8cb637e65cd6c2e9229de0e627643
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-12 13:50:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-12 13:57:43 +0900

    [ruby/erb] Fix integer overflow

    Fix https://github.com/ruby/erb/pull/87

    https://github.com/ruby/erb/commit/75764f022b

commit 6be2a5104df894079d127d2cdc19b21c4f174d85
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-12 04:48:43 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-12 13:51:59 +0900

    YJIT: ZJIT: Fix rustdoc dead links

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

commit 21e81160e61d43457f01f4af5becb81d1f76474a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-12 05:37:19 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-12 13:51:59 +0900

    CI: Surface `rustdoc` warnings

    Soft fails like warnings from rustc. The `rustdoc` warnings tend to be
    dead links in the markup.

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

commit 32b98d71e6f381fb78316ed663c579886a1eaaad
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-12 04:32:26 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-12 13:51:59 +0900

    YJIT: Fix unused warning from `cargo test`

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

commit 02d8a001eed707f8cd130f5c644f5c6f4b176424
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-12 07:37:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-12 07:37:53 +0900

    [ruby/erb] Version 5.1.0

    https://github.com/ruby/erb/commit/25fdde41d6

commit fa54a9c9e58fa810ccef9eef86dd7ba8f1763f2d
  Author:     Sharon Rosner <sharon@noteflakes.com>
  AuthorDate: 2025-10-12 07:35:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-12 07:36:21 +0900

    [ruby/erb] html_escape: Avoid buffer allocation for strings with no
    escapable character
    (https://github.com/ruby/erb/pull/87)

    This change improves reduces allocations and makes `html_escape` ~35% faster in
    a benchmark with escaped strings taken from the `test_html_escape` test in
    `test/test_erb.rb`.

    - Perform buffer allocation on first instance of escapable character.
    - Instead of copying characters one at a time, copy unescaped segments using
      `memcpy`.

    https://github.com/ruby/erb/commit/aa482890fe

commit 89dc79eeba9b450d2cc921b428fd4519f5e04690
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-11 08:27:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-12 07:03:17 +0900

    Ignore thread not suspended warning messages in LSAN

    When a process with multiple threads is forked, LSAN outputs warning
    messages to stderr like:

        ==276855==Running thread 276851 was not suspended. False leaks are possible.

    We should ignore messages like this in tests.

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

commit d036dc0a794d87309f912e7585749c681c2438f5
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-11 04:06:45 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-10-12 04:08:07 +0900

    For prism parser, do not update $_ from STDIN

    Fixes [Bug #21635]

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

commit 10c0d7a839ef920ae77fbbb38d081795ecec9057
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-12 02:41:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-12 02:41:29 +0900

    ZJIT: Count unoptimized `Send` (#14801)

    * ZJIT: Count unoptimized `Send`

    This includes `Send` in `send fallback reasons` to guide future
    optimizations.

    * ZJIT: Create dedicated def_type counter for Send

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit e8f0e1423b6c6bf2a02791d28ed149eb892a27be
  Author:     Bilka <Bilka2@users.noreply.github.com>
  AuthorDate: 2025-10-08 21:18:11 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-11 15:00:21 +0900

    [DOC] Fix typo in Regexp Optimization section

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

commit e500265b099df21768c28890c77fade4b60da068
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-11 09:56:42 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-11 11:01:56 +0900

    commit-email.rb: Suppress warnings

    * assigned but unused variable
    * literal string will be frozen in the future

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

commit fa883a4de89c40d152c28ee0de83ff05b40059df
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-11 09:44:52 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-11 11:01:56 +0900

    test_commit_email.rb: Simply use sh

    `env` on macOS resets DYLD environment variables that are needed to
    run ruby configured with `--enable-load-relative`.  Use simple
    commands instead, and `/bin/sh` that is specified in POSIX is more
    portable than `/usr/bin/env`.

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

commit b868beea10096df8e54c8b1175659f491a0b03dd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-11 09:44:32 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-11 11:01:56 +0900

    commit-email.rb: Suppres git signed commit signatures

    When setting `log.showSignature=true`, `git log` and `git show`
    include messages gpg verfied the commits, in addition to the message
    specified by `--pretty`.

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

commit 07b59eee6aa120537d7d72422327cc7b855e9400
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-09 06:08:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-11 08:24:55 +0900

    Fix memory leak when load_from_binary raises

    ibf_load_code will leak memory allocated for the code if an exception is
    raised. The following script reproduces the leak:

        bin = RubyVM::InstructionSequence.of(1.method(:abs)).to_binary

        10.times do
          100_000.times do
            RubyVM::InstructionSequence.load_from_binary(bin)
          rescue ArgumentError
          end
          puts `ps -o rss= -p #{$$}`
        end

    Before:

        18004
        23380
        28756
        34260
        39892
        45396
        50772
        55892
        61012
        66132

    After:

        12536
        12920
        13304
        13688
        14072
        14456
        14840
        15352
        15608
        15864

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

commit d0d1246cd414655356e218e25a1c32666227e504
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-11 06:48:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-11 06:49:23 +0900

    sync_default_gems.rb: Minimize the number of refs

    fetched from the repository

commit 0090311db21b4c0e67a00a381156d7a8a1f6a262
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-10-11 05:39:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-11 05:39:05 +0900

    [DOC] String slices doc (#14740)

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

commit 0a6cd03b3d91f52c47242d2b45f5ac086a3c1fd8
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-10 09:09:19 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-11 03:09:34 +0900

    Add ASSERT_vm_locking_with_barrier

    Previously we just had a comment stating that the code required a
    barrier. Turns out it's not too difficult to properly assert that.

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

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

commit 2de13f4d094a92099de92b91cde8d5a7da8c38cc
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-11 02:24:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-11 02:24:17 +0900

    ZJIT: Remove an unneeded ?

    https://github.com/ruby/ruby/pull/14717

commit 50cd34c4e837466ce041adf114ea474e6627bb91
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-11 02:22:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-11 02:22:15 +0900

    ZJIT: Add Insn:: ArrayArefFixnum to accelerate Array#[] (#14717)

    * ZJIT: Add Insn:: ArrayArefFixnum to accelerate Array#[]

    * ZJIT: Use result from GuardType in ArrayArefFixnum

    * ZJIT: Unbox index for aref_fixnum

    * ZJIT: Change condition and add ArrayArefFixnum test

    * ZJIT: Fix ArrayArefFixnum display for InsnPrinter

    * ZJIT: Change insta test

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 17a5a5e2ef2b6253a68174a846972187dde6d547
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-10 10:23:46 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-11 02:18:00 +0900

    Take a full VM barrier in gc_rest

    This isn't (yet?) safe to do because it concurrently modifies GC
    structures and dfree functions are not necessarily safe to do without
    stopping all Ractors.

    If it was safe to do this we should also do it for
    gc_enter_event_continue. I do think sweeping could be done concurrently
    with the mutator and in parallel, but that requires more work first.

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

commit f8c90e45163ce65d20a37789a020b436624c450b
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-10-11 01:41:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-11 01:41:29 +0900

    [DOC] Update bundled gems list at 0ba6379acadf00ee0c4c92cb60ae37

commit 0ba6379acadf00ee0c4c92cb60ae3724acb7e3c7
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-10-11 01:39:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-11 01:39:54 +0900

    Update bundled bigdecimal version (#14809)

    * Update bigdecimal spec

    * Update bundled bigdecimal to 3.3.1

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit 4bf14758336fd51c3c45a714c944b7d69ec9bed3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-10 15:47:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 19:12:35 +0900

    [rubygems/rubygems] Make update_requires_all_flag to settings

    https://github.com/rubygems/rubygems/commit/631a55be91

commit 4a285dd91aaacc7da44ce63191f41a1a1c287828
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-10 15:32:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 16:59:35 +0900

    [rubygems/rubygems] Added extra examples for cli_help default command

    https://github.com/rubygems/rubygems/commit/b2472e7b82

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit aac6f0681536c8ca58638714c2cc8d7e35aa6a37
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-10 15:30:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 16:59:34 +0900

    [rubygems/rubygems] Make default_cli_command flag to settings

    https://github.com/rubygems/rubygems/commit/31d67ecc05

commit b38846db18c34213077a9efaa7b28683b42f12a3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-10 14:10:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 15:27:47 +0900

    [rubygems/rubygems] Make global_gem_cache flag to settings

    https://github.com/rubygems/rubygems/commit/bfe15a4712

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit 77e32902db6fc6ef34c97bb8c0bc495267e636e9
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:21:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 15:13:49 +0900

    [rubygems/rubygems] Consolidate removal of `Bundler.rubygems.all_specs`

    https://github.com/rubygems/rubygems/commit/73779331ce

commit 1399134f6a504cf647c02a00c67b6a04ad7c76a4
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:21:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 13:45:09 +0900

    [rubygems/rubygems] Consolidate removal of `Bundler::SpecSet#-` and `Bundler::SpecSet#<<`

    https://github.com/rubygems/rubygems/commit/aee50b31db

commit a5def9999c4caa19a54c143ff3be772a40d0448e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-10 13:24:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-10 13:24:27 +0900

    sync_default_gems.yml: Experiment with fetch-depth: 1

    At the moment, we're not sure which gem relies on past renames. So we
    try this, and revert it if it turns out to be necessary.

    Given that it slows down every single sync, however, I'm thinking of
    making tool/sync_default_gems.rb responsible for implementing all
    necessary renames on cherry-picks using filter-branch (or any
    modification on commits before pushing them).

commit c37d4068834e7231e8a17046aa7010b77449b6ad
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-10 13:17:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-10 13:17:16 +0900

    ubuntu.yml: Add matrix.os in the notification label

    At the moment, nothing in the notification tells you whether it was ibm
    jobs or not. `matrix.os` seems like the easiest way to include that
    information, so I added it in the label.

commit 282b0e3a8342de5fb5466f7b85ead83a9f5ac9f6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-10 11:30:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-10 13:06:28 +0900

    [rubygems/rubygems] Replaced Bundler.feature_flag.plugins? to Bundler.settings

    https://github.com/rubygems/rubygems/commit/ced8ef3a12

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit 42bbe9a075807fe578fd2680a7c64b80b7c2e24f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-08 10:04:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-10 09:35:02 +0900

    Skip TestProcess#test_rlimit_nofile on LSAN

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

commit c80ff8da25333bac6beaff7b0cffd07b023f78e9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-08 10:01:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-10 09:35:02 +0900

    Add Test::Sanitizers.lsan_enabled?

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

commit fc7fd63880dd8e22ac253330d1d07b8896fb7f39
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-08 10:01:41 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-10 09:35:02 +0900

    Rename Test::Sanitizers.enabled? to Test::Sanitizers.asan_enabled?

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

commit 04ed9c1a7c44c780305a33ad5e7871f475fc181f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-08 09:58:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-10 09:35:02 +0900

    Rename ext/-test-/asan to ext/-test-/sanitizers

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

commit 864e8fb029b10bfe2af14d679600d22e33d7ea35
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-10 07:37:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-10 08:17:58 +0900

    win32: Enable extensions explicitly

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

commit 83d0b064c88df718e13bb8d6b4182ec635f7b03b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-10 02:02:10 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-10 06:11:53 +0900

    ZJIT: Use clang-16 for bindgen on CI

    Since many of us developing ZJIT are on at least Clang 16 locally now
    due to recent macOS update, let's use Clang 16 on CI, too. There is
    some differences between https://github.com/llvm/llvm-project
    Clang and Apple Clang, even when the version number match, but I figure
    it's good to shrink the difference anyways.

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

commit b999ca0fce8116e9a218731bbbc171a849e53a86
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-10 02:25:08 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-10-10 02:25:08 +0900

    ZJIT: Fix land race

commit 117e5b68c84f48c22057f19fe60ed5468c988b76
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:47:57 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Print CCallWithFrame as CCallWithFrame, not CallCFunc

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

commit d25d993aa32cb963d9d4d9d9a8220c1fc69e1e19
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:44:02 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Annotate String#to_s as returning StringExact

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

commit 6a25a8b1e28cc5c1b28fc12717a0fade4da23a7c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:38:26 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Get stats for which C functions are not annotated

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

commit 9020341bb4847d21339f6f45dceb2e498efd002c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:23:15 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Annotate Array#join as returning StringExact

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

commit d798e3c46ffb25ec1000893d7e41ea8bc4dffed9
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:21:46 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Allow annotating CCallVariadic

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

commit fc735e257d65ba09ebc62dd698fda35bf4f0a585
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:12:46 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Allow marking CCallWithFrame elidable

    Also mark Array#reverse as elidable.

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

commit e1c998ab917ba3a319ca0fd32f0857f1dbace906
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:07:27 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Annotate Array#reverse as returning ArrayExact

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

commit 5c986c7da275df0de3107fbea28e8f1ee592444b
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 17:07:13 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Allow no properties to annotate! macro

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

commit a47048d5cfed9d51115ee91d0b30c5bbd4569abf
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 16:58:23 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Add return_type to CCallWithFrame

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

commit 3c16f321cb217e53e3e4aa9205525c4775f47a44
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-10-09 16:55:12 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-10-10 02:09:27 +0900

    ZJIT: Add default FnProperties for unknown functions

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

commit 09e5c5eed1ee9a58ffa37ecdda999a6ffaea6eb4
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-10 02:06:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-10 02:06:49 +0900

    ZJIT: Name enum for bindgen (#14802)

    Relying on having the same compiler version and behavior across
    platforms is brittle, as Kokubun points out. Instead, name the enum so
    we don't have to rely on gensym stability.

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

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

commit d7f2a1ec9a1ae569bf79f06ad44e0f76292c9b06
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-10 01:42:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-10 01:42:09 +0900

    ZJIT: Profile opt_aref (#14778)

    * ZJIT: Profile opt_aref

    * ZJIT: Add test for opt_aref

    * ZJIT: Move test and add hash opt test

    * ZJIT: Update zjit bindgen

    * ZJIT: Add inspect calls to opt_aref tests

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit f486b3905f27aefa6063b8f9da0464b08d354c79
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-10-09 22:18:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-09 22:31:51 +0900

    [ruby/prism] Bump to v

    https://github.com/ruby/prism/commit/7574837b7b

commit abad1f423ba4ee2f8b5a8fc50b8d803087a0e172
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 22:20:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 22:20:16 +0900

    [DOC] Update required baseruby version

commit 0b0947f84bf9f9a5e80be6b5189e3bd649f90dc7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 18:01:42 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 22:15:39 +0900

    missing-baseruby.bat: Accept CRuby only

    `RubyVM::InstructionSequence` is necessary to generate rbinc files.

commit aae2e0d45617b8dad66a7b3f49fdd01272caf1bc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 21:56:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 21:56:47 +0900

    [DOC] Update bundled gems list at faf86fa14bd350c77717f7d0fc64dc

commit a05a5263f3788ad452a1240d8c1c15edde9b1a25
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 16:22:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Update lockfiles with 4.0.0.dev

    https://github.com/rubygems/rubygems/commit/82d46d3b28

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

commit 787d0227127f38e7a219714d754eb8506b005e0d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 16:12:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] bin/rubocop -A

    https://github.com/rubygems/rubygems/commit/12753b3262

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

commit ccfea54d9bf8b5024b906086b94f20fef88d6693
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 15:23:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Catch error instead of deprecated message at --no-keep-file-descriptors option

    https://github.com/rubygems/rubygems/commit/8945e0872b

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

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

commit 45e6dcd919cd4a813b966998a5f8554596f349f6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 15:20:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Removed obsoleted windows platform example

    https://github.com/rubygems/rubygems/commit/edd6b1d335

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

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

commit 89a4b684d9f4d2c4f4f2a6be7d98fa0b97d3dd28
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 14:59:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Removed obsoleted example

    https://github.com/rubygems/rubygems/commit/b9960f2c6a

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

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

commit 8a213f74e3eb2ac51e33cf02e5e11eafb0cf005a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 14:51:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Removed Bundler.current_ruby.maglev*? and raise Bundler::RemovedError

    https://github.com/rubygems/rubygems/commit/0d4e77d798

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

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

commit a6faf04092ddf663153f3b5c263a3a086907812c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 14:25:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Fixed failing examples with 4.0.0.dev version

    https://github.com/rubygems/rubygems/commit/0e553c4425

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

commit afe40df42331e338411c84714ca5d21383dac3d4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 14:10:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Bump up to Bundler 4.0.0.dev that is next major version

    https://github.com/rubygems/rubygems/commit/a51334ba99

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

commit 85896219b67177e5d8aee6638104b74594ffa901
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-09 13:51:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Bump up to RubyGems 4.0.0.dev that is next major version

    https://github.com/rubygems/rubygems/commit/5b963fb7d3

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

commit f96c332f5c00cd0fee0da79b6d415785bfa8d1f8
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-09-29 09:20:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-09 20:37:27 +0900

    [rubygems/rubygems] Fix `bundle install` when the Gemfile contains "install_if" git gems:

    - Fix https://github.com/rubygems/rubygems/pull/8985
    - ### Problem

      If you have a Gemfile that contains a `install_if` git gem, it will
      be impossible to add other gems in the Gemfile and run
      `bundle install`, you'll get a "The git source [...] is not yet
      checked out".

      ### Context

      The change that modified this behaviour was in https://github.com/rubygems/rubygems/commit/abbea0cc94dd,
      and the issue is about the call to `current_dependencies`.
      This call filters out irrelevant dependencies such as the one that
      get condtionnally installed. By doing so, we skip over setting
      the source based of the lockfile for that dependency
      https://github.com/rubygems/rubygems/blob/ade324bdc8ea77b342f203cb7f3929a456d725ed/bundler/lib/bundler/definition.rb#L978

      Ultimately, because of this, the dependency source doesn't have
      any additional information such as the `revision`. Down the line,
      when we end up to converge the spec, Bundler will attempt to get the
      revision for that spec but won't be able to because the git source
      isn't configured to allow running git operations.

      ### Solution

      Filter out the irrelevant only spec only after we have set its
      source.

    https://github.com/rubygems/rubygems/commit/d2af439671

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

commit 960c28a4f84e8982fba61702a2ac7a89643ac4f6
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-10-09 18:26:51 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-10-09 18:26:51 +0900

    FreeBSD returns EAI_FAIL instead of EAI_FAMILY in getaddrinfo and getnameinfo specs

commit a29c90c3b0bdc355b8b6795488db3aeba2996575
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 17:06:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 17:06:20 +0900

    sync_default_gems.yml: Include the gem name in the job name

commit baa1aad28bf82a4dfbb3b0a05aca3cb5cfd0027f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 16:55:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 16:55:09 +0900

    sync_default_gems.yml: Link the failed diff

commit 5d3bd790348e4228aaf63376fb09b0021851128f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 16:46:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 16:46:45 +0900

    sync_default_gems.yml: Notify which gem failed

commit 8cd50a14702fb865b4ae9a0a3568efa34f34672e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 16:35:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 16:36:07 +0900

    sync_default_gems.yml: Notify an extra channel

    which git.ruby-lang.org used to also notify.

commit a9adc2fcb4ea5b5292e3594cda120a1f3a94b143
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 16:08:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 16:08:18 +0900

    sync_default_gems.yml: Fix the notification condition

commit 2223ca1fd6958b278cf535a1e4c6d5b794c06595
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-09 15:55:14 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 15:55:14 +0900

    compilers.yml: Run only specified tests for --with-gmp (#14798)

    It's weird that --with-gmp runs test-tool just because it needs to run
    test/ruby/test_bignum.rb and spec/ruby/core/integer/*_spec.rb.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit a59c5860a6bdaedc5886ee2627dc5c98d5924af5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 14:30:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 14:30:43 +0900

    test_commit_email.rb: Split out as binary for --with-gmp

    https://github.com/ruby/ruby/actions/runs/18365998053/job/52318906076

commit f01254398931256e62d513a098faa29b1f56f636
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:59:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:59:03 +0900

    test_commit_email.rb: Stop testing the un-encoded name

    Hoping to work around failures on --with-gmp CI:
    https://github.com/ruby/ruby/actions/runs/18365603616/job/52317792903

commit 127318f4cb08dfbf7f515bdec2d1f0192b03296f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:40:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:40:40 +0900

    test_commit_email.rb: Test the encoding of commit messages

commit cd8a4406c1ad6c1fed82acad6899b02478246100
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:32:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:32:56 +0900

    test_commit_email.rb: Skip the sendmail test on Windows

    We use only ubuntu-latest on post_push.yml anyway.

commit a21cde942c94640f2cc46c2a50d71ec758d70d31
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:31:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:31:05 +0900

    test_commit_email.rb: Fix the timezone for commit-email.rb

    as well

commit f8c841dbd532ea2d834c343467c10bbd4d782abb
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:26:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:26:54 +0900

    test_commit_email.rb: Use a fixed timezone

commit 53d1731b68e2b18abd095f8e74dc6de9ab7276e1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:20:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:22:35 +0900

    commit-email.rb: Remove legacy SVN headers

commit 08b34bf9098bc00778752388b895ab898f8db5cb
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 13:16:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:16:03 +0900

    test_commit_email.rb: Remove an unused local variable

commit 438ea7d69ebc4c485b606e0a8d6cf20a446f2596
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 12:53:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 13:09:49 +0900

    test_commit_email.rb: Test the content of an email

commit 6922e969f1441ded72d1595397ae50687944827d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-09 13:07:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 13:07:11 +0900

    Allow test-tool to use bundled gems in child processes (#14794)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 5de042f4afb040d9760abcd8f0cf45521409b537
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 12:19:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 12:19:00 +0900

    Revert "[DOC] Fix rendering of $\ in globals.md"

    This reverts commit 598a8f8914a4f7dd4694963c6de3714f49b3b64e, as RDoc
    6.15 handles backslash in backquotes properly, and the previous commit
    rather rendered an extra backslash.

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

commit 317c9412a003f24d2b4beb07e55b6e07a9f248cc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 11:40:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 11:40:35 +0900

    Update bundled gems list as of 2025-10-09

    bigdecimal fails test-bundled-gems-spec.

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

commit 44215c1ad904fecb118a172dd1ffc490de0f44b3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 08:44:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 10:46:23 +0900

    [DOC] Mark `Namespace` debug methods to be "nodoc"

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

commit 3d2ee31fdc1917fd754884fc12f71ed2f348d73e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-09 09:18:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-09 10:46:23 +0900

    Check core doc coverage always

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

commit 77b62a8292b14e1c1640376a413b9e7e4080b32d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 09:03:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 09:03:17 +0900

    Revert "commit-email.rb: Use base64 instead of nkf"

    This reverts commit dbb5972b340f24d9ff4f3996f57439d5a6b3454e.

    It didn't work, sorry.

commit dbb5972b340f24d9ff4f3996f57439d5a6b3454e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 08:30:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 08:32:10 +0900

    commit-email.rb: Use base64 instead of nkf

    which makes it more obvious what it's doing.

commit afb21f34987e47932b92530f48a19992863b29b1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 08:17:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 08:23:53 +0900

    test_commit_email.rb: Stop printing LoadError

    on a require attempt

commit 0508786b73d572c5c2f56492823132c439ef2200
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-09 08:16:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 08:16:02 +0900

    Migrate a test for commit-email.rb (#14784)

    from https://github.com/ruby/git.ruby-lang.org/commit/2c4628e489ed00732a5bcde3373d784307c54280.

    Also drop ostruct from dependencies. We could remove nkf if we use
    base64, but it's also a bundled gem, so it doesn't really help.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit fc08d36a1521e5236cc10ef6bad9cb15693bac9d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 07:04:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 07:05:37 +0900

    post_push.yml: Rename commit-mail.rb back

    to commit-email.rb.

    I didn't realize I dropped a letter when I moved it. It wasn't really
    intended, so I change it back.

commit a48592a754299f3b764ac7311fa5feff8e7ada0a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 06:53:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 06:53:12 +0900

    Let test-tool accept $(TESTS) like test-all does

commit 86d97331da420069b257c5af8f32ead3a2474cc1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-07 06:17:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-09 06:27:31 +0900

    Add RUBY_FREE_AT_EXIT to MANDATORY_ENVS in test_process.rb

    We need to keep RUBY_FREE_AT_EXIT in these tests.

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

commit 5b8f47fa64735fb5ee8c0e82eae3a9704ab4efbd
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 06:06:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 06:06:01 +0900

    post_push.yml: Specify the full path of sendmail

commit 7ec03e12b4fa1f8a16e35131688bb7fd17e7d097
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-09 06:03:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 06:03:11 +0900

    post_push.yml: Migrate commit-email.rb to post_push (#14779)

    from post-receive.sh as of https://github.com/ruby/git.ruby-lang.org/commit/8d24ac65b5aeb44f7a3212410d6911be621223d4.

commit 501dd27eb249fa3b1546893ecaec033f1ce69fd4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-09 05:10:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-09 05:11:54 +0900

    post_push.yml: Write the SSH key more securely

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit 77b019f656b33d8f8af359522d421d66cf4625ee
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-09 01:22:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 01:22:56 +0900

    ZJIT: Use type alias for num-profile and call-threshold's types (#14777)

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 40d704a2bf3324f4472c4436447af391f0987681
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-09 01:13:21 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-09 01:13:21 +0900

    Bump RDoc (#14747)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 50593d51997eab4aa5a148c5e131d10ea535f955
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-10-09 00:59:52 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-10-09 00:59:52 +0900

    Update to ruby/spec@3d7e563

commit 5e7e6040938a37d1c320d69d2266f1b39e1b9f2a
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-10-09 00:59:51 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-10-09 00:59:51 +0900

    Update to ruby/mspec@6a7b509

commit a0c6efdea46584b816afc47cbbe938668ed14476
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 23:28:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 23:53:00 +0900

    [ruby/zlib] Load the same loaded zlib

    Zlib is used by also rubygems, the built extension cannot be loaded
    after the default gem is loaded.

    https://github.com/ruby/zlib/commit/02a29dc7ea

commit a8b34d9a9beb5c8edb59acf045968795c12d87b8
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-02 00:48:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 23:27:16 +0900

    [ruby/openssl] ssl: allow SSLContext#set_params to be used from non-main Ractors

    Freeze OpenSSL::SSL::SSLContext::DEFAULT_PARAMS so that it becomes
    Ractor-shareable.

    Also, prepare a new OpenSSL::X509::Store in Ractor-local storage, if
    called from a non-main Ractor. OpenSSL::X509::Store currently is not a
    shareable object.

    https://github.com/ruby/openssl/commit/3d5271327c

commit e4f12808318d743642e6c0a579b35df2eededd3c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-20 22:28:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 22:59:39 +0900

    [ruby/openssl] ssl: refactor tmp_dh_callback handling

    tmp_dh_callback no longer has a default value. It also no longer has to
    share code with tmp_ecdh_callback, which has been removed in v3.0.0.

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

commit ea79fe225cc28960595b53cf20e698ec5bbddb0e
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-20 20:26:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 22:59:39 +0900

    [ruby/openssl] ssl: use SSL_CTX_set_dh_auto() by default

    Rely on OpenSSL's builtin DH parameters for TLS 1.2 and earlier instead
    of providing a default SSLContext#tmp_dh_callback proc.
    SSL_CTX_set_dh_auto() has been available since OpenSSL 1.1.0.

    The parameters can still be overridden by specifying
    SSLContext#tmp_dh_callback or #tmp_dh, as confirmed by existing tests.

    SSLContext#tmp_dh_callback depends on a deprecated OpenSSL feature. We
    also prefer not to hard-code parameters, which is a maintenance burden.
    This change also improves Ractor compatibility by removing the
    unshareable proc.

    https://github.com/ruby/openssl/commit/9cfec9bf5e

commit 8dfe5403415fc1bd0c6ce56e5edd8749d081e33d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-20 19:24:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 22:59:38 +0900

    [ruby/openssl] ssl: fix extconf.rb check for SSL_CTX_set0_tmp_dh_pkey()

    Check for the function we actually use. Both SSL_set0_tmp_dh_pkey() and
    SSL_CTX_set0_tmp_dh_pkey() were added in OpenSSL 3.0.

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

commit 810b3a405bf7431c852778580d44c1421edfcad9
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-01 18:39:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 22:59:38 +0900

    [ruby/openssl] provider: load "default" provider in test_openssl_legacy_provider

    Update the test case to explicitly load both the "default" and the
    "legacy" providers.

    Currently, the "default" provider as a side effect by the
    OpenSSL::PKey::DH.new call in lib/openssl/ssl.rb. It will be cleaned up
    in a following patch.

    https://github.com/ruby/openssl/commit/013db02fb2

commit b8f8d646a64f883652b44780c4174a85f98d1c82
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-10-08 21:54:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-08 22:04:57 +0900

    [ruby/prism] For these special cases, there exists no optional argument type. Since a endless method is started with `=`, there was ambiguity here. We have to simply reject these in all cases.

    This adds a new error for the following reason:
    * `def foo arg = nil` is interpreted as a normal method call with optional `arg` without matching `end`
    * `def foo *arg = nil; end` is interpreted as a endless method call that has body `nil` with extraneous `end`

    `def foo *arg = nil` is somewhere inbetween and I don't know how to otherwise indicate the error.
    Now the second case above also shows the newly added error message.

    Fixes [Bug #21623]

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

commit 7c9dd0ecff61153b96473c6c51d5582e809da489
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 18:19:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 18:19:56 +0900

    [Bug #21629] Initialize `struct RArray`

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

commit 2bb6fe3854e2a4854bb89bfce4eaaea9d848fd1b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 18:19:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 18:19:47 +0900

    [Bug #21629] Initialize `struct RString`

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

commit 43dbb9a93f4de3f1170d7d18641c30e81cc08365
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 10:21:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 18:17:19 +0900

    [Bug #21629] Enable `nonstring` attribute on clang 21

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

commit 9ae3e20953edc20d8e21075e13c877ae42f47fa2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 17:01:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 17:01:51 +0900

    post_push.yml: Suppress progress of requests

    which also disables some error messages, but --fail-with-body -w
    '%{http_code}' seems to show everything we need anyway.

commit 949717efb1de61dadfce7a0dde73ca72c417ac10
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 16:59:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 16:59:31 +0900

    post_push.yml: Fix an invalid YAML syntax

commit a0e7341bfd424010f31876e42ca2b553404b35fc
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 16:53:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 16:54:54 +0900

    post_push.yml: Migrate fetch_changesets

    from post-receive.sh

commit 000165a51cb845c5af4b735a8ca42994708551af
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 13:07:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 13:07:57 +0900

    post_push.yml: Simplify the overall workflow

commit f063427c45ecf35f98efc27fe92a49b035016063
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 12:56:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 12:56:16 +0900

    post_push.yml: Skip .github/actions/setup/directories

    These scripts are made to be fairly portable, so it shouldn't need all
    these steps to make them work.

commit 76b10394856d62e56ab2f31f4bbfded320ce813d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-08 12:54:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-08 12:54:37 +0900

    Carve out a workflow for post-push hooks (#14768)

    from check_misc.yml.

    These steps originally came from git.ruby-lang.org/ruby.git's
    post-receive hooks. Because it handles a different set of events from
    what the original check_misc.yml does, it probably allows them to be
    simpler if they are separated.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit d4a762e005503347ffdafb274ecbf02879763149
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 12:33:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 12:33:02 +0900

    check_misc.yml: Support non-master branches

    See also: https://github.com/ruby/git.ruby-lang.org/commit/0b0eae90f67e9889b133b86b1f2e4526a2882161

commit 68e03213271f44ae63ad4a4e1ebe3ed59d589a9c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-07 10:22:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-08 09:35:34 +0900

    Always load -test-/asan in tests

    -test-/asan should always be available.

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

commit 337189f4ba4ac665fec6fb9a5ffc9a510697c38a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-08 09:14:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 09:14:23 +0900

    check_misc.yml: Add a missing argument to update-ruby.sh

    https://github.com/ruby/ruby/pull/14765

commit b05d64aa501ecfe321443ed7e5f246dd88abf01e
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-08 09:12:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-08 09:12:01 +0900

    Resurrect sync from GitHub to git.ruby-lang.org (#14765)

commit 5a9aa9013ffa3e1457d8aca606313f8ee4742399
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-01 06:35:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 09:11:37 +0900

    Use master commit of irb

    This version of IRB has higher test timeout on CI, which is needed
    for ZJIT to pass IRB integration tests.

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

commit 6c7aa118cc36f1d36ef38b54c887eda2e4d6cf2b
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-13 02:55:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 09:11:37 +0900

    ZJIT: Test against bundled gems on CI

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

commit 42ba82424d908c290a4a34ced8853f0a403b734b
  Author:     Ricardo Trindade <ricardo.trindade743@gmail.com>
  AuthorDate: 2025-10-08 04:40:36 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-08 07:54:34 +0900

    Fix typo in comment in array#zip docs

    Duplicate the was found in the documentation

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

commit 9a75c05b5ab7eaee9e3db14b5651034bb414aa5e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-08 04:38:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 07:13:46 +0900

    ZJIT: Ignore results with no samples

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

commit c1cb034356a96cc378106de91142784de08c6fc6
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-08 04:38:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 07:13:46 +0900

    ZJIT: Refactor comments and rewrite frames handling

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

commit 4d0f53520c09eab591ba69fb3fa16d7f55103bc8
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 23:56:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 07:13:46 +0900

    ZJIT: Change name format of zjit_exit_locations dump file

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

commit b78270a6c6181e02acf281bcbb0c6a5429a9537a
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 23:44:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-08 07:13:46 +0900

    ZJIT: Remove unnecessary .dup calls in exit_locations

    * Using https://www.rubyexplorer.xyz/?c=frames+%3D+results%5B%3Aframes%5D.dup shows dup is called regardless

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

commit 446257c84b92c63d84282eadca32b56ed1281a3d
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-10-07 23:28:37 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-08 05:00:16 +0900

    Add debug #define to call sched_yield before each pthread_mutex_lock

    This is useful for debugging mutex issues as it increases contention for locks.
    It is off by default.

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

commit 7089a4e2d83a3cb1bc394c4ce3638cbc777f4cb9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 00:50:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 00:50:00 +0900

    Fix not to skip necessary commits

commit c951e1c4e058c3525498d227039d32c98e11062c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 00:09:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 00:09:44 +0900

    Return false to skip emptied commits

commit 40d1603e549b12808ed7f94064014658b91660e0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-08 00:03:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-08 00:03:48 +0900

    Skip emptied commits

commit 78dbc6c0b793805bb0d10e7d6d2fe8a5c0069a64
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-07 23:51:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-07 23:51:00 +0900

    Shorten timeout for csv

    It usually ends in a few seconds, and less than 10 seconds even on
    Windows.  But recently it stalls 10 minutes and times out.

commit a6938eb46a10021642213b98d648544129a7dbb3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-07 22:36:32 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-07 22:36:32 +0900

    Skip files that are "deleted by us"

    "Deleted" means that file is only for the upstream but not for ruby.

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

commit 25c893af6d9a788f0c049b320418ec006f4aa869
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-07 21:04:08 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-07 22:18:29 +0900

    Add a control frame column "n:xxxx" as namespace id in crash reports

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

commit 9a0e857c3590412b5de6d029966d0aa67344c450
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-07 18:36:08 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-07 22:18:29 +0900

    Stop displaying current namespace when it crashed

    To avoid crashes during displaying crash reports.

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

commit c693b0e4771915127c8e097ae2d84dea53c2b339
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-10-07 18:01:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 18:07:22 +0900

    [ruby/error_highlight] Improve English comments and messages

    https://github.com/ruby/error_highlight/commit/5f976265ef

commit e5b2e5227b4ebf0a0635126e0fb335f8f607bc96
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-10-07 17:30:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 17:33:08 +0900

    [ruby/json] Release 2.15.1

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

commit 2548c476a379cebe85166f20e264ae68c2a68dc4
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-07 12:42:03 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-07 14:19:26 +0900

    Add namespace debug methods and assertions

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

commit 52c6b32f806b1b812069235fde48e68167eaa0d1
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-07 12:38:27 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-07 14:19:26 +0900

    Initialize the main namespace after loading builtin libraries

    * For having the common set of loaded libraries between root and main namespaces
    * To have the consistent $LOADED_FEATURES in the main namespace

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

commit 0f059792997dc9cb3007064d1e21eebe5872edc0
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-10-06 11:35:13 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-10-07 14:19:26 +0900

    ns_id of main is already initialized in Namespace.new

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

commit 4cdf5f493362df1261ecc87f9644f2b0c2f2a409
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-07 12:44:13 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-07 13:21:24 +0900

    Verify that RubyGems is enabled by default

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

commit 03f714de626cad7c8c45a60bffad2ce66228b524
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-06 23:50:01 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-07 12:33:50 +0900

    Remove warning when generating $(arch)-fake.rb

    This happens if BASERUBY is Ruby 3.4.

        $ rm -f *-fake.rb && make test-precheck RUBYOPT=-w >/dev/null
        build/arm64-darwin24-fake.rb:28: warning: ::Ruby is reserved for Ruby 3.5

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

commit c6a119c751305ce75133dad3d14be69f859cd6bb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-07 10:30:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-07 10:30:16 +0900

    Update rubyspec as of CVE-2025-61594

commit 6a58c4fbb653ad05e2da2f85d79797f6d5c87251
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-10-07 09:48:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 10:12:43 +0900

    [ruby/uri] Bump up to v1.0.4

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

commit eccc54b4fa437f896cde1bdee7f855b6e541cb82
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-26 01:21:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 10:12:42 +0900

    [ruby/uri] Add authority accessor

    https://github.com/ruby/uri/commit/6c6449e15f

commit d0395bd0ead968e194e268f8c5f9db59d8831c02
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 11:51:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 10:12:42 +0900

    [ruby/uri] Clear user info totally at setting any of authority info

    Fix CVE-2025-61594.
    https://hackerone.com/reports/3221142

    https://github.com/ruby/uri/commit/5cec76b9e8

commit e3d4cb5de52332b475635949f48b5cc5620a9a5e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 09:41:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-07 09:41:55 +0900

    Sync Prism (#14751)

    to https://github.com/ruby/prism/commit/c89ca2af12ba20b4fd2c5ff43ebe25da1d81d8db

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit b1e672bb4840d50b90031046d92f787d060a358a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 08:18:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 08:18:30 +0900

    sync_default_gems.yml: Remove client_payload references

    Now that repository_dispatch is gone, we don't need them either.

commit 8c0fc05832111055c5f01014c0b831fc9f97e4f3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 08:17:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 08:17:46 +0900

    sync_default_gems.yml: Remove unused repository_dispatch

    We actually use the workflow-level dispatch from API as well

commit dad064a0ea823222f729367b501e7d6e5ad0e505
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 07:01:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 07:03:17 +0900

    [ruby/erb] Version 5.0.3

    https://github.com/ruby/erb/commit/ddfc1ba57e

commit 2a484ce3c313fa4cf050e599220d9a870c901f29
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-06 06:29:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-07 06:10:10 +0900

    [ruby/prism] Free current_block_exits for the program

    We need to free the current_block_exits in parse_program when we're done
    with it to prevent memory leaks. This fixes the following memory leak detected
    when running Ruby using `RUBY_FREE_AT_EXIT=1 ruby -nc -e "break"`:

        Direct leak of 32 byte(s) in 1 object(s) allocated from:
            #0 0x5bd3c5bc66c8 in realloc (miniruby+0x616c8) (BuildId: https://github.com/ruby/prism/commit/ba6a96e5a060)
            #1 0x5bd3c5f91fd9 in pm_node_list_grow prism/templates/src/node.c.erb:35:40
            #2 0x5bd3c5f91e9d in pm_node_list_append prism/templates/src/node.c.erb:48:9
            #3 0x5bd3c6001fa0 in parse_block_exit prism/prism.c:15788:17
            #4 0x5bd3c5fee155 in parse_expression_prefix prism/prism.c:19221:50
            #5 0x5bd3c5fe9970 in parse_expression prism/prism.c:22235:23
            #6 0x5bd3c5fe0586 in parse_statements prism/prism.c:13976:27
            #7 0x5bd3c5fd6792 in parse_program prism/prism.c:22508:40

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

commit bc8732b6c81c761a6ed693effb0f497f39f43ea3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 06:08:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 06:08:04 +0900

    sync_default_gems.yml: Attempt push only if needed

commit 6c1b5887149e731906e003af6fc8bfc1bc112c28
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 06:03:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 06:03:48 +0900

    sync_default_gems.yml: Move the git config to the script

commit 7f6e9a0b1beec5d6d50d50a15b95e2360e2ce493
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 06:01:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 06:01:25 +0900

    sync_default_gems.yml: Avoid fetching tags/branches

commit 57ea1c0be116db77834b9bd9850f3ee81d495247
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 05:53:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:53:44 +0900

    sync_default_gems.yml: Detect past renames

commit 03030bf112db6346b4055adb098bc93b95b6321a
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-06 23:37:29 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-07 05:49:38 +0900

    Remove unused variable warning

        $ make test/ruby/test_thread.rb RUBYOPT=-w >/dev/null
        test/ruby/test_thread.rb:1595: warning: assigned but unused variable - bug21127

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

commit 43eb41ec949229eaa1b8da0b1ac7beebe247186b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 05:46:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:46:00 +0900

    sync_default_gems.yml: Fix a wrong job name

commit c9b726028cfe9f18bf5d4e5bb4c64d9a0b481448
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 05:43:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:43:29 +0900

    sync_default_gems.yml: Remove an unmatched paren

commit 3ba5cfd1cb77b61b2b1ad1d03271bc1fe7b71969
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 05:25:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-07 05:25:00 +0900

    Add a workflow to sync default gems (#14749)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 4a7ca3d836a2bbbd2e3c6cbaf3002ffa5a2b0078
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 04:52:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:13:19 +0900

    ZJIT: Reformat and add highlighting to ZJIT documentation

    * Add bash above code blocks that can use highlighting
    * Move Useful dev commands below documentation, testing, and building
    * Rewrite testing documentation to better explain what each form of test
      does

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

commit a3d1752c20c477816b835fcec24e0d6ad0d773b5
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 04:44:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:13:19 +0900

    ZJIT: Escape $HOME and format multiline configure command

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

commit 11f625f9f7ce61a3ddac98e99776350439b9d4fe
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 04:42:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:13:19 +0900

    ZJIT: Format the term-definition table

    * Using extra whitespace should not harm rendering it on github.com or docs.ruby-lang.org, but will
      make it easier for those in a text editor to read it.

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

commit 5f4877ab9e2892e294d3f07b13c8e4ec1bb4d70a
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 03:12:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:13:19 +0900

    ZJIT: Simplify cargo install commands for nextest and insta

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

commit 3ec49b9870d8c26d552bd6ae7aa6a0f452daec25
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-07 03:11:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 05:13:19 +0900

    ZJIT: Make documentation command target ZJIT specifically

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

commit cc982346417ad7cc4dcfeaae5e832d78571820db
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 03:21:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 03:21:58 +0900

    tool/merger.rb: Fetch a diff in the patch format

    It expects "Subject:", so it needs to be a patch file.

commit 56b3b916af6952e75602b9b63d5a2efa0e578b1f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-07 02:53:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-07 02:53:29 +0900

    tool/merger.rb: Fetch diff from GitHub instead of cgit

    Our cgit server has been shut down.

commit 7333a2710e502be1c70374d4bb5b0247a4a5a5e6
  Author:     Hoa Nguyen <nvh0412@gmail.com>
  AuthorDate: 2025-10-07 01:01:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-07 01:01:12 +0900

    ZJIT: reduce string allocation in the Counter::name() (#14743)

    The Counter::name() method creates a new String on every call, each call allocates memory and copies the string. Using %'static str would reduce memory pressure. The change is safe as no breaking changes to the API

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit f3020d7be389d411506d1d24f985ddac4c9a5a76
  Author:     Hoa Nguyen <nvh0412@gmail.com>
  AuthorDate: 2025-10-07 00:59:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-07 00:59:22 +0900

    ZJIT: strengthen test_reset_stats (#14738)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 3d6d6760c85ea9680179ce3e6529cc6682f312eb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-06 19:00:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-06 19:10:44 +0900

    [ruby/pp] Bump up to 0.6.3

    https://github.com/ruby/pp/commit/c1992ce07d

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

commit 443b17a58724a806c4b772ed62ee7b5e6a5002ef
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-10-01 19:53:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-06 18:13:27 +0900

    test-bundled-gems property fails if timed out on Windows

    Use spawn with array to make SIGINT working effectively on Windows

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

commit 33808e0f7ccff30fd1d0d9565f0c15690d6e55c7
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-10-06 16:59:35 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-10-06 17:02:44 +0900

    [ruby/openssl] Bump version number to 4.0.0.pre

    https://github.com/ruby/openssl/commit/64f4aae6bd

commit 224c17876ca5e9ae9aed9d9a219c74e22e79be11
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-10-06 16:16:57 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-10-06 16:56:55 +0900

    [ruby/openssl] Ruby/OpenSSL 3.3.1

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

commit 7863389ad0e31bee853ba5c7399637edbead31a1
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-10-05 19:38:47 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-10-06 16:55:14 +0900

    [ruby/openssl] ssl: remove OpenSSL::X509::V_FLAG_CRL_CHECK_ALL from the default store

    With OpenSSL 3.6.0, it causes nearly every certificate verification to
    fail with the message "certificate verify failed (unable to get
    certificate CRL)" because the CRLs are typically unavailable in the
    default store used by OpenSSL::SSL::SSLContext#set_params.

    OpenSSL::X509::V_FLAG_CRL_CHECK_ALL is a flag that extends the CRL
    checking to all certificates in the chain. In OpenSSL < 3.6.0, the flag
    alone has no effect, and OpenSSL::X509::V_FLAG_CRL_CHECK must also be
    set to enable CRL checking.

    In OpenSSL 3.6.0, OpenSSL::X509::V_FLAG_CRL_CHECK_ALL now implies
    OpenSSL::X509::V_FLAG_CRL_CHECK. This is inconsistent with the man page
    and may be fixed in a future OpenSSL 3.6.x release, but this flag is not
    needed and should not be set by default.

    Fixes https://github.com/ruby/openssl/issues/949

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

commit e6188c45e1114be3be4955971464f1b39d567d71
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-06 14:17:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-06 14:22:03 +0900

    [ruby/date] `Date._parse` does not accept `nil`

    https://github.com/ruby/date/commit/545066ca28

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

commit f13e68e252ee96ee01e3b6eb11ad4109d5e033b1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 21:18:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-06 13:16:56 +0900

    [ruby/date] Do not repeat conversions to string

    https://github.com/ruby/date/commit/159e1ebb7f
    https://github.com/ruby/date/commit/4f7b6c9b42

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

commit b22fd7c40d875b136693d53bcd36e756feef2c6d
  Author:     tompng <tomoyapenguin@gmail.com>
  AuthorDate: 2025-10-05 02:26:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-06 11:45:43 +0900

    [ruby/json] Fix sliced string escaping

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

commit 704677257ecb01c7ee10aa0dfc55ca1d4fc4636d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-06 00:15:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-06 01:00:47 +0900

    Also add LSAN_OPTIONS=handle_segv=0 in assert_segv

    Just like ASAN, when running with LSAN, we also want to set handle_segv=0
    in assert_segv to make sure that the tests pass.

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

commit ab49e8a0f0d61ef38b4006d2e8f3976550ba23f8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 20:12:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 20:12:35 +0900

    [ruby/pp] [Feature #21389] Update rubyspec

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

commit 674e2ca9452121a3e3066e04ecd51ba8d863cf2b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 12:59:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 19:58:31 +0900

    [ruby/pp] Reduce substring creations

    https://github.com/ruby/pp/commit/fee2d39099

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

commit 1dd11fe8c8a238ea88f5abbdb673de313a82ede2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 10:25:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:14:00 +0900

    [ruby/pp] Suppress warnings in test on Ruby 2.7

    TODO: Revert when dropping Ruby 2.7 support.

    https://github.com/ruby/pp/commit/feb417e152

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

commit 252c253b7537d6f5ac9ab612afcf6d8938cbb529
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 10:22:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:59 +0900

    [ruby/pp] Simplify recursive state handling

    https://github.com/ruby/pp/commit/0e89466269

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

commit deb9f45229bc32f3c607b001d46092f69f86664f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 10:03:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:57 +0900

    [ruby/pp] Exclude out-of-scope test instead of omitting

    https://github.com/ruby/pp/commit/40b713d70f

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

commit ec1655d52019e66725efe94b5bc88b3a98af284e
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-10-05 01:06:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:56 +0900

    [ruby/pp] Update pp for Set to use new inspect format
    (https://github.com/ruby/pp/pull/43)

    Ruby 3.5 will use `Set[1, 2, 3]`. This updates pp to use the same format.

    https://github.com/ruby/pp/commit/507eebf711

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

commit 4ddbee33097c431e83d4dbc6a130349067bf7c0a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 00:52:32 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:55 +0900

    [ruby/pp] Refine `Set#pretty_print` check

    https://github.com/ruby/pp/commit/6615b62d7b

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

commit 4b50d0b41cc0a4c808d0d128e7068e4b3b9331bf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-05 00:06:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:53 +0900

    [ruby/pp] Do not override the methods in set.rb

    These methods are defined for built-in `Set` class on Ruby 3.5.

    https://github.com/ruby/pp/commit/352081dbbf

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

commit 340777078c88478bae1e39b10bd6409491fd584b
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-10-04 22:30:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:52 +0900

    [ruby/pp] Fix ::Data warning on Ruby 2.7

    * It was showing on require 'pp':
      lib/pp.rb:525: warning: constant ::Data is deprecated
    * Fixes https://github.com/ruby/pp/issues/51

    https://github.com/ruby/pp/commit/4fd8f4e0bb

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

commit 80a18e8f422e30204e7386fc9a1fc37667b20b2a
  Author:     Jason Frey <fryguy9@gmail.com>
  AuthorDate: 2025-08-14 02:37:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-05 15:13:50 +0900

    [ruby/pp] Support new instance_variables_to_inspect method from Ruby core

    This supports the new `instance_variables_to_inspect` method from Ruby
    core that was added in ruby/ruby#13555.

    If `instance_variables_to_inspect` is defined, then
    `pretty_print_instance_variables` will use it.

    Additionally, this commit introduces tests for both
    `pretty_print_instance_variables` and `instance_variables_to_inspect`.

    https://github.com/ruby/pp/commit/9cea466c95

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

commit 8cc5e5c11d26b2af9acff9898c2b226e2e781e36
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-03 20:36:42 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-05 15:07:09 +0900

    Win32: Fix fallback parsing of CSI SGR sequences

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

commit 1858233ffaee482a73a91b796f02ebb7ae1306b9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-04 08:51:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-05 07:21:13 +0900

    Free the native thread of the main thread on FREE_AT_EXIT

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

commit d29b1435cd4fca619f5a8a0868650bd68b82811a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 16:18:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 16:19:18 +0900

    Stop cloning the repository into another path

    which seems to prevent it from fetching notes when the path is not the
    actual repository but a shallow-cloned repository.

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

commit 9c9f3bb6e2f5844867bf2a9c2784be1d92d1b566
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:56:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:56:35 +0900

    Configure git user for notes-github-pr

commit 4da1fa3ff48c2e8db50ef9e7980c22f5f80ab876
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:51:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:52:17 +0900

    Fix the GIT_DIR given to notes-github-pr

commit 6fd50e38691a76ee0aef90129f89c73aeae06f34
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:47:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:48:12 +0900

    Run notes-github-pr while .git is still available

    https://github.com/ruby/ruby/actions/runs/18240911019/job/51942567201

commit 72f8e3e71b1e1e816f4f7fbaf7e4fafdeca87881
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:38:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:39:23 +0900

    Make sure GITHUB_TOKEN is set

commit 4ea84bf58b3690c3e7e61cbf30ad6252863ce133
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:29:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:30:34 +0900

    Fix a missing reference to config/email.yml

commit e40d3c5bd8d8c1a26a75717aa7fbe39622a715bb
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 15:16:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 15:16:52 +0900

    Fix the path of notes-github-pr

commit ecc5ebc69a76f3a267a90b9af3d6754b3cc21265
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-04 15:09:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-04 15:09:43 +0900

    Migrate notes-github-pr to ruby/ruby (https://github.com/ruby/git.ruby-lang.org/pull/14725)

    from ruby/git.ruby-lang.org as of:
    https://github.com/ruby/git.ruby-lang.org/commit/f3ed893e946ec66cac77af5859ac879c5983d3a3

commit 5941659e9b860a0a4bc4c64ef990f05a9dcebbe6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 14:54:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 14:54:28 +0900

    Change the webhook URL used for alerts

    That secret appears use a different configuration from the intended one.

commit 63de26c4ec9514d54545fe55d41f060c0acacf20
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 14:50:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 14:50:50 +0900

    Run notify-slack-commits before `make up` too

commit 54c716dad6a7ce8a350176397469792b32a0f27a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 14:49:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 14:49:46 +0900

    Fetch more commits to fix notify-slack-commits

commit ba48e6c9ca91653cf791e85cc1b245876cda18a4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 14:41:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 14:41:32 +0900

    Propagate secrets to environment variables

commit 269ada2421818c0216064271fd22a497bf266552
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 14:38:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 14:38:05 +0900

    Migrate notify-slack-commits.rb to ruby/ruby

    from ruby/git.ruby-lang.org as of:
    https://github.com/ruby/git.ruby-lang.org/commit/b0dfa734297cc9aea33f24a1e29f8853cc5761e9

commit e8f879e9f5d53aea7cd29ef064e25930323cb857
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-04 09:33:21 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-04 10:33:31 +0900

    Use LSAN_OPTIONS instead of ASAN_OPTIONS in mkmf

    Newer versions of clang's LSAN uses LSAN_OPTIONS environment variable
    instead of ASAN_OPTIONS.

commit 77331b99c606d187b6df32261bc99493484f36ac
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-04 07:36:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-04 07:36:19 +0900

    ZJIT: Count CCallWithFrame as optimized_send_count (#14722)

commit 8eead759c1b2a93c66d80089ad9acf166f37d507
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-04 07:15:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-04 07:15:06 +0900

    ZJIT: Relax the limit of cfunc args by 1

    Follow-up on https://github.com/ruby/ruby/pull/14661

    Unlike SendWithoutBlockDirect, `args` has every argument given to the C
    call. So there's no `+ 1` for this HIR.

commit 8337de95bc6f89c20cf16ac98aaef8e86c9a4992
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-04 07:12:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-04 07:12:19 +0900

    ZJIT: Add HIR for calling Cfunc with frame (#14661)

    * ZJIT: Add HIR for CCallWithFrame

    * ZJIT: Update stats to count not inlined cfunc calls

    * ZJIT: Stops optimizing SendWithoutBlock when TracePoint is activated

    * ZJIT: Fallback to SendWithoutBlock when CCallWithFrame has too many args

    * ZJIT: Rename cfun -> cfunc

commit ff198ad904652ddea3af0a976867ae2c2b6cf5b8
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-10-04 01:25:20 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-04 03:15:56 +0900

    Add assertion to rb_gc_impl_writebarrier

    We should only be executing WBs when GC is not running. We ran into this
    issue when debugging 3cd2407045a67838cf2ab949e5164676b6870958.

commit bd8e566b328b3308d638883a28f1a54f218e4fd7
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-04 02:56:16 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-04 02:56:16 +0900

    ZJIT: Make sure zjit-test-update works in asm tests (#14708)

commit 8eaa9eb3eb287063f8e004ecf4d12225214cda42
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-03 09:47:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-04 02:30:14 +0900

    Clear fields on heap RStruct before allocating

    Now that we no longer explicitly set the first three elements, we need
    to ensure the object is in a state safe for GC before we call
    struct_heap_alloc, which may GC.

commit 14cdd88970a2f1ec07bf97a5de50a47f4f6e7e4f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-03 07:39:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-03 22:20:53 +0900

    [Bug #21620] Fix strict aliasing in rb_managed_id_table_lookup

    We cannot pass &ccs into rb_managed_id_table_lookup because rb_managed_id_table_lookup
    takes in a VALUE*, so it violates strict aliasing in C. This causes segfaults
    when compiling with LTO enabled.

commit 52287c68abd696ee7808fa231873e917d74dae7b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-03 21:27:03 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-03 21:27:03 +0900

    Set Ruby parser if the given ruby accepts `--parser`

    Now envutil.rb is a part of test-unit-ruby-core gem, which still
    supports old versions, 2.3 or later.

commit 5b2ec0eb1be663ff6d3bc12660d48b1e25375353
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-03 17:59:54 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-03 17:59:54 +0900

    Save `ns` that may be clobbered by `setjmp`/`longjmp`

commit c93b521fac3e92935b64ba8d802c87048a5769d6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-10-03 11:46:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-03 13:29:52 +0900

    Windows: Fallback to powershell if fiddle is not loadable

commit b92db45b98f1deaa43efbbef11d5b6f213eeb65e
  Author:     MSP-Greg <Greg.mpls@gmail.com>
  AuthorDate: 2025-10-03 08:38:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-03 11:08:45 +0900

    [DOC] hash.c - fix 3 class doc typos

commit ff8975dfc8732b3530dc04a22cd703abb5da7c37
  Author:     nopeless <38830903+nopeless@users.noreply.github.com>
  AuthorDate: 2025-10-03 10:24:44 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-10-03 10:59:36 +0900

    docs: Fix formatting in windows.md for icon file inclusion

commit c36c80bc25b5cbf8d09e5ed79c5261ad4933d653
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-10-01 02:30:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-03 06:09:38 +0900

    Always free the main thread in RUBY_FREE_AT_EXIT

commit 1f0da240495f0626085fc32161d3f7bcabb409d5
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-03 04:15:19 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-03 05:24:00 +0900

    ASAN poison parent_object after marking

    Previously we were tracking down a bug where this was used after being
    valid.

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

commit 3cd2407045a67838cf2ab949e5164676b6870958
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-03 04:12:26 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-03 05:24:00 +0900

    Don't call gc_mark from IO::buffer compact

    Previously on our mark_and_move we were calling rb_gc_mark, which isn't
    safe to call at compaction time.

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

commit 7a4f886cc5e7ebf6fece90491cf4a437576d26a6
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-10-01 18:11:40 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-10-03 03:24:50 +0900

    CI: ubuntu.yml Remove workarounds for ppc64le/s390x

    The 2 issues that we applied the workarounds for were fixed now.

commit 272e5b7cc582bb0cc81f29957a17011e1e7367bd
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-10-03 02:19:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-10-03 03:06:35 +0900

    [DOC] Remove now inaccurate comment about blocking

    Originally ractor_next_id used a VM_LOCK, but now it is an atomic and
    won't block.

commit 72055043fc2fb289b0dc3af01c276f06adfc4934
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-10-03 02:04:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-03 02:04:43 +0900

    macos.yml: macOS 13 hosted runner image is closing down

    https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/

commit 20fc91df395b834ecaee0bdb29df8da224fdf89a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-10-02 12:53:48 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-03 01:09:40 +0900

    YJIT: Prevent making a branch from a dead block to a live block

    I'm seeing some memory corruption in the wild on blocks in
    `IseqPayload::dead_blocks`. While I unfortunately can't recreate the
    issue, (For all I know, it could be some external code corrupting YJIT's
    memory.) establishing a link between dead blocks and live blocks seems
    fishy enough that we ought to prevent it. When it did happen, it might've
    had bad interacts with Code GC and the optimization to immediately
    free empty blocks.

commit 2ed5a02fcca4da4acf4c8c3d7ee4c392fc18d948
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-03 01:03:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-03 01:03:25 +0900

    ZJIT: Add `NoSingletonClass` patch point (#14680)

    * ZJIT: Add NoSingletonClass patch point

    This patch point makes sure that when the object has a singleton class,
    the JIT code is invalidated. As of now, this is only needed for C call
    optimization.

    In YJIT, the singleton class guard only applies to Array, Hash, and String.
    But in ZJIT, we may optimize C calls from gems (e.g. `sqlite3`). So the
    patch point needs to be applied to a broader range of classes.

    * ZJIT: Only generate NoSingletonClass guard when the type can have singleton class

    * ZJIT: Update or forget NoSingletonClass patch point when needed

commit 81f253577a77a934bfa02a33d80ca2a7c6af9a04
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-03 00:57:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-03 00:57:43 +0900

    ZJIT: Enable sample rate for side exit tracing (#14696)

commit 7ae67e8f6ad6e7fd0677b28a7a10961f79d55495
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-10-02 19:19:51 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-10-02 20:00:41 +0900

    load.c: Fix dest and src of MEMMOVE

    When multiple files with the same name are required, the features_index
    hash stores the indexes in `$LOADED_FEATURES` array into a darray.
    The dest and src arguments for `MEMMOVE` were wrongly reversed when
    inserting a new index in the darray.

    [Bug #21568]

commit 67869b2e62e8adbfca6696c30ff56de654d72b77
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-22 19:02:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-10-02 12:46:46 +0900

    [ruby/json] Release 2.15.0

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

commit deba4d32332e41be674ec2d16f48c27cce1efe66
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-10-02 07:47:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-02 07:47:51 +0900

    Tweaks for String#replace

commit fb3b895f3f3c7bd1921c2db98e88a11dfcf60feb
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-10-02 07:33:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-02 07:33:47 +0900

    [DOC] Tweaks for String#reverse!

commit 1ef62d3fe7e2d0ef3db6a008afdd5f2ba68cdbd1
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-02 06:02:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-02 06:02:48 +0900

    ZJIT: Allow higher profile num (#14698)

    When we investigate guard failure issues, we sometimes need to use
    profile num around 100k (e.g. `lobsters` in ruby-bench).

    This change is to allow that.

commit 77aaa6ab0a475b8a57b1de4aa1f1210e4f85a803
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-10-02 03:25:26 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-10-02 04:22:51 +0900

    Interpolation with only string literals must not be frozen

    Basically a redo of https://github.com/ruby/ruby/commit/a1403fb7cbd1fe0df97c932be9814c86081783dc
    but respecting the frozen string literal magic comment

    Fixes [Bug #21187]

commit 3361aa5c7df35b1d1daea578fefec3addf29c9a6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-30 23:16:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-10-01 17:00:02 +0900

    win32: Setup prerelease version of Visual Studio

commit df90a645d41d831431bff97ca53c8b61585c40c8
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 13:20:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 13:20:26 +0900

    ZJIT: Use Marshal.dump to handle large writes

    `File.binwrite` with a big string can exceed the `INT_MAX` limit of write(2)
    and fail with an exception.

commit 56f777cedf1b9acc2fe74bda3d5dde351ba31951
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-01 12:50:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 12:50:08 +0900

    ZJIT: Add more *_send_count stats (#14689)

commit 3eda2493ef00a684a1876309b1c1f95455e967fb
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-10-01 00:35:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-01 09:49:12 +0900

    [ruby/ipaddr] Remove warning by asserting its presence

            $ rake test >/dev/null
            /tmp/test/test_ipaddr.rb:202: warning: IPAddr#ipv4_compat is obsolete

    https://github.com/ruby/ipaddr/commit/31d62407c2

commit 17252958c9ce094c583616257452cfb1695dc7ef
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-30 08:12:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-10-01 09:37:42 +0900

    [ruby/prism] Add a "LAST" enum field to all flags enums

    This allows us to use the "last" of the enums in order to make masks,
    etc.  This particular commit uses the call flag's last enum field as an
    offset so that we can define "private" flags but not accidentally
    clobber any newly added call node flags.

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

commit 8cefb70e210348f509648df943eebe61ef708c3d
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-10-01 06:39:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 06:39:06 +0900

    ZJIT: Re-apply attr_writer inlining (#14678)

    This re-applies https://github.com/ruby/ruby/pull/14629 / 40bb47665d3ff57e0f2eb5a9fd9e0109617015c9 by reverting https://github.com/ruby/ruby/pull/14673 /  d4393772b89dab4f33c118a284d92dc80cd63c39.

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit df2d1d5ad386c51ad9750282917ecacf2b343598
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 05:51:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 05:51:56 +0900

    ZJIT: Decouple stats and side exit tracing (#14688)

commit e90729aa6c34d00743e2de9095293d3189587333
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-10-01 04:20:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 04:20:55 +0900

    ZJIT: Rust code refactors (#14687)

commit a0a4068e1be52d01533496237ced56fe2e8f743c
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 01:53:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-01 03:50:45 +0900

    ZJIT: Use optimized exit_locations implementation

commit 55d363bd8dc8a5eddb63fee19af90edc98529a64
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 01:44:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-01 03:50:45 +0900

    ZJIT: Use binwrite in zjit.rb

commit 0a4bfb6499041535bebe7a6f5f27cc083716427e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 01:43:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-01 03:50:45 +0900

    ZJIT: Add correction rb_zjit_exit_locations_dict

commit 0f3d3c78530260ef1b44f7b7808a3e0e009d54f0
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 01:42:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-10-01 03:50:45 +0900

    ZJIT: Add extra info to rb_zjit_add_frame

commit 14fce2746acc4ff5963d8c296af8b952746e1241
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-30 10:23:10 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-10-01 03:08:49 +0900

    CI: Fail the dump crash log step for visual reminder

    I forgot that this step existed and thought crash reporting wasn't
    working when they were simply moved to a different step. Failing these
    should give a nice visual hint.

commit 83f1082e638e6f9161c4ddd0acad7a658ce4648b
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-01 02:50:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 02:50:33 +0900

    ZJIT: Fix "malformed format string" on stats (#14681)

commit 4ae5d69d1fca828ec1a50fab0126d88fc0a3f361
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-10-01 02:10:21 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-10-01 02:28:06 +0900

    [DOC] Tweaks for String#reverse

commit 8ce886b2d8bef0d0bc0edf8c1cd2c1348c1cbfef
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-10-01 01:02:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 01:02:27 +0900

    [DOC] Tweaks for String#partition

commit 2f1c30cd50e464880e44da670d3ad8ebe00fc899
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-10-01 00:55:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 00:55:33 +0900

    ZJIT: Add --zjit-trace-exits (#14640)

    Add side exit tracing functionality for ZJIT

commit d016595387069677c6b992dffe9322f67dc9bc73
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-10-01 00:15:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-10-01 00:15:06 +0900

    ZJIT: Unify fallback counters for send-ish insns (#14676)

commit d8c8623f50af8f5324e1679ff95b1a2071c0c61e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-30 07:33:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-30 22:47:29 +0900

    Set context_stack on main thread

    We allocate the stack of the main thread using malloc, but we never set
    malloc_stack to true and context_stack. If we fork, the main thread may
    no longer be the main thread anymore so it reports memory being leaked
    in RUBY_FREE_AT_EXIT.

    This commit allows the main thread to free its own VM stack at shutdown.

commit 37d65e9252a4c3096325c63a876a289e03a7417c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-09-30 18:27:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-30 20:59:41 +0900

    [ruby/openssl] pkey/dh: refactor tests

     - Generate smaller parameters in test_new_generate. Generating 2048-bit
       parameters is slow and sometimes takes a few minutes on GitHub-hosted
       CI runners. Also test the DH.generate alias, not just DH.new.
     - Simplify test_new_break to just check exceptions raised in the block
       because it is redundant.
     - Remove unnecessary OpenSSL::PKey::DH#public_key calls.
     - Update bare "assert" with more appropriate methods.

    https://github.com/ruby/openssl/commit/8bc7442310

commit ad35a4be82f9356045036875759874bfac6c483b
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-30 02:26:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-30 20:59:28 +0900

    [ruby/openssl] pkey: disallow {DH,DSA,EC,RSA}.new without arguments with OpenSSL 3.0

    Raise ArgumentError if this is attempted when the extension is compiled
    with OpenSSL 3.0 or later. The form will be fully removed when we drop
    support for OpenSSL 1.1.1.

    When OpenSSL::PKey::{DH,DSA,EC,RSA}.new is called without any arguments,
    it sets up an empty corresponding low-level struct and wraps it in an
    EVP_PKEY. This is useful when the user later fills the missing fields
    using low-level setter methods such as OpenSSL::PKey::RSA#set_key.

    Such setter methods are not compatible with OpenSSL 3.0 or later, where
    EVP_PKEY is immutable once created. This means that the ability to
    create an empty instance is useless.

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

commit 986d9177dd63aaecbbb6e3a02fe20370cbd21bc5
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-25 15:50:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-30 20:59:27 +0900

    [ruby/openssl] pkey: define and use OSSL_HAVE_IMMUTABLE_PKEY macro

    Introduce a useful macro indicating that the low-level struct wrapped
    in an EVP_PKEY cannot be modified.

    Currently, the macro is defined for OpenSSL 3.0 or later only. LibreSSL
    and AWS-LC can follow suit in the future.

    https://github.com/ruby/openssl/commit/032ed63096

commit 00fcef53785a36a8f787808bace09de42bd5f5d8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-30 16:23:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-30 17:45:35 +0900

    Update bundled_gems

commit d4393772b89dab4f33c118a284d92dc80cd63c39
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-30 17:03:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-30 17:03:49 +0900

    ZJIT: Revert SetIvar specialization (#14673)

    CI passed on SetIvar but broke some larger Ruby tests. Needs further investigation and testing.

    * Revert "ZJIT: Fix rebase issue with tests"

    This reverts commit 37248c51233d827ca56471661175c56e31c3b14f.

    * Revert "ZJIT: Inline attr_accessor/attr_writer to SetIvar (#14629)"

    This reverts commit 40bb47665d3ff57e0f2eb5a9fd9e0109617015c9.

commit a35973366ac0a02c388440f3d2b76b3146a9fb8f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-29 15:19:32 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-30 10:23:46 +0900

    lastrev.bat: Extract from windows.yml workflow

commit ed69b9ed12f374d2dd7b9185d83075c56d916173
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-29 15:06:36 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-30 10:23:46 +0900

    ifchange: Allow input from stdin

commit 46830474bdbdd32a62183e4c21e7eaeffd834168
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2022-09-16 22:10:53 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-30 10:23:46 +0900

    ifchange: Allow options with an argument without quoting

    A batch file splits the command line with equal signs (`=`) not only
    spaces.

commit 37248c51233d827ca56471661175c56e31c3b14f
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-30 06:09:58 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-09-30 06:09:58 +0900

    ZJIT: Fix rebase issue with tests

commit 40bb47665d3ff57e0f2eb5a9fd9e0109617015c9
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-30 06:08:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-30 06:08:44 +0900

    ZJIT: Inline attr_accessor/attr_writer to SetIvar (#14629)

commit 0e60426fe79b311738ce5107c829c0b3563485a5
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-30 06:08:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-30 06:08:09 +0900

    ZJIT: Count dynamic instance variable lookups (#14615)

commit 1083c2c063e388003eeded1c2364f749bcd91b1a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-30 02:48:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-30 02:48:44 +0900

    ZJIT: Add stats for cfuncs that are not optimized (#14638)

    * ZJIT: Add stats for cfuncs that are not optimized

    * ZJIT: Add IncrCounterPtr HIR instead

    From `lobsters`

    ```
    Top-20 Unoptimized C functions (73.0% of total 15,276,688):
                                   Kernel#is_a?: 2,052,363 (13.4%)
                                  Class#current: 1,892,623 (12.4%)
                                    String#to_s:   975,973 ( 6.4%)
                                      Hash#key?:   677,623 ( 4.4%)
                                  String#empty?:   636,468 ( 4.2%)
                                  TrueClass#===:   457,232 ( 3.0%)
                                       Hash#[]=:   455,908 ( 3.0%)
                                 FalseClass#===:   448,798 ( 2.9%)
             ActiveSupport::OrderedOptions#_get:   377,468 ( 2.5%)
                                Kernel#kind_of?:   339,551 ( 2.2%)
                                     Kernel#dup:   329,371 ( 2.2%)
                                      String#==:   324,286 ( 2.1%)
                                String#include?:   297,528 ( 1.9%)
                                        Hash#[]:   294,561 ( 1.9%)
                                 Array#include?:   287,145 ( 1.9%)
                            Kernel#block_given?:   283,633 ( 1.9%)
                                 BasicObject#!=:   278,874 ( 1.8%)
                                    Hash#delete:   250,951 ( 1.6%)
                                   Set#include?:   246,447 ( 1.6%)
                                   NilClass#===:   242,776 ( 1.6%)
    ```

    From `liquid-render`

    ```
    Top-20 Unoptimized C functions (99.8% of total 5,195,549):
                              Hash#key?: 2,459,048 (47.3%)
                            String#to_s: 1,119,758 (21.6%)
                           Set#include?:   799,469 (15.4%)
                           Kernel#is_a?:   214,223 ( 4.1%)
                             Integer#<<:   171,073 ( 3.3%)
                              Integer#/:   127,622 ( 2.5%)
              CGI::EscapeExt#escapeHTML:    56,971 ( 1.1%)
                             Regexp#===:    50,008 ( 1.0%)
                          String#empty?:    43,990 ( 0.8%)
                             String#===:    36,838 ( 0.7%)
                              String#==:    21,309 ( 0.4%)
                          Time#strftime:    21,251 ( 0.4%)
                           String#strip:    15,271 ( 0.3%)
                            String#scan:    13,753 ( 0.3%)
                              String#+@:    12,603 ( 0.2%)
                         Array#include?:     8,059 ( 0.2%)
                               String#+:     5,295 ( 0.1%)
                             String#dup:     4,606 ( 0.1%)
                              String#-@:     3,213 ( 0.1%)
                         Class#generate:     3,011 ( 0.1%)
    ```

commit 7a1873857eff3125c8124416f2fb3e0b13f3f238
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-27 04:48:41 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-30 02:04:55 +0900

    ZJIT: Remove RefCell from IseqCall

    No point taking the panic risks with RefCell when most fields in it are
    already in a Cell. Put `iseq` in a Cell and we no longer need the
    wrapping. Saves memory, too.

commit baec95c85aa7e1ae80180eaf392277e6ecf1a1f3
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-30 00:55:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-30 00:55:19 +0900

    ZJIT: Incorporate parameter loads into HIR (#14659)

commit 6a66254d0c2d96269afd12ad17498ddac2911cf5
  Author:     yui-knk <spiketeika@gmail.com>
  AuthorDate: 2025-09-29 10:18:42 +0900
  Commit:     yui-knk <spiketeika@gmail.com>
  CommitDate: 2025-09-29 11:46:43 +0900

    [DOC] Mark `Namespace` debug methods to be "nodoc"

    These methods are debug methods and no RDoc is provided.
    Mark these methods as "nodoc" to fix "Miscellaneous checks"
    CI job.

    Failed CI job: https://github.com/ruby/ruby/actions/runs/18081591948/job/51445635741

commit 14c234ae7345c8c325f0d360548c0c08d2838a4a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-28 03:59:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-29 08:58:00 +0900

    [DOC] Tweaks for String#prepend

commit 9d9390a33c2b9f4836bc7dfe6de1b497663f8b45
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-28 21:32:57 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Add methods for debugging only when RUBY_DEBUG

commit 6e9a3412793a93e437aaed536f9e47a2f4ab9d80
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-28 17:40:44 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    zeroing on the table to suppress unintentional call of classext_foreach

commit 88d7ef4c2d3b0009cd38c1cc8d9382a237ae84a4
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-28 17:39:06 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    calling free() here causes free for un-malloced memory

commit ccbf0662f826c38231e1c14b64695130e09dc582
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 16:46:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    No need to set namespace to the frame start evaluating main

    * rb_vm_current_namespace() returns main_namespace if it's ready,
      root_namespace otherwise on the top of main_stack.

commit 88b5287d29b381126a4a5566005033acb269d874
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 16:33:27 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    re-implement free/memsize for rb_namespace_t correctly

commit 9361af6ee7019958ea5d011d9e4428bf71f5e080
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 16:09:11 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Update dependency after rebase

commit 4644d14990df61b1fcc22cd9016a9f877ea29d32
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 14:44:35 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Fix the missed vm_ns during rebase to follow the change b227a942b205c89fdb5adc85acdf029b9b83faf1

commit f58f7f25a38a452ac7b288dab2e463e2d3076db5
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 14:17:14 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Fix bug of uninitialized variable, missed EoCFP, return values

commit 81f3591b17bbcbc6081d9f80e2855fd109ec3830
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-09-20 14:15:42 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Unify all block_handler getter to check namespace consistently

commit 58030884d80cb6f24f887c5914ceb572e996df4f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-13 07:04:31 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    YJIT: respect the code in master branch

    * Originally, k0kubun added a change to respect namespace in gen_block_given
      https://github.com/ruby/ruby/pull/13454/commits/d129669b1729b9570da7958394ea594031e79f59
    * Just after the change, XrXr proposes a change on master and he says it can fix the problem
      around block_given?, and it has been merged into the master
      https://github.com/ruby/ruby/pull/14208
    * tagomoris respect the commit on master then will see if it works

commit f9ea85dd41f66f50447e55123e826726574cb418
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-12 11:36:04 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    delete unused code

commit 140bf4d8a035f669b24541ff71144d086588f7b5
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-12 11:34:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    localize rb_vm_t and minimize times of GET_VM() calls

commit 2622d792969ab53275b84b6df6094902c6309c80
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-12 10:09:28 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    fix the wrong patch: 6cea12a4de44e0c072e33eca51b57965068b474a

commit bff625d2a673ea73c720cac50a9d596ab02432a8
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-12 10:08:20 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    add VM_ENV_NAMESPACED_P to unify/simplify/correct when SPECVAL has a namespace

commit 228d2c39f05fff9c056a02647a764e164cbd729f
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-11 16:17:15 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Stop using C23 spec: initialization with an empty struct

commit f3f70323bb2d66b823f81c286463f91dbfe853fe
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-11 16:14:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Skip loading gem_prelude in wasm environment

commit 53a1ff71e7dd898408b68c5c5c4429d0c93ba25f
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-11 15:50:28 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Add and fix dependencies

commit 32f58628e900894b48b9e8630c250dedbbb1c126
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-08-10 18:45:44 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Update Namespace#eval to use control frames instead of namespace_push/pop

    With this change, the argument code of Namespace#eval cannot refer local
    variables around the calling line, but it should not be able to refer
    these values. The code is evaluated in the receiver namespace, independently
    from the local context.

commit 20c73b17232cc5bd0f8a3c13507d56b5f11ab2ed
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-07-27 11:04:15 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Skip CFUNC frames in the current namespace detection

    * The current namespace should be based on the Ruby-level location (file, line no in .rb)
      and we can get it by LEP(ep) basically (VM_ENV_FLAG_LOCAL flag is set)
    * But the control frame with VM_FRAME_MAGIC_CFUNC is also a LOCAL frame because
      it's a visible Ruby-level frame without block handlers
    * So, for the namespace detection, LEP(ep) is not enough and we need to skip CFUNC
      frames to fetch the caller of such frames

commit a5df24fe010d3631b324a6aadcb2db5b32c270e5
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-07-27 11:02:52 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Define a debug method Kernel#dump_classext only when RUBY_DEBUG is set

commit bb21b619f01926fa99f6cca5ec8ac89389207d10
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-29 09:44:31 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Detect the correct loading namespace from control frames

    * checking all control frames (instead of filtering by VM_FRAME_RUBYFRAME_P)
      because VM_FRAME_FLAG_NS_REQUIRE is set on non-rubyframe
    * skip frames of CFUNC in the root namespace for Kernel#require (etc) to avoid
      detecting the root namespace of those frames wrongly

commit 48523daef68a9ad2361bb2ee281c90e940330ed2
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-29 09:42:22 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Follow the usual naming rule for singleton methods

commit c755f35f0ef755274ba409e3c6e21b759f248b29
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-24 23:11:01 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Stop using ns->top_self here because it's set to th->top_self beforehand if needed

commit 2100826243ae23e159ccdf9c9805a84074261808
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-22 18:03:57 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Fix wrong way to check an object is an instance of rb_cNamespace

commit 545cee083b9096366884bf0b092f064db6682d75
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-22 18:02:01 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    There is no longer needs to evict ivars thanks to fields

    See 8b5ac5abf258270b32ef63a6acb4eb0d191f79d9

commit 76c4663a77796fdcba539250dca3e6786ca0fd32
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-22 17:38:24 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Fix Namespace.current to show its caller's namespace

    Calling rb_current_namespace() in rb_namespace_current() means to show
    the definition namespace of Namespace.current itself (it's the root always)
    but the users' expectation is to show the namespace of the place where
    the Namespace.current is called.

commit 4f47327287c00836a9826805a8799678d2c18516
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-15 18:55:57 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-09-29 01:15:38 +0900

    Update current namespace management by using control frames and lexical contexts
    to fix inconsistent and wrong current namespace detections.

    This includes:
    * Moving load_path and related things from rb_vm_t to rb_namespace_t to simplify
      accessing those values via namespace (instead of accessing either vm or ns)
    * Initializing root_namespace earlier and consolidate builtin_namespace into root_namespace
    * Adding VM_FRAME_FLAG_NS_REQUIRE for checkpoints to detect a namespace to load/require files
    * Removing implicit refinements in the root namespace which was used to determine
      the namespace to be loaded (replaced by VM_FRAME_FLAG_NS_REQUIRE)
    * Removing namespaces from rb_proc_t because its namespace can be identified by lexical context
    * Starting to use ep[VM_ENV_DATA_INDEX_SPECVAL] to store the current namespace when
      the frame type is MAGIC_TOP or MAGIC_CLASS (block handlers don't exist in this case)

commit 43392afb122819e568f35c6a8e528580b9604411
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-23 20:52:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-28 22:15:35 +0900

    ripper: Fix dependency for generated ripper sources

    Missed at c89f5191706549bb1d7e0277fc07a413714ddecc.

commit a8184e35b55221621451ca9002550d32b0f49119
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-28 14:46:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-28 14:46:33 +0900

    Fix a check on pushref

    Empty pushref is no longer given 9b5eb828025cf0b7c023325e6e086422bcada355

commit 8300c52f565e5a106037bb7ec25eec78c15995a8
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-28 12:15:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-28 12:19:25 +0900

    Reuse a cmd array created for printing

    Fixes 21c7131df818c1f7f571d4ccf9be150d2c9cc374 differently.
    This makes it less likely that the printed command is deviated from
    what's actually executed.

commit 4a1d078636776d8c6544ee18d05730c2ea31ef99
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-28 12:10:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-28 12:10:21 +0900

    Limit the auto-style push to master

    It probably doesn't need to run for topic branches created by
    dependabot, and it's also likely annoying in stable branches like
    ruby_X_Y too.

commit 9b5eb828025cf0b7c023325e6e086422bcada355
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-28 12:08:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-28 12:08:12 +0900

    Resurrect support of auto-style on master

    which was broken by 9255db4bc08766763a6d78f50a90e05c58980899

commit cd42001f7d7bae833673bc08375af97395d66348
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-28 11:57:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-28 11:58:05 +0900

    [ruby/erb] Remove a trailing space

    https://github.com/ruby/erb/commit/51c0922170

commit 598a8f8914a4f7dd4694963c6de3714f49b3b64e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-27 06:29:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-27 09:56:49 +0900

    [DOC] Fix rendering of $\ in globals.md

commit feb9114a53ae1d1231bb9c405b1f443a74cf8ff4
  Author:     Taketo Takashima <t.taketo1113@gmail.com>
  AuthorDate: 2025-09-27 01:11:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-27 08:25:25 +0900

    [ruby/ipaddr] Fix `#ipv4_compat` returning invalid prefix

    https://github.com/ruby/ipaddr/commit/7c85bb8dfd

    Co-authored-by: Tietew <tietew@gmail.com>

commit 4ac8b12a1acc814cdeb1fdd46048104bf0f19dde
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-09-26 02:55:43 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-09-27 06:39:45 +0900

    CI: Add make-ibm job in ubuntu.yml and remove ubuntu-ibm.yml

    Add `make-ibm` job to run ppc64le/s390x cases in the `ubuntu.yml`, and remove
    `ubuntu-ibm.yml`. This commit improves removing a duplicated logic between the
    `ubuntu.yml` and `ubuntu-ibm.yml`.

    I am using the YAML anchors and aliases feature to avoid the duplicated logic.
    The document is below.

    https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations#yaml-anchors-and-aliases

    I don't add the `make-ibm` job to the `result` job, the line `needs: [make]`
    intentionally to make the `make-ibm` job's result optional to merge PRs.

commit ba52af6fc3e9ce8263794e8d2cad3fdf2785adad
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-21 23:20:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-27 06:17:42 +0900

    Always set parent_object in GC

    When we mark a T_NONE, we crash with the object and parent object information
    in the bug report. However, if the parent object is young then it is Qfalse.
    For example, a bug report looks like:

        [BUG] try to mark T_NONE object (obj: 0x00003990e42d7c70 T_NONE/, parent: (none))

    This commit changes it to always set the parent object and also adds a
    new field parent_object_old_p to quickly determine if the parent object
    is old or not.

commit 88dc3c41473a3bef78cb753f053f2370e6faa781
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-27 06:15:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-27 06:15:57 +0900

    [DOC] More tweaks for String#hex

commit 8836f26efa7a6deb0ef8b3f253d8d53d04d43152
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-27 00:45:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-27 00:45:35 +0900

    [ruby/erb] Enhancements (mostly documentation)
    (https://github.com/ruby/erb/pull/85)

    https://github.com/ruby/erb/commit/692597b9a2

commit cc1fd6490c920520436ff3bf0d9cf6b180b8a544
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-26 09:05:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-26 09:14:06 +0900

    ZJIT: Remove an obsoleted PC guard

    A little follow-up on https://github.com/ruby/ruby/pull/14653

    Now that we don't generate a PC-less side exit at the entry block, we
    shouldn't need this guard that was added by https://github.com/ruby/ruby/pull/14643.

commit 61a0de1b652f8e1c79ef762ecf41bdea3f799d25
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-26 08:57:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-26 08:57:23 +0900

    ZJIT: Compile ISEQ with optional arguments (#14653)

commit a1a1c9080ff5a948762da54962412c407304f41c
  Author:     sodacris <wjxa20152015@gmail.com>
  AuthorDate: 2024-11-18 14:04:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-26 08:27:15 +0900

    [rubygems/rubygems] add loading support on Windows

    https://github.com/rubygems/rubygems/commit/04574ba59a

commit b600c95dc1b9aff1b49743be7d007649bc38c643
  Author:     sodacris <wjxa20152015@gmail.com>
  AuthorDate: 2025-01-04 11:48:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-26 08:27:13 +0900

    [rubygems/rubygems] skip checking title on Windows because it's not supported

    https://github.com/rubygems/rubygems/commit/fd2c54f371

commit 328d2037a6bf24e26a7d144e80ab8c1a9c9fd868
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 06:34:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 07:36:58 +0900

    ZJIT: Remove dead CMEs from `Invariants`

commit 63483e75b8189aa078d92456b8c942244d97b533
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 05:18:15 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 07:36:58 +0900

    ZJIT: Actually call rb_zjit_root_update_references()

    Previously unused.

commit 6ea7557353982bb4b5de2dcd836233f328dc00f6
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 06:45:35 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 07:36:58 +0900

    ZJIT: Reference update `Invariant::cme_patch_points`

commit adfa784eaa03a215f2d57ce7e219cc7504ecc68b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 06:12:31 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 07:36:58 +0900

    ZJIT: Forget about dead ISEQs in `Invariants`

    Without this, we crash during reference update.

commit 00e6c10168596d4810f56430f18f778b66e30769
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 05:24:58 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 07:36:58 +0900

    ZJIT: Standardize to `Iterator::map` in `Invariants::update_references`

    The old code was doing a manual HashSet/HashMap rebuild, and there isn't
    a clear performance advantage over `Iterator::map`. So let's use `map`
    since it looks clearer and it's easier to see that everything was indeed
    updated. This also adds assertions the old code did not have by way
    of as_iseq() and as_cme().

commit 1a52c42e61878a1fe1d411a74108607766183b10
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 07:30:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-26 07:30:12 +0900

    Always use assert-free APIs when profiling and crashing

    rb_profile_frames() is used by profilers in a way such that it can run
    on any instruction in the binary, and it crashed previously in the
    following situation in `RUBY_DEBUG` builds:

    ```
    * thread #1, queue = 'com.apple.main-thread', stop reason = step over
        frame #0: 0x00000001002827f0 miniruby`vm_make_env_each(ec=0x0000000101866b00, cfp=0x000000080c91bee8) at vm.c:992:74
       989              }
       990
       991              vm_make_env_each(ec, prev_cfp);
    -> 992              VM_FORCE_WRITE_SPECIAL_CONST(&ep[VM_ENV_DATA_INDEX_SPECVAL], VM_GUARDED_PREV_EP(prev_cfp->ep));
       993          }
       994      }
       995      else {
    (lldb) call rb_profile_frames(0, 100, $2, $3)
    /Users/alan/ruby/vm_core.h:1448: Assertion Failed: VM_ENV_FLAGS:FIXNUM_P(flags)
    ruby 3.5.0dev (2025-09-23T20:20:04Z master 06b7a70837) +PRISM [arm64-darwin25]

    -- Crash Report log information --------------------------------------------
       See Crash Report log file in one of the following locations:
         * ~/Library/Logs/DiagnosticReports
         * /Library/Logs/DiagnosticReports
       for more details.
    Don't forget to include the above Crash Report log file in bug reports.

    -- Control frame information -----------------------------------------------
    c:0008 p:---- s:0029 e:000028 CFUNC  :lambda
    /Users/alan/ruby/vm_core.h:1448: Assertion Failed: VM_ENV_FLAGS:FIXNUM_P(flags)
    ruby 3.5.0dev (2025-09-23T20:20:04Z master 06b7a70837) +PRISM [arm64-darwin25]

    -- Crash Report log information --------------------------------------------
    <snip>
    ```

    There is a small window where the control frame is invalid and fails the
    assert.

    The double crash also shows that in `RUBY_DEBUG` builds, the crash reporter was
    previously not resilient to corrupt frame state. In release builds, it
    prints more info.

    Add unchecked APIs for the crash reporter and profilers so they work
    as well in `RUBY_DEBUG` builds as non-debug builds.

commit 62430c19c9f1ab49429cebe65f30588472648c95
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-08-18 23:47:40 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-26 07:29:47 +0900

    Properly unlock locked mutexes on thread cleanup.

    Mutexes were being improperly unlocked on thread cleanup. This bug was
    introduced in 050a8954395.

    We must keep a reference from the mutex to the thread, because if the fiber
    is collected before the mutex is, then we cannot unlink it from the thread in
    `mutex_free`. If it's not unlinked from the the thread when it's freed, it
    causes bugs in `rb_thread_unlock_all_locking_mutexes`.

    We now mark the fiber when a mutex is locked, and the thread is marked
    as well. However, a fiber can still be freed in the same GC cycle as the
    mutex, so the reference to the thread is still needed.

    The reason we need to mark the fiber is that `mutex_owned_p()` has an ABA
    issue where if the fiber is collected while it's locked, a new fiber could be
    allocated at the same memory address and we could get false positives.

    Fixes [Bug #21342]

    Co-authored-by: John Hawthorn <john@hawthorn.email>

commit 50393d1ada756fa03febb6566b6820bb1a37036c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-26 04:20:51 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 05:03:15 +0900

    IBF: Remove unnecessary and potentially UB pointer cast

    [Bug #21569]

commit 354d47ae5bc4edcc94db4a5391ed71a8b9844e57
  Author:     Aleksey Maximov <amaxcz@gmail.com>
  AuthorDate: 2025-09-14 21:30:09 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-26 05:03:15 +0900

    IBF: Avoid unaligned load on 32 bit platforms

    [Bug #21569]

commit 5e817f98af9024f34a3491c0aa6526d1191f8c11
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-25 07:48:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-25 07:48:56 +0900

    ZJIT: Prefer *const u8 for consts (#14652)

commit a5c98a7b263907e928a4076ec9daa8987b7db928
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-25 07:38:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-25 07:38:11 +0900

    ZJIT: Incorporate bb0-prologue and PC check into HIR (#14643)

    * ZJIT: Incorporate bb0-prologue and PC check into HIR

    * Fix an outdated comment

    * Use shallow clone for LoadPC and EntryPoint

    * Reproduce the actual HIR graph to pass validation

    * Fill out param types for jit_entry_block

    * Add Type::from_cptr

    * Add a TODO comment about Const::CPtr printing

commit 44d0b019548a26c289d60eb3699f75dc208e5481
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-25 04:37:56 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-25 05:59:57 +0900

    Don't require to set PC before allocating hidden object

    ZJIT doesn't set PC before rb_set_ivar(), and that allocates a managed
    ID table. Was a false positive from gc_validate_pc().

commit de92dd9a63f2065253cee082e3408de935313acd
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-25 05:54:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-25 05:54:23 +0900

    ZJIT: Add Ruby class objects to HIR type lattice automatically (#14647)

    This:

    * gets us out of the business of manually writing a bunch of `if`s
    * gets us more type information
    * cleans up the code
    * also adds `types::Numeric`

commit d869164124cfca347c30c19c85947a69cee03db8
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-09-24 23:33:25 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-25 02:41:04 +0900

    rb_bug shouldn't assume ec is available (don't use GET_EC())

    ec is unavailable on timer thread, for instance.

commit 48eb907f6bbf17e7a5ad1a4e68b7843cd2a3ccb7
  Author:     Ricardo Trindade <ricardo.trindade743@gmail.com>
  AuthorDate: 2025-09-24 19:06:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-24 19:06:24 +0900

    [DOC] Fix formatting of seconds parameter in documentation

    There's an additional colon sign in the documentation for Process.clock_gettime

commit 6cd970b428314271e6b8efa746b8c4b6f5f6fcf7
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-23 23:20:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-24 14:55:26 +0900

    [ruby/psych] Remove warning by not calling find_library after pkg_config

    If pkg_config returns a truthy value, it found the library and added it
    to the global values for the Makefile.

    Calling `find_library` after a successful `pkg_config` causes -lyaml to
    appear twice in the LIBS variable in the resulting Makefile, and causes
    ld on macOS to emit a warning:

        $ bundle exec rake compile 2>&1 | grep warning
        ld: warning: ignoring duplicate libraries: '-lyaml'

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

commit 5b65e76a7d3aa5d6111fbf2b5bf371bdf478c352
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-09-24 07:10:31 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-09-24 10:51:02 +0900

    fix lvar_state dump size

    `ibf_dump_write()` should consider the size of the element.

commit 479cdab3378a9597b01a4a3febc382488484f21a
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-24 09:48:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-24 09:48:06 +0900

    ZJIT: Allow testing JIT code on zjit-test (#14639)

    * ZJIT: Allow testing JIT code on zjit-test

    * Resurrect TestingAllocator tests

commit 06b7a70837d831b8628ae2adde9318371c111d82
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-24 05:20:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-24 05:20:04 +0900

    Fix thread_profile_frames crashing due to uninitialized PC

    ZJIT never sets `cfp->jit_return`, so to avoid crashing while
    profiling, we need to explicitly validate the PC of the top most frame.
    Particularly pertinent for profilers that call rb_profile_frames() from
    within a signal handler such as Vernier and Stackprof since they
    can sample at any time and observe an invalid PC.

commit 39d764ed800fa6c930ff23067de323fd2fde4c2a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-24 04:46:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-24 04:46:04 +0900

    ZJIT: Add stack overflow check to `gen_ccall_variadic` (#14636)

    ZJIT: Add stack overflow check to gen_ccall_variadic

commit 990ec01e7ddf4e465d08a69b76dff33aaa3d9e1d
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-09-24 04:18:39 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-09-24 04:18:48 +0900

    Fix typo in NEWS

commit 0fe1099d9a0bb3ac2b25828578defba3b5243aad
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-24 04:05:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-24 04:05:52 +0900

    ZJIT: Support gdb for debugging zjit-test (#14637)

commit 8fad3e87beaf5d49f0bf7744c4102144832fe8cc
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-09-19 01:56:13 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-09-24 03:59:03 +0900

    use commit hash for net-imap

    to catch up new sharable proc semantics.

commit 55b1ba3bf276ba82173bd961fb8e0f08bf4182a6
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-07-17 15:38:54 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-09-24 03:59:03 +0900

    Ractor.shareable_proc

    call-seq:
      Ractor.sharable_proc(self: nil){} -> sharable proc

    It returns shareable Proc object. The Proc object is
    shareable and the self in a block will be replaced with
    the value passed via `self:` keyword.

    In a shareable Proc, the outer variables should
    * (1) refer shareable objects
    * (2) be not be overwritten

    ```ruby
      a = 42
      Ractor.shareable_proc{ p a }
      #=> OK

      b = 43
      Ractor.shareable_proc{ p b; b = 44 }
      #=> Ractor::IsolationError because 'b' is reassigned in the block.

      c = 44
      Ractor.shareable_proc{ p c }
      #=> Ractor::IsolationError because 'c' will be reassigned outside of the block.
      c = 45

      d = 45
      d = 46 if cond
      Ractor.shareable_proc{ p d }
      #=> Ractor::IsolationError because 'd' was reassigned outside of the block.
    ```

    The last `d`'s case can be relaxed in a future version.

    The above check will be done in a static analysis at compile time,
    so the reflection feature such as `Binding#local_varaible_set`
    can not be detected.

    ```ruby
      e = 42
      shpr = Ractor.shareable_proc{ p e } #=> OK
      binding.local_variable_set(:e, 43)
      shpr.call #=> 42 (returns captured timing value)
    ```

    Ractor.sharaeble_lambda is also introduced.
    [Feature #21550]
    [Feature #21557]

commit c05ea920cef5991ca6163d12a436a61219a234a6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-21 09:47:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-24 02:20:21 +0900

    Only set ME cached flag when unset

    The same method entry may be reused in multiple caches, so once the
    CACHED flag is set, other Ractors may be checking for it being
    invalidated and we should avoid writing to the field again.

    I believe there are still other race conditions on how we manipulate
    these flags (particularly the invalidation bit), but this should make
    them less frequent.

commit 9a5e48f4144bea6fc3e8fb82cfacf4a650d9cc9b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-23 11:22:08 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-24 01:13:12 +0900

    gc_validate_pc(): Exclude imemos, add a test and explain the asserts

    The validation is relevant only for traceable userland ruby objects ruby
    code could interact with. ZJIT's use of rb_vm_method_cfunc_is()
    allocates a CC imemo and was failing this validation when it was
    actually fine. Relax the check.

commit cdb9c2543415588c485282e460cdaba09452ab6a
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-23 07:57:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 07:57:57 +0900

    ZJIT: Guard receiver class for CCallVariadic (#14630)

commit 1d00c1114aa36de682483784e3b6b94e3c71b8f7
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-23 07:55:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 07:55:05 +0900

    ZJIT: Clarify --zjit-disable-hir-opt job names (#14632)

commit 98de251c4118d13fa3d17481e48b19253f9f41e0
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-23 06:54:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 06:54:06 +0900

    ZJIT: Add more type information to DefinedIvar (#14628)

    Add test.

commit 6b088c876a4e2d41f39acfb0b338b6a178b30089
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-23 06:27:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 06:27:54 +0900

    ZJIT: Clean up RangeType (#14627)

commit 93c728ce9143b2f32e5d3073c8d2c87da8e0db54
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-23 06:25:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 06:25:01 +0900

    YJIT: Pass iseq pointer to get/set classvariable functions (#14625)

    * YJIT: Pass iseq pointer to get/set classvariable functions

    Since we already have the iseq pointer, we can actually save one
    memory read by passing it directly.

    We need to wrap the iseq in a VALUE so it can be marked correctly
    by GC.

    * YJIT: Fix missing GC marking when passing iseq to rb_vm_setinstancevariable

    Without wrapping the iseq in a `Operand::Value`, the iseq would not be
    marked correctly by GC and when compacting the heap, the iseq would be
    lost and cause a crash.

commit cbfe403315c4eab4f37906137b99c195204d63fe
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-23 06:21:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 06:21:37 +0900

    ZJIT: Add polymorphism counters (#14608)

commit 133e3889c1f77ca1eeedb49e19cca460f1dfa785
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-23 04:39:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-23 05:11:23 +0900

    [ruby/erb] [DOC] Correct two errors

    https://github.com/ruby/erb/commit/1512314a3b

commit 378c4db4bbaf0c9ecd954a510a14c617a4ba4908
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-09-17 04:48:18 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-23 04:10:10 +0900

    [DOC] Add `snt` and `dnt` to glossary.md

commit 1d1529629ce1550fad19c2d9410c4bf4995230d2
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-09-23 02:03:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 02:03:00 +0900

    Clarify what happens when IO.popen's block returns (#14626)

commit 4afc6370cba7e83c204edcdf1c2f8d1497af2f7c
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-15 08:03:50 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-23 01:59:35 +0900

    Add missing locks to method table

commit ccb82041548f871a0185eead619ce62e1df5957d
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-23 01:30:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 01:30:00 +0900

    ZJIT: Improve `zjit_bisect.rb` (#14592)

    ZJIT: Improve zjit_bisect.rb

    1. The command name in the help message is outdated.
    2. When the command failed by itself, the message can be clearer.

commit 6c0a74e55ad1c15804297b3a471444f0cae5c058
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-09-23 01:28:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-23 01:28:27 +0900

    ZJIT: Refactor NewRangeFixnum (#14607)

    ## Context

    #14409

    https://github.com/ruby/ruby/pull/14409#discussion_r2350238583
    >You may have noticed that this doesn't produce a New range instruction. For that you probably need to use a local variable (makes it harder for the bytecode compiler to reason about, but the JIT sees through it). If you have time, please rewrite these tests.

    https://github.com/ruby/ruby/pull/14409#discussion_r2350240389
    >There's some code above to do this for you: see arguments_likely_fixnums and coerce something or other

    ## Changes

    ### Refactor tests

    Modify tests force the usage of `NewRangeFixnum` instruction and make tests names more consistent.

    ### Refactor optimize ranges

    Didn't found `arguments_likely_fixnums` to be applicable unless we enable profiling for `NewRange` and change the criteria of when the optimization fires. But there were other ways to clean up the code.

    Simplify the logic and move it to `type_specialize`. Deleted the standalone `optimize_ranges` function.

commit 01de72fcf82e858aeba0a55b2f1527efe8fda062
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-22 05:05:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-22 16:55:46 +0900

    [ruby/erb] [DOC] Doc for #def_method and #def_module

    https://github.com/ruby/erb/commit/a082298db7

commit 6cff9b806cd8ff3e3aaa269aeb3d419375b0d641
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-21 03:54:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-22 16:55:45 +0900

    [ruby/erb] [DOC] Doc for ERB#def_class

    https://github.com/ruby/erb/commit/4ca7784f10

commit 4a082b5d347951ad7d2007d6726f3cfe5232a382
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-22 00:33:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-22 02:12:34 +0900

    Fix assertion in rb_gc_impl_mark_weak

    The FL_WB_PROTECTED flag is no longer used and is not set on objects, so
    that assertion cannot be true. Instead, we should use RVALUE_WB_UNPROTECTED.

commit 02299d68bcb0e6eabab2b973b28e9dafbafe6149
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-09-22 00:30:51 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-09-22 00:30:51 +0900

    Exclude failing GC finalizer tests with ASAN

    * See https://bugs.ruby-lang.org/issues/21613

commit 3ec597f619a739ef6518c1f0ac3f58a168983730
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-19 23:37:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-21 21:24:21 +0900

    Fix memory leak in cloning complex imemo_fields

    When we clone a complex imemo_fields, it calls creates the imemo_fields
    using rb_imemo_fields_new_complex, which allocates and initializes a new
    st_table. However, st_replace will directly replace any exisiting fields
    in the st_table, causing it to leak.

    For example, this script demonstrates the leak:

        obj = Class.new
        8.times do |i|
          obj.instance_variable_set(:"@test#{i}", nil)
          obj.remove_instance_variable(:"@test#{i}")
        end

        obj.instance_variable_set(:"@test", 1)

        10.times do
          100_000.times do
            obj.dup
          end

          puts `ps -o rss= -p #{$$}`
        end

    Before:

        26320
        39296
        52320
        63136
        75520
        87008
        97856
        114800
        120864
        133504

    After:

        16288
        20112
        20416
        20720
        20800
        20864
        21184
        21424
        21904
        21904

commit 5179b7fb3f9c3a27c69bebcbdba380c0c5f1d42d
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-09-21 07:58:30 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-09-21 17:36:45 +0900

    Rename mlhs rule to mlhs_items for clarity in parse.y

    Since `mlhs` is already defined as a nonterminal as follows, using the same name as a parameterizing rule is a bit confusing, so rename the parameterizing rule.

    https://github.com/ruby/ruby/blob/8d1c45978329bced97c003d9612b55f578c40a65/parse.y#L3648-L3654

commit 5f56a7f9bb938afb109bd53d5e97be3b07c98861
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-21 05:08:12 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-21 08:59:40 +0900

    [DOC] Tweaks for String#ord

commit 8d1c45978329bced97c003d9612b55f578c40a65
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-20 11:01:49 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 12:05:42 +0900

    ZJIT: Move CI configure below run_opts and specopts

commit d1c845e41a46c4c91c0c8cc51ad8491b7e99a7a4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-20 00:52:53 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 12:05:42 +0900

    ZJIT: Also run CI without HIR optimizer

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

commit 451fe6a446f8e4510a333a128ca460992e02967c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-20 04:30:41 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 12:05:42 +0900

    ZJIT: Fix opt_{hash,ary,str}_{freeze,uminus}

    The stack layout is incompatible with the way we reify the stack for
    generating fallback SendWithoutBlock: the receiver is an embedded VALUE
    in the bytecode, not on the stack. Since we don't expect these to be
    overridden often, instead of fussing about with the stack layout, just
    hope for the best and PatchPoint/SideExit.

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

commit 254b9b4952156ee443b920e89fec7b6d16a0f785
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-19 02:47:35 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 11:38:29 +0900

    ZJIT: Expand the list of safe allocators

    It's not just the default allocator; other allocators are also leaf.

commit 4a04e6f7555c94e0e58ad090681e359c7dcbf22e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-19 00:41:46 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 11:38:29 +0900

    ZJIT: Wrap comment

commit b19e3b0f060586dae91b567794128efb747b3f24
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-20 08:03:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-20 08:03:02 +0900

    ZJIT: Avoid unnecessary `PopOpnds` and `PushOpnds` codegen (#14614)

    * ZJIT: Avoid unnecessary `PopOpnds` codegen

    If there's no opnds to restore, we don't need to do anything.

    * ZJIT: Avoid unnecessary sub_into when there's no opnds to allocate

commit 6afbbb11785e483c7dba2a803e611904d32ec01f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-20 07:50:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-20 07:50:15 +0900

    ZJIT: Remove unnecessary empty lines

commit 02d5b8443a0f77bf498d29c0121e035f4deeaa27
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-19 14:02:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-20 07:35:15 +0900

    Simplify enc_autoload_body

    Previously we were looping over the enc_table, but when I added an
    assertion the only thing that loop was doing is the equivalent of
    ENC_TO_ENCINDEX(base). However we don't even need the index of base.

    Instead we should be able to just use the badirectly.

commit f048f77c4a0bf9cb604e2f3291dda71978ed8313
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-19 08:31:58 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-20 07:35:15 +0900

    Extract enc_load_from_base from enc_register_at

    Previously we would sometimes call enc_register_at several times in
    order to update the encoding values after the base encoding may have
    been loaded.

    This updates enc_register_at to only be used via enc_register, when an
    actual new encoding at a new index is being registered.

    Other callers (which in all cases found the index by the name matching)
    now call enc_load_from_base which is only responsibly for loading the
    encoding from the base values.

commit 7c51ce5ff625c1295d48ff041b22cb4a9d75c9aa
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-19 09:20:01 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-20 07:35:15 +0900

    Mark list as frozen and shareable

commit e44bec9b92d7d6d7286f57637df6e785b12fafb1
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-20 07:19:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-20 07:19:52 +0900

    ZJIT: Fix disasm tests on release build (#14612)

    * ZJIT: Fix disasm tests on release build

    * Rename string() to hexdump()

commit f4482b047fa3facc78cf5d3439a70d0251862da3
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-09-20 07:00:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-20 07:00:27 +0900

    Make it easier to reproduce commands from CI (#14609)

    * Comment on not auto-requesting reviews for workflow files

    * Make it easier to reproduce matrix test_task commands from CI

    Expand the interpolated command so that it is easier to see exactly what command was run.

commit 2ad3fbb9c79673bed3bad57c89f4a6fc3729c2b6
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-20 03:52:34 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 06:18:59 +0900

    ZJIT: Simplify NewHash HIR and Codegen

    We can use `Vec<Opnd>` instead of `Vec<(Opnd, Opnd)>` in NewHash HIR
    as it's the only usage of such type, which requires special handling.

commit 642188fb87a42c04d5672f4c9d16644d6cbcb207
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-20 03:34:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-20 03:35:05 +0900

    [ruby/prism] Fix up locals test skip name

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

commit d7c54df433c73f46b177dae594a001fc92fe5232
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-20 02:42:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-20 02:42:40 +0900

    [ruby/prism] Turn off failing test for parse.y

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

commit 71067aa54c9fd819313dd2d35cb5b32803a65ad4
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-18 02:06:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-20 01:55:01 +0900

    [ruby/prism] Reject argument command call taking a block with more trailing arguments

    https://bugs.ruby-lang.org/issues/21168#note-5

    The added code samples align with `parse.y`, except for `foo(bar baz do end)` which `parse.y` currently rejects but shouldn't.

    https://github.com/ruby/prism/commit/3a4e102d80

commit d7ad44613723201a4c218aabae5baa7585a9867e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-19 22:01:05 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 01:00:39 +0900

    ZJIT: Count method sends where method lookup fails

commit f0702c5aa32aa7092a4bb6c0c3e5863c4411e22d
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-19 21:57:33 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-20 01:00:39 +0900

    ZJIT: Also count fallback sends to ISEQs we can't direct send to

    Make sure these parameter types are counted in the fallback def_types.

commit e40cd392e44c38ce93c573b9244f46bba868c09c
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-20 00:56:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-20 00:56:59 +0900

    ZJIT: Measure reading/writing locals with level > 0 (#14601)

    ZJIT: Measure writing to locals with level > 0

commit 1663e2fbc8f3e904266ee89ba17066c3673765a0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-19 22:00:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-20 00:05:43 +0900

    Fix capacity of imemo_fields objects created from rb_imemo_fields_new_complex_tbl

    The imemo_fields_new function takes a capacity in the number of fields to
    preallocate. rb_imemo_fields_new_complex_tbl is using it incorrectly because
    it is preallocating sizeof(struct rb_fields) number of fields.

commit b082d672533a6c0cf69c39497342cb2d5dde9f12
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-19 22:13:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 23:27:00 +0900

    [ruby/prism] Fix dangling pointers on Windows as well

    Share the empty source string in `pm_string_mapped_init` and
    `pm_string_file_init`.

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

commit a54351f98ce68999ed798a68c8ea58c5abb71467
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-19 23:08:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-19 23:08:13 +0900

    ZJIT: Test disasm with insta (#14602)

commit 477b1e79b71af422136df29b259d9bb3ce8449e2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-18 22:26:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-19 21:46:09 +0900

    Directly use rb_imemo_new in imemo_fields_new_complex

    We should not assume that a complex imemo_field takes only one additional
    VALUE space. This is fragile as it will break if we add additional fields
    to complex imemo_field.

commit 1042a0bdd893a268b23566fcf1bb3a26cbc0e8c6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-19 03:33:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    `JSON::Coder` callback now recieve a second argument to mark object keys

    e.g.
    ```ruby
    { 1 => 2 }
    ```

    The callback will be invoked for `1` as while it has a native JSON
    equivalent, it's not legal as an object name.

commit dc406e9b5bdbc1ef2fcce81e96156bd945be8048
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-19 01:57:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] Avoid scientific notation before exponent 15

    Fix: https://github.com/ruby/json/issues/861

    It's not incorrect to use scientific notation, but it tend
    to throw people off a bit, so it's best to keep it for very large
    numbers.

    https://github.com/ruby/json/commit/1566cd01a6

commit 807faf5445d75d99b77b85ecae2a84e64ae16b26
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-18 23:26:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] Release 2.14.1

    https://github.com/ruby/json/commit/51ce76ea66

commit c164394e957e14368436859ae2c531721207a9a8
  Author:     Scott Myron <samyron@gmail.com>
  AuthorDate: 2025-09-18 22:50:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] fix issue reading off the end of the ByteBuffer if ptr > 0

    Fix: https://github.com/ruby/json/issues/859

    https://github.com/ruby/json/commit/67ebabec75

    Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>

commit 5c59fb5a369fe48e9cfaa7f2c16c29e813b1bc65
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-18 18:28:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] Release 2.14.0

    https://github.com/ruby/json/commit/55552cafe2

commit 13471311aa6a35d1def68ea66c2a06df17ccf51d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-18 18:20:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] Only enable test coverage when running the test suite standalone

    https://github.com/ruby/json/commit/08b9eb0ee6

commit 77cd19658903a4b6b0e69ffb0a6d0860b9fa3cbd
  Author:     Robin Miller <robin@tenjin.ca>
  AuthorDate: 2025-09-14 07:11:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] Add branch test coverage when available. Force track all files to prevent implicit file discovery missing files.

    https://github.com/ruby/json/commit/6bded942c4

commit 3faf2a31fb49ed56bd550ff4c10d538b9882c099
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-18 17:45:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [ruby/json] parser: Reject invalid surogate pairs more consistently.

    https://github.com/ruby/json/commit/5855f4f603

commit a4c277733b10ff1ad484689c1a256032c39cea87
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Switch `cache_all` to be `true` by default

    And make it a standard setting.

    https://github.com/rubygems/rubygems/commit/17e356fa94

commit 3bf695a767b0f03e39a93e27296499eca1bec64f
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-17 18:10:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Pull `Gem.win_platform?` out of a hot path

    `normalize_path` is a pretty hot path, it's called many times per file
    in each gem. Since the platform isn't going to change from call to call,
    we can conditionally define `normalize_path` based on the value of
    `Gem.win_platform?`.

    https://github.com/rubygems/rubygems/commit/d5e61411f2

commit da130d25e39d37185d7627b0d202a5c69d488c14
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Completely remove passing `--ext` to `bundle gem` without a value

    https://github.com/rubygems/rubygems/commit/9f34bf6854

    Co-authored-by: Martin Emde <martinemde@users.noreply.github.com>

commit 44a4f88159127e8d49bd3dfddcaa32233f57dd85
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Switch `lockfile_checksums` to be true by default

    https://github.com/rubygems/rubygems/commit/47c3dc19ee

    Co-authored-by: Jonathan Barquero <jonbarlo@hotmail.com>

commit 23fb4d50200c39b1df320fdc8ac3ed071923361c
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Make `bundle show --outdated` raise an error

    https://github.com/rubygems/rubygems/commit/3bbbf4a4e5

commit 9dedfb60d596ab7e34f5613650fed10963a24e21
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-17 02:01:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Move error handling to right behind the option

    This is where error handling happens in all the other options, so it's
    where we'll look when we completely remove error handling for these
    removed CLI flags in the next major.

    https://github.com/rubygems/rubygems/commit/40d660c607

commit 127a8c0bd3cac022997efd18ce6747698c379d53
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Make `--local-git` flag to `bundle plugin install` raise an error

    https://github.com/rubygems/rubygems/commit/8bfe317e6d

commit a65c7c8428fb2c50672e8e2f1d27e1416870cb5e
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-16 03:40:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-19 19:30:10 +0900

    [rubygems/rubygems] Fix parallel installation issue

    If using a gem with precompiled versions having different dependencies
    than the generic version from a path source, and with a lockfile
    including a precompiled version, we would materialize the
    generic version, but end up using dependencies for the precompiled
    version. That will result in the parallel installer missing the
    specifications for the extra dependencies of the generic version,
    causing a crash.

    If we are materializing for installation, make sure we use the
    materialized specification when traversing dependencies.

    https://github.com/rubygems/rubygems/commit/5f75d75de7

commit 8edb029ed97e3d8de47b66c9ed84daa76143a444
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-19 12:20:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-19 12:20:29 +0900

    ZJIT: Put exit reasons later in stats_string (#14599)

commit 701e0975abc74defc4efe8363b465c46099079df
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-19 11:02:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-19 11:02:19 +0900

    ZJIT: Count writes to the VM frame (#14597)

    This is a) a lot of memory traffic and b) is another good proxy for our
    ability to strength reduce method calls.

commit f72d0f31938ccee3e99fa8423d2e644dbec10c2c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 07:38:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:22 +0900

    [ruby/erb] [DOC] Doc for ERB#set_eoutvar

    https://github.com/ruby/erb/commit/cb4911f5f0

commit 49dc988afd78bbaaacbf77702cace4d2e8773f9d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 07:18:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:22 +0900

    [ruby/erb] [DOC] Correct error in #make_compiler example

    https://github.com/ruby/erb/commit/5e6fea0417

commit b06639fc36ba54707c45de324106bf208f110b47
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 07:12:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:21 +0900

    [ruby/erb] [DOC] Doc for ERB#make_compiler

    https://github.com/ruby/erb/commit/ad8231cd68

commit 919253f0824602baf68c3b25f54efd4927191fcc
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 07:00:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:21 +0900

    [ruby/erb] [DOC] Remove example from ERB.version (will get out-of-date)

    https://github.com/ruby/erb/commit/b0ccb1e317

commit 271c3503be72695a457515072f3f5b4b25038489
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 06:52:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:21 +0900

    [ruby/erb] [DOC] Tweak for ERB.new (argument eoutvar)

    https://github.com/ruby/erb/commit/b629d578c0

commit b76b1d25aec2e039028b567ff69ed8098a9e783c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 06:48:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:21 +0900

    [ruby/erb] [DOC] Correct link in doc for attribute #encoding

    https://github.com/ruby/erb/commit/3e57b27566

commit 29630607d86d3720aa74532ce9c35c7b3b244017
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 06:42:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:20 +0900

    [ruby/erb] [DOC] Doc for constant VERSION

    https://github.com/ruby/erb/commit/9b16b2d553

commit 819babe95825daefb72521e0657c2ca5bb50982c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 06:36:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:20 +0900

    [ruby/erb] [DOC] Doc for constant NOT_GIVEN

    https://github.com/ruby/erb/commit/dd6db81d43

commit 18e84421e9a92ca99dab1b840651eeae6b315eab
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-19 06:28:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 07:53:20 +0900

    [ruby/erb] [DOC] Doc for attribute src

    https://github.com/ruby/erb/commit/7556e6817c

commit e74f5f74c897d2a6875e43d1696952f2c0c5c16b
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-19 06:52:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-19 06:52:23 +0900

    ZJIT: Compile sendforward with dynamic dispatch (#14501)

    * ZJIT: Compile sendforward with dynamic dispatch

    * Reload locals only if it has blockiseq

    * Add a test case of ... with other args

commit 7ff036d59b9d1dce286eabac0c80c3459bc5fd11
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-09-19 04:02:11 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-19 05:52:37 +0900

    Prevent GC from running during `newobj_of` for internal_event_newobj.

    If another ractor is calling for GC, we need to prevent the current one
    from joining the barrier. Otherwise, our half-built object will be marked.

    The repro script was:

    test.rb:
    ```ruby
    require "objspace"
    1000.times do
      ObjectSpace.trace_object_allocations do
        r = Ractor.new do
          _obj = 'a' * 1024
        end

        r.join
      end
    end
    ```

    $ untilfail lldb -b ./exe/ruby -o "target create ./exe/ruby" -o "run test.rb" -o continue

    It would fail at `ractor_port_mark`, rp->r was a garbage value. Credit to John for finding the
    solution.

    Co-authored-by: John Hawthorn <john.hawthorn@shopify.com>

commit 797a4115bbb249c4f5f11e1b4bacba7781c68cee
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-19 03:46:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-19 03:46:03 +0900

    ZJIT: Support variadic C calls (#14575)

    * ZJIT: Support variadic C calls

    This reduces the `dynamic_send_count` in `liquid-render` by ~21%

    * ZJIT: Reuse gen_push_frame

    * ZJIT: Avoid optimizing variadic C call when tracing is enabled

commit ff5105f7c8f6adefaab4341cef165996558912d9
  Author:     Randy Stauner <randy.stauner@shopify.com>
  AuthorDate: 2025-09-19 00:54:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-19 02:13:59 +0900

    [ruby/prism] Fix example marker for case statement predicate

    https://github.com/ruby/prism/commit/2ddedf650a

commit 8073cd4ffa25da7917ccb4270b155c1a73ecc00f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-18 03:53:07 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-19 02:12:55 +0900

    Pass -w to lsof

commit 7e6f7fbf9e3e951bc4df351c8246f641999ea12c
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-18 23:03:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-18 23:03:28 +0900

    ZJIT: Annotate BasicObject#initialize (#14590)

    It's a no-op and always returns `nil`.

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

commit 4e05fe54e2cc337c7a58a8bf9879b911b5bbdc46
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-18 03:08:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-18 22:25:41 +0900

    Use union in cross_ractor_require

    A cross_ractor_require is either a require or an autoload, so we can make
    the fields an union. This reduces the size of cross_ractor_require by 8
    bytes.

commit 44d1feb7575e40c54c040a2d305219293bcc8136
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-15 18:48:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-18 21:26:43 +0900

    Remove test causing warning

    The test is no longer useful since
    5c7dfe85a1dc49334e2828791f0ade42eee662db because Module#initialize_copy
    is empty/not defined anymore.

commit 176b3b514d8f4bcea38a10f0567b760701e46058
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-18 14:00:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 14:04:55 +0900

    [ruby/erb] [DOC] `ERB::Version`

    https://github.com/ruby/erb/commit/7fed01c4de

commit 3379dd44554ec3c745a38b4ef33c93aafb1dabf1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-18 13:57:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 14:04:54 +0900

    [ruby/erb] [DOC] Fix the location of `url_encode` doc

    The documentation must be just before the definition.

    https://github.com/ruby/erb/commit/62282e32d9

commit f37d42fc7b9e66463caa17506cfd47f8b4e47983
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-18 12:23:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 12:24:02 +0900

    [ruby/erb] [DOC] Fix the description of #new_toplevel
    (https://github.com/ruby/erb/pull/78)

    https://github.com/ruby/erb/commit/de0f18579e

commit e6879401feba22e3657a231cbedc751998cb7176
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-09-18 11:24:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-18 11:24:29 +0900

    Use `ec->interrupt_mask` to prevent interrupts. (#14588)

    Disallow pending interrupts to be checked during `FiberScheduler#unblock`.

    Ractors can send signals at any time, so the previous debug assertion
    can fail if a Ractor sends a signal.

    Co-authored-by: Luke Gruber <luke.gruber@shopify.com>

commit 0bb6a8bea49fed8ccef0a70aca5f2ea05af94292
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-18 03:33:57 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-18 08:24:22 +0900

    Avoid racing ruby_encoding_index with base index

    Previously when we copied base_encoding on top of the encoding, other
    threads could briefly see the name and ruby_encoding_index of the base
    encoding.

commit 71fa9809a3c57a4c76b87414dbd6ee73c34c347b
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-17 14:41:26 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-18 08:24:22 +0900

    Avoid duplicate autoloading of encodings

commit bacb687fd768c48b6042b1c0486a757915ad5eca
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-18 05:53:47 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-18 06:27:35 +0900

    ZJIT: Call instance allocation function directly

commit 1b0ca8f1f0ebabd440155ac8c373e7c49ba84df4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-18 02:05:38 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-18 06:27:35 +0900

    ZJIT: Rename optimize_direct_sends to type_specialize

commit 88e0ac35a3b6f66074307421b208db62ae5ffe39
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-18 05:04:49 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-18 06:27:35 +0900

    ZJIT: Prevent custom allocator in ObjectAllocClass

commit 7a82f1faa0f6157e3e3104d04531f62a8b1db90c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-18 01:46:18 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-18 06:27:35 +0900

    ZJIT: Const-fold IsMethodCfunc

commit c31a73d7ea410c74e1c6bc887619898eac3c8795
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-09-17 23:05:16 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-09-18 06:27:35 +0900

    ZJIT: Specialize ObjectAlloc with known class pointer

    This has fewer effects (can be elided!) and will eventually get better
    codegen, too.

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

commit 96272ba10090056974fb1de86623438a349cc318
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-18 05:27:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 05:49:35 +0900

    [ruby/erb] [DOC] Doc for #new_toplevel

    https://github.com/ruby/erb/commit/dee5dd4da8

commit 3db3627ffba7e8793427b5336d9c48bc422682a0
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-18 05:04:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 05:49:35 +0900

    [ruby/erb] [DOC] More on encodings

    https://github.com/ruby/erb/commit/d5f6f65a89

commit ffbcbe20ff4d6f3958f3e07f4f1f7fd0e3bd1740
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-18 04:18:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 05:49:35 +0900

    [ruby/erb] [DOC] Doc for ERB#run

    https://github.com/ruby/erb/commit/77830cb205

commit bb3355760ad0abe3c07b7f9e37be043bad796697
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-18 04:40:41 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-18 04:40:41 +0900

    ZJIT: Split Insn::Const from Insn::GetBlockParamProxy (#14583)

    * ZJIT: Split Insn::Const from Insn::GetBlockParamProxy

    * Print [BlockParamProxy]

    * Link a TODO comment to a Shopify/ruby issue

commit c995faa8627fbb2509c5a35cde9e01445639fc83
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-18 04:17:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-18 04:17:07 +0900

    ZJIT: Add stat for `def_type` of send fallbacks (#14533)

    I thought about creating a new HIR like `SendWithoutBlockFailedToOptimize` that can carry very specific reasons later. But it'll mean adding it to every branch matching `SendWithoutBlock` and may make code unnecessarily complicated.

    So I take the easier path for now:

    ```
    Top-4 send fallback def_types (100.0% of total 21,375,357):
          cfunc: 20,164,487 (94.3%)
      optimized:  1,197,897 ( 5.6%)
        attrset:     12,953 ( 0.1%)
          alias:         20 ( 0.0%)
    ```

commit 4d003eabec01a5c0be10e3c6bb7e641f9e04eeef
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-16 05:33:41 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-18 02:35:35 +0900

    GitHub CI: JITs: Dump RUBY_CRASH_REPORT on failure

    We sometimes see silent crashes on CI such as
    <https://github.com/ruby/ruby/actions/runs/17661854762/job/50196469793>.
    The default of dumping to stderr could be interacting poorly
    with the parallel workers, so let's use RUBY_CRASH_REPORT to hopefully
    get more information.

commit 7ed1b24bf3a9400cdf67cc080414d56fa3cfe72d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-16 06:15:23 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-18 02:35:35 +0900

    Unset RUBY_CRASH_REPORT in tests that crash on purpose

commit 3fa1eb71151fbd8c970218e6df85c94e8048eef0
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-18 02:03:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 02:03:14 +0900

    [ruby/erb] [DOC] Adds section 'Error Reporting'
    (https://github.com/ruby/erb/pull/75)

    https://github.com/ruby/erb/commit/8dc0eacaad

commit 3c7a89721d53ba1cbe70a21cdf8a839b1aa16341
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-18 00:23:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-18 01:39:27 +0900

    [ruby/prism] Reject `1 if foo = bar baz`

    and also `1 and foo = bar baz`

    This is a partial fix for https://github.com/ruby/prism/issues/3106
    It still accepts `a = b c and 1`

    https://github.com/ruby/prism/commit/7a13d3535b

commit c22d84a1211f139cbbb9b5fc00082e7b6a7c652e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-18 01:29:20 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-18 01:29:20 +0900

    ZJIT: Revert documentation indent (#14580)

commit df2f462accc7cd927f3738b54cb92707c34a9f7c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-18 00:50:46 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-18 00:50:46 +0900

    Skip TestObjSpaceRactor#test_tracing_does_not_crash

    It crashes frequently on CI but I am not able to reproduce locally:

    https://ci.rvm.jp/results/trunk-random1@ruby-sp2-noble-docker/5954509
    https://ci.rvm.jp/results/trunk-random0@ruby-sp2-noble-docker/5954501

commit e758198846b7811f20e1c21aa971124fbb2fe103
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 15:18:13 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-17 22:42:49 +0900

    test-bundled-gems.rb: Allow wildcards in `BUNDLED_GEMS`

commit b034a3df6872fd38adf924b9f9f74ac245302f95
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-17 19:39:27 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-17 22:42:49 +0900

    bundled_gems_spec.rb: Remove useless `map`

    `Dir.[]` returns list of strings, `map(&:to_s)` does nothing.

commit dd69a75f2abfe280a62545a4f827bca4d2df1789
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 21:49:27 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-17 22:42:49 +0900

    fetch-bundled_gems.rb: Fix extraneous newline

    Print a concatenated string instead of `print`ing multiple strings,
    since `$\` is set to `"\n"` because of `-l` command line option.

commit 58ece00dd50ffe92ba142fb51b0adc7d5a356752
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-17 02:24:53 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear out memory for rb_big_new

commit a38b2753ec9627f9441dbb6bc3b9ceb1473ff804
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-16 23:47:30 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Update rb_gc_impl_new_obj in mmtk.c

commit 262838f2e09beca72b695a90bd1d2bfd9e924170
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-16 23:42:53 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Fill more of the slot with garbage

commit a456e79e06faf36caac20d9b33e92a98613c9d07
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-13 04:01:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear out memory for newly allocated structs

commit 3b2f698432350dadcb87fd4dfb11e1b2c31c36c7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-13 04:00:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Null terminate newly created embedded strings

commit f7ddf7b30e118d67e3062cd363f72d9bba109671
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 00:29:41 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear object_id for newly allocated class

commit 2d57e9e2a185c68d6f1cd3f067f19c23fe5f3fc1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 00:29:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear out memory for newly allocated array

commit cfc5c565038d3ed00a739135911e6188929c729a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 00:20:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear out memory for newly allocated tmpbuf

commit 3f3497558146c46350b740db2e71fdf28d30c204
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-08 23:28:45 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear out memory for newly alloated string

commit 42b6ec0149fbf97d79ddd4d957cecc0fc08f2701
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-08 23:26:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Clear memory for newly allocated iseq

commit 74075617b17ab80db74a5e7c1c8515601a8ce6f4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-08 22:05:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-17 22:25:17 +0900

    Remove setting v1, v2, v3 when creating a new object

    Setting v1, v2, v3 when we allocate an object assumes that we always
    allocate 40 byte objects. By removing v1, v2, v3, we can make the base
    slot size another size.

commit 73b08ff423fb1f1779d5e17f47b0fb5478021151
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-30 00:57:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 21:33:01 +0900

    [ruby/openssl] Fix test_ssl.rb in FIPS.

    test_post_connect_check_with_anon_ciphers:
    test_tmp_dh_callback:
    test_tmp_dh:

    DH missing the q value on unknown named parameters (ciphers) is not
    FIPS-approved, according to the FIPS-186-4 APPENDIX B: Key Pair Generation -
    B.1.1 Key Pair Generation Using Extra Random Bits, the inputs p, q, and g are
    required. However, TLS doesn't send q.
    https://csrc.nist.gov/pubs/fips/186-4/final

    OpenSSL has a special workaround to recover the missing "q" value for known
    named parameters, which is the reason why other tests that use the default
    parameters in `lib/openssl/ssl.rb` are working.

    Note that the test_post_connect_check_with_anon_ciphers test got the following error on
    `OpenSSL.debug = true` in FIPS.

    ```
    /home/jaruga/var/git/ruby/openssl/lib/openssl/ssl.rb:551: warning: error on stack: error:0A0C0103:SSL routines:tls_construct_server_key_exchange:internal error
    ```

    test_get_ephemeral_key:

    kRSA (PKCS1-v1_5 padding) is not allowed in FIPS according to the
    NIST SP 800-131A Rev. 2 - 6 Key Agreement and Key Transport Using RSA -
    Table 5: Approval Status for the RSA-based Key Agreement and Key Transport
    Schemes - PKCS1-v1_5 padding - Disallowed after 2023
    https://csrc.nist.gov/pubs/sp/800/131/a/r2/final

    Note that the test_get_ephemeral_key test got the following error on
    `OpenSSL.debug = true` in FIPS.

    ```
    test/openssl/test_ssl.rb:2326: warning: error on stack: error:1C8000A8:Provider routines:rsa_encrypt:invalid padding mode
    ```

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

commit a1f39b4b807a5412181ca3f1bf87e7c7d2d9f542
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-09-17 21:32:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 21:32:50 +0900

    [ruby/openssl] Add AuthTagError exception for AEAD authentication
    failures
    (https://github.com/ruby/openssl/pull/939)

    * Add AuthTagError exception for AEAD authentication failures

    - Add OpenSSL::Cipher::AuthTagError as a subclass of CipherError
    - Raise AuthTagError specifically for AEAD cipher authentication tag verification failures
    - Enhanced error messages: 'AEAD authentication tag verification failed' for auth failures
    - Precise detection: Only EVP_CipherFinal_ex failures in AEAD ciphers raise AuthTagError
    - All other errors (key setup, IV setup, update failures, etc.) still raise CipherError
    - Comprehensive test coverage for GCM/CCM modes and error inheritance
    - Fully backwards compatible: AuthTagError < CipherError

    https://github.com/ruby/openssl/commit/9663b09040

commit 0f3c6ca480d3dab95b355392658972323f890e7d
  Author:     Orgad Shaneh <orgad.shaneh@audiocodes.com>
  AuthorDate: 2025-09-16 02:53:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 21:25:39 +0900

    [ruby/openssl] c_rehash: fix hash_name output for small hashes

    The hash lookup is done by 8-character hash.

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

commit ce1ed871b72dbf427efa748bac586dc2dca14a52
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 20:43:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-17 21:22:11 +0900

    Revert "Already git 2.32 is expected in doc/contributing/building_ruby.md"

    This reverts commit fbc7e935761d892ba6c031256ccbb914963e4ce1.

    Failures with "GCC 8" and "clang 12".
    ```
    /github/workspace/src/tool/lib/vcs.rb:57:in `system': Command failed
    with status (pid 7385 exit 128): ["git", "config", "--global",
    "--add", "safe.directory", "/github/workspace/src"] (RuntimeError)
    ```

commit 08e7b5f2bdef276c7ea65fa3b01f53c1062acf8d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-09-16 19:29:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 21:18:17 +0900

    [ruby/openssl] Revert "pkey: stop retrying after non-retryable error from OSSL_DECODER"

    This reverts commit https://github.com/ruby/openssl/commit/5347880c6eb0 and
    https://github.com/ruby/openssl/commit/985ba27d6339.

    These commits attempted to stop processing after the first relevant PEM
    block, whether it is successful or not, when the input contains multiple
    keys.

    It turned out that it cannot be reliably determined using the
    OSSL_DECODER API. There is an edge case where OSSL_DECODER_from_bio()
    reports "unsupported" even though the input actually contains an error:

    https://redirect.github.com/ruby/openssl/pull/931#discussion_r2347813807

    Revert the changes for now and keep the existing behavior, as partial
    support does not seem worth the added complexity.

    https://github.com/ruby/openssl/commit/319cd4952a

commit 9c85a94f5f1b553ccac3e7f232087424d1854f97
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 18:42:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-17 18:42:18 +0900

    vcs.rb: Drop support for ruby older than 2.6

commit 6094cb51136418a7b545baa84b6ede0aaeb2eaac
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-17 14:14:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    Revert "Handle `uninitialized constant JSON::GenericObject` at ruby/ruby."

    This reverts commit 0dc1cd407e7775610f2bcaef6c1282369867f91c.

    1213adfe5526d65cce81a9fb127074130c8faea7 is fixed this issue.

commit e4fc0d4b3ff483224d7264d1c734532636840da5
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-16 17:45:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    [rubygems/rubygems] Stop trying to remove every file on extraction

    When we're extracting a gem, it should be extracted to an empty
    directory.  Trying to remove every file before extracting the file
    greatly slows the tar extraction process.

    This change increases tar extraction speed by about 10%:

    Master branch:

    ```
    aaron@tc ~/g/tartest (main)> ruby -I../rubygems/lib:../vernier/lib test.rb
    {MEAN: 0.https://github.com/rubygems/rubygems/commit/670195550005}
    {stddev: 0.https://github.com/rubygems/rubygems/commit/029875687861}
    {"mib/s": 20.https://github.com/rubygems/rubygems/commit/889425481677}
    ```

    This commit:

    ```
    aaron@tc ~/g/tartest (main)> ruby -I../rubygems/lib:../vernier/lib test.rb
    {MEAN: 0.https://github.com/rubygems/rubygems/commit/600223749969}
    {stddev: 0.https://github.com/rubygems/rubygems/commit/037224226667}
    {"mib/s": 23.https://github.com/rubygems/rubygems/commit/324635189326}
    ```

    https://github.com/rubygems/rubygems/commit/e40a153560

commit 5a07417c6fb0009570a71c9ae40bb7dde5607c42
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    [rubygems/rubygems] Finalize `bundle install --binstubs` removal

    https://github.com/rubygems/rubygems/commit/ccb65ce0ea

commit a16c88ec9d58e37f810ab1e35f0b1276a743cd4c
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    [rubygems/rubygems] Fix grammar in `bundle install --binstubs` removal message

    https://github.com/rubygems/rubygems/commit/feb258c712

commit 7c5613a63865553c4191e82249c157e8a16eca75
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:20:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    [rubygems/rubygems] Move `bundle install --binstubs` deprecation to cli.rb

    For consistency with the other deprecations.

    https://github.com/rubygems/rubygems/commit/28e300cee1

commit 19a363680f2e009df275c3f973a35a6a703033db
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-17 15:42:23 +0900

    [rubygems/rubygems] Make `bundle remove --install` raise an error

    https://github.com/rubygems/rubygems/commit/444022cfd3

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

    Skip `TestSyncWithCommits` on other than particular platforms

    No one uses `sync_default_gems_with` on other platforms; it is used by
    the dedicated workflow and a few developers only.

commit fbc7e935761d892ba6c031256ccbb914963e4ce1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 11:25:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-17 14:34:57 +0900

    Already git 2.32 is expected in doc/contributing/building_ruby.md

commit 885860d233954facf47b279f47823aeabbd14c4a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 08:35:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-17 11:23:18 +0900

    Fix git version comparison

commit 13a57c9c35866f25b0b12fbe4c4df475711b09eb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-17 08:16:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-17 11:23:17 +0900

    sync_default_gems.rb: Set git configurations for EOL code of logs

commit 6eb9dfcbdca1f5ee0d77a81a3ab5ed34a72cb579
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-17 07:26:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-17 09:41:00 +0900

    ZJIT: Remove unused counters

    Follow-up on https://github.com/ruby/ruby/pull/14565

    I meant to push this this as well but it was left un-committed locally.

commit f23cac262228d773b6866dcc99da4fa31a2aaf31
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-17 09:35:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 09:36:00 +0900

    [ruby/erb] [DOC] More on bindings
    (https://github.com/ruby/erb/pull/74)

    https://github.com/ruby/erb/commit/125ce1f897

commit 52b22f815fc11c3f52ef7e045c93c7bfebfb31d7
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-09-17 08:38:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-17 08:38:53 +0900

    ZJIT: Debug mechanism to verify leafness for `gen_prepare_call_with_gc` (#14553)

    * functional debug mechanism; small refactor

    * make all tests pass

    * clean up implementation of debug mechanism for gen_prepare_call_with_gc

    * revert unnecessary change to gen_object_alloc

    * make ObjectAlloc non-leaf

    * fix merge error; reintroduce accidentally deleted counter

    * remove outdated comment

    * changes as per review comments

    * make set_stack_canary more stable

    * add todo comment to specialize object_alloc

    * revert whitespace changes

    * create gen_prepare_leaf_call_with_gc helper

    * fix spacing

commit c7c6bcc9c80e39ac12d2dfed9f1d0f7bd3610326
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-09-17 04:41:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-17 04:41:08 +0900

    ZJIT: Print local names in FrameState (#14571)

commit ae815860b1ab56cdf2f40e90d23d95b560bb77f8
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-17 03:45:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 03:45:46 +0900

    [ruby/erb] [DOC] Enhanced doc for ERB.result
    (https://github.com/ruby/erb/pull/73)

    https://github.com/ruby/erb/commit/04bb746fc7

commit bc5dfa00f18756cfd3a62a9a61dbfdbe075c57c7
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-17 03:20:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 03:20:33 +0900

    [ruby/erb] [DOC] Improve section 'In Brief' in ERB class doc
    (https://github.com/ruby/erb/pull/71)

    https://github.com/ruby/erb/commit/f4abab7195

commit 240157877cb819bbc2cfbdbcc89e6e33c406b4e2
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-17 03:20:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 03:20:12 +0900

    [ruby/erb] [DOC] Enhanced doc for ERB.version
    (https://github.com/ruby/erb/pull/72)

    https://github.com/ruby/erb/commit/df7bdcd5cb

commit 4740b026e6b12a0be99cfa3b54f0f7e5f1817075
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-17 00:59:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-17 00:59:20 +0900

    [ruby/erb] [DOC] Fix typos (https://github.com/ruby/erb/pull/70)

    https://github.com/ruby/erb/commit/aae3a5be34

commit 81ddbf3a005b8c09afbdb19500a29f162840be37
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 22:10:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 22:11:15 +0900

    Check git version on mswin

commit 809dfb861ef0599c2572f10236aaf25c2093f6af
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-16 00:24:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-16 21:35:45 +0900

    Don't export rb_imemo_new

    Nothing needs rb_imemo_new exported anymore.

commit a6a5fe322289c6daf1b1a8a96f4f244ed1f0e814
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 20:28:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 20:28:37 +0900

    Suppress verification messages

    `log.showSignature` configuration and `--no-show-signature` option was
    added at git 2.10.0.

commit 5480a9c34457fc93a913cecddf361e0531ee1f26
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 17:38:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 20:28:37 +0900

    Reject git command that does not accept `-C` option

commit a2849239db9a92c3cde75724f92688e230718cc6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 17:20:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 20:28:37 +0900

    Expect `git -C <path>` to work

    This option is available since git 1.8.5 that was released in 2013.

commit 971174054a26be0a4becbe7c67a7cc980158abf2
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-09-05 02:59:42 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-09-16 19:37:26 +0900

    Add a macro to manage the condition of no-inline version rb_current_ec

    Add the macro `RB_THREAD_CURRENT_EC_NOINLINE` to manage the condition to use
    no-inline version rb_current_ec for a better maintainability.

    Note that the `vm_core.h` includes the `THREAD_IMPL_H` by the
    `#include THREAD_IMPL_H`. The `THREAD_IMPL_H` can be `thread_none.h`,
    `thread_pthread.h` or `thread_win32.h` according to the
    `tool/m4/ruby_thread.m4` creating the `THREAD_IMPL_H`.

    The change in this commit only defining the `RB_THREAD_CURRENT_EC_NOINLINE` in
    the `thread_pthread.h` is okay in this situation. Because in the
    `thread_none.h` case, the thread feature is not used at all, including
    Thread-Local Storage (TLS), and in the `thread_win32.h` case, the
    `RB_THREAD_LOCAL_SPECIFIER` is not defined. In the `thread_pthread.h` case, the
    `RB_THREAD_LOCAL_SPECIFIER` is defined in the `configure.ac`. In the
    `thread_none.h` case, the `RB_THREAD_LOCAL_SPECIFIER` is defined in the
    `thread_none.h`.

commit 1213adfe5526d65cce81a9fb127074130c8faea7
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-15 23:26:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [ruby/json] Better handle missing ostruct

    In the Ruby test suite, this test class is causing trouble because
    ostruct is not available. Having an autoload for JSON::GenericObject but
    causing it not to define the constant causes a warning.

    See https://github.com/ruby/json/commit/0dc1cd407e77 and
    https://github.com/ruby/json/commit/caa5d8cdd748 in ruby.

    We can skip defining the test class entirely instead when ostruct is not
    available.

    https://github.com/ruby/json/commit/6f6a4cdfd7

commit db027afebd3ee8ef3fd70ffea2ef7756f48003ce
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Remove aggregate source mentions

    It's a term from times with multiple remote sources, let's move on :)

    https://github.com/rubygems/rubygems/commit/6439b8944e

commit 6adcc5596884619e386d5412e94ef4443868b94f
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:18:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Completely remove multisources support

    https://github.com/rubygems/rubygems/commit/8f9d6c54a1

commit 9878060181d2592c26dce0c314a8b4b6e4826646
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 17:55:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Simplify an edge case of not adding lower bound requirements

    https://github.com/rubygems/rubygems/commit/1bc5e74281

commit 26f9911c7190d5343fb775f54fc2472cd6fe632b
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 17:43:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Multisource checks are only relevant when there's a lockfile

    https://github.com/rubygems/rubygems/commit/4c110d3289

commit 0a5a0eeab45fb2db176b681159b328b3fdf95408
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 17:32:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Handle locked sources more simillarly to locked specs

    https://github.com/rubygems/rubygems/commit/0a2f5ed717

commit 12aa9e7457458245c9452ca5f786f6191742edf2
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-13 07:34:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Use `IO.copy_stream` with IO object directly

    Before this patch we would use `IO.copy_stream` with the tar entry
    object rather than just straight to the IO.  That means every time
    copy_stream wanted data, we would have to proxy the call.

    The reason we did this is because every tar entry object _shares_ the
    same IO object, and previous to https://github.com/rubygems/rubygems/commit/8927533b0a47
    we would call `IO.copy_stream` _without_ a size.  Without passing a
    size, copy_stream will just read until there is nothing left to read, so
    these proxy object emulate finding "the end of the file" (where "end of
    file" means "end of tar chunk").  Without emulating this "end of file"
    behavior, copy_stream would just keep reading past the end of the tar
    chunk.

    However, now that we're passing the size to copy_stream, we can bypass
    the proxy object overhead and just use the IO object directly because
    copy_stream knows exactly the number of bytes it needs to read and will
    stop when it reaches the goal.

    https://github.com/rubygems/rubygems/commit/857002c135

commit 6b0af3135264351d0bbaaf5cf6b207a9c84b6e76
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:18:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Remove `allow_offline_install` setting

    And let the feature always be enabled, so I'm not sure why we'd need
    this configurable.

    https://github.com/rubygems/rubygems/commit/5a27f0c1e3

commit 190a235464398c5b8f556cbf221bfaec8680e3b8
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Complete rubocop flags and settings removal

    If the CLI flags are used, we abort early as usual.

    As per the settings, I decided to ignore them. We've been migrating them
    automatically to the new name for a long time and we don't yet have a
    standard way to deprecate and remove settings (we should probably use
    the existing setting validators). So I think it's fine for now to do
    what we normally do (ignore the setting).

    https://github.com/rubygems/rubygems/commit/8311de6e69

commit 1c7fd141f911d97d1f5a2737d0a36cb608100bdc
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:19:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Fix `--no-rubocop` deprecation message

    https://github.com/rubygems/rubygems/commit/2c16b0e11e

commit 9b45a25c4897b0e9565dad9fa7a0765b68732679
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-10 02:18:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Fix `rubocop` config removal message

    In Bundler 4, configuration will no longer be updated.

    https://github.com/rubygems/rubygems/commit/33a4718d7a

commit a71b339477a291a93fc9f83266eaad3423df6acc
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-12 16:29:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Pass the file size to IO.copy_stream

    When extracting tar files, the tar header actually knows the exact size
    of the file we need to extract.  Before this commit, we would read the
    file from the tar file until it returned `nil`. We can be a little more
    efficient when copying by passing the size to copy_stream

    https://github.com/rubygems/rubygems/commit/8927533b0a

commit ca9c0f91311e01625e10272798ff2cc831bbee60
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-11 17:27:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-16 17:17:32 +0900

    [rubygems/rubygems] Use File#chmod rather than FileUtils.chmod

    We already have the open file descriptor, so we can avoid the overhead
    of resolving the filepath (as well as the overhead inside `FileUtils`)
    by just calling `chmod` on the file descriptor itself.

    https://github.com/rubygems/rubygems/commit/60c14bbeee

commit d5f31dcff322fa2f49841056b7825bc4cb01ba64
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 12:09:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 12:09:14 +0900

    CI: Strip CAPI extensions before caching

commit 214bae31215d06cf0611992d90c7a13e1e399090
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 11:08:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 11:08:09 +0900

    CI: Save CAPI extensions if the cache not found

commit 02fd62895d9a13f56253521dedd80e39d4eafbb5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 10:15:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 10:15:00 +0900

    CI: Re-enable Ubuntu arm with CAPI check

    ubuntu-24.04-arm jobs look working as of 2025-09-16.

commit 20d4e27d3f52c801932b1da8387cad9f3ec0f38e
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-16 10:17:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-16 10:17:01 +0900

    ZJIT: Revert VM_CALL_ARGS_SPLAT and VM_CALL_KWARG support (#14565)

commit 6c5960ae1955b66b4a13e03012d53853ee1fd1de
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-16 09:43:41 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-16 09:43:41 +0900

    ZJIT: Support compiling block args (#14537)

commit e4f09a8c94e6e6d21a6dfa43f71d52e4096234d6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-16 06:30:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-16 08:08:13 +0900

    Remove next field and unused method from tmpbuf

    These used to be used by the parser

commit 061f9b8bfdde47371df97a1d3d6a4c4eec06b723
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-16 07:48:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-16 07:49:01 +0900

    [ruby/erb] [DOC] More on class ERB
    (https://github.com/ruby/erb/pull/69)

    https://github.com/ruby/erb/commit/d9d73ed58e

commit 7dd9c76ad46af63f76e0df243f76a1720f54d50d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-15 23:50:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-16 00:43:05 +0900

    Make imemo_tmpbuf not write-barrier protected

    imemo_tmpbuf is not write-barrier protected and uses mark maybe to mark
    the buffer it holds. The normal rb_imemo_new creates a write-barrier
    protected object which can make the tmpbuf miss marking references.

commit 1e3e04cd657c35fdd8d95096195d6b72b64e516c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-15 23:47:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-16 00:43:05 +0900

    Move rb_imemo_tmpbuf_new to imemo.c

commit 61df125325c4f5cad0fd63a831f7afd4c3e71dba
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-16 00:11:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-16 00:13:37 +0900

    [DOC] Markup code in `Float::MIN` document

commit b08573c8150c97822b05b743d5ebb8c4fff5315f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-14 18:43:34 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-16 00:10:34 +0900

    [ruby/prism] Fix back reference for ruby_parser on Ruby 2.7

    Symbol#name is only a thing since Ruby 3.0

    https://github.com/ruby/prism/commit/2de82b15fc

commit 6c34880111a0978407224fc353c35f2a3a0a981a
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-15 23:18:46 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-16 00:10:34 +0900

    [ruby/prism] Fix character literal forced encoding

    If a character literal was followed by a string concatenation, then
    the forced encoding of the string concatenation could accidentally
    overwrite the explicit encoding of the character literal. We now
    handle this properly.

    https://github.com/ruby/prism/commit/125c375d74

commit 23c04a9be7a842c3897ee7a8c926353b607bf7dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-15 23:18:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-15 23:18:17 +0900

    [DOC] Markup as markdown

commit b0ce1fd549a3227ef4d9f65e4cdf0df93e4adeb0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-14 03:10:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-15 22:25:20 +0900

    Combine rb_imemo_tmpbuf_auto_free_pointer and rb_imemo_tmpbuf_new

commit 70210acab046239beedf880edf0330e3cb389ce8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-15 22:10:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-15 22:14:52 +0900

    [ruby/optparse] Prefer `Proc` over `Method`

    The performances are: block > proc > method object.

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

commit d89b45339223035433a8036c371f86e12134d36a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-15 22:10:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-15 22:10:13 +0900

    [DOC] Tweaks for String#oct

commit 9299cf31b1607859daf89772b777f19f426bed80
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-15 15:39:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-15 20:03:12 +0900

    [ruby/prism] Fix warn polyfill when no uplevel is provided

    An unspecified uplevel is not the same as an uplevel of 1:

    ```
    $ irb
    irb(main):001> warn("foo")
    foo
    => nil
    irb(main):002> warn("foo", uplevel: 1)
    /home/user/.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/irb-1.14.0/lib/irb/workspace.rb:121: warning: foo
    => nil
    ```

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

commit 8ad5a0a8d92c1e8da7d1c26b1bc2495712cf41f3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-15 18:51:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-15 19:08:02 +0900

    [DOC] Fix typos in comments

commit 6d2f93f17022bb89ffed7c8f12ad6a8ef048e2b2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-15 16:56:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-15 17:02:07 +0900

    [ruby/date] Suppress maybe-uninitialized warning by gcc-13

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

commit 9f024c2240b10408a03634b708b3a98a07126ffc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-15 16:00:02 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-15 16:00:02 +0900

    Share `TestObject::ToStrCounter` class

commit cb35cc630c1a0f343623317bcbc69c62f89b3be6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-15 14:56:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-15 14:56:28 +0900

    Make PRISM_BUILD_DIR even when baseruby is available

    It is needed before updating the timestamp for prism/srcs.mk.

commit f18af456577a870600f2f766aed8ac6b77af9720
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-07 21:49:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-15 13:05:17 +0900

    Set `$extmk` in extmk.rb

    Get rid of `File.identical?` on a WebDAV-mounted drive.

commit c4ac3e987bf05a743ef9dcfb653bbb7e5b8637df
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-14 20:57:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-14 20:57:56 +0900

    Save CAPI extensions cache not-cached master only

commit 214ba4074d11ba3e610546700298caba89a35071
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-14 17:25:11 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-14 18:37:01 +0900

    win32: Also ruby/confg.h depends on the ABI version header

commit 4491c6737d686a426865f8bf518b19a6857907da
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-14 14:28:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-14 14:28:57 +0900

    Remove `RGENGC_OBJ_INFO` compilations check

    Now it is always compiled (and will be optimized away).

commit 52283b44ffff21a5f79c084bbb5bb6a256842cbd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-14 14:15:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-14 14:15:55 +0900

    Compile `RGENGC_OBJ_INFO` case statically

    Make this macro condition as compile-time constant instead of a
    preprocess-time constant, and compile the body always.

commit 67cc574dfb1943a9cb052478cc84d0c8823d0527
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-14 12:25:25 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-14 13:19:25 +0900

    Remove tests do not test Regexp methods

    The backslashs in these tests are parsed as escapes in string literals
    by the parser, but not passed to the `Regexp` methods.

commit 5cfd49fee4febedf59b53439199f02b40239ab02
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-14 12:49:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-14 12:49:39 +0900

    [ruby/erb] [DOC] Enhanced doc for ERB.new
    (https://github.com/ruby/erb/pull/68)

    https://github.com/ruby/erb/commit/9591b5d23b

commit 5e90d9e2aabebd20c9566744687e63af65a633c0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-12 23:37:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-14 03:10:02 +0900

    Fill extra space in newly allocated object with garbage

    This commit fills the space that is not initialized with garbage for
    newly allocated objects on debug mode.

commit b897a47ae965367eb154eec8abe618711a91f1c1
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 23:09:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 23:16:59 +0900

    [ruby/prism] Documentation for Prism::Translation::Parser

    Make it clear that it parses with the most recent version of Ruby
    syntax.

    https://github.com/ruby/prism/commit/7285d1fbab

commit f4ce5e90b2b9a4ccc7b4a0a25416c577142d2877
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 22:53:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 23:00:04 +0900

    [ruby/prism] Bump to v1.5.1

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

commit e74524616013c616744ebf8168f1ad57eee74a05
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-13 06:30:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 22:46:57 +0900

    [ruby/prism] Revert "Merge pull request #3606 from tenderlove/clear-flags"

    This reverts commit https://github.com/ruby/prism/commit/4052d93cf852, reversing
    changes made to https://github.com/ruby/prism/commit/47143d17b3f7.

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

commit d781d69a06e7d4eef3334e44a25b02d05bad1e2d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 10:13:40 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-13 22:44:57 +0900

    Fix prism error messages with multibyte truncation

    When a line is going to be displayed in an error message that
    contains multibyte characters, we need to respect the encoding
    of the source and truncate only at a character boundary, as
    opposed to a raw byte boundary.

    Fixes [Bug #21528]

commit 4f4b4e3b37c884093a165801b5028c14a7de1604
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 09:51:40 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-13 22:43:59 +0900

    Fill in lead num for blocks with `it`

    Fixes [Bug #21256]

    Co-Authored-By: Earlopain <14981592+Earlopain@users.noreply.github.com>

commit c68a1c3085466436bc790e1039c98897a762c5ac
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 22:24:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 22:24:30 +0900

    [DOC] [Feature #20925] Add leading logical to NEWS

commit aaa9c1913655acd80aea7e7fd2cf2a3fc1db2083
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 22:19:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 22:19:47 +0900

    [DOC] Markup the autolink excluded word library name `Set`

commit ea8b346cbc03bae4857d32456bbd2895ae82e770
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-30 13:03:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 20:20:02 +0900

    Suppress warning from net/http.rb in ruby 3.1

    When `-F` option is given to strip comments in bundled_gems file, `$;`
    is set to the regexp.

    On the other hand, old net/http.rb contained old CVS keyword expansion
    that is `split` with the default separator, and non-nil `$;` causes a
    warning.

    ```ruby
        Revision = %q$Revision$.split[1]
    ```

commit ab3b582acce4c10dbc590653dbee44dbc5521145
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 15:04:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 19:43:06 +0900

    auto-style.rb: Adjust .y file as same as .c

commit 46095d26805de11571697b30adfe234db18efcc9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 15:03:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 19:43:06 +0900

    auto-style.rb: Allow to adjust the given files

commit caa5d8cdd7483647013af5e3d1701b0ed3ec8785
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 19:29:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 19:29:05 +0900

    Exclude `JSON::GenericObject` test

    It depends on ostruct gem that is no longer a part of the default
    gems, and the all tests are just skipped with a warning.

commit 9620964f9c1f2253b350339ee96decf0c04dbbbf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 18:02:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 18:02:55 +0900

    Use API version for syntax version instead of program version

commit 234f4c0bb62b394971eb1044c9c0b1f994d1d4c4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 23:17:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 17:10:44 +0900

    Fix dangling pointers

commit 717ad9f41edc9a2349b6f665dbe49c02e6841370
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 23:16:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 17:10:44 +0900

    Remove an unused expression

commit bb5cd8e0496f567d9e5c4435e9d24113d30212ba
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 16:36:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 16:36:48 +0900

    Get rid of `strcpy` and magic numbers

commit 9b40d2b27514ac510ff9f8dc84e92e1796e5ffcc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 23:12:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 16:32:31 +0900

    Stop at max dlext size

commit 91e56471151ea8250fdd9d3d1fd0ccf9e5416ae3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-19 23:54:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 16:32:30 +0900

    Get rid of `strcpy`

    On OpenBSD:

    ```
    ld: warning: namespace.c:731(namespace.o:(rb_namespace_local_extension)): warning: strcpy() is almost always misused, please use strlcpy()
    ```

commit ff93185f4a2fd6048023a1c8a676b25fe474ef11
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-13 14:50:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 15:42:26 +0900

    Remove excludes

commit 618224adf620bd72645b3fada4f51e805196f5ca
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-23 14:39:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 15:42:26 +0900

    [Feature #20925] Support leading logical operators

commit 10f748480be666a280a20826a73824129e91cd88
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 23:14:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-13 13:21:57 +0900

    Just touch the timestamp for prism/srcs.mk when no baseruby

commit a8c829e7f0dc20c3213d23fb9722fabc74fe1a9d
  Author:     yui-knk <spiketeika@gmail.com>
  AuthorDate: 2025-08-29 16:26:52 +0900
  Commit:     yui-knk <spiketeika@gmail.com>
  CommitDate: 2025-09-13 11:58:07 +0900

    [Bug #17398] Allow `private def hello = puts "Hello"`

commit 599f58fb8387b0cbb29c79579528bd6f444edea9
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-13 06:47:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 06:48:03 +0900

    [ruby/erb] [DOC] Enhanced documentation for class ERB
    (https://github.com/ruby/erb/pull/67)

    https://github.com/ruby/erb/commit/7646ece279

commit ea8d49376375bf3029abe8851ef88f880eeb0e1a
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-13 05:49:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-13 05:49:35 +0900

    Explicitly use a ruby version for prism to parse the code as (#14523)

    Prism can parse multiple versions of ruby. Because of that branch release managers are ok with simply
    bumping prism to its latest version.

    However, if no version is specified, it will parse as the latest known version, which can be ahead of the maintenance branch.
    So we need to explicitly pass a version to not accidentally introduce new syntax to maintenance branches.

commit d3cb347a40ef789f37f5a4723ecb3ada7e8605a9
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-13 05:34:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-13 05:34:55 +0900

    ZJIT: Share more code with YJIT in jit.c (#14520)

    * ZJIT: Share more code with YJIT in jit.c

    * Fix ZJIT references to JIT

commit eaf64af61e4cd26200bf5f293693721ba085442f
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-09-13 04:55:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-13 04:55:03 +0900

    ZJIT: Let fallbacks handle unknown call types (#14518)

commit f0578492add4af39244e5f4758136b6b921878ca
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 04:19:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 04:29:42 +0900

    [ruby/prism] Bump to v1.5.0

    https://github.com/ruby/prism/commit/194edab827

commit 1efccd5f5672c7ecbea231784f8876d12f7758b8
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-13 03:26:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-13 04:20:51 +0900

    Exclude leading logical tests for parsey

    Prism implemented https://bugs.ruby-lang.org/issues/20925 but
    parse.y doesn't seem to support it yet and is failing related Prism tests
    on CI.

    This adds excludes for the tests that are failing.

commit 869c63bcc3fb8d518fcc5eea30b57299eb07fd03
  Author:     Alexander Momchilov <alexander.momchilov@shopify.com>
  AuthorDate: 2024-08-31 05:11:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 04:07:20 +0900

    [ruby/prism] Add `\memberof` annotations

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

commit 043ff370c1f16e69a55b38250528cbcf263b3567
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-09-13 03:07:28 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-13 04:00:01 +0900

    Update test syntax to handle command call endless methods

commit f2dbc4ec82a0e103ac1e3f64f5983540cdc75fd3
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-02 20:29:35 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-09-13 04:00:01 +0900

    [ruby/prism] [Bug #17398] Allow `private def hello = puts "Hello"`

    This was a limitation of parse.y that prism intentionally replicated.

    https://github.com/ruby/prism/commit/8fd12d594c

commit 120d3b12a9981f547b07c937dd183c0abe77c6cb
  Author:     Alexander Momchilov <alexander.momchilov@shopify.com>
  AuthorDate: 2024-08-31 04:02:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 03:40:43 +0900

    [ruby/prism] Add links to code refs in docs

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

commit a9b35b3a0777e299b27d039b4b09fe8bdc9984c8
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-12 22:32:30 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-13 03:13:59 +0900

    Remove useless field in rb_imemo_tmpbuf_t

commit 2c9afcc3896c9c18f6ea8278f479a379401551a1
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-22 05:36:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:51:39 +0900

    [ruby/prism] Support leading logical operators

    https://github.com/ruby/prism/commit/3f58fa7705

commit 0803b9a6acd6634fd24ec9cc53725eafbaccb856
  Author:     Alexander Momchilov <alexander.momchilov@shopify.com>
  AuthorDate: 2024-09-16 22:45:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:36:29 +0900

    [ruby/prism] Document lifetime of `pm_options_t`

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

commit dcfd98b00537e53505c6be8e53cba01ad22ba416
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-07-02 23:56:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:42 +0900

    [ruby/prism] Add field documentation for PinnedExpressionNode

    https://github.com/ruby/prism/commit/0d94291416

commit aaeeac441eb88d59631a48f808ccce59a9c30b86
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-30 00:17:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:42 +0900

    [ruby/prism] Add field documentation for PinnedVariableNode

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

commit bfd6da7448dbb32916d9802308fe2c136ae58e9a
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-28 21:16:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:42 +0900

    [ruby/prism] Add field documentation for FindPatternNode

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

commit 22702a1e3b5d9789360b3fc72ca5c82ddff38828
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-28 21:07:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:41 +0900

    [ruby/prism] Add field documentation for HashPatternNode

    https://github.com/ruby/prism/commit/9b7dfcc3e0

commit 8efa67034947352f32e3c56aa6338eea6611c8b7
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-28 20:37:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:41 +0900

    [ruby/prism] Add field documentation for ArrayPatternNode

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

commit 9fddf5a032d6c3b7982fc0f7213c008e9bc17abc
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-28 18:58:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:41 +0900

    [ruby/prism] Add pattern match documentation example to LocalVariableTargetNode

    https://github.com/ruby/prism/commit/193984b760

commit dd3aa0a52c564624a1e15b4447c3dc291304dda5
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2024-06-28 18:56:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-13 02:16:40 +0900

    [ruby/prism] Add field documentation for MatchRequiredNode

    https://github.com/ruby/prism/commit/03ca35b3ab

commit d8e9ec6693d5f88457b35a3cbf890f8247cfe20e
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-13 02:01:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-13 02:01:45 +0900

    ZJIT: Add specific dynamic send type counters (#14528)

commit a35ceeedfada7cd556462401bef795470c38d41f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-13 01:19:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-13 01:19:43 +0900

    Revert "Just touch the timestamp for prism/srcs.mk when no baseruby"

    This reverts commit 5a2cedd051634d6d1c8fbf48b0327f8cd8eec495.

    The CI is telling us to revert the diff:
    https://github.com/ruby/ruby/actions/runs/17679836157/job/50251138515

commit 691a5545e6161cf8c2f574ae9fc69df1232cda97
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-12 23:16:52 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-13 01:07:53 +0900

    Restore test example for argument forwarding

    Since cb419e3912f0514b8151469b0a4a4b83cbbcce78 we're no longer testing
    this case because foo is redefined on obj1.

commit 8a30594d2cf22c223d57f0fb3832c67b5bbdc76d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-09-12 23:02:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 23:22:29 +0900

    [ruby/openssl] pkey: fix loading public keys with early OpenSSL 3.0.x releases

    Treat an empty error queue after calling OSSL_DECODER_from_bio() as a
    retryable error.

    This is a follow-up to the previous commit https://github.com/ruby/openssl/commit/985ba27d6339 (pkey: stop
    retrying after non-retryable error from OSSL_DECODER). The commit broke
    loading public keys on Ubuntu 22.04 LTS, which ships OpenSSL 3.0.2.

    https://github.com/ruby/openssl/commit/5347880c6e

commit 5a2cedd051634d6d1c8fbf48b0327f8cd8eec495
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 23:14:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-12 23:15:23 +0900

    Just touch the timestamp for prism/srcs.mk when no baseruby

commit adcde78dbf0cc6f6a536aa15c0807f15c9daa22f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 21:47:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-12 23:05:24 +0900

    Use IMEMO_NEW in rb_imemo_tmpbuf_new

commit 95ae42cea1df8015876d185387091a4fb617b82d
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-12 22:30:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-12 22:30:50 +0900

    [DOC] Tweaks for String#match (#14476)

commit fbeeb89b3d442d3be27544b058cc9d5b5dc4accc
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-12 22:14:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-12 22:14:24 +0900

    [DOC] Tweaks for String#match? (#14477)

commit a8c5b2bf510161b56a18ee7e9fd96ca63b04f393
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-12 22:12:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-12 22:12:09 +0900

    [DOC] Tweaks for String#lstrip

commit c0820058243842d1391d896baf67914a8ea50e13
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-13 03:08:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 21:26:07 +0900

    [ruby/openssl] pkey: stop retrying after non-retryable error from OSSL_DECODER

    Continue processing only when OSSL_DECODER_from_bio() returns the error
    code ERR_R_UNSUPPORTED. Otherwise, raise an exception without retrying
    decoding the input in another format.

    This fixes another case where OpenSSL::PKey.read prompts for a
    passphrase multiple times when the input contains multiple
    passphrase-protected PEM blocks and the first one cannot be decoded.

    I am not entirely sure if the error code ERR_R_UNSUPPORTED is considered
    part of the public interface of OpenSSL, but this seems to be the only
    option available and is the approach used internally by the
    PEM_read_bio_*() functions.

    Fixes https://github.com/ruby/openssl/issues/927

    https://github.com/ruby/openssl/commit/985ba27d63

commit 8af8582d4c3baf0ba41f8b54b43839ec8ba3dc3d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-03 19:50:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 21:26:07 +0900

    [ruby/openssl] pkey: pass pem_password_cb to OSSL_DECODER only when it is needed

    Specify OSSL_DECODER_CTX_set_pem_password_cb() only when we expect a
    passphrase-protected private key.

    OSSL_DECODER appears to try to decrypt every PEM block in the input even
    when the PEM header does not match the requested selection. This can
    cause repeated prompts for a passphrase in a single OpenSSL::PKey.read
    call.

    https://github.com/ruby/openssl/commit/933503f49f

commit aca0faf5fd34b1494c417bec75fe8f3baa05db0e
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-07-04 23:35:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 21:26:06 +0900

    [ruby/openssl] pkey: add more tests for OpenSSL::PKey.read

    Add tests covering edge cases in the current behavior to prevent
    accidental regressions. The next patches will update the OpenSSL 3.x
    path.

    https://github.com/ruby/openssl/commit/468f8ceea2

commit 2687ecaf6fc3e07ce3cbe089d0537eb94518c082
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 23:51:00 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-12 21:00:54 +0900

    Fix use of uninitialized memory in strings

    Strings created from the C API with a len but no ptr have a buffer allocated
    and the length set, but the buffer is not zero'd. This causes use of uninitialized
    memory and allows reading memory that previously existed there.

    For example, the rb_str_tmp_new spec fails when we create a string with
    a large length greater than 24 bytes (since we zero the first 24 bytes
    of the slot).

commit 38ec296ce5e7e4cf0ac49b2fa43eec9e6a53e269
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-22 18:38:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-12 20:44:39 +0900

    Remove unused variable warning

commit af210467b5d513fa7444cd64023f207aa2aaea14
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-22 17:38:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-12 20:44:39 +0900

    Suppress warnings when testing RubyVM::AbstractSyntaxTree

commit 1902c42b1f3d81874e1d8503a1f2d373c1d5590a
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-21 23:53:44 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-12 20:44:39 +0900

    Remove block may be ignored warnings from TestRubyOptimization#test_block_given_aset_aref

commit d39fdee9e5653cf00971b4e77d8e14e10d012bcd
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-21 23:52:38 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-12 20:44:39 +0900

    Remove redefined method warnings from TestRubyOptimization#test_opt_new

commit 7a05dbc47831a655a1ef8a1635f88292acd325da
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-08 20:30:44 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-12 16:24:31 +0900

    File.dirname: return consistent encoding for `"."`

    [Bug #21561]

    It's preferable if the method is consistent in the encoding in
    the returned string.

commit 09ae509c1f5f6804d8f43564d9e60a7d711074a7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-11 17:04:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [ruby/json] Enable coverage before loading simplecov

    Fix: https://github.com/ruby/json/pull/853

    Simplecov end up requiring json so we need to start collecting
    coverage before.

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

commit 98beabd66687b741cd2d72d7e0517ae23100d2ff
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-09-10 20:18:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [rubygems/rubygems] Fix outdated lockfile during `bundle lock` when source changes

    When the source used to be git and switches back to rubygems,
    it is possible that the git source contains a version that
    ruybgems doesn't know about yet.

    So don't add the locked spec to the base resolve, and also don't add a
    lower bound requirement on the version, since the version in the new
    source may actually be lower.

    https://github.com/rubygems/rubygems/commit/85514e3a1e

commit 92bddb4529b7c788cc627b11a90917d31b33072b
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-11 20:42:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [rubygems/rubygems] Consolidate condition on path sources

    It matches the comment above more naturally and it's consistent with how
    the same thing is checked in other places.

    https://github.com/rubygems/rubygems/commit/59ec6b4b29

commit 2330033a90f580be47a58748c178570ab5c3de3b
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-11 20:33:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [rubygems/rubygems] Remove unnecessary condition

    It sounds like this should apply to all git sources at this point.

    https://github.com/rubygems/rubygems/commit/b1817f91de

commit e6ca24f1166d7f4840ca8c78a2933f86d7c03a6c
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-11 15:00:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [rubygems/rubygems] If name is to be unlocked, we can skip converging the spec

    https://github.com/rubygems/rubygems/commit/744b35412e

commit 6d2c7d7d0ff7029c39f5137a228aa15e45f01d7b
  Author:     Matheus Richard <matheusrichardt@gmail.com>
  AuthorDate: 2025-09-11 02:12:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-12 14:03:29 +0900

    [rubygems/rubygems] Raise error on missing version file

    If the file option is given but the file not found, raise a GemfileError
    with a message indicating the file was not found.

    Currently this is raising a generic Errno::ENOENT error.

    https://github.com/rubygems/rubygems/commit/db61de6b21

commit cd85fe5a87f3f7cac92b132f9f195a3d39685a37
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-12 12:33:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-12 13:51:47 +0900

    ZJIT: Add support for stats_allocator

    * Using the shared jit crate, support for a single global_allocator can
    function
    * Solves --zjit-mem-size

commit f75e1cb362f57aa9e18c42026adec39b86d4e5c6
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-12 12:32:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-12 13:51:47 +0900

    ZJIT: Move jit.rs to ruby.rs and create a shared crate `jit`

    * ruby.rs should hold the main entrypoint to YJIT and ZJIT
    * The crate jit will hold code shared between them

commit 30f85ce5302d4e8da5852726db9a2bc607b5aeec
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-12 12:29:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-12 13:51:47 +0900

    YJIT: Remove cargo from release builds

    * Release builds depend only on `rustc` for sake of packaging. Removing
    it from the image ensures that passing the CI implies that only `rustc`
    is required.

commit 4131ace07ab604a39acd56de3597ea3e1f785c4e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-12 13:50:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-12 13:50:27 +0900

    ZJIT, YJIT: Drop "// From xxx.h" comments in bindgen (#14519)

commit ca70f442b8a49cd8fe6b62abbf067cd953d29664
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 11:28:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-12 12:08:40 +0900

    Matrix for extra checks

commit 0dbf3c080b62ad83dbb2db78e442c24ab856454b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-12 11:02:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-12 12:08:40 +0900

    Show annotation

commit 0b264a25c6959bfa2bffe3484e5921fa5fd72088
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-11 23:24:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-12 12:08:40 +0900

    ABI version is defined only in master

commit 82928739c3045ae895675194b9c9f03566ce3e86
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-19 23:33:46 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-12 10:32:06 +0900

    ZJIT: Check for VM stack overflow

    Previously, the included test crashed or turned into an infinite
    loop due to the missing check.

commit f7f0f67a1fcc0a4a407307b1328625f71e263cba
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-12 03:48:21 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-12 04:35:29 +0900

    Don't load set_spec.c if not Ruby 3.5

commit dcaee20c6908dfe8d4ae0b8e5c6f31e8fcb7c6c1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-12 03:43:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-12 04:35:29 +0900

    Fix compilation of set_spec.c for previous Ruby versions

    Set was moved to C only in Ruby 3.5, so it does not compile on Ruby 3.4
    and earlier.

commit f17405b69cb8b66feed289d9f857c38ce70bfe26
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-08-30 05:35:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 00:55:55 +0900

    [ruby/prism] Reject some cases with `return` and command calls

    The same also applies to `break`/`next`.

    https://bugs.ruby-lang.org/issues/21540

    https://github.com/ruby/prism/commit/3a38b192e3

commit e39fd456ac5c4c82e483431afc266b5066f00eba
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-09-08 12:14:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-12 00:00:14 +0900

    [ruby/prism] Use pm_arguments_end for function call

    Previously, the location of CallNode was incorrect when it accepts a
    block parameter:

    ```
    $ ruby -rprism -e 'pp Prism.parse("foo(&blk)").value.statements.body[0]']
    @ CallNode (location: (1,0)-(1,8))  # <=== It should be (1,0)-(1,9)
    ├── flags: ∅
    ├── receiver: ∅
    ├── call_operator_loc: ∅
    ├── name: :foo
    ├── message_loc: (1,0)-(1,3) = "foo"
    ├── opening_loc: (1,3)-(1,4) = "("
    ├── arguments: ∅
    ├── closing_loc: (1,8)-(1,9) = ")"
    *snip*

    $ ruby -rprism -e 'pp Prism.parse("foo(&blk)").value.statements.body[0].slice'
    "foo(&blk"
    ```

    Note that the slice lacks the closing parenthesis.

    https://github.com/ruby/prism/commit/3c22e6fc39

commit 17039c566b76854c8246b4a4feb2f5bd2ebf8447
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 22:18:50 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 23:17:31 +0900

    Don't include klass in RZombie

    klass is not used, so we can shrink RZombie down to 32 bytes.

commit aa173bcef826adfb84718314f4d0b4547b118730
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-11 20:50:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-11 21:20:58 +0900

    Run CAPI check separately

commit 7ab8e16b2b4c85f804f212fa9e20ac5f0f5c4ec9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-11 20:29:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-11 21:20:57 +0900

    Check CAPI ext binary compatibility

commit b62753246eba4940f82a81736fc09b6517fa3965
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 08:53:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 21:14:25 +0900

    Fix out-of-bounds read in rb_location_ary_to_backtrace

    rb_location_ary_to_backtrace was not checking the length of the array before
    reading the first element. It can be reproduced by the following script:

        begin
          raise
        rescue
          $@ = []
        end

    With assertions enabled, it crashes with:

        internal/array.h:143: Assertion Failed: RARRAY_AREF:i < RARRAY_LEN(ary)
        ruby 3.5.0dev (2025-09-10T19:01:16Z array-aref-assert-.. c431de0c64) +PRISM [arm64-darwin24]

        -- Crash Report log information --------------------------------------------
          See Crash Report log file in one of the following locations:
            * ~/Library/Logs/DiagnosticReports
            * /Library/Logs/DiagnosticReports
          for more details.
        Don't forget to include the above Crash Report log file in bug reports.

        -- Control frame information -----------------------------------------------
        c:0004 p:---- s:0015 e:000014 CFUNC  :set_backtrace
        c:0003 p:0013 s:0012 e:000009 RESCUE test.rb:4
        c:0002 p:0004 s:0006 e:000005 EVAL   test.rb:1 [FINISH]
        c:0001 p:0000 s:0003 E:001bb0 DUMMY  [FINISH]

        -- Ruby level backtrace information ----------------------------------------
        test.rb:1:in '<main>'
        test.rb:4:in 'rescue in <main>'
        test.rb:4:in 'set_backtrace'

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

        -- C level backtrace information -------------------------------------------
        miniruby(rb_vm_bugreport+0xb88) [0x1002adb88] vm_dump.c:1175
        miniruby(rb_vm_bugreport) (null):0
        miniruby(rb_assert_failure_detail+0xd4) [0x1003fbf90] error.c:1215
        miniruby(rb_assert_failure_detail+0x0) [0x1003fbebc] error.c:1191
        miniruby(rb_assert_failure) (null):0
        miniruby(RARRAY_AREF+0x20) [0x1003f82c8] internal/array.h:143
        miniruby(rb_keyword_error_new.cold.2) class.c:2867
        miniruby(rb_keyword_error_new.cold.4) (null):0
        miniruby(rb_location_ary_to_backtrace+0x244) [0x1002a8a60] internal/array.h:143
        miniruby(RB_TEST+0x0) [0x1000ba648] error.c:2111
        miniruby(exc_set_backtrace) error.c:2112
        miniruby(vm_call0_body+0x7d0) [0x1002a414c] vm_eval.c:164
        miniruby(rb_vm_call0+0x100) [0x100286ee4] vm_eval.c:101
        miniruby(set_backtrace+0xfc) [0x1000c88a4] eval_error.c:75
        miniruby(rb_gvar_set_entry+0x10) [0x100269230] variable.c:990
        miniruby(rb_gvar_set) variable.c:1021
        miniruby(vm_exec_core+0x1258) [0x10027a744] insns.def:319
        miniruby(rb_vm_exec+0x324) [0x100277a8c] vm.c:2666
        miniruby(rb_ec_exec_node+0x74) [0x1000c4a38] eval.c:282
        miniruby(ruby_run_node+0x64) [0x1000c4968] eval.c:320
        miniruby(rb_main+0x1c) [0x100000980] main.c:42
        miniruby(main) main.c:62

commit f164e1c03ac8b509563c7305ff2249c21d7b78b3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 03:55:55 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 21:14:25 +0900

    Fix out-of-bounds read in require when $LOADED_FEATURES is modified

    The following script causes an out-of-bounds read on the $LOADED_FEATURES
    array when it is modified by another thread:

        require "tempfile"
        PATH = Tempfile.create(["test", ".rb"]).path

        2.times.map do
          Thread.new do
            20.times do
              require PATH
              $LOADED_FEATURES.delete_if { |p| p == PATH }
            end
          end
        end.each(&:join)

    Crashes with:

        internal/array.h:143: Assertion Failed: RARRAY_AREF:i < RARRAY_LEN(ary)
        ruby 3.5.0dev (2025-09-10T18:47:06Z array-aref-assert-.. 765a3fd01c) +PRISM [arm64-darwin24]

        -- Crash Report log information --------------------------------------------
          See Crash Report log file in one of the following locations:
            * ~/Library/Logs/DiagnosticReports
            * /Library/Logs/DiagnosticReports
          for more details.
        Don't forget to include the above Crash Report log file in bug reports.

        -- Control frame information -----------------------------------------------
        c:0005 p:---- s:0019 e:000018 CFUNC  :require
        c:0004 p:0005 s:0014 e:000013 BLOCK  test.rb:19
        c:0003 p:0024 s:0011 e:000010 METHOD <internal:numeric>:257
        c:0002 p:0005 s:0006 e:000005 BLOCK  test.rb:18 [FINISH]
        c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

        -- Ruby level backtrace information ----------------------------------------
        test.rb:18:in 'block (2 levels) in <main>'
        <internal:numeric>:257:in 'times'
        test.rb:19:in 'block (3 levels) in <main>'
        test.rb:19:in 'require'

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

        -- C level backtrace information -------------------------------------------
        miniruby(rb_vm_bugreport+0xb88) [0x100f3f1d4] vm_dump.c:1175
        miniruby(rb_vm_bugreport) (null):0
        miniruby(rb_assert_failure_detail+0xd4) [0x10108d920] error.c:1215
        miniruby(rb_assert_failure_detail+0x0) [0x10108d84c] error.c:1191
        miniruby(rb_assert_failure) (null):0
        miniruby(rb_ary_pop.cold.9+0x0) [0x101087198] internal/array.h:143
        miniruby(RARRAY_AREF) (null):0
        miniruby(rb_ary_pop.cold.7) array.c:1443
        miniruby(rb_feature_p+0x720) [0x100dbe28c] internal/array.h:143
        miniruby(search_required+0x2cc) [0x100dbcb78] load.c:1203
        miniruby(require_internal+0x144) [0x100dbd108] load.c:1434
        miniruby(rb_require_string_internal+0x78) [0x100dbc6bc] load.c:1581
        miniruby(rb_require_string+0x20) [0x100dbc56c] load.c:1567
        miniruby(rb_f_require) load.c:1160
        miniruby(vm_call_cfunc_with_frame_+0xe8) [0x100f2e998] vm_insnhelper.c:3873
        miniruby(vm_sendish+0x718) [0x100f08b20]
        miniruby(vm_exec_core+0x6044) [0x100f10a94]
        miniruby(rb_vm_exec+0x170) [0x100f08e3c] vm.c:2639
        miniruby(vm_invoke_proc+0x200) [0x100f1f564] vm.c:1669
        miniruby(thread_do_start_proc+0x2f4) [0x100ed8420] thread.c:605
        miniruby(thread_start_func_2+0x37c) [0x100ed7714] thread.c:622
        miniruby(call_thread_start_func_2+0x18) [0x100eda144] thread_pthread.c:2234
        miniruby(nt_start) thread_pthread.c:2279
        /usr/lib/system/libsystem_pthread.dylib(_pthread_start+0x88) [0x19c0e7c0c]

commit 21d76b423cf4967762dd783dd1114d980e33dac9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 03:47:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 21:14:25 +0900

    Fix out-of-bounds read in Method#inspect for unnamed parameters

    For parameters without names, accessing the name in array index 1 would
    be an out-of-bounds read.

commit 5a946a5be29a099ddaff55b52b5c2ab0cbe61ca1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 03:42:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 21:14:25 +0900

    Change order of RARRAY_AREF and ARY_SET_LEN in rb_ary_pop

    We should access the last element first before we shrink the length of the
    array.

commit 729d602e290a3d986c8fc3d178cf1e56f93a88a4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-11 03:39:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 21:14:25 +0900

    Assert that RARRAY_AREF is within bounds

    We should assert that i is within bounds to prevent buffer overflows.

commit 0dc1cd407e7775610f2bcaef6c1282369867f91c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-11 10:34:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    Handle `uninitialized constant JSON::GenericObject` at ruby/ruby.

    ```
      1) Error:
    JSONGenericObjectTest#test_from_hash:
    Test::Unit::ProxyError: uninitialized constant JSON::GenericObject
        /Users/hsbt/Documents/github.com/ruby/ruby/.ext/common/json/common.rb:1006:in 'JSON.const_missing'
        /Users/hsbt/Documents/github.com/ruby/ruby/test/json/json_generic_object_test.rb:8:in 'JSONGenericObjectTest#setup'
    ```

commit 5e7e6c586e49a7147b3610a66b49e1d7ccd04baa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-11 10:12:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    Revert "test_gem_command_manager.rb.

    This reverts commit 8aa885c460aeb70878538eebdd155c6318989fd2 and
    cd07c3cbae7e287350d713ead237aeef27cc2b9e.

commit e4a93944d1a368c4b464de5391a51fc5ac2ca92e
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 22:27:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Improve test coverage

    Test SubArrayWrapper#[] and SubOpenStruct#[]

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

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 72888b75060f6e5438372328256ab8c1e2a184ae
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 22:26:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Stop checking for OpenStruct#[] and #[]=

    https://github.com/ruby/json/commit/3232e8df41

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 0438b77cf64b4dba31e2c412f7da10b39b5072eb
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 22:22:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Stop checking for String#@-

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

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit b19b4b7b2ac3b1521c99db2d07a6743ea43161fd
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 21:50:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Change invalid encoding test to use assert_raise

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

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 3097a7bd125885ae4a3256542cd4d4aebd1d82da
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 19:17:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Fix deprecation warning backtrace

    The gem root was including the test/ directory, so lines from tests were
    skipped, and the deprecation warnings were shown as coming from the test
    framework.

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

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit fa5bebbcfad4eaa4c259444148a7391ae12e3759
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 19:12:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Fix JSON::GenericObject tests

    https://github.com/ruby/json/commit/7a2a24d663

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 30da3b51c6c97efd49112601fd86ae71ef8171af
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 19:14:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Don't call json_create if json_creatable? returns false

    Fix https://github.com/ruby/json/commit/f411ddf1ceaf

    https://github.com/ruby/json/commit/1397bf8cc9

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit bfd1b30dcab47cd7152f31a93efdcc4dc6441b3c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-09-08 19:11:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [ruby/json] Enable test coverage when simplecov is available

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

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit d0c7f9ad64a972e91cb3471f808bdba8bf2f89f5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-10 16:43:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Added document for Gem::Uninstaller
    (https://github.com/rubygems/rubygems/pull/8904)

    * Added document for Gem::Uninstaller

    * Apply suggestion from @deivid-rodriguez

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

    ---------

    https://github.com/rubygems/rubygems/commit/9aeec8721a

    Co-authored-by: David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>

commit 4febdbc418e14fc73c18321301a78b34cbadb510
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:37:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Remove spec originally meant to test remembering CLI flags

    https://github.com/rubygems/rubygems/commit/4919e5ca53

commit ecd1284bf246ae739890d154706f4f533bc8d77e
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:37:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Complete remembered options removal

    https://github.com/rubygems/rubygems/commit/573ffad3ea

commit 881b585513a69c38e34982584eb5e59ee21ad7a7
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:36:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Introduce a way to ensure that removed flags get their docs removed, too

    https://github.com/rubygems/rubygems/commit/a727b50697

commit c218c66a35cd802652e1f71d02909648a5a34b3a
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:36:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Remove deprecated usages of `bundle install --deployment` during specs

    https://github.com/rubygems/rubygems/commit/c903afbc3f

commit 3486f4d9d8d2d4a64e884de4dce4dabb434a6b28
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:36:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Fix grammar in remembered options removal message

    https://github.com/rubygems/rubygems/commit/825e29a9ec

commit ce19fb50b3d0e04412f3aff66d0d7241b9f888d3
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 21:36:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Add missing part in `bundle cache --path` removal message

    https://github.com/rubygems/rubygems/commit/f5bf473b34

commit 4eb13c61c24d7d8624fc048ded9356fbf560f001
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 19:30:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Remove implementation of `deployment`, `capistrano` and `vlad` entrypoints

    Now they only raise an error.

    https://github.com/rubygems/rubygems/commit/6e7c8db151

commit b4334f83fa7f25e8589f6fa44d9c14f14f2de14d
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-09 17:48:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-11 11:54:49 +0900

    [rubygems/rubygems] Completely remove `Bundle.*clean*` and `Bundler.environment` helpers

    https://github.com/rubygems/rubygems/commit/e1b8bdcede

commit 8d05669bafc06717814b508e433f77836cf375dd
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-11 06:02:21 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-11 07:21:54 +0900

    YJIT: Print more disassembly in release builds

    These `#[cfg(feature = "disasm")]` were unnecessary and we can provide
    the information like ruby source location regardless of the availability
    of capstone.

commit 1b9fc426bbf6b6ca83ef6301f7a11f3fb7cc4f84
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-11 06:04:11 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-11 07:21:54 +0900

    YJIT: Remove dead code: `asm_comment!` checks `--yjit-dump-disasm`

commit bd4de1245f9899463a817d43863bcee520741e50
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-11 06:18:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 06:18:44 +0900

    Explicitly declare VM instruction dependencies (#14509)

    instead of mutating RubyVM::Instructions and letting the order of
    `require` impact its behavior.

    Now that we have both RubyVM::TraceInstruction and
    RubyVM::ZJITInstruction, it feels too much of a tight coupling to rely
    on `require` to be ordered properly.

commit 9401f4e7f28af7cb9e1476c4e513e67ca2a782cd
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 05:35:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-11 06:11:45 +0900

    Skip `vm_cc_invalidate`'s `cc->klass` assertion for multi-ractor for now

    It's failing more frequently on CI in Ractor tests lately. To make allow
    other PRs to land more smoothly, we can skip the assertion for now.

commit 0cec87399df1cdff47f5b7bcfa6a804a2ebd7868
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-11 06:04:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 06:04:33 +0900

    Rename VM instruction classes to singular names (#14507)

commit 23c60e185ea7e74f0eebc27119184fb1ed844856
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 05:37:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 05:37:17 +0900

    YJIT: Tiny refactors (#14505)

    Addressed some suggestions from clippy that made sense to me.

commit 399e2abc4380857134af9f0b037a4723157d14de
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-09-11 01:09:13 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-09-11 05:25:24 +0900

    Allow concurrent_set to be collected in minor GC

    When testing we've found that the concurrent_set objects used for
    fstrings can grow quite large, and because they reach oldgen quickly end
    up not being collected.

    This commit is a bit of a hack but aims to improve that by moving the
    objects to not be WB_PROTECTED. "Unprotected" objects do not age and
    can't become oldgen, so this allows them to be collected in a minor GC.

commit 95936276d3e41b2c48a82922005a3b1429dd9e5a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 05:18:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 05:18:46 +0900

    ZJIT: Revert `self_val` removal and rename it to `recv` (#14504)

    * Revert "ZJIT: Removed unused self_val from Send"

    This reverts commit 13c2f8d5c2b41ec78344ae60f9b5ec1564029418.

    * Revert "ZJIT: Removed unused self_val from InvokeSuper"

    This reverts commit 877b625922e0f8de4e7ad801dd0306e69b34d263.

    * ZJIT: Rename self_val in dispatching HIRs to recv

    * ZJIT: Remove unnecessary constructor param names

commit 0dbaf7e981081eee5665a4144b500efd6da4208b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-11 02:58:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 02:58:49 +0900

    YJIT: Rename `make yjit-smoke-test` to `make yjit-check` (#14502)

commit 3e4af886a45ca52bd410109abe0a9afef5c5a111
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 02:41:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 02:41:17 +0900

    ZJIT: Set ZJIT_RB_BUG to help debugging CI issues (#14500)

commit 8712ac7b38fe14b4dfdb382a897960deebc53c75
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-10 23:13:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-11 02:37:16 +0900

    Fix tempfile leaking in TestRequire

    The test introduced in 928fea3 is leaking files because the Tempfile is
    not cleaned when the process exits. We see this in the output:

        Children under /var/folders/51/_yzlsvf96v9729jtj8_mcp7w0000gn/T/rubytest.7lbdlp:
        * -rw------- 1 0 2025-09-10 10:09:51 -0400 test20250910-13775-g4op87.rb
        * -rw------- 1 0 2025-09-10 10:09:51 -0400 test20250910-13775-pu621v.rb
        * -rw------- 1 0 2025-09-10 10:09:51 -0400 test20250910-13775-4xv688.rb
        * -rw------- 1 0 2025-09-10 10:09:51 -0400 test20250910-13775-1rvp4b.rb

commit 13c2f8d5c2b41ec78344ae60f9b5ec1564029418
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-10 07:16:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-11 02:26:09 +0900

    ZJIT: Removed unused self_val from Send

commit 877b625922e0f8de4e7ad801dd0306e69b34d263
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-10 06:41:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-11 02:26:09 +0900

    ZJIT: Removed unused self_val from InvokeSuper

commit 33cd97006d740211e915ca85a42ffcb55e76919c
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 00:57:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 00:57:52 +0900

    [DOC] ZJIT: Add a section for stats (#14497)

commit d82e9f9ae8d702684a7eb4b2e7509b83629242c2
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-11 00:56:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 00:56:39 +0900

    ZJIT: Support `invokeblock` insn (#14496)

    ZJIT: Support invokeblock insn

    Basically like other send-ish insns, except that it doesn't pop the receiver.

commit 3364d79b9652784ff1d5ba81518d2df162b1618e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-11 00:54:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 00:54:30 +0900

    YJIT: Stop sharing rb_vm_invokesuper among different instructions (#14492)

commit c0e01a271475ae765fc92e31245e42ea2b2d43f6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-11 00:54:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-11 00:54:10 +0900

    ZJIT: Compile ISEQs with forwardable parameters (#14491)

commit 928fea3bfa86053c0bc6f7a5bf7559b115a676b5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-10 02:48:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-10 18:41:24 +0900

    Fix crash when $LOADED_FEATURES is modified during require

    [Bug #21567]

    When we require an object that is not a string, it will attempt to convert
    it to a string by calling to_str on it. If we modify the $LOADED_FEATURES
    array while it calls to_str, Ruby can crash because it can end up inserting
    the string in the wrong index in the array.

    For example, the following script crashes:

        require "tempfile"

        class MyString
          def initialize(path)
            @path = path
          end

          def to_str
            $LOADED_FEATURES.clear
            @path
          end

          def to_path = @path
        end

        def create_ruby_file = Tempfile.create(["test", ".rb"]).path

        require MyString.new(create_ruby_file)
        $LOADED_FEATURES.unshift(create_ruby_file)
        $LOADED_FEATURES << MyString.new(create_ruby_file)
        require create_ruby_file

    Crash log:

        test.rb:21: [BUG] Segmentation fault at 0x0000000000000004
        ruby 3.5.0dev (2025-09-09T09:29:35Z master ce94add7fb) +PRISM [arm64-darwin24]

        -- Crash Report log information --------------------------------------------
          See Crash Report log file in one of the following locations:
            * ~/Library/Logs/DiagnosticReports
            * /Library/Logs/DiagnosticReports
          for more details.
        Don't forget to include the above Crash Report log file in bug reports.

        -- Control frame information -----------------------------------------------
        c:0003 p:---- s:0011 e:000010 CFUNC  :require
        c:0002 p:0076 s:0006 e:000005 EVAL   test.rb:21 [FINISH]
        c:0001 p:0000 s:0003 E:0001b0 DUMMY  [FINISH]

        -- Ruby level backtrace information ----------------------------------------
        test.rb:21:in '<main>'
        test.rb:21:in 'require'

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

        -- Machine register context ------------------------------------------------
          x0: 0x0000000000000004  x1: 0x000000000000c800  x2: 0x0000000000000000
          x3: 0x0000000000000000  x4: 0x0000000000000205  x5: 0x0000000000000000
          x6: 0x0000000000000000  x7: 0x0000000000000001 x18: 0x0000000000000000
        x19: 0x0000000209dfc0b0 x20: 0x0000000209dfc018 x21: 0x000000016ee8ab58
        x22: 0x0fffffff0009d71d x23: 0x0000000209dfc018 x24: 0x0000000209dfc150
        x25: 0x000000016ee8acc0 x26: 0x0000000000000000 x27: 0x0000000000000000
        x28: 0x0000000000000000  lr: 0x0000000101244140  fp: 0x000000016ee887f0
          sp: 0x000000016ee887d0

        -- C level backtrace information -------------------------------------------
        miniruby(rb_print_backtrace+0x24) [0x101317b08] vm_dump.c:843
        miniruby(rb_print_backtrace) (null):0
        miniruby(rb_vm_bugreport+0x26c) [0x101317d94] vm_dump.c:1175
        miniruby(rb_bug_for_fatal_signal+0xa4) [0x10105ddac] error.c:1130
        miniruby(sig_do_nothing+0x0) [0x1012278c0] signal.c:948
        miniruby(sigsegv) (null):0
        /usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x19c1216a4]
        miniruby(rb_str_new_frozen+0x1c) [0x101244140] string.c:1495
        miniruby(rb_check_realpath_internal+0x68) [0x101077804] file.c:4679
        miniruby(rb_check_realpath+0x2c) [0x101077aa4] file.c:4765
        miniruby(get_loaded_features_index+0x37c) [0x1010f9c94] load.c:467
        miniruby(rb_feature_p+0xd0) [0x1010f8174] load.c:582
        miniruby(search_required+0xac) [0x1010f6ad4] load.c:1193
        miniruby(require_internal+0x274) [0x1010f7518] load.c:1424
        miniruby(rb_require_string_internal+0x94) [0x1010f6830] load.c:1571
        miniruby(rb_require_string+0x58) [0x1010f66e8] load.c:1557
        miniruby(rb_f_require+0x1c) [0x1010f6684] load.c:1150
        miniruby(ractor_safe_call_cfunc_1+0x38) [0x101306c28] vm_insnhelper.c:3696
        miniruby(vm_call_cfunc_with_frame_+0x250) [0x1012f857c] vm_insnhelper.c:3873
        miniruby(vm_call_cfunc_with_frame+0x6c) [0x1012f8834] vm_insnhelper.c:3919
        miniruby(vm_sendish+0x1a8) [0x1012c990c] vm_insnhelper.c:6087
        miniruby(vm_exec_core+0x4050) [0x1012cfb48] insns.def:900
        miniruby(vm_exec_loop+0x80) [0x1012e5448] vm.c:2666
        miniruby(rb_vm_exec+0x134) [0x1012c9b40] vm.c:2645
        miniruby(rb_iseq_eval_main+0x34) [0x1012e5628] vm.c:2919
        miniruby(rb_ec_exec_node+0xe4) [0x10106d094] eval.c:282
        miniruby(ruby_run_node+0x94) [0x10106cf64] eval.c:320
        miniruby(rb_main+0x40) [0x100f7499c] main.c:42
        miniruby(main+0x60) [0x100f74928] main.c:62

commit 624538ba927b3d5fa021af0df3c8c29b11ef14f7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-10 12:57:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-10 16:45:25 +0900

    dtoa.c: Check integer underflow

    Reported at https://hackerone.com/reports/3288162

    This underflow does not occur in Ruby because:

    * This function is `static` and not accessible other than from ruby
      internal.

    * Ruby uses mode 0 when calling this function directly.

    * For `%f` in vsnprintf.c using mode 3, this parameter comes from the
      precision, but negative precision is meaningless and ignored.

commit f047174cf16c42843807c8430d18a83d2aa6175e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-10 00:52:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-10 15:34:30 +0900

    dtoa.c: Check memory allocation failures

commit d0c966adcd8cd04830e75c6b720c0c38427b3419
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-10 00:26:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-10 15:34:30 +0900

    dtoa.c: Extract macro to update 5powers Bigint cache atomically

commit 0887d82406c9a9701acd235e8f510480cea9f218
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-10 00:23:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-10 15:34:29 +0900

    dtoa.c: Add shortcut if arguments are zero

commit 6c9a0173332121f15fa0c654b1a728a5be4a31aa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-10 14:36:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-10 14:37:21 +0900

    [ruby/fcntl] Bump up to v1.3.0

    https://github.com/ruby/fcntl/commit/13d8aa4785

commit 37884c4a68cfdc1aafb83aeb102c7cabc20ee27e
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-09-10 07:00:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-09-10 13:42:18 +0900

    [ruby/fcntl] Add macOS specific flags around file preallocation

    I wanted to use file preallocation with fcntl, but the flags weren't
    available.  This commit just adds the missing flags.

    https://github.com/ruby/fcntl/commit/7d4ab83a84

commit 8f040a571b2b8d9da669340351d55f2283a9832a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-10 06:17:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-10 06:17:39 +0900

    ZJIT: Resurrect --seed to stabilize CI (#14489)

commit a734c04b385e8e679609318cb5fc4bdc3e5750ce
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-10 05:48:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-10 05:48:22 +0900

    Revert "ZJIT: Resurrect --seed to stabilize CI"

    This reverts commit 9d0b621b051c0f3cc356c9bedf081456f1d7dfd6.

    It didn't work for `make check`. I'll fix it in a PR.

commit 9d0b621b051c0f3cc356c9bedf081456f1d7dfd6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-10 05:40:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-10 05:40:02 +0900

    ZJIT: Resurrect --seed to stabilize CI

    ref: https://github.com/ruby/ruby/pull/14459

commit d14b4a7008161543f7d979d503f8c4d3b9660e69
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-10 05:25:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-10 05:25:12 +0900

    ZJIT: Remove unneeded omission for optional param test (#14488)

commit 138451f853b07dbe30637c340cca1601e07acd10
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-10 05:22:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-10 05:22:55 +0900

    Notify ZJIT CI failures

commit 72c7d9f4c5d1aa31d0b4b1cd9168328008b4f62a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 08:43:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-10 03:07:10 +0900

    Update JIT bindings

commit 82d62d4bea9194e400661c3f33b5ddb42684df86
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-09 08:17:19 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-10 03:07:10 +0900

    Remove unused fields from iseq_inline_constant_cache_entry

commit 9e3a16220c33201229ad6ec99bf179c7c41d2f58
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-09-08 22:10:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-10 02:33:10 +0900

    [DOC] Tweaks for String#lstrip!

commit d524e795af85d8763f2e0e1203b3a4af131ce984
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-10 01:27:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-10 01:27:01 +0900

    ZJIT: Implement getblockparamproxy (#14483)

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit f7fe43610b7598e35c538269a8adefbc5b59e524
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-09-10 00:58:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-10 00:58:03 +0900

    ZJIT: Optimize `ObjToString` with type guards (#14469)

    * failing test for ObjToString optimization with GuardType

    * profile ObjToString receiver and rewrite with guard

    * adjust integration tests for objtostring type guard optimization

    * Implement new GuardTypeNot HIR; objtostring sends to_s directly on profiled nonstrings

    * codegen for GuardTypeNot

    * typo fixes

    * better name for tests; fix side exit reason for GuardTypeNot

    * revert accidental change

    * make bindgen

    * Fix is_string to identify subclasses of String; fix codegen for identifying if val is String

commit fe362beb899a2b1a3d9012a4ad17b3c48d16b338
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-09-10 00:55:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-10 00:55:00 +0900

    ZJIT: Avoid mutating string in zjit stats (#14485)

    [ZJIT] Avoid mutating string in zjit stats

    GitHub runs with a Symbol patch that causes a frozen string error when
    running `--zjit-stats`

    ```rb
    Class Symbol
      alias_method :to_s, :name
    end
    ```

    I remember hearing that Shopify runs a similar patch, and that we might
    try to make this the default behavior in Ruby some day.

    Any chance we can avoid mutating the string here in case it's frozen?
    That does mean we'll end up making some extra strings when it's not
    frozen, but I think that's OK for printing stats.

commit ce94add7fbef17cbfa10de6a5554455542e1081c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-02 22:24:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-09 18:29:35 +0900

    Fix global variable counter for alias

    If we alias two variable multiple times, for example like this:

        alias $foo $bar
        alias $foo $bar

    Then we will increment the counter for entry2->var->counter each time,
    which is not correct because we are not adding more references to
    entry2->var. This reports as a memory leak in RUBY_FREE_AT_EXIT because
    entry2->var->counter will never reach 0 and thus will never be freed.

commit 8d79187523cdc0b5b961f4e856df8824c241f16e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-02 21:30:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-09 08:18:41 +0900

    Fix undefined behaviour in rb_alias_variable

    entry1 is allocated using xmalloc (through ALLOC), which returns undefined
    memory. We never set the ractor_local field, so the value is undefined.

commit a3eb4601e86ccfca798995860a5bcfb38dd13789
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-09 05:11:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 05:11:34 +0900

    ZJIT, YJIT: Make the workflow names consistent with file names (#14462)

    ZJIT, YJIT: Make the workflow names consistent

    with file names

commit 4263b7eb45f8eb67e3e46af64856736c84f5b73e
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-09-09 04:11:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 04:11:56 +0900

    ZJIT: Add RubyVM::ZJIT.reset_stats! method (GH-14479)

    This allows for more precise tracking of stats programmatically
    which is particularly useful for our nightly benchmarking suite.

    - Define rust function
    - Expose to C
    - Wrap with Ruby API
    - Add a test

commit 80079ba42505d63cafac674bd23c0317e6a5cdd6
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-09 03:56:14 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 03:56:14 +0900

    ZJIT: Fix 30k if stmt test (#14446)

    * ZJIT: Allow label generation above 19 bits

    * Refactor emit_conditional_jump to use generate_branch
    * Make branching functionality generic across Label and CodePtr

    * ZJIT: Add > 19 bit jump test and helper function

    * Remove an empty line

    ---------

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

commit 1b95afdee3260cfb49df1b20b4dc04c70c698251
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-09 03:52:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 03:52:55 +0900

    YJIT: Add more information to an assert message in jit_guard_known_class (#14480)

    * YJIT: Add more information to an assert message

    in jit_guard_known_class

    * Say "should be a heap object" instead

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

    ---------

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit 866e474ac854db0655a89a801f9bc871e9ec1ce0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-09 01:50:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 01:50:33 +0900

    ZJIT: Fix backtraces on opt_new (#14461)

commit 5ee083c71a3893cee0a3a3229eb8b58c0bd13cba
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-09 00:55:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-09 01:33:51 +0900

    Bump ABI version

    Followup changes in https://github.com/ruby/ruby/pull/14470 /
    03c86b053197f3cd6bece1925e634c1d74d196d0

commit 41b11a3512317aa3965d8dc425155c9c2d7cdaf6
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-09-09 00:53:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-09 00:53:19 +0900

    ZJIT: Add --zjit-stats=quiet option to collect stats without printing (#14467)

    Similar to YJIT's --yjit-stats=quiet, this option allows ZJIT to collect
    statistics and make them available via the Ruby API without printing them
    at exit. This is useful for programmatic access to stats without the
    output noise.

    - Added print_stats field to Options struct
    - Modified option parsing to support --zjit-stats=quiet
    - Added rb_zjit_print_stats_p primitive to check if stats should be printed
    - Updated zjit.rb to only register at_exit handler when print_stats is true
    - Update the help text shown by `ruby --help` to indicate that
      --zjit-stats now accepts an optional =quiet parameter.
    - Added test for --zjit-stats=quiet option

commit 08091adec3f5d454efc31969a5eaf0102acea8a8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-08 18:02:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-08 23:22:50 +0900

    Add spec for missing or faulty `to_proc` methods

    Followup: https://github.com/ruby/ruby/pull/14463

commit ac24f70fb0c0cc80d30ec6e96b3369079775d0dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-08 21:01:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-08 21:06:17 +0900

    Align the conditions for did_you_mean

    Probably due to the testing order, sometimes it looks like that
    `Gem::UnknownCommandError` happens to be used without registered in
    `DidYouMean`.

commit 7c5ddb793b71d05d3fba954bbe397ab03c6f76dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-08 21:02:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-08 21:04:19 +0900

    Remove debug code

    * Revert "Debug: More inspections"
      e5a6e952467eef5444eaf63b77d8c91aa367d4de.

    * Revert "Debug for sporadical failures on RubyCI"
      7cafc61e7df044644f47937694c46835c316e86b.

commit 03c86b053197f3cd6bece1925e634c1d74d196d0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-09-08 17:30:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-09-08 20:24:21 +0900

    Move `IS_TYPED_DATA` in RBasic.flags

    Ref: https://github.com/ruby/ruby/pull/14134#issuecomment-3207733725

    We can't safely use low-bit pointer tagging anymore because `RTypedData.type`
    lines up with `RData.dfree` and there is no aligment guarantee on function
    pointers, as evidenced by `memcached` and `gpgme` gems.

    We also can't use FL_USER* for this, because extensions may use these
    for other purposes.

    Using a general flag for this is a bit unfortunate, as general flags
    are hard to come by, however I recently freed several of them, and
    we still have two or three free ones left.

commit e5a6e952467eef5444eaf63b77d8c91aa367d4de
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-08 19:23:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-08 19:23:04 +0900

    Debug: More inspections

commit 7cafc61e7df044644f47937694c46835c316e86b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-08 18:09:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-08 18:09:06 +0900

    Debug for sporadical failures on RubyCI

commit 1e7ee6a4ba3ee626d9fb99be4a35365bce74b0f9
  Author:     David Rodríguez <2887858+deivid-rodriguez@users.noreply.github.com>
  AuthorDate: 2025-09-08 00:41:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-08 00:41:59 +0900

    [DOC] Improve format specification docs

    One example to describe how `*` works actually prints a warning:

    ```
    $ ruby -we "sprintf('%d', 20, 14)"
    => -e:1: warning: too many arguments for format string
    ```

    I think it's better to not use examples that print warnings, so I
    propose to merge `*` docs with "width" specifier docs, and only include
    the "correct" example.

    After I believe `*` is not an actual flag, but a special value that the
    width specifier can take.

    Mention `*` special value in initial summary as well.

commit 6cd98c24fe9aeea3829ac3d554a277f053cec0be
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-09-04 20:34:15 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-08 00:23:01 +0900

    Allow IO#each_codepoint to work with unetc even when encoding conversion active

    Using IO#each_codepoint together with IO#ungetc causes an unwanted exception when encoding conversion is active.

    C:\>ruby -e "open('NUL', 'rt') { |f| f.ungetc('aa'); f.each_codepoint { |c| p c }}"
    97
    -e:1:in 'IO#each_codepoint': byte oriented read for character buffered IO (IOError)
            from -e:1:in 'block in <main>'
            from -e:1:in 'Kernel#open'
            from -e:1:in '<main>'

    Fixes [Bug #21562]

commit 85bd3fb870aca52c778cf32be424e13a1372fbf1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-07 08:27:13 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-07 10:41:32 +0900

    sync_default_gems.rb: Support `log.showSignature` case

commit 953e1ef99283d8563ff655ee6b8fcd681af79c1c
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-09-06 14:29:43 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-09-07 00:52:45 +0900

    Make invalid & operator type error message consistent with */**

    If #to_proc is defined, this uses the following error message format,
    matching the error message format used for * when to_a returns non-Array
    and for ** when to_hash returns non-Hash:

    ```
    can't convert ClassName to Proc (ClassName#to_proc gives OtherClassName)
    ```

    If #to_proc is not defined, this uses the following error message format,
    matching the error message format used when ** is called on a non-Hash
    not implementing to_hash.

    ```
    no implicit conversion of ClassName into Proc
    ```

    There isn't a similar error for * when called on a non-Array not
    implementing to_a, as Ruby does not raise for that case.

    Fixes [Bug #21563]

commit 5c875519f3c78f9d3ea470f1c8593a6026af93eb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-06 10:05:00 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-09-07 00:01:55 +0900

    Refine use of `Pathname::SEPARATOR_PAT`

    - Remove unnecessary string interpolations.
    - `/#{SEPARATOR_PAT}/o` is always same as `SEPARATOR_PAT` Regexp.

commit 1a8536cce9bae7144e9d4c5118dd3df59b2efbe6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-06 22:42:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-06 22:42:27 +0900

    Transform the manpages using the given substitution

commit de1feea72ebee7a96931d44c7d3dd21e23ebfcf2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-06 21:22:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-06 21:57:30 +0900

    Increase the rehearsal count

commit c0d168068f92e53c7ca67702d6d46fee35e2cc6d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-26 05:38:54 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-09-06 07:17:52 +0900

    [DOC] Fix link

commit 6fe762610952dc4ef3a36409274fc9845f9fd294
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-09-06 07:17:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 07:17:07 +0900

    [DOC] Fix link in Regexp

commit 72ddfc131f87118a772d30c8692857c793999b4b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 07:08:21 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 07:08:21 +0900

    ZJIT: Fix tests for ZJIT (#14460)

commit 8aa885c460aeb70878538eebdd155c6318989fd2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 06:17:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-06 06:18:49 +0900

    test_gem_command_manager.rb: Fix the environment variable

    The previous one failed:
    https://github.com/ruby/ruby/actions/runs/17504307509/job/49724437021

    $GITHUB_ACTION_REPOSITORY points to the owner of the action,
    so it might not be ruby/ruby.

commit 11275d13c1aa4709338702ca1438d1cf21228185
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 06:14:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 06:14:22 +0900

    ZJIT: Merge `make check` jobs (#14459)

commit cd07c3cbae7e287350d713ead237aeef27cc2b9e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 05:57:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-06 05:57:15 +0900

    test_gem_command_manager.rb: Skip an unstable test for ruby/ruby

    This fails way too often these days, probably since
    https://github.com/rubygems/rubygems/pull/8948.

    To make sure we can merge ruby/ruby PRs, we need this to not fail
    randomly.

commit ef3c3e65823fd1b93750ddc87ea846ed2b544df9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 05:27:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 05:27:35 +0900

    ZJIT: Stop optimizing toplevel locals (#14458)

commit c06e7046a6c5b6fbfb1eb2ad09c2157c88dec170
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-09-06 00:36:15 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-09-06 05:08:59 +0900

    CI: ubuntu-ibm.yml: Set the runner user's primary group from the "id -g".

    Set the runner user's primary group to avoid a mismatch between the group IDs of
    "id -g" and C function getpwuid(uid_t uid) pw_gid in a test as a better
    workaround.

commit 76deabd3dbbb8ddcaf122ac80ee3d4ca2bfee993
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-09-06 00:24:12 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-09-06 05:08:59 +0900

    CI: ubuntu-ibm.yml: Fix a typo to print HOME env.

commit 0ab78337736476d62233daecc777d5fbb74ef981
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 04:35:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-06 04:36:40 +0900

    ruby.c: Fallback FEATURE_BIT(jit) to FEATURE_BIT(zjit)

    if it's the only JIT enabled in the build

commit 4f030951f28aad7080d8b60a28148ec0b3636d58
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 03:26:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 03:26:01 +0900

    ZJIT: Invalidate local variables on EP escape (#14448)

commit ce20d68dae210aab2df8078014a563530321e7db
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-06 02:29:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 02:29:17 +0900

    Mark leaf defined instructions as leaf

    For example, `defined?(yield)` never calls a method, so it's leaf.

commit 30f32a048cdb5d854a413675b8b94b8feffc628e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 01:24:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-06 01:24:56 +0900

    bare_instructions.rb: Remove unused always_leaf?

    83bc6ced920c51ffc3783b03f2e1c7f89f5c2fd5 was the last use of it.

commit 799d57bd0178168c977cc0c2b45ff3a5f01d1297
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-06 01:14:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-06 01:15:00 +0900

    insns.def: Drop unused leafness_of_check_ints

    It was used to let MJIT override the leafness of the instruction when it
    decides to remove check_ints for it. Now that MJIT is gone, nobody needs
    to "override" the leafness using this.

commit 6c88b719208edee2f5a3166fc820f504e2373e29
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-06 01:07:16 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-06 01:07:16 +0900

    ZJIT: Remove unneeded tracing and thread test exclusions (#14453)

commit 0d91997cba15f7b9150b2e1d61f09d0761697cdb
  Author:     manabeai <matsu.devtool@gmail.com>
  AuthorDate: 2025-02-01 12:39:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-05 18:32:41 +0900

    [rubygems/rubygems] Improve error message when `path` and `gemspec` point to the same gem in Gemfile

    https://github.com/rubygems/rubygems/commit/e47a9064be

commit a9db92f904559038847f724b839a589f06fc90d3
  Author:     Martin Emde <me@martinemde.com>
  AuthorDate: 2025-09-03 11:52:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-05 18:32:40 +0900

    [rubygems/rubygems] Add gem sources --prepend and --append for finer source control

    --append adds a source to the end, moving it to the end if it already exists.
    --prepend adds or moves a source to the beginning.

    This allows idempotent sorting of gem sources without removing and adding.

    https://github.com/rubygems/rubygems/commit/d9a0567c65

commit 41ffd1bd7cacbb72b568958aab72c34f65d69888
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-09-02 13:47:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-05 18:32:38 +0900

    [rubygems/rubygems] Fix "did you mean" suggestions for unknown commands

    Since Ruby 3.4.5, which ships with did_you_mean-2.0.0, RubyGems no
    longer gives "did you mean" suggestions for unknown commands.

    This is because did_you_mean-2.0.0 completely removed the SPELL_CHECKERS
    constant, and attaching "did you mean" to `Gem::UnknownCommandError`
    errors required this constant to be defined.

    The fix is to remove conditions on the `SPELL_CHECKERS` constant.

    https://github.com/rubygems/rubygems/commit/9287cd80ed

commit efea70f4594e147b15692bf5cf7dae733bd92147
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-05 14:16:49 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-05 14:16:49 +0900

    Revert "mac: Fallback empty codeset to UTF-8"

    This reverts commit 334d49376dd1afca7427d5e2070d5cc9e270361a.
    Seems just `LC_CTYPE` was set to a wrong value.

commit 334d49376dd1afca7427d5e2070d5cc9e270361a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-04 20:46:02 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-05 12:16:07 +0900

    mac: Fallback empty codeset to UTF-8

    Workaround for a very strange behavior in macOS (reported about 10.15
    at least): `nl_langinfo(CODESET)` returns an empty string until the
    parent shell sets `LC_CTYPE` (even if it doesn't export it).

commit 83bc6ced920c51ffc3783b03f2e1c7f89f5c2fd5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 08:42:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-05 08:42:47 +0900

    Drop unused tool/ruby_vm/views/_insn_sp_pc_dependency.erb

    MJIT was probably the last user of it. It's not even part of
    build dependencies now.

commit 5d6d8568ab8ad80ab75ce1b914644f179714e7cf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 07:30:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-05 07:31:25 +0900

    Disable ubuntu-24.04-arm jobs for now

    They don't start at all and they get cancelled.
    https://github.com/ruby/ruby/actions/runs/17476949351/job/49639049451

    To unblock PR merges, let's disable it until it's fixed.

commit 5521870cb2f13e2a98646318e7322354cfc61080
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 07:25:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-05 07:25:35 +0900

    ZJIT: Run test-basic as well (#14447)

commit 34fd55d504e24ea4a368744f46ba84512d43c5a8
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 06:16:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-05 06:17:42 +0900

    feature_spec.rb: Don't test --enable-all with --zjit*

commit 579637747a680aad620e11cac8cbe6acb626e7ec
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 05:57:35 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-05 05:57:36 +0900

    rubyopt_spec.rb: Stop testing JIT options

    in child processes.

    `make test-spec SPECOPTS="spec/ruby/command_line/rubyopt_spec.rb -T --yjit"`
    fails because `ruby_exe` doesn't seem to propagate options to child processes.

commit abcc628099a955c9efc06e6f12d51b16b0df2fd3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 05:44:20 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-05 05:44:20 +0900

    ZJIT: Compile invokesuper with dynamic dispatch (#14444)

    Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>

commit 1f76b09095dd7f61b83db6fcf4683a88cb86c516
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-05 03:52:40 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-05 05:19:53 +0900

    ZJIT: Run against all bootstrap tests

commit 7300b3d6cb9073be1d1db07a052c7bc27c3cc175
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-05 03:37:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-05 03:37:56 +0900

    ZJIT: Fix Rust compilation warning (#14443)

    This fixes:

    ```
    warning: unused import: `ParseError`
      --> zjit/src/codegen.rs:20:61
       |
    20 | use crate::hir::{Const, FrameState, Function, Insn, InsnId, ParseError};
       |                                                             ^^^^^^^^^^
       |
       = note: `#[warn(unused_imports)]` on by default
    ```

commit 856db87a2a0718c5d5e1d00ec3da7bd3e20e6db2
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-05 03:37:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-05 03:37:06 +0900

    ZJIT: Add patchpoint for TracePoint (#14420)

    ZJIT: Add patchpoint for TracePoint activation

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit aff3e5a6f6b78b65252aa106851d4e872f118561
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-05 01:42:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-05 01:42:28 +0900

    ZJIT: Support compiling ISEQs for opt_pc = 0 (#14441)

    * ZJIT: Support compiling ISEQs for opt_pc = 0

    * Test send with optional arguments

commit 73854a4b65fcea8e409440b88d014d8fb18bbc68
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-09-03 20:03:14 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-09-04 23:55:27 +0900

    Use no-inline version rb_current_ec on ppc64le

    This commit fixes the failures in bootstraptest/test_ractor.rb reported on
    the issue ticket <https://bugs.ruby-lang.org/issues/21534>.

    TLS (Thread-Local Storage) may not be accessed across .so on ppc64le too.
    I am not sure about that.  The comment "// TLS can not be accessed across
    .so on ..." in this commit comes from the following commit.

    https://github.com/ruby/ruby/commit/319afed20fba8f9b44611d16e4930260f7b56b86#diff-408391c43b2372cfe1fefb3e1c2531df0184ed711f46d229b08964ec9e8fa8c7R118
    > // on Darwin, TLS can not be accessed across .so`

    This failures only happened when configuring with cppflags=-DRUBY_DEBUG and -O3
    on ppc64le.

    The reproducing steps were below.

    ```
    $ ./autogen.sh

    $ ./configure -C --disable-install-doc cppflags=-DRUBY_DEBUG

    $ make -j4

    $ make btest BTESTS=bootstraptest/test_ractor.rb
    ...
    FAIL 2/147 tests failed
    make: *** [uncommon.mk:913: yes-btest] Error 1
    ```

    The steps with a reproducing script based on the `bootstraptest/test_ractor.rb`
    were below.

    ```
    $ cat test_ractor_1.rb
    counts = []
    counts << Ractor.count
    p counts.inspect

    ractors = (1..2).map { Ractor.new { Ractor.receive } }
    counts << Ractor.count
    p counts.inspect

    ractors[0].send('End 0').join
    sleep 0.1 until ractors[0].inspect =~ /terminated/
    counts << Ractor.count
    p counts.inspect

    ractors[1].send('End 1').join
    sleep 0.1 until ractors[1].inspect =~ /terminated/
    counts << Ractor.count
    p counts.inspect

    $ make run TESTRUN_SCRIPT=test_ractor_1.rb
    ...
    vm_core.h:2017: Assertion Failed: rb_current_execution_context:ec == rb_current_ec_noinline()
    ...
    ```

    The assertion failure happened at the following line.

    https://github.com/ruby/ruby/blob/f3206cc79bec2fd852e81ec56de59f0a67ab32b7/vm_core.h#L2017

    This fix is similar with the following commit for the arm64.

    https://github.com/ruby/ruby/commit/f7059af50a31a4d27a04ace0beadb60616f3f971

    Fixes [Bug #21534]

commit e61a6775d1b0a9e3af4c4ec0570d831227545563
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-27 02:55:00 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2025-09-04 14:26:53 +0900

    [DOC] Link fixes

commit bbef1772aab330bffb0c11fb0df2c909bfdce989
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-04 08:11:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-04 08:11:31 +0900

    Revert "test_gc.rb: Attempt to stabilize test_interrupt_in_finalizer"

    This reverts commit c1c0b32445c66e343c136faa28d7a0f0f46d96a2.

    This test is clearly not reliable:
    https://github.com/ruby/ruby/actions/runs/17446920961/job/49543543423

    I want to skip this unstable test on GitHub Actions to make sure this
    test doesn't prevent PRs from getting merged. We can continue to monitor
    the state of this test on RubyCI and ci.rvm.jp.

commit a6d397e29c61030f130f8d83e6bfe6d99ebbae91
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-04 06:45:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-04 06:45:54 +0900

    ZJIT: Ensure `clippy` passes and silence unnecessary warnings (#14439)

commit 8a350775aab898ea0f0fad5663b259caa840fc1f
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-04 04:41:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-04 05:18:42 +0900

    ZJIT: Add missing module doc comments

commit a8a2f1f06c3435aaa47c82512f5bf0e3a605132e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-04 04:28:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-04 05:18:42 +0900

    ZJIT: Fix documentation build warnings

commit 5283443bdaff8e1cf591499662fd109acda6ad4f
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-04 04:28:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-04 05:18:42 +0900

    ZJIT: Add documentation note in doc/zjit.md

commit 809a9a9f2972127ea4b8bba027102197661c7196
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-04 05:14:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-04 05:14:28 +0900

    ZJIT: Count exits coming from jit_exception (#14428)

commit 45e183988898136a71dcd66525f941c61a8d647e
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-04 02:13:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-04 02:13:08 +0900

    ZJIT: Handle `opt_case_dispatch` insn (#14433)

    ZJIT: Handle opt_case_dispatch insn

commit 837d74104cf9339a344cf9f33016aa73b2c51e72
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-09-03 21:41:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    Use Time.new because JSON.unsafe_load losts fractions of a second and
    JSON.unsafe_load with Time object returns String

    ```
      1) Failure:
    JSONCommonInterfaceTest#test_unsafe_load_default_options [/path/to/ruby/test/json/json_common_interface_test.rb:230]:
    <2025-09-03 14:28:31.293635 +0200> expected but was
    <"2025-09-03 14:28:31 +0200">.
    ```

commit 9af5af2c7d97e9563818ecc422ad6c1ff5db3ac1
  Author:     Robin Miller <robin@tenjin.ca>
  AuthorDate: 2025-09-02 13:52:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [ruby/json] Update method docs for JSON.load and JSON.unsafe_load to show the correct use of proc argument.

    https://github.com/ruby/json/commit/92654cd99b

commit 242680efc5aab477b78b1aaa7299feec5d98bb06
  Author:     Robin Miller <robin@tenjin.ca>
  AuthorDate: 2025-09-02 13:40:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [ruby/json] Added testing for JSON.unsafe_load. Fixes NoMethodError
    when passing proc to JSON.unsafe_load, matching the changes made in
    https://github.com/ruby/json/commit/73d2137fd3ad.

    https://github.com/ruby/json/commit/77292cbc9b

commit 3b38ab9b735f9bc66f66764756978c3d37a57a57
  Author:     Scott Myron <samyron@gmail.com>
  AuthorDate: 2025-08-15 23:23:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [ruby/json] Ensure the SWAR encoder in the java extension checks every byte.

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

commit 794e4a3a26e33bdc0338a1302f68cfc6fb252eae
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-28 03:43:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [ruby/json] Fix a -Wreturn-type warning

    Fix: https://github.com/ruby/json/pull/843

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

    Co-Authored-By: Takashi Kokubun <takashikkbn@gmail.com>

commit 94ddf47624ad6f1288ca721e880be99aee838485
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-27 07:13:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [ruby/strscan] [DOC] Fix link
    (https://github.com/ruby/strscan/pull/162)

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

commit aae9e8262d7b9d57299de7af5a59e6dc1997a893
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-29 14:44:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    Added x64-mswin64-140 to lockfiles

commit cc2a70da2781d10016746e5fd03de9cc2f7b5ceb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-09-02 03:27:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Warn when trying to remove a default source that's the only configured sources

    https://github.com/rubygems/rubygems/commit/ef78de5b69

commit cdb8c9e254d1e0b8de036bc2709915d146af0271
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-09-02 03:13:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Improve error output when removing a source through `gem sources`

    "Not present in cache" felt a bit unclear, so I changed the reason to:

    "No configured sources" or "source not present in configured sources",
    also pointing explicitly to the configuration file where RubyGems is
    looking for the source to be removed.

    https://github.com/rubygems/rubygems/commit/2bae554eff

commit 30b344c7445ad8a1b21fd27f6c2f2cf3f9ea8af3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 05:32:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Change code examples to not use the default source

    https://github.com/rubygems/rubygems/commit/0ccf323734

commit 358735b3ac34bf63a35bc53624424e4ce795816c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 05:03:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Change more source tests to act on configured sources

    https://github.com/rubygems/rubygems/commit/7f0c90b3f0

commit 4a6fa17d1dc56352542e3584ba880b54d9277ac3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 04:47:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Fix trailing slashes not considered when removing sources

    https://github.com/rubygems/rubygems/commit/d86d9b3596

commit 6dcd100a28c79b25491183611d874c480d24fb3d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 04:40:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Change trailing slash test to not work on default sources

    https://github.com/rubygems/rubygems/commit/b2daf4707b

commit 566cd152fbb6762d34c93ba82f94714bde49a575
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 04:34:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Refactor duplicated test logic

    https://github.com/rubygems/rubygems/commit/6fcc20f884

commit e89eb0b973c6d257085dc3cd8d564ea94d07ed94
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 03:27:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Simplify test for trailing slash handling when adding sources

    https://github.com/rubygems/rubygems/commit/9c9fd4799f

commit 92df7e456a05240977e778d6947372e422129669
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 03:01:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Add missing `gem sources --remove` test

    https://github.com/rubygems/rubygems/commit/1f779adc47

commit 0775c239e111e7738a89cb3e44f585c6e1c158da
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 02:43:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Let `gem sources` be more clear about which sources it's displaying

    https://github.com/rubygems/rubygems/commit/2afefa4a48

commit cbd0de84f6325a66d9d97b17073252bc0e2bb512
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-07 02:38:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Improve source list management testing

    This approach better simulate that ["http://gems.example.com/"] is the
    default list of sources, rather than ["https://rubygems.org/"].

    https://github.com/rubygems/rubygems/commit/55130c259a

commit 2d3fd1fd2841e13cc65c72e870e3288923770a57
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 14:14:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Deprecate `bundle cache --frozen` and `bundle cache --no-prune`

    Since they are remembered flags, too.

    I also restored a previous spec about `--frozen`, but didn't bother with
    `--no-prune`.

    https://github.com/rubygems/rubygems/commit/7802f016fc

commit d20936c9f59a5be8f4de6057d47cbc417111b0ca
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-15 21:36:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Improve `deprecations` helper

    Previous implementation included an empty element in the list of
    deprecations.

    https://github.com/rubygems/rubygems/commit/59eb233039

commit 1c7c0107a465b0f37d07a3aa5dc43b5427a1380a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-28 04:10:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Add another spec for yet another issue fixed by the previous patch

    https://github.com/rubygems/rubygems/commit/fbb8340186

commit c75de0d5f261832450f774c70c1e80b7250793ab
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 13:49:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Add extra spec for another issue that the previous patch fixed

    https://github.com/rubygems/rubygems/commit/4fc57c69b2

commit 2558350c0488ccd1a71b5f1e86f7fdbccad5056e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 02:36:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Fix `bundle cache` failing in frozen mode if vendor/cache is empty

    https://github.com/rubygems/rubygems/commit/36c5af9156

commit 7488b48a76af7359ea121f42db12b12d6b439b0d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-28 02:48:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Improve spec wording and implementation

    Limit the `before` block to set `frozen`, which is the context of the
    spec, and change the implementation to only write the Gemfile once, with
    a gem being removed from what's in the lockfile.

    https://github.com/rubygems/rubygems/commit/4d0314ff37

commit 2052dd1cfc2f8241b89ae017ba60a096989a7be8
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 04:58:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] It's not necessary to set `deployment`

    https://github.com/rubygems/rubygems/commit/eaa51203ca

commit 6f8738db259f1f9b59e373ca98d8fe105d319257
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 04:56:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Remove unnecessary install

    Since the path is changed later by the `deployment` setting, it makes no
    difference. So just create a lockfile.

    https://github.com/rubygems/rubygems/commit/2dd6f65642

commit b4c9ccefd6a34a24dfc509966cd679063813100f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-14 04:55:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Remove unnecessary subject from one spec

    https://github.com/rubygems/rubygems/commit/a761581e89

commit 50d4622637b73715d20c5112f38d6fae0109c78f
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-08-13 09:33:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Fix `bundle lock` regression when using `update` and `lockfile` flags:

    - Ref #8917
    - ### Problem

      Prior to Bundler 2.5.6, running
      `bundle lock --update foo --lockfile Gemfile_bumped.lock` would
      update only the foo gem and write the lockfile to the
      `Gemfile_bumped.lock`.

      In Bundler 2.5.6 and above running the same command, updates
      absolutely all gems.
      This change is related to #7047

      ### Solution

      We decided to expose the `write_lock` method rather than going
      through a complex deprecation cycle of the `lock` method.

      This commit applies the same business logic as prios to 2.5.6 where,
      we build the definition using the existing lockfile, make changes to
      the definition and dump it into the desired lockfile.

    https://github.com/rubygems/rubygems/commit/c88f00c41d

commit 3b6c82ca4f6ee915e670c5be2342b10ed99c5844
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-06 01:32:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    Completely remove `bundle viz` command

commit 834b941253b0da4e162c4fc318559f5cb545aadd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-06 02:20:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    Completely remove `bundle inject` command

commit cc1770b968257ca6d6ec5a49b6ef54d4a4853974
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-13 18:53:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Introduce `SharedHelpers.feature_removed!`

    To directly raise regardless of version.

    https://github.com/rubygems/rubygems/commit/38fb97cffa

commit 2e65f4ac3b1d69e7bd9e3e65a696e7f234ec9527
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-13 18:54:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] No need to print caller location when raising directly

    https://github.com/rubygems/rubygems/commit/6c2b06cc16

commit 9763e2de016606e4ffdaf83c2ad4da436d4a585d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-13 02:20:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] The `bundle clean` command should not be hidden

    https://github.com/rubygems/rubygems/commit/eab6366e2e

commit 6a93a28c6987d443d4cd54b2eea1ea70b9823ff5
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-13 02:19:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-09-03 23:38:37 +0900

    [rubygems/rubygems] Ensure removed commands get their docs removed, too

    https://github.com/rubygems/rubygems/commit/2a2e45bbe9

commit 89110b27437d4a84f7cb0387e59fd40d94efee1d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-09-03 18:31:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-09-03 18:31:46 +0900

    Remove obsolete option `--enable-mathn`

    The code has been removed already, and the latest mathn is refactored
    to use refinements.

commit 01e27acbec4d8ce1b7a78f07dc8f9080f71854a9
  Author:     Jason Garber <8061+jgarber@users.noreply.github.com>
  AuthorDate: 2025-09-03 13:44:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 13:44:47 +0900

    [DOC] Clarify differences between Kernel.rand and Random.rand when given a Float `max`

    * [DOC] Clarify differences between Kernel.rand and Random.rand

    * `Kernel.rand` converts the `max` Float argument to Integer and returns Integer values
    * `Random.rand` preserves the `max` Float argument and returns Float values
    * Added examples demonstrating the behavioral differences

commit de6df7508de397138e3a4d16469e7f35a8fe1b1e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 08:21:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 08:21:08 +0900

    test_io_wait.rb: Increase a timeout for a flaky test

    like 68682a5d2b2

    https://github.com/ruby/ruby/actions/runs/17417763247/job/49449895757?pr=14433

commit 85fd5d5ab5d885347e367b24027cfa4ac215774b
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Use Copy instead of Clone

commit d51ea6be5061779f6fb5618e687a2b312f0ffd9a
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Remove unnecessary return statements

commit efd2746b3f0b54aac77c568e4d09ed4d1b947c0b
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Remove unnecessary .into calls

commit 8e8f2ba2b46a3b95c90f2b6b60480b3c5cd7c23e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Use copied over map(|x| *x)

commit d0ea036e8316aebe77986c060a899ee6c0510ed2
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Use .is_some_and

commit f23d866280bea20d2011d54dc94181e8c4256ea3
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-09-03 06:27:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 07:57:14 +0900

    ZJIT: Use is_empty over compare with ""

commit 98a889444152b23ab5950adb10fa97e3610133d6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 07:55:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 07:55:35 +0900

    ZJIT: Use inspect_err on Result values (#14431)

commit 61d5fb213d48a329e9978dc0c5deb4c5f30c1068
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-09-03 06:42:49 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-09-03 07:28:20 +0900

    ext/-test-/tracepoint/gc_hook.c: Fix GC safety issue

    TestTracepointObj#test_teardown_with_active_GC_end_hook was failing on
    some platforms due to a Proc that is not marked being passed around.
    Neither rb_tracepoint_new() nor rb_postponed_job_preregister() promise
    to mark their callback `void *data`.

    https://rubyci.s3.amazonaws.com/osx1300arm/ruby-master/log/20250902T154504Z.fail.html.gz

    Add a GC.start to make the test a better detector for this safety issue
    and fix it by getting the Proc from an ivar on the rooted module.

commit 4c0b68156d35b7149dc4cbd9d402d495daf95776
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-03 06:09:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 06:09:42 +0900

    ZJIT: Remove unneeded test exclusions (#14430)

commit c1c0b32445c66e343c136faa28d7a0f0f46d96a2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 04:51:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 04:53:49 +0900

    test_gc.rb: Attempt to stabilize test_interrupt_in_finalizer

    This fails way too often across many environments. I don't think this
    test is healthy.
    https://github.com/ruby/ruby/actions/runs/17343611722/job/49240735401

    Before we give up on it, let me see if this helps.

commit e21988c9564319fe2778a32a92c317ef56065dde
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 04:45:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 04:46:07 +0900

    test_settracefunc.rb: Increase a timeout

    https://github.com/ruby/ruby/actions/runs/17413734881/job/49436975287

commit 77a421fb057c16cd82adbe6e07efe0db01bf93a5
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-03 04:20:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 04:20:08 +0900

    ZJIT: Clear jit entry from iseqs after TracePoint activation (#14407)

    ZJIT: Remove JITed code after TracePoint is enabled

commit e0a7da93d25cf9a4fced323ce3344fc390b59ad7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 03:58:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 03:58:42 +0900

    ZJIT: Rename gen_save_pc to gen_prepare_call_with_gc (#14427)

commit bdaff44bae6cd6e5675a37b19341d132b3881bb7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 03:28:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 03:28:15 +0900

    ZJIT: Propagate and count CompileError on exits (#14408)

commit f210e813dcee54cc7388b294becc215aa4268e2a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 02:43:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 02:43:57 +0900

    Update rbs sha to the latest aaa-3.9.x (#14426)

commit c02662727b7d356365bbcf44d86f1f375ab4b611
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-09-03 02:41:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 02:41:34 +0900

    ZJIT: NewRangeFixnum instruction (#14409)

    * Failing optimization tests for NewRangeFixnum

    * NewRangeFixnum general idea

    * Use gen_prepare_call_with_gc on gen_new_range_fixnum; add additional hir tests

    * Remove unused NewRange rewrite trigger when neither range is Fixnum literal

    * Remove misleading 'profiled' name in range optimization tests

    * Adjustments as per review comments

    * Include new_range_fixnum tests

    * remove non-ASCII character from comments as per PR review

    * remove non-ASCII character from comments as per PR review

commit 8e1b5cba70b66a6e54f2189eb4321919b7ab776a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 02:38:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 02:38:37 +0900

    test_socket.rb: Permit ProxyError for Windows

    https://github.com/ruby/ruby/actions/runs/17410747983/job/49427074277

commit b1b4984fb94fc3d3c17237f8a6a3f8fe90996846
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 02:34:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 02:34:49 +0900

    test_thread_cv.rb: Increase a timeout for a thread test

    https://github.com/ruby/ruby/actions/runs/17410747983/job/49427074277

commit 9158b19b6bf2175e5e99f063ee5f2ecb33f70673
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 02:07:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-09-03 02:07:38 +0900

    test_transcode.rb: Increase a timeout for Ractor tests

    https://github.com/ruby/ruby/actions/runs/17408924679/job/49420774667

commit a8df3f664fe408deb6105cfb42a0e9841a7dc11e
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-09-03 02:04:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 02:04:37 +0900

    ZJIT: Unskip a Ractor bootstrap test (#14421)

    ZJIT: Unskip Ractor bootstrap test

commit f0cc93c136e0bfa24be39b57e8d8d81bcfe03c13
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-09-03 00:50:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-09-03 00:50:09 +0900

    ZJIT: Bump default --zjit-call-threshold to 30 (#14410)

commit 636da19e2bd01dda7f056404962b326695cc0597
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-02 20:37:53 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-02 22:22:27 +0900

    Output parent object info when marking T_NONE

commit 8c73da9e66f1152fb1fe9a43d0aab2a2e8ac5cad
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-02 20:35:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-02 22:22:27 +0900

    Output T_NONE object info to bug report

    rb_obj_info_dump outputs to stderr, which is not outputted to the bug
    report, so this information is lost.

commit eec38310dbb5193bfe3730da6451444c8fd3a8db
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-09-02 20:28:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-09-02 22:22:27 +0900

    Refactor T_NONE checking in default.c

commit f9bffff3d4b45d4c6fed42f13d556c520f3cfd67
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-09-01 16:59:09 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-09-01 17:34:41 +0900

    remove `Ractor#take`

    [Feature #21262]

commit ed0ffcdc80c41b3b1adacc7135ddf7880380c6a3
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-08-31 23:02:23 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-09-01 08:17:21 +0900

    Remove unnecessary Enumerable#each_slice

    This method has been a built-in feature since Ruby 1.8.7, so this
    fallback implementation is no longer needed.

    Ref: https://docs.ruby-lang.org/en/3.4/NEWS/NEWS-1_8_7.html

commit 266393d333490fc5ab4055a48947a638673ed655
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-30 17:10:02 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-31 18:31:01 +0900

    CI: Adjust time frame before the release

commit 5c7dfe85a1dc49334e2828791f0ade42eee662db
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-08-31 03:24:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-31 03:24:25 +0900

    Initialize class dup/clone before calling initialize_dup/initialize_clone

    Previously, you could override the class initialize_dup/initialize_clone
    method and the class hierarchy would not be set correctly inside the
    method before calling super.

    This removes Module#initialize_copy, and instead makes Object#dup/clone
    call the underlying C function (rb_mod_init_copy) before calling the
    appropriate initialize_dup/initialize_clone method.

    This results in the following fixes:

    * The appropriate initialize_dup method is called (dup on a class
      will respect superclass initialize_dup).

    * Inside class initialize_dup/initialize_clone/initialize_copy,
      class ancestor hierarchy is correct.

    * Calling singleton_class inside initialize_dup no longer raises
      a TypeError later in dup.

    * Calling singleton_class.ancestors inside initialize_dup no
      longer results in missing ancestors.

    Fixes [Bug #21538]

commit dd4e7801f3f2b7e258016b8e22c6d8870516166b
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-08-30 21:26:16 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-08-30 22:41:23 +0900

    Add NODE SCLASS locations

    Add locations to struct `RNode_SCLASS`.

    memo:

    ```
    @ ProgramNode (location: (1,0)-(1,18))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,18))
        +-- body: (length: 1)
            +-- @ SingletonClassNode (location: (1,0)-(1,18))
                +-- locals: []
                +-- class_keyword_loc: (1,0)-(1,5) = "class"
                +-- operator_loc: (1,6)-(1,8) = "<<"
                +-- expression:
                |   @ SelfNode (location: (1,9)-(1,13))
                +-- body: nil
                +-- end_keyword_loc: (1,15)-(1,18) = "end"
    ```

commit 395bda2fa1807fd28c9929d2059e404236e0a259
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-30 21:17:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-30 21:17:14 +0900

    object.c: make rb_obj_class_must static inline

commit d89e73471db85f60ce45021f85487194124fe594
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-30 20:32:44 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-30 21:14:10 +0900

    object.c: refactor rb_obj_class and rb_class_real

commit f5da6395bd3fdf4b76a480f174cd304823ddc57f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-30 20:04:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-30 21:14:10 +0900

    Kernel#class skip null check

    `Kernel#class` can't possibly be called on an hidden object,
    hence we don't need to check for `klass == 0`.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-30T01:45:42Z obj-class 01a57bd6cd) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-30T10:21:10Z obj-class b67c16c477) +YJIT +PRISM [arm64-darwin24]

    |           |compare-ruby|built-ruby|
    |:----------|-----------:|---------:|
    |obj        |     445.217|   642.446|
    |           |           -|     1.44x|
    |extended   |     136.826|   117.974|
    |           |       1.16x|         -|
    |singleton  |     166.269|   166.695|
    |           |           -|     1.00x|
    |immediate  |     380.243|   515.775|
    |           |           -|     1.36x|
    ```

commit 01b89528cb663e1e533375d4282d906e49ca1496
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-30 19:15:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-30 21:14:10 +0900

    object.c: improve fake_class_p to also handle T_MODULE

    This requires ensuring T_MODULE never has FL_SINGLETON set,
    so RMODULE_IS_REFINEMENT had to be moved.

commit fd0c772db7e5098c2b8e03559317a3592074dfe7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-30 17:51:03 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-30 21:14:10 +0900

    Micro-optimize Object#class

    Since `BUILTIN_TYPE` and `RCLASS_SINGLETON_P` are both stored in
    `RBasic.flags`, we can combine these two checks in a single bitmask.

    This rely on `T_ICLASS` and `T_CLASS` not overlapping, and assume
    `klass` is always either of these types.

    Just combining the masks brings a small but consistent 1.08x speedup on the simple case benchmark.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-30T01:45:42Z obj-class 01a57bd6cd) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-30T09:56:24Z obj-class 2685f8dbb4) +YJIT +PRISM [arm64-darwin24]

    |           |compare-ruby|built-ruby|
    |:----------|-----------:|---------:|
    |obj        |     444.410|   478.895|
    |           |           -|     1.08x|
    |extended   |     135.139|   140.206|
    |           |           -|     1.04x|
    |singleton  |     165.155|   155.832|
    |           |       1.06x|         -|
    |immediate  |     380.103|   432.090|
    |           |           -|     1.14x|
    ```

    But with the RB_UNLIKELY compiler hint, it's much more significant, however
    the singleton and enxtended cases are slowed down.
    However we can assume the simple case is way more common than the other two.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-30T01:45:42Z obj-class 01a57bd6cd) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-30T09:51:01Z obj-class 12d01a1b02) +YJIT +PRISM [arm64-darwin24]

    |           |compare-ruby|built-ruby|
    |:----------|-----------:|---------:|
    |obj        |     444.951|   556.191|
    |           |           -|     1.25x|
    |extended   |     136.836|   113.871|
    |           |       1.20x|         -|
    |singleton  |     166.335|   167.747|
    |           |           -|     1.01x|
    |immediate  |     379.642|   509.515|
    |           |           -|     1.34x|
    ```

commit 01a57bd6cde82ad58f938d075f569d57048d8a60
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-22 14:58:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-30 10:45:42 +0900

    CI: Warn longstanding development revision of bundled gems

commit d94e0a7bca1d2d88791e7792904a4db114e14698
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-22 12:44:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-30 10:17:34 +0900

    CI: bundled_gems.yml: Split commit and push

commit 96c8938535ff0cb2bf65943d7472a6702a121e16
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-30 07:34:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-30 07:34:11 +0900

    Shrink ruby_bug version guard in anticipation of 3.4.6 release

    Fix for this bug was merged into ruby_3_4 in 5a42d267bfabc86f86cae2e83de24b1b86bc316a
    and should go out in the next 3.4.x release.

commit 3f3a54efff040e1f5dbbd296abe9ab0cb9304e4e
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-30 03:16:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-30 04:55:14 +0900

    Add rb_jit_vm_unlock and share it in ZJIT and YJIT

commit 561050496c602ebc41d844db9fee91017f132d3a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-30 03:13:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-30 04:55:14 +0900

    Add rb_jit_vm_lock_then_barrier and share it in ZJIT and YJIT

commit 2f6a9c51670dd6dcc1cae52e4a793143fb148eb6
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-30 03:03:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-30 04:55:14 +0900

    Add rb_jit_multi_ractor_p and share it in ZJIT and YJIT

commit cc07159fbad13978641fb86943b810f6d55f08fd
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-30 04:32:57 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-30 04:40:06 +0900

    [DOC] rb_str_resurrect(): Reword to remove wrong guess; used by zlib

commit 39f3cab80d7b469793a1a3cf091ed875c54c3c86
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-30 03:43:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-30 03:43:33 +0900

    YJIT: Stop sharing rb_vm_send among different instructions (#14393)

commit 99bf47ab8c3fc4332b7324310615af147a4da560
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-29 21:00:29 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-30 02:42:39 +0900

    ZJIT: Report stats for unhandled call types

commit 710c5c8ea16bc21018a778773d3b250e27cf34f8
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-29 20:51:21 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-30 02:42:39 +0900

    ZJIT: Increment dynamic_send_count for Send too

commit dba0f72592e4bf9aedd61f8d2fe27a5b0a5fcb76
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-30 01:57:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-30 01:58:28 +0900

    Extend timeout-minutes for macOS --repeat-count=2

    https://github.com/ruby/ruby/actions/runs/17308244022/job/49136485007

    I'm not sure if it's stuck forever at the end or happens to take that
    much time around the end of it, but let me just try this first.

    If it doesn't work, something's wrong with --repeat-count=2 on test-all.

commit b6f4b5399d22aab18fa3d163b9cc1764ad0df7dd
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-30 01:46:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-30 01:46:08 +0900

    ZJIT: Specialize monomorphic GetIvar (#14388)

    Specialize monomorphic `GetIvar` into:

    * `GuardType(HeapObject)`
    * `GuardShape`
    * `LoadIvarEmbedded` or `LoadIvarExtended`

    This requires profiling self for `getinstancevariable` (it's not on the operand
    stack).

    This also optimizes `GetIvar`s that happen as a result of inlining
    `attr_reader` and `attr_accessor`.

    Also move some (newly) shared JIT helpers into jit.c.

commit fc4f8c879a362968d87d36d6f93d30ae9abd0a5b
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-30 01:40:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-30 01:40:15 +0900

    YJIT: Drop yjit-bench CI job (#14394)

commit 7f4a6afab81c8e33fb4a6bbaceca96b6672dc7aa
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-30 01:32:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-30 01:32:38 +0900

    ZJIT: Remove special case for defined?(method call) (#14401)

    This was fixed in https://github.com/ruby/ruby/pull/14308

    Thanks, Stan, for noticing.

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

commit df1334421f555a9d2ad9961d234eb3b88418b058
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-29 23:22:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 23:22:40 +0900

    ZJIT: Repurpose ExitCounters for unhandled YARV insns (#14392)

commit 001299d32c3ba350181837ea0996440ad87594f2
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-08-29 16:03:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-29 16:03:26 +0900

    Update bundled gems list as of 2025-08-29

commit 1f2a102f38d6768103607cd8fd0e42b7687bd59a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-29 11:35:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-29 11:35:28 +0900

    `Module#attr` family accepts strings as well as symbols

commit 85eb33d9ffb3f415cefe7f364ff72a238205a46f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-29 09:33:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-29 09:33:17 +0900

    Relax thresholds for array, object, and string compaction verification

    These tests failed with RHEL10

    https://rubyci.s3.amazonaws.com/rhel10/ruby-master/log/20250828T093003Z.fail.html.gz

commit 51cd8776367a4f17b77202e171eeaf4681c79389
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-29 07:19:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-29 07:46:16 +0900

    ZJIT: Add missing rb_zjit_cme_invalidate

commit 3cc66977b2675c55a281f923582eadaf2eae3244
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-28 05:35:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-29 07:46:16 +0900

    ZJIT: Compile Insn::Send

commit 4992d2c2980d150cdbfc9750f124c3a9ccc71945
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-29 06:23:38 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-29 07:02:29 +0900

    YJIT: rb_ivar_get_at skip ractor checks

    Using `assume_single_ractor_mode` we can skip all ractor safety
    checks if we're in single ractor mode.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-27T14:58:58Z merge-vm-setivar-d.. 5b749d8e53) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-28T21:23:38Z yjit-get-exivar 3cc21b76d4) +YJIT +PRISM [arm64-darwin24]

    |                           |compare-ruby|built-ruby|
    |:--------------------------|-----------:|---------:|
    |vm_ivar_get_on_obj         |     975.981|   975.772|
    |                           |       1.00x|         -|
    |vm_ivar_get_on_class       |     136.214|   470.912|
    |                           |           -|     3.46x|
    |vm_ivar_get_on_generic     |     148.315|   299.122|
    |                           |           -|     2.02x|
    ```

commit 3646596e5bd4c445b158be5fd3780e7685aa9b7f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-29 05:53:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-29 07:02:29 +0900

    YJIT: rb_ivar_get_at assume leaf-call when single ractor

    The only exception it could raise is if we're in multi ractor mode.

commit b6d4882c05d64aa6cb5ff8761584ae910de67f21
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-29 02:29:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-29 07:02:29 +0900

    YJIT: getinstancevariable cache indexes for types other than T_OBJECT

    While accessing the ivars of other types is too complicated to
    realistically generate the ASM for it, we can at least provide
    the ivar index as to not have to lookup the shape tree every
    time.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-27T14:58:58Z merge-vm-setivar-d.. 5b749d8e53) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-28T17:58:32Z yjit-get-exivar efaa8c9b09) +YJIT +PRISM [arm64-darwin24]

    |                           |compare-ruby|built-ruby|
    |:--------------------------|-----------:|---------:|
    |vm_ivar_get_on_obj         |     930.458|   936.865|
    |                           |           -|     1.01x|
    |vm_ivar_get_on_class       |     134.471|   431.622|
    |                           |           -|     3.21x|
    |vm_ivar_get_on_generic     |     146.679|   284.408|
    |                           |           -|     1.94x|
    ```

    Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>

commit b1dbcd3ce3cb61f7b136f4b1e1bb97a6f3635c3e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-28 23:17:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-29 06:21:48 +0900

    YJIT simplify gen_get_iver and gen_set_ivar

    The `shape_id` now includes 3 bits for the `heap_id`.
    It is always non-zero for `T_OBJECT` and always zero for all
    other types.

    Hence all these allocator checks are no longer necessary.

commit bf3d6a17ee44fcf1ec5a9335b55eb5b10288b859
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-29 05:45:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 05:45:35 +0900

    ZJIT: Add code_region_bytes stat (#14389)

    * ZJIT: Add code_region_bytes stat

    * Share more logic among --zjit and --zjit-stats

commit 041450ad417caa5b12a32b38ae5ec54618f0c792
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-28 23:45:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-29 03:14:01 +0900

    rb_ivar_delete: also re-embed T_IMEMO/fields

    Right now JITs don't generate any code to access ivar on types
    other than T_OBJECT, but they might soon, so we must ensure
    two IMEMO/fields can't have the same `shape_id` but diffent
    embed/heap status.

commit fa3c23eb811c7bee7c9ed945c8f12cb40ecd9b6a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-29 02:50:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 02:50:22 +0900

    ZJIT: Prepare getglobal for non-leaf call (#14387)

    Depending on the user's warning level, getting certain global variables
    may lead to calling `Warning#warn`, which can be redefined by the user.

    This fixes another `bootstraptest/test_yjit.rb` failure.

commit b47ea34a9b9e602e70bb69478c4abd2d9f1651d0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-29 02:34:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-29 02:35:16 +0900

    ZJIT: Fix a flipped stat

    I'm sorry.

    Another follow-up on https://github.com/ruby/ruby/pull/14378

commit c2d99d06474c22bdf03bba8f46c07a185046f970
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-29 02:31:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-29 02:31:47 +0900

    ZJIT: Fix a typo

    follow-up on https://github.com/ruby/ruby/pull/14378

commit 7d670ead3008284822dea0e4c62ec7f2d12a2aec
  Author:     Max Bernstein <tekknolagi@gmail.com>
  AuthorDate: 2025-08-29 02:20:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 02:20:15 +0900

    ZJIT: Disable profiling in compile_iseq (#14385)

    This catches both the interpreter-JIT and JIT-JIT cases.

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

commit 85217252250a796ceca5c6a4be2e07bfedaaba60
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 23:36:13 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 02:14:37 +0900

    ZJIT: Generate code for ArrayExtend

commit 07e28ba486e26172d76211080a82dc9cdb38250d
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 23:27:02 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 02:14:37 +0900

    ZJIT: Generate code for DefinedIvar

commit b108f11708228a69236b0eae4840992531af7025
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 23:03:29 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 02:14:37 +0900

    ZJIT: Generate code for ToArray, ToNewArray

commit ec55b5b9aacf604634b6ca5b34366fba6e8b3f5e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 22:48:15 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 02:14:37 +0900

    ZJIT: Generate code for ArrayPush

commit ca0ef794971f4fddf92c4652dee17ada63d52dbe
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 11:16:10 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 02:14:37 +0900

    ZJIT: Generate code for HashDup

commit 11f115b0d233215f2575333da0e9351dcfc4a11f
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-29 00:30:31 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 01:40:59 +0900

    ZJIT: Track if object is a T_OBJECT

    We will (for now) only cache ivar reads from T_OBJECTs.

commit b95700f17c2779f182eb7786c4b61156463e3d3a
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-29 00:19:55 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-29 01:40:59 +0900

    ZJIT: Track object embedded bit

    This lets us know where to look for an ivar: in the object or indirect
    elsewhere in the heap.

commit 737ffd33170de56f739ead96118358d72b738aad
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-08-29 01:31:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 01:31:26 +0900

    ZJIT: Add Ractor mode PatchPoint for ivar get/set (#14375)

    * ZJIT: Add Ractor mode PatchPoint for ivar get/set

    * ZJIT: Only add single ractor patchpoint to class/module receivers

    * ZJIT: Improve Ractor mode patch point comments

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

    ---------

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

commit c4c93a0751849a3e8dc738a98cc690df99155fa2
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-29 00:58:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-29 00:58:23 +0900

    ZJIT: Refactor stats implementations (#14378)

    * ZJIT: Refactor stats implementations

    * s/num_send_dynamic/dynamic_send_count/

commit 4fc0db7389d2c93eebf232e802769a38702eea8e
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-28 02:03:35 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-28 22:55:43 +0900

    CI: ubuntu-ibm.yml: Add GitHub Actions ppc64le case

    Note that the default configure option `./configure cppflags=-DRUBY_DEBUG` with
    the default optimization level `-O3`, causes the following Ractor test and other
    tests failing. So, we don't set the option in ppc64le case.

    ```
    $ make btest BTESTS=bootstraptest/test_ractor.rb
    ```

    See https://bugs.ruby-lang.org/issues/21534 for details.

commit dd09d8987c9988b48d43352b922c0df06bc9a47f
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-27 23:06:46 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-28 22:55:43 +0900

    CI: ubuntu-ibm.yml: Refactor

    * Remove logic that was used for the ubuntu.yml, but not used for
      ubuntu-ibm.yml.
    * Add a dummy Ubuntu x86_64 case to make this CI pass on fork repositories.
      This case only runs on fork repositories.

commit 8eb1ed56195d51ddeba430e6cd1b26f62a402b87
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-27 22:56:57 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-28 22:55:43 +0900

    Revert "CI: Drop Ubuntu s390x temporarily."

    This reverts commit c3c74e0d31c0c7327d2eb2c79b253d6500c6f2c0.

commit 05fc01188a5315a5de034122f6c4864702f80378
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-28 21:08:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-28 22:21:05 +0900

    rb_ivar_delete: allow complex transition

    `rb_ivar_delete` would force a new shape to be created.
    And in the case of a shape exhaustion, it wouldn't handle
    T_CLASS/T_MODULE correctly.

commit d19a1eee815b5c4d14ec0ff992e7880e8a1861c5
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-28 07:52:52 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-28 22:20:30 +0900

    ZJIT: Enable no-fail-fast on zjit-test

commit 89e18473a9ef3d06a864855e19536cc2f3188f17
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-28 03:24:05 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-28 22:20:30 +0900

    ZJIT: Update doc about snapshot update

commit 6b7ed4cad208ab7528070a66b1c97906606fa499
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-28 03:18:44 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-28 22:20:30 +0900

    ZJIT: Add zjit-test-update for updating insta snapshot

commit 2edfc51acf55bcb1db907b8e5542564529facb19
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-27 22:54:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-28 22:05:49 +0900

    Make Thread::Queue and SizedQueue support compaction

commit 6023195fbd7f422e94b9d5cdee39273f71f9078f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-28 19:01:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-28 19:01:48 +0900

    Abandon `ruby` target on the others than GNU make

    The default non-transformed name, `ruby` target was added for the case
    of `--program-transform-name` and similars, but it was occasionally
    added even when no such option is used.

commit e7fb87ee3a826a387e5bfb9edea059f1aa065462
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-28 01:13:16 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-28 16:25:51 +0900

    Populate ivar caches for types other than T_OBJECT

    `vm_setinstancevariable` had a codepath to try to match the inline
    cache for types other than T_OBJECT, but the cache population path
    in `vm_setivar_slowpath` was exclusive to T_OBJECT, so `vm_setivar_default`
    would never match anything.

    This commit improves `vm_setivar_slowpath` so that it is capable of
    filling the cache for all types, and adds a `vm_setivar_class` codepath
    for `T_CLASS` and `T_MODULE`.

    `vm_setivar`, `vm_setivar_default` and `vm_setivar_class` could be unified,
    but based on the very explicit `NOINLINE` I assume they were split to minimize
    codesize.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-27T14:58:58Z merge-vm-setivar-d.. 5b749d8e53) +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-27T16:30:31Z setivar-cache-gene.. 4fe78ff296) +PRISM [arm64-darwin24]

    |                         |compare-ruby|built-ruby|
    |:------------------------|-----------:|---------:|
    |vm_ivar_set_on_instance  |     161.809|   164.688|
    |                         |           -|     1.02x|
    |vm_ivar_set_on_generic   |      58.769|   115.638|
    |                         |           -|     1.97x|
    |vm_ivar_set_on_class     |      70.034|   141.042|
    |                         |           -|     2.01x|
    ```

commit b85b2b84ad407b4653b6762ee61db0676655b21d
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-28 15:32:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-28 15:35:10 +0900

    [ruby/error_highlight] Remove a branch for Ruby 3.1

    https://github.com/ruby/error_highlight/commit/d3063cde62

commit 2e27f6e1f11745669c0a52e5c68b2f01f99c6a0b
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-28 15:29:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-28 15:35:10 +0900

    [ruby/error_highlight] Drop Ruby 3.1 support

    ... as it is already EOL

    https://github.com/ruby/error_highlight/commit/f15489216a

commit 85e0c98cf0537c2049bfbbc2e21228264db90e00
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-26 19:11:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-28 15:26:06 +0900

    [ruby/error_highlight] Show a dedicated snippet for "wrong number of arguments" error

    This is an experimental implementation for
    https://bugs.ruby-lang.org/issues/21543.

    ```
    test.rb:2:in 'Object#foo': wrong number of arguments (given 1, expected 2) (ArgumentError)

        caller: test.rb:6
        |   foo(1)
            ^^^
        callee: test.rb:2
        | def foo(x, y)
              ^^^
            from test.rb:6:in 'Object#bar'
            from test.rb:10:in 'Object#baz'
            from test.rb:13:in '<main>'
    ```

    https://github.com/ruby/error_highlight/commit/21e974e1c4

commit ed8fe53e80e16f9bff592333a3082981f39216e1
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-26 19:05:57 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-08-28 12:44:29 +0900

    Allow to get a NODE_SCOPE node of dummy stack frame of ArgumentError

    Previously, it was not possible to obtain a node of the callee's
    `Thread::Backtrace::Location` for cases like "wrong number of
    arguments" by using `RubyVM::AST.of`. This change allows that retrieval.

    This is preparation for [Feature #21543].

commit 2ccb2de677849732181224cb9fd1a831dbaac4c0
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-26 18:58:05 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-08-28 12:44:04 +0900

    Make `RubyVM::AST.of` return a parent node of NODE_SCOPE

    This change makes `RubyVM::AST.of` and `.node_id_for_backtrace_location`
    return a parent node of NODE_SCOPE (such as NODE_DEFN) instead of the
    NODE_SCOPE node itself.
    (In future, we may remove NODE_SCOPE, which is a bit hacky AST node.)

    This is preparation for [Feature #21543].

commit 471028459dcb1aa778cbc4868240b4a674212a03
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-28 08:02:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-28 08:02:47 +0900

    ZJIT: Pessimize locals in the presence of send (with block) (#14374)

    We can refine this later by some kind of analysis of the block we're
    sending to: maybe it doesn't write to our locals, or at least doesn't
    write to all of them.

commit 984e05a11b761186c50971d6ef40e6207669fc7e
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 06:50:58 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-28 07:56:13 +0900

    ZJIT: Count dynamic dispatch (SendWithoutBlock)

commit fb3d2a2a1977e702e46723ab0ed691b1e9433e7f
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-28 04:15:08 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-28 07:56:13 +0900

    ZJIT: Increment specific counter on side-exit

commit 4652879f4360c5a7a9255e6a0dd75688f8ef47f9
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-28 04:03:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-28 04:03:32 +0900

    ZJIT: Specialize some Sends (#14363)

    * ZJIT: Profile and specialize Array#empty?
    * ZJIT: Specialize BasicObject#==
    * ZJIT: Specialize Hash#empty?
    * ZJIT: Specialize BasicObject#!

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

commit 886268856ba7c70a6eaf25eeb402e6ebed9e851e
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-08-27 22:26:57 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-08-28 03:14:29 +0900

    Fix bad NameError raised using sendforward instruction through vcall

    If you called a VCALL method and the method takes forwarding arguments
    and then you forward those arguments along using the sendforward instruction,
    the method_missing class was wrongly chosen as NameError instead of NoMethodError.
    This is because the VM looked at the CallInfo of the vcall and determined it needed
    to raise NameError. Now we detect that case and raise NoMethodError.

    Fixes [Bug #21535]

commit 76810fc34905011535f50c3f8bbcaf39cb80b6cc
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-28 02:01:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-28 02:01:07 +0900

    ZJIT: Implement side exit stats (#14357)

commit 61d26c35bf8c744b4c59a44536bc58a6c4653ab6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-27 04:20:54 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-27 23:34:40 +0900

    Don't pin method hooks of bmethods

commit 6c0315d99a93bdea947f821bd337000420ab41d1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-27 04:09:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-27 23:34:40 +0900

    Rename rb_hook_list_mark_and_update to rb_hook_list_mark_and_move

commit 47d4cceeff1be3c661af09fa2e29a3578dbab5e6
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-26 23:38:16 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-27 22:48:54 +0900

    CI: Use `nproc` to count only on-line CPUs for GNUMAKEFLAGS

    Use `nproc` rather than `nproc --all`. Because the number by the `nproc` is
    different from the number by the `nproc --all` on GitHub Actions ppc64le/s390x.
    This caused the `make` command runs much more jobs than the number of on-line
    CPUs on these environments.
    The make command ran 193 jobs in parallel for 4 on-line CPUs in GitHub Actions
    ppc64le, and ran 9 jobs in parallel for 4 on-line CPUs in GitHub Actions s390x.

    And this caused the high load average 34.58 on ppc64le, and 6.69 on s390x.
    These values should be less than 4.0. I believe we should use the `nproc`
    rather than `nproc --all`.

    ```
    + nproc
    4
    + nproc --all
    192
    ```

    ```
    + nproc
    4
    + nproc --all
    8
    ```

    See https://github.com/IBM/actionspz/issues/38 for details.

    Note the `--all` option in the `nproc --all` was originally added to boost CPU
    in a hyper threading environment where one physical core works like two logical
    cores.

    https://www.intel.com/content/www/us/en/gaming/resources/hyper-threading.html

commit 8935cf98e5e6b1b94ffcb6ab46c83339487f5de0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-27 04:42:41 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-27 22:26:52 +0900

    Fix malloc_gc_disabled in Ractor lock

    We should disable GC for malloc for the current Ractor instead of the locked
    Ractor because it's the current Ractor that could run code that mallocs.

commit d2ef901f6cf86b3cd172782e2c629be162c99b72
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-25 00:37:26 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-27 22:25:36 +0900

    [DOC] Tweaks for String#length

commit c3c74e0d31c0c7327d2eb2c79b253d6500c6f2c0
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-27 21:35:18 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-27 22:14:09 +0900

    CI: Drop Ubuntu s390x temporarily.

    We are seeing the not-starting s390x jobs.
    Until the following issue is fixed, we drop the s390x case.

    https://github.com/IBM/actionspz/issues/34

commit f7be2816797a993f0aeda04c645f268ddff9108c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-27 20:08:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-27 20:10:52 +0900

    [DOC] Clarify the conversion by `File.path`

commit 08af07b297c0daf3393024f6e03768074d99d9da
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-27 19:31:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-27 20:10:52 +0900

    Add more `File.path` tests

commit 5257e1298c4dc4e854eaa0a9fe5e6dc5c1495c91
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-27 00:43:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-27 19:41:07 +0900

    Replace ROBJECT_EMBED by ROBJECT_HEAP

    The embed layout is way more common than the heap one,
    especially since WVA.

    I think it makes for more readable code to inverse the
    flag.

commit 5ff7b2c582a56fe7d92248adf093fd278a334066
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-27 03:01:15 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-27 12:02:56 +0900

    [DOC] Add Ractor to NEWS

commit d9e9a667a8c8fb6f57611c68b45eaf1f2c39fca1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-24 02:57:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    JSON.generate: warn or raise on duplicated key

    Because both strings and symbols keys are serialized the same,
    it always has been possible to generate documents with duplicated
    keys:

    ```ruby
    >> puts JSON.generate({ foo: 1, "foo" => 2 })
    {"foo":1,"foo":2}
    ```

    This is pretty much always a mistake and can cause various
    issues because it's not guaranteed how various JSON parsers
    will handle this.

    Until now I didn't think it was possible to catch such case without
    tanking performance, hence why I only made the parser more strict.

    But I finally found a way to check for duplicated keys cheaply enough.

commit 0e0f0dfd070fc156ec74c58f44d86a884a0580e0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-23 23:58:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    Fix `JSON::Coder` to cast non-string keys.

commit c3a80ca58226f588ef393ab5ae1de304eabf9a9d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-23 23:06:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    Fix `JSON.generate` `strict: true` mode to also restrict hash keys

commit d325e3ed706ec356c9439824ed82cbcdb4487859
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 16:39:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Improve generation options documentation

    https://github.com/ruby/json/commit/3187c88c06

commit a062b9a594ad8d42b0e347da786d42818865abcf
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 16:21:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Remove reference to fast_generate

    https://github.com/ruby/json/commit/19bcfdd8d8

commit 97b5df11435d60d4dcdeb9474275cfc694d43b1e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 00:39:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Optimize `fbuffer_append_str_repeat`

    Helps with pretty printting performance:

    ```
    == Encoding activitypub.json (52595 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after     1.746k i/100ms
    Calculating -------------------------------------
                   after     17.481k (± 1.0%) i/s   (57.20 μs/i) -     89.046k in   5.094341s

    Comparison:
                  before:    16038.4 i/s
                   after:    17481.1 i/s - 1.09x  faster

    == Encoding citm_catalog.json (500298 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after    60.000 i/100ms
    Calculating -------------------------------------
                   after    608.157 (± 2.3%) i/s    (1.64 ms/i) -      3.060k in   5.034238s

    Comparison:
                  before:      525.3 i/s
                   after:      608.2 i/s - 1.16x  faster

    == Encoding twitter.json (466906 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after   160.000 i/100ms
    Calculating -------------------------------------
                   after      1.606k (± 0.5%) i/s  (622.70 μs/i) -      8.160k in   5.081406s

    Comparison:
                  before:     1410.3 i/s
                   after:     1605.9 i/s - 1.14x  faster
    ```

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

commit f6823936fa2ebfc4372e44499237235ae17f0bd9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-24 22:22:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] parser.c: Remove useless dereference

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

commit 4d6b1241f628392cad79c8aef1477445514135f2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-24 04:04:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Extract `fbuffer_append_str_repeat` function

    https://github.com/ruby/json/commit/12656777dc

commit 66815a4c0c1141a30ec7edce7ae97b9788ec0a46
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-23 23:05:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Silence ractor experimental warnings

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

commit 92bd1d9b5e0e687bac6f5690e62245eed3af791c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-22 18:56:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Remove too big Float from fixture to avoid warning

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

commit 312235a4999dc512505fffbe6da1148b97a1a1f3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-22 18:54:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-27 10:01:52 +0900

    [ruby/json] Test behavior of parsing a too big Float

    https://github.com/ruby/json/commit/8510ea5c1a

commit d1330fcf945832752606d72e62e0d636ca0e80c2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-27 08:48:50 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-27 08:48:50 +0900

    Skip a Ractor test unstable on Windows for MinGW

    MinGW is also Windows, so it doesn't work for MinGW either.
    https://github.com/ruby/ruby/actions/runs/17250269899/job/48950567246

commit c7ef8df8516aa27a78a1f3b6dff78c523eca259d
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-27 05:57:55 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-08-27 07:03:47 +0900

    Follow up cleanup for `opt_(aref|aset)_with` removal

    Just removing some unneeded tests, outdated comments...etc.

commit 53d2025330b40e03402c1fbaaafaf8711dd55da5
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-26 05:55:43 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-27 06:26:20 +0900

    ZJIT: Dump graphviz output to given filename

commit a1a244db7c6f5937edb58e4c7ccfb8e1eb617aec
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-26 05:15:47 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-27 06:26:20 +0900

    ZJIT: Graphviz point to top of params

commit d133ae9ca6861e979b2508b46b38da0afc579038
  Author:     Max Bernstein <tekknolagi@gmail.com>
  AuthorDate: 2025-08-27 05:57:14 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 05:57:14 +0900

    ZJIT: Canonicalize --zjit-log-compiled-iseqs filename (#14352)

    This fixes issues related to the process changing directory and not
    having only a relative path.

    Thanks, Alan.

commit fb6e3a80009a744a4e0b75660f1ce6da65e20e6c
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-08-26 06:31:42 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-08-27 05:02:17 +0900

    Remove `opt_aref_with` and `opt_aset_with`

    When these instructions were introduced it was common to read from a
    hash with mutable string literals.  However, these days, I think these
    instructions are fairly rare.

    I tested this with the lobsters benchmark, and saw no difference in
    speed.  In order to be sure, I tracked down every use of this
    instruction in the lobsters benchmark, and there were only 4 places
    where it was used.

    Additionally, this patch fixes a case where "chilled strings" should
    emit a warning but they don't.

    ```ruby
    class Foo
      def self.[](x)= x.gsub!(/hello/, "hi")
    end

    Foo["hello world"]
    ```

    Removing these instructions shows this warning:

    ```
    > ./miniruby -vw test.rb
    ruby 3.5.0dev (2025-08-25T21:36:50Z rm-opt_aref_with dca08e286c) +PRISM [arm64-darwin24]
    test.rb:2: warning: literal string will be frozen in the future (run with --debug-frozen-string-literal for more information)
    ```

    [Feature #21553]

commit 8df06d6d90e6accdda7db8564c0167ec9469db6c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-27 04:58:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 04:58:25 +0900

    Fix -Wcomment warnings from rbs (#14349)

commit 0d179a12a33770026765b502d17a1c4e9aeccaa1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-27 03:51:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 03:51:53 +0900

    Build ppc64le and s390x jobs in a separate workflow (#14353)

    * cp ubuntu.yml ubuntu-ibm.yml

    * Revert "CI: ubuntu.yml: Skip user ground id test on ppc64le and s390x"

    This reverts commit 9fa87a668836f83ab836d0cbcefb4056622a0ed6.

    * Revert "CI: ubuntu.yml: Set HOME env on ppc64le and s390x"

    This reverts commit 05b654b43f6d0e92fbc3e1e908d811f031d59e40.

    * Revert "CI: ubuntu.yml: Add GitHub Actions s390x case"

    This reverts commit 099df0b40b215b2fc5db59569d45c59ee48111a7.

    * Remove duplication among copied jobs

commit 1e738447f1394d8274a26569f9e38a7e6cea10a4
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-27 03:05:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-27 03:28:08 +0900

    [DOC] Link fix for String

commit 6a2964d28cd49c674c0b23958f922ac914253dd1
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-27 03:27:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 03:27:54 +0900

    [DOC] Tweaks for String#intern (#14314)

commit dbfd0973d3f2810c6ee490f0bc84a35d6440a3f1
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-27 03:27:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 03:27:42 +0900

    [DOC] Tweaks for String#inspect

commit bb9116281ba8bc9e9d1bf0c72e75bea79cf0f89b
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-27 03:23:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 03:23:33 +0900

    [DOC] Tweaks for String#ljust

commit d113bc5a6d5eb553f076a2f5dfdc974e63ea78da
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-27 02:27:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-27 02:27:25 +0900

    Fix uninitialized next_shape_id (#14348)

commit 63a99113cdc40ec488142f99f0c4174ad13e6e60
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-27 02:17:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-27 02:17:52 +0900

    ZJIT: Avoid documenting internal methods

    A different doc-test fix from 238aaa4cda14add04f7ecb4ff6fc52719589e89d.
    They're not supposed to be public in the first place.

commit 238aaa4cda14add04f7ecb4ff6fc52719589e89d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-26 23:03:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-26 23:39:02 +0900

    [DOC] Document undocumented methods in ZJIT

commit da6198de8f27454fa18d6d7f9bcbaf36a3476255
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-26 23:01:00 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-26 23:39:02 +0900

    [DOC] Document constants in Pathname

commit 1928df4d334f9ea794c21c9ef39cb9c3cbb99ec3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-26 22:53:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-26 23:39:02 +0900

    [DOC] Improve documentation of Kernel#Pathname

commit 8b7b58735aeed748764397875210765a4cd63661
  Author:     Max Bernstein <tekknolagi@gmail.com>
  AuthorDate: 2025-08-26 22:55:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-26 22:55:45 +0900

    ZJIT: Side-exit on unknown instructions (#14212)

    Don't abort the entire compilation.

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

commit 6b2b379ae50a777ec2de30e6917c9a9eedbd0c6b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 16:46:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 20:44:59 +0900

    vm_getivar: unify codepaths

commit 6592e585ff86268a20ce61e946363f5a1831d79b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 16:35:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 20:44:59 +0900

    rb_obj_field_get: unify codepaths

    Now that T_OBJECT and T_IMEMO/fields have identical layout
    a lot more codepaths can be shared.

commit 6a2df394cb5400d9180839f48f483507039b0c73
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 16:29:08 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 20:44:59 +0900

    rb_ivar_lookup: unify codepaths

    Now that T_OBJECT and T_IMEMO/fields have identical layout
    a lot more codepaths can be shared.

commit 14bdf4b57dcd3169a8717dc893fd1e1be897deeb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 16:19:07 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 20:44:59 +0900

    Ensure T_OBJECT and T_IMEMO/fields have identical layout

commit 59c996797e16f45a3b91baa04083c2da3a1edfcb
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:41:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:58:59 +0900

    Exclude a couple tests failing on JRuby for multiple reasons

    * https://github.com/jruby/jruby/issues/8972
      but also at least 2 more incompatibilities.

commit 1c62bbb51a58bb97dea72570a735fcb4a4eee4d9
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:26:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:58:40 +0900

    Fix Pathname#lutime test and add the method back

commit 5981961c2cc875466dfc05e074c0856dd7326c3e
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:25:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:58:18 +0900

    Fix TestPathname#has_symlink? it was returning false on Linux

commit 3ca804fdfa0c1b7dfad09fa67d709eb68aac5f12
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:14:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:54:23 +0900

    Use File.sysopen for consistency

    * There is no point to call IO.sysopen and that's the last IO method,
      with Pathname we know it's always a file path.

commit f6ecbea67543300c039730e51fbe5612383dd45a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-26 18:53:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:53:54 +0900

    Revert "Restore Pathname#realdirpath"

    This reverts commit 7d79475bec4803a93424c1dfd2e2fec1dfd9ab14.

commit d947c45bcd8aa9745a2410d02713fcdb1dc672b4
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:07:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:52:08 +0900

    Add back Pathname#realdirpath

    * This has no test in test_pathname.rb, that is why it was missed.
    * Found by ruby/spec, and confirmed pathname.c did the same.

commit a931da6df4bcb8b979d715e1e18fd84328fb417d
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 21:06:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:51:31 +0900

    Pathname#initialize should raise TypeError if coercion fails

    * Found by ruby/spec, and confirmed pathname.c did the same.

commit 167165b274ccea7d0092b6bf17f35653110d5f08
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-23 20:46:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 18:44:34 +0900

    The Pathname method should be a module_function of Kernel

    * Found by ruby/spec, and confirmed pathname.c did the same.

commit b5c8c97ef2ac1b3b45aefb52049c8c0a02c20aef
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-08-26 16:05:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-26 16:05:42 +0900

    Update bundled gems list as of 2025-08-26

commit b2e940a3740a558d6b5f8f7fbc5677ffa190c610
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-26 11:16:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 12:16:18 +0900

    Simplified assertion

commit cc3f14951f1a06fa746e8a574b9f9975b118df47
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-26 05:06:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 11:12:38 +0900

    Fix ObjectSpace.count_objects to allocate all symbols it uses eagerly

    * To not count them as program allocations.
    * Similar to https://github.com/ruby/ruby/pull/13906

commit e31750a6690238381c4a5bf97952d57275918098
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-08-26 05:04:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-26 11:12:38 +0900

    Revert "Omit extra allocation of Array object in Windows platform temporary"

    This reverts commit 6ab2cd0f69ff1591db3a0011b73d3b26a9a69412.

commit e49c29ed7543996612c323a5f0738126ffc7685b
  Author:     Max Bernstein <tekknolagi@gmail.com>
  AuthorDate: 2025-08-26 05:16:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-26 05:16:34 +0900

    ZJIT: Migrate to insta

    Migrate from expect-test to insta snapshot testing library. While expect-test
    is very small and has a limited surface, it does not handle nextest well; it
    while doing inline snapshot updates, it races other test processes to update
    the file, leading to frequent "Failed to process macro invocation" errors.

    insta handles this by doing batches; it writes to temporary files which can
    then be committed in a batch using `cargo insta review` or
    `INSTA_UPDATE=always`.

commit e29f68cbbce0803a0cc401913b18b73ea070862f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-26 00:26:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-26 04:43:01 +0900

    Fix MMTk for compatibility

commit fca258f97f7b1d111f01250c1e0d97043b095954
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-26 00:21:26 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-26 04:43:01 +0900

    Fix deadlock when malloc in Ractor lock

    If we malloc when the current Ractor is locked, we can deadlock because
    GC requires VM lock and Ractor barrier. If another Ractor is waiting on
    this Ractor lock, then it will deadlock because the other Ractor will
    never join the barrier.

    For example, this script deadlocks:

        r = Ractor.new do
          loop do
            Ractor::Port.new
          end
        end

        100000.times do |i|
          r.send(nil)
          puts i
        end

    On debug builds, it fails with this assertion error:

        vm_sync.c:75: Assertion Failed: vm_lock_enter:cr->sync.locked_by != rb_ractor_self(cr)

    On non-debug builds, we can see that it deadlocks in the debugger:

        Main Ractor:
        frame #3: 0x000000010021fdc4 miniruby`rb_native_mutex_lock(lock=<unavailable>) at thread_pthread.c:115:14
        frame #4: 0x0000000100193eb8 miniruby`ractor_send0 [inlined] ractor_lock(r=<unavailable>, file=<unavailable>, line=1180) at ractor.c:73:5
        frame #5: 0x0000000100193eb0 miniruby`ractor_send0 [inlined] ractor_send_basket(ec=<unavailable>, rp=0x0000000131092840, b=0x000000011c63de80, raise_on_error=true) at ractor_sync.c:1180:5
        frame #6: 0x0000000100193eac miniruby`ractor_send0(ec=<unavailable>, rp=0x0000000131092840, obj=4, move=<unavailable>, raise_on_error=true) at ractor_sync.c:1211:5

        Second Ractor:
        frame #2: 0x00000001002208d0 miniruby`rb_ractor_sched_barrier_start [inlined] rb_native_cond_wait(cond=<unavailable>, mutex=<unavailable>) at thread_pthread.c:221:13
        frame #3: 0x00000001002208cc miniruby`rb_ractor_sched_barrier_start(vm=0x000000013180d600, cr=0x0000000131093460) at thread_pthread.c:1438:13
        frame #4: 0x000000010028a328 miniruby`rb_vm_barrier at vm_sync.c:262:13 [artificial]
        frame #5: 0x00000001000dfa6c miniruby`gc_start [inlined] rb_gc_vm_barrier at gc.c:179:5
        frame #6: 0x00000001000dfa68 miniruby`gc_start [inlined] gc_enter(objspace=0x000000013180fc00, event=gc_enter_event_start, lock_lev=<unavailable>) at default.c:6636:9
        frame #7: 0x00000001000dfa48 miniruby`gc_start(objspace=0x000000013180fc00, reason=<unavailable>) at default.c:6361:5
        frame #8: 0x00000001000e3fd8 miniruby`objspace_malloc_increase_body [inlined] garbage_collect(objspace=0x000000013180fc00, reason=512) at default.c:6341:15
        frame #9: 0x00000001000e3fa4 miniruby`objspace_malloc_increase_body [inlined] garbage_collect_with_gvl(objspace=0x000000013180fc00, reason=512) at default.c:6741:16
        frame #10: 0x00000001000e3f88 miniruby`objspace_malloc_increase_body(objspace=0x000000013180fc00, mem=<unavailable>, new_size=<unavailable>, old_size=<unavailable>, type=<unavailable>) at default.c:8007:13
        frame #11: 0x00000001000e3c44 miniruby`rb_gc_impl_malloc [inlined] objspace_malloc_fixup(objspace=0x000000013180fc00, mem=0x000000011c700000, size=12582912) at default.c:8085:5
        frame #12: 0x00000001000e3c30 miniruby`rb_gc_impl_malloc(objspace_ptr=0x000000013180fc00, size=12582912) at default.c:8182:12
        frame #13: 0x00000001000d4584 miniruby`ruby_xmalloc [inlined] ruby_xmalloc_body(size=<unavailable>) at gc.c:5128:12
        frame #14: 0x00000001000d4568 miniruby`ruby_xmalloc(size=<unavailable>) at gc.c:5118:34
        frame #15: 0x00000001001eb184 miniruby`rb_st_init_existing_table_with_size(tab=0x000000011c2b4b40, type=<unavailable>, size=<unavailable>) at st.c:559:39
        frame #16: 0x00000001001ebc74 miniruby`rebuild_table_if_necessary [inlined] rb_st_init_table_with_size(type=0x00000001004f4a78, size=524287) at st.c:585:5
        frame #17: 0x00000001001ebc5c miniruby`rebuild_table_if_necessary [inlined] rebuild_table(tab=0x000000013108e2f0) at st.c:753:19
        frame #18: 0x00000001001ebbfc miniruby`rebuild_table_if_necessary(tab=0x000000013108e2f0) at st.c:1125:9
        frame #19: 0x00000001001eba08 miniruby`rb_st_insert(tab=0x000000013108e2f0, key=262144, value=4767566624) at st.c:1143:5
        frame #20: 0x0000000100194b84 miniruby`ractor_port_initialzie [inlined] ractor_add_port(r=0x0000000131093460, id=262144) at ractor_sync.c:399:9
        frame #21: 0x0000000100194b58 miniruby`ractor_port_initialzie [inlined] ractor_port_init(rpv=4750065560, r=0x0000000131093460) at ractor_sync.c:87:5
        frame #22: 0x0000000100194b34 miniruby`ractor_port_initialzie(self=4750065560) at ractor_sync.c:103:12

commit 9bc53dca08f51fab2d5f52b593864df7742964c5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 01:10:23 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 02:14:30 +0900

    Cast down to socklen_t explicitly in rb_getnameinfo

    Similar to 19f3793a4bd6974cd66cc058fc6d2ae733337745

    Fixes:

    ```
    ../../../ext/socket/raddrinfo.c:755:60: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'socklen_t' (aka 'unsigned int') [-Wshorten-64-to-32]
      755 |         return getnameinfo(sa, salen, host, hostlen, serv, servlen, flags);
          |                ~~~~~~~~~~~                                 ^~~~~~~
    ../../../ext/socket/raddrinfo.c:755:45: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'socklen_t' (aka 'unsigned int') [-Wshorten-64-to-32]
      755 |         return getnameinfo(sa, salen, host, hostlen, serv, servlen, flags);
          |                ~~~~~~~~~~~                  ^~~~~~~
    ```

commit d8beeb74f1fe50a2c5b12d1c7cb1c05f017b165c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-26 01:02:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 01:41:13 +0900

    Refactor class_fields_ivar_set to use generic_shape_ivar

commit 980ebb0fb6f6ab1d3f12ebfa27267a2d7d37c578
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-26 00:57:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-26 00:57:32 +0900

    ZJIT: Add compilation failure stats (#14310)

commit 221c76b28cef0dde3cbca8c1babb86430471e957
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 22:36:47 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 00:13:00 +0900

    Refactor rb_obj_ivar_set to delegate to obj_field_set

commit 0a621790f085c7e3d9c85c7b6b725944cb32d4fc
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 21:58:53 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-26 00:13:00 +0900

    Refactor rb_obj_ivar_set to use generic_shape_ivar

commit 4139849e4ba92db0b33791e70115adce1908547a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-25 00:59:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-25 22:40:26 +0900

    [DOC] Tweaks for String#lines

commit 5851e649f56f3f23edb364bb32c736bce57d4523
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-25 21:10:18 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-25 21:53:20 +0900

    Fix dependency of unicode_normalize/tables.rb when no baseruby

commit 55f492735b8ea219d5e7b056cdc57fffc8b7cc8d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-25 18:05:00 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-25 21:53:20 +0900

    Win: Fix `--with-gmp` option

    Do not drop the following option.
    Do not add an extra `=1` argument.

commit 84be67a37c6f7b359aa5f55a94a8d87da2efe341
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-23 00:11:20 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-25 21:53:20 +0900

    Win: Fix `--without-baseruby` option

    This option in `win32/configure.bat` was completely broken.
    Also honor `HAVE_BASERUBY` than `BASERUBY` value, and use
    `missing-baseruby.bat` to check the version.

commit f1727b5b6776643ca1ca923899056a1e6635cc38
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 21:03:38 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-25 21:46:29 +0900

    Get rid of rb_obj_set_shape_id

    Now that the shape_id has been unified across all types
    this helper function doesn't do much over `RBASIC_SET_SHAPE_ID`.

    It still check if the write is needed, but it doesn't seem useful
    in places where it's used.

commit 78b8ecd1ea79c777260c2d0221835ca2e5cdca31
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 18:36:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-25 20:45:51 +0900

    Refactor rb_obj_ivar_set

    With the recent changes to shapes and variables
    `general_ivar_set` no longer make sense and is
    just extra complexity.

    Trying to have a unified logic for all 3 types of objects
    made sense, but also made the code way more complex.

    We should definitely try to share more code between the
    3 paths though, but that can be done with functions like
    `generic_shape_ivar`.

commit e535b0da483fe0aad5c4f661ad1eb6640325dec5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-25 18:33:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-25 20:45:51 +0900

    Get rid of obj_ivar_set_transition_too_complex

commit d2995a5d11928dc75cbc784e7e3013114cedda37
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-23 03:08:31 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-25 18:20:19 +0900

    [DOC] Add ObjectSpace._id2ref deprecated to NEWS.md

commit 6ab2cd0f69ff1591db3a0011b73d3b26a9a69412
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 19:10:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Omit extra allocation of Array object in Windows platform temporary

commit 23ec1fef2523692e26086d05e713bd0c41433089
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 15:47:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Suppress CodeQL warnings to use File methods instead of IO

commit 92433263f39e169d8eed8319a7fa8ecbfcc22790
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 14:03:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Skip rbs tests for pathname_bundle.rb

    ```
    Error: test_join(PathnameInstanceTest): NoMethodError: undefined method 'respond_to?' for an instance of RBS::UnitTest::Convertibles::ToStr
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/spy.rb:94:in 'Pathname#join'
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/spy.rb:94:in 'block (2 levels) in wrapped_object'
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/type_assertions.rb:152:in 'block in RBS::UnitTest::TypeAssertions#send_setup'
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/type_assertions.rb:150:in 'Kernel#catch'
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/type_assertions.rb:150:in 'RBS::UnitTest::TypeAssertions#send_setup'
    /Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rbs/lib/rbs/unit_test/type_assertions.rb:172:in 'RBS::UnitTest::TypeAssertions#assert_send_type'
    test/stdlib/Pathname_test.rb:389:in 'PathnameInstanceTest#test_join'
         386:                      Pathname('.'), :join, 'foo'
         387:     assert_send_type '(String, String) -> Pathname',
         388:                      Pathname('.'), :join, 'foo', 'bar'
      => 389:     assert_send_type '(ToStr) -> Pathname',
         390:                      Pathname('.'), :join, ToStr.new('foo')
         391:     assert_send_type '(Pathname) -> Pathname',
         392:                      Pathname('.'), :join, Pathname('foo')
    ```

commit 3aa568071a0f1a7f68a7f4dc7f8cce614999d319
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 12:04:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Make Kernel.Pathname as public again

commit c085672c7f7963c4c97889c5281f41d5fb140c5d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 12:10:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Raise TypeError without String argument same as C version

commit 7d79475bec4803a93424c1dfd2e2fec1dfd9ab14
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 12:03:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Restore Pathname#realdirpath

commit 1b4a380855ab141c3b8cf3cdc0725cd24784fc62
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-22 11:21:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-25 17:40:11 +0900

    Import https://github.com/ruby/pathname/pull/57

commit 19f3793a4bd6974cd66cc058fc6d2ae733337745
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-25 12:04:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-25 12:07:55 +0900

    Cast down to `socklen_t` explicitly

commit 18c828d79294ca53b554af257d29789ba9a663e4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-22 22:03:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-24 14:35:16 +0900

    [DOC] Fix quote in the example

    The character in the example is U+0022 QUOTATION MARK, not U+201C LEFT
    DOUBLE QUOTATION MARK.

commit 8a704783f87cfc3be44cfa147bb7d79f469db0ff
  Author:     Yaroslav <iaroslav2k@gmail.com>
  AuthorDate: 2025-08-24 06:46:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-24 06:46:32 +0900

    [DOC] Fix outdated `ENV::clone` method description

    It does raise an exception rather than just issuing a warning:

    ```shell
    $ docker run -e ALL_RUBY_SINCE=2.7 --rm rubylang/all-ruby ./all-ruby -We 'ENV.clone'
    ruby-2.7.0
    ...
    ruby-3.0.7
    ruby-3.1.0-preview1 -e:1: warning: ENV.clone is deprecated; use ENV.to_h instead
    ...
    ruby-3.2.0-preview1 -e:1: warning: ENV.clone is deprecated; use ENV.to_h instead
    ruby-3.2.0-preview2 -e:1:in `clone': Cannot clone ENV, use ENV.to_h to get a copy of ENV as a hash (TypeError)
                            from -e:1:in `<main>'
                    exit 1
    ...
    ruby-3.3.9          -e:1:in `clone': Cannot clone ENV, use ENV.to_h to get a copy of ENV as a hash (TypeError)
                            from -e:1:in `<main>'
                    exit 1
    ruby-3.4.0-preview1 -e:1:in 'clone': Cannot clone ENV, use ENV.to_h to get a copy of ENV as a hash (TypeError)
                            from -e:1:in '<main>'
                    exit 1
    ...
    ruby-3.5.0-preview1 -e:1:in 'clone': Cannot clone ENV, use ENV.to_h to get a copy of ENV as a hash (TypeError)
                            from -e:1:in '<main>'
                    exit 1

    ```

commit 5b5b5b3af555a0349c3d7e4e2a50f36ecd848560
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-23 01:59:31 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-23 09:13:22 +0900

    ZJIT: Spill whole FrameState in `Insn::SendWithoutBlock`

    Previously, we only spilled the arguments necessary for the particular
    send. In case the callee raises and a rescue resumes the ISEQ, that
    did not present a complete stack state. E.g. in `[1, (raise rescue 2)]`
    the raise send only spills `self`, when `1` also needs to be spilled.

    Spill the whole stack. Adjust parsing for `opt_aref_with` since the
    key argument for the send now needs to be described by the frame state
    of the send.

    This changes the contract for `Insn::SendWithoutBlock` to use arguments
    from the interpreter stack as described by its frame state.

commit 8c24e6683b236a390587282998d5885c932cfef4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-23 06:47:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-23 06:47:26 +0900

    ZJIT: Allow querying a single ZJIT stat (#14309)

    * ZJIT: Add RubyVM::ZJIT.stats_enabled?

    * ZJIT: Allow querying a single ZJIT stat

commit 1e3fcc28b99cf689c42d78fb412aab9690879ab9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-22 23:24:42 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-23 03:21:30 +0900

    Fix typo in function name ractor_port_initialize

commit 9db54a1a98956ea37a04d6e3f83fcd6745ed96a6
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-08-15 08:21:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-23 02:49:44 +0900

    Fixes to encoding/transcoding for ractors.

    Not all ractor-related encoding issues were fixed by 1afc07e815051e2f73493f055f2130cb642ba12a.
    I found more by running my test-all branch with 3 ractors for each test.

commit 48fc41cc19235711cd9a8e5afd37af91fd78badd
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-23 01:43:09 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-23 02:34:11 +0900

    ZJIT: Temporarily downgrade assert_compiles to assert_runs

commit b6f0cd51fcbcec8b05f9f793448f047adec809ad
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-22 05:55:16 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-23 02:34:11 +0900

    ZJIT: Update tests

commit bcd9c87d15c34e93e5c6dfa5dcc82fde2d10ddb5
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-22 05:49:34 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-23 02:34:11 +0900

    ZJIT: Eagerly place CheckInterrupts

    Ideally we would do this lazily post optimization, but this is easier
    for now: we already have the requisite Snapshots available.

commit d690e8327644102386deeaeee8eb4818c24fd38b
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-22 05:22:26 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-23 02:34:11 +0900

    ZJIT: Add CheckInterrupts HIR instruction

commit e3e87258ddadf763d9b0b11678935250f9bcc6c3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-22 04:50:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-22 23:13:35 +0900

    Fix issue where a new GC could be started during a GC

    [Bug #21548]

    In lazy sweeping, if we need to allocate an object in a heap where we
    weren't able to free any slots, but we also either have empty pages or
    could allocate new pages, then we want to preemptively claim a page
    because it's possible that sweeping another heap will call gc_sweep_finish_heap,
    which may use up all of the empty/allocatable pages. If other heaps are
    not finished sweeping then we do not finish this GC and we will end up
    triggering a new GC cycle during this GC phase.

commit 34cca18da35ffd3d1fe9009dcbe80881a8b2a8d1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-22 04:08:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-22 23:13:35 +0900

    Add more assertions to default.c

commit 6fbe2dd36e30a2ecbfa770d3ebfbb8e601d97bd3
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-22 07:36:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-22 07:52:15 +0900

    [DOC] Tweaks for String#insert

commit 823d55a8279aad5ad0eb2b83d45885443edfec83
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-22 02:55:44 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-22 07:42:14 +0900

    Add lock-free fastpath to callable_method_entry...

commit 2c6363c946005402f42d876a09ba9989dc23d86f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-22 07:34:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-22 07:34:07 +0900

    [DOC] Write up NEWS entries for JITs (#14301)

commit 2ee5a8920304039567ce033aac14b4d6baf56c7c
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-22 06:30:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-22 06:30:42 +0900

    Make `vm_search_method` return a cme instead of a cc (#14299)

    Make vm_search_method return a cme instead of a cc

    Both of its callers ended up calling `vm_cc_cme` on the result and only
    used the cme, so it's probably better to return a cme directly.

    This will also make it easier for ZJIT to later inline the
    `rb_vm_objtostring` call.

commit 8ad290b4eff4dfcbdc2e0a0ac1eb4b649ffb559a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-22 04:56:28 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-22 05:38:25 +0900

    YJIT: Fix BSD make build. Remove ZJIT stuff

    Thanks to nobu for pointing this out. This is a YJIT file so shouldn't
    have ZJIT stuff in it. ZJIT doesn't support building on BSDs yet.

    Fix: 92b218fbc379fe85792eb060b71520e271971335

commit 5076e88f3598d9a0ff50718dcad0c63eef2b6e97
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-22 05:05:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-22 05:05:47 +0900

    ZJIT: Fill nils before function_stub_hit exit (#14294)

    Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
    Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>
    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

commit f2715af92e1aa4b5e565e52d76f014544ec20672
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-22 04:26:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-22 04:26:53 +0900

    ZJIT: Allocate register for VRegs that begin and end at the same index (#14270)

    If the LiveRange looks like (idx, idx), we will currently not allocate a
    register. This change allocates a register and then immediately
    deallocates it.

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

commit 7ac16eff311f9bc762586bda9540d82e8eb7f135
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-20 14:22:51 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-22 03:37:07 +0900

    Adjust snt < max_cpu calculation

    [Bug #20146]

    Previously we dealt with the main Ractor not being enabled for M:N by
    incrementing snt_cnt++. This worked for comparing against ractor count,
    but meant that we always had one less SNT than was specified by
    RUBY_MAX_CPU.

    This was notably a problem for RUBY_MAX_CPU=1, which would cause Ractors
    to hang.

    This commit instead of adjusting snt, adjusts a
    "schedulable_ractor_cnt". This way snt_cnt will actually reach
    RUBY_MAX_CPU.

commit acb29f7fa1497463ed3bdd65549ef20b61beda64
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-30 14:32:09 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-08-22 00:46:57 +0900

    Do not respect ruby2_keywords on method/proc with post arguments

    Previously, ruby2_keywords could be used on a method or proc with
    post arguments, but I don't think the behavior is desired:

    ```ruby
    def a(*c, **kw) [c, kw] end
    def b(*a, b) a(*a, b) end
    ruby2_keywords(:b)

    b({foo: 1}, bar: 1)
    ```

    This changes ruby2_keywords to emit a warning and not set the
    flag on a method/proc with post arguments.

    While here, fix the ruby2_keywords specs for warnings, since they
    weren't testing what they should be testing.  They all warned
    because the method didn't accept a rest argument, not because it
    accepted a keyword or keyword rest argument.

commit b0c80c2be8377ff02811b508ae79f18ec4a31f0e
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-21 22:32:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-22 00:41:39 +0900

    Remove unused SPECIAL_CONST_SHAPE_ID

    Its usage was removed in 306d50811dd060d876d1eb364a0d5e6106f5e4f1.

commit 18aa73065507f769fd5795325265ca40c40c1363
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-21 23:45:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-21 23:45:25 +0900

    ZJIT: Refactor `gen_new_hash` (#14293)

    We can use the `gen_push_opnds` and `gen_pop_opnds` helpers added in #14200 to simplify the code.

commit ad4b4f2bcc383a6b9b8e233d05b947e6a04f2a77
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 05:55:36 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-21 22:54:30 +0900

    Remove dead rb_obj_is_main_ractor

commit 027f4aa464f92cb4884561ef277db20f8eff5732
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-21 22:37:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-21 22:37:19 +0900

    [DOC] Tweaks for String#hash (#14253)

commit b6bf44ae0f0196c58a07e13ac1bd7adafd13f8b2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-21 20:24:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-21 21:17:29 +0900

    variable.c: handle cleared fields_obj in genfields cache

    [Bug #21547]

    Followup: https://github.com/ruby/ruby/pull/14201

    When adding an instance variable and the IMEMO/fields need to be
    larger, we allocate a new one and clear the old one.

    Since the old one may still be in other ec's cache, on a hit we must
    check the IMEMO/fields isn't a stale one.

commit a837ec0962674284de322bfe9b336a410146589d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-21 19:59:00 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-21 20:32:19 +0900

    Drop a workaround for CentOS 6

    `RUBY_CXX_DEPRECATED` is overridden using `RBIMPL_ATTR_DEPRECATED` in
    include/ruby/backward/2/attributes.h already.

commit d318dc6938bb573efd2c6f23eff506cf0c4378d3
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-21 19:20:42 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-08-21 20:05:52 +0900

    Add NEWS for Math.log1p and Math.expm1

commit f2b1017b3df5f93aaf1d4ccd758d341298aa8dcc
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-08-02 20:15:06 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-08-21 20:05:52 +0900

    Add `Math.log1p` and `Math.expm1`

    This commit adds two new methods to the `Math` module:

    * `Math.log1p(x)`: Computes `Math.log(x + 1)`
    * `Math.expm1(x)`: Computes `Math.exp(x) - 1`

    These methods are often more accurate than the straightforward
    computation, especially when `x` is close to zero.
    The corresponding functions, `log1p` and `expm1`, are defined in the C99
    standard math library.

    [Feature #21527]

commit feb83316730548d31b4be8076b8316e8e17d8b00
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-21 05:41:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-21 16:17:31 +0900

    Atomic CC table set in cache_callable_method_entry

commit 426cdb2c01108f3ff367b323f2a446a3da4647b9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-21 05:28:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-21 05:28:08 +0900

    .gdbinit: rb_shape_get_shape no longer exists

commit 19ad72d2eb08363f2a30e2ce50ce5eb9bf4ad275
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-21 05:17:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-21 05:17:43 +0900

    ZJIT: Remove unnecessary option return type on gen_branch_params (#14286)

commit a7a026ae9b6dbf5ff4ff40021b0bb5d15bd49fc7
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-21 04:53:16 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-21 04:53:16 +0900

    YJIT: Improve locals names (#14285)

commit 2c7ec3d155ba9d3e0589f716c1522f2c26371586
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-20 23:53:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-21 04:53:00 +0900

    Fix race condition in method invalidation for Ractors

    We lock the VM to invalidate method entries. However, we do not lock the
    VM to call methods, so it's possible that during a method call the method
    entry gets invalidated. We only check that the method entry in the callcache
    is not invalidated at the beginning of the method call, which makes it
    possible to have race conditions. This causes crashes like:

        vm_callinfo.h:421: Assertion Failed: vm_cc_cme:cc->klass != Qundef || !vm_cc_markable(cc)
        vm_insnhelper.c:2200: Assertion Failed: vm_lookup_cc:!METHOD_ENTRY_INVALIDATED(vm_cc_cme(ccs_cc))

    This commit adds a VM barrier to method cache invalidation to ensure that
    other Ractors are stopped at a safe-point before invalidating the method
    entry.

commit 5c96bbf36a73e29561b2b1a0e42c6f3341a4e542
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-20 11:13:00 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-21 03:00:03 +0900

    Avoid spawning thread for trivial getnameinfo calls

    When calling getnameinfo we spawn a thread because it may do a slow,
    blocking reverse-DNS lookup. Spawning a thread is relatively fast (~20µs
    on my Linux machine) but still an order of magnitude slower than when
    getnameinfo is simply translating to a numeric IP or port, which, at
    least in my tests on Linux, doesn't even make a syscall.

    This commit adds a fast path for when reverse DNS isn't required: either
    host isn't being fetched or NI_NUMERICHOST is set AND either the
    service name isn't required or NI_NUMERICSERV is set. The service name
    should only need to read /etc/services, which should be fast-ish, but
    is still I/O so I kept the existing behaviour (it could be on a network
    fs I guess).

    I tested with:

        s = TCPSocket.open("www.ruby-lang.org", 80)
        500_000.times { Socket.unpack_sockaddr_in(s.getpeername) }

    Before: 12.935s
    After: 0.338s

commit 683dd92de82bd8c93eee6860ebcd3f6336ad0c04
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-20 15:45:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-20 18:09:34 +0900

    `cd` using the physical directory from symlinked build directory

commit ba9e787179734443f30e21a8f8199c20f3a45453
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-20 15:42:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-20 15:42:26 +0900

    Revert the leftover of 90cb2bb871ff5d6d4d0dfbed2ee352c7ff818a87

commit f7687c4a513dbf397a076c7653f28e26fea52828
  Author:     Jamie Magee <jamie.magee@gmail.com>
  AuthorDate: 2025-08-20 11:23:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-20 13:10:02 +0900

    Enable Dependabot updates for vcpkg

    See https://github.blog/changelog/2025-08-12-dependabot-version-updates-now-support-vcpkg/

commit a396d940ebfbac5b6adeb15d4dbfa99295f85822
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-20 10:24:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-20 10:24:20 +0900

    Restore prism/srcs.mk files

commit b3053cbb34de21ae97c07ffda17432d35f9cc1d4
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-20 08:34:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-20 08:34:40 +0900

    [DOC] Tweaks for Object#hash

commit 6b197dec4844eb5967158c16495724cac7eecab2
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-20 04:14:03 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-20 04:54:12 +0900

    ZJIT: Mark Insn::NewRange as having side effects

commit e639aaacbf7e8b48ee1a3bb73615a4792de6ec5d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-20 02:50:47 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-20 04:54:12 +0900

    ZJIT: Prepare for rb_range_new() calling <=>

    gen_prepare_call_with_gc() was not enough because of the rb_funcall()
    usage in range_init().

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
    Co-authored-by: Max Bernstein <rubybugs@bernsteinbear.com>

commit c1f16fc36d5bbe4c3886e3a2439121d2cb18f622
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-20 04:08:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-20 04:08:52 +0900

    Fix special consts unit tests for i686 (#14271)

    32-bit platforms do not have flonum and something about the static symbol test was flaky.

commit da01faaaccba3be326bfa607f6b36699274e329c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-20 03:57:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-20 03:57:19 +0900

    ZJIT: Remove try_num_bits (#14272)

commit 3ff1ca07bab3603ad2c0744983d5d7b8b9ac3a44
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-13 07:22:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-20 01:30:50 +0900

    [ruby/openssl] Add missing write barriers in X509

    Both the X509 store and X509 store context were missing write barriers.
    To the callback object being stored in the ex data.

    These values were also being stored as an IV, however in Ruby HEAD we're
    now storing the IVs for T_DATA (generic IVs) on a separate object. So we
    need an additional write barrier.

    I believe this was always necessary, because we could have done
    incremental marking ahead of compaction, and without the write barrier
    the mark function could have been run before @verify_callback was
    assigned.

    This was detected by wbcheck

    https://github.com/ruby/openssl/commit/1fda3a99ef

commit 6fe4ed507fc517a22d18f1ea77a4b3a3071310e4
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-19 23:26:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 23:26:19 +0900

    ZJIT: Remove more Option from codegen (#14265)

commit fc5ee247d5307a292cd2b083ce82fc24005bb385
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-08-19 23:02:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 23:02:13 +0900

    ZJIT: Compile toregexp (#14200)

    `toregexp` is fairly similar to `concatstrings`, so this commit extracts
    a helper for pushing and popping operands on the native stack.

    There's probably opportunity to move some of this into lir (e.g. Alan
    suggested a push_many that could use STP on ARM to push 2 at a time),
    but I might save that for another day.

commit 6281806fc6dee87ec39a545ce0a157d740446674
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 00:22:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 22:42:52 +0900

    Change TestString#test_ascii_incomat_inspect to use EnvUtil.with_default_external

commit 89321c63262cd75a8191b67157b2f1718c722866
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 00:21:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 22:42:52 +0900

    Change TestM17N#test_object_inspect_external to use EnvUtil.with_default_external

commit f3d95fa03348ef622396d12212b96872b693c265
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 00:16:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 22:42:52 +0900

    Change TestM17N#test_object_utf16_32_inspect to use EnvUtil.with_default_external

commit 87409853631a752170b9b27278d7cb812cd183af
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 00:15:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 22:42:52 +0900

    Change TestM17N#test_string_inspect_encoding to use EnvUtil.with_default_external

commit 6f1bb06cdc579a3f33afadb18cfad96a4f9ac303
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-19 00:09:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 22:42:52 +0900

    Change TestHash#test_inspect to use EnvUtil.with_default_external

commit 9fedae99768def7ae2a82098322761ed7660f38a
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-15 14:34:14 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-19 13:36:30 +0900

    Add missing writebarrier to rb_func_proc_dup

    Because TypedData_Make_Struct both allocates an object and after
    xmallocs memory, all added references must always be writebarrier
    protected.

commit d0d7f5500530402eae71cd6929fdd7389d0d65d3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-01 21:27:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-19 11:55:23 +0900

    Gererate prism source files dependencies from template.rb

    Update included file list automatically.

commit f5efd0e74340704d546c265d9e01bc9f85dbec0c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-19 10:43:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-19 10:48:32 +0900

    [ruby/syntax_suggest] bundle exec standardrb --fix

    https://github.com/ruby/syntax_suggest/commit/54bb8ab330

commit 306d50811dd060d876d1eb364a0d5e6106f5e4f1
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-19 07:58:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 07:58:38 +0900

    Don't allow looking at the shape ID of immediates (#14266)

    It only makes sense for heap objects.

commit 6f472c8b61bf8bbf4c2fd3c0af9ddaf92538c94e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-19 04:59:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 04:59:06 +0900

    ZJIT: Fix BorrowError on --zjit-dump-disasm (#14267)

commit 0b098a93dbb9cb2112e7c0c8519e09cca4478fd0
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-13 02:41:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-19 04:00:15 +0900

    Add missing write barriers to Random

    We recently converted this to be WB_PROTECTED, but missed some locations
    the seed was set.

    This is a little bit confusing because as far as I can tell some of the
    seeds are set in Ractor local storage, and others on actual objects.

commit 7d2b724e08a06146887cb7912064b597ae8f69b6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-07 10:18:21 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-19 03:59:58 +0900

    Add missing writebarrier on complex obj dup

    When we dup a complex object we need to issue a writebarrier_remember
    on the new object. This was caught by wbcheck inside the rubygems test
    suite.

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

commit e6f3334f42fd9dfb1f89ed6afcb95789b50b3405
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-15 10:58:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-19 01:24:13 +0900

    Use mark and move for iseqw

commit 0df9a460451ed614f28660e69410edcb328d85be
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-19 01:21:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 01:21:42 +0900

    Increase timeout on slow tests (#14264)

commit f38ba24bda8d3a80c636fba2ad99a2d5a3254bc6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-19 01:21:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 01:21:26 +0900

    ZJIT: Handle ISEQ moves (#14250)

    * ZJIT: Handle ISEQ moves in IseqCall

    * ZJIT: Handle ISEQ moves in Invariants

    * Let gen_iseq_call take a reference

    * Avoid unneeded iter()

commit 68c7f10b86b9ff10a3193c62c67e92fdde5cf107
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-16 04:06:08 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Temporarily disable buggy defined? codegen

commit 33224236e1a2f813bfb7ca56322a44853310f1d6
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:54:13 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Refine type of Defined

commit c663fe1eed36fec59dc3359576a63d39bb484efe
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:51:18 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Make Defined retain its Snapshot

commit f3dbf7de7bf3865f0f1e03a03a530625e1da31e1
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:43:11 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Make a fix a bunch of other cases using Option

commit d2a53c7c3d88961390c846763bce31320cc67a9d
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:30:06 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Don't return Option from counter increment

commit 3c2cff629fcd431a50ae4f71391071f9a1880cf0
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:29:19 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Don't return Option from side exits

commit 1e42f9edc2f7b2b93ff9acd272f858909ee295ef
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:27:53 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Remove empty returns from control instructions in codegen

commit ad9fda7a2f7eaed3393ea10d7843721243d1a74f
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:24:08 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Don't return Option from codegen helper functions

    They don't need it anymore; jit.get_opnd doesn't return Option anymore.

commit 5b3c87a0b006390cf23c7b53c1688a513a6860b3
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-15 23:23:25 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-19 01:03:31 +0900

    ZJIT: Make jit.get_opnd noisily fail

    We have a verifier that runs in debug mode that should prevent this.
    Simplify a bunch of call sites.

commit d330bcfd49545e586486f773b74be43ee2197192
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-19 01:01:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-19 01:01:09 +0900

    ZJIT: Make sure output operands are not VRegs (#14188)

    Make LIR SSA.

commit cb31be5d6a6032da777a8c311469e40c7e26caab
  Author:     Donghee Na <donghee.na92@gmail.com>
  AuthorDate: 2025-08-18 23:59:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-18 23:59:18 +0900

    ZJIT: Codegen for NewHash (#14059)

    This is my first contribution to ZJIT.

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
    Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>

commit 094fa3ed0922901b5771fc0e1651ecb161b5cdb6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-16 00:21:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-18 22:35:05 +0900

    Output array shared root flag in rb_raw_obj_info_buitin_type

commit ef3fdb04d2be6e0337bea2ca84c7158d32b89719
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-16 00:19:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-18 22:35:05 +0900

    Move flags for arrays out of if statements in rb_raw_obj_info_buitin_type

commit 70378db2fff0b1bc39a7d2b011da90486579fb0e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-16 00:09:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-18 22:35:05 +0900

    Remove impossible case in rb_raw_obj_info_buitin_type for array

    Since we handle embedded arrays in the if statement above, we don't need
    to handle it here.

commit 7ddc53bc0c57b1c079e40a74d233f537111b3e92
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-18 11:39:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    Exclude prism/generate-srcs.mk.rb from sync targets of prism

commit e3ce56c9dc40d0eeb6d9de453e94621503afd9e6
  Author:     Douglas Eichelberger <doug.eichelberger@gusto.com>
  AuthorDate: 2025-08-14 05:52:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    Fix typos

commit f0ee7630ed8993ef80cd11b12330c78616819ff0
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 03:01:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    Merge specs checking CLI flags and subcommands are documented

    We had them duplicated, but with slightly different features:

    * The ones in `other/cli_man_pages.rb` enforced a specific structure to
      document CLI options, so were less likely to have false positives.

    * The ones in `quality_spec.rb` were able to check subcommands and their
      flags.

    This commit merges both and preserves the best of both.

commit 7125f7635d43f67b1664bf85e72a34d868259822
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 05:02:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Use spaces around optional parameter values

    https://github.com/rubygems/rubygems/commit/b58829a868

commit 8576da4eb4d7dc7a1afb26126192971e787d7c5b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-30 18:48:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Enforce checksums strictly for registry gems

    https://github.com/rubygems/rubygems/commit/05199ae0c1

commit 50c1faedebf6b8d779e05811398f25bbdf769f0a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-30 18:26:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix incorrect error message capitalization

    https://github.com/rubygems/rubygems/commit/d41b8d303c

commit d04f1874692b7d731533a9f65d037b2880c30f5f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-30 18:25:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Refactor git specs

    To save some unnecessary `bundle install` commands.

    https://github.com/rubygems/rubygems/commit/61e7d9d09a

commit 4a3a544d53a4058339787b7e11138d29d3c900a7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 03:00:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Improve `bundle plugin` documentation

    Make synopsis, subcommands, and CLI flags use a format consistent with
    the other docs, and also reword some sentences for clarify.

    https://github.com/rubygems/rubygems/commit/9272169ad0

commit f3d62db05a36e4182a6ac9a0d6b1a88477275d08
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 02:57:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Improve `doctor` CLI flag documentation

    Name default value placeholders in a more standard way. That's what our
    specs check, but they don't yet work for subcommand flags.

    https://github.com/rubygems/rubygems/commit/c589899cb8

commit 12c200a78fa525375b3695c7cad97e3013a7de66
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 02:56:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Improve `bundle config` documentation

    For synopsis, subcommand and flag documentation like other commands do.

    https://github.com/rubygems/rubygems/commit/f528029756

commit 302c5ae28f5627f856a99c2fef9b0bb8f695bbef
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-12 02:40:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Consistently use banner of desc when defining CLI flags

    https://github.com/rubygems/rubygems/commit/2cbe7ea0a5

commit 9983d2bceed3d50196bc755733c15561821b1409
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 21:00:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Delay pending spec

    We had actually cancelled this change. After a second look though, it
    does seem like a reasonable plan since `bundle list` makes more sense
    for listing gems, and `bundle info` makes more sense for showing info
    about a particular gem. `bundle show` is a strange mix of both.

    Let's schedule this for Bundler 5.

    https://github.com/rubygems/rubygems/commit/7071a1e82e

commit 679e8b1be42b8af2b675815d956eb86479cd1d55
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 21:00:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix `bundle show --verbose` and recommend it as an alternative to `bundle show --outdated`

    https://github.com/rubygems/rubygems/commit/7cad1e4947

commit bcc287fc6f33e5680ece7dd737e46fd7894d6ed7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-01 22:19:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix `bundle update foo` not upgrading foo to latest in a specific case

    If upgrading `foo` needs an indirect dependency to be downgraded,
    Bundler would not be able to upgrade foo.

    This is because when calculating the latest resolvable version of foo,
    Bundler was still adding lower bound requirements on the locked versions
    of all dependencies to avoid downgrades, effectively pinning foo to a
    version older than the latest.

    To fix this, instead of creating a second "unlocked" definition to
    figure out the latest resolvable version, create a second unlocked
    resolver, and DO NOT add lower bound requirements to it.

    https://github.com/rubygems/rubygems/commit/00cc0ecc69

commit 813603994a388ad8f22ab831d2b554671dfd23b6
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2025-05-30 01:11:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Introduce `bundle list --format=json`

    The `bundle list` command is a convenient way for human to know what gems and versions are available. By introducing a `--format=json` option, we can provide the same information to machines in a stable format that is robust to UI additions or modifications. It indirectly supports  `Gemfile.lock` modifications by discouraging external tools from attempting to parse that format.

    This addition allows for the scripting of installation tools, such as buildpacks, that wish to branch logic based on gem versions. For example:

    ```ruby
    require "json"

    command = "bundle list --format=json"
    output = `#{command}`
    raise "Command `#{command}` errored: #{output}" unless $?.success?

    railties = JSON.parse(output).find {|gem| gem["name"] == railties }
    if railties && Gem::Version.new(railties["version"]) >= Gem::Version.new("7")
      puts "Using Rails greater than 7!"
    end
    ```

    The top level is an object with a single key, "gems", this structure allows us to add other information in the future (should we desire) without having to change the json schema.

    https://github.com/rubygems/rubygems/commit/9e081b0689

commit 8d5f00c5371ff71f33ef57b1419fd8d4b1aa9074
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 19:42:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix Bundler printing more flags than actually passed in verbose mode

    This reverts commit https://github.com/rubygems/rubygems/commit/bea87eab0b17 and adds a
    regression spec for it.

    https://github.com/rubygems/rubygems/commit/ac98107864

commit f074f8260aae2cb541d13f87a990404038c1b6e5
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 18:07:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix `bundle cache --no-all` not printing a deprecation warning

    Like others, it's a remembered option which we are deprecating in favor
    of configuration.

    https://github.com/rubygems/rubygems/commit/9ea55e0df2

commit 2e983280e27c6e076546c0444a9489c832e9b32b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 18:00:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Use a rubygems filter for the timeout spec

    For consistency.

    https://github.com/rubygems/rubygems/commit/3e3364e19f

commit a6aa8e67f16cafb74cd86d0ba2467755e56bab20
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 17:58:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Fix spec no longer run since rubygems timeout was renamed

    https://github.com/rubygems/rubygems/commit/4d0c058e6a

commit 3c669e2d411d06e0458804f1e1d8bd5e9352172c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-08-08 17:56:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Remove unnecessary rubygems filters

    Since the lowest supported version is now 3.4.1.

    https://github.com/rubygems/rubygems/commit/d00e03c52e

commit d4bf58b56e7c31b9e838d9ff86e2b13027cb54ea
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-07-28 08:08:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Don't worry about missing Makefile.

    https://github.com/rubygems/rubygems/commit/0e92346d88

commit 6e10267714817424049049dadd14e931aa25bf01
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-06 10:14:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-18 12:31:51 +0900

    [rubygems/rubygems] Removed to workaround for Bundler 2.2.

    The current oldest support Ruby version is 3.2. And Ruby 3.2 bundled
    Bundler 2.5. It means RG 4.0 can drop to support Bundler 2.2.

    https://github.com/rubygems/rubygems/commit/592ac09b5c

commit 75a968d88af62dda468b5fb0481279c638483eab
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-01 21:42:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-18 11:03:58 +0900

    Add the recipe to fix/update depend files

commit 3c1244ab836226c324519d3d77bf712ec9168de0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-01 22:42:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-18 11:03:07 +0900

    Define targets for packages also in common.mk

commit ddbfe353c2100400f60d6bd012cc175ca4b518ab
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-01 21:32:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-18 10:25:14 +0900

    Use autogen.sh if exists

commit 449cc2501ec453c5d1511e7e5353d55793cad5ab
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-01 21:30:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-18 10:08:21 +0900

    Use `File` instead of `IO`, for read/write singleton methods

commit 90cb2bb871ff5d6d4d0dfbed2ee352c7ff818a87
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-30 16:59:01 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-18 01:01:31 +0900

    Gererate prism source files dependencies from template.rb

commit 504b963762c1633c4da1141b8785c119551e63d2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-24 00:41:36 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-18 01:01:31 +0900

    Fix dependencies of generated prism sources for NMake

    The VPATH rule of NMake is different from others.  Abandon using
    them in the rules for the generated source, locate them in the top
    source directory, as well as the generated library files of prism.

commit 7c28fb2fb2544e5fed75ef216c4dd08084b38671
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-17 17:13:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-17 17:13:15 +0900

    [Bug #21546] Make the generated pc file relocatable

commit ad047459c195d63190b2d6edee826573a74ed91e
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-17 06:08:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-17 06:08:11 +0900

    [DOC] Tweaks for GC.stat_heap

commit e0b2e2faf730ddfa83b7405f11f2ffad9a6972b4
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-17 02:38:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-17 06:07:29 +0900

    [DOC] Tweaks for String#index

commit 9b40837bb086c69b98d33457a967434fd36586fe
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-17 01:43:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-17 06:05:07 +0900

    [DOC] Tweaks for String#include?

commit d96991cc37b9c73372a8d0a61c5d83a2ce5b0cbe
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-17 01:18:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-17 06:04:35 +0900

    [DOC] Tweaks for String#hex

commit 4d0836d928839ff13580f5e5b74a40b3914d9f59
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-16 21:38:03 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-16 21:38:03 +0900

    CI: windows: Skip rebuilding vcpkg packages when cache restored

commit a79600db93820fdeec60400592e8f5a5bd1c9d85
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-16 21:30:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-16 21:30:19 +0900

    CI: windows: Use possibly faster device for TMP/TEMP

commit 87c4ebd00115b9424f04813b4dd5f3d087a14eb9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-16 10:15:45 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-16 11:42:07 +0900

    Fix tests using assert_raise_with_message on US-ASCII systems

    On systems where the Encoding.default_internal defaults to US-ASCII instead
    of UTF-8, some tests using assert_raise_with_message can fail since it no
    longer changes Encoding.default_internal in 79f5202.

    This tests explicitly uses EnvUtil.with_default_internal on systems where
    these tests fail.

commit db3d82bcd2f2c7ed41e3c2cb138d2b432b1a224e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-23 08:12:03 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-16 09:11:23 +0900

    ZJIT: Guide WB skipping for Insn::SetLocal using HIR type info

commit 7f398a38e37c109babde89475a75b51308044f4d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-23 08:11:18 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-16 09:11:23 +0900

    ZJIT: Make `opnd!()` work on both `&InsnId` and `InsnId`

commit 26776ee91ab6045cc43c11b8022651572ad01e4c
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-16 09:07:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 09:07:18 +0900

    ZJIT: Remove unused HIR test code (#14248)

commit 49e4d21d5682bf7a8a9f20815946f636c28c07a9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 05:23:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 05:23:15 +0900

    ZJIT: Share function stub code using a trampoline (#14225)

commit 149add89e38197c4ffc8cb4e8b96839909b29dd6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-16 02:11:45 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-16 04:43:33 +0900

    Don't free Ractors in GC shutdown

    rb_gc_shutdown_call_finalizer_p returns false for threads and fibers, so
    it should probably do the same for all Ractors (not just the main one).

    This hopefully mitigates a bug where, at exit, rb_ractor_terminate_all
    gets all Ractors to stop before continuing with the shutdown process.
    However when vm->ractor.cnt reaches 1, the native threads may still be
    running code at the end co_start, which reads/locks on
    th->ractor->threads.sched, so the Ractor is not safe to free.

    A better solution might be to ensure that all native threads end up
    stopped or otherwise parked before this part of the shutdown, however
    that would be a bit more involved.

commit 88906e13e6ed9e5fdd94886ef8ab15d21d26743d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 04:29:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 04:29:31 +0900

    Skip an unstable Ractor test for windows (#14247)

    https://github.com/ruby/ruby/actions/runs/16995599804/job/48185434078?pr=14242

commit 2a1210f7cce284e07217e620313085e12e4d575d
  Author:     Eileen <eileencodes@users.noreply.github.com>
  AuthorDate: 2025-08-16 03:31:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 03:31:25 +0900

    ZJIT: Implement getspecial (#13642)

    ZJIT: Implement getspecial in ZJIT

    Adds support for the getspecial instruction in zjit.

    We split getspecial into two instructions, one for special symbols
    (`$&`, $'`, etc) and one for special backrefs (`$1`, `$2`, etc).

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

commit 1d7ed95604d7f9b9847c0054d1c48704a0d1bded
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 03:26:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 03:26:22 +0900

    ZJIT: Make --zjit-dump-hir work with HIR opt disabled (#14242)

commit 2f2e2bd7cd82e209dbb54a36dc4465045dd0b434
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 03:13:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 03:13:11 +0900

    Relax a delta for an unstable test (#14246)

    https://github.com/ruby/ruby/actions/runs/16995978143/job/48186652826?pr=14244

commit 97cffb95e35c8e5b6fe6d76a80dc1d4d775d8094
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 02:59:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 02:59:51 +0900

    Skip an unstable test for macOS (#14245)

commit 12ef01b52f69dfdad2941e1b79c826b74ae0ed24
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 01:56:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-16 02:53:58 +0900

    Skip an unstable test for macOS

    https://github.com/ruby/ruby/actions/runs/16983250181/job/48147338735
    https://github.com/ruby/ruby/actions/runs/16994020689/job/48180211762

commit 9deaf68c1a6bd45b2104b028d868d80c9a69105e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-16 01:54:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-16 02:53:58 +0900

    Increase timeout for a flaky test

    https://github.com/ruby/ruby/actions/runs/16983250181/job/48147338699

commit 0d0c051b19548eeb65417a20e52fb460e330f0ce
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-16 02:41:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 02:41:39 +0900

    Don't check for stack overflow when ec is NULL (#14236)

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

commit 7c67060dad5ae1582e91a88841cc0cf5c6edeea3
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-08-16 00:15:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-16 02:25:17 +0900

    Fix enc_list across ractors

    Calling rb_ary_replace(copy, orig) can modify orig, which is not safe
    across ractors because orig is shared (it's the global encoding list).

    Hoping to address CI failures such as https://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-noble-docker/5890058

commit 8f7e7bfca23ff5e402ed9c22a8f684fe59de72e4
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-16 01:05:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-16 01:05:36 +0900

    ZJIT: Set PC before function_stub_hit_body (#14234)

commit 79f52020e2fcc167415e06f16e5d9868571908b3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-14 04:08:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-15 22:30:09 +0900

    Don't change Encoding.default_internal in assert_raise_with_message

    For most tests (except two), we don't need to change Encoding.default_internal
    in assert_raise_with_message. We're trying to run the test suite across
    multiple Ractors and modifying Encoding.default_internal can cause other
    concurrently running tests to fail.

commit 42c08e458d0df2588dba96190fd1122d4b1170ff
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-08-15 13:54:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 13:54:54 +0900

    Fix RBS tests (#14220)

    * Use unreleased version of rbs
    * Skip all failing tests on windows

commit efe6813b1f5433cd19e0b5943f0902eebba31707
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-14 01:44:20 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-15 13:37:15 +0900

    Drop Travis CI.

    Travis CI has not been running since 2 months ago.
    https://app.travis-ci.com/github/ruby/ruby/builds

    As we are migrating the ppc64le/s390x CI cases from Travis to GitHub Actions,
    I will drop the `.travis.yml`, while the GitHub Actions ppc64le case is not
    available yet.

commit d025bc230cd1f31d0b03c9f6490d8db066fc01b1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-13 23:00:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-15 10:51:43 +0900

    Remove duplicated line of code in thread_sync.c

commit b0cd89a5b54071dc63af10839f161ba88fc44d86
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-15 05:37:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-15 10:51:21 +0900

    [DOC] Tweaks for GC.stress and GC.stress=

commit 12e42f72aed4d53b323423a549476d1604d1a57d
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-15 10:47:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 10:47:39 +0900

    [DOC] Tweaks for GC.stat

commit 5e8f9ea4953af1737a477613aa31e72ca81031c6
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 08:41:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 08:41:01 +0900

    Increase timeout for a flaky test (#14233)

    https://github.com/ruby/ruby/actions/runs/16977882022/job/48131284556

commit 70b4b6fea0eeb66647539bcb3b9a50d027d92e51
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 07:12:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 07:12:46 +0900

    Do not skip CI when it mentions "document" (#14232)

commit e305a6721e8adcde32fbdba2782094477eb3a53b
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 07:09:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 07:09:35 +0900

    Skip an unstable Ractor test for macOS (#14231)

    https://github.com/ruby/ruby/actions/runs/16977094733/job/48128667252?pr=14229

commit 9cf27e0a42648cc022bca87c135ecff99d3edd09
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 06:54:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 06:54:12 +0900

    Increase timeout for a flaky test (#14228)

    https://github.com/ruby/ruby/actions/runs/16974964229/job/48121382131

commit 9bbd24977d95a405cd395ad2603d8d4f871f1b4f
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 06:52:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 06:52:59 +0900

    Fix a static assertion incompatible with C++98 (#14229)

commit 38558dd95e6443a8412304718ad77a331c185f5d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-14 01:39:06 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-15 06:01:11 +0900

    YJIT: Fix `defined?(yield)` and `block_given?` at top level

    Previously, YJIT returned truthy for the block given query at the top
    level. That's incorrect because the top level script never receives a
    block, and `yield` is a syntax error there.

    Inside methods, the number of hops to get from `iseq` to
    `iseq->body->local_iseq` is the same as the number of
    `VM_ENV_PREV_EP(ep)` hops to get to an environment with
    `VM_ENV_FLAG_LOCAL`. YJIT and the interpreter both rely on this as can
    be seen in get_lvar_level(). However, this identity does not hold for
    the top level frame because of vm_set_eval_stack(), which sets up
    `TOPLEVEL_BINDING`.

    Since only methods can take a block that `yield` goes to, have ISEQs
    that are the child of a non-method ISEQ return falsy for the block given
    query. This fixes the issue for the top level script and is an
    optimization for non-method contexts such as inside `ISEQ_TYPE_CLASS`.

commit b080fcd3cd14aa79e8f116962e5fa6826e9b5026
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-13 08:01:59 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-15 04:38:52 +0900

    ZJIT: Fix assert failure on JIT combo build

    Previously, when `./configure --enable-yjit=dev --enable-zjit` JIT_DESCRIPTION was
    defined to be "ZJIT", but when running with `--yjit`, ruby_set_yjit_description()
    calls `define_ruby_description("+YJIT dev")`, which is longer than the
    following assertion expects:

        RUBY_ASSERT(n <= ruby_description_opt_point + (int)rb_strlen_lit(JIT_DESCRIPTION));

    Use the concatenation of the two strings -- the contents of the string
    is never used. Minimize the scope of the macro, too.

commit fdb831fdfcbf1b6653a20f6e8ea7d8caa58ec4b8
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-13 07:10:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-15 04:38:52 +0900

    ZJIT: Look for RUBY_ZJIT_ENABLE in combo build with YJIT

commit 88d71eb04da9de34495c4cffcd2e234dd9ec96f9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-15 01:56:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-15 03:23:12 +0900

    Skip an unstable test for s390x and windows

    https://github.com/ruby/ruby/actions/runs/16971197634/job/48108366805?pr=14223
    https://github.com/ruby/ruby/actions/runs/16971558478/job/48109641049?pr=14223

commit 68682a5d2b277569d7402b737b16d76a2870e414
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-15 01:37:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-15 03:23:12 +0900

    Increase timeout for failing tests

    https://github.com/ruby/ruby/actions/runs/16969921157/job/48103809963
    https://github.com/ruby/ruby/actions/runs/16969655024/job/48102876839

commit 5aa5112443274feb21f8c52789e216e213f4cf69
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-15 00:26:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-15 02:53:04 +0900

    Fix documentation about struct RData's data field

    Also adds a static assertion to ensure the documented behavior stays
    true, namely that the data field is at the same position in the RData
    and RTypedData structs.

commit a04555c8ab109355d00275d28d867fce06805c55
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-08-15 00:05:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-15 00:42:33 +0900

    [ruby/prism] Be more defensive in the parser translator lexer

    Generally I have been good about safely accessing the tokens but failed
    to properly guard against no tokens in places
    where it could theoretically happen through invalid syntax.

    I added a test case for one occurance, other changes are theoretical only.

    https://github.com/ruby/prism/commit/4a3866af19

commit a677220aba0c99f93f234a009bceeae063a96889
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-15 00:31:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-15 00:31:23 +0900

    ZJIT: Stop duplicating context-less side exits (#14215)

commit c30d900547a65c7996a3f868aa17d2a842734071
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-14 13:54:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-14 13:54:46 +0900

    Revert "[DOC] Try the latest RDoc"

    This reverts commit 8f6f9e88c70bbae08b2830d2bec63c89d6367b27.
    Confirmed to work as expected, wait until the rdoc is released.

commit 21be7417d503b8d7485ed874328ab1704c388751
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-14 13:06:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-14 13:06:38 +0900

    [DOC] Fix quoting

commit 83a286048475fbf2648de62cb537324347a365ad
  Author:     Ryan Davis <ryand-github@zenspider.com>
  AuthorDate: 2025-08-14 06:23:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-14 12:52:31 +0900

    [ruby/resolv] Require rbconfig in resolv.rb

    Uses ::RbConfig::CONFIG['host_os']

    Found with ruby --disable-gems -e '...'

    https://github.com/ruby/resolv/commit/5a5a81ce98

commit 9b576cd6255aba97e5e2f55f4b09f00c7dd0e839
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-14 09:10:12 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-14 12:39:19 +0900

    Extract `ruby_api_version_name`

commit c8233db22107adc77021d3f88e2b9d608b243b08
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-14 09:59:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-14 09:59:50 +0900

    Ignore net-imap failures on Windows (#14216)

commit cb281653ada62b3e01cbf7df5f92b684376582cf
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-14 09:32:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-14 09:32:29 +0900

    ZJIT: Enable or remove comments from YJIT (#14214)

commit c9346a166c29c3d90aeb052fa8ef3e07d000fdea
  Author:     Jeremy Drake <github@jdrake.com>
  AuthorDate: 2025-01-28 06:11:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-14 07:13:53 +0900

    [ruby/resolv] win32/resolv: add headers to GetNetworkParams check.

    On 32-bit Cygwin at least, it was failing to find that function,
    presumably due to it being stdcall.

    Signed-off-by: Jeremy Drake <github@jdrake.com>

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

commit 549a326f86f345c4cea2de60fe179a5de18d53e2
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-14 05:04:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-14 05:04:01 +0900

    ZJIT: Implement `StringIntern` codegen (#14207)

    * ZJIT: Add test and implement display for StringIntern HIR

    Co-authored-by: Emily Samp <emily.samp@shopify.com>

    * ZJIT: Implement StringIntern codegen

    Co-authored-by: Emily Samp <emily.samp@shopify.com>

    * ZJIT: Fix StringIntern's return type

    ---------

    Co-authored-by: Emily Samp <emily.samp@shopify.com>

commit 2b16f27a35817fde86a984b0810e4c08344272f7
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-14 05:03:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-14 05:03:26 +0900

    ZJIT: Fix `ObjToString` rewrite (#14196)

    ZJIT: Fix ObjToString rewrite

    Currently, the rewrite for `ObjToString` always replaces it with a
    `SendWithoutBlock(to_s)` instruction when the receiver is not a
    string literal. This is incorrect because it calls `to_s` on the
    receiver even if it's already a string.

    This change fixes it by:
    - Avoiding the `SendWithoutBlock(to_s)` rewrite
    - Implement codegen for `ObjToString`

commit ff622978d0bbc87c6951c7ba3caf1d4a2abed513
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-14 03:08:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-14 03:42:17 +0900

    [DOC] Tweaks for GC total time methods

commit 943d9f828df365e0b650ee2d67faab702229877c
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-14 01:18:59 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-08-14 03:01:34 +0900

    ZJIT: Don't eliminate NewHash with operands

    Hashing and checking operands for equality is re-entrant. We could later
    optimize this to check for hash/eq methods on operands and eliminate if
    they don't have side effects, but this is fine for now.

commit 2083fa89fc29005035c1a098185c4b707686a437
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 00:39:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-14 02:54:56 +0900

    Implement `gen_fields_tbl` cache

    There is a high likelyhood that `rb_obj_fields` is called
    consecutively for the same object.

    If we keep a cache of the last IMEMO/fields we interacted with,
    we can save having to lookup the `gen_fields_tbl`, synchronize
    the VM lock, etc.

    On yjit-bench's, I instrumented the hit rate of this cache at:

      - `shipit`: 38%, with 111k hits.
      - `lobsters`: 59%, with 367k hits.
      - `rubocop`: 100% with only 300 hits.

    I also ran a micro-benchmark which shows that ivar access is:

      - 1.25x faster when the cache is hit in single ractor mode.
      - 2x faster when the cache is hit in multi ractor mode.
      - 1.06x slower when the cache miss in single ractor mode.
      - 1.01x slower when the cache miss in multi ractor mode.

    ```yml
    prelude: |
      class GenIvar < Array
        def initialize(...)
          super
          @iv = 1
        end

        attr_reader :iv
      end

      a = GenIvar.new
      b = GenIvar.new
    benchmark:
      hit: a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv; a.iv;
      miss: a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv; a.iv; b.iv;
    ```

    Single ractor:
    ```
    compare-ruby: ruby 3.5.0dev (2025-08-12T02:14:57Z master 428937a536) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-12T09:25:35Z gen-fields-cache 9456c35893) +YJIT +PRISM [arm64-darwin24]
    warming up..

    |      |compare-ruby|built-ruby|
    |:-----|-----------:|---------:|
    |hit   |      4.090M|    5.121M|
    |      |           -|     1.25x|
    |miss  |      3.756M|    3.534M|
    |      |       1.06x|         -|
    ```

    Multi-ractor:
    ```
    compare-ruby: ruby 3.5.0dev (2025-08-12T02:14:57Z master 428937a536) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-12T09:25:35Z gen-fields-cache 9456c35893) +YJIT +PRISM [arm64-darwin24]
    warming up..

    |      |compare-ruby|built-ruby|
    |:-----|-----------:|---------:|
    |hit   |      2.205M|    4.460M|
    |      |           -|     2.02x|
    |miss  |      2.117M|    2.094M|
    |      |       1.01x|         -|
    ```

commit 10aa4134d408cab7b5754f3dcac2e75a52962b7c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-08 18:41:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-14 02:53:18 +0900

    imemo_fields: store owner object in RBasic.klass

    It is much more convenient than storing the klass, especially
    when dealing with `object_id` as it allows to update the id2ref
    table without having to dereference the owner, which may be
    garbage at that point.

commit ad12db4b3d3853125b50244190c7ac404fb3a4a5
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-13 01:13:05 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-08-14 02:52:41 +0900

    ZJIT: Only validate HIR in debug mode

commit 31ff07ed1eb05d01f7da3c017d542137a3db1e94
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-08 03:23:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-14 00:24:50 +0900

    Add link to Ruby options doc in help text

    Adds link to https://docs.ruby-lang.org/en/master/ruby/options_md.html in
    Ruby help text (-h and --help).

commit 7595ac9a9e8dc460ced50a49e3facaa55a259c35
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-13 23:53:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-13 23:53:22 +0900

    [DOC] Tweaks for GC.count

commit 40d07f268e63aa2cdbaf3b31b227cecc5ba7e9e0
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-07-17 14:35:01 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-13 11:45:18 +0900

    [DOC] Move Therad#join under Thread in NEWS-3.0.0.md

commit df7d9812cc504f3361792f3dd4843d1ffa3c5ead
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-13 09:39:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-13 09:39:46 +0900

    ZJIT: Prepare non-leaf calls for SetGlobal (#14197)

    When trace_var is used, setting a global variable can cause exceptions
    to be raised. We need to prepare for that.

commit 1afc07e815051e2f73493f055f2130cb642ba12a
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-08-07 03:30:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 07:19:02 +0900

    Allow encodings to be autoloaded through transcoding functions

    Make sure VM lock is not held when calling `load_transcoder_entry`, as
    that causes deadlock inside ractors. `String#encode` now works inside
    ractors, among others.

    Atomic load the rb_encoding_list

    Without this, wbcheck would sometimes hit a missing write barrier.

    Co-authored-by: John Hawthorn <john.hawthorn@shopify.com>

    Hold VM lock when iterating over global_enc_table.names

    This st_table can be inserted into at runtime when autoloading
    encodings.

    minor optimization when calling Encoding.list

commit 31e8a9fced895845a7aac123080d325768177b19
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-13 03:40:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-13 06:06:15 +0900

    [DOC] Tweaks for GC.latest_gc_info

commit 8b530e12826a4add7145c5da589929e5d752d94c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-13 02:37:00 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-13 06:04:25 +0900

    [DOC] Tweaks for GC.enable

commit b934f989b9e22c8c46ee6a4accdbb78072d38442
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-13 02:32:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-13 06:04:06 +0900

    [DOC] Tweaks for GC.disable

commit 231407c251d82573f578caf569a934c0ebb344e5
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-13 05:40:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-13 05:40:42 +0900

    ZJIT: Avoid compiling failed ISEQs repeatedly (#14195)

commit 360be94d0492f766b08cc39e33f5e248f49a89b7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 02:47:08 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-13 04:57:16 +0900

    RTypedData: keep direct reference to IMEMO/fields

    Similar to f3206cc79bec2fd852e81ec56de59f0a67ab32b7 but for TypedData.

    It's quite common for TypedData objects to have a mix of reference in
    their struct and some ivars.
    Since we do happen to have 8B free in the RtypedData struct, we could
    use it to keep a direct reference to the IMEMO/fields saving having
    to synchronize the VM and lookup the `gen_fields_tbl` on every ivar
    access.

    For old school Data classes however, we don't have free space, but
    this API is soft-deprecated and no longer very common.

commit 85c52079aa35a1d2e063a5b40eebe91701c8cb9e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 20:30:53 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-13 04:56:57 +0900

    set.c: Store `set_table->bins` at the end of `set_table->entries`

    This saves one pointer in `struct set_table`, which would allow
    `Set` objects to still fit in 80B TypedData slots even if RTypedData
    goes from 32B to 40B large.

    The existing set benchmark seem to show this doesn't have a very
    significant impact. Smaller sets are a bit faster, larger sets
    a bit slower.

    It seem consistent over multiple runs, but it's unclear how much
    of that is just error margin.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-12T02:14:57Z master 428937a536) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-12T07:22:26Z set-entries-bounds da30024fdc) +YJIT +PRISM [arm64-darwin24]
    warming up........

    |                         |compare-ruby|built-ruby|
    |:------------------------|-----------:|---------:|
    |new_0                    |     15.459M|   15.823M|
    |                         |           -|     1.02x|
    |new_10                   |      3.484M|    3.574M|
    |                         |           -|     1.03x|
    |new_100                  |    546.992k|  564.679k|
    |                         |           -|     1.03x|
    |new_1000                 |     49.391k|   48.169k|
    |                         |       1.03x|         -|
    |aref_0                   |     18.643M|   19.350M|
    |                         |           -|     1.04x|
    |aref_10                  |      5.941M|    6.006M|
    |                         |           -|     1.01x|
    |aref_100                 |    822.197k|  814.219k|
    |                         |       1.01x|         -|
    |aref_1000                |     83.230k|   79.411k|
    |                         |       1.05x|         -|
    ```

commit 507b1e4bde074bdda3083df6b4c2190a385f84bf
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-13 02:36:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-13 03:08:37 +0900

    [ruby/openssl] pkey: skip tests using invalid keys in the FIPS mode

    In OpenSSL's master branch, importing/loading a key in the FIPS mode
    automatically performs a pair-wise consistency check. This breaks tests
    for OpenSSL::PKey::EC#check_key and DH#params_ok? as they use
    deliberately invalid keys. These methods would not be useful in the
    FIPS mode anyway.

    Fixes https://github.com/ruby/openssl/issues/926

    https://github.com/ruby/openssl/commit/25ad8f4bdb

commit 4cf05ea77a82368f77fc50c193934b3b1a027b03
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-29 16:14:54 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 02:38:00 +0900

    Replace stdatomic ops with explicit mem order

    My previous pass missed these atomic operations using operators.

commit cb360b0b4b2e53f2335f77f477df54337fc4d87e
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-29 15:24:11 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 02:38:00 +0900

    Implement rbimpl_atomic_value_load

    This only adds the rbimpl_ version to include/ruby/atomic.h so that it
    is not a new public interface.

    We were already using RUBY_ATOMIC_VALUE_LOAD in a few locations. This
    will allow us to use other memory orders internally when desired.

commit 77d29ef73cba81e7c18ab9bb95e0756b9f173f38
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-29 15:22:34 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 02:38:00 +0900

    Convert ATOMIC_LOAD_RELAXED to use new rbimpl_*

commit 1d9f76096e8072bf4fa4e2eb22d02079e1cbe429
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-29 08:13:37 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 02:38:00 +0900

    Update rbimpl_atomic_* to all take a memory order

commit 2f95eb4e803f3107c157d8eccf6ba62f0487e9ad
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-19 15:03:46 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-13 02:38:00 +0900

    Rename rbimpl_atomic.*_set to _store

    "store" is the terminology the C11 standard uses, which allows us to use
    this as a fallback.

    This only changes the private rbimpl_ version of the method,
    RUBY_ATOMIC_SET et al. keep the same name.

commit a9230e76ee19716c7d2e035be7bd1be9bdca2b59
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-12 23:16:55 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-13 02:32:41 +0900

    Make Enumerator::Product write-barrier protected

commit 3e1e2bda49724c619cbb82935b2a11254e810b6c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-12 23:14:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-13 02:32:41 +0900

    Make Enumerator::Chain write-barrier protected

commit 998be6b3a4b078cfd09aa5b4a4a628c31c395451
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-13 02:00:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-13 02:00:22 +0900

    ZJIT: Add flag to disable the HIR optimizer (#14181)

    Also add a check in the bisect script that can assign blame to the HIR
    optimizer.

commit e26ab5dbf24c1a37a18721e29671e7efd4bea803
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-13 01:54:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-13 01:54:50 +0900

    ZJIT: Avoid splitting add_into/sub_into for x86_64 (#14177)

    * ZJIT: Avoid splitting add_into/sub_into

    * Require add_into/sub_into to take a Reg

commit c5c894c6e41dff1e3b053518922b60866c1ab214
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:39:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:43:46 +0900

    [DOC] Markup example code as ruby

commit cefd4a233f4c6504ff7b02ea9b3c11a4385b754b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:37:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:43:45 +0900

    [DOC] Use backticks instead of `<tt>` except for nested markups

commit 74b45dc3eebe14582dd0a5aaf3641de07b89adc2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:23:54 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:43:45 +0900

    [DOC] Use backticks instead of `+` in markdown mode

commit e07510d1a3b07438bcb0aef2b6a913d58f06ff9f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:04:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:43:45 +0900

    [DOC] Markup constants as code

commit 58dbfe5285f3b85c6181875220191289087d5603
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:02:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:43:44 +0900

    [DOC] Fix a typo

commit 8f6f9e88c70bbae08b2830d2bec63c89d6367b27
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 20:41:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:35:40 +0900

    [DOC] Try the latest RDoc

commit 37e991b02c8664875007779352aa45e9924f3528
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 23:33:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 23:33:48 +0900

    [DOC] Use the specified revision RDoc

commit 814eaf336adca17dbad79717519ac06ee22edb4f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-12 00:03:25 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-12 23:12:19 +0900

    Use rb_gc_mark_and_move for autoload_data

commit 0019e7c7020e616fae7fb06745d995e3f682683a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-12 00:01:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-12 23:12:19 +0900

    Use rb_gc_mark_and_move for autoload_const

commit 9fa87a668836f83ab836d0cbcefb4056622a0ed6
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-08-12 19:32:49 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-12 22:24:53 +0900

    CI: ubuntu.yml: Skip user ground id test on ppc64le and s390x

    This is a temporary workaround.

commit 05b654b43f6d0e92fbc3e1e908d811f031d59e40
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-07-22 23:12:46 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-12 22:24:53 +0900

    CI: ubuntu.yml: Set HOME env on ppc64le and s390x

    This is a temporary workaround.

commit 099df0b40b215b2fc5db59569d45c59ee48111a7
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-07-22 23:12:46 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-08-12 22:24:53 +0900

    CI: ubuntu.yml: Add GitHub Actions s390x case

    Add the s390x case using GitHub Actions ppc64le/s390x service.
    https://github.com/IBM/actionspz

    We can run the ppc64le/s390x cases only in the registered upstream repositories.
    https://github.com/IBM/actionspz/blob/main/docs/FAQ.md#what-about-forked-repos

    The following matrix upstream logic is to skip the ppc64le/s390x in the
    downstream (fork) repositories.

    ```
    +        upstream:
    +          - ${{ github.repository == 'ruby/ruby' }}
    ```

    Use the "os" list to determine the excluded ppc64le/s390x cases by using the
    "exclude" syntax. Because the "exclude" syntax are executed before the
    "include" syntax.

    Add the ubuntu-24.04-ppc64le as a comment, because the GitHub Actions ppc64le
    case has the following test errors and failures.
    https://bugs.ruby-lang.org/issues/21534

commit e2aeb7d97758f51d5de21e13d8ddd8c04239cd3e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 18:54:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 18:54:23 +0900

    Use `$(SRC_FILE)` and `$(OS_DEST_FILE)`

    NMake combines VPATH and stem with a backslash.  The resulting source
    name is embedded verbatim, backslash included, into the generated file
    using the `#line` pragma (e.g., "src\gc.rb").  This causes the warning
    "C4129: Unrecognized character escape sequence".

commit 401932c18f72db086a1a9890d34efb2e48a42e35
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 18:19:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 18:19:09 +0900

    NMake needs caret to escape a hash sign

commit 6b2d9ed2a5f60606731efe13a26be12d685a49eb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-12 13:47:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-12 16:04:57 +0900

    Handle preperly comments in middle of lines in gems/bundled_gems

commit 428937a5365192e5cf2ef97d2191e25cc9bd963f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-11 23:40:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-12 11:14:57 +0900

    [DOC] Fix docs for GC.config

    After commit 61fff8a, GC.config now returns the same hash for getting and
    setting.

commit 306df1294985f6e4404046fc4f17f4c8082af152
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-12 11:02:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 11:02:59 +0900

    [DOC] New .md file to replace doc/globals.rdoc

commit f2c7968a4295bdfd658501a2071bcc165eb3423d
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-08-12 10:16:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-12 10:16:46 +0900

    [ruby/stringio] Fix test name
    (https://github.com/ruby/stringio/pull/139)

    https://github.com/ruby/stringio/commit/0edc8e22da

commit 8b1afbc6ed84364506f43c2107f6cb634d92f4be
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-12 05:44:22 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 09:12:25 +0900

    CI: Surface Rust warnings on PRs that touch any Rust code

    Rust PRs will have a failed CI step if they trigger any warnings.
    This helps us stay on top of warnings from new Rust releases and
    also ones we accidentally write.

    Fix a typo for demo, since this only runs when Rust files are changed.

commit 0070c26aecdf0f6692ad6a03315ccf64f593c38e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-12 04:40:28 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 07:53:48 +0900

    ZJIT: CI: Use Rust version built into GitHub Actions image

    Saves the work of installing Rust for most jobs. Keep a job on each
    platform that tests 1.85.0, the minimum supported version, though.

commit 4da569b53ef355e7d11085ff448599f25599bad3
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-12 06:27:27 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 07:37:51 +0900

    [DOC] YJIT: Add YJIT to autolink_excluded_words

commit 39effad4862c7cac31ad8b1dc0bdd984a3f894b6
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-12 05:34:54 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 07:37:51 +0900

    [DOC] ZJIT: Add ZJIT to autolink_excluded_words

    This tells RDoc to not automatically link to the `ZJIT` module so we
    don't need to keep escaping the word ZJIT in the documentation/comments.

commit 9fb34f4f169736d457e3ff4d6fb4a7a596e211c6
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-12 07:36:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 07:36:37 +0900

    ZJIT: Add --zjit-exec-mem-size (#14175)

    * ZJIT: Add --zjit-exec-mem-size

    * Add a comment about the limit

commit e29d33345402f554220c35617e897e6d52bbecff
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-12 07:07:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 07:07:26 +0900

    ZJIT: Implement `concatstrings` insn (#14154)

    Co-authored-by: Alexander Momchilov <alexander.momchilov@shopify.com>

commit 4f34eddbd3c701bdc1ccc93a192a127e0c33202c
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-12 06:35:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 06:35:34 +0900

    YJIT, ZJIT: Fix JITs compiling prelude (#14171)

commit 319550527ff8fbff6ee586fb75da2234de5d2feb
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-12 05:21:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 05:21:45 +0900

    ZJIT: Add compile/profile/GC/invalidation time stats (#14158)

    Co-authored-by: Stan Lo <stan001212@gmail.com>

commit 6968668570fd43065cf4b9b4a1063a6b3fe888aa
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-12 05:18:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-12 05:18:52 +0900

    ZJIT: Add RubyVM::ZJIT.enabled? (#14159)

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

commit 6e3790b17f1b58d67616ef1f9b899bc4af91d334
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-12 03:31:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 04:49:14 +0900

    YJIT: Fix `mismatched_lifetime_syntaxes`, new in Rust 1.89.0

commit 5b956fbf60ee36ba1e7b56e7747f31c0e3586c46
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-12 03:31:16 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-12 04:49:14 +0900

    ZJIT: Fix `mismatched_lifetime_syntaxes`, new in Rust 1.89.0

commit 61fff8a92f5b7fbcdd0bea46150ce0845637483e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-09 00:15:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-11 23:20:33 +0900

    Fix return value of setting in GC.config

    gc_config_set returned rb_gc_impl_config_get, but gc_config_get also added
    the implementation key to the return value. This caused the return value
    of GC.config to differ depending on whether the optional hash argument is
    provided or not.

commit 4775d1ffa8a34f0bca3f6124c98426d56eb8e1b6
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-08-10 21:30:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-11 22:25:47 +0900

    Add NODE IN locations

    Add locations to struct `RNode_IN`.

    memo:

    ```bash
    > ruby -e 'case 1; in 2 then 3; end' --parser=prism --dump=parsetree
    @ ProgramNode (location: (1,0)-(1,24))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,24))
        +-- body: (length: 1)
            +-- @ CaseMatchNode (location: (1,0)-(1,24))
                +-- predicate:
                |   @ IntegerNode (location: (1,5)-(1,6))
                |   +-- IntegerBaseFlags: decimal
                |   +-- value: 1
                +-- conditions: (length: 1)
                |   +-- @ InNode (location: (1,8)-(1,19))
                |       +-- pattern:
                |       |   @ IntegerNode (location: (1,11)-(1,12))
                |       |   +-- IntegerBaseFlags: decimal
                |       |   +-- value: 2
                |       +-- statements:
                |       |   @ StatementsNode (location: (1,18)-(1,19))
                |       |   +-- body: (length: 1)
                |       |       +-- @ IntegerNode (location: (1,18)-(1,19))
                |       |           +-- IntegerBaseFlags: decimal
                |       |           +-- value: 3
                |       +-- in_loc: (1,8)-(1,10) = "in"
                |       +-- then_loc: (1,13)-(1,17) = "then"
                +-- else_clause: nil
                +-- case_keyword_loc: (1,0)-(1,4) = "case"
                +-- end_keyword_loc: (1,21)-(1,24) = "end"
    ```

commit e0b72ad2f1f4836e3303596ecae1f62aa60b2d80
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-11 22:25:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-11 22:25:07 +0900

    [DOC] Update JIT options

commit ad146320957cd84311d5ce857591e05f50f87ca6
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-09 01:19:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-11 22:24:06 +0900

    [DOC] Tweaks for GC.config

commit 62b5fe8984db6c36919ff6f0a69ccca37090ce0c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-07 07:59:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-11 22:24:06 +0900

    [DOC] Tweaks for GC.config

commit c914389ae83d0a5b8ddc00d2c1577c937de72743
  Author:     Erim Icel <erimicel@gmail.com>
  AuthorDate: 2025-08-10 23:36:04 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-11 22:22:38 +0900

    Update string_casecmp.yml

commit 09d6cfc55c9048dfe248be0ca71eb5b8968e6b28
  Author:     Erim Icel <erimicel@gmail.com>
  AuthorDate: 2025-08-10 22:08:53 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-11 22:22:38 +0900

    Update test_string.rb

commit 5e324ac11c2c9c6712e2cdff37f212367f71e094
  Author:     Erim Icel <erimicel@gmail.com>
  AuthorDate: 2025-08-10 21:50:43 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-11 22:22:38 +0900

    Optimize `str_casecmp` length check using pointer end

commit df11c073f37d6bd17be249a7e3ff0e596fb3f42b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-10 15:45:49 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    [DOC] Fix `vssetup.cmd` arguments

commit b0a4e2399b34701d4fc05f9543142b0c73d1fb9b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-24 14:01:02 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    CI: mingw: Use the official actions for msys2

    Because ruby/setup-ruby is affected to test result.

commit 4adb6f6969d3f58d3987708201acf4f44b870cc9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-09 21:37:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    CI: mingw: Set up msys2 environment variables

commit a443cd012a352a7660ee22f9468082031f354d47
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-09 20:26:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    CI: mingw: Set `cmd` as the default shell

    It is used in more steps than `sh`.

commit cc4eba000b18558dc65fb349dce2b92aa7d1760f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-10 01:07:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    Win: Use `@` instead of `echo off` in `vssetup.cmd`

    `echo off` affects the batch files called from this file as well.

commit c1f9f0a7ef9cfb4c57fb90b0a04f8f0274856386
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-10 15:41:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    CI: windows: Windows-2019 or earlier no longer used

commit 90f81994125200d0640cc3bcf7340700144f804b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-10 00:55:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-11 20:29:55 +0900

    CI: mingw: Tweak misc system & package info

commit 2a6345e957c01f4495323723c7a3d7ac0d4ac339
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-09 17:54:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-09 20:32:53 +0900

    time.c: fix time_mark_and_move when WIDEVALUE_IS_WIDER

    In such case the pointer need to be casted.

commit b4d5ebcd12418642dec9f1e2e73ac87495666262
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-09 19:45:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-09 20:12:48 +0900

    [ruby/stringio] Fix SEGV at eof? on null StringIO

    https://github.com/ruby/stringio/commit/29b9133332

commit 31f2d8990dcebf84cbbd3fedf838babaa59554a3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-09 19:44:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-09 20:12:48 +0900

    [ruby/stringio] Fix SEGV at read/pread on null StringIO

    https://github.com/ruby/stringio/commit/113dd5a55e

commit 23c0113932407abccddbc6ee5b297d38d2d2bb9c
  Author:     koh-sh <34917718+koh-sh@users.noreply.github.com>
  AuthorDate: 2025-08-09 18:30:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-09 18:30:27 +0900

    [ruby/stringio] fix: prevent segfault in StringIO#seek with SEEK_END
    on null device
    (https://github.com/ruby/stringio/pull/137)

    Fixes segmentation fault when calling `seek` with `SEEK_END` on null
    device StringIO created by
      `StringIO.new(nil)`.

    ```bash
    ruby -e "require 'stringio'; StringIO.new(nil).seek(0, IO::SEEK_END)"
    ```

    I tested with below versions.

    ```bash
    [koh@Kohs-MacBook-Pro] ~
    % ruby -v;gem info stringio;sw_vers
    ruby 3.4.5 (2025-07-16 revision https://github.com/ruby/stringio/commit/20cda200d3) +PRISM [arm64-darwin24]

    *** LOCAL GEMS ***

    stringio (3.1.2)
        Authors: Nobu Nakada, Charles Oliver Nutter
        Homepage: https://github.com/ruby/stringio
        Licenses: Ruby, BSD-2-Clause
        Installed at (default): /Users/koh/.local/share/mise/installs/ruby/3.4.5/lib/ruby/gems/3.4.0

        Pseudo IO on String
    ProductName:            macOS
    ProductVersion:         15.5
    BuildVersion:           24F74
    [koh@Kohs-MacBook-Pro] ~
    %
    ```

    https://github.com/ruby/stringio/commit/9399747bf9

commit 60ca525fce71b702ea8e5893c976044170a56d75
  Author:     Ethan <ethan@unth.net>
  AuthorDate: 2025-08-06 03:42:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-09 11:10:51 +0900

    [DOC] Array#map! fix to indicate return is self

commit 4209ebb1e4c30f6cb70047238c858c99e773e964
  Author:     Ethan <ethan@unth.net>
  AuthorDate: 2025-08-06 03:12:13 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-09 11:10:51 +0900

    [DOC] Array#fill fix to indicate return is self

    doc currently indicates the return value as `new_array` but then in the first sentence explains "always returns +self+ (never a new array)".

commit 22fe80f275f5e8a66d1e38daab1eb663eab79850
  Author:     Carl Zulauf <carl@linkleaf.com>
  AuthorDate: 2025-08-04 23:52:03 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-09 11:02:37 +0900

    Fix Typo in Regular Expressions docs (_regexp.rdoc)

    Small fix for a typo in the regular expression docs. The line of code above this change does not produce the output shown in the docs. With this change the docs will show the correct output for this example of using regex quantifiers.

commit d80c03d22a5e92a5423a18da1d6494c484392c87
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-09 08:31:29 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-09 09:13:25 +0900

    Fix id2ref table build when GC in progress

    Previously, if GC was in progress when we're initially building the
    id2ref table, it could see the empty table and then crash when trying to
    remove ids from it. This commit fixes the bug by only publishing the
    table after GC is done.

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

commit 07878ebe787843f510be460738ff02dd883bf9ad
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-24 03:33:52 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-09 05:37:31 +0900

    Fix lock ordering issue for rb_ractor_sched_wait() and rb_ractor_sched_wakeup()

    In rb_ractor_sched_wait() (ex: Ractor.receive), we acquire
    RACTOR_LOCK(cr) and then thread_sched_lock(cur_th). However, on wakeup
    if we're a dnt, in thread_sched_wait_running_turn() we acquire
    thread_sched_lock(cur_th) after condvar wakeup and then RACTOR_LOCK(cr).
    This lock inversion can cause a deadlock with rb_ractor_wakeup_all()
    (ex: port.send(obj)), where we acquire RACTOR_LOCK(other_r) and then
    thread_sched_lock(other_th).

    So, the error happens:

    nt 1:   Ractor.receive
                rb_ractor_sched_wait() after condvar wakeup in thread_sched_wait_running_turn():
                  - thread_sched_lock(cur_th) (condvar) # acquires lock
                  - rb_ractor_lock_self(cr) # deadlock here: tries to acquire, HANGS

    nt 2: port.send
                ractor_wakeup_all()
                  - RACTOR_LOCK(port_r) # acquires lock
                  - thread_sched_lock # tries to acquire, HANGS

    To fix it, we now unlock the thread_sched_lock before acquiring the
    ractor_lock in rb_ractor_sched_wait().

    Script that reproduces issue:

    ```ruby
    require "async"
    class RactorWrapper
      def initialize
        @ractor = Ractor.new do
          Ractor.recv # Ractor doesn't start until explicitly told to
          # Do some calculations
          fib = ->(x) { x < 2 ? 1 : fib.call(x - 1) + fib.call(x - 2) }
          fib.call(20)
        end
      end

      def take_async
        @ractor.send(nil)
        Thread.new { @ractor.value }.value
      end
    end

    Async do |task|
      10_000.times do |i|
        task.async do
          RactorWrapper.new.take_async
          puts i
        end
      end
    end
    exit 0
    ```

    Fixes [Bug #21398]

    Co-authored-by: John Hawthorn <john.hawthorn@shopify.com>

commit e639e5fd1af51e2462879d6db862ee5320914ba7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-09 04:04:48 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-09 05:04:11 +0900

    Make rb_gc_impl_writebarrier_remember Ractor-safe

    rb_gc_impl_writebarrier_remember is not Ractor safe because it writes to
    bitmaps and also pushes onto the mark stack during incremental marking.
    We should acquire the VM lock to prevent race conditions.

    In the case that the object is not old, there is no performance impact.
    However, we can see a performance impact in this microbenchmark where the
    object is old:

        4.times.map do
          Ractor.new do
            ary = []

            3.times { GC.start }

            10_000_000.times do |i|
              ary.push(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
              ary.clear
            end
          end
        end.map(&:value)

    Before:

        Time (mean ± σ):     682.4 ms ±   5.1 ms    [User: 2564.8 ms, System: 16.0 ms]

    After:

        Time (mean ± σ):      5.522 s ±  0.096 s    [User: 8.237 s, System: 7.931 s]

    Co-Authored-By: Luke Gruber <luke.gruber@shopify.com>
    Co-Authored-By: John Hawthorn <john@hawthorn.email>

commit 0ba488d7f51c8b52811445245c87cb824e564069
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-09 03:54:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-09 03:54:53 +0900

    ZJIT: Avoid compiling and direct sends to forwardable ISEQs

    These `...` ISEQs have a special calling convention in the interpreter
    and our stubs and JIT calling convention don't deal well. Reject for now.
    Debugged with help from `@tekknolagi` and `tool/zjit_bisect.rb`.

    Merely avoiding direct sends is enough to pass the attached test, but also
    avoid compiling ISEQs with `...` parameter to limit exposure for now.

    `SendWithoutBlock`, which does dynamic dispatch using interpreter code,
    seems to handle calling into forwardable ISEQs correctly, so they are
    fine -- we can't predict where these dynamic sends land anyways.

commit eb931a09c53568abc7773e38bcc9f68f523db193
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-09 03:24:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-09 03:24:39 +0900

    ZJIT: Fix "memory operand with non-register base" (#14153)

commit 8eb26ebf918e6ffbb9d8f3e586ed1749b6c51f15
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-09 02:56:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-09 02:56:19 +0900

    ZJIT: Add a graphviz dumper for HIR (#14117)

    This is moderately useful just in stdout (copy and paste into a renderer) but potentially more useful alongside a tool that parses stdout looking for `digraph G { ... }` and renders those automatically.

commit 057d7c1c58eeaad9dbba4f07e9a390dcb6cafd8f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-09 00:24:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-09 02:06:59 +0900

    object_id_to_ref: complete incremental GC before iterating

    Otherwise dealing with garbage objects is tricky.

commit e4b386e090f00a6690511f2d14aff5fa7b80328d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-08 20:52:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-09 01:02:34 +0900

    CI: Remove Strawberry Perl pkg-config

commit 7b5cd5ce15c0e0f5828b3e9ea07e59c306600066
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-09 01:01:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-09 01:01:47 +0900

    Revert "Convert `PKG_CONFIG_PATH` to msys/cygwin path"

    This reverts commit 8e9ea4c202fb104d7c17ad1f3cc59d697120501a.

    The environment variable is converted internally.

commit c6a27a02533fb28888a49a78ef3ffb9b0be4a4d4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-08 23:40:55 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-09 00:15:18 +0900

    ZJII: Address review feedback

commit 180469a3a78793d0bd128c11e08f14f38d751095
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-08 04:55:54 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-09 00:15:18 +0900

    ZJIT: Actually kill timed-out process in bisect

commit 0782bd2826eccd1b0d831dfa171bc45fa7687168
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-08 04:33:08 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-09 00:15:18 +0900

    ZJIT: Use OptionParser in bisect script

commit fd6d6a45cd3d1d27224c6f02b37884c14edab2c4
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-08 04:31:58 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-09 00:15:18 +0900

    ZJIT: Use shellwords in bisect script

commit 0b30cf3b40a363576e11d52ae56e5345f77a761f
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-08-08 04:13:07 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-08-09 00:15:18 +0900

    ZJIT: Print out command to repro in bisect script

commit a15cf61ba6768453430eecd03d3b563cfce92903
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-08 20:17:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-08 20:17:58 +0900

    Revert "Check if the found pkg-config is usable actually"

    This reverts commit 79d8a3159f60d32396c8281fe438e86ab97e3daa.

    The second argument of `find_executable0` in mkmf is `path`, not
    arguments to the program like as `EnvUtil.find_executable`.

commit f76ce9fd28bd0e94c7b2b904bf27958a6db1aed9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-08 19:33:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-08 19:39:20 +0900

    [ruby/optparse] Use `~/.config` only if `$XDG_CONFIG_HOME` is unset or empty

    https://github.com/ruby/optparse/commit/2f9c7500a3

commit 4fef87588a4748055a916a7968c949c2a7e65430
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-08 08:56:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 08:56:27 +0900

    ZJIT: Remove the need for unwrap() on with_num_bits() (#14144)

    * ZJIT: Remove the need for unwrap() on with_num_bits()

    * Fix arm64 tests

    * Track the caller of with_num_bits

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

    ---------

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit 2edc944702ef8aa04e10f7832ba36f410fbfa513
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-08 07:41:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 07:41:05 +0900

    ZJIT: Implement `defined?` codegen for non-yield calls (#14101)

commit c41c323f1a001ab62c69add4bf01c6a887641f2a
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-08 07:39:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 07:39:45 +0900

    Invalidate CCs when cme is invalidated in marking

    * Skip assertion when cc->klass is Qundef
    * Invalidate CCs when cme is invalidated in marking
    * Add additional assertions that CC references stay valid

    Co-authored-by: Peter Zhu <peter@peterzhu.ca>

commit d25eb1eb5c05ac1cadd9cc03ddd37f8eda57d7f1
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-08 07:38:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 07:38:02 +0900

    ZJIT: Optimize class guards by directly reading klass field (#14136)

    Replace `rb_yarv_class_of` call with:
    - a constant check for special constants (nil, fixnums, symbols, etc)
    - a check for false
    - direct memory read at offset 8 for regular heap objects for the class check

commit 96c9e1e93a77e0aeedfc717a4abf03b3bfcd5169
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-08 07:30:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 07:30:02 +0900

    ZJIT: Remove GC offsets overwritten by invalidation (#14102)

    ZJIT: Remove GC offsts overwritten by invalidation

commit 363ad0ad17c8ce36035c64ee3267ec680423bc68
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-08 04:11:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 04:11:55 +0900

    ZJIT: Create HeapObject Type (#14140)

    This is a counterpoint to the Immediate type and it represents all BasicObject subclasses except for the several immediate objects.

    If we know something is a HeapObject, we know we can treat it as an RBasic pointer.

commit 1aabd2cb365ff0a236609fe1c4ab193d16027757
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:48:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    Convert `time` to use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit 1986d775cdae6a0ab40a2528e2ec9b50e06eba70
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:47:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    symbol.c: use `rb_gc_mark_and_move` over `rb_gc_location`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit 5bcfc53d6fa5518a194f2d0771830eb961180991
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:44:48 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    set.c: use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit 559d9e1f67cb6c19630b20b609af315ed7fdafca
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:43:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    Convert `VM/shape_tree` to use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit bc9781c264b9e37c2482dba429b560436104a1f5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:42:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    Convert `name_err_mesg` to use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit aee8e65c702283af8a70cb1fdac0797aa7c75001
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:41:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    Convert `Enumerator` types to use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit 846b5eec57ad2c030b7136d89193215055529c4a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-07 21:38:19 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-08 04:00:00 +0900

    Convert `marshal_compat_table` to use `rb_gc_mark_and_move`

    The `p->field = rb_gc_location(p->field)` isn't ideal because it means all
    references are rewritten on compaction, regardless of whether the referenced
    object has moved. This isn't good for caches nor for Copy-on-Write.

    `rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
    have a single function for both marking and updating references.

commit a260bbc550adf2a685e40ea492334a1d1f3a0222
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-08 03:28:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-08 03:28:10 +0900

    ZJIT: Set PC before StringCopy (#14141)

    ZJIT: Set PC before StringCopy

    This function allocates.

commit 24d0b458cd6ccde1e052c1db15af120def349693
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-07 00:09:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-07 22:27:22 +0900

    Make Random write-barrier protected

commit fccd96cc6c3cc9f500dc87ae9be65aaa212b02fa
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-07 05:53:00 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-07 07:57:13 +0900

    Add stricter assertions on CC access

commit 640a2f1dc77c0ecf226dbd71cf7a1eb876a1f037
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-07 05:44:46 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-07 07:57:13 +0900

    Ensure ObjectSpace.dump won't call cc_cme on invalidated CC

commit a9f6fe0914cb65f16cdf82390fa070ad76e54a8d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-07 06:05:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-07 07:57:13 +0900

    Avoid marking CC children after invalidation

    Once klass becomes Qundef, it's disconnected and won't be invalidated
    when the CME is. So once that happens we must not mark or attempt to
    move the cme_ field.

commit ba4a36e226d9a4203b0721f456e894efe4629bd0
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-07 05:56:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-07 05:56:01 +0900

    ZJIT: Inline attr_reader/attr_accessor (#14126)

    We can rewrite SendWithoutBlock to GetIvar.

commit 4a70f946a7131da871ca2aef8256a8b94299eba6
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-07 05:51:41 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-07 05:51:41 +0900

    ZJIT: Implement SingleRactorMode invalidation (#14121)

    * ZJIT: Implement SingleRactorMode invalidation

    * ZJIT: Add macro for compiling jumps

    * ZJIT: Fix typo in comment

    * YJIT: Fix typo in comment

    * ZJIT: Avoid using unexported types in zjit.h

    `enum ruby_vminsn_type` is declared in `insns.inc` and is not exported.
    Using it in `zjit.h` would cause build errors when the file including it
    doesn't include `insns.inc`.

commit e378a21a32bb0ca26f206f975073760a4e1a8bef
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-06 14:27:16 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-07 05:26:14 +0900

    ZJIT: Run TestFixnum

commit 21cb1c9e929e9aaad24a9b64576aceb54b8e4e7a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-06 14:25:27 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-07 05:26:14 +0900

    ZJIT: x86: split: Fix live ranges index-out-of-range panic

    Previously we crashed panicked due to index bounds check running
    test_fixnum.rb.

    On ARM and in other places in the x86 backend, this isn't a problem
    because they inspect the output of instructions which is never replaced.

commit 71b46938a7dd61304f012025e06891e8fe2e37fb
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-06 04:53:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-07 02:40:27 +0900

    Fix off-by-one in symbol next_id

    Symbol last_id was changed to next_id, but it remained to be set to
    tNEXT_ID - 1 initially, causing the initial static symbol to overlap with
    the last built-in symbol in id.def.

commit ebb775be8d30e42da66597997bccf57c0d33f58d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-07 02:05:20 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-07 02:05:20 +0900

    ZJIT: Fix "immediate value too large" on cmp for x86_64 (#14125)

    Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>

commit bcd21053f733a93a82a34c6f5c23d6af2a8010ed
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-26 10:31:23 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-08-07 01:07:16 +0900

    Add MODULE NODE locations

    Add `keyword_module` amd `keyword_end` locations to struct `RNode_MODULE`.

    memo:
    ```
    >ruby --dump=parsetree -e 'module A end'
    @ ProgramNode (location: (1,0)-(1,12))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,12))
        +-- body: (length: 1)
            +-- @ ModuleNode (location: (1,0)-(1,12))
                +-- locals: []
                +-- module_keyword_loc: (1,0)-(1,6) = "module"
                +-- constant_path:
                |   @ ConstantReadNode (location: (1,7)-(1,8))
                |   +-- name: :A
                +-- body: nil
                +-- end_keyword_loc: (1,9)-(1,12) = "end"
                +-- name: :A
    ```

commit 7aa0e09bfe9cbb9f9abe8111fa3673a85d86ca9b
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-08-05 21:44:13 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-08-07 01:06:50 +0900

    Fix typo in comment regarding symlink flags in autogen.sh

commit f3206cc79bec2fd852e81ec56de59f0a67ab32b7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-06 21:46:36 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-07 00:07:49 +0900

    Struct: keep direct reference to IMEMO/fields when space allows

    It's not rare for structs to have additional ivars, hence are one
    of the most common, if not the most common type in the `gen_fields_tbl`.

    This can cause Ractor contention, but even in single ractor mode
    means having to do a hash lookup to access the ivars, and increase
    GC work.

    Instead, unless the struct is perfectly right sized, we can store
    a reference to the associated IMEMO/fields object right after the
    last struct member.

    ```
    compare-ruby: ruby 3.5.0dev (2025-08-06T12:50:36Z struct-ivar-fields-2 9a30d141a1) +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-08-06T12:57:59Z struct-ivar-fields-2 2ff3ec237f) +PRISM [arm64-darwin24]
    warming up.....

    |                      |compare-ruby|built-ruby|
    |:---------------------|-----------:|---------:|
    |member_reader         |    590.317k|  579.246k|
    |                      |       1.02x|         -|
    |member_writer         |    543.963k|  527.104k|
    |                      |       1.03x|         -|
    |member_reader_method  |    213.540k|  213.004k|
    |                      |       1.00x|         -|
    |member_writer_method  |    192.657k|  191.491k|
    |                      |       1.01x|         -|
    |ivar_reader           |    403.993k|  569.915k|
    |                      |           -|     1.41x|
    ```

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

commit 9b3ad3449be62c46fbacdb59f43aa526f7da2f79
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-06 22:23:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-06 23:37:25 +0900

    Mark `cross_ractor_require_data_type` as embeddable

    Nothing prevents it, so might as well.

commit 06312377adc62ea1c82b5574749ee3704a1e4e9f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-01 03:38:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-06 22:02:30 +0900

    Make Ractor::Selector write-barrier protected

commit 92688f7d570c9c37ccb05b80577e1032aae908b7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-05 20:43:25 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-06 19:33:44 +0900

    variable.c: refactor accesses to the generic_fields_tbl

    All accesses to `generic_fields_tbl_` are now encapsulated inside:

      - `rb_obj_fields`
      - `rb_obj_set_fields`
      - `rb_obj_replace_fields`

commit e60e1952a4bed328983b15918da5354246bcf320
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-06 11:52:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-06 11:52:59 +0900

    ZJIT: Fix `Kernel#Float`'s annotation (#14123)

    As pointed out in https://github.com/ruby/ruby/pull/14078#discussion_r2255427676, the return type should be `Float` instead.

commit fe3ed3e7f3486e9bb8b1583ecb4e41efc882e4d3
  Author:     pjsk <pjsk@stripe.com>
  AuthorDate: 2025-06-17 10:21:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] Update tests to respect token for where v2 and v1 are invoked

    https://github.com/rubygems/rubygems/commit/261315e399

commit 374f7dbcbbf797cb3e5a1460140981d811bc7c10
  Author:     pjsk <pjsk@stripe.com>
  AuthorDate: 2025-06-17 09:08:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] removed global variables

    https://github.com/rubygems/rubygems/commit/42c5947dbe

commit 01ae9e4fb095db753291d65ae6d56411d17386a7
  Author:     pjsk <pjsk@stripe.com>
  AuthorDate: 2025-05-29 08:56:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] implement fallback

    https://github.com/rubygems/rubygems/commit/e09a6ec815

commit 23b34517bd8f62e50e2e5f7f22039a713aa32cc8
  Author:     pjsk <pjsk@stripe.com>
  AuthorDate: 2025-05-28 09:43:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] Surgery on test code to make fallback to imdsv1 easier to test

    https://github.com/rubygems/rubygems/commit/5b4eece722

commit 720ae3285e26ba09b173b9f9fe0fab47fd508ff5
  Author:     pjsk <pjsk@stripe.com>
  AuthorDate: 2025-05-28 09:42:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] make things a bit more testable

    https://github.com/rubygems/rubygems/commit/29c085f5f5

commit 8691a4ada14de39a607f96ea128184da40168b90
  Author:     Frank Olbricht <folbricht@stripe.com>
  AuthorDate: 2024-06-01 17:57:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 10:46:46 +0900

    [rubygems/rubygems] Use IMDSv2 for S3 instance credentials

    https://github.com/rubygems/rubygems/commit/fa1c51ef59

commit 9c0ebff2cded1b60d5d7c922d7cf8dbaa54ecfe2
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-06 09:00:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-06 09:00:04 +0900

    ZJIT: Avoid matching built-in iseq's HIR line numbers in tests (#14124)

    ZJIT: Avoid matching built-in ISEQs' HIR line numbers in tests

    Co-authored-by: Author: Takashi Kokubun <takashi.kokubun@shopify.com>

commit 4d26ccd2afaf33a813464d1abe4cf518950b2f2e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 20:20:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 06:23:03 +0900

    [rubygems/rubygems] Allow to use Gem::Deprecate#rubygems_deprecate and rubygems_deprecate_command without rubygems.rb

    https://github.com/rubygems/rubygems/commit/4925403686

commit 052b38a5d9ca4d0ab2ad872bf896fe256a0186f5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 18:45:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 06:23:02 +0900

    [rubygems/rubygems] Deprecate Gem::Specification#datadir and will remove it at RG 4.1

    https://github.com/rubygems/rubygems/commit/e99cdab171

commit 51f88f9922ef0a8c670eb541de726ae0d11a1706
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 18:39:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 06:23:02 +0900

    [rubygems/rubygems] Added ability for changing deprecated version from only next major

    https://github.com/rubygems/rubygems/commit/15177de84e

commit 19336a639252ea75204eda040b9e916d1c7188bf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 18:26:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-06 06:23:01 +0900

    [rubygems/rubygems] Removed compatibility.rb that file is for Ruby 1.9.

    https://github.com/rubygems/rubygems/commit/120c174e7f

commit ef95e5ba3de65d42fe0e1d41519dcf05db11a4e8
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-08-06 05:56:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-06 05:56:04 +0900

    ZJIT: Profile type+shape distributions (#13901)

    ZJIT uses the interpreter to take type profiles of what objects pass through
    the code. It stores a compressed record of the history per opcode for the
    opcodes we select.

    Before this change, we re-used the HIR Type data-structure, a shallow type
    lattice, to store historical type information. This was quick for bringup but
    is quite lossy as profiles go: we get one bit per built-in type seen, and if we
    see a non-built-in type in addition, we end up with BasicObject. Not very
    helpful. Additionally, it does not give us any notion of cardinality: how many
    of each type did we see?

    This change brings with it a much more interesting slice of type history: a
    histogram. A Distribution holds a record of the top-N (where N is fixed at Ruby
    compile-time) `(Class, ShapeId)` pairs and their counts. It also holds an
    *other* count in case we see more than N pairs.

    Using this distribution, we can make more informed decisions about when we
    should use type information. We can determine if we are strictly monomorphic,
    very nearly monomorphic, or something else. Maybe the call-site is polymorphic,
    so we should have a polymorphic inline cache. Exciting stuff.

    I also plumb this new distribution into the HIR part of the compilation
    pipeline.

commit 52312d53ca6da5eb61e3a1efa534eb221f5772d7
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-06 04:58:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-06 04:58:00 +0900

    [DOC] Tweaks for GC.start (#14093)

commit 6bc07f142233759e747f04db82115593014af1fe
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-28 23:25:49 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Convert implicit parameter `it` to local variable in `parse_expression_infix` function

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

commit a12e0c1db1d33525b904e2c0c801a22d42658d31
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-23 21:20:50 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Remove uneeded test

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

commit 02200ac81cd6712759995d920e354a0c3e96488c
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-23 21:23:47 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Add it read and assignment test

    https://github.com/ruby/prism/commit/659d769621

commit b482e3d7cd77c688ed0e38e1c95c1f0b2b205cd6
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-21 11:00:33 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Make `it = it` assign `nil` to match parse.y behavior [Bug #21139]

    Currently Prism returns `42` for code like this:
    ```ruby
    42.tap { it = it; p it } # => 42
    ```

    But parse.y returns `nil`:
    ```ruby
    42.tap { it = it; p it } # => nil
    ```

    In parse.y, it on the right-hand side is parsed as a local variable.
    In Prism, it was parsed as the implicit block parameter it, which caused this inconsistent behavior.

    This change makes the right-hand side it to be parsed as a local variable, aligning with parse.y's behavior.

    Bug ticket: https://bugs.ruby-lang.org/issues/21139

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

commit 6e2b139d6ac1bcbae26c06a4e3022e8b2be8307e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-05-06 22:30:03 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Ensure context terminators terminate expressions

    https://github.com/ruby/prism/commit/915f6b3ae9

commit 2e672fdee0a81d21b877b7561a2f24f5d57c234d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-04-22 05:07:03 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Bump JRuby version

    https://github.com/ruby/prism/commit/27d284bbb8

commit 2936da902cadc3e9c5737469892df9c116f24b77
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-06-03 11:21:25 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Handle new ractor stuff

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

commit 087190fcd21973eb34b600fa82e6567189f4bbd7
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-07-07 19:06:26 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Improve error handling for missing parentheses after 'not' in command calls

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

commit f814a777550ee39865f8fe26d0061cba8b715509
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-13 12:44:08 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Reject `true && not true`

    A command-call-like `not true` must be rejected after `&&` and `||`.

    https://bugs.ruby-lang.org/issues/21337

    https://github.com/ruby/prism/commit/0513cf22ad

commit 18e37ac430e02d89738406c52d1faaaa08c2e0cf
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-05-06 21:57:30 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-08-06 02:58:09 +0900

    [ruby/prism] Optimize context_terminator with a lookup table

    https://github.com/ruby/prism/commit/483aa89234

commit 3ef8d833ab6e803cdff714ee454d7a4d47ee1c47
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-02 01:17:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-06 01:41:40 +0900

    rb_gc_impl_mark_and_move: avoid needless writes

    Assuming not all objects are moved during compaction, it
    is preferable to avoid rewriting references that haven't moved
    as to avoid invalidating potentially shared memory pages.

commit 95320f1ddfd0d17ddad3c0a20b43636601b6bb55
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-06 00:05:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-06 01:04:27 +0900

    Fix RUBY_FREE_AT_EXIT for static symbols

    Since static symbols allocate memory, we should deallocate them at shutdown
    to prevent memory leaks from being reported with RUBY_FREE_AT_EXIT.

commit 4cfe5baf3d988425ad5e50984f6388a1165f92e3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-08-01 18:15:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-06 00:18:32 +0900

    Use snprintf instead of deprecated sprintf

    When compiling with -fsanitize=address on macOS, the deprecation of
    sprintf is effective and prevents compiling yjit.c.

    More details: https://openradar.appspot.com/FB11761475.

commit 79d8a3159f60d32396c8281fe438e86ab97e3daa
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-05 21:34:03 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-05 23:37:51 +0900

    Check if the found pkg-config is usable actually

commit 8e9ea4c202fb104d7c17ad1f3cc59d697120501a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-05 17:07:37 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-05 23:37:51 +0900

    Convert `PKG_CONFIG_PATH` to msys/cygwin path

commit 72b8bb4cafe2512c8c5273b4614eba2028a4c350
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-03 23:13:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-05 23:11:11 +0900

    [DOC] Tweaks for String#gsub!

commit 409da39afbcd927577801be1626193e719f04005
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-08-05 23:06:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-05 23:06:47 +0900

    [DOC] Tweaks for String#gsub

commit b7f65f01eea8810ac8be64865e3415e634c3633a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-08-01 23:19:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-05 22:26:42 +0900

    [DOC] Tweaks for String#grapheme_clusters

commit a6aaeb9acfa47ebfafed051069f7ea870ded4b99
  Author:     ArtSin <artsin666@gmail.com>
  AuthorDate: 2025-08-05 21:39:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-05 22:19:55 +0900

    load.c: fix `prev_ext_config` clobbering in `require_internal`

    The variable `prev_ext_config` is modified by `ext_config_push` between
    `setjmp` and `longjmp` calls. Since `ext_config_push` and `ext_config_pop`
    are small and likely to be inlined, `prev_ext_config` can be allocated on
    a register and get clobbered. Fix by making it `volatile`.

    This bug can be observed by adding a check for values greater than 1 in
    `th2->ext_config.ractor_safe` after `ext_config_pop` and building with Clang.

commit 3d8af5df11e8dba8ccd37b03f9f5b92b2bc66dcb
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-08-05 21:46:41 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-08-05 21:58:12 +0900

    Fix typo in documentation comment for exc_inspect method in error.c

commit d5e7e88f3248c59070b6e0d1dcb1166534d02a02
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-05 15:48:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-05 15:56:26 +0900

    Show mkmf.log contents even when `pkg-config` command failed

commit 06b14f29a34fe621696d6beae0c00486a6879539
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 12:13:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-05 13:11:18 +0900

    Added missing block argument

commit 015d8741339a8f134e00638dad388549be58c988
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 11:38:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-05 13:11:18 +0900

    Sync https://github.com/ruby/test-unit-ruby-core/pull/8

commit 946165bd48b7f47dbe38f7a130983e429e1dd25d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 10:57:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-05 11:41:43 +0900

    Added clang-22 build

commit 3c6bd9c9c7cf6483c34fb0d2c278dce4749a6ae1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-05 10:33:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-05 10:33:53 +0900

    Pathname is now core class.

    We will restore this sync target when `lib/pathname.rb` is migrated to `pathname_builtin.rb`
    and backport that file to `ruby/pathname` repo.

commit 196155812be09fdc4c36f8d7d6d1fbc69948765c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-05 09:49:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-05 09:49:43 +0900

    Resurrect another ZJIT skip on test_handle_interrupted?

    Failed at:
    https://github.com/ruby/ruby/actions/runs/16737407508/job/47378992863

    Partially reverting https://github.com/ruby/ruby/pull/14097

commit 591849a1a565e2177bee82bee8d0118a7c48eaa9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-05 09:31:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-05 09:31:09 +0900

    Resurrect a ZJIT skip on test_switch_while_busy_loop

    This can still hang:
    https://github.com/ruby/ruby/actions/runs/16735509694/job/47373381258

    partially reverting https://github.com/ruby/ruby/pull/14097

commit 8091f3bce588f9062fdda08977c67ba09c9095dd
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-05 07:20:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-05 07:20:07 +0900

    ZJIT: Remove passing tests from exclusions (#14097)

commit 53b046284196c783d02eadb1a3ba691eb5efd509
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-08-05 06:44:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-05 06:44:51 +0900

    ZJIT: Add helpers to prepare for C calls (#14100)

commit 89d89fa49d387a09e0d3ea7092a598b88d6d86eb
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-18 07:20:20 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-08-05 04:34:33 +0900

    When reading from stdin, put a wrapper around the IO object

    The purpose of this commit is to fix Bug #21188.  We need to detect when
    stdin has run in to an EOF case.  Unfortunately we can't _call_ the eof
    function on IO because it will block.

    Here is a short script to demonstrate the issue:

    ```ruby
    x = STDIN.gets
    puts x
    puts STDIN.eof?
    ```

    If you run the script, then type some characters (but _NOT_ a newline),
    then hit Ctrl-D twice, it will print the input string.  Unfortunately,
    calling `eof?` will try to read from STDIN again causing us to need a
    3rd Ctrl-D to exit the program.

    Before introducing the EOF callback to Prism, the input loop looked
    kind of like this:

    ```ruby
    loop do
      str = STDIN.gets
      process(str)

      if str.nil?
        p :DONE
      end
    end
    ```

    Which required 3 Ctrl-D to exit.  If we naively changed it to something
    like this:

    ```ruby
    loop do
      str = STDIN.gets
      process(str)

      if STDIN.eof?
        p :DONE
      end
    end
    ```

    It would still require 3 Ctrl-D because `eof?` would block.  In this
    patch, we're wrapping the IO object, checking the buffer for a newline
    and length, and then using that to simulate a non-blocking eof? method.

    This commit wraps STDIN and emulates a non-blocking `eof` function.

    [Bug #21188]

commit 1c6b36af18f33882f152e412c8ec1f06f1303197
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-03 17:33:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-04 09:29:53 +0900

    Only define `String.json_create` & al when `json/add` is required

    All the `json/add` related methods for string were
    always defined unconditionally from the generators.

    It's preferable to only define them if `json/add` is actually used.

commit 65612dbb38295bf3cf0bdc5d7d9b65aefaebf500
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-31 17:54:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-08-04 09:27:51 +0900

    [rubygems/rubygems] Fix daily CI

    Platform specific versions of ffi-1.17.2 are not compatible with Ruby
    3.5, so Bundler fails to resolve in Ruby 3.5 using recorded VCR
    responses.

    Use the generic version of ffi-1.17.2, which should work for all rubies,
    consistently to fix that.

    https://github.com/rubygems/rubygems/commit/a192f7e35d

commit 6179cc011829b9e4c7b253ac2d2a3f47d8fd6890
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-04 02:23:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-04 02:23:43 +0900

    [DOC] Fill undocumented documents

commit b4dfdb915d6852c9abdbcea42a6d350678c3f314
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-04 02:22:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-04 02:22:44 +0900

    [DOC] Show the rdoc coverage of ruby core

commit 01fafcca909a4e48d6a83e668882348d92943d4e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-04 02:21:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-04 02:21:22 +0900

    [DOC] Fix rdoc coverages for rdoc-srcdir

commit 0aae9e2afad40bb8248dc2a7d535f261efc5dcca
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-04 02:02:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-08-04 02:02:33 +0900

    [DOC] irb is a bundled gem now

commit a12914b5164ab791fd3a69f3fd954599dfdd6ef0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-03 22:49:16 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-04 00:28:16 +0900

    pathname_buitin.rb: Remove useless `o` modifier

commit dc10c92749d670d7e7e347b4d0f207a040bc94f5
  Author:     Lars Kanis <lars@greiz-reinsdorf.de>
  AuthorDate: 2025-08-03 16:18:13 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-03 23:43:58 +0900

    Revert to shell execution when invoking nm tool

    This reverts a change of commit b3598cf2a355497693bb66097edc156af3152e9b .
    On Windows on ARM64 with LLVM the "NM" tool is called with a parameter like so:
    ```
      RbConfig::CONFIG["NM"] # => "llvm-nm --no-llvm-bc"
    ```

    Therefore the command must be called with a shell string.

commit deb0240ea06d3353fe3238d41f2534d9acc108a9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-03 22:41:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-03 22:53:27 +0900

    [ruby/optparse] Expand literal home paths only

    Paths in environment variables should already be expanded.
    The base name of the program is also not subject to expansion.

    https://github.com/ruby/optparse/commit/181752391c

commit 1619afb3500bb695140df6e9dacaa901bc21920c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-08-03 22:37:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-03 22:53:27 +0900

    [ruby/optparse] Fallback HOME

    https://github.com/ruby/optparse/commit/e0fdabf946

commit 30a20bc166bc37acd7dcb3788686df149c7f428a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-02 06:49:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-02 09:44:39 +0900

    ZJIT: Reject builtin annotation if its iseq has multiple invokebuiltin insns

commit 44dee185aa4c9814da4a50d90db7c80d5a787e0f
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-02 06:20:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-02 09:44:39 +0900

    ZJIT: Annotate Kernel#class

commit 3c1ca509b844929bf3cd5dbe81c09474c1b8a205
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-02 05:16:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-02 09:44:39 +0900

    ZJIT: Improve builtin function annotation collection

commit 85510fc2ff5b5e44f1bc41613171f6008ad8890b
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-08-01 21:37:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-08-02 09:44:39 +0900

    ZJIT: Support annotating builtin functions

    This allows us to annotate builtin functions with their return type.

commit 19cbf8406a3dfa5c9a7eff712e33e272c10dbde0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-02 09:37:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-02 09:37:00 +0900

    ZJIT: Enable IncrCounter for arm64 (#14086)

commit 3ad6bba1369aa61feabe4ff0f1f0e8dd9245cebc
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-02 06:19:23 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-02 06:56:15 +0900

    ZJIT: Refer to scratch registers in operands

    Co-authored-by: Takashi Kokubun <takashi.kokubun@shopify.com>

commit afac22647852439e7b3563216afac7b9491eaa0b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-02 03:54:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-02 06:56:15 +0900

    ZJIT: Fix side-exit panicking when there's too many locals

    Previously, ARM64 panicked due to compiled_side_exits() when the memory
    displacement got large enough to exceed the 9 bits limit. Usually, we split
    these kind of memory operands, but compiled_side_exits() runs after
    split.

    Using scratch registers, implement `Insn::Store` on ARM such that it can
    handle large displacements without split(). Do this for x86 as well, and
    remove arch specific code from compiled_side_exits(). We can now run
    `TestKeywordArguments`.

    Since `Insn::Store` doesn't need splitting now, users enjoy lower
    register pressure.

    Downside is, using `Assembler::SCRATCH_REG` as a base register is now
    sometimes an error, depending on whether `Insn::Store` also needs to
    use the register. It seems a fair trade off since `SCRATCH_REG` is
    not often used, and we don't put it as a base register anywhere at the
    moment.

commit f58fca7de0120394d5530902f694b12d260dd14e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-08-02 05:50:10 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-02 06:32:01 +0900

    ZJIT: A64: Use MOVN for small negative immediates

    Save a couple instructions to load a small negative constant into a
    register. In fact MOVN is speced to alias as `mov` in the official
    disassembly.

commit faa67506e51908e2b235fe68ca3dac8c3bfaf354
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-08-02 05:05:59 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-08-02 05:45:29 +0900

    Ensure CC entries always marked, add missing WB

    Previously we were issuing writebarriers for each cc, but were missing
    the cme.

    We also need to avoid it being possible to run GC after we've copied the
    values into the allocated array, but before they're visible in the
    object.

commit bc789ca804c15eb33b9e682b081aa9bd24c5f7fb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-01 19:21:04 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-02 02:49:38 +0900

    Convert `rb_class_cc_entries.entries` in a flexible array member

    `rb_class_cc_entries` is little more than a `len` and `capa`.
    Hence embedding the entries doesn't cost much extra copying and
    saves a bit of memory and some pointer chasing.

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

commit c6dd3cefa17ed6878f1faee2761c77456efed685
  Author:     Justin Collins <justin@presidentbeef.com>
  AuthorDate: 2025-08-01 10:15:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-02 01:57:18 +0900

    [ruby/prism] Avoid monkey patching Sexp#== in RubyParser tests

    https://github.com/ruby/prism/commit/7362b114a3

commit 885862a853d6001146cd01b3025cf898d8f0c10c
  Author:     Justin Collins <justin@presidentbeef.com>
  AuthorDate: 2025-08-01 10:14:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-02 01:57:17 +0900

    [ruby/prism] Match RubyParser behavior for -> lambda args

    https://github.com/ruby/prism/commit/9f55551b09

commit d289eb2723097ab03dcd7bdf16b13e64d1cba3d4
  Author:     Justin Collins <justin@presidentbeef.com>
  AuthorDate: 2025-07-31 07:58:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-02 01:57:17 +0900

    [ruby/prism] RubyParser translation for stabby lambdas with `it`

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

commit fca2e6f8f53920170654e696c2585fcd3f4ebe11
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-01 23:09:19 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-02 01:00:05 +0900

    variable.c: Fix `rb_ivar_foreach` to not yield `object_id` of complex objects

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

commit bf2c8ad3833d194ff5d95274569b911fbf350ffa
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-01 01:47:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-01 22:43:24 +0900

    Remove dead rb_ractor_t in ractor_selector

commit 497782856a6054ab6bf3c195b10146161bebcf11
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-31 21:02:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-01 21:04:06 +0900

    [ruby/openssl] pkcs7: make PKCS7#add_recipient actually useful

    Add a simple test case that creates an enveloped-data structure without
    using the shorthand method, and fix two issues preventing this from
    working correctly.

    First, OpenSSL::PKey::PKCS7#add_recipient currently inserts an
    incomplete PKCS7_RECIP_INFO object into the PKCS7 object. When
    duplicating an unfinalized PKCS7_RECIP_INFO, the internal X509 reference
    must also be copied, as it is later used by #add_data to fill the rest.

    A similar issue with #add_signer was fixed in commit https://github.com/ruby/openssl/commit/20ca7a27a86e
    (pkcs7: keep private key when duplicating PKCS7_SIGNER_INFO,
    2021-03-24).

    Second, #add_data calls PKCS7_dataFinal(), which for enveloped-data
    appears to require the BIO to be flushed explicitly with BIO_flush().
    Without this, the last block of the encrypted data would be missing.

    https://github.com/ruby/openssl/commit/9595ecf643

commit 046780179b582c3f037e5cff27647091f71d6977
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-31 20:15:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-01 21:04:06 +0900

    [ruby/openssl] pkcs7: refactor error handling in PKCS7#add_data

    Raise an exception right after an OpenSSL function returns an error.
    Checking ERR_peek_error() is not reliable way to see if an error has
    occurred or not, as OpenSSL functions do not always populate the error
    queue.

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

commit 3fe4ab0d23150f47e2ee6af0badbe08c070a9a95
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-01 02:40:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-01 21:03:39 +0900

    [ruby/openssl] pkcs7: fix error queue leak in OpenSSL::PKCS7#detached

    Only call PKCS7_get_detached() if the PKCS7 object is a signed-data.
    This is only useful for the content type, and leaves an error entry if
    called on a PKCS7 object with a different content type.

    https://github.com/ruby/openssl/commit/8997f6d5e6

commit 1064c63643f1d70ef7253acc1022fdbf4e903b70
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-08-01 18:22:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-01 19:39:14 +0900

    Fix rb_shape_transition_object_id transition to TOO_COMPLEX

    If `get_next_shape_internal` fail to return a shape, we must
    transitiont to a complex shape. `shape_transition_object_id`
    mistakenly didn't.

    Co-Authored-By: Peter Zhu <peter@peterzhu.ca>

commit 547f111b5b0d773af2a4268fe407fdacc7060109
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-30 23:51:59 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-01 17:42:04 +0900

    Refactor `vm_lookup_cc` to allow lock-free lookups in `RClass.cc_tbl`

    In multi-ractor mode, the `cc_tbl` mutations use the RCU pattern,
    which allow lock-less reads.

    Based on the assumption that invalidations and misses should be
    increasingly rare as the process ages, locking on modification
    isn't a big concern.

commit f2a7e48deadb9101d49c9b613abf5a83c9e1dd49
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-30 19:44:39 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-01 17:42:04 +0900

    Make `RClass.cc_table` a managed object

    For now this doesn't change anything, but now that the table
    is managed by GC, it opens the door to use RCU when in multi-ractor
    mode, hence allow unsynchornized reads.

commit fc5e1541e4bb4b7995b6acc1ea6121b60fc64e7a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-29 22:13:01 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-01 17:42:04 +0900

    Use `rb_gc_mark_weak` for `cc->klass`.

    One of the biggest remaining contention point is `RClass.cc_table`.
    The logical solution would be to turn it into a managed object, so
    we can use an RCU strategy, given it's read heavy.

    However, that's not currently possible because the table can't
    be freed before the owning class, given the class free function
    MUST go over all the CC entries to invalidate them.

    However if the `CC->klass` reference is weak marked, then the
    GC will take care of setting the reference to `Qundef`.

commit 1055e04e28a66b82d8c2118bb61763961ed4d1c9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-08-01 10:18:26 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-01 12:22:25 +0900

    Remove useless set of dest_shape_id in rb_obj_copy_ivar

commit 543f8dcad39190d1760bd329605f4a4130bb2a42
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-01 06:28:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-01 06:28:08 +0900

    ZJIT: Add the ISEQ name to Block asm comments (#14070)

commit 5a7be72c063a77e34670897cd1e71b600876958d
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-08-01 05:23:24 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-08-01 05:23:24 +0900

    Also include shape type in assert

    The assert also fails on interpreter-only runs:
    https://github.com/ruby/ruby/actions/runs/16658231740/job/47148610283

commit 12306c0c6fb519dbf8c9b016b412d9b817c65883
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-08-01 04:57:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-08-01 04:57:59 +0900

    ZJIT: Stub JIT-to-JIT calls (#14052)

commit f0c31c5e6492cfc088b8b87a9b86aeb75b22733d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-31 21:25:41 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-08-01 04:55:51 +0900

    Get rid of RSHAPE_PARENT in favor of RSHAPE_DIRECT_CHILD_P

    `RSHAPE_PARENT` is error prone because it returns a raw untagged
    shape_id.

    To check if a shape is a direct parent of another, tags should be
    discarded. So providing a comparison function is better than exposing
    untagged ids.

commit 84ee71df4540c9c13854c86d6b30bf8f385780c8
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-08-01 04:30:46 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-08-01 04:30:46 +0900

    Print shape id when a flaky shapes assert fails

    This has been failing intermittently during
    `test_marshal_with_ivar_and_id` for ZJIT and YJIT builds.

    https://github.com/ruby/ruby/actions/runs/16655987271/job/47140970602
    https://github.com/ruby/ruby/actions/runs/16656119252/job/47141409113

commit da0de3cb872ce212ce70a7a6f8516356e97bcb2c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-31 08:13:24 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-01 02:45:20 +0900

    ZJIT: A64: Fix splitting for large memory displacements

    On the ruby side, this fixes a crash for methods with 39 or more
    parameters. We used to miscomp those entry points due to Insn::Lea
    picking ADDS which cannot reference SP:

        # set method params: 40
        mov x0, #0xfee8
        movk x0, #0xffff, lsl #16
        movk x0, #0xffff, lsl #32
        movk x0, #0xffff, lsl #48
        adds x0, xzr, x0

    Have Lea work for all i32 displacements and avoid involving the split
    pass. Previously, direct use of Insn::Lea directly from the user (as
    opposed to generated by the split pass for some memory operations)
    wasn't split, so being able to handle the whole range in arm64_emit()
    was implicitly required. Also, not going through split reduces register
    pressure.

commit 214d587a7761def8f422c217f60d89ce9680a553
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-31 08:57:55 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-01 02:45:20 +0900

    ZJIT: Only build the assembler for `target_arch`

    Fixes test error from running the ARM assembler on x86, but then trying
    to disassemble it as x86.

commit dd352461da4437b9733179e1bebde492a7a6b602
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-25 02:01:04 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-08-01 02:45:20 +0900

    ZJIT: A64: Add add_extended() which can add a register to sp

commit 865a6191d06902cebbebc41774faa947aeaea06f
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-25 03:14:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-01 02:38:36 +0900

    [ruby/openssl] pkcs7: clean up tests

    This includes:

     - Update test keys to the generic rsa-{1,2,3}.pem.
     - Add omissions for enveloped-data tests so that the rest can be
       tested in the FIPS mode.
     - Add tests for PKCS7#error_string and #data.
     - Check more error paths.
     - Various style fixes.

    https://github.com/ruby/openssl/commit/58f0022de3

commit 69ff8f736b0ad1f6ad70fa3ce288bafb364b021c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-08-01 01:57:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-08-01 02:38:35 +0900

    [ruby/openssl] pkcs7: only set error_string in the error path

    Set the error_string attribute to nil if PKCS7_verify() succeeds, since
    the error queue should be empty in that case.

    With AWS-LC, OpenSSL::PKCS#verify currently sets error_string to
    "invalid library (0)" when the verification succeeds, whereas with
    OpenSSL and LibreSSL, it becomes nil. ERR_reason_error_string() appears
    to behave differently when an invalid error code is passed.

    The branch to raise OpenSSL::PKCS7::PKCS7Error is removed because it
    does not appear to be reachable.

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

commit 771804248e8a7b0e65bbc5b85fb604622a285174
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-31 22:16:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-01 01:46:51 +0900

    Make ARGF not pin references during marking

    ARGF supports compaction, but it pins all of its references, which means
    that none of it can move. This commit changes it to actually support
    compaction.

commit b3598cf2a355497693bb66097edc156af3152e9b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-31 16:45:09 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-08-01 00:15:27 +0900

    Win: Strip CRs from `cpp` and `nm` output

    The combination of mingw tools and cygin/msys2 ruby leaves CRs.

commit 6c24904a690eb7c4e20c3fa8c3751acc03454100
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-28 22:36:19 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-08-01 00:09:03 +0900

    Make static symbol ID atomic

    We don't need the VM lock if we make static symbol IDs atomic.

commit 68a03167a5d2be2b73196d6437a01fe5f069dff1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-31 19:44:36 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-31 23:07:08 +0900

    Suppress maybe-uninitialized warnings

commit 05353ab4b7ac12eb1dc289cbd619b51e37ea402d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-31 03:31:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 22:14:22 +0900

    Make cross_ractor_require write barrier protected

commit 6f7a4f9c9630c538f1921d59821265fe2564121b
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-31 03:33:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 22:14:11 +0900

    [DOC] Tweaks for String#getbyte

commit d7bc1378d25d2ec3fc940e977865c024350d278b
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-31 03:13:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 22:13:57 +0900

    [DOC] Tweaks for String#force_encoding

commit 6d466a55bdee4b85e31d63bcd0113a0e645e5fad
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-31 03:00:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 22:13:36 +0900

    [DOC] Tweaks for String#eql?

commit ff6a8e95b73f84fafbe4b6cfa4cd73607fb17362
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-31 02:38:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 22:13:20 +0900

    [DOc] Tweaks for String#end_with?

commit e2bd36388f713e515266381e99f9a54e03b2f32e
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-31 22:13:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-31 22:13:01 +0900

    [DOC] Tweak for String#encode

commit 0d3d296b85bb3b2cc936694ead3de8a00f0d4d0a
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-31 18:45:53 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-07-31 18:45:53 +0900

    Reapply "[ruby/openssl] x509: disallow ossl_x509{,attr,crl,ext,revoked,name}*_new(NULL)"

    This reverts commit ec01cd9bbbaf3e6f324e0a6769b8383857d2bc07.

    This should no longer break the tests, now that the following changes
    have been applied:

     - RubyGems change: 32977f3869ba1c44950f484ddbf3a12889c0b20b
     - ruby/openssl change: e8261963c79ba61453f7f0dae281c33a1287b351

commit e8261963c79ba61453f7f0dae281c33a1287b351
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-27 23:04:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-31 18:45:35 +0900

    [ruby/openssl] x509store: fix StoreContext#current_cert

    Commit https://github.com/ruby/openssl/commit/ef277083ba76 overlooked a caller of ossl_x509_new() with NULL
    argument. OpenSSL::X509::StoreContext#current_cert may not have a
    certificate to return if StoreContext#verify has not been called.

    https://github.com/ruby/openssl/commit/4149b43890

commit 18f500e3475596c382b86f27a1461c8bf509ce1b
  Author:     Hiroya Fujinami <make.just.on@gmail.com>
  AuthorDate: 2025-07-31 13:08:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-31 13:08:54 +0900

    Fix indents in Onigmo files to use spaces instead of tabs (#14047) [no ci]

commit 064e74087c110a236b3404db914bdcc2c4cc95ab
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-31 12:23:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-31 12:23:43 +0900

    Also added arch variable to download-cache keys

commit 92ca64ab803d10da93ce9fe350c9d926e7ade4b2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-31 11:31:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-31 11:31:30 +0900

    Added prefix for key of GH cache since `download-cache` is created four times with the same name.

commit 47b891657644b548c5220ccde3d9b2aa68c4c631
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-31 10:36:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-31 10:36:23 +0900

    Save vcpkg cache with master and stable branches

commit 7cece235ab9d3834b314f4395d45b8c97399470c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-30 22:57:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-31 02:57:32 +0900

    Don't check the symbol's fstr at shutdown

    During Ruby's shutdown, we no longer need to check the fstr of the symbol
    because we don't use the fstr anymore for freeing the symbol. This can also
    fix the following ASAN error:

    ==2721247==ERROR: AddressSanitizer: use-after-poison on address 0x75fa90a627b8 at pc 0x64a7b06fb4bc bp 0x7ffdf95ba9b0 sp 0x7ffdf95ba9a8
    READ of size 8 at 0x75fa90a627b8 thread T0
        #0 0x64a7b06fb4bb in RB_BUILTIN_TYPE include/ruby/internal/value_type.h:191:30
        #1 0x64a7b06fb4bb in rb_gc_shutdown_call_finalizer_p gc.c:357:18
        #2 0x64a7b06fb4bb in rb_gc_impl_shutdown_call_finalizer gc/default/default.c:3045:21
        #3 0x64a7b06fb4bb in rb_objspace_call_finalizer gc.c:1739:5
        #4 0x64a7b06ca1b2 in rb_ec_finalize eval.c:165:5
        #5 0x64a7b06ca1b2 in rb_ec_cleanup eval.c:256:5
        #6 0x64a7b06c98a3 in ruby_cleanup eval.c:179:12

commit 75f25e5c4944a34a543285354b8d7953cb1b047d
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 01:46:30 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Don't create owned Cow/String when printing

commit 1b700c56d8556eaba0b6b9a637a0df8d91d603a2
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 01:29:59 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Don't make unnecessary Cow

commit 8c73b103cd268ee081d7c688c48c7073acc80eea
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 01:27:57 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Don't write to String

commit 0f7ee8e7a4619f6ebbb9858c53c7414e0001e905
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 01:16:51 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Get rid of CallInfo

commit 096d48d7db1b1099dda4ccb05be401c97368d64b
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 00:58:31 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Deref struct in find()

commit 7b10dbd55f4b00fc4268e031a790306c12485b99
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 00:54:30 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Remove catch-all case to make it clearer what's unimplemented

commit 9a3055479640c8b421621c34946288a3c8c49c87
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-31 00:49:51 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-31 02:36:15 +0900

    ZJIT: Remove unused ArraySet instruction

commit 0aac763bf01ee3a85550d5a7651edc297b48f474
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-30 04:17:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-31 02:18:28 +0900

    Convert cross_ractor_requires to DECL_MARKING

commit 2cd10de33097d44f85a42bcde0f8bf17c90cd53a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-31 02:11:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-31 02:11:10 +0900

    ZJIT: Prepare for sharing JIT hooks with ZJIT (#14044)

commit 4263c49d1ce61a4e8d1a84cc144d4185ccf935f9
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-31 01:33:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-31 01:33:25 +0900

    YJIT: Remove a dead test for getinlinecaches (#14033)

    The test was added in #5221 4 years ago but:

    1. The insn it targets was removed in 2022 in #6187
    2. The YJIT API `blocks_for` seems to be dropped in 2022 when it switched
       to use Rust in #5826

    So this test has not been run in more than 3 years and can't be run
    anymore. I think we can remove it.

commit 74887a2c121bef639b7aae8d81d1e758994b5062
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-30 05:50:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-30 22:26:19 +0900

    [ruby/mmtk] Skip weak references that are special consts

    If a reference marked weak becomes a special const, it will crash because
    it is not a GC handled object. We should skip special consts here.

    https://github.com/ruby/mmtk/commit/870a79426b

commit 66bcb69054c7dc74462b141d915db02f5bc77128
  Author:     Hiroya Fujinami <make.just.on@gmail.com>
  AuthorDate: 2025-07-30 20:56:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-30 20:56:13 +0900

    Port Oniguruma patches to prevent integer overflow (#14027)

    * Port an Oniguruma patch: Integer overflow in forward_search_range()

    https://github.com/kkos/oniguruma/commit/db64ef3189f54917a5008a02bdb000adc514a90a

    Co-Authored-By: K.Kosako <kkos@users.noreply.github.com>

    * Port an Oniguruma patch: Integer overflow in backward_search_range() and onig_search_gpos()

    https://github.com/kkos/oniguruma/commit/bfc36d3d8139b8be4d3df630d625c58687b0c7d4

    Co-Authored-By: K.Kosako <kkos@users.noreply.github.com>

    * Port an Oniguruma patch: Integer overflow in onig_search_gpos()

    https://github.com/kkos/oniguruma/commit/778a43dd56925ed58bbe26e3a7bb8202d72c3f3f

    It differs from the Oniguruma patch in that it dosen't use `onigenc_get_prev_char_head()`
    because this function's signature has been changed by Oniguruma and the change is not ported
    in Onigmo for now. This patch respects the current Onigmo implementation.

    Co-Authored-By: K.Kosako <kkos@users.noreply.github.com>

    * Add castings to prevent warnings

    * Correct castings to use OnigDistance

    ---------

    Co-authored-by: K.Kosako <kkos@users.noreply.github.com>

commit cbe5241c770a52b2f0abaa5935623ce24d00c531
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-30 17:36:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-30 17:40:34 +0900

    [DOC] Mention that Hash#replace also replaces defaults

commit e2fbd01714d5f98a7707a47bad6b4759aa132032
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 19:14:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:32 +0900

    [rubygems/rubygems] Remove unnecessary endless loop detection

    Fixes a TODO now that no reports have been reported in a while.

    https://github.com/rubygems/rubygems/commit/f10dc84e7b

commit 862b30287ad5d03e8941c3c499ceb5f48d67d157
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 18:51:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:30 +0900

    [rubygems/rubygems] Bump vendored thor to 1.4.0

    https://github.com/rubygems/rubygems/commit/8078a747b3

commit 124cd77470177cb3c92f780dafd93df4b9c24f5f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 19:00:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:28 +0900

    [rubygems/rubygems] Keep fixture Gemfiles in sync when bumping version

    https://github.com/rubygems/rubygems/commit/781443cb0f

commit e42f1aaa5aa77b51f6c590a23be59cd61776ae2d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 22:24:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:26 +0900

    [rubygems/rubygems] Fix truffleruby failing to install sorbet-static when there's no lockfile

    The generic Ruby platform was getting unconditionally added in
    truffleruby, preventing resolution in situations where there's no
    generic ruby version (sorbet-static). Instead, the generic platform
    should be considered per dependency, not globally.

    https://github.com/rubygems/rubygems/commit/a96afc5351

commit 15e9dc19fba666d38bf48d05704b84e5810a170d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 19:08:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:24 +0900

    [rubygems/rubygems] Remove JRuby workaround

    Original issue was fixed in JRuby 9.3.0.0, which seems old enough for us
    to remove the workaround.

    https://github.com/rubygems/rubygems/commit/d285148d39

commit a0b501effe4db00fe83772519bd7a33849da5395
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 18:44:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-30 11:19:23 +0900

    [rubygems/rubygems] Remove out of date TODO

    After digging into git history a bit, I figure this was about unifying
    `bundle cache` and `bundle package`, which already happened a while ago.
    So remove this TODO since it's now misleading.

    https://github.com/rubygems/rubygems/commit/5a0b06b84d

commit 1a4c0a99138186a0b53174639e9819f33621092f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-30 06:05:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-30 06:45:11 +0900

    [ruby/mmtk] Fix warnings from cargo fmt

    https://github.com/ruby/mmtk/commit/84975a8840

commit f608095b84ed31af87f1e2529f89b8b0517e281a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-30 06:03:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-30 06:45:10 +0900

    [ruby/mmtk] Fix clippy warnings

    https://github.com/ruby/mmtk/commit/45f991578e

commit ade45586028c97fc07057d1399a102a91f6c8140
  Author:     Max Bernstein <rubybugs@bernsteinbear.com>
  AuthorDate: 2025-07-30 05:36:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-30 05:36:25 +0900

    ZJIT: Catch more failed recursive compilations (#14042)

    Untangle the logic a bit and specifically:

    * catch `gen_entry` failures
    * don't set `start_ptr` until all recursive calls succeed

    Co-authored-by: Alan Wu <alanwu@ruby-lang.org>

commit 039f4139f89347cacbca106a6034e4ea8e04fbc2
  Author:     Max Bernstein <tekknolagi@gmail.com>
  AuthorDate: 2025-07-30 04:43:14 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-30 04:43:14 +0900

    ZJIT: Create delta debugging script to narrow JIT failures (#14041)

    Add support for `--zjit-allowed-iseqs=SomeFile` and
    `--zjit-log-compiled-iseqs=SomeFile` so we can restrict and inspect
    which ISEQs get compiled.

    Then add `jit_bisect.rb` which we can run to try and narrow a failing
    script. For example:

        plum% ../tool/zjit_bisect.rb ../build-dev/miniruby "test.rb"
        I, [2025-07-29T12:41:18.657177 #96899]  INFO -- : Starting with JIT list of 4 items.
        I, [2025-07-29T12:41:18.657229 #96899]  INFO -- : Verifying items
        I, [2025-07-29T12:41:18.726213 #96899]  INFO -- : step fixed[0] and items[4]
        I, [2025-07-29T12:41:18.726246 #96899]  INFO -- : 4 candidates
        I, [2025-07-29T12:41:18.797212 #96899]  INFO -- : 2 candidates
        Reduced JIT list:
        bar@test.rb:8
        plum%

    We start with 4 compiled functions and shrink to just one.

commit b07e214bf1a6c55fe9b2409cc13160ca60af874f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-30 03:54:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-30 03:54:17 +0900

    [DOC] Remove point about ASAN not working on released Ruby

    ASAN works on Ruby 3.4 and later, so we can remove the point about using
    master branch for ASAN.

commit 2eab962c538424863e34dc20fa13e25b058dc6b5
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-17 20:29:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-30 02:18:41 +0900

    [ruby/prism] Allow command calls in endless method bodies within assignments

    Previously, endless method definitions in assignment contexts like
    `x = def f = p 1` would fail to parse because command calls (method
    calls without parentheses) were only accepted when the surrounding
    binding power was less than `PM_BINDING_POWER_COMPOSITION`.

    This fix specifically checks for assignment context and allows command
    calls in those cases while maintaining the existing behavior for other
    contexts. This ensures that:

    - `x = def f = p 1` parses correctly (previously failed)
    - `private def f = puts "Hello"` still produces the expected error

    https://github.com/ruby/prism/commit/722af59ba3

commit 026079925c2ce7ff660d5e1ba8e2e0d7b0cc6b02
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-07-22 20:16:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-30 02:17:28 +0900

    [ruby/prism] Do not use `0` to indicate the latest ruby version to parse

    This makes it hard to do version checks against this value. The current version checks work because there are so few possible values at the moment.

    As an example, PR 3337 introduces new syntax for ruby 3.5 and uses `PM_OPTIONS_VERSION_LATEST` as its version guard. Because what is considered the latest changes every year, it must later be changed to `parser->version == parser->version == PM_OPTIONS_VERSION_CRUBY_3_5 || parser->version == PM_OPTIONS_VERSION_LATEST`, with one extra version each year.

    With this change, the PR can instead write `parser->version >= PM_OPTIONS_VERSION_CRUBY_3_5` which is self-explanatory
    and works for future versions.

    https://github.com/ruby/prism/commit/8318a113ca

commit b22eb0e468a88d2da77cecf2355623fe7eff1ba6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-30 02:00:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-30 02:00:15 +0900

    ZJIT: Add --zjit-stats (#14034)

commit a66e4f21542aae99bde7c50e7af4fb0283a81070
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-07-30 01:34:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-30 01:34:13 +0900

    Improve performance of bignum[beg, len] (#14007)

    Implement rb_big_aref2.
    Taking a small slice from large bignum was slow in rb_int_aref2.

commit e0818ac659ee91f30531c96ece3923abb0de1e73
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-29 20:22:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-29 22:11:49 +0900

    Fix stripping features from the description

commit a6914c089dfbc50fa5f13e80eb8802d68c525b00
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-29 19:35:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-29 22:11:49 +0900

    Fix the current parser detection

    Since `RUBY_DESCRIPTION` contains the branch name, `/prism/i` can
    match unexpectedly.  Extract the feature lists between revision
    and platform infos.

commit 7ee127d2d19927432ba0ea421294dbba304e15ff
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-29 18:56:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-29 20:05:12 +0900

    Get rid of imemo_ast

    It has been marked as obsolete for a while and I see no reason
    to keep it.

commit d4020dd5faf28486123853e7f00c36139fc07793
  Author:     viralpraxis <iaroslav2k@gmail.com>
  AuthorDate: 2025-07-16 06:59:22 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2025-07-29 18:42:18 +0900

    [Bug #21513] Raise on converting endless range to set

    ref: https://bugs.ruby-lang.org/issues/21513

    Before this patch, trying to convert endless range (e.g. `(1..)`) to set
    (using `to_set`) would hang

commit d9a14c299f884ceba2b06ea1f722cdc494c05d42
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-29 13:25:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-29 13:25:09 +0900

    Fix ext/-test-/namespace/yay{1,2} for mswin

    Visual C:
    ```
    compiling ../../../../../src/ext/-test-/namespace/yay1/yay1.c
    yay1.c
    ../../../../../src/ext/-test-/namespace/yay1/yay1.c(4): warning C4273: 'yay_value': inconsistent dll linkage
    C:\a\ruby\ruby\src\ext\-test-\namespace\yay1\yay1.h(4): note: see previous definition of 'yay_value'
    linking shared-object -test-/namespace/yay1.so
       Creating library yay1-arm64-mswin64_140.lib and object yay1-arm64-mswin64_140.exp
    yay1-arm64-mswin64_140.exp : warning LNK4070: /OUT:yay1.dll directive in .EXP differs from output filename '..\..\..\..\.ext\arm64-mswin64_140\-test-\namespace\yay1.so'; ignoring directive
    compiling ../../../../../src/ext/-test-/namespace/yay2/yay2.c
    yay2.c
    ../../../../../src/ext/-test-/namespace/yay2/yay2.c(4): warning C4273: 'yay_value': inconsistent dll linkage
    C:\a\ruby\ruby\src\ext\-test-\namespace\yay2\yay2.h(4): note: see previous definition of 'yay_value'
    linking shared-object -test-/namespace/yay2.so
       Creating library yay2-arm64-mswin64_140.lib and object yay2-arm64-mswin64_140.exp
    yay2-arm64-mswin64_140.exp : warning LNK4070: /OUT:yay2.dll directive in .EXP differs from output filename '..\..\..\..\.ext\arm64-mswin64_140\-test-\namespace\yay2.so'; ignoring directive
    ```

    From MinGW gcc:
    ```
    ../../../../../src/ext/-test-/namespace/yay1/yay1.c:4:1: warning: 'yay_value' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
        4 | yay_value(void)
          | ^~~~~~~~~
    ../../../../../src/ext/-test-/namespace/yay2/yay2.c:4:1: warning: 'yay_value' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
        4 | yay_value(void)
          | ^~~~~~~~~
    ```

commit 8e426a3aee9a847ea7903f10399d62c3f15618d6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-28 16:02:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-29 10:41:09 +0900

    [ruby/json] Release 2.13.2

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

commit f1acf47ca2061ec04ffca4be0b1e3c9a188403fe
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-29 07:17:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-29 07:17:45 +0900

    YJIT: Call YJIT hooks before enabling YJIT (#14032)

commit a0d0b84bade7c8b07d8be601136a70bb8b9ae866
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-29 06:48:41 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-29 06:48:41 +0900

    ZJIT: Support invalidating constant patch points (#13998)

commit 23000e712346880804b5dd61713293531637752c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-29 04:06:54 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-29 06:18:35 +0900

    Remove unnecessary internal/gc.h include in hash.c

    hash.c compiles just fine on HASH_DEBUG without including internal/gc.h.

commit e15f1a71ada7f02a7cfb43b5687423ff6c0fb779
  Author:     Jason Garber <jason@sixtwothree.org>
  AuthorDate: 2025-07-28 23:54:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-29 05:14:38 +0900

    [ruby/tsort] Add `changelog_uri` to gemspec metadata

    Adds a link to the GitHub Releases page for this gem consistent with other gems in the Ruby organization. Existing examples include:

    - [json](https://github.com/ruby/json/blob/master/json.gemspec)
    - [ostruct](https://github.com/ruby/ostruct/blob/master/ostruct.gemspec)

    https://github.com/ruby/tsort/commit/8086bb33bc

commit 3f22434e1afc69dc9f4d6dbff6025c7f41b91380
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-29 04:36:20 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-29 04:36:20 +0900

    ZJIT: Fix land race

commit b2b2aff61d37495801159c2c90e33df0f64db3f6
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-28 23:20:55 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-29 04:35:21 +0900

    ZJIT: Mark Symbol, Float, NilClass, TrueClass, FalseClass as final

    They can be subclassed but new instances cannot be created.

commit f6dccdb1ff271d391fa51935370e07747c5722a3
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-28 22:54:25 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-29 04:35:21 +0900

    ZJIT: Remove Integer subclasses from lattice

    While Integer can technically be subclassed, instances of subclasses
    cannot be created. Remove it from the type lattice.

commit 043489abc2fe9a1953e19588101e469cbc505f38
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-29 04:32:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-29 04:32:32 +0900

    ZJIT: Inline guard type checks for some built-in types (#14017)

    This implements similar fast-path guard type checks as YJIT.

commit ff428b4dd0c5f0a07abbd8f8520d8d1e4bff8d66
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-26 11:09:51 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-29 04:30:50 +0900

    ZJIT: Keep a frame pointer and use it for memory params

    Previously, ZJIT miscompiled the following because of native SP
    interference.

        def a(n1,n2,n3,n4,n5,n6,n7,n8) = [n8]
        a(0,0,0,0,0,0,0, :ok)

    Commented problematic disassembly:

        ; call rb_ary_new_capa
        mov x0, #1
        mov x16, #0x1278
        movk x16, #0x4bc, lsl #16
        movk x16, #1, lsl #32
        blr x16
        ; call rb_ary_push
        mov x1, x0
        str x1, [sp, #-0x10]! ; c_push() from alloc_regs()
        mov x0, x1            ; arg0, the array
        ldur x1, [sp]         ; meant to be arg1=n8, but sp just moved!
        mov x16, #0x3968
        movk x16, #0x4bc, lsl #16
        movk x16, #1, lsl #32
        blr x16

    Since the frame pointer stays constant in the body of the function,
    static offsets based on it don't run the risk of being invalidated by SP
    movements.

    Pass the registers to preserve through Insn::FrameSetup. This allows ARM
    to use STP and waste no gaps between EC, SP, and CFP.

    x86 now preserves and restores RBP since we use it as the frame pointer.
    Since all arches now have a frame pointer, remove offset based SP
    movement in the epilogue and restore registers using the frame pointer.

commit 5ca71364ff6cf4a9c445cb2701b1eb4770e79579
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-23 04:10:45 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-29 01:44:47 +0900

    Avoid GC while operands in inconsistent state

    compile_data_calloc2 may run GC (though because it allocates from an
    arena this is rare in practice). When this happened when resizing
    operands there was a risk of seeing the insn in an inconsistent state.

    To solve this we need to make any allocations before we start modifying
    the instrucitons. This refactors the code to use a new
    insn_replace_with_operands() function that allocates the new operands
    array before modifying the instruction object.

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

commit 7913aff2b34b64cf2bc5f0a638bb9ac5b9abdc53
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-25 05:06:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-28 22:34:25 +0900

    [DOC] Fix return value of rb_str_hash_cmp

    rb_str_hash_cmp returns 0 if the two strings are identical and 1 if they
    are different.

commit d0bb17e0791573d82e27b0dc18b8212475faf0d1
  Author:     Olle Jonsson <olle.jonsson@gmail.com>
  AuthorDate: 2025-07-28 21:19:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-28 22:18:05 +0900

    [ruby/shellwords] shellwords.gemspec: Avoid configuring exe/ directory

    This gem does not ship any executables.

    https://github.com/ruby/shellwords/commit/7da06b91ff

commit d488935910d8902e96ea5c49537506f0b2aba492
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-28 18:18:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-28 19:22:42 +0900

    Get rid of ID_JUNK

    It has been aliased as ID_INTERNAL for a long time and that alias
    is much more descriptive.

commit 1a68f1b199e48dce755015eff2dfa8828f38714d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-28 17:54:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-28 17:54:09 +0900

    Extract checks for the block in lazy enumerator

commit 32977f3869ba1c44950f484ddbf3a12889c0b20b
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-28 00:50:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 17:02:57 +0900

    [rubygems/rubygems] Avoid openssl bug in test_verify_certificate_extra_message

    OpenSSL::X509::StoreContext#current_cert returns an empty and invalid
    OpenSSL::X509::Certificate instance if it is called before starting a
    certificate verification.
    https://redirect.github.com/ruby/openssl/pull/919 will change it to
    return nil instead in such a case.

    Adjust test_verify_certificate_extra_message to actually complete
    StoreContext#verify so that it will not rely on this behavior.

    https://github.com/rubygems/rubygems/commit/823799088d

commit 2256b0ffa42e4bacb9dc678ab3e048175a418b06
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-28 10:04:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 10:04:29 +0900

    Ignore *.rbbin

    Followed up with fb6f2550280c62fa3ac74f9abad4398529d5f0e2

commit 95fdaa5c3b0e722c1052b6141d26212e290491b3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 04:50:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 10:01:58 +0900

    (Temporarily?) delay path changes and global cache changes

    There are several issues with these which I'm not sure I'll have time to
    address properly. I prefer to keep our default branch in a releasable
    state just in case. Once they are fixed, this can be reverted.

commit 48a79cd4921e6f38facbea5fbb4b7ab6905a524d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-27 23:19:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 09:39:12 +0900

    [ruby/json] Improve deprecation warning location detection

    https://github.com/ruby/json/commit/132049bde2

commit d0020d58f468b83e69b0494ffa83990db8f18d45
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-27 21:31:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 09:39:12 +0900

    [ruby/json] Fix duplicated key warning location

    Followup: https://github.com/ruby/json/pull/818

    Now the warning should point at the `JSON.parse` caller, and not
    inside the json gem itself.

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

commit b4ef5da70b26698b9da316daa36a5de3374b5270
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-27 20:13:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 09:39:11 +0900

    [ruby/json] Improve duplicate key warning and errors to include the key name

    Followup: https://github.com/ruby/json/pull/818

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

commit 0dc86fd8435c742dbd32dafd7483904a06658764
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 04:49:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 09:39:03 +0900

    [rubygems/rubygems] Remove unnecessary branching

    We now run specs against a single version, so I prefer to keep a single
    branch. Once we bump the major version, this will need very little
    updates, and that seems fine.

    https://github.com/rubygems/rubygems/commit/3866d25a00

commit 2690d210671333629ec7d980e194559141950922
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-25 04:32:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-28 09:39:02 +0900

    [rubygems/rubygems] The `install_gemfile` helper has not set "retry" for a long time

    https://github.com/rubygems/rubygems/commit/41dab5954f

commit f8e002a6b7228002cc4ccfd1b708a6b4bb2881ba
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-28 00:17:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-28 00:18:50 +0900

    [ruby/English] Exclude unused files from gem

    https://github.com/ruby/English/commit/6bea25038b

commit ec01cd9bbbaf3e6f324e0a6769b8383857d2bc07
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-27 22:56:10 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-07-27 22:56:10 +0900

    Revert "[ruby/openssl] x509: disallow ossl_x509{,attr,crl,ext,revoked,name}*_new(NULL)"

    This reverts commit 4e8bbb07dd4936b97a6b39d54a6977a107518e1f.

    It broke RubyGems tests:
    https://rubyci.s3.amazonaws.com/debian/ruby-master/log/20250727T123003Z.fail.html.gz

    OpenSSL::X509::StoreContext#current_cert incorrectly calls
    ossl_x509_new() with NULL to create a bogus Certificate object, and a
    test case in RubyGems relies on it. This will be reapplied when both
    are fixed.

commit 9eda3cf4230cc8e31aaa6a6baea164d5bd515323
  Author:     Erim Icel <erimicel@gmail.com>
  AuthorDate: 2025-07-27 22:03:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-27 22:03:54 +0900

    Add test for `String#byteslice` with multibyte characters

commit 1c18ab81dbf4a8006222d7f10752dde362ba05a6
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-21 23:52:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:25 +0900

    [ruby/openssl] pkey: rename ossl_pkey_new() to ossl_pkey_wrap()

    Among functions named ossl_*_new(), ossl_pkey_new() is now the only one
    that takes ownership of the passed OpenSSL object instead of making a
    copy or incrementing its reference counter. Rename it to make this
    behavior easier to understand.

    https://github.com/ruby/openssl/commit/54c1c26eb5

commit f85dafebe8fc95817b224a602b3de840c744ac8b
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-06 01:29:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:25 +0900

    [ruby/openssl] ocsp: refactor ossl_ocspcertid_new()

    Likewise, let it take a const pointer and not the ownership of the
    OpenSSL object.

    This fixes potential memory leak in OpenSSL::OCSP::BasicResponse#status.

    https://github.com/ruby/openssl/commit/7e0288ebbd

commit 5a04353417f6ded7ea73ade4e979101c1a314f82
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-22 00:02:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:24 +0900

    [ruby/openssl] ocsp: refactor ossl_ocspsres_new()

    Similar to most of the other ossl_*_new() functions, let it take a const
    pointer and make a copy of the object.

    This also fixes a potential memory leak when the wrapper object
    allocation fails.

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

commit e80c3f3ba933e9dae6c44350ddc99cab485a9a59
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-06 03:02:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:24 +0900

    [ruby/openssl] pkcs7: disallow ossl_pkcs7{si,ri}_new(NULL)

    These functions are not actually called with NULL.

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

commit 4e8bbb07dd4936b97a6b39d54a6977a107518e1f
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-21 23:36:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:24 +0900

    [ruby/openssl] x509: disallow ossl_x509{,attr,crl,ext,revoked,name}*_new(NULL)

    These functions are not actually called with NULL. It also doesn't make
    sense to do so, so let's simplify the definitions.

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

commit ba0b3ad4f338a43f1d59e89d9c1c6d785644b682
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-21 17:22:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:17:23 +0900

    [ruby/openssl] bn: avoid ossl_bn_new(NULL)

    Currently, calling ossl_bn_new() with a NULL argument allocates a new
    OpenSSL::BN instance representing 0. This behavior is confusing. Raise
    an exception if this is attempted, instead.

    https://github.com/ruby/openssl/commit/6fa793d997

commit 64e8368f5b83a570086793047fa01bc5862b5b63
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-06 02:25:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:16:33 +0900

    [ruby/openssl] lib/openssl.rb: require files in alphabetical order

    This list was originally in alphabetical order. Sort it again.

    This change should be safe since the .rb sources should only depend on
    the extension and not each other.

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

commit 6e0181db3ac98e8415c0b130c90ae1bbc5089ee8
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-07-22 05:04:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-27 21:15:02 +0900

    [ruby/openssl] ssl: add post-quantum cryptography (PQC) tests

    The key files were created by the following commands.

    ```
    $ ${HOME}/.local/openssl-3.6.0-dev-fips-debug-8253b58d60/bin/openssl genpkey \
      -algorithm mldsa65 \
      -out mldsa65-1.pem
    $ ${HOME}/.local/openssl-3.6.0-dev-fips-debug-8253b58d60/bin/openssl genpkey \
      -algorithm mldsa65 \
      -out mldsa65-2.pem
    ```

    PQC algorithms, ML-KEM (FIPS 203) and ML-DSA (FIPS 204) used in the PQC tests
    are supported on OpenSSL 3.5 or later.
    https://openssl-library.org/post/2025-04-08-openssl-35-final-release/

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

commit f5aee2480a4fb2aafa4e6e50eab6d9aef1976bc5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-27 14:58:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-27 15:08:19 +0900

    [ruby/json] Functions defined in headers should be `static inline`

    If `load_uint8x16_4` has an external linkage, it is defined in
    both `generator` and `parser` extension libraries.  This duplicate
    symbol causes a linker error when `--with-static-linked-ext` is
    given, on some platforms.

    https://github.com/ruby/json/commit/020693b17a

commit fb6f2550280c62fa3ac74f9abad4398529d5f0e2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-25 18:57:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-26 20:19:55 +0900

    Rename builtin_binary.inc as .rbbin

    Distinguish between platform-dependent ".rbbin" and platform-
    independent ".inc" files.

commit bd2d6845f1c48a572e202409367a4e756c4bb3c5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-25 05:50:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-25 22:51:24 +0900

    Remove VM lock in register_static_symid

commit 42f95456cc51f3b59605c66a65cff19dfe1b3e59
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-25 05:42:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-25 22:51:24 +0900

    Remove VM lock for sym_find

commit 2235fdb6f11a4d076bde32c9da43ee79d8943503
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-25 05:41:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-25 22:51:24 +0900

    Remove VM lock for rb_id_attrset

commit 9e105a503705b33294da649c1d36051b78008df6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-25 18:21:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 19:50:06 +0900

    update-deps

commit be7b1164e60815ef37aa1f5c32abb873807f16d7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-22 11:48:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 19:50:06 +0900

    Split autogenerated dependency to depend file from common.mk

commit 199861424e6eab7dc292b8d06d709b4c02c80347
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-25 09:37:00 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-25 17:06:48 +0900

    Flush out-of-date gems at extracting bundled gems

commit 93eed37e668390763cc156169a030fead423ba9c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-24 21:05:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:11:24 +0900

    [ruby/json] Release 2.13.1

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

commit 069a24c93caaa6f8eacdb02609356bee0adf3192
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-24 20:24:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:11:23 +0900

    [ruby/json] Don't assume `__builtin_cpu_supports` exists

    Fix: https://github.com/ruby/json/issues/827

    On very old compilers it might not exist, at that point
    might as well skip SIMD entirely.

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

commit b48904273afab1a7ce96828aff701c56f21eaa53
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-24 02:27:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:11:21 +0900

    [ruby/json] Fix missing write barrier on Generator State

    Found by wbcheck

       WBCHECK ERROR: Missed write barrier detected!
         Parent object: 0x7b7b8487c450 (wb_protected: true)
           rb_obj_info_dump: 0x00007b7b8487c450 JSON/Generator/State/JSON::Ext::Generator::State JSON/Generator/State
         Reference counts - snapshot: 1, writebarrier: 0, current: 6, missed: 5
         Missing reference to: 0x7b7b82f35a10
           rb_obj_info_dump: 0x00007b7b82f35a10 T_STRING/String  len: 1, capa: 15 "1"
         Missing reference to: 0x7b7b82f35e90
           rb_obj_info_dump: 0x00007b7b82f35e90 T_STRING/String  len: 1, capa: 15 "2"
         Missing reference to: 0x7b7b83629e50
           rb_obj_info_dump: 0x00007b7b83629e50 T_STRING/String  len: 1, capa: 15 "3"
         Missing reference to: 0x7b7b83b62190
           rb_obj_info_dump: 0x00007b7b83b62190 T_STRING/String  len: 1, capa: 15 "4"
         Missing reference to: 0x7b7b83629490
           rb_obj_info_dump: 0x00007b7b83629490 T_STRING/String  len: 1, capa: 15 "5"

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

commit da3c47bcfc47c647d265de66a4cbc61b35f4c00b
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-07-24 21:57:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:42 +0900

    [rubygems/rubygems] Document missing options from man pages:

    - The `bundle plugin uninstall --all` was missing.
    - The `bundle plugin install --local-git` was missing due to being
      deprecated. We decided to reintroduce the doc for more clarity.

    https://github.com/rubygems/rubygems/commit/4da252945c

commit 4dd708bf5d833c3999c786169abfcfc79cd4e676
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-07-23 23:10:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:41 +0900

    [rubygems/rubygems] Add a quality spec to ensure man pages are up to date:

    - Ref #8802
    - ### Problem

      Whenever a bundler command options is added, we want to make
      sure that the associated command man page is updated to reflect
      the new option (e.g. this mistake was made in #8624)

      ### Solution

      In #8802 we discussed a bit on the implementation which would rely
      on parsing ronn files and introduce some conventions on how options
      documented in man pages should be written.

      I figured I would try a simpler approach by just checking if the man
      page of a command list options using a simple regex.

      Pros:

      - Simpler as we don't have to parse ronn files.
      - No need to modify all existing man pages.

      Cons:

      - We can only verify one way (CLI options -> man pages).
        If a CLI option get removed, we won't be able to warn that
        the existing document man page option needs to be removed.

    https://github.com/rubygems/rubygems/commit/e10e60bd33

commit 80712140af4229eec4da4e68cf7aaf6a659f5a85
  Author:     Martin Emde <martinemde@users.noreply.github.com>
  AuthorDate: 2025-07-24 20:50:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:40 +0900

    [rubygems/rubygems] Fix spacing in bundle gem newgem.gemspec.tt

    The changelog line was generating indented more than it should.

    https://github.com/rubygems/rubygems/commit/da6109ef5b

commit 416fde11eb28fa01f9da738354facdd728d5ec68
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 18:54:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:39 +0900

    [rubygems/rubygems] Fix language quality spec no longer getting run properly

    https://github.com/rubygems/rubygems/commit/c65e34a904

commit bfd0c15ffa809959caa8615f3a5665603a76d219
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 18:52:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:39 +0900

    [rubygems/rubygems] Fix man tracked files glob for ruby-core

    The location has been consistent with upstream for a while so the
    previous glob was no longer matching any files.

    https://github.com/rubygems/rubygems/commit/dae40b7041

commit 2321091cfae11b81027021bb5de1ba807da7a42e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 04:29:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:38 +0900

    [rubygems/rubygems] Don't create an empty `tmp/2.1` directory when running spec:deps task

    https://github.com/rubygems/rubygems/commit/3189d3e49b

commit e67f595e8f3f76f20d7a6b9fd0498ff7b641391c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 03:09:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:37 +0900

    [rubygems/rubygems] Build bundler gem just once for specs

    When we need to reset system gems during specs, there's no need to
    rebuild bundler, we can copy over the original gem home.

    https://github.com/rubygems/rubygems/commit/7b4f80747b

commit 63c422377543a8d8ec8efc4aacb6c0f1a8533ff7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 00:41:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:36 +0900

    [rubygems/rubygems] Don't create an empty bundled_app when setting up deps

    Running everything in `bundled_app` by default causes the `bundled_app`
    helper to be used everytime, and that will create a scoped bundled_app
    folder if it does not exist. That causes `bin/rake spec:deps` to create
    an empty `tmp/2.1/bundled_app` folder which is a bit weird.

    This commit changes specs to not switch to a (possibly empty)
    bundled_app directory when not necessary (for example, when running
    `gem` commands in order to setup test dependencies).

    https://github.com/rubygems/rubygems/commit/4bf89c0705

commit bc5b594946bf116cc77f63a4a0bdc1ae2bd708c4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 02:18:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:35 +0900

    [rubygems/rubygems] Remove some unnecessary `artifice` arguments

    Since `sys_exec` does not actually set it.

    https://github.com/rubygems/rubygems/commit/abc0fd0599

commit ce0d71b3a75df3e26d0b3fed14019a3c2f87750e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 02:16:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:34 +0900

    [rubygems/rubygems] Simplify new gem spec that simulates "no git available"

    I don't know why it was written like that.

    https://github.com/rubygems/rubygems/commit/ee83fddd30

commit b78406a032b747408bb466716ef02c195a327b85
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 02:16:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:34 +0900

    [rubygems/rubygems] Fix some specs running the wrong rake

    https://github.com/rubygems/rubygems/commit/8d4eb154b1

commit e673bbf77b8861bb294586d7c690d97c5093d472
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-24 00:41:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-25 11:10:33 +0900

    [rubygems/rubygems] Remove unused parameter

    https://github.com/rubygems/rubygems/commit/043f73586b

commit 7f25b8f5fb95e547353c3cbf426bb39ec9150fe2
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-19 08:06:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-25 08:35:42 +0900

    Disable TSAN for rb_gc_mark_machine_context

    Previously this was listed as a suppression, but we actually want this
    permanently unsanitized. This should be faster and more reliable since
    TASN won't have to match against symbolicated backtraces.

commit 3ad2019259015080ab7fdadaa6f4ae818229bcd1
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-24 06:24:59 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-25 08:35:20 +0900

    Extract vm_locked_by_ractor_p

    This introduces a new method to encapsulate checking whether the current
    Ractor owns the vm->ractor.sync lock. This allows us to disable TSan on
    it since that operation should be safe, and still get validation of
    other uses.

commit 7465e169dae537937c1ed244e22aaa565b13a3eb
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-25 06:38:18 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-25 07:47:20 +0900

    ZJIT: Remove redundant test exclusions

commit 271e52d55399ffaf41c59b7b477ff68d8a7e3e3b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-25 04:48:40 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-25 06:01:27 +0900

    ZJIT: Re-enable some A64 assembler tests

    Tweak for Condition to build when `cfg!(target = "x86_64")`.

commit 7e2b6291b81320a5ad6458b9bbe66595e9b06d8b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-05 00:54:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-25 06:01:27 +0900

    ZJIT: DRY up underscore rexport anti-pattern

    Keeping the same name makes re-exporting more concise.

commit ed22e15acb83562825a6b4cd95a8ae15c0d3b6d2
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-24 05:40:50 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-25 04:57:28 +0900

    [DOC] Tweak for String#encode!

commit b2838bef693db39960ca5e326e61408b4721b7bb
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-07-24 23:39:39 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-07-25 01:07:32 +0900

    Add NODE_DEFINED tests for cases with parentheses to test_ast.rb

commit 5ef20b3a274e855b802edd03cd432464d2a49b35
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-07-19 17:22:46 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-25 00:37:44 +0900

    YJIT: Use raw memory write to update pointers in code

    Because we have set all code memory to writable before the reference
    updating phase, we can use raw memory writes directly.

commit fd492a45eb747f49d1f35c09332b654ada0280dc
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-24 21:59:44 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-07-24 23:30:23 +0900

    Add DEFINED NODE locations

    Add keyword_defined locations to struct RNode_DEFINED

commit f186f2cb70a2fe3c5a663a0a398b294347eee344
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-23 23:15:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 22:49:13 +0900

    Remove unused imemo_parser_strterm

commit 4c60e431e1fd8d196807c9d42cc0355cd339e1fc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-24 15:42:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-24 15:45:35 +0900

    Win32: Suppress an error message when baseruby is not found

commit b246fb604e9674922cde6353c657b61f61ccb743
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-24 12:56:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-24 12:56:08 +0900

    Use `<>` for a system header

commit 6dc37f9003bed2ea58792f859a6a2f6edea8bc32
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-24 10:14:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-24 12:47:16 +0900

    Update the latest versions of actions

commit 076e51e5ec5924554ab5c1eca483a52405d0fdc4
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-07-23 17:07:19 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-07-24 12:39:53 +0900

    math.c: cleanup unused `#include <errno.h>`

    `errno` is no longer used after 5073155a178a9f478950afef4f148e44fd14b5d6

commit 64f508ade8c8535b7d3ecdd217886aa52fddd43c
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-07-24 11:45:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-24 11:45:43 +0900

    Support `cause:` in `Thread#raise` and `Fiber#raise`. (#13967)

    * Add support for `cause:` argument to `Fiber#raise` and `Thread#raise`.

    The implementation behaviour is consistent with `Kernel#raise` and
    `Exception#initialize` methods, allowing the `cause:` argument to be
    passed to `Fiber#raise` and `Thread#raise`. This change ensures that
    the `cause:` argument is handled correctly, providing a more consistent
    and expected behavior when raising exceptions in fibers and threads.

    [Feature #21360]

    * Shared specs for Fiber/Thread/Kernel raise.

    ---------

    Co-authored-by: Samuel Williams <samuel.williams@shopify.com>

commit 2e0a782936608bee757c07b9578cfa6885009fa4
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-19 02:06:50 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-24 08:52:59 +0900

    ZJIT: Run zjit-check on CI for faster test_zjit.rb feedback

commit f27e8b11cbf10d70ba8bc2e5c99cab621ba76d79
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-19 00:58:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-24 08:52:59 +0900

    ZJIT: Add multiple exclude targets

commit 3504eba9b81ee5d7f2220a5540f57ef01ec7891f
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-19 01:16:12 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-24 08:52:59 +0900

    ZJIT: Start testing againt /test

commit 9256442615db227ab8ccd18b0ca65da980de7eaf
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-24 04:12:58 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-24 06:33:55 +0900

    Cleanup M_TBL workarounds and comments

    Previously we had an assertion that the method table was only set on
    young objects, and a comment stating that was how it needed to be used.
    I think that confused the complexity of the write barriers that may be
    needed here.

    * Setting an empty M_TBL never needs a write barrier
    * T_CLASS and T_MODULE should always fire a write barrier to newly added
      methods
    * T_ICLASS only needs a write barrier to methods when
      RCLASSEXT_ICLASS_IS_ORIGIN(x) && !RCLASSEXT_ICLASS_ORIGIN_SHARED_MTBL(x)

    We shouldn't assume that the object being young is sufficient, because
    we also need write barriers for incremental marking and it's unreliable.

commit d67eb07f7549508da09e6f3aa2dbe55ad0ba2da1
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-10 03:26:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-24 06:33:55 +0900

    Fix missing write barrier through M_TBL

    When creating a new origin in ensure_origin, we need to fire a write
    barrier after RCLASS_WRITE_ORIGIN. rb_class_set_super allocates, so GC
    could happen there, either incrementally marking or promoting the newly
    allocated class, and only after RCLASS_WRITE_ORIGIN will origin mark
    object in the M_TBL.

commit 54a578e72a9a13b88683fd4d12921da86c3e9cf2
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-24 06:05:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 06:09:33 +0900

    [DOC] Tweaks for String#encoding

commit 56572baa4cd39882b93fb4a432035017b170af8c
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-24 06:07:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-24 06:07:25 +0900

    [DOC] Tweaks for String#each_grapheme_cluster (#13981)

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

    [DOC] Tweaks for String#empty?

commit 78820e86c731656d1e36c091a36a5fa27cbb435a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-23 20:24:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 04:49:04 +0900

    Update doc for ObjectSpace.memsize_of

commit 7816a04d97d2c8d2c175d7446417d96c7ccabf1a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-23 09:26:19 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 04:48:35 +0900

    [DOC] Tweaks for String#each_line

commit 17eee25c66c3615ec2e6f62462e5a97f73192037
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-23 08:44:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 04:36:32 +0900

    [DOC] Tweaks for String#each_codepoint

commit cd9b74638cb503e93d0fb31e5d404e0631905576
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-23 08:27:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-24 04:35:28 +0900

    [DOC] Tweaks for String#each_char

commit 41149a96efa27ad297ea71119d56d7861066b5ee
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-23 11:54:54 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-24 02:29:03 +0900

    ZJIT: Fix clobbering register for `self` in gen_entry_params()

    Previously, for 8+ params we wound up clobbering the self param when
    putting the last param in memory in the JIT entry point:

        # ZJIT entry point: a@../test.rb:5
        <snip>
        ldur x0, [x19, #0x18]
        # set method params: 8
        ldur x1, [x21, #-0x58]
        ldur x2, [x21, #-0x50]
        ldur x3, [x21, #-0x48]
        ldur x4, [x21, #-0x40]
        ldur x5, [x21, #-0x38]
        ldur x11, [x21, #-0x30]
        ldur x12, [x21, #-0x28]
        ldur x0, [x21, #-0x20]
        stur x0, [sp, #-0x20]
        bl #0x11e17018c

    Doing the memcpys for parameters in memory first avoids this clobbering.

        # set method params: 8
        ldur x0, [x21, #-0x20]
        stur x0, [sp, #-0x20]
        ldur x12, [x21, #-0x28]
        ldur x11, [x21, #-0x30]
        ldur x5, [x21, #-0x38]
        ldur x4, [x21, #-0x40]
        ldur x3, [x21, #-0x48]
        ldur x2, [x21, #-0x50]
        ldur x1, [x21, #-0x58]
        ldur x0, [x19, #0x18]

commit 5e5cec1b86837653b2106af377561045f4bbecef
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-07-24 02:12:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-24 02:12:12 +0900

    Fix bigand_int edgecase returning false (#13987)

commit 93be578691b294255d7a074cbb4c59ac8094e24a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-23 00:43:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 23:07:11 +0900

    Remove global symbol locks for rb_intern

commit 33a849e385b98326f43b394c456d2bf2981fdf24
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-23 00:43:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 23:07:11 +0900

    Remove global symbol lock for rb_gc_free_dsymbol

commit 85221800ca1f5237c87fc151f5cb839c9a2a41c8
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-07-23 20:23:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-23 20:23:38 +0900

    Add comments to autogen script

commit 7e64a68252d03412f1ac6c8b70d7139c377941a3
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-23 16:46:01 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-07-23 16:46:01 +0900

    Prevent a warning: old-style function definition

    ipsocket.c:57:1: warning: old-style function definition [-Wold-style-definition]
       57 | current_clocktime()
          | ^~~~~~~~~~~~~~~~~

commit fbaad485db4259497aeac93a296b25432c198fdd
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-07-23 11:18:11 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-23 11:18:11 +0900

    Launchable: Remove `launchable subset` command (#13969)

    I've enabled the [Predictive Test Selection](https://www.launchableinc.com/docs/features/predictive-test-selection/) feature, which let machine-learning model selects the appropriate tests to reduce CI execution time in https://github.com/ruby/ruby/pull/12617.

    However, I noticed that there are some problems for enabling PTS in Ruby CI after several experiments. Until fixing the problem, I'll disable this feature by removing `launchable subset` command.

commit 61b5d3cf89d9c4b9390eee1e3b3b458c4ad02c31
  Author:     André Luiz Tiago Soares <andre.soares@altxtech.net>
  AuthorDate: 2025-07-23 10:10:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-23 10:10:56 +0900

    [DOC] Fix 'hexadecimal' spelling on encodings docs

    Fix typo

commit 33363030e1846c9f2cdbdcc9b77c11efbda3d522
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-23 04:49:36 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-23 07:04:28 +0900

    ZJIT: Use rb_vm_env_write() for `hir::Insn::SetLocal`

    We weren't firing write barriers before when writing to imemo/env
    objects. Wbcheck caught this with test/ruby/test_refinement.rb:

        ruby -v: ruby 3.5.0dev (2025-07-22T17:05:58Z wbcheck 2569a80954) +ZJIT dev +PRISM +GC[wbcheck] [x86_64-linux]
        WBCHECK ERROR: Missed write barrier detected!
          Parent object: 0x558de9f4e6e0 (wb_protected: true)
            rb_obj_info_dump: 0x0000558de9f4e6e0 T_IMEMO/<env>
          Reference counts - snapshot: 3, writebarrier: 0, current: 4, missed: 1
          Missing reference to: 0x558decf37c30
            rb_obj_info_dump: 0x0000558decf37c30 method/UnboundMethod method

        WBCHECK SUMMARY: Found 1 objects with missed write barriers (1 total violations)

commit 465b1696adb0a9e6af8623ca6caaae69b71831be
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-23 03:53:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 06:55:06 +0900

    [DOC] Tweaks for String#each_byte

commit 7ca3b38a952c4972f1ee3892836d4848047db606
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-23 03:58:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 06:54:04 +0900

    [DOC] Tweak for String#dump

commit 45e65f55bc55497b620ba6e27c85bbe07185f1c4
  Author:     Allison Cretel <allison.cretel@shopify.com>
  AuthorDate: 2025-07-19 00:47:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 01:52:45 +0900

    Fix typos in `documentation_guide.md`

commit 02aee1b724e102453d34af8341dd52a85e49b1b0
  Author:     Allison Cretel <allison.cretel@shopify.com>
  AuthorDate: 2025-07-19 00:46:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-23 01:52:45 +0900

    Change `TESTOPS` to `TESTOPTS`

commit 7bb48f87f35d4d99312c94e3982e2f483675a777
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-07-08 01:07:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-23 01:51:02 +0900

    [ruby/openssl] ssl: add SSLSocket#sigalg, #peer_sigalg, #group

    These methods are useful to test post-quantum cryptography (PQC) cases.

    https://github.com/ruby/openssl/commit/434ef74452

commit 41ec0f5b978cba26deb7c099f580cf02ecbde42e
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-19 06:51:20 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-23 01:37:13 +0900

    Update misc/tsan_suppressions.txt

    * Add gc_enable/disable to TSAN suppressions
    * Remove deleted methods from tsan suppressions
    * Remove TSAN errors we've fixed
    * Add another two inline cache suppressions
    * Improve comments

commit 973e6770d51ce8f1ff31fca8b28335811ce16ee2
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-18 16:02:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-23 01:37:13 +0900

    Fix TSAN data race in gc_start

    objspace->flags.immediate_sweep shares the same word as
    objspace->flags.during_incremental_marking. So in gc_start we need to
    assign it after gc_enter() so that we hold the VM lock and have issued a
    barrier, as rb_gc_impl_writebarrier is reading
    objspace->flags.during_incremental_marking.

commit a1403fb7cbd1fe0df97c932be9814c86081783dc
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-22 09:13:44 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-07-23 00:10:55 +0900

    Interpolated strings must not be frozen

    Strings concatenated with backslash may end up being frozen when they
    shouldn't be.  This commit fixes the issue.  It required a change
    upstream in Prism, but also a change to the Prism compiler in CRuby.

      https://github.com/ruby/prism/pull/3606

    [Bug #21187]

commit 0f408602cbcdc33faf4e2b545a7b62718e401807
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-07-17 23:44:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-22 23:05:24 +0900

    Fix missing increment of deleted_entries

    When `rb_concurrent_set_foreach_with_replace` deletes entries from a
    concurrent set, it should increment the `deleted_entries` field, too.

commit 8541dec8c4f118d09a7dcb4b83540ec0cb0d02db
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-22 18:27:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-22 19:58:49 +0900

    encoding.c: check for autoload before checking index

    Otherwise we may be checking the index while the encoding
    is being autoloaded by another ractor.

commit 4dec4fbdfaf69d647953f0993fedaeabd31094cf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-22 13:51:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-22 18:41:57 +0900

    [rubygems/rubygems] Define dummy module for mise plugin

    https://github.com/rubygems/rubygems/commit/64bdff1e1e

commit af718aaf4b56aacbe38c20c298dad35a932c2019
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-07-22 16:07:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-22 16:07:16 +0900

    Update bundled gems list as of 2025-07-22

commit e77eee96a3bd4ba737f6aee01acaffe795d7be60
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-19 03:30:58 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-22 12:09:42 +0900

    ZJIT: Load return value before frame teardown

    Or else the following returns garbage since it loads after
    moving SP. Prior bad disassembly:

        def a(n1,n2,n3,n4,n5,n6,n7,n8) = n8
        a(1,1,1,1,1,1,1,0)

        # Block: bb0(v0, v1, v2, v3, v4, v5, v6, v7, v8)
        stp x29, x30, [sp, #-0x10]!
        mov x29, sp
        # bump C stack pointer
        sub sp, sp, #0x10
        # Insn: v10 Return v8
        # pop stack frame
        adds x19, x19, #0x38
        stur x19, [x20, #0x10]
        # restore C stack pointer
        add sp, sp, #0x10
        mov sp, x29
        ldp x29, x30, [sp], #0x10
        ldur x0, [sp]
        ret

commit 9f961a4b309cd2ac1b58e1c5633b8a744e042f3d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-17 21:53:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-22 10:01:28 +0900

    [rubygems/rubygems] Workaround RVM issue when using Bundler <= 2.5.22

    Old versions of BUndler need a workaround to support nested `bundle
    exec` invocations by overriding `Gem.activate_bin_path`. However,
    RubyGems now uses this new `Gem.activate_and_load_bin_path` helper in
    binstubs, which is of course not overridden in those Bundler versions
    since it didn't exist at the time.

    So, include the override here to workaround that.

    https://github.com/rubygems/rubygems/commit/e5ed95e242

commit ba6a2717f48ee86df4dbf04f213c98e691a1964d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-22 09:56:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-22 09:56:47 +0900

    Skip test_ln_sr(FileUtilsSingletonTest) in rbs tests

    https://github.com/ruby/fileutils/pull/139
    https://github.com/ruby/actions/actions/runs/16425309325/job/46414287784

commit 7dbd9c26361719a45fa39838f46a76d67dc3c2e9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-22 09:06:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-22 09:07:04 +0900

    Revert "[ruby/prism] Clear flags on interpolated strings"

    This reverts commit a495e6a44ce8cff17461b250e32ab63e409a642d.

    This break extension builds:

    ```
    /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'String#replace': can't modify frozen String: "$(SDKROOT)$(prefix)/include" (FrozenError)
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:321:in 'RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:314:in 'block in RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'String#gsub'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:307:in 'RbConfig.expand'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:325:in 'block in <module:RbConfig>'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in 'Hash#each_value'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:324:in '<module:RbConfig>'
            from /Users/hsbt/Documents/github.com/ruby/ruby/rbconfig.rb:11:in '<top (required)>'
            from ./ext/extmk.rb:42:in 'Kernel#require'
            from ./ext/extmk.rb:42:in '<main>'
    make[1]: *** [ext/configure-ext.mk:70: ext/json/exts.mk] Error 1
    ```

commit a495e6a44ce8cff17461b250e32ab63e409a642d
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-22 00:20:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-22 08:04:42 +0900

    [ruby/prism] Clear flags on interpolated strings

    When inner strings aren't frozen, we need to clear the flags on
    interpolated string nodes so that we don't emit wrong instructions.

    The compiler is currently incorrectly emitting frozen strings because
    the parser is erroneously declaring interpolated strings as "frozen".
    We need to fix this behavior in the parser so we can fix the compiler in
    CRuby.  This patch is a partial fix for [this bug](https://bugs.ruby-lang.org/issues/21187)

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

commit 21c78cb0f72f81052323292a1b9fc7a20dee44f6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-22 05:09:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-22 06:07:39 +0900

    [DOC] Docs for String#dump

commit 3bbdcf084846b8da1e2c30e7bb215a1aecccad78
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-19 04:31:07 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-22 02:51:44 +0900

    ZJIT: Remove no-op movs after register allocation

    Previously `no_dead_mov_from_vreg` generated:

        0x0: ldur x0, [x0]
        0x4: mov x0, x0
        0x8: ret

    Because of phase ordering. Split couldn't recognize that the no-op mov
    because at that point it sees a `VReg`.

commit 495e3f642bd2efdb4479a14866610e94defb9e66
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-19 04:36:25 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-22 02:51:44 +0900

    ZJIT: Trim disassembly output from capstone-rs

    It has a bad habit of leaving a trailing space, for example for ARM
    `ret`.

commit 6b0e5de4e68bc60c10ce7974cb69f246678a9512
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-19 07:03:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Don't rehash on retry in concurrent set

    Since the hash should never change, we only need to calculate it once.

commit 66349692f0d1c63c5687ee5df32548097f57f5a3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-18 23:58:41 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Introduce free function to rb_concurrent_set_funcs

    If we create a key but don't insert it (due to other Ractor winning the
    race), then it would leak memory if we don't free it. This introduces a
    new function to free that memory for this case.

commit 061224f3cbb0ae25e180443bb4b1dcab527bc4ec
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-17 23:19:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Remove lock for dynamic symbol

    Benchmark:

        ARGV[0].to_i.times.map do
          Ractor.new do
            1_000_000.times do |i|
              "hello#{i}".to_sym
            end
          end
        end.map(&:value)

    Results:

    | Ractor count | Branch (s) | Master (s) |
    |--------------|------------|------------|
    | 1            | 0.364      | 0.401      |
    | 2            | 0.555      | 1.149      |
    | 3            | 0.583      | 3.890      |
    | 4            | 0.680      | 3.288      |
    | 5            | 0.789      | 5.107      |

commit efc232241eed75d5637295af71c631f54cec92c7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-17 06:37:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Don't call cmp on garbage objects

    If the object is garbage, then calling cmp on it may crash.

commit a2e165e8a03b4d20282dec0655c9971cd2d460fa
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-18 23:11:53 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Remove dsymbol_fstr_hash

    We don't need to delay the freeing of the fstr for the symbol if we store
    the hash of the fstr in the dynamic symbol and we use compare-by-identity
    for removing the dynamic symbol from the sym_set.

commit 2bcb155b49bb421ee82c0d5980546a5071113407
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-18 23:06:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Convert global symbol table to concurrent set

commit f05ee26a1f4814f4fc88d32099f4d2bbc9aca824
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-15 00:01:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Add rb_concurrent_set_find

commit 9ef482bd13bcbb8fd64b2ef343438764fe9d225e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-14 23:53:00 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Add rb_concurrent_set_size

commit 5d44f2917f59fa7bc700dce49ff41abc4bfa91d9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-02 23:00:48 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-21 23:58:30 +0900

    Skip garbage check for special consts in concurrent set

    rb_objspace_garbage_object_p expects only GC managed objects to be passed
    in. We should skip the check if curr_key is a special constant.

commit 038129175b8bdf49f0fb8a5feeaa85789d329e3e
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-07 18:09:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-21 23:31:24 +0900

    [ruby/openssl] test/openssl/test_ts.rb: make assert_raise blocks smaller

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

commit d4621b42f2dea9ec34097027c9b66144e85e0d11
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-11 01:14:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-21 23:31:24 +0900

    [ruby/openssl] test/openssl/test_ossl.rb: fix style issues

    Use OpenSSL::TestCase instead of OpenSSL::SSLTestCase.

    Prefer assert_true and assert_false over the bare assert and refute.
    OpenSSL.fixed_length_secure_compare and OpenSSL.secure_compare will
    only return true or false, and it should be checked.

    https://github.com/ruby/openssl/commit/3d9938ed40

commit 090825f5fc9fb40cc7d27c72ec8343ddcea51cda
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-10 21:46:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-21 23:31:24 +0900

    [ruby/openssl] Move slow tests to OSSL_TEST_ALL=1 only

    Update GitHub Actions workflows to set OSSL_TEST_ALL=1.

    Exclude a few slow tests that are not critical for local development,
    unless OSSL_TEST_ALL=1 is set. The bindings code paths are still reached
    by other tests with smaller inputs, and failures in those would likely
    indicate an issue in OpenSSL rather than in the bindings.

    Newly excluded tests include generating large DSA keys and measuring
    CRYPTO_memcmp() timing. These tests currently take nearly half of the
    total runtime.

    https://github.com/ruby/openssl/commit/382eca2aec

commit be58cd4d7d8ec57f0a45ceb01dceded287237e08
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-07-04 06:43:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-21 22:57:44 +0900

    Ractor: lock around global variable get/set

    There's a global id_table `rb_global_tbl` that needs a lock (I used VM lock). In the future, we might use a lock-free rb_id_table if we create such a data structure.

    Reproduction script that might crash or behave strangely:

    ```ruby
    100.times do
      Ractor.new do
        1_000_000.times do
          $stderr
          $stdout
          $stdin
          $VERBOSE
          $stderr
          $stdout
          $stdin
          $VERBOSE
          $stderr
          $stdout
          $stdin
          $VERBOSE
        end
      end
    end

    $myglobal0 = nil;
    $myglobal1 = nil;
      # ... vim macros to the rescue
    $myglobal100000 = nil;
    ```

commit c3d91eb4d924b7db1185f869184519362bfcce94
  Author:     André <andre.soares@altxtech.net>
  AuthorDate: 2025-07-19 02:32:23 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-21 22:55:09 +0900

    Fix several typos in the ractors docs

commit d21e4e76c44b3be940c4fd8be6a649cdf366f0f9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-20 00:25:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-20 00:44:55 +0900

    [ruby/fileutils] Make `ln_s` forward `target_directory` to `ln_sr`

    https://github.com/ruby/fileutils/commit/b487f09eed

commit f62e9f2b533ccbb573330315a470c97b91222e06
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-19 23:44:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 23:48:29 +0900

    [ruby/fileutils] A workaround for RBS

    https://github.com/ruby/fileutils/commit/c3abf39e7a

commit a1168712589736f13db5685a92985cc03654e81f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-19 23:41:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 23:48:29 +0900

    [ruby/fileutils] A workaround for RBS

    https://github.com/ruby/fileutils/commit/fde0f0713a

commit 5a8e87cb2ef7e4d6c0bdc86a4af207ecbb56a1e7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-19 23:04:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 23:09:50 +0900

    [ruby/fileutils] Just the parent path of the destination symlink should exist

    https://github.com/ruby/fileutils/commit/71225b1b46

commit 4431ca53639f3db5a702a5f8e78e8fbec2e4defe
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-07-17 10:18:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 22:54:45 +0900

    [ruby/fileutils] FileUtils.remove_dir checks directory

    https://github.com/ruby/fileutils/commit/f0d7fc817b

commit 3dced7955c1ad4f421400a9a4a78a7ccf6d46a6e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-19 22:23:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 22:47:48 +0900

    [ruby/fileutils] Use shorter symlink by real paths

    https://github.com/ruby/fileutils/commit/277f7f2ff8

commit de68f2204204f0025e21665f5d481045ebdffb61
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-19 12:03:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-19 22:47:47 +0900

    [ruby/fileutils] Fix up `FileUtils#ln_sr`

    https://github.com/ruby/fileutils/commit/2836a164ed

commit b49ae45b88d5b80ff9f8ff2acc748bf98aa700c6
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-19 08:30:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-19 08:30:24 +0900

    Remove dead post-hoc rehash check

    Hash#rehash checks whether the hash is iterating, and with VWA,
    RHASH_ST_TABLE() always returns the same thing for the same
    hash.

        RHASH_ST_TABLE(VALUE h)
        {
            return (st_table *)((uintptr_t)h + sizeof(struct RHash));
        }

    So this check can never fail and raise an exception. Remove it.

commit bd27460c0629e807aaed15dd1573367b5f9cda3f
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-07-19 06:58:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-19 06:58:04 +0900

    Remove rehash checking TODO (GH-13919)

    Hash#rehash checks for rehash during iteration, and there
    seems to be no efficient way to check for it after the fact,
    so remove the TODO.

commit 8df61bfc92463e9896465d73176663c583d8ec0c
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-19 00:36:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-19 00:36:51 +0900

    ZJIT: Support invalidating on method redefinition (#13875)

    ZJIT: Support invalidating method redefinition

    This commit adds support for the MethodRedefined invariant to be invalidated
    when a method is redefined.

    Changes:
    - Added CME pointer to the MethodRedefined invariant in HIR
    - Updated all places where MethodRedefined invariants are created to
        include the CME pointer
    - Added handling for MethodRedefined invariants in gen_patch_point to
        call track_cme_assumption, which registers the patch point for
        invalidation when rb_zjit_cme_invalidate is called

    This ensures that when a method is redefined, all JIT code that
    depends on that method will be properly invalidated.

commit dafc4e131e782c69150ffe84184cffd8b8ec98e5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-18 01:53:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-18 23:01:06 +0900

    Fix size assertion in concurrent set resizing

    Since we resize when `prev_size > set->capacity / 2`, it's possible that
    `prev_size == set->capacity / 2`, so we need to change the assertion in
    concurrent_set_try_resize_without_locking to be
    `new_set->size <= new_set->capacity / 2`.

commit 05f51cf36a76376be38a789841b12b3f7350a960
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-06-28 07:27:41 +0900
  Commit:     Kenta Murata <mrkn@mrkn.jp>
  CommitDate: 2025-07-18 19:24:04 +0900

    Extract arith_seq_take

commit 77254420227aacde3d17ead98dc7d0ca8021bc07
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-18 18:59:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-18 19:13:30 +0900

    [ruby/fileutils] If `noop`, return before checking the argument

    Get rid of failure in rbs.

    https://github.com/ruby/fileutils/commit/e44b7b366c

commit eeb682c51b4ffad5d7c2e113e8d8dfd9880314ce
  Author:     Akihiko Odaki <akihiko.odaki@gmail.com>
  AuthorDate: 2024-02-23 21:34:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-18 18:25:15 +0900

    [ruby/fileutils] [DOC] Fix optional argument descriptions

    Several optional positional arguments were incorrectly denoted as
    keyword arguments so correct them.

    https://github.com/ruby/fileutils/commit/c25f069f96

commit cfe8263f41d2a3f17575dcaaad7f96ddd9617180
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-18 18:14:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-18 18:22:34 +0900

    [ruby/fileutils] Fix `ln_sf` with multiple sources and `target_directory: false`

    In this case, an ArgumentError is now raised rather than ignoring the
    option, just as GNU coreutils' `ln` would error on the command line.
    Fixes https://github.com/ruby/fileutils/pull/128 as well.

    https://github.com/ruby/fileutils/commit/4fc578a75f

commit 1e65f0d93e637770c1598efae0d5a2d8687158e7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-17 17:26:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-18 14:33:26 +0900

    [ruby/json] Release 2.13.0

    https://github.com/ruby/json/commit/8d08494dee

commit dc8ae249517e017e52a4b34a14ddd594a706a9d5
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-18 12:22:18 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-07-18 13:28:46 +0900

    Revert "[Bug #21256] Fix `it` parameter when splatting and `define_method` is…"

    This reverts commit 265059603c3aa6a13f90096c71b32046a17938f3.

commit 81515aca67a0d3cc50205ff0a99cdc44ed0a927d
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-18 08:48:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 08:48:53 +0900

    ZJIT: Fix fixnum folding for negative values (#13942)

    Use `fixnum_from_isize` instead of `fixnum_from_usize` in
    `fold_fixnum_bop` to properly handle negative values. Casting negative
    `i64` to `usize` produces large unsigned values that exceed `RUBY_FIXNUM_MAX`.

commit 30b1368829820721e502f4e0edcaa4de511959a8
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-18 07:36:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 07:36:44 +0900

    ZJIT: Create perf map files for profilers (#13941)

    This lets us ZJIT compiled functions show up in the profiles of, say,
    perf, or samply.

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

commit 86320a53002a3adaf35ad7434c70e86747a8b345
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-18 03:43:49 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-07-18 07:00:33 +0900

    Fix compilation for forwarding params in Prism

    [Bug #21326]

commit 014df99c9401056862fae741d0d2fc9892de5eba
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-18 06:12:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 06:12:54 +0900

    ZJIT: Remove obsoleted exit_trampoline (#13943)

commit 148db9c80f11af1780f0f3685201f28de8f6b47a
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-18 04:40:59 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-07-18 05:20:29 +0900

    Fix flipflop line numbers

    [ruby-core:121605]

commit 265059603c3aa6a13f90096c71b32046a17938f3
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-04-13 22:10:32 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-07-18 05:18:17 +0900

    [Bug #21256] Fix `it` parameter when splatting and `define_method` is used

    It was failing to set the leads, like numblocks do, causing the result to be wrapped in an array

commit 04d43e1870bb9a1b096fa78aaf0846c020d51444
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-18 04:22:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 04:22:26 +0900

    ZJIT: Give up JIT-to-JIT calls for 6+ args (#13939)

commit d1f38ce4acf844327a5efc8213be1a2822f16cf5
  Author:     Vinicius Stock <vinistock@users.noreply.github.com>
  AuthorDate: 2025-07-18 04:19:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 04:19:51 +0900

    Make protected documentation more explicit about differences (#13849)

    [DOC] Make protected documentation more explicit about differences

    Protected is a common source of confusion for devs
    coming from different languages to Ruby. This
    commit makes the documentation more explicit about
    the differences, so that the use case for
    protected is clearer.

commit dabdd81d178ed91ca0feb0875ce0df927df0f3fb
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-18 03:10:41 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-07-18 04:01:02 +0900

    Fix linked list iteration when displaying errors

    When a script has problem with the magic comment encoding, we only
    display that error.  However, if there are other syntax errors in the
    file, the error linked list could contain multiple items.  This lead to
    an inconsistency in the "size" field of the linked list, and the actual
    items in the linked list.  In other words, the linked list had more than
    one item, but the size field was one.

    The error display routine would only allocate `size` items, but
    iterating the linked list would overrun the array.  This commit changes
    the iterator to compare the current node to the "finish" node in the
    linked list, no longer assuming the linked list ends with NULL.

    [Bug #21461]

commit cb33f22f5b64b4d12cda7b7222898c3b20438fcc
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-18 02:05:12 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-18 03:50:13 +0900

    ZJIT: Precise GC writebarriers

    This issues writebarriers for objects added via gc_offsets or by
    profiling. This may be slower than writebarrier_remember, but we would
    like it to be more debuggable.

    Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>
    Co-authored-by: Stan Lo <stan001212@gmail.com>

commit ff77473acbd6d807430bb9a188205f3ed6c9cf22
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-18 03:39:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-18 03:39:03 +0900

    ZJIT: Mark the code region executable on partial failures (#13937)

commit 815eb58fcef40d5ffedbb36f5de08fa6e06cc9b0
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-07-12 08:16:58 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-18 03:21:01 +0900

    Fix btest in ractor_test.rb that can lead timeout of the test

    It could also potentially lead to an out of memory error.

commit c1c9deea832bb058b5a03e475ad7de6160cd5cd4
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-07-18 01:23:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-18 01:23:17 +0900

    [ruby/prism] Revert "Merge pull request #3598 from Shopify/fix-3473"

    This reverts commit https://github.com/ruby/prism/commit/bc446fb9795e, reversing
    changes made to https://github.com/ruby/prism/commit/71432af1eb49.

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

commit 13de248f391ce41a83b86c61fc05202886296b57
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-17 20:29:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-18 01:06:34 +0900

    [ruby/prism] Allow command calls in endless method bodies regardless of context

    Previously, endless method definitions like `x = def f = p 1` would fail
    to parse because command calls (method calls without parentheses) were
    only accepted when the surrounding binding power was less than
    `PM_BINDING_POWER_COMPOSITION` (8). In assignment contexts with binding
    power 18, this condition was false, causing parse errors.

    This fix ensures command calls are always accepted in endless method
    bodies by passing `true` for `accepts_command_call`, making the method
    body parse consistently regardless of where the method is defined.

    https://github.com/ruby/prism/commit/70413ed4dd

commit a46309d19a321b110bbb5a7887b8bf94eb1ae63f
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-07-17 23:01:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 23:01:57 +0900

    Flag rsock_raise_user_specified_timeout() as NORETURN (#13928)

    This suppresses this warning:

    ../../../ext/socket/ipsocket.c: In function ‘rsock_raise_user_specified_timeout’:
    ../../../ext/socket/ipsocket.c:30:1: warning: function might be candidate for attribute ‘noreturn’ [-Wsuggest-attribute=noreturn]
       30 | rsock_raise_user_specified_timeout()
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

commit b0a290282a3dc96c62c9a41640ee8a6726e48ed1
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-07-17 22:49:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 22:49:33 +0900

    Update NEWS for `open_timeout` of `TCPSocket.new` (#13930)

commit bb8924240d329091eaa38f46791036ac13ccd3ed
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-17 19:42:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-17 20:31:28 +0900

    Omit local variable definitions only used with `LOCAL_PTR()`

commit 10a2688fc4d46d7adc12d132128ec9a7300f46bd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-17 19:47:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-17 19:47:18 +0900

    Declare `rsock_raise_user_specified_timeout` as noreturn

commit ba490059b4eb70cb33fbc159e4ee0d12bdd37951
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-07-17 18:15:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 18:15:19 +0900

    [Feature #21347] Add `open_timeout` as an overall timeout option for `TCPSocket.new` (#13909)

    * [Feature #21347] Add `open_timeout` as an overall timeout option for `TCPSocket.new`

    With this change, `TCPSocket.new` now accepts the `open_timeout` option.
    This option raises an exception if the specified number of seconds has elapsed since the start of the method call,
    even if the operation is still in the middle of name resolution or connection attempts.

    The addition of this option follows the same intent as the previously merged change to `Socket.tcp`.
    [Feature #21347](https://bugs.ruby-lang.org/issues/21347)
    https://github.com/ruby/ruby/pull/13368

    * Tidy up: Extract rsock_raise_user_specified_timeout()

    * Added a note to the documentation of `Socket.tcp`

    * Fix `rsock_init_inetsock` for `FAST_FALLBACK_INIT_INETSOCK_IMPL`

commit 98aa2a6608b026c56130154aa07b1635e05d95e8
  Author:     fuhsnn <66062782+fuhsnn@users.noreply.github.com>
  AuthorDate: 2025-07-06 09:03:36 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-17 15:46:37 +0900

    `atomic.h`: Add C11 <stdatomic.h> implementation

    The implementation is only active if `HAVE_STDATOMIC_H` is defined,
    and only after the compiler fails to match all currently supported
    systems.

commit a7992400f18b2cdabe97a3e2a356cb5e0b5d4454
  Author:     fuhsnn <66062782+fuhsnn@users.noreply.github.com>
  AuthorDate: 2025-07-06 08:41:46 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-17 15:46:37 +0900

    `atomic.h`: Use explicit logic for 32-bit #else branches

    These branches are only active for 32-bit Windows and Solaris platforms,
    codify the fact by changing `#else` to `#elif`'s that explicitly include
    those targets and `#error`-out otherwise.

commit 552e44912e076f643541ef49da2e5bc026507e5a
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-07-17 12:37:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-17 12:37:57 +0900

    [DOC] Update bundled gems list at 0482b11ee5bb66ccf2f9db1ed6a35e

commit 0482b11ee5bb66ccf2f9db1ed6a35e6fdeca07ae
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-07-17 12:36:59 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-07-17 12:36:59 +0900

    use ostruct 0.6.3

commit 84253ce38cf53fd31b467e37e7e08ca4394c4692
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-07-17 08:59:02 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-07-17 12:13:33 +0900

    fix obsolete doc with `Ractor::Port`

commit 146ddf614bbc917d7cc039ea7b502330ea4b6b6f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 15:03:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:16:30 +0900

    [ruby/io-wait] Bump up 0.3.2

    https://github.com/ruby/io-wait/commit/1d2b668457

commit d5f98b9e7eb9253ec5d090eb730d7468f858f71b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-14 17:45:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:13:16 +0900

    Set development version to Bundler 2.8.0.dev and RubyGems 3.8.0.dev

    Next version for both will be 4.0.0, however, extra work is necessary to
    get CI passing against the new major. So for now, I'm bumping just the
    minor version.

commit 60fca1defc4b730877a474efeb0f22f39dce9af7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-15 20:35:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:10:46 +0900

    Cancel `--force` deprecation in favor of `--redownload`

    I realized `--redownload` is not a good name, because it does not
    necessarily redownloads gems. It only forces reinstallation even if gem
    is already installed.

    So I believe `--force` is actually a better name and the introduction of
    `--force` was a misunderstanding of what the `--force` flag did at the
    time.

    Let's cancel the deprecation of `--force`.

    For now the `--redownload` alias is left around until we decide what to
    do with it.

commit 851a3e772480308a3dd014fef9af901ef29eb9b7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-17 01:29:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:22 +0900

    [rubygems/rubygems] Restore treating "--" as an unknown platform

    Rather than crashing when parsing it.

    https://github.com/rubygems/rubygems/commit/aa0064e4c7

commit 45b53c0be13b921bcf16f1e7013c42c625a4a124
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-14 17:10:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:21 +0900

    [rubygems/rubygems] Remove some realworld specs

    These two specs need the version of Bundler to be faked to pass. In one
    of them we're doing it already, and in the other one it will be needed
    when bumping the major version of Bundler. So they are no longer truly
    realworld anymore.

    Realworld specs are hard to maintain, particularly the ones that depend
    on the version of Bundler itself, so I'm slowly moving away from them.

    I checked the changes that introduced them and I believe it's really
    unlikely that any of these catches turns out to be the only spec to
    catch a resolver regression. We've completely changed the resolution
    engine since and a lot of extra coverage has been added so I believe
    it's fine to let these two go.

    https://github.com/rubygems/rubygems/commit/a363f0168c

commit fb4f9030cbcc50ca22eead3f23ecb7c157ee2bbc
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-14 16:42:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:18 +0900

    [rubygems/rubygems] Regenerate VCR cassettes

    https://github.com/rubygems/rubygems/commit/8530965b9e

commit 44dd27c430df6e39243639edb7b62cc5e257f1a4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-16 04:20:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:14 +0900

    [rubygems/rubygems] Fix `bundle binstub --path=foo` not printing a deprecation warning

    Like others, it's a remembered option which we are deprecating in favor
    of configuration.

    https://github.com/rubygems/rubygems/commit/801d5dd943

commit 19d931b50d1799fcaeb4da06d9159610272dbb0b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-16 04:09:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:13 +0900

    [rubygems/rubygems] Fix `bundle cache path=foo` not printing a deprecation message

    https://github.com/rubygems/rubygems/commit/0af03eea5d

commit 249cf5397f5f40e8379bef24b62bc7e0401b8c03
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-16 03:56:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:12 +0900

    [rubygems/rubygems] Remove unnecessary `flag_deprecation` method

    https://github.com/rubygems/rubygems/commit/d1f8e1c4ac

commit c451f478e6469f02bc5767f8ce4d4a2af0ca14b7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-16 00:28:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-17 11:07:11 +0900

    [rubygems/rubygems] Refactor remembered flag deprecation logic

    https://github.com/rubygems/rubygems/commit/88dd7d2d45

commit 5239dc8a0b310a1de8f2b7a8ad96877d4c78e649
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-17 08:38:57 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-17 09:53:24 +0900

    Revert "Suppress occasional autoconf warnings"

    This reverts commit 32bfb61d349b49ddedb7d34d9e434063324aafcc, that
    requires autoconf 2.70's improved whitespace handling.  It is too
    early for some platforms yet.

    Fix GH-13910

commit 1a207650745f812fa834198e7bb15756f174ca35
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-17 01:16:39 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 08:50:30 +0900

    DRY up CARGO_VERBOSE for JITs

commit 116509670a3224abad3dc6c97142a41c27b2b9a9
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-17 01:13:41 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 08:50:30 +0900

    ZJIT: Define make recipes only when configured

    This gives a better signal when say you try to run `make zjit-test` on a
    YJIT-only build.

commit 960fae438bf74d220b7795780f2a6461a9a30618
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-17 08:25:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 08:25:37 +0900

    ZJIT: Add missing write barrier in profiling (GH-13922)

    Fixes `TestZJIT::test_require_rubygems`. It was crashing locally due to
    false collection of a live object. See
    <https://alanwu.space/post/write-barrier/>.

    Co-authored-by: Max Bernstein <max@bernsteinbear.com>
    Co-authored-by: Takashi Kokubun <takashi.kokubun@shopify.com>
    Co-authored-by: Stan Lo <stan.lo@shopify.com>

commit 571a8d2753ab252b45afba862fc5917c1b8a1e09
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-17 07:59:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 07:59:32 +0900

    YJIT: Side-exit on String#dup when it's not leaf (#13921)

    * YJIT: Side-exit on String#dup when it's not leaf

    * Use an enum instead of a macro for bindgen

commit 15cf72dadea5cb3c96d1dca96c57308bce680a3b
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-17 07:12:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 07:12:19 +0900

    ZJIT: Check if BOP is redefined before rewriting (#13916)

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

commit 616df508c796e98a6ca112627103c2e833c51619
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-17 05:42:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 06:31:19 +0900

    ZJIT: Add ZJIT test exclusion files to jit team review targets

commit d207efecec6d133634b0d7378da66cff4de8c720
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-17 05:30:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 06:31:19 +0900

    ZJIT: Remove unneeded test exclusions

    After several ZJIT fix PRs, the number of failing/crashing tests for
    ZJIT has dropped significantly. This removes the unneeded test exclusions.

commit 4403cb2705cad11d464eaaffa97b784a140463a3
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-17 06:17:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 06:17:01 +0900

    ZJIT: Eagerly infer types of rewritten Const instructions (#13917)

    This helps us rewrite more SendWithoutBlock into SendWithoutBlockDirect.

commit e64a9e392ecfde5f46e8c9c12758e9db3144f6cc
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-13 03:50:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-17 05:41:18 +0900

    Alphabetize concurrent_set.h in string.c

commit abc8745fc34bfd366624da4e7d97a57a29c05529
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-07-04 10:23:51 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-17 05:13:21 +0900

    Avoid second RHASH_AR_TABLE_REF lookup

commit 900eb04853be06c3293bd77c699edfd4f9273d69
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-17 04:50:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 04:50:33 +0900

    ZJIT: Split shift with immediate operand (#13914)

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

commit 343619c93ca4d590189ca154e66a67776601aa26
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-17 04:17:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 04:17:38 +0900

    ZJIT: Remove dead have_two_fixnums function (#13913)

commit 643ca8175cd588fe2fe43eddb426722aac5e3729
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-17 03:16:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 03:16:29 +0900

    ZJIT: run `zjit-test-all` on CI with seed (#13912)

    ZJIT: run zjit-test-all on CI with seed

    ZJIT is still unstable and can crash intermittently running with Ruby
    tests. Adding a seed to avoid flakiness while we work on stability.

commit 133cf95618e687bfac6575e2daa1ce0a40e6f2e5
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-05-19 20:14:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-17 03:12:06 +0900

    [ruby/prism] [Bug #21345] Fix accepting multiple rest patterns with leading match

    Related:
    * https://bugs.ruby-lang.org/issues/20765
    * https://github.com/ruby/prism/issues/2915

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

commit ccbbe06a0277db74cfbf7dc1f26722cbf4904b72
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-16 10:19:47 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 03:10:22 +0900

    YJIT: Disable the runtime_checks feature temporarily

    The stack canary gets killed in test_yjit.rb:224 for some reason. Needs
    investigation. Example CI failure:
    https://github.com/ruby/ruby/actions/runs/16307837724/job/46057558066

commit 95521324de33c8762eb3807f66dd93b4bd6733e8
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-16 08:54:37 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 03:10:22 +0900

    ZJIT: A64: Fix bad operand swapping in `asm.sub(imm, reg)`

    Previously, my buggy optimization would turn `asm.sub(imm, reg)`
    into `subs out, reg, imm` since it runs through the addition path which
    relies on the commutative property. Don't do that because subtraction
    does not commute. Good thing no one seems to use this form.

    Also, delete the 2 regs match arm for Add because it's already covered
    by the fallback arm -- both split_load_operand() and
    split_shifted_immediate() are no-op when the input is a register.

    Fixes: 1317377fa74 ("ZJIT: A64: Have add/sub to SP be
    single-instruction")

commit 0c26dea5bb49ab98d2248f02cbbae82393a3c844
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-16 09:13:53 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 03:10:22 +0900

    ZJIT: A64: Fix the optimization merging `asm.add(reg, imm)` with Mov

    The raw bytes didn't disassemble to the disassembly, but we missed this
    since CI didn't run `make zjit-test` with the disasm feature.

    Fixes: 1317377fa74 ("ZJIT: A64: Have add/sub to SP be
    single-instruction")

commit 7df8e9e4276afd9f14a6b6d650b8031de1dd8408
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-16 08:05:04 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 03:10:22 +0900

    ZJIT: A64: Fix `asm.add_into(NATIVE_STACK_POINTER, ...)`

    Previously, it issued CMN, which doesn't add to the stack pointer.

commit 5ee3937a9c8f75d07f4919f64decd0b850abefe0
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-16 06:16:57 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-17 03:10:22 +0900

    ZJIT: Have `make zjit-test` use the same Cargo features as miniruby

    This is so that e.g. building with `--enable-zjit=dev` will test with the
    disassembly feature. It makes more sense, saves on build time and
    reveals that
    `backend::arm64::tests::sp_movements_are_single_instruction` was in
    fact failing with the `disasm` feature.

commit ea81e7b8b747ca2a7b19aabfa3711b4d33c133b1
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-17 02:46:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 02:46:12 +0900

    ZJIT: Remove an extra slash from $(TESTS) (#13911)

commit 27964795892ffd2568d8379be195a2ba6101ccd2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-17 02:42:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 02:42:22 +0900

    test_process.rb: UID.from_name may raise Errno::ENOENT

    See: 58bc97628c1

    getpwnam(3) says the same thing. I got ENOENT in my Linux environment.

      1) Failure:
    TestProcess#test_uid_from_name [/home/k0kubun/src/github.com/ruby/ruby/test/ruby/test_process.rb:1685]:
    Exception(ArgumentError) with message matches to /\u{4e0d 5b58 5728}/.
    [ArgumentError] exception expected, not #<Errno::ENOENT: No such file or directory - getpwnam_r>.

commit 2591b935930aaeee652df3ffbbe1cb138e7f5346
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-02 01:10:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-17 02:08:28 +0900

    [ruby/prism] Fix crash when using arithmetic expressions in pattern matching

    When arithmetic expressions like `-1**2` are used in pattern matching contexts,
    Ruby crashes with "Unexpected node type in pattern matching expression: PM_CALL_NODE".
    This happens because the Prism parser creates `PM_CALL_NODE` for arithmetic operations,
    but Ruby's pattern matching compiler doesn't handle call nodes.

    This fix adds validation to reject `PM_CALL_NODE` in pattern contexts with a proper
    syntax error.

    https://github.com/ruby/prism/commit/365049a767

commit acc317253043efc65e87b460de48dc4e50c87c59
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-17 01:53:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-17 01:53:10 +0900

    ZJIT: Profile each instruction at most num_profiles times (#13903)

    * ZJIT: Profile each instruction at most num_profiles times

    * Use saturating_add for num_profiles

commit af1ad78bffe78f70e649e60ed3ab016c8c6cef05
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-17 01:16:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 01:50:25 +0900

    Use a const block

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

commit 8668e4dd072114c5af37481789cc28a23891d1b4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-16 05:24:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 01:50:25 +0900

    ZJIT: Restore SP on side-exit chains

commit 2250a66aa85c7561d4b7e520f9a7b583eeea60d4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-16 05:24:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-17 01:50:25 +0900

    ZJIT: Fix SP alignment on JIT entry for x86_64

commit 4eb0a6cd4daa2ea53b53aa14d463040912c0838c
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-07-07 19:06:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-17 00:48:09 +0900

    [ruby/prism] Improve error handling for missing parentheses after 'not' in command calls

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

commit 4cf85fe2140d0522f924ab57c850b2f03b967390
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-13 12:44:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-17 00:48:09 +0900

    [ruby/prism] Reject `true && not true`

    A command-call-like `not true` must be rejected after `&&` and `||`.

    https://bugs.ruby-lang.org/issues/21337

    https://github.com/ruby/prism/commit/0513cf22ad

commit 830ab2c5b5ea58d1f29cb5e9b3864626b9dc8592
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-16 19:34:16 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-07-16 20:14:20 +0900

    Add a comment to count_objects to prevent future regression

commit dedf9f5f621f4f9b72b3b40be1753791b7de974e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-16 17:44:04 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-16 18:48:35 +0900

    Suppress gcc 15 unterminated-string-initialization warnings

commit 32bfb61d349b49ddedb7d34d9e434063324aafcc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-16 17:03:12 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-16 18:48:35 +0900

    Suppress occasional autoconf warnings

    ```
    configure.ac:2803: warning: AC_CHECK_FUNCS(\
    ): you should use literals
    ../autoconf-2.72/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from...
    ../autoconf-2.72/lib/m4sugar/m4sh.m4:697: AS_IF is expanded from...
    ```

commit 6d17a3e6472b4c6ce81f5308fc07050855114410
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-16 17:20:21 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-07-16 18:31:10 +0900

    Prevent ObjectSpace.count_objects from allocating extra arrays

    `ObjectSpace.count_objects` could cause an unintended array allocation.
    It returns a hash like `{ :T_ARRAY => 100, :T_STRING => 100, ... }`, so
    it creates the key symbol (e.g., `:T_STRING`) for the first time. On
    rare occations, this symbol creation internally allocates a new array
    for symbol management.

    This led to a problematic side effect where calling `count_objects`
    twice in a row could produce inconsistent results: the first call would
    trigger the hidden array allocation, and the second call would then
    report an increased count for `:T_ARRAY`.

    This behavior caused test failures in `test/ruby/test_allocation.rb`,
    which performs a baseline measurement before an operation and then
    asserts the exact number of new allocations.

    https://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20250716T053005Z.fail.html.gz

    >   1) Failure:
    > TestAllocation::ProcCall::WithBlock#test_ruby2_keywords [...]:
    > Expected 1 array allocations for "r2k.(1, a: 2, &block)", but 2 arrays allocated.

    This change resolves the issue by pre-interning all key symbols used by
    `ObjectSpace.count_objects` before its counting. This eliminates the
    side effect and ensures the stability of allocation-sensitive tests.

    Co-authored-by: Koichi Sasada <ko1@atdot.net>

commit 3956308aa420eac3e358be1d35ca7fbc3bf22148
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-16 16:38:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-16 16:38:55 +0900

    `test_defined_paren_void_stmts` passes with parse.y now

commit f0649ab46a5235904ea6f9b95aa07cb9375fd463
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-08 23:14:37 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-16 16:17:10 +0900

    Make `defined? (x;)` return `expression` when using parse.y parser

    Follow up [Bug #21029].

    Currently,  `defined? (x;)` returns `expression` when using Prism parser.

    See:
    - https://github.com/ruby/ruby/pull/12949
    - https://bugs.ruby-lang.org/issues/21029

    However, `defined? (x;)` returns nil when using parse.y, as reported in bug ticket comment and test-all (when using parse.y parser) test result.

    This change adds a context flag to track trailing semicolons in defined? scope.
    When a trailing semicolon is detected within a defined? scope, the generated AST node is wrapped with NODE_BLOCK.
    This change ensures consistent behavior with `defined? (;x)` .

commit 54ec48249192325d108355bb8c7d735cd5081617
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-16 14:09:31 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-16 14:09:31 +0900

    CI: Use `sudo` only if it works

    GitHub Windows-11arm runner now provides `sudo` command, but it is
    disabled and seems to need something at "Developer Settings page".

commit a691db3011a37bdf16323162bc17c5dfe9502bb6
  Author:     zzak <zzak@hey.com>
  AuthorDate: 2025-07-15 21:04:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-16 09:02:09 +0900

    Add NEWS for Pathname promotion

commit 5723945335e61efb1c6b23111b2a0f00fcec3111
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-16 07:03:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-16 07:03:40 +0900

    ZJIT: Start testing against `/test/ruby/` and update all ZJIT related testing targets/docs (#13791)

    * ZJIT: Add test exclusions for ZJIT

    * ZJIT: Update test targets and documentation

    - Rename `zjit-test-all` to `zjit-check`
    - Add `zjit-test-all` target to zjit.mk to run all Ruby tests with ZJIT enabled
      excluding known failing tests
    - Update documentation and CI workflow to reflect the new targets

commit 3cf32e936416e6c4aa272e63a9ac626c55087891
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-16 05:31:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-16 05:31:58 +0900

    [DOC] Tweaks for String#downcase

commit b2ef33b3c5b2aa1ff4742911c84451ec7afd2fde
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-07 18:25:20 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-16 03:47:32 +0900

    ZJIT: Redo JIT function native stack frame layout

    Previously, gen_param() access slots at `SP-x` for `x≥0` after subtracting from
    SP, so it was accessing slots from above the top of the stack. Also, the
    slots gen_entry_params() wrote to at entry point did not correspond to
    the slots access inside the JIT function.

    Redo the stack frame layout so that inside the function slots are at
    `SP+x`. Write to those slots in the entry point by anticipating the size
    of the frame.

    Fixes test_spilled_method_args().

commit 50e2d58af89a661d7c90db001d966a1dbff48332
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-07 18:08:13 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-16 03:47:32 +0900

    ZJIT: Ban `asm.load_into(Mem, ..)` and avoid it in gen_entry_params()

    Now that params can be in memory, this particular load_into() was
    panicking with "Invalid operands for LDUR" with
    test_spilled_method_args() on ARM.
    Since it's documented to be for register destinations let's validate it.

commit 0aefa4956d2690665869660a023e83ae6c804179
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-07 18:06:21 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-16 03:47:32 +0900

    ZJIT: Add failing test to test_spilled_method_args()

commit be38cb92d59cf654906ab2d32235348b97a606a4
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-15 02:03:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-16 03:13:17 +0900

    [DOC] Tweaks for String#downcase!

commit 2899ff172c80ec0ba4797f9d6d566e1b92000ae9
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-16 02:39:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-16 02:39:02 +0900

    ZJIT: Only specialize direct positional-positional calls (#13899)

    This is temporary until we have a unified calling convention.

commit 024ae34e3852df4fbeb0317299032707bdbbb9b8
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-16 01:32:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-16 01:33:00 +0900

    [ruby/erb] Version 5.0.2

    https://github.com/ruby/erb/commit/e8f3e64581

commit 71d4518c59fa4462bfdd2be015f617febdb7dffd
  Author:     John Hawthorn <john.hawthorn@shopify.com>
  AuthorDate: 2025-07-16 01:30:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-16 01:30:55 +0900

    [ruby/erb] Declare escape functions as Ractor-safe
    (https://github.com/ruby/erb/pull/63)

    https://github.com/ruby/erb/commit/fdd45c0d89

commit 35660ec17d7257810fd64e1e12e92c58f4eaa2ca
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-16 00:03:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-16 00:03:04 +0900

    Suppress warnings for variables

commit f5312d8e7f46121365b335511b1d42e5617e3c62
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-15 00:10:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-15 22:55:36 +0900

    Make rb_concurrent_set_funcs const

    We should never modify rb_concurrent_set_funcs during runtime, so we can
    make it const.

commit 061d479b21403366ef0986d4c614f85f2a770c23
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-15 20:40:51 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-15 20:51:16 +0900

    [DOC] RDoc is not in ./lib now

    It is already a bundled gem, and only the non-built-in parts remain in
    pathname.rb in ./lib and cannot work in old versions.

commit 8a31a0792b8aa539be8e39587529b829fe63e593
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-15 20:26:27 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-15 20:51:16 +0900

    [DOC] Include pathname_builtin.rb documents

commit b896f80598cc096c84d57b2024813e994637af3b
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-07-15 20:38:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-15 20:38:57 +0900

    [Bug #21512] Socket.tcp_with_fast_fallback: Pass proper addr family to getaddrinfo (#13878)

    Socket.tcp_with_fast_fallback: Pass proper addr family to getaddrinfo

    Addrinfo.getaddrinfo expects Socket::AF_INET or Socket::AF_INET6 as its
    third argument (family). However Socket.tcp_with_fast_fallback was
    incorrectly passing :ipv4 or :ipv6.

    Repro:

        require 'socket'
        Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1')

    Expected behavior: Returns a Socket object
    Actual: Raises unknown socket domain: ipv4 (SocketError)

commit 03800bff6999fd03076c03a3dec50fc4d1220824
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-15 18:46:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-15 19:57:18 +0900

    Make Pathname#mkpath builtin

    [Feature #17473]

commit 4fab4cfe35640f11ea832dd94346d2106318bc02
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-15 11:44:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-15 19:33:34 +0900

    [ruby/pathname] Fix Init and InitVM

    https://github.com/ruby/pathname/commit/2b63d44453

commit 6fd108dd6b9a890269aa3b962a44ac3c36bd8c69
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-15 18:34:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-15 19:10:52 +0900

    id_table.c: reduce duplication in managed_id_table methods

commit 562599e6bcb3797c540283328e7969f0aa60a0e6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-15 16:52:03 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-15 16:52:03 +0900

    Skip `URI::TestMailTo#test_email_regexp` for now

commit ea880e624e25bba6bbcf7a46dd0a2cdf220f3832
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 16:24:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-15 16:24:28 +0900

    [ruby/etc] Bump up v1.4.6

    https://github.com/ruby/etc/commit/c9c9b9d15e

commit b67e10257ce3ab18b9a75b7e0f1eee8a9bb0ab48
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 14:35:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-15 15:59:11 +0900

    pathname.rbinc conflicts with `lib/pathname.rb` in our test suite.

    We can use `pathname.rb` after merging `lib/pathname.rb` to `pathname_builtin.rb`.

commit 2ffd6c28ed601bb738f114553e0d53c2a6f34d20
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 15:26:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-15 15:26:44 +0900

    [ruby/io-nonblock] Bump up 0.3.2

    https://github.com/ruby/io-nonblock/commit/7285725885

commit 8ea57040f08226caa922ecd4d4988030c6d55bb8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 15:00:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-15 15:01:01 +0900

    [ruby/io-console] Bump up 0.8.1

    https://github.com/ruby/io-console/commit/01071a174a

commit 69d4c673471caea6a7149da216be3e2e8259f704
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 11:29:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-15 13:36:03 +0900

    Provide pathname.so with embedded Pathname

commit 87944065838321018bf99fc61dbec84ccad2576c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-15 09:01:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-15 11:17:51 +0900

    Move builtin methods to pathname.rbinc from lib/pathname.rb

commit 98ea78f3471a4f32e78d28e3037d66d03ec90fc9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-14 17:50:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-15 11:17:51 +0900

    Make Pathname to embedded class

commit 3922a14a2280c4a2c80e35bbaf4b2f75fb17411d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-05 01:55:38 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-15 11:11:24 +0900

    ZJIT: Make lir::Opnd::const_ptr take any pointer to save on casts

commit 7a7f128d0d2cc4efbd484a19d1f7154bbad82cfb
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-05 01:36:20 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-15 11:11:24 +0900

    ZJIT: Add a ccall macro that also adds an LIR comment

    This DRYs up the `asm_comment!` + `asm.ccall` combo, and makes ccalls
    have a comment by default.

commit d23f666da342d1f6fb4543c4928ad683630ce0c9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-14 18:23:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-15 08:34:13 +0900

    Split restore and save actions from action/cache. We need to save always vcpkg cache

commit a6d483971a69436f5055cc9b5519256ef2630eb9
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-15 02:30:58 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-15 05:34:32 +0900

    ZJIT: Make debug info more detailed

    Print the filename, line number, and whether or not the function has
    been optimized:

    ```
    Initial HIR:
    fn initialize@test.rb:4:
    bb0(v0:BasicObject):
      v2:Fixnum[1] = Const Value(1)
      SetIvar v0, :@a, v2
      Return v2

    Optimized HIR:
    fn initialize@test.rb:4:
    bb0(v0:BasicObject):
      v2:Fixnum[1] = Const Value(1)
      SetIvar v0, :@a, v2
      Return v2
    ```

commit 3a47f4eacf3cd755df9db554a0b5e40789611602
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-07-10 17:55:53 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-15 05:21:55 +0900

    YJIT: Move RefCell one level down

    This is the second part of making YJIT work with parallel GC.

    During GC, `rb_yjit_iseq_mark` and `rb_yjit_iseq_update_references` need
    to resolve offsets in `Block::gc_obj_offsets` into absolute addresses
    before reading or updating the fields.  This needs the base address
    stored in `VirtualMemory::region_start` which was previously behind a
    `RefCell`.  When multiple GC threads scan multiple iseq simultaneously
    (which is possible for some GC modules such as MMTk), it will panic
    because the `RefCell` is already borrowed.

    We notice that some fields of `VirtualMemory`, such as `region_start`,
    are never modified once `VirtualMemory` is constructed.  We change the
    type of the field `CodeBlock::mem_block` from `Rc<RefCell<T>>` to
    `Rc<T>`, and push the `RefCell` into `VirtualMemory`.  We extract
    mutable fields of `VirtualMemory` into a dedicated struct
    `VirtualMemoryMut`, and store them in a field `VirtualMemory::mutable`
    which is a `RefCell<VirtualMemoryMut>`.  After this change, methods that
    access immutable fields in `VirtualMemory`, particularly `base_ptr()`
    which reads `region_start`, will no longer need to borrow any `RefCell`.
    Methods that access mutable fields will need to borrow
    `VirtualMemory::mutable`, but the number of borrowing operations becomes
    strictly fewer than before because borrowing operations previously done
    in callers (such as `CodeBlock::write_mem`) are moved into methods of
    `VirtualMemory` (such as `VirtualMemory::write_bytes`).

commit 51a3ea5adeb452e51c119a395acfd5c87cc63735
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-06-30 15:21:30 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-15 05:21:55 +0900

    YJIT: Set code mem permissions in bulk

    Some GC modules, notably MMTk, support parallel GC, i.e. multiple GC
    threads work in parallel during a GC.  Currently, when two GC threads
    scan two iseq objects simultaneously when YJIT is enabled, both threads
    will attempt to borrow `CodeBlock::mem_block`, which will result in
    panic.

    This commit makes one part of the change.

    We now set the YJIT code memory to writable in bulk before the
    reference-updating phase, and reset it to executable in bulk after the
    reference-updating phase.  Previously, YJIT lazily sets memory pages
    writable while updating object references embedded in JIT-compiled
    machine code, and sets the memory back to executable by calling
    `mark_all_executable`.  This approach is inherently unfriendly to
    parallel GC because (1) it borrows `CodeBlock::mem_block`, and (2) it
    sets the whole `CodeBlock` as executable which races with other GC
    threads that are updating other iseq objects.  It also has performance
    overhead due to the frequent invocation of system calls.  We now set the
    permission of all the code memory in bulk before and after the reference
    updating phase.  Multiple GC threads can now perform raw memory writes
    in parallel.  We should also see performance improvement during moving
    GC because of the reduced number of `mprotect` system calls.

commit e288a86692694351278d0c3973881017b5b2e9c6
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-15 04:22:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-15 04:22:13 +0900

    ZJIT: Restore SP register after JIT-to-JIT call (#13882)

    Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
    Co-authored-by: Stan Lo <stan.lo@shopify.com>

commit b2a7b7699261d2a4ef8a9d5d38d3fb9dc99c8253
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-11 00:55:22 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-15 00:11:47 +0900

    Remove dead rb_cc_table_free

commit 127cc425b71240284fe102f929f2a221e5364ba3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-11 00:54:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-15 00:11:47 +0900

    Remove dead rb_cc_table_mark

commit 64d4e7727e650809cc29a874d4e4156964641ceb
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-14 23:05:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-14 23:05:00 +0900

    [DOC] Tweaks for String#delete_suffix! (#13872)

commit 07a3ab53a2c13c91283b5cdfaddcdc5b266e09ab
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-13 07:55:35 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-14 22:58:35 +0900

    [DOC] Tweaks for String#delete_suffix

commit 55dd2022fd58193c4fe93478e53f0532f6417efd
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-13 07:41:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-14 22:58:12 +0900

    [DOC] Tweaks for String#delete_prefix!

commit d38bb4ad1cafdb7fdc6bf05087f899d469e4ffb2
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-13 07:18:22 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-14 22:57:19 +0900

    [DOC] Tweaks for String#delete_prefix

commit 8f54b5bb93a6dc703f0450479f215a9e2584a190
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-14 13:54:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-14 14:11:58 +0900

    [ruby/uri] [DOC] Update old use of `URI::Parser`

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

commit d14709141866a5f480398347c88310216305649e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-14 13:23:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-14 14:11:58 +0900

    [ruby/uri] [DOC] Document private visibility too

    For the references to URI::RFC2396_Parser private methods.

    https://github.com/ruby/uri/commit/372fbb455d

commit 1a03270a7ec80eec8c6eb801d1e143095ac7b85f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-14 13:14:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-14 14:11:58 +0900

    [ruby/uri] [DOC] Fix references

    These are instance methods, not class methods.  And `URI::Parser` was
    moved to URI::RFC2396_Parser at [r46491]

    [r46491]: https://github.com/ruby/ruby/commit/bb83f32dc3e0

    https://github.com/ruby/uri/commit/452d74390c

commit 7a03a02bee340897a3647190e6a5f9866efb31ce
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-09 19:23:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:14 +0900

    [rubygems/rubygems] Fix more warnings when running old Bundler with latest RubyGems

    Also fix platform warnings when Bundler's entrypoint is bundler's
    binstub.

    https://github.com/rubygems/rubygems/commit/4b1df58403

commit c3d41492e14929f8bbee26a276ee76b9a8c9d5b6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-11 02:46:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:14 +0900

    [rubygems/rubygems] Avoid more warnings when using RubyGems with old Bundler

    We were only avoiding them when the RUBYGEMS_GEMDEPS variable is used.
    Avoid the warnings in general, whenever the entrypoint to Bundler is
    `require`.

    https://github.com/rubygems/rubygems/commit/8683faef36

commit a93c684077fe713bc4ff6a58cf851137bd9bed52
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-11 07:05:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:14 +0900

    [rubygems/rubygems] Change helper to load only Bundler extensions to RubyGems

    We'll want to reuse this helper in other situations where we don't want
    all Bundler loaded.

    https://github.com/rubygems/rubygems/commit/9e7018b0a1

commit 1c48aa6f4a52e60fa46f838b5810556defb2604a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-11 06:58:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:14 +0900

    [rubygems/rubygems] Move loading Bundler without platform warnings to a method

    https://github.com/rubygems/rubygems/commit/e068f0649a

commit 4651d235db6eb07a28e248949e531c949e6276f3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-10 02:07:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:14 +0900

    [rubygems/rubygems] No need to detect ancient binstubs either

    https://github.com/rubygems/rubygems/commit/346d491a11

commit 15751af90b649a15c461e981daece58ce1ceb9ec
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-10 01:34:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:13 +0900

    [rubygems/rubygems] Improve some heredoc indentations

    https://github.com/rubygems/rubygems/commit/6ee3a33048

commit f1cbd58acca3547d802c914b9a6509fc79b15f93
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-10 01:28:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:13 +0900

    [rubygems/rubygems] Stop generating binstubs with support for RubyGems before 2.6.2

    RubyGems generated binstubs still provide support for this ancient
    version. This makes no sense since we prevent downgrades to such old
    versions.

    https://github.com/rubygems/rubygems/commit/089cdc3b77

commit 51e890030fd27c49abd0e0bb46abfd42edc8d0b9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-11 05:51:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:13 +0900

    [rubygems/rubygems] Reset tmp directories before spec suite

    If you abort running test suite with a quick double Ctrl-C, tmp files
    will be left around, and they will interfere with the next test run.

    To avoid this, make sure to clear them once at the beginning of the test
    suite.

    ### Before

    ```
    $ bin/parallel_rspec
    16 processes for 175 specs, ~ 11 specs per process
    .............................................................................................^C^C

    Finished in 19.45 seconds (files took 0.42722 seconds to load)
    94 examples, 0 failures

    (... turbo tests backtrace ...)

    $ bin/parallel_rspec
    16 processes for 175 specs, ~ 11 specs per process
    .F....F....F...F......^C

    Failures:

    (... failures' details ...)
    ```

    ### After

    ```
    $ bin/parallel_rspec
    16 processes for 175 specs, ~ 11 specs per process
    .................................................................................^C^C

    Finished in 18.18 seconds (files took 0.4383 seconds to load)
    82 examples, 0 failures

    (... turbo tests backtrace ...)

    $ bin/parallel_rspec
    16 processes for 175 specs, ~ 11 specs per process
    ................................................................................^C^C

    Finished in 8.79 seconds (files took 0.45187 seconds to load)
    80 examples, 0 failures

    (... turbo tests backtrace ...)
    ```

    https://github.com/rubygems/rubygems/commit/6767a52711

commit 7dc284189a36b08e0eb8dcc2f5c7bdd3797b1394
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-10 16:36:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-14 11:52:13 +0900

    [rubygems/rubygems] Load RubyGems extensions in the first place

    This is not currently causing any issues, but I think the most correct
    thing to do is that Bundler loads the extensions to RubyGems in the
    first place, so that they are available from the beginning.

    https://github.com/rubygems/rubygems/commit/88faa5c7bb

commit f03cc0b514e400c4ea1428103e1f1f601c22fa86
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-13 13:18:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-13 13:37:15 +0900

    [ruby/uri] Repeat matching to reduce deviations

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

commit 9c166d26b2e52fcddc29cc18d4017118689caf98
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 20:05:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-13 13:37:15 +0900

    [ruby/uri] Test in exponential scale with rehearsal

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

commit b438915f0aa69e15b7742d8d70f5e6288a7a88f9
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-13 02:15:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-13 03:22:57 +0900

    [DOC] TWeaks for String#delete!

commit e1bc92d00b744fb453f494aefbf34ed12a0f9087
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-13 01:49:41 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-13 02:08:14 +0900

    [DOC] Tweaks for String#delete

commit b0db93c002d07a60105d32299530e2a0ee88ee5f
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-12 23:55:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-12 23:55:33 +0900

    [DOC] Tweaks for String#count

commit 9e7a985c6dd72955616cbbfffc595b5721f4f385
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 22:21:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-12 22:34:52 +0900

    [Bug #21509] [DOC] Correct `IO#wait` description

commit dbf7a0c713c39bdfd22c24e69f4bb0b89c9cab65
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 22:29:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 22:32:33 +0900

    [ruby/io-wait] [Bug #21509] [DOC] Correct `IO#wait` description

    https://github.com/ruby/io-wait/commit/c65af887a1

commit 753e3b7ae352755e977228af62d24b3c7e2a9477
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-27 20:18:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 22:25:24 +0900

    [ruby/openssl] asn1: align UTCTime year range with RFC 5280

    ASN.1 UTCTime uses two-digit years. While X.680 does not specify how to
    map them as far as I can tell, X.509/PKIX uses this type to represent
    dates between year 1950-2049.

    OpenSSL::ASN1.decode has used 1969-2068 since the initial
    implementation. Given that ASN1::UTCTime#to_der relies on OpenSSL
    ASN1_UTCTIME type, which assumes the 1950-2049 range, this was likely
    unintentional.

    Use the range 1950-2049 consistently, and fix decoding of X.509
    certificates with dates in 1950-1968.

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

commit cf7b871a94f2d44eb35676a3dbf9278a73a612c1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 19:31:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 19:32:48 +0900

    [ruby/uri] Improve performance of `URI::MailTo::EMAIL_REGEXP`

    Fix the performance regression at #172 for valid emails.

    ``` yml
    prelude: |
      require 'uri/mailto'
      n = 1000
      re = URI::MailTo::EMAIL_REGEXP
    benchmark:
      n.t..t.: re.match?("n.t..t.@docomo.ne.jp")
      example: re.match?("example@example.info")
    ```

    |         |released| 788274b| c5974f0|    this|
    |:--------|-------:|-------:|-------:|-------:|
    |n.t..t.  |  3.795M|  4.864M|  4.993M|  8.739M|
    |         |       -|   1.28x|   1.32x|   2.30x|
    |example  |  3.911M|  3.740M|  2.838M|  3.880M|
    |         |   1.38x|   1.32x|       -|   1.37x|

    https://github.com/ruby/uri/commit/7363a134ac

commit 22b81b5bf56d7c5053008697d9e6b2a9c4eb79f4
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2024-08-20 08:42:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 16:07:39 +0900

    [ruby/uri] Do not allow empty host names, as they are not allowed by RFC 3986

    Pointed out by John Hawthorn.

    Fixes [Bug #20686]

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

commit 1add45e2a6e2ab62458f04eddf24898f61e7c01d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 15:54:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 16:07:05 +0900

    [ruby/uri] Prohibit successive dots in email

    https://github.com/ruby/uri/commit/32335923bf

commit 859d74279a41ff7aa1672a02e634120cdfd4c4e7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 15:53:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 16:07:05 +0900

    [ruby/uri] More tests for `check_to`

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

commit c97eba9bcd6188f39c827be3b40d29cef26c8eac
  Author:     Nikita Levchuk <code@levch.uk>
  AuthorDate: 2024-12-06 19:56:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 12:31:54 +0900

    [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class

    https://github.com/ruby/uri/commit/2d7d2d9988

commit 0685e8caf9550c2b4e3c378ab1656c3139b96596
  Author:     Nikita Levchuk <code@levch.uk>
  AuthorDate: 2024-11-06 23:08:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 12:31:53 +0900

    [ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): the local part should not contain leading or trailing dots

    https://github.com/ruby/uri/commit/618e2bb640

commit f1764623db38bd5773e741b038f36f9dcd3173f2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 19:35:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 12:24:15 +0900

    [ruby/uri] Make URI::regexp schemes case sensitive
    (https://github.com/ruby/uri/pull/38)

    https://github.com/ruby/uri/commit/0c2b6468fa

commit c47a92b63df5a45de076822975884a4a45d4b59f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-12 12:02:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-12 12:05:25 +0900

    [ruby/uri] Fix the message for unexpected argument

    Use just `self` instead of `self.class`, in `URI::Generic.build`.
    Since this is a class method, `self.class` is always `Class` even in
    inherited sub classes, and does not have `#component` method.

    https://github.com/ruby/uri/commit/6f44d3d40e

commit 3ec46aad37bb5f42656d81210838ac4c5c4013a0
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-12 05:24:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-12 05:24:08 +0900

    ZJIT: Mark objects baked in JIT code (#13862)

commit c592cbd616bebed3e889e85418a98cef2b7f67df
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-10 23:32:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-12 03:07:10 +0900

    [DOC] Fix links to RDoc in documentation_guide.md

    Since RDoc's documentation is built separately now, the references will
    no longer work.

commit 482eeb7da6129ce7a520631e51270b1006c954a6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-10 23:30:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-12 03:07:10 +0900

    [DOC] Remove doc/rdoc/markup_reference.rb

    RDoc has been moved from a default gem to a bundled gem, which means that
    the source code is no longer in the ruby/ruby repository. We should also
    remove doc/rdoc/markup_reference.rb.

commit 1582bd9382f202b45c11c874c8c26ca8727276de
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-11 05:12:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-12 02:20:50 +0900

    Add Timeout message when bootstraptest times out

commit b0b1712b52e6542853fc9049a6e5e207723e8c04
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-12 01:55:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-12 01:55:06 +0900

    ZJIT: Use Vec instead of HashMap for profiling (#13809)

    This is notably faster: no need to hash indices.

    Before:

    ```
    plum% samply record ~/.rubies/ruby-zjit/bin/ruby --zjit benchmarks/getivar.rb
    ruby 3.5.0dev (2025-07-10T14:40:49Z master 51252ef8d7) +ZJIT dev +PRISM [arm64-darwin24]
    itr:   time
     #1: 5311ms
     #2:   49ms
     #3:   49ms
     #4:   48ms
    ```

    After:

    ```
    plum% samply record ~/.rubies/ruby-zjit/bin/ruby --zjit benchmarks/getivar.rb
    ruby 3.5.0dev (2025-07-10T15:09:06Z mb-benchmark-compile 42ffd3c1ee) +ZJIT dev +PRISM [arm64-darwin24]
    itr:   time
     #1: 1332ms
     #2:   49ms
     #3:   48ms
     #4:   48ms
    ```

commit b760afe2b7fd798110273c6d4546ea5b14bb3024
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-12 01:49:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-12 01:49:25 +0900

    ZJIT: Improve asm comments for side exits (#13853)

    * ZJIT: Improve asm comments for side exits

    * Use GuardType(Type) and GuardBitEquals(VALUE)

commit 77de6b4eb1ab7afc1cecf01179cc59a7e256a879
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-11 23:41:41 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:41:10 +0900

    [DOC] Add ZJIT glossary table

commit c0b9480bbc0349acb019d573b17f9556f0865c0e
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-11 23:41:21 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:41:10 +0900

    [DOC] Add a few new terms to Ruby glossary

commit bd162dc0cb8dd8b217174d7db5edb57ed5d0c63d
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-11 08:03:56 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:30:46 +0900

    ZJIT: Run validation between compiler passes in debug mode

commit e53bfe217e84cfdcc79e5516ba2bd988c2a2f852
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-12 00:11:31 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:30:46 +0900

    ZJIT: Fix missing find!() for SetIvar

commit 0d7d87b40f79c10016b27d608892ebbe069295eb
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-11 23:57:38 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:30:46 +0900

    ZJIT: Gracefully handle iseq_name with NULL ISEQ

commit e3456d61802f4817a632a496b08e571fd3083c20
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-11 23:57:16 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-12 01:30:46 +0900

    ZJIT: Don't stringify Function in ValidationError

    That's not the validator's responsibility; the caller can choose to
    later.

commit 12d44dbc496f131fcd2af8864d19471c0720800d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-11 19:45:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-11 19:45:37 +0900

    Use an invariant condition

    Cannot rule out the possibility that `crr->silent` is modified during
    `func`.

commit 9760ec6f571c7e9d2ecb101876e853ddaa4e55ec
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-11 17:32:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-11 17:32:17 +0900

    [DOC] Move document only source to doc

commit 0b23a8db6069c726af0c5b090e65790fda347dff
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-29 12:03:47 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-07-11 15:24:23 +0900

    Update dependencies for addition of set.h to public headers

commit 2ab38691a2683c992bf2886159094afd5e461233
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-29 09:09:24 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-07-11 15:24:23 +0900

    Add Set C-API

    This should be a minimal C-API needed to deal with Set objects. It
    supports creating the sets, checking whether an element is the set,
    adding and removing elements, iterating over the elements, clearing
    a set, and returning the size of the set.

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

commit 08d4f7893ec1fc2d1a45eec33eac4544c533b0d9
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-29 09:07:00 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-07-11 15:24:23 +0900

    Rename some set_* functions to set_table_*

    These functions conflict with the planned C-API functions. Since they
    deal with the underlying set_table pointers and not Set instances,
    this seems like a more accurate name as well.

commit b2fdd26417d1539014c7af499ab1f9b398eca4c0
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-11 12:32:42 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-07-11 15:19:32 +0900

    Lookbehind regexp must be fixed-length

    Fixes [Bug #21507]

commit 1317377fa74811cad088e3ee17926007a7d06732
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-07-07 22:08:54 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-11 15:08:49 +0900

    ZJIT: A64: Have add/sub to SP be single-instruction

    Previously a missed optimization for add followed by mov. While we're
    at it, have Add and Sub share the same match arm in arm64_split().

commit 0058bee57eb981a9a7b10f668e4ed229e25f6b3e
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-07-11 14:47:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-11 14:47:18 +0900

    Fix `heap-use-after-free` in `rb_getaddrinfo` (#13856)

    This change addresses the following ASAN error:

    ```
    ==1973462==ERROR: AddressSanitizer: heap-use-after-free on address 0x5110002117dc at pc 0x749c307c8a65 bp 0x7ffc3af331d0 sp 0x7ffc3af331c8
    READ of size 4 at 0x5110002117dc thread T0
        #0 0x749c307c8a64 in rb_getaddrinfo /tmp/ruby/src/trunk_asan/ext/socket/raddrinfo.c:564:14
        #1 0x749c307c8a64 in rsock_getaddrinfo /tmp/ruby/src/trunk_asan/ext/socket/raddrinfo.c:1008:21
        #2 0x749c307cac48 in rsock_addrinfo /tmp/ruby/src/trunk_asan/ext/socket/raddrinfo.c:1049:12
        #3 0x749c307b10ae in init_inetsock_internal /tmp/ruby/src/trunk_asan/ext/socket/ipsocket.c:62:23
        #4 0x562c5b2e327e in rb_ensure /tmp/ruby/src/trunk_asan/eval.c:1080:18
        #5 0x749c307aafd4 in rsock_init_inetsock /tmp/ruby/src/trunk_asan/ext/socket/ipsocket.c:1318:12
        #6 0x749c307b3b78 in tcp_svr_init /tmp/ruby/src/trunk_asan/ext/socket/tcpserver.c:39:12
    ```

    Fixed to avoid accessing memory that has already been freed after calling `free_getaddrinfo_arg`.

commit a02dcbfd46869e2f25b7045c23afa327f8ad750f
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-07-11 01:27:54 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-07-11 10:15:08 +0900

    Remove accidentally committed method Module.gccct_clear_table

    This was probably meant to be only for debugging. It was introduced in
    the big namespace on read commit: 382645d440d

commit 0e2bae82dc517d3252121d2090f4d00dcb1e70d2
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-11 10:12:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-11 10:12:29 +0900

    ZJIT: Print a message about ZJIT_RB_BUG when unused (#13852)

commit 6c66458070e2de45213f473ac30b431ebea81b9b
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-10 05:25:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-11 07:57:08 +0900

    Fix rb_eSystemExit raised in Ractor

    [Bug #21505]

    Previously `Ractor.new { exit }.join` would hang because SystemExit was
    special cased.

    This commit updates this to take the same path as other exceptions,
    which wraps the exception in a Ractor::RemoteError and does not end up
    exiting the main Ractor. I don't know if that's what this should do, but
    I think it's a reasonable behaviour as calling exit() in a Ractor is
    odd.

        in 'Ractor#join': thrown by remote Ractor. (Ractor::RemoteError)
           from -e:1:in '<main>'
        in 'Kernel#exit': exit (SystemExit)
                from -e:1:in 'block in <main>'

commit 470e11a4113f25b48e2892cef3dda8d7308172eb
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-11 04:13:22 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-11 06:10:50 +0900

    ZJIT: Mark Snapshot as having an output

    Other instructions use it as an operand and #13814 especially needs it
    to have an output for validation.

commit 45be0e99a8b12c1084be6a595e23f429d5e09ea8
  Author:     Max Bernstein <ruby@bernsteinbear.com>
  AuthorDate: 2025-07-10 23:47:45 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-11 06:10:50 +0900

    ZJIT: Validate that each IR instruction appears at most once

commit b1828cbbfe589b2ad5505058fd6199f0d88102c8
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-11 05:40:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-11 05:40:40 +0900

    ZJIT: Implement patch points on BOP redefinition (#13850)

    Co-authored-by: Max Bernstein <max@bernsteinbear.com>

commit 214983bd9be88903833558043a20ba1c2469c333
  Author:     Ken Jin <kenjin4096@gmail.com>
  AuthorDate: 2025-07-11 04:11:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-11 04:11:54 +0900

    ZJIT: Add def-use validator via dataflow analysis (#13814)

    This PR adds a validator based on dataflow analysis to ZJIT. It checks that all uses are dominated by a GEN-DEF prior.

    See issue https://github.com/Shopify/ruby/issues/591

    This is especially useful in validating optimizations don't zap away instructions that are actually needed, e.g. DCE.

    Also included: a slight refactor of the DCE code to its own function, so I can reuse it.

    Note: the algorithm uses the worklist algorithm rather than the iterative version for faster convergence.

    Co-Authored-By: Max Bernstein <ruby@bernsteinbear.com>

commit 9ab80a7455c2d661446f946b25d7c25176fcd72f
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-11 04:08:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-11 04:08:09 +0900

    ZJIT: Avoid optimizing locals on eval (#13840)

    * ZJIT: Avoid optimizing locals on eval

    * Maintain the local state for eval

commit 9d41541b0cce5fddd257f27c6fc6e950c9a36589
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-08 22:50:50 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-11 00:56:22 +0900

    Fix unused variable warnings in default.c in modular GC

    The asan and valgrind macros when BUILDING_MODULAR_GC don't use the variables
    which could the compiler to emit unused variable warnings.

commit 1fb4929ace125a889855ba2a32d0f2a1bf76103a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-10 19:38:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-11 00:18:20 +0900

    Make `rb_enc_autoload_p` atomic

    Using `encoding->max_enc_len` as a way to check if the encoding
    has been loaded isn't atomic, because it's not atomically set
    last.

    Intead we can use a dedicated atomic value inside the encoding table.

commit 51252ef8d78877e28f853619f85a7ca939dec59a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-10 23:40:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-10 23:40:49 +0900

    [DOC] Tweaks for String#concat (#13836)

commit a1acba6d14ccaae492d65cf38493fb2c76148251
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-10 03:59:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 23:02:22 +0900

    [DOC] Tweaks for String#codepoints

commit 800de9891ebc162607fef4eba4eff7666269ff4f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-10 21:39:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-10 21:42:28 +0900

    [Bug #19417] Update version guard

commit cdeb9c4d7020d36f157fde57eb12108c2515f031
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-07-10 21:35:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-10 21:35:13 +0900

    Fix timeout in Addrinfo.getaddrinfo to actually take effect (#13803)

    [Bug #21506] Fix timeout in Addrinfo.getaddrinfo to actually take effect

    This change fixes an issue where the timeout option in `Addrinfo.getaddrinfo` was not functioning as expected.

    It also addresses a related issue where specifying `fast_fallback: false` with `resolv_timeout` for `Socket.tcp` and`TCPSocket.new` would have no effect.

    The timeout option was originally introduced in:
    https://github.com/ruby/ruby/commit/6382f5cc91ac9e36776bc854632d9a1237250da7

    However, the value was noy used in current implementation:
    https://github.com/ruby/ruby/blob/3f0e0d5c8bf9046aee7f262a3f9a7524d51aaf3e/ext/socket/raddrinfo.c#L1282-1308

    Therefore, even if a timeout is specified and the duration elapses during name resolution, nothing happens. This is clearly not the intended behavior.

    `Addrinfo.getaddrinfo` has been made interruptible as of Feature #19965.
    This change uses that feature to interrupt name resolution when the specified timeout period elapses, raising a user-specified timeout error.
    The timeout can be specified in milliseconds.

    The same issue affects `Socket.tcp` and `TCPSocket.new` when `resolv_timeout` is set along with `fast_fallback: false`.
    `resolv_timeout` was introduced in the following commits:
    https://github.com/ruby/ruby/commit/6382f5cc91ac9e36776bc854632d9a1237250da7
    https://github.com/ruby/ruby/commit/511fe23fa2bdf1f17faa91e0558be47b5bb62b2a

    The reason is that with `fast_fallback: false`, these methods internally call the same `rsock_getaddrinfo()` as `Addrinfo.getaddrinfo`.
    This change addresses that as well.

commit bd18238a0e11b9a20ea17174bd9759c5a320fc45
  Author:     Janosch Müller <janosch84@gmail.com>
  AuthorDate: 2023-04-14 03:43:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-10 21:28:41 +0900

    [Bug #19417] Make word prop match join_control ...

    ... to conform to UTS 18 as mentioned in https://bugs.ruby-lang.org/issues/19417#note-3

    https://unicode.org/reports/tr18/#word states word should match join_control chars.

    It currently does not:

    ```ruby
    [*0x0..0xD799, *0xE000..0x10FFFF].map { |n| n.chr 'utf-8' } => all_chars
    all_chars.grep(/\p{join_control}/) => jc
    jc.count # => 2
    jc.grep(/\p{word}/).count # => 0
    ```

commit 65a0f46880ecb13994d3011b7a95ecbc5c61c5a0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-10 15:43:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-10 16:48:16 +0900

    Warn to use tsort for Ruby 3.6 that will be released at 2026

commit bec1ff625b85bd7d7459915f20a72d33440b02d9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-10 15:45:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-10 15:45:27 +0900

    Sort `COMMONOBJS` alphabetically

commit 8cc109a86f8804c0c0bf1d0008b84b1c9307f39e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-09 13:54:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-10 15:40:07 +0900

    [rubygems/rubygems] Update vendored resolv to 0.6.2

    https://github.com/rubygems/rubygems/commit/afbbc02763

commit 581da51cb5688e9d9fbb8665166b1f4b772068f7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-10 05:02:10 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-10 09:28:47 +0900

    Fix whitespace on some RB_VM_LOCKING calls

commit f5085c70f25fb1b435ac7d6604fc95492fe9537d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-10 08:03:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-10 08:03:23 +0900

    ZJIT: Mark profiled objects when marking ISEQ (#13784)

commit 1df94aaf0837afba5d865f0462cf1002435942b1
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-10 06:12:16 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-10 06:50:41 +0900

    ZJIT: Name side-exit test cases correctly

commit e2a81c738c453d072bdeae1e604a5a95c3376a9f
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-10 05:20:39 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-10 06:50:41 +0900

    ZJIT: Optimize `opt_and` and `opt_or` instructions for Fixnum

commit 10b582dab64509ed8de949b02b1c766f88f04621
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-10 00:18:04 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-10 06:50:41 +0900

    ZJIT: Profile `opt_and` and `opt_or` instructions

commit b146eae3b5e9154d3fb692e8fee200d602f57149
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-10 03:01:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 03:42:19 +0900

    [DOC] Tweaks for String#clear

commit 6c77a0c62b4b6221e4723a42155c7f934f1d450c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-10 02:38:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 03:41:51 +0900

    [DOC] Tweaks for String#chop

commit 3baed2ea38f0c1f3c59e548cb34b802d3318f7c2
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-10 02:55:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 03:41:11 +0900

    [DOC] Tweaks for String#chr

commit 94e702b0baa215f7b9f5fa0434b290c7b7762a2d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-10 02:27:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 02:38:53 +0900

    [DOC] Tweaks for String#chop

commit 54f28c1db9bfd1d8f90f665a1fa9d2b8a1fc8d00
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-08 08:44:42 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-10 02:38:04 +0900

    Avoid concurrently overflowing of shape_id

    Previously it was possible for two atomic increments of next_shape_id
    running concurrently to overflow MAX_SHAPE_ID. For this reason we need
    to do the test atomically with the allocation in shape_alloc returning
    NULL.

    This avoids overflowing next_shape_id by repeatedly attempting a CAS.
    Alternatively we could have allowed incrementing past MAX_SHAPE_ID and
    then clamping in rb_shapes_count, but this seems simpler.

commit cfc006d410014f03e59179994b4607c468c378c7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-08 08:18:40 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-10 02:38:04 +0900

    Always use atomics to get the shape count

    When sharing between threads we need both atomic reads and writes. We
    probably didn't need to use this in some cases (where we weren't running
    in multi-ractor mode) but I think it's best to be consistent.

commit 5dfd86cf3f35f59f551bf8636a503ae46a99e0d7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-08 08:17:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-10 02:38:04 +0900

    Fix off-by-one in shape_tree_mark/shape_tree_compact

    This was using < so subtract one from the last shape id would have us
    miss the last inserted shape. I think this is unlikely to have caused
    issues because I don't think the newest shape will ever have edges.

    We do need to use `- 1` because otherwise RSHAPE wraps around and
    returns the root shape.

commit 1de0b28cbb6c0012f767bece5fb7b455985d1a54
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-09 02:40:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 00:54:23 +0900

    [DOC] Tweaks for String#chomp

commit f17e5c4d5a3c611d0c0acd894d717fdb52b17323
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-09 02:53:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-10 00:54:07 +0900

    [DOC] Tweaks for String#chomp!

commit 087387794a468be4e69960c7831e15cd363a508a
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-07-09 20:44:55 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-07-09 22:11:17 +0900

    Update to ruby/spec@ed254ba

commit ba246c5a16c77cc7ade1498bdeeae8835713d931
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 20:16:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-09 20:18:32 +0900

    [ruby/io-wait] Revert "Fix dependency for ruby 2.6"

    This reverts commit https://github.com/ruby/io-wait/commit/2eb3841e9c8f.

    Ruby 2.6 support has been dropped.

    https://github.com/ruby/io-wait/commit/bcc343683e

commit 0c1c3ffa223cd3272cdbf5371879bee62401f541
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 18:02:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-09 19:34:56 +0900

    [ruby/io-wait] Revert https://github.com/ruby/io-wait/pull/9 "Make
    the gem a noop on Rubies older than
    2.6"

    This reverts commit https://github.com/ruby/io-wait/commit/75fcb74c327f.

    The version that does nothing with pre-ruby 2.6 has already been
    released, so there is no longer need to consider older rubies in newer
    versions.

    https://github.com/ruby/io-wait/commit/930d2f0d07

commit ddeefa2e7eb091d2ba532cfb9aaaffe15413bb8d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 15:53:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-09 19:34:54 +0900

    [ruby/io-wait] Bump up the required ruby version

    io-wait became a default gem at ruby 3.0.
    Even it can be installed on earlier versions, but the standard library
    will be loaded instead of the installed gem.

    https://github.com/ruby/io-wait/commit/15b96736cd

commit 25afe7ef645b0bd192b8c781ac8ad0f63b35d2e6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 10:46:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-09 17:56:38 +0900

    Rename variables to suit each method

commit cd10afedb580486294bb4daeab767cffac5abe43
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 10:27:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-09 17:56:37 +0900

    Removed a left over from c71a60c1dd02

    0a0eb2807ed7 has already replaced most of that code.

commit 3f0e0d5c8bf9046aee7f262a3f9a7524d51aaf3e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-09 15:45:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-09 15:59:58 +0900

    [ruby/io-nonblock] Bump up the required ruby version

    io-nonblock became a default gem at ruby 3.0.
    Even it can be installed on earlier versions, but the standard library
    will be loaded instead of the installed gem.

    https://github.com/ruby/io-nonblock/commit/c86d0d37af

commit 4ed2757543bcc6764315a6d2e4281a9d62ef49f1
  Author:     Sweta Sanghavi <sweta.sanghavi@gusto.com>
  AuthorDate: 2025-06-24 04:12:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:37 +0900

    [rubygems/rubygems] Update gemspec based on provided github username when exists

    * Conditionally set changelog_url if gh username passed
    and enabled
    * conditionally set homepage, source code uri, homepage uri when gh
      username passed in
    * update documentation to say username will also be used for gemspec file

    https://github.com/rubygems/rubygems/commit/1c1ada593b

commit 3feba181ed50b2109f35ed8225f3ed1e45bdca93
  Author:     Peteris Rudzusiks <rye@stripe.com>
  AuthorDate: 2025-06-20 01:17:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:37 +0900

    [rubygems/rubygems] Let s3_uri_signer accept the HTTP method

    https://github.com/rubygems/rubygems/commit/35fc7f9547

commit 5d880b75efe75a2be7046e75ea62bd02e0cf94a5
  Author:     Peteris Rudzusiks <rye@stripe.com>
  AuthorDate: 2025-06-12 22:59:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:36 +0900

    [rubygems/rubygems] Correctly sign S3 HEAD requests

    We sometimes send HEAD requests. The s3_uri_signer.rb code allways assumed GETs.
    This lead to consistently getting 403 responses back from S3. Recently, S3
    attempted to change the behaviour of how 403s are handled when TCP connections
    are reused,  which escalated this bug from "just noise" to "breaks gem installs".
    They've reverted that behaviour, so the severity of this problem is back to
    "just noise". Either way, it's a bug in rubygems and warrants a fix it.

    https://github.com/rubygems/rubygems/commit/c38f502b73

commit af6012b9427e182ac90de3591efa4ab9ac9e3fee
  Author:     Peteris Rudzusiks <rye@stripe.com>
  AuthorDate: 2025-06-12 22:33:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:35 +0900

    [rubygems/rubygems] Fix date format in S3 URI signer

    %M is minute of the hour.
    %m is month of year.
    We want the former, not the latter.

    https://github.com/rubygems/rubygems/commit/d7ca3fa279

commit c6da019770799afcf645a7cb0e34c5dcf5f9d5ca
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-05 00:00:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:34 +0900

    [rubygems/rubygems] Add blank line after every question

    To try make output a bit less messy.

    https://github.com/rubygems/rubygems/commit/92c8bc6769

commit 9942ff7c6aae1f19e557a9ed48265ba0018ef621
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-04 21:23:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:33 +0900

    [rubygems/rubygems] Use shorter questions as prompts in `bundle gem`

    If we use long explanations as prompts, sometimes the prompt gets
    printed twice due to a (I think) reline/readline bug.

    https://github.com/rubygems/rubygems/commit/987e0dfa90

commit 9b0f9f81391a82d24a029b0cb2ba93b1adc7970b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-04 21:36:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 13:48:32 +0900

    [rubygems/rubygems] Reword MIT explanation to make sense after reordering

    Previous wording assumed explanation was displayed after the question,
    not before.

    https://github.com/rubygems/rubygems/commit/04eb3430ba

commit e9cd3060ac79cad75ee57973f786c6ada08d5ebc
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-09 12:56:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-09 12:56:52 +0900

    ZJIT: Support guarding *Exact types (#13797)

    ZJIT already can generate guard type instructions for *Exact types.

    For example:

    ```
    def test(strings)
      strings.map do |string|
        string.bytesize
      end
    end

    test(["foo", "bar"])
    ```

    ```
    HIR:
    fn block in test:
    bb0(v0:BasicObject, v1:BasicObject):
      PatchPoint MethodRedefined(String@0x1014be890, bytesize@0x19f1)
      v7:StringExact = GuardType v1, StringExact
      v8:Fixnum = CCall bytesize@0x16fa4cc18, v7
      Return v8

    ```

    But zjit only supported guarding fixnums so this script would panic.

    This commit adds support for guarding *Exact types.

commit 5aaedc052c63d42479bcec890505976337490d71
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-08 18:44:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 06:26:42 +0900

    Re-ordered vcpkg related steps. It may be affected with VsDevCmd.bat

commit 80bf0744a08079da1e51f022489ab1a6859442fb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-08 18:42:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-09 06:26:42 +0900

    Use the latest version of Visual Studio with windows-2022 runner image

commit c691095f2ea67fa71dbf9cf1fbfe572b42ee7f1a
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-08 23:56:00 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-09 04:57:31 +0900

    ZJIT: Use BitSet in HIR

commit e59f404bea4cacadb8cb786a79ec57b3e44eb67b
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-08 23:55:23 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-09 04:57:31 +0900

    ZJIT: Add a BitSet type

commit 342ada1546fc3afffffec00a5a23c157a092e65b
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-09 02:52:02 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-09 04:51:44 +0900

    ZJIT: Use nil? optimization to test guard generation against different types

commit 79915e6f782dc71f32c0d8d45878f0990f755df5
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-09 01:38:44 +0900
  Commit:     Max Bernstein <ruby@bernsteinbear.com>
  CommitDate: 2025-07-09 04:51:43 +0900

    ZJIT: Profile `nil?` calls

    This allows ZJIT to profile `nil?` calls and create type guards for
    its receiver.

    - Add `zjit_profile` to `opt_nil_p` insn
    - Start profiling `opt_nil_p` calls
    - Use `runtime_exact_ruby_class` instead of `exact_ruby_class` to determine
      the profiled receiver class

commit b16047088ac9f649d2adaf92a99b3f47ef75ebe4
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-08 04:42:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-09 02:26:58 +0900

    [DOC] Tweaks for String#chars

commit 14971e75ce9b110ab969d775193e1cf2f5a362f3
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-08 04:28:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-09 02:26:46 +0900

    [DOC] Tweaks for String#center

commit 9e4157a01c1f3cab7cedc21121bf7f02a00ed148
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-08 05:37:19 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-09 01:28:03 +0900

    ZJIT: Make type definition code more consistent

commit af892c1be359900ef5f6be0724cbbec69f3650f0
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-08 05:37:02 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-09 01:28:03 +0900

    ZJIT: More accurately model Class types

commit 6c20082852a2f69a11d950b98ff179b2b737ed67
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-05 05:41:32 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-09 01:28:03 +0900

    ZJIT: Support inference of ModuleExact type

commit f5acefca44951dcaec53324826e4078a3c3ce6f9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 17:57:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 19:30:30 +0900

    [ruby/uri] Prefer dedicated assertion methods

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

commit 100c04307f2e5e0aaecd586b9defa576dd87fc13
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 18:57:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 19:00:21 +0900

    [ruby/etc] Prefer dedicated assertions

    https://github.com/ruby/etc/commit/9caddede76

commit 7ce4db8409845af13c4530a4e8237b3ccc38bbf1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 18:23:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 18:25:03 +0900

    [ruby/delegate] Prefer dedicated assertions

    https://github.com/ruby/delegate/commit/5ee4189537

commit b9782ab8932f9fb6a24a0522c579ca478f0bb052
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-08 16:25:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 16:25:26 +0900

    [ruby/resolv] v0.6.2

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

commit 9aa0300db2cd2514ca55c1f66022610ee8c3ca1f
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-07-08 16:19:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 16:25:26 +0900

    [ruby/resolv] Limit decompressed name length

    RFC 1035 specifies the 255-octet maximum name length. This change set
    checks the limit.

    https://github.com/ruby/resolv/commit/4c2f71b5e8

commit 680383c64204f2002f90644b810b290636ad73e3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 15:33:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 15:36:18 +0900

    [ruby/tsort] Exclude gemspec and git-related files

    https://github.com/ruby/tsort/commit/bf2e3a8695

commit 51de7c75e57d52468cef6492728282eb1c069caf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 15:22:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 15:36:17 +0900

    [ruby/tsort] Use git magic signatures to exclude files

    https://github.com/ruby/tsort/commit/ab55dcb7f3

commit 7578655767286cf9254d29efea710c45e2774b51
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-08 15:04:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-08 15:11:04 +0900

    [ruby/tsort] [DOC] Document constants

    https://github.com/ruby/tsort/commit/1d1711ad23

commit e0841a795bcf84a15c60cf77a172ba77fbbd70ec
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-08 08:46:21 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-08 08:46:21 +0900

    ZJIT: Fix Rust warnings (#13813)

commit 0239809ab94c589a751c1152e637fc393140923b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-08 08:32:35 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-08 08:32:35 +0900

    Remove test/.excludes/_appveyor

    We don't run AppVeyor anymore, so we shouldn't need this.

commit e9d7e105ef4685919eac0eb1a5a9c9366450cb19
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-08 04:14:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-08 04:14:56 +0900

    [DOC] Tweaks for String#casecmp? (#13810)

commit c2c0c220a8f773358bd34a5a23db63ae3041e55d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-08 02:03:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-08 04:10:17 +0900

    [DOC] Tweaks for String#casecmp

commit 1f024cfdba691733b98451d291fd13785bb19f58
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-07-08 03:26:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-08 03:26:49 +0900

    ZJIT: Add opnds macro for Vec<InsnId> to Vec<Opnd> (#13805)

    Along the same lines as the `opnd` macro we already have, but for a
    `Vec<InsnId>` instead of a single `InsnId`.

    This gets a few for loops and `jit.get_opnd` calls out of the `gen_`
    functions.

commit c1937480acc0896531b30464951209250b6a581b
  Author:     Ken Jin <kenjin4096@gmail.com>
  AuthorDate: 2025-07-08 00:45:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-08 00:45:01 +0900

    ZJIT: Add a simple HIR validator (#13780)

    This PR adds a simple validator for ZJIT's HIR.

    See issue https://github.com/Shopify/ruby/issues/591

commit 0bb44f291e7fb4ec5802826d40a5a445e51ef959
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-07 18:09:59 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-07 22:12:39 +0900

    Rename `ractor_safe_set` into `concurrent_set`

    There's nothing ractor related in them, and the classic terminology
    for these sort of data structures is `concurrent-*`, e.g.
    concurrent hash.

commit 0604d0c9dbd7338e125df0c76ec28e8298b1c4a2
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-07-06 02:52:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-07 22:03:02 +0900

    [DOC] Tweaks for String#capitalize!

commit 987b5bf97289da2b1db661da5d489e4e57909c1f
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-07 22:02:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-07 22:02:15 +0900

    [DOC] Tweaks for String#capitalize

commit 482f4cad8237647c4a0a5a5945cca5264333c8c2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-04 16:39:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-07 19:44:21 +0900

    Autoload encodings on the main ractor

    None of the datastructures involved in the require process are
    safe to call on a secondary ractor, however when autoloading
    encodings, we do so from the current ractor.

    So all sorts of corruption can happen when using an autoloaded
    encoding for the first time from a secondary ractor.

commit 002d74641871abfa45bf7c1d835699d31352fc8d
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-07-06 09:01:47 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-07 15:12:20 +0900

    ZJIT: Avoid double negative in Mem debug

    Prior to this commit the debug output for negative offsets would look
    like:

    ```
    Mem64[Reg(3) - -8
    ```

    That makes it look like we're adding instead of subtracting. After this
    commit we'll print:

    ```
    Mem64[Reg(3) - 8
    ```

commit d0fdbef4ea7d92e3215a1fca018c93f6e0ec3f51
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-05 16:10:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:23 +0900

    [ruby/json] Improve consistency of code style

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

commit e1d09ffe5d389c8d486238273e355aa192a99a2d
  Author:     License Update <license.update@rubygems.org>
  AuthorDate: 2025-07-06 09:38:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:15 +0900

    [rubygems/rubygems] Update SPDX license list as of 2025-07-01

    https://github.com/rubygems/rubygems/commit/56b55a198a

commit 3c552881d42382f96dab0c0f1a3073bd3b5cd128
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-04 01:09:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:14 +0900

    [rubygems/rubygems] Document that `global_gem_cache` also caches compiled extensions

    https://github.com/rubygems/rubygems/commit/265f718be7

commit 3eeffea28d9333e9f41758806635a3868e673577
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-04 01:10:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:13 +0900

    [rubygems/rubygems] Improve sentence

    "locally to the installing Ruby installation" felt a bit confusing.

    https://github.com/rubygems/rubygems/commit/c950720719

commit 6a5808965b4cb416cbdf1fc74356bbcec526bb6c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-02 17:39:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:12 +0900

    [rubygems/rubygems] Stop allowing calling `#gem` on random objects

    https://github.com/rubygems/rubygems/commit/4b8570ae15

commit 845e878f883f5f957802cf164e936de06c13e762
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 18:25:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:12 +0900

    [rubygems/rubygems] Add `default_cli_command` documentation

    I suspect most experienced users won't like the change in defaults, so
    document the setting to toggle back the current default.

    https://github.com/rubygems/rubygems/commit/93e2e2bef9

commit cd3389e5c25489e426b891ea673a483fdca1b2ce
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-02 16:31:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:11 +0900

    [rubygems/rubygems] Cancel `path_relative_to_cwd` change

    It only affected the `--path` flag which is actually getting removed, so
    I don't think it makes sense to make such change. The current behavior
    is reasonable and I tried to codify it with a few more specs.

    https://github.com/rubygems/rubygems/commit/6f520eb146

commit 5fa484a4418e0e38a2d871e9a6f9ac921522e1e9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 02:30:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:10 +0900

    [rubygems/rubygems] Move specs independent of gem name out of shared examples

    And rename the shared examples to "paths dependent on gem name".

    https://github.com/rubygems/rubygems/commit/cdcc8ba92a

commit 6d696fa3b4ef67e2ed3736c924dabccaa1da316a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 01:38:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:09 +0900

    [rubygems/rubygems] Move specs independent from gem_name out of "generating a gem" shared specs

    So that they don't run repeatedly.

    https://github.com/rubygems/rubygems/commit/1f65e879f4

commit fab1323ab3345930460743041a6aef18e1fe5c0c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 01:21:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:08 +0900

    [rubygems/rubygems] Remove unnecessary nesting

    https://github.com/rubygems/rubygems/commit/eac831a1b7

commit e7f11ecc2b6dd98e99b3a59db4f02c87cb36ff85
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 01:09:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:08 +0900

    [rubygems/rubygems] Actually run "generating a gem" shared examples for the more standard name

    They were only being run for "edge case" names, yet it tests all kind of
    things about generation.

    https://github.com/rubygems/rubygems/commit/3e9d805eea

commit 8a802f7e4e6ad4f39892f8a6de3aa4272b7d9236
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 01:05:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:07 +0900

    [rubygems/rubygems] Fix assertions to not depend on specific gem name

    https://github.com/rubygems/rubygems/commit/27a4af859e

commit e95adbfa68f583c4a67fdc4b0ba4eca85fa44b5e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 15:53:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:05 +0900

    [rubygems/rubygems] Remove unnecessary nesting from standalone specs

    Originally, all the specs in this file were put inside a shared examples
    block, and since then all specs were run only changing the cwd (either
    from root, or a subdirectory).

    This was in https://github.com/rubygems/rubygems/commit/d7291700d016, to cover a fix in
    the `bundler_path` method.

    However, reverting that fix does not make any of the specs in either of
    the main blocks fail! Only an unrelated spec of `bundle install
    --standalone --local` fails.

    The reason is that all specs set `path` to an absolute path, making the
    fix essentially uncovered.

    In order to simplify the file structure and improve runtime, I
    completely removed the shared examples block, and only run main specs
    for the root directory. Then I added a couple of extra specs to cover
    the original bug fix.

    This cuts runtime of this spec file in half, from 1m30s to 45s on my
    laptop.

    https://github.com/rubygems/rubygems/commit/cc506f17e0

commit 9918ca16713765879c6a71106a1cb310f1882c1b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-02 15:25:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:53:00 +0900

    [rubygems/rubygems] Remove `default_install_uses_path` setting

    The previous default can already be configured with `bundle config
    path.system true`.

    https://github.com/rubygems/rubygems/commit/cb483b79db

commit f609d3395e29c8bec70ef0d3c31e5f20d83cae15
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-02 15:24:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:52:59 +0900

    [rubygems/rubygems] Remove unnecessary feature flag check

    This spec now only runs in Bundler 2 mode.

    https://github.com/rubygems/rubygems/commit/f52cb240ca

commit fef00519263ae2463a63981e2032d987440babf3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-02 15:00:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-07 11:52:58 +0900

    [rubygems/rubygems] Remove `auto_clean_without_path` setting

    There already different ways of toggling off this behavior, like setting
    `bundle config clean false`, or configuring Bundler to install to system
    gems with `bundle config path.system true`.

    https://github.com/rubygems/rubygems/commit/6daa09f60a

commit 4d7e6220646a6465b4e42029e89fdc94bdf4b68e
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-07-06 16:04:24 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-06 16:04:24 +0900

    Update bundled gems list as of 2025-07-06

commit b6817392957b8879d2f847280abd481f4cd062fe
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-07-04 21:57:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-05 23:03:32 +0900

    [ruby/openssl] pkey/ec: avoid calling SYM2ID() on user-supplied objects

    Compare by the VALUE value instead of ID. Calling SYM2ID() on a dynamic
    symbol will pin a permanent ID.

    These methods only accept known static symbols, and passing anything
    else is an incorrect usage that results in an exception. Nonetheless,
    avoiding SYM2ID() seems to be a good idea since there is no runtime
    cost.

    https://github.com/ruby/openssl/commit/0d66296cdc

commit ad7d75c9324c643fb6639ae670e92c98297c8300
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-07-05 18:46:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-05 19:38:49 +0900

    Remove LIKELY macro for Universal Parser

    Ruby Parser not used LIKELY macro.
    So, can remove it.

commit 365317f6baa375a07ee11ad585d8c4ec55b46fcb
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-05 04:10:45 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-05 06:54:49 +0900

    Fix wrong GENIV WB on too_complex Ractor traversal

        WBCHECK ERROR: Missed write barrier detected!
          Parent object: 0x7c4a5f1f66c0 (wb_protected: true)
            rb_obj_info_dump: 0x00007c4a5f1f66c0 T_IMEMO/<fields>
          Reference counts - snapshot: 2, writebarrier: 0, current: 2, missed: 1
          Missing reference to: 0x7b6a5f2f7010
            rb_obj_info_dump: 0x00007b6a5f2f7010 T_ARRAY/Array [E ] len: 1 (embed)

commit 12b0ce3875806f7f6a14f3d92cedb132bb57f6b4
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-05 04:02:18 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-05 06:54:49 +0900

    Remove unused src param from rb_shape_copy_fields

commit 8cd583269428bf0f83b474ea7718715ce96f441b
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-05 03:58:39 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-05 06:54:49 +0900

    Fix wrong write barrier on fields copy

    Previously this write barrier was using the destination object as the
    new parent, rather than the fields object.

    Found by wbcheck

commit 32453560de9ac10c4d234686c94696625916dea6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-01 08:28:49 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-05 06:54:49 +0900

    Fix missed write barrier on Ractor send move

    When moving a "generic IV" object, we need a write barrier to the fields
    object.

       WBCHECK ERROR: Missed write barrier detected!
         Parent object: 0x7c913641d1a0 (wb_protected: true)
           rb_obj_info_dump: 0x00007c913641d1a0 T_ARRAY/Array [E ] len: 10 (embed)
         Reference counts - snapshot: 1, writebarrier: 0, current: 2, missed: 1
         Missing reference to: 0x7bf1364e56d0
           rb_obj_info_dump: 0x00007bf1364e56d0 T_IMEMO/<fields>

commit 5f1ca8ffbe53f9d8d6c054f18d7524889498aedd
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-28 12:51:08 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-05 06:54:49 +0900

    Fix ractor imemo fields write barrier parent

        $ RUBY_GC_LIBRARY=wbcheck ./miniruby -e 's = String.new; s.instance_variable_set(:@x, []); Ractor.make_shareable(s, copy: true)'

        WBCHECK ERROR: Missed write barrier detected!
          Parent object: 0x7ba8162dc890 (wb_protected: true)
            rb_obj_info_dump: 0x00007ba8162dc890 T_IMEMO/<fields>
          Reference counts - snapshot: 2, writebarrier: 0, current: 2, missed: 1
          Missing reference to: 0x7ba8162dcad0
            rb_obj_info_dump: 0x00007ba8162dcad0 T_ARRAY/Array [E ] len: 0 (embed)

        WBCHECK SUMMARY: Found 1 objects with missed write barriers (1 total violations)

commit 116d11062f743a3d9bca556ce03ebfbe374fffea
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-03 22:18:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-05 06:41:57 +0900

    Assume that symbol in rb_check_symbol is not garbage

    rb_check_symbol is a public API, so it is always a bug if the user holds
    on to a dead object and passes it in.

commit 350df4fbd96294ddfc3bf6ea7402ac99241e8912
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-05 00:42:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-05 00:42:29 +0900

    [DOC] Tweaks for Case Mapping doc

commit 38993efb27a35b37ecb938f7791fa7c51fbf4bac
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-20 02:36:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-04 18:17:55 +0900

    [ruby/openssl] ssl: rename SSLContext#ecdh_curves= to #groups=

    TLS 1.3 renamed the "elliptic_curves" extension to "supported_groups"
    to reflect that it now covers more than just ECDH groups. OpenSSL 1.1.1
    followed this change by renaming the corresponding API from
    SSL_CTX_set1_curves_list() to SSL_CTX_set1_groups_list().

    Update ruby/openssl to use the new name, too. The current method name
    SSLContext#ecdh_curves= is retained as an alias for #group=.

    https://github.com/ruby/openssl/commit/59e98604e0

commit 4d6fac3e9515a71edd6d77e59c3a04dcbe0c444f
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-07-04 16:05:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-04 16:05:42 +0900

    Update bundled gems list as of 2025-07-03

commit 5564e0a58d928d0f34bfd14989070c802f4eaa0f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-04 15:30:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-04 15:31:02 +0900

    Fixed wrong commit hash

commit 856962fa38bfe071baa22870aaa2bd8c1ce9f8f3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-03 18:46:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-04 15:23:20 +0900

    ractor_sync.c: Optimize `ractor_set_successor_once` to be lock free

commit 95235fd528f38dcf2400abdc09a1ec2d71384ced
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-03 18:56:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-04 15:23:20 +0900

    benchmark_driver: Stop using `Ractor#take`

commit 24ac9f11dedcf1b1003000dcb25774b0a3bc38a7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-04 12:52:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-04 13:39:10 +0900

    Revert "Add locks around accesses/modifications to global encodings table"

    This reverts commit cf4d37fbc079116453e69cf08ea8007d0e1c73e6.

commit 50704fe8e6e5b75b5d0d4544247cdabf7c8411ea
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-07-04 12:52:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-04 13:39:10 +0900

    Revert "Make get/set default internal/external encoding lock-free"

    This reverts commit dda5a04f2b4835582dba09ba33797258a61efafe.

commit b88cbe49c3bbed50028e5e610ae492c736e367b1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-04 13:26:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-04 13:26:25 +0900

    Added io-nonblock and io-wait entries

commit 0ce4b43ebf1b4329023c0db84be5b7c1229e7bea
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-04 13:14:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-04 13:14:45 +0900

    Update default gems and bundled gems list at expand_tabs.rb

commit 9503a77da271d1684b6dd813f2ca569213419bfb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-04 13:01:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-04 13:01:39 +0900

    DRb has been extracted as bundled gems

commit 66aaf5b67f60cd45b8e7214d5bc8539e0063e328
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-04 10:24:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-04 11:33:24 +0900

    actions/cache is working with relative path

commit 68af19290ad192c0dab50d35ae1f0d811077aee1
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-04 04:55:27 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-04 09:43:44 +0900

    Support inference of ClassExact type

commit 0c694b56880e8501f328cb3501ac622cc1313a68
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-04 04:54:47 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-04 09:43:44 +0900

    Add missed runtime_exact_ruby_class case for Regexp

commit dda5a04f2b4835582dba09ba33797258a61efafe
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-07-01 00:20:05 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-04 05:33:10 +0900

    Make get/set default internal/external encoding lock-free

    Also, make sure autoloading of encodings is safe across ractors.

commit cf4d37fbc079116453e69cf08ea8007d0e1c73e6
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-26 01:44:40 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-04 05:33:10 +0900

    Add locks around accesses/modifications to global encodings table

    This fixes segfaults and errors of the type "Encoding not found" when
    using encoding-related methods and internal encoding c functions across
    ractors.

    Example of a possible segfault in release mode or assertion error in debug mode:

    ```ruby
    rs = []
    100.times do
      rs << Ractor.new do
        "abc".force_encoding(Encoding.list.shuffle.first)
      end
    end
    while rs.any?
      r, obj = Ractor.select(*rs)
      rs.delete(r)
    end
    ```

commit 4f4408e98933f65f9d5b1752c2892218f2224de3
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-13 04:13:08 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-07-04 05:20:34 +0900

    Get transcoding to work across ractors by locking certain operations

    Ex: `str.encode` and `str.encode!` work across ractors now.

    The global table `transcoder_table` needs a lock around each st_lookup/st_insert, and it's a two-level
    table so the second level also needs to be locked around insertion/deletion. In addition to this, the
    transcoder entries (values in the second-level hash table) need to be locked around retrieving them and
    loading them as they are loaded lazily.

    The transcoding objects (`Encoding::Converter`) can't be made shareable, so their operations don't need to be locked.

commit ed3fd94e77862c8e8a81a06f69cad95c1ec31619
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-04 05:09:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-04 05:09:10 +0900

    ZJIT: Panic on BOP redefinition only when needed (#13782)

commit c584cc079eef2f4e314a97eff310c9947e1d7010
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-04 01:40:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-04 01:40:43 +0900

    ZJIT: Enable one more btest (#13781)

commit 0abe17dae0bad6ed60b13222d83355decc68ac7c
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-04 01:30:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-04 01:30:45 +0900

    ZJIT: Bail out on register spill (#13773)

commit 57f4460f0c040bfaaa8486540bb88ffef6b8aa53
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-04 01:22:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-04 01:22:45 +0900

    ZJIT: Skip a hanging ractor test (#13774)

commit 8b2d76136ba00d634522fbe46e2131dd7c8fa99c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-07-03 00:26:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-03 22:05:23 +0900

    Assume that the symbol is not garbage in rb_sym2id

    rb_sym2id is a public API, so it is always a bug if the user holds on to
    a dead object and passes it in.

commit 4592d637399c105a19cd8d3d3d9038ba32af28a3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 21:44:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 21:44:08 +0900

    Suppress a warning in code for SOCKS5

commit 1f976509a5c3c59939b5c0535ee4b69b1ea689cd
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-03 17:52:32 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-03 19:19:04 +0900

    symbol.c: enforce `intern_str` is always called with a lock

    Add missing locks in `rb_intern_str`, `rb_id_attrset` and `rb_intern3`.

commit 517c1067098957a7ad73cd611072f8d769db8139
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-02 20:10:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-03 16:20:22 +0900

    imemo_fields_set: save copying when reassigning a variable

    If we still fit in the existing imemo/fields object we can
    update it atomically, saving a reallocation.

commit a020e3490a1487d351868d3283e7881f03b3d7d2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 15:46:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 15:46:57 +0900

    [DOC] Deleted the description about 2.2 and earlier

commit c31bfd5467fb95c814db656a2d1d01641e10031b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 15:44:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 15:44:24 +0900

    [DOC] Fix markup in security.rdoc

commit 5817e58a60354050cfa059ec8e89202b6e9598d4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 13:29:32 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 14:29:48 +0900

    Extract last-modified time after fetch completes

commit 319062e4a0608c474e9c934fc4a1171ea2aa1269
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 13:23:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 14:29:48 +0900

    Prefer autotools repository mirror for build-aux files

    gcc master is still using 2021 version files.

commit 9782bd52353526a50b77ddba3687d7e921d06eaa
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-03 13:19:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-03 14:29:48 +0900

    Drop HTTP support in downloader.rb

    The only use case is access to `repo.or.cz`, and it redirects HTTP
    requests to HTTPS now.

commit 81da38b3080a0d971d7b1720015117fef2d19c98
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-07-03 04:25:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-03 13:43:00 +0900

    Sync RubyGems

commit f679202a0fbfe6dac1d6912742edf522c266e709
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 17:16:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-03 13:43:00 +0900

    Remove old `bundle.rb` script usage

commit 4126c1c52219eec79f76f51687c5830234c5c6c6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 00:50:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-03 13:43:00 +0900

    Adapt to upstream change in Bundler specs

commit d5f5a56bf291d2456366bfb824d4413d02465f87
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-03 05:01:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-03 05:01:24 +0900

    ZJIT: Reject ISEQs with too-large stack_max (#13770)

commit e240b415a5286f7ec0b1edfc5a1a540c62118fd4
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-03 03:57:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-03 03:57:09 +0900

    ZJIT: Add reason for SideExit (#13768)

    This makes it clearer what is unimplemented when looking at HIR dumps.

commit 1d31c98e04098d406ae97fd51698533ab4933a0b
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-03 02:46:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-03 02:46:08 +0900

    ZJIT: Avoid panicing with "Option::unwrap() on None" (#13762)

commit 6e28574ed08b076783035dc67ed0067550ff6bbe
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-03 02:37:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-03 02:37:30 +0900

    ZJIT: Support spilling basic block arguments (#13761)

    Co-authored-by: Max Bernstein <max@bernsteinbear.com>

commit a0bf36a9f42f8d627dacb2f7f3a697d53f712a5c
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-03 02:15:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-03 02:15:52 +0900

    ZJIT: Annotate NilClass#nil? and Kernel#nil?

    These methods return fixed `true` or `false` so we can be certain about their return types.

commit ddb8de1f5f16e289a1c25bf771d62d0b8844ec7c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-27 23:51:26 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-03 00:52:24 +0900

    ZJIT: `throw` to HIR

commit 565ab3ef57e6281199f32a932f7d176c989d89cc
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-27 23:32:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-07-03 00:52:24 +0900

    ZJIT: Use initialization shorthand

commit efc686697ec4e9497b916a4265c88ed648f85800
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-07-02 21:12:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-02 21:12:48 +0900

    Launchable: Temporarily remove Launchable integration from Compilatio… (#13759)

    Launchable: Temporarily remove Launchable integration from Compilations workflow

    Currently, Launchable is unstable, which occationally causes workflow issues. Until this problem is fixed, we'll temporary disable Launchable in the Compilations workflow.

commit 6af5398359712fe2d54365778e2aae4acf344c57
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-07-02 21:06:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-02 21:06:59 +0900

    ZJIT: Support `Regexp` type (#13760)

commit d31467311573b39bd07e182f863a26069f21d481
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-02 12:37:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-02 12:37:08 +0900

    CI: Fix appending to an array

    Parentheses are required to add a new element to an array, not to the
    first element of the array.

commit 8bf13f26055d1c4eb7989b5ed846727d89da8220
  Author:     Joshua Young <djry1999@gmail.com>
  AuthorDate: 2025-06-27 22:35:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 11:28:23 +0900

    Reduce allocations in `Gem::BUNDLED_GEMS.warning?`

commit d5b4b59500f00c26e19aec838adaef1baf14120c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 23:52:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Add Errno::ENETDOWN and Errno::EHOSTUNREACH to non retryable errors

    Connection errors as well, so useless to retry.

    https://github.com/rubygems/rubygems/commit/d2d211651a

commit 35dd2b2994570ac40fd0c5ebb683552b667e07f6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 04:58:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Split HTTP_ERRORS into retryable and non retryable

    https://github.com/rubygems/rubygems/commit/c241a640fc

commit c4c646d1bb96a5b7263c6e4cc962fc61b4d361b3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 20:32:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Handle connection refused and Errno::EADDRNOTAVAIL as non-retryable

    https://github.com/rubygems/rubygems/commit/cd529776d5

commit 46a90f9998ec16eb6c97560e25fb597d4e3afdbe
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 20:46:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Refactor downloader specs to better test real behavior

    In particular, no route to host errors are actually fatal since they are
    usually raised as `SocketError`'s, while the specs were incorrectly
    testing that they are retryable.

    https://github.com/rubygems/rubygems/commit/9410ceb36b

commit b671133c0649286aaaa317f0cfbbc3f03210a75f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 20:41:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Move Bundler::Fetcher::HTTP_ERRORS to Bundler::Fetcher::DOWNLOADER

    And deprecate the old constant.

    It's only used in this class, and in Bundler::Fetcher there's already
    FAIL_ERRORS, very similar to it. So this makes things less confusing.

    https://github.com/rubygems/rubygems/commit/d32ed63d6f

commit d2204044f48f9f87565b4c994158a5b9b44afe3a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 20:40:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Add back and deprecate Bundler::Fetcher::NET_ERRORS

    https://github.com/rubygems/rubygems/commit/4a4e5828db

commit 75cdf696e76a786c523550886c283f378acff357
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 02:58:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Fix typos

    https://github.com/rubygems/rubygems/commit/2a2317249f

commit 7f057e13e0f5721b9bb3c9b1561aabfc1a9582dd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 04:51:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Add a `verbose` setting to enable verbose output for all commands

    https://github.com/rubygems/rubygems/commit/0aa1be946f

commit 29ceefe5955a6a012cf24679c5f8326739c41c9c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 04:50:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Consistently access CLI flags with symbols

    https://github.com/rubygems/rubygems/commit/1497d3f146

commit 560edfc8f752a124960fcc346d5d2bfe82b91b7f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-06-30 20:50:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Fix `bundle console` printing bug report template on `NameError` during require

    Followup to https://github.com/rubygems/rubygems/pull/8436

    It fixed showing the template when requiring a non-existant file but
    user code can do much more than just trying to require other code.

    I encountered this particular case because of load order issues, where a library wasn't able
    to properly require itself when loaded before some other library.

    https://github.com/rubygems/rubygems/commit/1c910e5afe

commit 098b0cd7be860fb975ea348f27a8ab0932563e10
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-06-28 07:04:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:19 +0900

    [rubygems/rubygems] Update man pages for the `bundle doctor ssl` subcommand:

    - ### Problem

      The man pages for `bundle doctor` which shows up when running
      `bundle doctor --help` are no longer in sync with the CLI.

      ### Context

      In #8624, we introduced a change that modifies the structure of
      the `bundle doctor` command.
      The change added a new subcommand as well a new flag option
      `bundle doctor --ssl`

      Bundler uses man pages to display help of Thor commands, those man
      pages are indepedent from Thor options and need to be kept in sync.

      ### Solution

      Updated the man page for `bundle doctor`. Now that this command is
      a subcommand composed of `bundle doctor diagnose` (the default) ,
      and `bundle doctor ssl`, I modified the man page to follow
      the same markdown structure as other subcommands such as
      [bundle plugin](https://github.com/rubygems/rubygems/blob/a902381660f8d17b5c4a93226678c23e046f464f/bundler/lib/bundler/man/bundle-plugin.1.ronn)

    https://github.com/rubygems/rubygems/commit/de047f1458

commit 82692b32c1d67185e80ba40379e413fc377097f8
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:38:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Log when `simulate_version` is enabled

    Tweak version output and verbose mode to be transparent about Bundler
    simulating a different version than the real one.

    https://github.com/rubygems/rubygems/commit/179354d153

commit 0e1ca4962f6346fb3c41ce0988d855ac68d49625
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:34:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] None of the global options have default so this seems unnecessary

    https://github.com/rubygems/rubygems/commit/bea87eab0b

commit c6b6b4f52c9b3417042298fa37bd5f1ca25508ad
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:31:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Remove duplicated spec

    https://github.com/rubygems/rubygems/commit/66aabcc9f3

commit efd8b6d2015fdd83fa3e831b9ec7fc3e5b37b80b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:24:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Use explicit receiver when accessing settings

    We have a quality spec that parses all code for explicit usages of
    `Bundler.settings[<something>`, to detect undocumented settings. So
    using `Bundler.settings` consistently will help catching these things.

    https://github.com/rubygems/rubygems/commit/ce01bb7cc5

commit cac7644bdb28ca96df269ddd508a2ae056d9898f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:23:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Document the `simulate_version` setting

    https://github.com/rubygems/rubygems/commit/1ffd83f6c2

commit daedebd64ade4b7535432cb5b7df6061e796b085
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:16:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Remove `print_only_version_number` setting

    I don't think it makes sense to make this tiny behavior change
    configurable. If someone wants to parse version output, and we have a
    public setting, they are going to need to accommodate their regexps to
    both values of the setting.

    In addition to this, I plan to enhance version output with a note about
    "simulated version", and in that case, "print_only_version_number" would
    no longer hold, since what we print will be more than that anyways.

    So, I'd like to remove the setting and change the output in Bundler 4
    with no way to opt out.

    https://github.com/rubygems/rubygems/commit/d84e9dcf09

commit b5ef0114cd8f7fb5564024e56b56036e6e1a8c43
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 01:56:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Migrate all remaining specs to run offline

    Also removed the helper to install real gems during specs to avoid the
    temptation of introducing network stuff again.

    https://github.com/rubygems/rubygems/commit/a1ab5e319a

commit 5386b6568f34915605843852e144f3cac6a89ba9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 01:23:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Verify specs still using realworld gems still pass with latest versions

    https://github.com/rubygems/rubygems/commit/9da44ade24

commit 41c44ff8e60291a420e64a7ef6c697ca264e669b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-26 01:59:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Realworld optparse gem should be no longer necessary

    Optparse was vendored a while ago.

    https://github.com/rubygems/rubygems/commit/d7afd43756

commit fe44e9580874d6088c1d70c4266a8d2a70b9ef1d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-26 01:52:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Remove possibly incorrect spec

    I spent quite a while on this and I have not been able to reproduce or
    even understand how the original issue would happen. I also suspect it
    never actually reproduced the original problem properly.

    Since I'm in the middle of migrating all specs away from touching the
    network, I decided to remove it since I can't write an equivalent spec
    without being able to understand the original problem.

    https://github.com/rubygems/rubygems/commit/c9dfa20877

commit 66c67098259ef32b003d6b479fe7adc3e40d089f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 01:55:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] `bundle viz` deprecation specs don't actually need the gem installed

    The deprecation message is printed regardless.

    https://github.com/rubygems/rubygems/commit/397999a390

commit e5d1720e06e6ee35bdc84cf78b60cbf171fa0207
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 00:26:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Spec about cleaning default gems executables no longer needs realworld gems

    https://github.com/rubygems/rubygems/commit/9cf284997b

commit eb979d998a373c5a7e87be5c7a63e3e0377f0af1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-10 23:44:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Don't use currently configured value for default branch

    https://github.com/rubygems/rubygems/commit/1ae8533690

commit b953d1134acd0f0685405d5163a8d3d8d630f22d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 19:38:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Migrate `bundle viz` specs to run offline

    https://github.com/rubygems/rubygems/commit/672722cd4d

commit 2fd1f4e6d9126b71eeab8d09c0e8725e6fbd302d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 01:15:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Logger realworld gem is no longer necessary

    https://github.com/rubygems/rubygems/commit/6e6288a496

commit 669813a48dff0fbe44e96690d8e3ab35fc507e3c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 01:12:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Realworld tsort gem should be no longer necessary

    https://github.com/rubygems/rubygems/commit/93d9b97182

commit d8cf0013efe7c56d590a055b8149adce120f0fdb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 00:17:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] These specs need stringio only for old versions

    https://github.com/rubygems/rubygems/commit/a44cdf4c21

commit cd742b6be6585113032e473f32af666e971947fd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 20:35:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Simpler glob to find path to rake

    https://github.com/rubygems/rubygems/commit/852db00169

commit 83c403c4d8654e8eda68eee8190f5cc2dcb96d78
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 20:30:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Rename some helpers to avoid name classes

    I plan to introduce a `base_system_gems` helper to actually install gems
    from `base_system_gem_path` into system gems but that would collapse
    with an existing helper.

    https://github.com/rubygems/rubygems/commit/714c209e62

commit e1896c1910b9a6537019898d9dfde6889363112b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 19:37:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Lock specs don't need the real rake gem

    https://github.com/rubygems/rubygems/commit/d795b8fcb4

commit 99178c3ebb05da31c8756e18bc46d7b230f9e6ed
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-03 22:51:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 10:34:18 +0900

    [rubygems/rubygems] Migrate `bundle add` specs to run offline

    https://github.com/rubygems/rubygems/commit/02de767e14

commit f11daeb6250e161306c91786a0a02bc6bf490e35
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-02 10:15:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-02 10:15:24 +0900

    Declaring with a prototype

    In C99, a function declaration with an empty argument list means "no
    information about the arguments", not "it takes no arguments" - the
    so-called old K&R style.

commit d77e02bd85ab7f841df8d473bac214b9a92a3506
  Author:     Z. Liu <zhixu.liu@gmail.com>
  AuthorDate: 2025-07-02 10:09:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-02 10:09:52 +0900

    [Bug #21497] [ruby/socket]: add full prototype

    otherwise, gcc 15 will complain:

    > init.c:573:19: error: too many arguments to function ‘Rconnect’; expected 0, have 3
    >   573 |     return (VALUE)Rconnect(arg->fd, arg->sockaddr, arg->len);
    >       |                   ^~~~~~~~ ~~~~~~~
    > In file included from init.c:11:
    > rubysocket.h:294:5: note: declared here
    >   294 | int Rconnect();
    >       |     ^~~~~~~~

    > sockssocket.c:33:9: error: too many arguments to function ‘SOCKSinit’; expected 0, have 1
    >    33 |         SOCKSinit("ruby");
    >       |         ^~~~~~~~~ ~~~~~~
    > In file included from sockssocket.c:11:
    > rubysocket.h:293:6: note: declared here
    >   293 | void SOCKSinit();
    >       |      ^~~~~~~~~

    Signed-off-by: Z. Liu <zhixu.liu@gmail.com>

commit 2cb065d0a267fbd89f6b42447159146cb8694ade
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-02 09:23:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-02 09:23:08 +0900

    Update gcc for LTO to 15

commit 29657a1ecb2a546a8b1a2a46c6fc0fe163b83a6c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-02 07:46:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-02 07:46:57 +0900

    Fixup 9dc60de4fcd

    Sync erb.gemspec to under the `lib/erb/ directory.

commit 53baafe4960f588d972262171540be0d88f730bf
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-02 07:11:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-02 07:11:58 +0900

    ZJIT: Shorten Debug print for 64-bit VReg (#13763)

commit 2fda84347964a9dc8ab70ccc2906d35bcaf15333
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-02 03:59:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-02 03:59:33 +0900

    ZJIT: Stop tracking EP == BP assumption on JIT entry (#13752)

    * ZJIT: Stop tracking EP == BP assumption on JIT entry

    * Enable test_method.rb as well

commit f4ea42a8ca719ebc3a42ea12e07ca8f3189afef4
  Author:     Kevin Saison <kevin.saison91@gmail.com>
  AuthorDate: 2025-06-30 21:11:19 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-07-01 22:18:14 +0900

    [DOC] Fix ARGF example

commit 9d080765cc3c6266521863ffe5882ba8d8322271
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-01 20:28:47 +0900

    [ruby/json] Run `have_func` with the header providing the declarations

    https://github.com/ruby/json/commit/95fb084027

commit ae605b652da0933ae10aa7d40107b0234afd11ac
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-01 15:48:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-01 20:28:45 +0900

    [ruby/json] Stop calling `__builtin_cpu_init`

    It's only needed if using GCC `ifunc` mecanism, which
    we don't.

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

commit 94803fe9e7b7048a031c4d39e27bd90373dde25c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-07-01 20:21:19 +0900

    [ruby/strscan] Run `have_func` with the header providing the declarations

    https://github.com/ruby/strscan/commit/18c0a59b65

commit 5277ca1431af870d7cf28470d4a6b8ee443e50ee
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 20:06:48 +0900

    [ruby/openssl] Run `have_func` with the header providing the declarations

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

commit 8903166648776b17cb574557f25e5a77114f8b94
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 20:03:11 +0900

    [ruby/io-wait] Run `have_func` with the header providing the declarations

    https://github.com/ruby/io-wait/commit/48309d7877

commit ac72a25a57896724c6e4542829f5abde8731ed02
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 20:02:27 +0900

    [ruby/io-nonblock] Run `have_func` with the header providing the declarations

    https://github.com/ruby/io-nonblock/commit/70909f5362

commit 134bdf2d34a2630787cd5cf967097556b11d1c6e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 20:00:58 +0900

    [ruby/io-console] Run `have_func` with the header providing the declarations

    https://github.com/ruby/io-console/commit/dd013030dd

commit 11fe8b26c1402461297cab902283c4601e699b35
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:38:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 20:00:23 +0900

    [ruby/etc] Run `have_func` with the header providing the declarations

    https://github.com/ruby/etc/commit/6668bfd42a

commit 9ab3e47d35057cfe7ad0649e2e956d9897ebb3fc
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-30 17:21:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-01 19:39:23 +0900

    Simplify `rb_fields_tbl_copy`

    Now that ivars are stored in a imemo/fields, we can just clone
    the fields object.

commit ad65d53aa4d241359df183afd3756653cc1571f9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-07-01 17:28:44 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-07-01 19:39:23 +0900

    class.c: Stop deleting __classpath__ / __tmp_classpath__

    These used to be private variables to store the class name
    but aren't a thing since several versions.

commit d3d249b9048b338535ae033acb3606abf174b2da
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:24:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 17:36:19 +0900

    [ruby/io-console] Fix removing unexpected control chars

    `cc` is created as `"\C-x"`, it is a String since ruby 1.9.

    https://github.com/ruby/io-console/commit/65c9266feb

commit 06f9fc20ec1d41bce7cbac14c5f8b977dfc479d3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-07-01 17:23:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 17:32:29 +0900

    [ruby/io-console] Use `host_os` in RbConfig instead of `RUBY_PLATFORM` for JRuby

    https://github.com/ruby/io-console/commit/f8b33f38ae

commit ce6e61209510b648dace64468e1b602ddc8696fc
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-07-01 16:06:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 16:06:23 +0900

    Update bundled gems list as of 2025-07-01

commit 9f148574184ccd38b8c4003433e8e1f0f27fce57
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-01 00:07:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:37 +0900

    [ruby/json] Suppress -Wunused-function

    https://github.com/ruby/json/commit/94ed471814

commit 8a2210b351dedde847488734e646e112d9bd3dbe
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 22:34:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:36 +0900

    [ruby/json] Refactor simd/conf.rb - duplicate code

    Integrate duplicate code by extracting headers, types and
    initialization code.

    https://github.com/ruby/json/commit/1a768d9179

commit f909c907bbe7c2d9d433ff61e46bcb62e8316c25
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 21:53:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:35 +0900

    [ruby/json] Refactor simd/conf.rb - unnecessary `have_type`

    Remove `have_type` calls because the next `try_compile` calls check
    those types.

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

commit 7d9c3004cfe4ccba6afb17a1b90ff3c983bd007f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 21:43:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:35 +0900

    [ruby/json] Refactor simd/conf.rb - conditions to enable

    See the results of `have_type` and `try_compile` in addition to
    `have_header` for NEON as well as x86_64.  The former results were
    just ignored, and `HAVE_TYPE_` macros are unused too.

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

commit a9e2a818bd8dd8787d3e211c0384725125b9111c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 21:38:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:34 +0900

    [ruby/json] Refactor simd/conf.rb - balance

    Align code for arm and x86_64 in parallel.

    https://github.com/ruby/json/commit/2211e30a59

commit 60eb1d5d233a753aaa2d60b305caf1909192b55a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 21:37:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:33 +0900

    [ruby/json] Refactor simd/conf.rb - compiler warnings

    Suppress warnings for old style function definition and unused
    variable.

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

commit 91d5db55054c3d9dcdf7535c93303ba4c4ffc6b1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-30 21:17:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 15:35:32 +0900

    [ruby/json] Use `load` simd/conf.rb

    When both extconf.rb of generator and parser are run in one process,
    the second `require_relative` does nothing.

    https://github.com/ruby/json/commit/8e775320b7

commit 9dc60de4fcda927f4b7e4d8f160cc788c2ff93fa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-01 13:33:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 14:51:09 +0900

    Fixed inconsistency gemspec location

    foo.gemspec should be located under the `lib/foo` directory.

commit c3bdf7043cca0131e7ca66c1bc76ae6e24dc8965
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-01 10:44:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 11:50:11 +0900

    Use git ls-files instead of Dir.glob because optparse has optionparser.rb that is outside of lib/optparse directory

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit 5ee63157040e5d5e3960c15e5fc685c08ee543ad
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-01 10:00:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-07-01 11:50:11 +0900

    Use Dir.glob and base keyword arg for the installer of Ruby package

commit 05443bb7e92498ded149ad0324f8d4fc7321e9ee
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-07-01 09:47:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-07-01 10:02:52 +0900

    [ruby/optparse] Use Dir.glob and base keyword arg for the installer of Ruby package

    https://github.com/ruby/optparse/commit/24374b42d3

commit 03e08a946d498e75e1bb31ddb28fc012dc4694f5
  Author:     ywenc <ywenc@github.com>
  AuthorDate: 2025-07-01 04:26:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-01 09:04:15 +0900

    ZJIT: Add codegen for IsNil

commit 4a7d1a7062e7802eb6758bab121eecde59b19125
  Author:     ywenc <ywenc@github.com>
  AuthorDate: 2025-07-01 00:18:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-01 09:04:15 +0900

    ZJIT: Add IsNil optimization and tests for optimized hir

commit 8f758de4c8838509136fc9ba1887d7b6db49b2a5
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-01 07:29:33 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-01 08:21:42 +0900

    ZJIT: Rename Ruby<->Rust functions for clarity

    No need to be so terse.

commit 665da05141afb032d8de43975a97863b5d443f92
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-01 01:23:56 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-07-01 08:21:42 +0900

    ZJIT: Pretty-print symbols in HIR dump

    This lets us better see what is going on, for example in pattern
    matching code, which has a bunch of dynamic method lookups and
    `respond_to?` sends.

commit 2287dd4af2959dc080f4aed0f2edd30b60d62b2d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-01 07:22:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 07:22:56 +0900

    ZJIT: Enable bootstraptest/test_block.rb (#13751)

commit e54a242bdf35d4bd90dd8628af411a848946d4f1
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-01 07:15:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 07:15:43 +0900

    ZJIT: Mark GetLocal as having no effects (#13750)

    This removes the GetLocal of l3 from:

        def test
          l3 = 3
          1.times do |l2|
            _ = l3
            1
          end
        end

commit 90247fb77d4b99a55ba321d89eccaa5de1eda3b7
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-07-01 06:43:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 06:43:50 +0900

    ZJIT: Don't compile functions with unhandled parameter types (#13749)

commit 99360e500ddec455612a7b3e776352971268ac77
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-01 03:15:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 03:15:00 +0900

    ZJIT: Enable a couple more btests (#13748)

commit 35feaee91767ca2d9224887a356c3a82d07dac26
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-07-01 03:13:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 03:13:09 +0900

    [DOC] Tweaks for String#bytesplice

commit 456f6f3f83ad422fa58f350bd2db45d0d0f4a59d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-06-30 05:41:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-07-01 02:59:25 +0900

    [DOC] Tweaks for Strings#byteslice

commit 7743aa37995a4557045ebd38c94c5357e58637f5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-01 02:36:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-01 02:37:32 +0900

    Revert "Force blank issues on fork repos"

    This reverts commit 81a2fdff1b311efb75dac463764f3658aede0010.

    Never mind, it didn't work. It seems like you'll see one as long as
    you're admin on the (fork) repository.

    Removing this unnecessary file.

commit dc1b55a387108463b526dde4f9452ebbe8737363
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-07-01 01:58:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 01:58:32 +0900

    ZJIT: Add new ZJIT types for Set (#13743)

commit 44e4b02754681677976fec488112df5c984da013
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-07-01 01:27:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-07-01 01:27:31 +0900

    ZJIT: setglobal should not return output (#13744)

    * ZJIT: setglobal should not return output

    * Let the caller wrap Some

commit 81a2fdff1b311efb75dac463764f3658aede0010
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-07-01 00:48:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-07-01 00:52:12 +0900

    Force blank issues on fork repos

    We don't use issues on ruby/ruby, but we do in some fork repositories.
    When filing issues, GitHub checks if you want to report a security issue
    when .github/SECURITY.md exists, but we don't do that on GitHub. So this
    commit attempts to always create a blank issue.

commit ead3739c34b50b081140f1206cd36f13fc7db8ee
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-27 21:51:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-30 23:25:58 +0900

    Inline ASAN poison functions when ASAN is not enabled

    The ASAN poison functions was always defined in gc.c, even if ASAN was not
    enabled. This made function calls to happen all the time even if ASAN is
    not enabled. This commit defines these functions as empty macros when ASAN
    is not enabled.

commit 3071c5d04cb4369ee8118ece30fb2887205f6c61
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-06-12 21:12:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-30 21:32:31 +0900

    [ruby/prism] Fix parser translator with trailing backslash in `%W` /`%I` array

    https://docs.ruby-lang.org/en/master/syntax/literals_rdoc.html#label-25w+and+-25W-3A+String-Array+Literals
    > %W allow escape sequences described in Escape Sequences. However the continuation line <newline> is not usable because it is interpreted as the escaped newline described above.

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

commit 4e5c8c19a722f979007c83cf15a3a270a0de8f53
  Author:     Dmitry Dygalo <dmitry@dygalo.dev>
  AuthorDate: 2025-06-22 03:54:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-30 21:31:53 +0900

    [ruby/prism] fix: sigsegv on malformed shebang

    Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>

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

commit 00357eea31fd13f4d8feaaeb9269be0e80bde676
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-30 17:02:19 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-30 18:11:03 +0900

    class_fields_ivar_set: fix multi-ractor mode

    We must copy the table before inserting into it if we're in
    multi-ractor mode to ensure the table won't be rehashed or
    resized.

commit 879f4886c91f54926ae49902723050586217b8e4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-30 16:56:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-30 18:11:03 +0900

    variable.c: Extract `imemo_fields_copy_capa`

    This code is similar between classes and generic ivars.

commit e06c74e5f72b9ecfa071a10e3cd6f4dbaf3539e9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-30 16:43:40 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-30 18:11:03 +0900

    Refactor `class_fields_ivar_set` to use `imemo_fields_complex_from_obj`

commit fd59ac6410d0cc93a8baaa42df77491abdb2e9b6
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-30 15:00:51 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-30 16:00:04 +0900

    vm_backtrace.c: add RB_GC_GUARD for `name` in location_format

    `name` is used via `RSTRING_PTR` within rb_str_catf, which may allocate
    and thus potentially trigger GC. Although `name` is still referenced
    by a local variable, the compiler might optimize away the reference
    before the GC sees it, especially under aggressive optimization or when
    debugging tools like ASAN are used.

    This patch adds an explicit `RB_GC_GUARD` to ensure `name` is kept alive
    until after the last use.

    While it's not certain this is the root cause of the following observed
    use-after-poison ASAN error, I believe this fix is indeed needed and
    hopefully a likely candidate for preventing the error.

    ```
    ==1960369==ERROR: AddressSanitizer: use-after-poison on address 0x7ec6a00f1d88 at pc 0x5fb5bcafcf2e bp 0x7ffcc1178cb0 sp 0x7ffcc1178470
    READ of size 61 at 0x7ec6a00f1d88 thread T0
        #0 0x5fb5bcafcf2d in __asan_memcpy (/tmp/ruby/build/trunk_asan/ruby+0x204f2d) (BuildId: 6d92c84a27b87cfd253c38eeb552593f215ffb3d)
        #1 0x5fb5bcde1fa5 in memcpy /usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:10
        #2 0x5fb5bcde1fa5 in ruby_nonempty_memcpy /tmp/ruby/src/trunk_asan/include/ruby/internal/memory.h:758:16
        #3 0x5fb5bcde1fa5 in ruby__sfvwrite /tmp/ruby/src/trunk_asan/sprintf.c:1083:9
        #4 0x5fb5bcde1521 in BSD__sprint /tmp/ruby/src/trunk_asan/vsnprintf.c:318:8
        #5 0x5fb5bcde0fbc in BSD_vfprintf /tmp/ruby/src/trunk_asan/vsnprintf.c:1215:3
        #6 0x5fb5bcdde4b1 in ruby_vsprintf0 /tmp/ruby/src/trunk_asan/sprintf.c:1164:5
        #7 0x5fb5bcddd648 in rb_str_vcatf /tmp/ruby/src/trunk_asan/sprintf.c:1234:5
        #8 0x5fb5bcddd648 in rb_str_catf /tmp/ruby/src/trunk_asan/sprintf.c:1245:11
        #9 0x5fb5bcf97c67 in location_format /tmp/ruby/src/trunk_asan/vm_backtrace.c:462:9
        #10 0x5fb5bcf97c67 in location_to_str /tmp/ruby/src/trunk_asan/vm_backtrace.c:493:12
        #11 0x5fb5bcf90a37 in location_to_str_dmyarg /tmp/ruby/src/trunk_asan/vm_backtrace.c:795:12
        #12 0x5fb5bcf90a37 in backtrace_collect /tmp/ruby/src/trunk_asan/vm_backtrace.c:786:28
        #13 0x5fb5bcf90a37 in backtrace_to_str_ary /tmp/ruby/src/trunk_asan/vm_backtrace.c:804:9
        #14 0x5fb5bcf90a37 in rb_backtrace_to_str_ary /tmp/ruby/src/trunk_asan/vm_backtrace.c:816:9
        #15 0x5fb5bd335b25 in exc_backtrace /tmp/ruby/src/trunk_asan/error.c:1904:15
        #16 0x5fb5bd335b25 in rb_get_backtrace /tmp/ruby/src/trunk_asan/error.c:1924:16
    ```
    https://ci.rvm.jp/results/trunk_asan@ruby-sp1/5810304

commit 54cb133eeaaa9d93ed302f96c13aab5cafb2a0ba
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-30 11:54:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    ruby tool/update-deps --fix

commit 43d27eb129625f2f42e7a2331ea3d32db14b0689
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-30 11:27:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    Adjust ruby/ruby directory structure

commit bc334be4db8b933974e5ff3fef45333aec93ec74
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-29 19:04:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [ruby/json] Reduce duplication in extconf.rb

    https://github.com/ruby/json/commit/3ae3eeb9d3

commit 50b6cd409aa9e05f72b79b2d47e17e0df2660166
  Author:     Scott Myron <samyron@gmail.com>
  AuthorDate: 2025-06-13 10:58:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    Optimize 'json_parse_string' using SIMD.

commit d6bfb73fb6829501fe90f82f39e824282d245f2e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-27 19:07:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Update some reference to Bundler 3 to Bundler 4

    https://github.com/rubygems/rubygems/commit/53174e0aa6

commit 4e3ef1d9b336ded195eccba11d7b17bed1766877
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 17:19:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added extra examples

    https://github.com/rubygems/rubygems/commit/a2e4d8299f

commit 949f125f0f5a22e41732565d40f566b5c70ad8f9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 16:46:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Use Bundler.settings[gem.bundle]

    https://github.com/rubygems/rubygems/commit/b16511598e

commit 59585b2f43acb1273e126fe822c90ec62b4024db
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 15:56:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added manpages

    https://github.com/rubygems/rubygems/commit/f2826dafce

commit 4ef8cb2671a1f3459f86f0b61ff5d2dc18f925b1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 15:28:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Assert stdout message instead of rspec-mock

    https://github.com/rubygems/rubygems/commit/91d7abe27f

commit 7e9cbb109f4c5c2180f33914c155999037c4b51d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 14:13:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added missing caller for shared_example

    https://github.com/rubygems/rubygems/commit/ab9b8c2511

commit 5798eeb7c76804e50b14d7f17601be6487cd2ea4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 14:02:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added bundle option to method_option

    https://github.com/rubygems/rubygems/commit/1413086e92

commit 1cb1b15f77b1511110228bdef3d68c757d490c81
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-02 14:43:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added --bundle option for triggering bundle install automatically after bundle gem

    https://github.com/rubygems/rubygems/commit/59ac0db26b

commit e6a6a35a064e4a96d0ba20b087d3f441588a2393
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-26 19:28:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Fix flakies in bundler gem installer specs

    After introducing the `simulate_version` setting, that's another call to
    `Bundler#Settings#[]` that gets in the middle and makes these specs fail
    when run in isolation.

    https://github.com/rubygems/rubygems/commit/722360e98e

commit 0b9181cbbcdd69bffb6e279a08dedbf848832800
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-26 01:16:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Fix some pending specs filters that are actually for Bundler 5

    https://github.com/rubygems/rubygems/commit/b42b2e7055

commit 9e566141cd7405f6e6d9948ba3fb073c6143b684
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-25 23:20:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Remove "double CI" for testing Bundler 4 mode

    Since now every functionality that changes in Bundler 4 is under a
    setting, we can enable that setting to test the new functionality,
    without having to run our full CI twice.

    This can actually be seen as increasing coverage, because Bundler 4
    functionality will now be tested on Windows, MacOS, or any other
    environment where previously "Bundler 4 mode" was not running.

    https://github.com/rubygems/rubygems/commit/1cb3e009fc

commit 0761af2399ea215ad954d63b60c3e61eb5185a89
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-02 15:06:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    [rubygems/rubygems] Added push_rubygem to default scope at gem signin command

    https://github.com/rubygems/rubygems/commit/9b9ba0bf1e

commit bda2d90969524ba72c92d5834e5d988a6dace79c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-26 17:00:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-30 12:56:50 +0900

    Rewrite specs to not start local dev servers

    They cause flakies when different tests start them in parallel, and also
    make the specs more complicated.

commit 9598ed9d1c56e971e76d4bbbacef6ec9643e12dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-29 16:50:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-29 16:52:46 +0900

    [ruby/optparse] JRuby does not have EXECUTABLE_EXTS in RbConfg::CONFIG

    https://github.com/ruby/optparse/commit/15b2f00b6b

commit 259b0233d826104840d0b52ebb14e0a3435d4497
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-29 16:07:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-29 16:52:45 +0900

    [ruby/optparse] Fix OptionParser#program_name not to strip suffix unexpectedly

    https://github.com/ruby/optparse/commit/740ffa76c0

commit 9fd793e0bd88e6b573fd4363595b3d7019b8c3b9
  Author:     kwatch <kwatch@gmail.com>
  AuthorDate: 2025-06-29 16:30:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-29 16:30:58 +0900

    [ruby/optparse] Enhance to support 'Set' object as an enum
    (https://github.com/ruby/optparse/pull/76)

    * Enhance to support 'Set' object as an enum

    * Add test script for '#make_swithc()'

    ---------

    https://github.com/ruby/optparse/commit/3869000e98

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit bf9cbdef1273166003e67e3f12e993d75d82665f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-29 14:03:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-29 14:04:51 +0900

    `github.event.pull_request.merge_commit_sha` may be empty

commit 63f6f87e863cc5425da00b0ef7bdbf8cedc54fe5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-29 01:30:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-29 01:30:09 +0900

    Add underflow check

commit dc74f9cb3658c38e90f4fbe91a36a0692732ea25
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-28 22:27:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-28 22:27:30 +0900

    Make `uplevel` suitable as the option to `Kernel#warn`

    Make Gem::BUNDLED_GEMS.uplevel returns `nil` if `require` frame is not
    found, for the simplicity.

commit baa05001409240fcea4dfbc23e858e203b6a63ea
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-28 20:29:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-28 22:24:20 +0900

    Use symbols as `level` instead of strings

commit 90abfe6fb774ec7c11aa9533a6df40ebd4dc7dbe
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-28 20:17:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-28 20:17:35 +0900

    Remove `git`-related files in unpacked gems

    These files, including `.github` directory, are useless unless the
    repository itself is contained as well.

commit eab4a0bc8d883be2071a090c87914efc9c12d10c
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-06-28 13:55:59 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-28 13:55:59 +0900

    Fix race condition in signal handler query (#13712)

    * Fix race condition in signal handler query

    * Initialize signal lock dynamically and reset after fork

    * Fix signal handler mutex initialization conditions

commit 31c1f3665a9224f7e77f1b59f7872befc2760a74
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-06-27 23:43:38 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-28 10:27:44 +0900

    Stop setting TMP_RUBY_PREFIX during prelude

    It's unnecessary now that builtin-loader supports sub-libraries:
    9faa9ced9640d23fc5dc1efd635f6b8ebc1a3ceb

commit 49c138c18b2f4d29ea9ae0ed2c34d868aa94c0c6
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-06-28 08:34:46 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-28 09:45:18 +0900

    Check dump size in ibf_dump_write

commit 0828dff3f8bb345e8d79d5cdbbe0a207f8e2a7b7
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-27 01:26:17 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-28 00:03:42 +0900

    ZJIT: Codegen for `defined?(yield)`

    Lots of stdlib methods such as Integer#times and Kernel#then use this,
    so at least this will make writing tests slightly easier.

commit 32def149807852804272b027f4c711a669f2fbf1
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-27 01:27:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-28 00:03:42 +0900

    ZJIT: Use `std::fmt::Display` when codegen for instruction fails

    It's nicer since e.g. you get text representation of enums like
    `defined_type` instead of just a number.

commit 4965954556b1db71fba6ce090cc217e97641687e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 22:27:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-27 22:27:25 +0900

    [DOC] Remove a garbage in an example

commit d9b2d8997674b94429f00ea24c6387205929ad4c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-26 22:52:26 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-27 22:23:14 +0900

    Extract Ractor safe table used for frozen strings

    This commit extracts the Ractor safe table used for frozen strings into
    ractor_safe_table.c, which will allow it to be used elsewhere, including
    for the global symbol table.

commit e6cd79cd31c5c3b096f4344ebef1958a7f32efb1
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-06-27 12:52:27 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-27 21:54:01 +0900

    Consolidate octal and hexadecimal parsing logic

    Both ruby_scan_oct and ruby_scan_hex call the generic ruby_scan_digits
    helper, avoiding duplicate implementations.

commit 8e75a36129ed8168326ec7cc67ae019637fccfa5
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-26 22:11:35 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-27 20:42:38 +0900

    ZJIT: Add TODOs and omitted test for nested scope local access

commit b125fb56c98509bb1c0d2eba901a0238f2e3a5f3
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-26 02:03:30 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-27 20:42:38 +0900

    ZJIT: Function::find(): Use find_vec!() more

commit ed4b8d35a227fc6837e091fea9ca3d396ff8ea14
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-26 01:58:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-27 20:42:38 +0900

    ZJIT: Function::find(): Use clone() instead of doing it manually

commit 7874321e8227426c30f3a5203b38146dfa851e6e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-25 01:38:08 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-27 20:42:38 +0900

    ZJIT: Add codegen for GetLocal and SetLocal

    They're only used when level≠0. Same EP hopping logic as interpreter and
    YJIT. Change assert_compiles() to get ISeq by method name since the old
    code didn't support methods defined using define_method() which I need
    for the new test.

commit ff09cf199d21cf5ac4267a23a7c29e076985b030
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-24 23:58:16 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-27 20:42:38 +0900

    ZJIT: `getlocal` and `setlocal` to HIR

commit fe9a3be2966b0e54b93e9349bf47d4e5b879a6e1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 16:29:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-27 16:29:11 +0900

    Fix the unknown warning group on wasm

commit 64a52c25fef8e156630fea559ced7286fe5c3beb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 16:25:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-27 16:25:37 +0900

    [ruby/io-console] Fix a name error

    https://github.com/ruby/io-console/commit/e0398acad4

commit 528b75cc14f76ef703f0b22ccdd6db4b398982cc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 16:22:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-27 16:23:09 +0900

    [ruby/io-console] Ignore printed control char

    It's something we don't expect and might be coming from somewhere
    else.

    https://github.com/ruby/io-console/commit/c5e47a900c

commit 495613ffd3f1c1008e1d16515a52817b188e091d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 16:20:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-27 16:23:09 +0900

    [ruby/io-console] Revert "Ignore `^C` at interrupt"

    This reverts commit https://github.com/ruby/io-console/commit/f0646b2b6ae3.

    https://github.com/ruby/io-console/commit/2e0e01263a

commit 7ce339244953a6c3add543854292c61e9f5bc14b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-27 15:16:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-27 15:16:39 +0900

    [Bug #21453] Override `files` in gemspec file before `eval`

    `executables` are often extracted from the `files` in gemspec files.

commit 8bba087ae567421cd574b5b5772fd3039ff39b4d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-26 11:14:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-27 11:15:17 +0900

    Added entry `open_timeout` feature of `Socket.tcp` to NEWS.md

commit cf3acead9d737be59f0da38cd041ed5cb17df866
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-27 09:36:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-27 11:14:50 +0900

    Use https://github.com/ruby/power_assert/pull/58

commit d6eecec2ec81f9125cd1a5ad4406db91a8ef810a
  Author:     Kenyon Ralph <kralph@qti.qualcomm.com>
  AuthorDate: 2025-06-27 10:09:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-27 10:09:31 +0900

    [DOC] Fix backquote exit status docs

    It is `exitstatus`, not `status`, per https://github.com/ruby/ruby/blob/3d5619c8b1a76626e0991d758b71afc549829c38/process.c#L581

commit f8cd26736f585cd6d09180788c0e12a253ebbf9d
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-06-27 06:06:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-27 06:06:49 +0900

    ZJIT: Stop loading an extra parameter (#13719)

commit 26508bbc46bcda703c8d76a3b287f71e3967bdbd
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-27 00:34:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-27 05:38:39 +0900

    Fix flaky TestGc#test_heaps_grow_independently

    The test sometimes fails with "Expected 2062788 to be < 2000000" because
    heap 0 has not been cleared yet by GC. This commit fixes it to run GC
    before the assertion to ensure that it does not flake.

commit aca692cd41d4cf74f5b5d35a703b55262ff4bcf8
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-27 05:24:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-27 05:24:22 +0900

    ZJIT: Disable profiling instructions before asserting opcodes in tests (#13720)

commit 3d5619c8b1a76626e0991d758b71afc549829c38
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-06-26 02:36:57 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-06-27 02:18:14 +0900

    Introduce Namespace#eval

    This commit adds an `eval` method to `Namespace` that takes a string and
    evaluates the string as Ruby code within the context of that namespace.

    For example:

    ```ruby
    n = Namespace.new

    n.eval("class TestClass; def hello; 'from namespace'; end; end")

    instance = n::TestClass.new
    instance.hello # => "from namespace"
    ```

    [Feature #21365]

commit 242343ff801e35d19d81ec9d4ff3c32a36c00f06
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-25 20:05:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-26 23:25:57 +0900

    variable.c: Refactor `generic_field_set` / `generic_ivar_set`

    These two functions are very similar, they can share most of their
    logic.

commit a4948c30fdfa497eca47591d9a4fc990d32bb263
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-26 03:34:48 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-26 22:37:55 +0900

    Add debug message to assertion for checking GC mode

    We assert that the GC is not in a cycle in gc_start, but it does not show
    what phase we're in if the assertion fails. This commit adds a debug
    message for when the assertion fails.

commit 80f53eba4076a11c7b547ac406c15da7aa5a2345
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-26 03:33:22 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-26 22:37:55 +0900

    Support message in GC_ASSERT

    RUBY_ASSERT_MESG_WHEN supports a format string at the end for additional
    information. This commit adds support for that in GC_ASSERT.

commit b1c09faf67a663bcda430931c987762521efd53a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-26 17:08:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-26 17:38:36 +0900

    Win32: Use `SIG_GET` to get the current value of the signal

commit 7d01905ef1ca236ffd35ae160f6ecadce5129513
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-26 16:12:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 17:37:04 +0900

    typeprof, rbs and repl_type_completor are working with HEAD now

commit 5e9be99ef5a640b59b52ff83d29070672ed0758c
  Author:     Erik Berlin <sferik@gmail.com>
  AuthorDate: 2025-06-26 08:13:54 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-26 13:28:24 +0900

    Fix loop variable type in compile.c

commit 4b1de7378d038109d85b5ab8b817de13c1217a3f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-25 20:45:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 10:46:48 +0900

    [ruby/uri] [DOC] State that uri library is needed to call Kernel#URI

    So that the example works as-is.

    https://github.com/ruby/uri/commit/30212d311e

commit 4eba511c1b57e8dd6f34242382f904c5470deec7
  Author:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  AuthorDate: 2025-06-26 10:33:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 10:39:20 +0900

    [ruby/uri] Fix a typo

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

    Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>

commit 228cc794f5b955982d6f032383d20b9eb0151824
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-23 22:07:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 10:39:20 +0900

    [ruby/uri] Use Lo category chars as escaped chars

    TruffleRuby does not allow Symbol categories as identifiers.

    https://github.com/ruby/uri/commit/5531d42375

commit 42f753d829d564c0c787741995a2c0dd3be51fd8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-23 21:19:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 10:39:19 +0900

    [ruby/uri] Escape reserved characters in scheme name

    Fix https://github.com/ruby/uri/pull/89

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

commit 90085f62fb793f47e43b64acf6a32900ba8e6e4d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 05:08:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:48 +0900

    [rubygems/rubygems] Simulate Bundler 4 in a better way

    Overriding the version constant feels too magic and creates a set of
    problems. For example, Bundler will lock the simulated version, and that
    can cause issues when the lockfile is used under an environment not
    simulating Bundler 4 (it will try to auto-install and auto-switch to a
    version that does not exist).

    On top of that, it can only be configured with an ENV variable which is
    not too flexible.

    This commit takes a different approach of using a setting, which is
    configurable through ENV or `bundle config`, and pass the simulated
    version to `Bundler::FeatureFlag`. The real version is still the one set
    by `VERSION`, but anything that `Bundler::FeatureFlag` controls will use
    the logic of the "simulated version".

    In particular, all feature flags and deprecation messages will respect
    the simulated version, and this is exactly the set of functionality that
    we want users to be able to easily try before releasing it.

    https://github.com/rubygems/rubygems/commit/8129402193

commit 938ab128a460c0b548543f86eb9db04703dd0b4f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 05:24:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:47 +0900

    [rubygems/rubygems] Remove unnecessary version check

    The `inject` command is deprecated, so these specs only run for Bundler
    3 and checking this is unnecessary.

    https://github.com/rubygems/rubygems/commit/c89fb788f8

commit 54e51f1fc3ab13e64ef63a36e07fbf03cd107d4b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 05:00:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:46 +0900

    [rubygems/rubygems] Make yet one more update spec independent of running version

    https://github.com/rubygems/rubygems/commit/07762f6c1f

commit 782d8287c3052dd03583fd810b931daca512a77c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 04:57:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:46 +0900

    [rubygems/rubygems] Remove hardcoded version check from one clean spec

    https://github.com/rubygems/rubygems/commit/9244cca381

commit 7e0358e04fd3e1d786f1947d4c6facb9aed85493
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 04:01:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:45 +0900

    [rubygems/rubygems] Make one more update spec independent of running version

    https://github.com/rubygems/rubygems/commit/dcd8e8210f

commit 18618810a20bcacc98054b54c478fe423c059a2c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 03:37:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:44 +0900

    [rubygems/rubygems] Use  Gem::Version` methods instead of string splitting

    https://github.com/rubygems/rubygems/commit/75fed35264

commit f32dbc9bb083c0332a28dc4f3c6ebcc40b101091
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 03:14:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:44 +0900

    [rubygems/rubygems] Centralize managing major version dependent behavior in `FeatureFlag` class

    https://github.com/rubygems/rubygems/commit/7708e5b784

commit 168e7fc30040c83ff932f533de21c889abcba1fb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 02:48:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:43 +0900

    [rubygems/rubygems] Remove redundant receivers

    https://github.com/rubygems/rubygems/commit/d7b9c4532e

commit a9860b6cb1cceb3361d67908bb36e87b0be0f99b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 02:33:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:42 +0900

    [rubygems/rubygems] No need to reset this variable

    https://github.com/rubygems/rubygems/commit/f96fedf1f1

commit a2fb1d7dcabd6e92a9c6ba962d90ff54e04401ea
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 02:22:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:42 +0900

    [rubygems/rubygems] Reorganize post bundle message specs to run independently of major version

    https://github.com/rubygems/rubygems/commit/70c69c45ba

commit 4e74f55db7abb574e11ab98f0092f8e3dab62635
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 02:21:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:41 +0900

    [rubygems/rubygems] Use nicer indentation

    https://github.com/rubygems/rubygems/commit/7e959adce6

commit 428627ab689d3a08d7951b84a0fc975da03d2a47
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 02:12:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-26 08:06:40 +0900

    [rubygems/rubygems] Simplify pristine spec to not need checking major version

    https://github.com/rubygems/rubygems/commit/bd2a170330

commit 6b7f56d2db292eb6d5d8dd21906e5d51cbbc9187
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-25 07:15:02 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-26 07:58:53 +0900

    Never use flags on T_NODE

    Previously, any time we used FL_TEST or variations we would need to add
    an additional test that it wasn't a T_NODE. I think that was only needed
    historically and we can avoid generating that extra code.

commit 3c66eb335831df4df7b1bba4514af70b17c97ebc
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-26 05:59:12 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-26 07:43:57 +0900

    Change def->method_serial to be atomic

    `rb_method_definition_create` can be called across different ractors at the same time, so `def->method_serial` should be atomic.

commit 328e3029d875c4c74c1d732bee7ea35d659dd608
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-10 06:22:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-26 06:11:08 +0900

    Get String#crypt working with multi-ractor in cases where !HAVE_CRYPT_R

    In commit 12f7ba5ed4a, ractor safety was added to String#crypt, however
    in certain cases it can cause a deadlock. When we lock a native mutex,
    we cannot allocate ruby objects because they might trigger GC which
    starts a VM barrier. If the barrier is triggered and other native threads
    are waiting on this mutex, they will not be able to be woken up in order to join
    the barrier. To fix this, we don't allocate ruby objects when we hold the
    lock.

    The following could reproduce the problem:

    ```ruby
    strings = []
    10_000.times do |i|
      strings << "my string #{i}"
    end

    STRINGS = Ractor.make_shareable(strings)

    rs = []
    100.times do
      rs << Ractor.new do
        STRINGS.each do |s|
          s.dup.crypt(s.dup)
        end
      end
    end
    while rs.any?
      r, obj = Ractor.select(*rs)
      rs.delete(r)
    end
    ```

    I will not be adding tests because I am almost finished a PR to enable
    running test-all test cases inside many ractors at once, which is how I
    found the issue.

    Co-authored-by: jhawthorn <john@hawthorn.email>

commit a1996b32a95c12e0c1f6fd5665ba490b4245f18c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-06 02:44:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 02:13:11 +0900

    [ruby/openssl] pkey: use EVP_PKEY_new_raw_{private,public}_key_ex() if available

    Algorithms implemented only in OpenSSL 3 providers may not have a
    corresponding NID. The *_ex() variants have been added in OpenSSL 3.0
    to handle such algorithms, by taking algorithm names as a string.

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

commit 0c6075bd420777b1f66a9ae88d327b7bb4c963d7
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-29 16:34:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 02:13:11 +0900

    [ruby/openssl] pkey: handle EVP_PKEY_KEYMGMT return by EVP_PKEY_id()

    For algorithms implemented solely in an OpenSSL 3 provider, without an
    associated EVP_PKEY_METHOD, EVP_PKEY_id() returns a special value
    EVP_PKEY_KEYMGMT.

    Let OpenSSL::PKey::PKey#oid raise an exception as necessary.
    Update PKey#inspect to include the string returned by
    EVP_PKEY_get0_type_name(), if available.

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

commit ca0a315f36a66592f9d180c3ef412f6cee331bb6
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-29 16:30:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-26 02:13:10 +0900

    [ruby/openssl] ossl.h: include <openssl/provider.h> in ossl.h

    Move the #include from ossl_provider.c to ossl.h. As OpenSSL 3 provider
    functions will be used in multiple source files, having it in the
    common header file is convenient.

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

commit aed7a95f9d8b5cfb0d590b59478d9dabc6b1eb22
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-25 22:25:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-26 02:04:25 +0900

    Move RUBY_ATOMIC_VALUE_LOAD to ruby_atomic.h

    Deduplicates RUBY_ATOMIC_VALUE_LOAD by moving it to ruby_atomic.h.

commit ec071c849fedda2f59aacc5514650798f32087a2
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-06-25 23:51:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-25 23:51:45 +0900

    [DOC] Tweaks for String#byterindex (#13485)

commit 077dbb8d42e08046a277cab1f011294f02d9dec5
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 15:14:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-25 22:41:55 +0900

    [rubygems/rubygems] Remove unnecessary loading of fileutils from path specs

    These specs load artifice before Bundler boots because of their global
    rubygems source. Artifice in turn loads `rack`, `rack-test`, and
    `tmpdir` which in turn load `fileutils`.

    Because of this, a missing `require` of `fileutils` in RubyGems would
    not be caught by specs.

    Loading artifice is not necessary for most of these specs, so remove the
    global source to avoid it.

    https://github.com/rubygems/rubygems/commit/aad871c997

commit c17d381d6792a41237814d829cfc9b3df8203563
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-24 15:00:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-25 22:41:52 +0900

    [rubygems/rubygems] Remove message long gone from the code base from expectations

    https://github.com/rubygems/rubygems/commit/2eaada3508

commit fb2f89d867df6ce5b81c2bb87528032200c477d7
  Author:     MSP-Greg <Greg.mpls@gmail.com>
  AuthorDate: 2025-06-24 08:19:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-25 22:41:49 +0900

    [rubygems/rubygems] Add missing `require "fileutils"` in lib/rubygems/installer.rb

    https://github.com/rubygems/rubygems/commit/9a9d0e423e

commit 9e43e123c222a822172f96ad86e19b2a87132290
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-25 21:41:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-25 21:41:06 +0900

    Override `files` of bundled gem specs

    Use the actual files unpacked from the gem.  The recent rdoc.gemspec
    uses different code than expected by rbinstall.rb, which resulted in
    the result list not being overwritten and the template files not being
    installed.

commit 363239585d5126a214876912345a72b77b9fee78
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-25 09:00:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-25 20:06:02 +0900

    Fix missing WB going to too_complex on class/geniv

    We were creating a new fields object, and then inserting into it without
    a write barrier.

        OpenSSL::TestSSL#test_tlsext_hostname
        WBCHECK ERROR: Missed write barrier detected!
          Parent object: 0x7ce8b3a390c0 (wb_protected: true)
            rb_obj_info_dump: 0x00007ce8b3a390c0 T_IMEMO/<fields>
          Reference counts - snapshot: 1, writebarrier: 1, current: 4, missed: 2
          Missing reference to: 0x7c08b4110750
            rb_obj_info_dump: 0x00007c08b4110750 OpenSSL/X509/OpenSSL::X509::Certificate OpenSSL/X509
          Missing reference to: 0x7c08b4128dd0
            rb_obj_info_dump: 0x00007c08b4128dd0 OpenSSL/EVP_PKEY/OpenSSL::PKey::RSA OpenSSL/EVP_PKEY

commit 8f44d482a35344ecf1f21658bd5360b95caa6cf8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-25 10:52:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-25 12:20:58 +0900

    windows-2025 runner updated Visual Studio from broken version

commit 2ed48626904e87337309e0a4cd20a3f5fdaefa6d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-19 16:45:21 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-25 12:02:30 +0900

    Remove unnecessary union

commit 1e436f22745c685c02c4a30451599c393de0a9aa
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-19 16:44:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-25 12:02:30 +0900

    Fix missing write barrier in rb_vm_rewrite_cref

    Found by wbcheck

commit 443ed45a4e6434e6b09a05e6d2f9c89b20aa384c
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 12:59:04 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-25 12:02:30 +0900

    Refactor rewrite_cref

commit 7c3bbfcddb05b0eb7cca7ac32efd2fc07e1af6ec
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-06 00:29:56 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-25 09:21:07 +0900

    Include Set subclass name in Set#inspect output

    Fixes [Bug #21377]

    Co-authored-by: zzak <zzak@hey.com>

commit 3a9c091cf393e8a9c4e4b93d4216f2be3678e488
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-31 09:55:05 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-25 09:21:07 +0900

    Simplify Set#inspect output

    As Set is now a core collection class, it should have special inspect
    output.  Ideally, inspect output should be suitable to eval, similar
    to array and hash (assuming the elements are also suitable to eval):

      set = Set[1, 2, 3]
      eval(set.inspect) == set # should be true

    The simplest way to do this is to use the Set[] syntax.

    This deliberately does not use any subclass name in the output,
    similar to array and hash. It is more important that users know they
    are dealing with a set than which subclass:

      Class.new(Set)[]
      # this does: Set[]
      # not: #<Class:0x00000c21c78699e0>[]

    This inspect change breaks the power_assert bundled gem tests, so
    add power_assert to TEST_BUNDLED_GEMS_ALLOW_FAILURES in the workflows.

    Implements [Feature #21389]

commit 3b602c952d1fdebdf15eaa92860d001bd4716f66
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-06-25 05:37:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-25 05:41:45 +0900

    [ruby/timeout] Gracefully handle a call to ensure_timeout_thread_created in a signal handler

    * Fixes the issue described in
      https://github.com/ruby/timeout/issues/17#issuecomment-1461498517
      for TruffleRuby and JRuby.
    * CRuby is currently unable to use Timeout in a signal handler due to
      https://bugs.ruby-lang.org/issues/19473.

    https://github.com/ruby/timeout/commit/7a48e1c079

commit 4044188266c6a305bcd72e81c8dc80524c596258
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-19 05:17:24 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-25 05:08:46 +0900

    Fix load catch table write barrier

    I tried fixing this in 521b2fcba4e96898bfd237c79f17f19530b7a030, but
    re-running wbcheck with the stricter WBCHECK_VERIFY_AFTER_WB, revealed
    that this write barrier was fired too early, before the object was
    actually written to the parent.

    This solves the issue by writing the table to the parent immediately
    (and using calloc so that we don't mark random garbage).

commit fcf2c3b4d113e81110a0f2242b5a7d54e563c258
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-20 07:14:29 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-25 05:08:35 +0900

    Fix write barriers in rb_hash_add_new_element

    The write barriers must be run after the st_update callback returns,
    as the objects are not on the object until then and there may be
    allocation when there is a new object inserted.

    This is hard to reproduce, and I haven't seen an actual crash due to it,
    but it is detected by wbcheck

        RUBY_GC_LIBRARY=wbcheck WBCHECK_VERIFY_AFTER_WB=1 ./miniruby -e '("a".."zz").uniq.to_a'
        WBCHECK ERROR: Missed write barrier detected!
          Parent object: 0x720db01f99c0 (wb_protected: true)
            rb_obj_info_dump: 0x0000720db01f99c0 T_HASH/[S] 18
          Reference counts - snapshot: 32, writebarrier: 2, current: 36, missed: 2
          Missing reference to: 0x716db02e3450
            rb_obj_info_dump: 0x0000716db02e3450 T_STRING/String  len: 1, capa: 15 "q"
          Missing reference to: 0x716db02e3450
            rb_obj_info_dump: 0x0000716db02e3450 T_STRING/String  len: 1, capa: 15 "q"

    A part of why this is hard to reproduce and it's unlikely to crash is
    that the insertion only rarely allocates.

    Co-authored-by: Luke Gruber <luke.gruber@shopify.com>

commit c351c3d06510d8da1c03858b1a6f2a5c0fb0daf5
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-06-25 01:28:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-25 01:28:17 +0900

    [DOC] Tweaks for String#bytes

commit b2849876512c0df4759b589e3f8c2d6065bff2f7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-24 23:09:52 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-25 00:19:16 +0900

    Cleanup and document `shape_id_t` layout

commit 5bcc639b341291fe0584d11c6bdd1add29f40087
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-24 19:33:27 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-24 23:10:40 +0900

    Disallow forking from non-main ractor

    [Bug #17516]

    `fork(2)` only leave the calling thread alive in the child.
    Because of this forking from the non-main ractor can easily
    leave the VM in a corrupted state.

    It may be possible in the future to carefully allow forking from non-main
    Ractor, but shot term it's preferable to add this restriction.

commit 45a2c95d0f7184c9cd64ddd26699af31bea8675d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-24 18:46:40 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-24 19:29:39 +0900

    Reduce exposure of FL_FREEZE

    The `FL_FREEZE` flag is redundant with `SHAPE_ID_FL_FROZEN`, so
    ideally it should be eliminated in favor of the later.

    Doing so would eliminate the risk of desync between the two, but
    also solve the problem of the frozen status being global in namespace
    context (See Bug #21330).

commit da10b956e0acde0abcbf3ea74c9a2a68ec05f874
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-24 18:50:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-24 18:50:50 +0900

    Generate HTML documentation even if only NEWS.md is updated

commit 62aa4a6010c293ea58cfec59f316f0e1a0a33fd3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-24 18:32:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-24 18:32:57 +0900

    [ruby/resolv] v0.6.1

    https://github.com/ruby/resolv/commit/6b57765f8d

commit 152cf102b7f5658d4e237f37ffcabdb0ffaf4737
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-24 18:30:54 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-24 18:30:54 +0900

    Remove trailing spaces

commit 21f3ffedd4062e987dc92e304ad311e429d268c1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-24 17:05:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 18:26:38 +0900

    tmpdir.rb is not extension

commit ba68343d3ad0465ae9cdaf786dd100b9ed0add07
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-06-24 14:55:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-24 14:55:07 +0900

    Allow wakeup mutex to be used in trap context. (#13684)

commit e036d4da8dc99959cb8c4da4d51976930271c618
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-24 13:39:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 13:40:54 +0900

    Removed Set entry

    Fixup 061d36476fbeec9aebaf2e9058b0ac01be3d0dd0

commit 7a5e46cff21be0d2aa66091d1dbe80c74b125b0f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-24 11:28:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    Revert accidentally commit with 96a0c2065a95d076978de41e8bfacbd19858d0bb

commit 93fc29c65caf2cf3c1eb45823c638c2c4236dd19
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-24 00:11:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [ruby/json] Deprecate duplicate keys in object

    There are few legitimate use cases for duplicate keys, and can
    in some case be exploited.

    Rather to always silently accept them, we should emit a warning,
    and in the future require to explictly allow them.

    https://github.com/ruby/json/commit/06f00a42e8

commit b310e7b3c771c2a015767d189df42e4cc18ad019
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-24 00:22:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [ruby/json] Add missing parser options documentation

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

commit 7a297ad2f999a49ea0796592921f5358480cc9bb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 19:26:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] Fix `Bundler.original_env['GEM_HOME']` when Bundler is trampolined

    https://github.com/rubygems/rubygems/commit/4c450eb05e

commit bc6b045153e6316d8fd9d267ead65b8bdc1802cb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 00:09:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] Cleanup now unnecessary RUBYOPT handling

    https://github.com/rubygems/rubygems/commit/ac83c78635

commit 32a9f29cc8695a4d8f51276e47e2aae898d1ce40
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 00:01:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] Remove no longer necessary workarounds for restarts

    Since we no longer pass ruby CLI flags in our spec commands, we no
    longer need the previous workaround and can get the realworld code
    tested.

    https://github.com/rubygems/rubygems/commit/fd92c855fb

commit 6217216be22d09a7654c20ec568224c2b5205734
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-19 22:59:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] Use ENV consistently over CLI flags for specs

    https://github.com/rubygems/rubygems/commit/dafe50f171

commit 0a8ed97b328a1dedb5af969b343035892d966d75
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 00:12:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] Helper for hax file

    https://github.com/rubygems/rubygems/commit/8b7ddf8a07

commit c115e3d974ce6f4cb5212d4c5ca7de5e7706a1b6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-20 01:36:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-24 12:10:50 +0900

    [rubygems/rubygems] `bundle exec` does not need artifice in general

    https://github.com/rubygems/rubygems/commit/cb1f19573a

commit 3546cedde3f6f46f00fd67b73081cbfbb83144de
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-23 22:15:58 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-24 11:39:58 +0900

    Set up callable_method_entry for DUMMY frame on ArgumentError

    Before the patch:
    ```
    $ ./miniruby -e '[1, 2].inject(:tap)'
    -e:1:in '<main>': wrong number of arguments (given 1, expected 0) (ArgumentError)
            from -e:1:in 'Enumerable#inject'
            from -e:1:in '<main>'
    ```

    After the patch:
    ```
    $ ./miniruby -e '[1, 2].inject(:tap)'
    -e:1:in 'Kernel#tap': wrong number of arguments (given 1, expected 0) (ArgumentError)
            from -e:1:in 'Enumerable#inject'
            from -e:1:in '<main>'
    ```

    Fixes https://bugs.ruby-lang.org/issues/20968#change-113811

commit a18fa86351f6b904f9d49ff4a23f15aae7680821
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-23 22:00:28 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-24 11:39:58 +0900

    Change how to correct the first lineno in the backtrace on ArgumentError

    Follow up to fix 3b7373fd00a0ba456498a7b7d6de2a47c96434a2.
    In that commit, the line number in the first frame was overwritten after
    the whole backtrace was created. There was a problem that the line
    number was overwritten even if the location was backpatched.

    Instead, this commit uses first_lineno if the frame is
    VM_FRAME_MAGIC_DUMMY when generating the backtrace.

    Before the patch:
    ```
    $ ./miniruby -e '[1, 2].inject(:tap)'
    -e:in '<main>': wrong number of arguments (given 1, expected 0) (ArgumentError)
            from -e:1:in 'Enumerable#inject'
            from -e:1:in '<main>'
    ```

    After the patch:
    ```
    $ ./miniruby -e '[1, 2].inject(:tap)'
    -e:1:in '<main>': wrong number of arguments (given 1, expected 0) (ArgumentError)
            from -e:1:in 'Enumerable#inject'
            from -e:1:in '<main>'
    ```

commit 74e6bddf152af82716028ad16f2667c2f5d1a2b1
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-24 08:55:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-24 08:55:37 +0900

    ZJIT: Parse putspecialobject(VMCore) into Const (#13683)

    This way we get more information in HIR for the optimizer.

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

commit 3a9bf4a2ae1450bd8070296ed501f056830e25aa
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-24 07:41:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-24 07:41:49 +0900

    ZJIT: Optimize frozen array aref (#13666)

    If we have a frozen array `[..., a, ...]` and a compile-time fixnum index `i`,
    we can do the array load at compile-time.

commit 67346a7d94b101acc00c177b01ad0aabfef605a8
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-06-24 02:56:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-24 02:56:04 +0900

    [Bug #21449] Fix Set#divide{|a,b|} using Union-find structure (#13680)

    * [Bug #21449] Fix Set#divide{|a,b|} using Union-find structure

    Implements Union-find structure with path compression.
    Since divide{|a,b|} calls the given block n**2 times in the worst case, there is no need to implement union-by-rank or union-by-size optimization.

    * Avoid internal arrays from being modified from block passed to Set#divide

    Internal arrays can be modified from yielded block through ObjectSpace.
    Freeze readonly array, use ALLOCV_N instead of mutable array.

commit db6f397987f4e400f0146212aa888df781ee7997
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-06-22 01:58:50 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-24 02:28:05 +0900

    Tweaks for String#bytesize

commit b1ce569ffcb64a0faef6bf588ee04874892feb6f
  Author:     ywenc <ywenc@github.com>
  AuthorDate: 2025-06-24 00:20:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-24 00:20:28 +0900

    ZJIT: `anytostring` to HIR (GH-13658)

    Pop two values from the stack, return the first if it is a string,
    otherwise return string coercion of the second

    Also piggybacks a fix for string subclasses skipping `to_s` for
    `objtostring`.

    Co-authored-by: composerinteralia <composerinteralia@github.com>

commit af6b98f7a25670cb569f6da59904b3c05482b16e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-25 11:15:37 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-23 20:03:48 +0900

    Make the critical level an enum

commit c6dd07d66fa469d963d3771e001d45c462f413e3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-20 19:23:10 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Allocate singleton classes as namespaceable if their parent are

commit 32ee3fab0a98ab7f520da0feb56b29c937d0cf6c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-18 19:31:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Shink RClass when it is known they can't be namespaced

    Even when namespaces are enabled, only a few core classes created
    during init will eventually be namespaced.

    For these it's OK to allocate a 320B slot to hold the extra namespace
    stuff.

    But for any class created post init, we know we'll never need the
    namespace and we can fit in a 160B slot.

commit ea4a53c59561985df8b56e00890c75333b641788
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-18 19:24:48 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Avoid creating namespace table for classes that can't be namespaced.

commit 071b9affe6d132def0937cb7562582d96c5d0bb3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-18 19:14:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Ensure `RCLASS_CLASSEXT_TBL` accessor is always used.

commit 96a0c2065a95d076978de41e8bfacbd19858d0bb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-18 18:55:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Mark RClass instance that may be namespaced with RCLASS_NAMESPACEABLE

commit 393e9a5f3e3e4173579e204a642e9fe55ddaf461
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-18 17:56:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-23 18:04:58 +0900

    Optimize `rb_namespace_available`

    Rather than to lazily check the env using a trinary
    value, we can more straightforwardly check for the
    env during the VM boot.

    This allow `rb_namespace_available` to just be a pointer
    dereference.

commit ce38cba528b4da8fe306377dc9bb6eaf7a639c53
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-20 18:26:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:08:22 +0900

    Merge blocks for the same condition

commit a1d62a3b1cdf5fca9f5976fa0d8b5ead82619ef6
  Author:     Nicholas La Roux <larouxn@gmail.com>
  AuthorDate: 2025-06-06 20:41:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:07:03 +0900

    [rubygems/rubygems] Handle RubyGems installing to custom dir with non-existent parent dirs

    https://github.com/rubygems/rubygems/commit/4701123601

commit 8f009601f9a5440e656f02d0e5d6b2e88475f5b7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 21:24:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:07:02 +0900

    [rubygems/rubygems] Handle `Errno::EADDRNOTAVAIL` gracefully

    As showed by the unskiped spec, on Windows trying to use the 0.0.0.0
    interface raises this error, and it's raised as a generic system error
    when trying to create a `bundler.lock` file. Here's is a better place to
    handle that.

    https://github.com/rubygems/rubygems/commit/e32c5a9e5c

commit 7fe1fc392e549fa180a5a60b9135ca16f7976f0d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 03:38:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:07:01 +0900

    [rubygems/rubygems] Make `HTTP_ERRORS` list look like `FAIL_ERRORS` list

    https://github.com/rubygems/rubygems/commit/bfa6770e39

commit c3bfce512baf6d0427216ea2ae24b7f191dfebee
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 03:37:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:07:00 +0900

    [rubygems/rubygems] Simplify non retriable errors list

    https://github.com/rubygems/rubygems/commit/627a7615f2

commit 627ca420e9f6ab1b3c4c424b9159abb595ffb55c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 03:33:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:07:00 +0900

    [rubygems/rubygems] Move `HTTP_ERRORS` together with the other error constants

    https://github.com/rubygems/rubygems/commit/57e8ae7aa6

commit 746e0d3ef48a1313c67d93cd95c10b0bc9f01d3a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-05 16:26:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:06:59 +0900

    [rubygems/rubygems] Deprecate unused `Bundler#SpecSet` methods

    https://github.com/rubygems/rubygems/commit/380c95ce05

commit 7c326ee72ec0623ff6b96c08d08bdf13682fade3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-05 16:25:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:06:58 +0900

    [rubygems/rubygems] Remove usage of `Bundler::SpecSet#<<`

    https://github.com/rubygems/rubygems/commit/b556167793

commit 7c115b8633cd32def0f6b4bd4e33b4b2db864b62
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-18 18:22:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-23 11:06:57 +0900

    [rubygems/rubygems] Fix flaky test failures in mirror probing specs

    The mirror probing spec file was moved to our regular suite, which runs
    in parallel, recently. These specs rely on starting and stopping actual
    servers in localhost, but this does not play nice with parallelization,
    because a spec may kill the webserver another spec has created.

    This commit moves mirror probing specs to not need to start servers in
    localhost and do something more similar to what the other specs do.

    https://github.com/rubygems/rubygems/commit/ca9a19706f

commit 353fa6f0bab278d9bd5bd8bd073b31f586116600
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-20 09:57:20 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-22 06:43:13 +0900

    Avoid allocation for positional splat for literal array keyword argument

    If all nodes in the array are safe, then it is safe to avoid
    allocation for the positional splat:

    ```ruby
    m(*a, kw: [:a])   # Safe
    m(*a, kw: [meth]) # Unsafe
    ```

    This avoids an unnecessary allocation in a Rails method call.
    Details: https://github.com/rails/rails/pull/54949/files#r2052645431

commit d84a811f31a65821642b165d712f380c0cc060e0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-22 02:00:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-22 02:00:56 +0900

    [Bug #21448] Reorder trials in `fill_random_bytes`

    First try dedicated system calls, such as `getrandom` or `getentropy`,
    next possible libraries, then fallback to `/dev/urandom`.

commit ec20f7feb64d9cd8989ada24315ac4af0bb4158c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-22 01:08:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-22 01:08:38 +0900

    Suppress warnings

    - `ractor_sync_terminate_atfork` is unused unless fork is working
    - `cr` in `vm_lock_leave` is only for debugging

commit edbd9ed46842b8cd811fba45a373bb39ee155bfb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-21 21:43:50 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-21 22:40:40 +0900

    variable.c: avoid out of bound write in `generic_field_set`

    [Bug #21445]

commit 0cec4a14fb832aed4b498a21ec0c19765642d408
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-20 19:21:55 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-21 19:57:19 +0900

    Restore getrandom(2) path for Linux with glibc 2.36 or later

    This is a follow-up to commit b120f5e38d9c (avoid fork-unsafe arc4random
    implementations, 2018-09-04).

    Avoid defining a no-op fill_random_bytes_syscall() if arc4random_buf(3)
    exists, but we are unsure if it is fork-safe. Check for other options
    instead. IOW, see if getrandom(2) is available.

    glibc 2.36, released in 2022, started to provide arc4random_buf(3) on
    Linux. This causes fill_random_bytes_syscall() to use neither of them
    and makes Random.urandom solely rely on getentropy(3) via
    fill_random_bytes_urandom().

    While the glibc implementation is safe, I did not add it to the list
    because using getrandom(2) directly is preferable on Linux.

commit 1181a682a6c314c92686e3701defa1eb44068c4e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-21 16:52:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-21 16:52:16 +0900

    [Bug #21448] Use `getentropy(2)` only on macOS

    If this is not a system call, then it is using getrandom (which would
    have been tried already), and cannot be used as a replacement for the
    random devices.

commit 6602a08aa56768959fc1e5d3aed8dd31e0a0e39f
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-21 09:15:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-21 09:15:05 +0900

    ZJIT: Move ccall comments near ccall instructions (#13662)

    Don't confuse them with other nearby instructions.

commit 1d94a9e1a4351e01f851dad250ba97dad859ee70
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-20 09:27:11 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-21 08:46:24 +0900

    Fix handling of PM_CONSTANT_PATH_NODE node in keyword arguments with ARGS_SPLAT

    This was handled correctly in parse.y (NODE_COLON2), but not in
    prism. This wasn't caught earlier, because I only added tests for
    the optimized case and not the unoptimized case. Add tests for
    the unoptimized case.

    In code terms:

    ```ruby
    m(*a, kw: lvar::X)     # Does not require allocation for *a
    m(*a, kw: method()::X) # Requires allocation for *a
    ```

    This commit fixes the second case when prism is used.

commit 112ba7064718aa8e486ff1d953946ad5a5480f8c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-03 15:00:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-21 02:58:38 +0900

    [ruby/openssl] ssl: add SSLContext#sigalgs= and #client_sigalgs=

    Add methods for setting supported signature algorithms, corresponding
    to SSL_CTX_set1_sigalgs_list() and SSL_CTX_set1_client_sigalgs_list(),
    respectively.

    https://github.com/ruby/openssl/commit/6bbe58c492

    Co-authored-by: Markus Jung <markus.jung@vivavis.com>

commit 0d75dd1f47bd93427ecd29c13ce0729d92f8a858
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-03 02:30:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-21 02:58:38 +0900

    [ruby/openssl] ssl: update rdoc for SSLContext#ciphers= and #ciphersuites=

    https://github.com/ruby/openssl/commit/54f22395e7

commit 444b94c0879dd865599c8120414fbb7170835ee2
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-06-20 02:08:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-21 02:58:37 +0900

    [ruby/openssl] ssl: correct array index type in build_cipher_string()

    https://github.com/ruby/openssl/commit/9c9333c07d

commit b6babd9a07660264f838d22e6e81733f5607120e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-21 01:52:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-21 01:52:45 +0900

    ZJIT: Typofix (#13665)

commit d31d62d6857cbc05becfc5a1dffc34ac5eef3a2b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-20 20:35:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-20 20:35:50 +0900

    Dump with debugger just once

commit d9efc56c16267fabcfc764fd27cf4e464a231a76
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-20 18:28:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-20 18:39:29 +0900

    [ruby/io-console] Ignore `^C` at interrupt

    It's something we don't expect and might be coming from somewhere
    else.

    https://github.com/ruby/io-console/commit/f0646b2b6a

commit 7addde1ece5f30cbd048175b8504feefbf7f8102
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 17:10:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 17:55:48 +0900

    Revert to setup-ruby v1.231.0

    v1.245.0 is not working with the following issue:

    https://github.com/ruby/ruby/actions/runs/15769771616/job/44464179119?pr=13661

    ```
    D:/a/ruby/ruby/src/test/rubygems/mock_gem_ui.rb:83:in 'Gem::MockGemUi#terminate_interaction': Gem::MockGemUi::TermError (Gem::MockGemUi::TermError)
            D:/a/ruby/ruby/src/lib/rubygems/user_interaction.rb:157:in 'Gem::UserInteraction#terminate_interaction'
            D:/a/ruby/ruby/src/lib/rubygems/commands/exec_command.rb:175:in 'Gem::Commands::ExecCommand#install'
            D:/a/ruby/ruby/src/lib/rubygems/commands/exec_command.rb:70:in 'Gem::Commands::ExecCommand#execute'
            D:/a/ruby/ruby/src/lib/rubygems/command.rb:326:in 'Gem::Command#invoke_with_build_args'
            D:/a/ruby/ruby/src/lib/rubygems/command.rb:304:in 'Gem::Command#invoke'
            D:/a/ruby/ruby/src/test/rubygems/test_gem_commands_exec_command.rb:43:in 'TestGemCommandsExecCommand#invoke'
            D:/a/ruby/ruby/src/test/rubygems/test_gem_commands_exec_command.rb:274:in 'block in TestGemCommandsExecCommand#test_gem_with_platform_and_platform_dependencies'
            D:/a/ruby/ruby/src/lib/rubygems/user_interaction.rb:46:in 'Gem::DefaultUserInteraction.use_ui'
            D:/a/ruby/ruby/src/lib/rubygems/user_interaction.rb:69:in 'Gem::DefaultUserInteraction#use_ui'
            D:/a/ruby/ruby/src/test/rubygems/test_gem_commands_exec_command.rb:272:in 'TestGemCommandsExecCommand#test_gem_with_platform_and_platform_dependencies'
            D:/a/ruby/ruby/src/tool/lib/test/unit/testcase.rb:202:in 'Test::Unit::TestCase#run_test'
            D:/a/ruby/ruby/src/tool/lib/test/unit/testcase.rb:170:in 'Test::Unit::TestCase#run'
            D:/a/ruby/ruby/src/tool/lib/test/unit.rb:1683:in 'block in Test::Unit::Runner#_run_suite'
            D:/a/ruby/ruby/src/tool/lib/test/unit.rb:1670:in 'Array#map'
            D:/a/ruby/ruby/src/tool/lib/test/unit.rb:1670:in 'Test::Unit::Runner#_run_suite'
            D:/a/ruby/ruby/src/tool/lib/test/unit.rb:1374:in 'Test::Unit::ExcludesOption#_run_suite'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:52:in 'Test::Unit::Worker#_run_suite'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:24:in 'block in Test::Unit::Worker#_run_suites'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:23:in 'Array#map'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:23:in 'Test::Unit::Worker#_run_suites'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:122:in 'Test::Unit::Worker#run'
            D:/a/ruby/ruby/src/tool/lib/test/unit/parallel.rb:220:in '<main>'
      running file: D:/a/ruby/ruby/src/test/rubygems/test_gem_commands_exec_command.rb
    ```

commit 092ea7a16325ba472e10a6eb57d470522938fb77
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 11:17:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 17:55:48 +0900

    Update to the latest step versions at the GitHub Actions

commit 896f9f6328aa50c1f7ccbaf4103626d0701680b6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 14:16:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-20 17:40:59 +0900

    CI: Run Launchable in the build directory

    As well as compilers/entrypoint.sh.

commit 7a735c4861166850fff21aabc5aa1bbde5e1cb07
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-20 16:49:13 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-20 16:50:03 +0900

    Fix indents in macros

commit 68d6cc6bd760d570d276d96b1d154ac0e8733019
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-20 16:47:31 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-20 16:50:03 +0900

    Do not fetch already fetched commits

commit 29c7f849db68b0082ab2d29464803a68971fdc18
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 15:33:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 15:33:47 +0900

    Use another credential for generating new releases

commit 8ce65463716144ac265f5c424e2dc126edf7f9fd
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-06-20 13:52:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-20 13:52:53 +0900

    Update bundled gems list as of 2025-06-20

commit e23941677c3d1b683445d5684175f45866a3aed4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 12:45:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 12:45:54 +0900

    Rename token name to more descriptive

commit 1e428366aeacbd924930be69283161c431f13bdf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 11:07:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 12:35:16 +0900

    Use windows-2025 image because that have pre-installed winget

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

commit fafae10d9a19e966f5c4cccbe7a6e6a418821c62
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 11:40:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 11:40:05 +0900

    Separate credential with auto_request_review and others

commit 9e8fa9bcd7c01af9242f3b0d37c9ad521dc54404
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 10:44:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 10:44:31 +0900

    Re-enabled to upload sarif file of scorecards

commit 54681485817c39d4c226e62807e83e3c442d38aa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 10:44:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 10:44:03 +0900

    Update scorecards action with the latest template file

commit 9e33e043e50d015bce98f8bb41b331570e438328
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-20 09:51:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-20 09:51:02 +0900

    ZJIT: Add pass to clean CFG (#13655)

    We can fuse linked lists of blocks. This can be run any time, improves
    future analyses, improves codegen, and also makes the HIR output look
    nicer.

    Inspired by my implementation of CleanCFG for Cinder, which was itself
    inspired by Brett Simmers' implementation in HHVM.

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

commit 2a79d7fcc7f9cb65d823cf4576219ca58030fec7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-20 09:16:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-20 09:16:01 +0900

    Separate credential with dependabot and others

commit 38d38bd5ceec57d13c1c5250f2e0d0c88c4c47f0
  Author:     ywenc <ywenc@github.com>
  AuthorDate: 2025-06-13 07:05:04 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-20 01:19:38 +0900

    ZJIT: objtostring to HIR

    Add a fast path for known strings at compile time, otherwise calls method id to_s using Insn::SendWithoutBlock

    Co-authored-by: composerinteralia <composerinteralia@github.com>

    More specific test name in zjit/src/hir.rs

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

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

commit 34eaa6418e5c5b8639add323dbfd531b32a7d4a3
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-18 00:57:01 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-19 23:29:37 +0900

    ZJIT: Add `dupn` support

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

commit 82dfd44f937616ff31971f2d1e12a35bd022612c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 19:14:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 21:17:56 +0900

    CI: Extract `launchable_setup` function

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

commit 1b018d96d011418ad1822bf9b476338ed5c37d93
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 15:14:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 21:17:56 +0900

    CI: Extract `launchable_record_session` function

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

commit 87d33583af2d095b5adbd5ba3765cfdf23767c34
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 14:30:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 21:17:55 +0900

    CI: Store session info in variables directly

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

commit 963fc0abbc75e884dede526d917348f8c6dd00e4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-19 00:21:04 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-19 20:38:13 +0900

    ZJIT: Implement `opt_reverse`

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

commit 0be7fedd591d8a6ec44ee8b7ecb212834c5f550e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-19 17:28:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 17:28:44 +0900

    Fix EnvUtil::Debugger#dump

    - Send outputs from debugger to stderr
    - Use `%W` to interpolate the pid

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

commit d4ed7eb1ade9cdd14e0e3b164d5f66981eba29d3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-19 16:44:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 16:49:28 +0900

    Relax delta value

    https://github.com/ruby/ruby/actions/runs/15751511003/job/44397451542?pr=13649

    ```
        1) Failure:
      TestLastThread#test_last_thread [/Users/runner/work/ruby/ruby/src/test/-ext-/gvl/test_last_thread.rb:18]:
      Expected |1.0 - 1.167141| (0.16714099999999998) to be <= 0.16.
    ```

commit 6929542aa9b3589efe755b9105ca04e3f9bee58d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-19 14:16:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 14:18:12 +0900

    Update CGI sections under the doc directory

commit ef2b26cc3eaed06c5c9d4ef2c6d8669ff357afa4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-19 13:17:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 13:17:23 +0900

    `struct iseq_catch_table` is packed

commit 912edb47162626bf039ee649c8a1d05b2d7410ef
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-19 08:52:27 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 12:54:01 +0900

    Fix missing write barrier on class fields

    Found by wbcheck

        klass = Class.new
        200.times do |iv|
          klass.instance_variable_set("@_iv_#{iv}", Object.new)
        end

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

commit bfb14c2be91735d5cdd2b5cefe7f19d46a5b4f4a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-19 11:33:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 11:33:30 +0900

    [DOC] Add the link to [Feature #21219]

commit 5a19914030efedc86ac4f63778330cfee5822128
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-19 22:49:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-19 11:17:58 +0900

    [DOC] Fix indentation

    RDoc markdown parser requires exact 4 spaces or tab as indentation.
    Also the first nested bullet list must be separated from the enclosing
    bullet list item by a blank line.

commit c2d5d2969a501b9db93ed66db9017a5b6667af9f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-19 10:53:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-19 10:53:19 +0900

    [ruby/weakref] v0.1.4

    https://github.com/ruby/weakref/commit/f6bd03ed54

commit 441f18df5279ba8f921015dcdd9ed1e7299660e9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-10 23:11:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    Skip to Bundler 4 directly

commit 471da0f0bd8adcff4a32d51fcf5fe8828f05d6b0
  Author:     Landon Grindheim <landon.grindheim@gmail.com>
  AuthorDate: 2025-06-19 04:06:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Use `persist-credentials: false` in template

    `actions/checkout` defaults this value to `true`, causing credentials to
    be written to `.git/config`. By setting it to `false`, we lessen the
    likelihood of secrets being written to disk.

    https://github.com/rubygems/rubygems/commit/a751d36456

commit 6d8460e0a04f50665ce817cf87a5e7d1b542dc8d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-17 04:56:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Fix running gem commands in a `bundle exec` context

    They should only load plugins from gems in the bundle.

    https://github.com/rubygems/rubygems/commit/a229507820

commit 4281b95e537aeaecbcbce08311b96025563a1c88
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-17 01:46:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Move finding eigenclass to a method

    https://github.com/rubygems/rubygems/commit/5ad0737e77

commit 382b8eadaec8b3067f03a4f614407287ce560461
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-11 01:59:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Fix grammar in `bundle config` deprecation message

    https://github.com/rubygems/rubygems/commit/d23b3d61ac

commit f3ea6c35cc4dbb5d830e95276dc91d29bef94976
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-10 23:57:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Normalize Bundler version spec filters

    https://github.com/rubygems/rubygems/commit/28b6a7cf5e

commit 4245d522b2af5c17a08b3555ffed011a5aa508b2
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2023-03-13 22:28:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Allow enabling "Bundler 3 mode" more easily

    Currently to test Bundler 3 mode we have to actually edit the version
    file to simulate we're running a future version. This is inconvenient.

    Instead, allow passing an environment variable, `BUNDLER_3_MODE`, to set
    the "working mode" Bundler should use.

    This can now be set easily by end users to enable them to try out the
    changes in the future version and give us feedback.

    It's unclear how version auto-switching should work when this
    environment variable is set, so the auto-switching feature will be
    disabled in that case.

    https://github.com/rubygems/rubygems/commit/4e92e9b209

commit af0b184e83995b7184bb432e126f0e713cec17fb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-13 05:00:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-19 10:23:36 +0900

    [rubygems/rubygems] Never ignore gems from path sources during activation

    The "ignore" attribute is a RubyGems thing to mark when a installed gem
    should be ignored for activation because its extensions are not properly
    compiled.

    In the case of gems from path sources, the warning is not accurate
    because extensions are compiled into the local lib path, which is not
    where RubyGems leaves its sentinel `gem.build_complete` file.

    Also, there's a single version of each gem in the path source available
    to Bundler, so we always certainly want to consider that for activation
    and never makes sense to ignore it.

    https://github.com/rubygems/rubygems/commit/ec5d33695e

commit 3290d3d7f004fdf19311c3f4e40b01e45f14c23c
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-06-19 07:58:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-19 07:58:34 +0900

    ZJIT: Support invokebuiltin opcodes (#13632)

    * `invokebuiltin`
    * `invokebuiltin_delegate`
    * `invokebuiltin_delegate_leave`

    These instructions all call out to a C function, passing EC, self, and
    some number of arguments. `invokebuiltin` gets the arguments from the
    stack, whereas the `_delegate` instructions use a subset of the locals.

    `opt_invokebuiltin_delegate_leave` has a fast path for `leave`, but I'm
    not sure we need to do anything special for that here (FWIW YJIT appears
    to treat the two delegate instructions the same).

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 521b2fcba4e96898bfd237c79f17f19530b7a030
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-14 16:07:01 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Add missing write barrier for hash on iseq

    Found by wbcheck

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

commit 1bfd6493c02a2f964b76f505b3ebd8966e37ea7e
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-13 07:06:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Add write barrier to rb_cArray_empty_frozen

    Found by wbcheck

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

commit d5adf8511699648b1cff97ca4bd89c63944b8324
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-14 16:20:18 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Add write barrier to rb_cHash_empty_frozen

    Found by wbcheck

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

commit 121f967bcdcbaf11dc23657c15c655324f8059d9
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-10 02:09:10 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    More write barriers to local_iseq and parent_iseq

    Found by wbcheck

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

commit 99de38907157935927401a4515de1763d6f0c36f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 12:10:05 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Use write barriers when loading catch table

    Found by wbcheck

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

commit 61230f531d4f058559b4241b188f0dbeb0998580
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 12:05:18 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Add missing write barriers to ibf_load

    Found by wbcheck

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

commit db5724894f7c0d31356cd946b8d92497d1b237a4
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 10:37:46 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:18:10 +0900

    Fix a missing write barrier to mandatory_only_iseq

    Found by wbcheck

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

commit 6b3fa2356321832cb0c22e3f289498bb686a0019
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-09 02:52:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:17:34 +0900

    Add write barrier on tm_from_time->timew

    We want to always use time_set_timew, as timew is 64-bit even on 32-bit
    platforms so we need to be careful to both write that size, but still
    trigger write barriers if we end up with a heap object.

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

commit 0e2067dfa74ed77ad4cab79104c86503c7cfd434
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-09 02:59:13 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:17:34 +0900

    Add missing write barrier to time_init_copy

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

commit 7439f353784fa3f35316ea671e531e3a45dd2416
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 15:30:04 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:17:34 +0900

    Write barrier for zone on time

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

commit bb0d6296ac0819823c4999b79fb3eca205769631
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-10 10:13:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:08:44 +0900

    Add write barrier for hash in obj_traverse_i

    We are inserting directly into the st_table, so we need to issue a write
    barrier from the hash.

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

commit f951ce37d65ed50c8e6f830dd3fe66172b6ecc82
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-14 18:38:17 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:08:44 +0900

    Add missing writebarrier on move_leave

    This object was newly allocated on move_enter, so some GC may happen and
    it may have been marked by move_leave, so we need to issue an
    rb_gc_writebarrier_remember so that any new references are seen afer the
    memcpy from the old object.

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

commit 89b3e4719209d47f223256daee4bccbe7ae92d60
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-08 13:39:27 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-19 02:08:44 +0900

    Add write barriers from Ractor::Port to Ractor

    Ractor::Port will mark the ractor, so we must issue a write barrier.

    This was detected by wbcheck, but we've also seen it in CI:

        verify_internal_consistency_reachable_i: WB miss (O->Y) 0x000071507d8bff80 ractor/port/Ractor::Port ractor/port -> 0x0000715097f5a470 ractor/Ractor r:1
        <internal:kernel>:48: [BUG] gc_verify_internal_consistency: found internal inconsistency.

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

commit aaa956e8f19aa14ab9482474cc51eeb103623e7d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-18 20:26:02 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-18 20:26:02 +0900

    Now irb is a bundled gem and needs rubygems

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

commit 4eaa245fccd3dd9a61fe1b5f114a6fb47907640a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-18 17:15:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-18 17:15:47 +0900

    Restore ignored test target for mswin

commit 332f83d1ab418cd82ba8da542fce73e611da8141
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-18 15:22:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-18 16:13:12 +0900

    Enabled the released versions of bundled gems that are working fine with Ruby HEAD

commit 13a2b9fa2de9d5aa654871570ef416af90ef424d
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-06-18 16:06:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-18 16:06:15 +0900

    Update bundled gems list as of 2025-06-18

commit 2606a36a2e094d9932230e12ea80b266131465fd
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-04 22:30:36 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-18 14:51:56 +0900

    Update bundled version of debug and use the dev version of irb

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

commit b7cb29b6b24371dd1d4678b2bc6fcfc1bf9f3eee
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-02 17:33:20 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-18 14:51:56 +0900

    Add a test for the previous commit

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

commit 10767283dd0277a1d780790ce6bde67cf2c832a2
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-02 17:12:15 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-18 14:51:56 +0900

    Exclude internal frames from backtrace

    This changeset suppresses backtrace locations like
    `<internal:array>:211` as much as possible.

    Before the patch:
    ```
    $ ruby -e '[1].fetch_values(42)'
    <internal:array>:211:in 'Array#fetch': index 42 outside of array bounds: -1...1 (IndexError)
            from <internal:array>:211:in 'block in Array#fetch_values'
            from <internal:array>:211:in 'Array#map!'
            from <internal:array>:211:in 'Array#fetch_values'
            from -e:1:in '<main>'
    ```

    After the patch:
    ```
    $ ./miniruby -e '[1].fetch_values(42)'
    -e:1:in 'Array#fetch_values': index 42 outside of array bounds: -1...1 (IndexError)
            from -e:1:in '<main>'
    ```

    Specifically:

    * The special backtrace handling of BUILTIN_ATTR_C_TRACE is now always
      applied to frames with `<internal:...>`.
    * When multiple consecutive internal frames appear, all but the bottom
      (caller-side) frame are removed.

    [Misc #20968]

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

commit ca10c521ff748bded89e481ab3f1767a8e56a71c
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-02 16:06:13 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-18 14:51:56 +0900

    refactor: rename bt_update_cfunc_loc to bt_backpatch_loc

    In preparation for using it to update not only cfunc frames but also
    internal frames, the function (and related variable names) are chagned.

    I felt that the word "backpatch" is more appropriate than the more
    general verb "update" here.

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

commit f0d32ee8d3b4e4da68191f4c1a3e6f06ae33e584
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-18 13:02:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-18 13:45:31 +0900

    net-imap and irb are not working with dev version of RDoc

    Because they are required markdown.rb provided by release package.

commit ecf1746fa4b899692514e68719227f04f9d6c1cc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-18 10:34:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-18 13:45:31 +0900

    Use the original gemspec from release package of RDoc

    [Bug #21312]

    https://bugs.ruby-lang.org/issues/21312
    https://github.com/ruby/rdoc/pull/1379

commit 3cfd71e7e48475d8d36ad1f1f4ca7924f67ef72e
  Author:     Tim Smith <tsmith84@gmail.com>
  AuthorDate: 2025-06-17 14:15:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-18 07:51:16 +0900

    Fix minor typos in comments, specs, and docs

    Just a bit of minor cleanup

    Signed-off-by: Tim Smith <tsmith84@gmail.com>

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

commit c6a6645495d849735132162187bd8a69c009b7c6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-11 03:15:47 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-18 07:33:20 +0900

    Fix early write barrier rb_marshal_define_compat

    This write barrier occurred before the entry was added to the table, so
    if GC occurred when inserting into the table, the write could be missed.

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

commit a7dc515c1df34c9952401cfb17d52266b7cf5534
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-15 17:18:22 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-18 07:32:53 +0900

    Fix too early writebarrier in tally_up

    After returning from the callback in st_update is the point that the
    hash table may be resized, which could trigger a GC and mark the table
    being used for the tally.

        RUBY_GC_LIBRARY=wbcheck WBCHECK_VERIFY_AFTER_WB=1 ./miniruby -e '(0...100).map(&:to_s).tally'

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

commit e3ec101cc21613550ef87b7bd8432a69c7e639de
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-18 05:56:26 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-06-18 07:03:39 +0900

    thread_cleanup: set CFP to NULL before clearing ec's stack

    We clear the CFP first so that if a sampling profiler interrupts the current thread during `rb_ec_set_vm_stack`,
    `thread_profile_frames` returns early instead of trying to walk the stack that's no longer set on the ec.

    The early return in `thread_profile_frames` was introduced at eab7f4623fb.

    Fixes [Bug #21441]

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

commit b0662602968f0431aaf2c220834dcfb14bfc3372
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 23:30:59 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-18 01:46:58 +0900

    Follow up testunit

    * Update method names.
    * Sort shuffled tests by names.

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

commit 1a527929a5f521cbccc177020fcf196ea5487d80
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 22:21:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-18 01:46:58 +0900

    Revert "Temporary pend unknown behavior of parallel tests"

    This reverts commit 980f61935f6e8331e0908dc963e60fb727ab4d8c, which
    seems no longer needed.

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

commit c99cb62da81646e54ffb391b5cb1d2a3bc45bc0c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 23:06:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 23:06:41 +0900

    Fix up tool/auto-style.rb

    Do not clear the commit-wide flags per file.

commit 8faa32327b0327981880f8651f6dd782d14f9ae1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-17 17:03:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 22:28:05 +0900

    Add missing write barriers in `rb_imemo_fields_clone`.

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

commit cd9f447be247478d2eb3da985295735cce20cb23
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-16 18:19:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 22:28:05 +0900

    Refactor generic fields to use `T_IMEMO/fields` objects.

    Followup: https://github.com/ruby/ruby/pull/13589

    This simplify a lot of things, as we no longer need to manually
    manage the memory, we can use the Read-Copy-Update pattern and
    avoid numerous race conditions.

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

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

commit 164486a954e3cf3e716393c5f9a9e2c4dd776993
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-16 17:34:20 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 22:28:05 +0900

    Refactor `rb_imemo_fields_new` to not assume T_CLASS

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

commit fb68721f63a7f56c646ed1e6ff1beac1fc1844a4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-16 17:31:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 22:28:05 +0900

    Rename `imemo_class_fields` -> `imemo_fields`

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

commit 4cb0205f51c1c49270027c41f539e8d120a13b6c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-17 18:51:17 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 22:28:05 +0900

    Handle false positives in tool/auto-style.rb

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

commit 0933400f451813f08671dd02462f1a718e99d564
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-17 01:09:09 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-17 20:51:58 +0900

    ZJIT: Add codegen (and FrameState) for GetConstPath

    Issue a call to rb_vm_opt_getconstant_path() like the interpreter, but
    since that allocates the IC, we need to save the PC before calling. Add
    FrameState to GetConstPath to get access to the PC.

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

commit 01ff17fa40cdfbd811ec3b0c13034936451e693a
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-06-10 22:47:03 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-17 20:35:47 +0900

    ZJIT: Parse opt freeze insns to HIR

    * `opt_hash_freeze`
    * `opt_ary_freeze`
    * `opt_str_freeze`
    * `opt_str_uminus`

    Similar to `opt_neq`, but there are no args for `freeze`

    Co-authored-by: ywenc <ywenc@github.com>
    Co-authored-by: Max Bernstein <max@bernsteinbear.com>

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

commit 9e5c74f2196f34cee4b241ab9dba2ed9adc89f60
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 19:23:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-17 20:18:05 +0900

    [ruby/prism] [DOC] Fix a typo in comment

    ruby/ruby#13636

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

    Co-Authored-By: Tim Smith <tsmith84@gmail.com>

commit 9e839d3c0e6b2a277bb07b845b8471bba325a72c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-17 18:27:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 20:00:31 +0900

    Optimize `benchmark/vm_ivar_of_class`

    ```
    compare-ruby: ruby 3.5.0dev (2025-06-17T08:45:40Z master e9d35671d2) +PRISM [arm64-darwin24]
    last_commit=[ruby/json] Fix a typo
    built-ruby: ruby 3.5.0dev (2025-06-17T09:27:05Z opt-getivar-for-cl.. ed1d7cd778) +PRISM [arm64-darwin24]

    |                      |compare-ruby|built-ruby|
    |:---------------------|-----------:|---------:|
    |vm_ivar_of_class_set  |     12.306M|   13.957M|
    |                      |           -|     1.13x|
    |vm_ivar_of_class      |     16.167M|   24.029M|
    |                      |           -|     1.49x|
    ```

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

commit 9647dca143ef614cdb1c8cf610d0aa63bf73e012
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 18:41:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-17 18:41:45 +0900

    [ruby/tempfile] [DOC] Fix a typo

    ruby/ruby#13636

    https://github.com/ruby/tempfile/commit/366d9ccb8f

    Co-Authored-By: Tim Smith <tsmith84@gmail.com>

commit e9d35671d2c584e6a77a00fa4aacc5593b2fcb14
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 17:01:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 17:45:40 +0900

    [ruby/json] Fix a typo

    ruby/ruby#13636

    https://github.com/ruby/json/commit/6fc2c4b6ab

    Co-Authored-By: Tim Smith <tsmith84@gmail.com>

commit 8992689118b0d396994757fe3282b200f914e603
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 16:30:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 16:30:40 +0900

    Adjust indent [ci]

commit a3f2f7b73aff9f7533662118303bd40767bbc19f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-17 15:09:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:35 +0900

    lewagon/wait-on-check-action didn't need bot token

commit 4e2db1ff58b8266cf5cabc9c65f924551444ac77
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-16 21:52:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:35 +0900

    [rubygems/rubygems] Etc exemption on Windows is no longer necessary

    https://github.com/rubygems/rubygems/commit/228f59e3ab

commit 89ce782fedaab1ed48403f956de968f44ca342fe
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-16 20:12:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:35 +0900

    [rubygems/rubygems] Reword a couple of specs to further clarify them

    https://github.com/rubygems/rubygems/commit/e28b5e306f

commit 632bf3b54b47ad26e43de54e53737dac2534feae
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-16 20:03:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:35 +0900

    [rubygems/rubygems] Migrate mirror probe specs to use the compact index API

    Could potentially fix some flakies we're using and make the specs more
    "modern" and simplifies them because less fallbacks are involved.

    https://github.com/rubygems/rubygems/commit/30da9a1a93

commit 3319d3d76c7db105323cf0c9fb30c4b2b75b1936
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-16 19:43:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:35 +0900

    [rubygems/rubygems] Consistently use instance variables directly

    I don't think the indirection improve things.

    https://github.com/rubygems/rubygems/commit/b408b28844

commit 0a62e82ac4ea75f5dd435c922500cb87af40612c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-13 02:48:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:34 +0900

    [rubygems/rubygems] Fix `gem install` sometimes compiling the wrong source files

    If a previous copy of a gem is already installed, RubyGems will not
    reinstall the gem but only recompile its extensions. This seems like a
    good idea, but only if the gem is being installed from the registry.

    If we are installing a locally built package, then the package should be
    completely reinstalled and extensions compiled from the sources in the
    locally built package, not from the sources in the previous
    installation.

    https://github.com/rubygems/rubygems/commit/1c282d98d5

commit 0c2f0ffa60930308cf07201527489475cf98781f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-13 02:35:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:34 +0900

    [rubygems/rubygems] Refactor some logic to create extconf files for tests

    https://github.com/rubygems/rubygems/commit/9a859078ab

commit fadcee3ba08da0d27d6e7a836fa6de81762b366c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-13 02:20:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:34 +0900

    [rubygems/rubygems] Use `Dir.chdir` with a block

    I don't see any warnings.

    https://github.com/rubygems/rubygems/commit/395df777a2

commit 459f265b562cdf5043ed349cf9b1ed883b273e3c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-12 19:10:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-17 15:09:34 +0900

    [rubygems/rubygems] Cleanup dead code, RubyGems 3.3 is no longer supported

    https://github.com/rubygems/rubygems/commit/945a29a477

commit 055fef00a1c27fdc8293114dc134ca7910b1dc79
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-17 12:58:31 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 15:01:23 +0900

    Free after insert in generic_ivar_set_shape_fields

    Previously we were performing a realloc and then inserting the new value
    into the table. If the table was flagged as requiring a rebuild, this
    could trigger GC work and marking within that GC could access the fields
    freed by realloc.

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

commit 8aac19d5987150cf5c45fee73c7a949ca472f488
  Author:     Kasumi Hanazuki <kasumi@rollingapple.net>
  AuthorDate: 2025-04-02 04:45:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 14:57:02 +0900

    io_buffer: Reimplement dcompact for IO::Buffer

    The `source` field in IO::Buffer can have a String or an IO::Buffer
    object, if not nil.

    - When the `source` is a String object. The `base` field points to the
      memory location of the String content, which can be embedded in
      RSTRING, and in that case, GC compaction can move the memory region
      along with the String object.

      Thus, IO::Buffer needs to pin the `source` object to prevent `base`
      pointer from becoming invalid.

    - When the `source` is an IO::Buffer, then `base` is a pointer to a
      malloced or mmapped memory region, managed by the source IO::Buffer.
      In this case, we don't need to pin the source IO::Buffer object,
      since the referred memory region won't get moved by GC.

    Closes: [Bug #21210]

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

commit 4cc58c3a6fdb70de36f585e4ce8ad66b5db43938
  Author:     Kasumi Hanazuki <kasumi@rollingapple.net>
  AuthorDate: 2025-04-02 04:34:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-17 14:57:02 +0900

    Revert "Mark rb_io_buffer_type references declaratively"

    This reverts commit 6012145299cfa4ab561360c78710c7f2941a7e9d.

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

commit 6736641372f17a427df99d6cef4b88e8d725d8aa
  Author:     Tim Smith <tsmith84@gmail.com>
  AuthorDate: 2025-06-17 14:41:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-17 14:52:04 +0900

    [ruby/win32-registry] Minor readme improvements and typo fixes

    - Put shell commands in code blocks so they can easily be copied from
      the GitHub UI directly
    - Fix a few typos
    - Fix a dead link to MSDN

    Signed-off-by: Tim Smith <tsmith84@gmail.com>

    https://github.com/ruby/win32-registry/commit/61a4672df7

commit a60bf9e693706c69484521d4967c9beb4d45772b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 00:42:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 12:30:18 +0900

    * adjust indent

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

commit c09619d91163ea7c042ee3b5de20c23eaf5a2aba
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-17 00:46:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 12:30:18 +0900

    Auto-style indent

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

commit 21c7131df818c1f7f571d4ccf9be150d2c9cc374
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-24 10:37:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 12:20:30 +0900

    Run git without shell

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

commit 9255db4bc08766763a6d78f50a90e05c58980899
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-24 10:37:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-17 12:20:29 +0900

    Run auto-style only when pull-request

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

commit 50c6bd47ef109a9ab9440a33f2fc275345e7bf7a
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-15 18:25:33 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-06-17 10:07:53 +0900

    Update vm->self location and mark it in vm.c for consistency

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

commit b1410c1c75518a54a2a32e0da2555840258ce228
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-06-11 09:34:41 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-06-17 08:20:07 +0900

    ZJIT: Add codegen for StringCopy

    Prior to this commit we compiled `putstring` and `putchilledstring` to
    `StringCopy`, but then failed to compile past HIR.

    This commit adds codegen for `StringCopy` to call `rb_ec_str_ressurrect`
    as the VM does for these instructions.

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

commit 2956573b09ec78d7735a07fe3d7b2dcc907879fb
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-06-14 20:49:28 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-06-17 05:59:10 +0900

    Add test for `IO::Buffer.for(frozen_string) {}` and omit rb_str_{,un}locktmp in that case

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

commit 83fb07fb2c97b9922450979fa4a56f43324317a9
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-06-14 20:32:51 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-06-17 05:59:10 +0900

    [Bug #20998] Check if the string is frozen in rb_str_locktmp() & rb_str_unlocktmp()

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

commit cce4bfdca9e001ccac38b4f3125627b5c0d0e9f2
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-06-17 04:24:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-17 04:24:33 +0900

    ZJIT: Add support for putspecialobject (#13565)

    * ZJIT: Add support for putspecialobject

    * Address feedback

    * Update tests

    * Adjust the indentation of a Ruby test

    ---------

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 260ac23a53e8db93087216d115aa4b054e9cf35b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 19:20:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-16 19:20:48 +0900

    Use `success` option to check if the process failed

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

commit f0371efbd87f72f140cbb6ea105a261ff1b23772
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 19:18:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-16 19:18:11 +0900

    Suppress stderr output in `TestRubyOptions#assert_segv`

    It is checked against the given `list`, do not print the same output
    twice.

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

commit 85e61eac8579f09d76cd9a24f9c6fc23db80664c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 19:16:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-16 19:16:28 +0900

    Use the message given to `TestRubyOptions#assert_segv`

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

commit c59f66b61ab5134110a8283a0ac44580e95d9120
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-16 12:54:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-16 14:33:57 +0900

    CI: Fix spec_opts

commit 311aa0dfa7cdc1343cccc00e358dc871865a409d
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-06-16 14:18:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-16 14:18:57 +0900

    Launchable: Terminate Launchable CLI process quickly by sending singa… (#13622)

    Launchable: Terminate Launchable CLI process quickly by sending singals to a process group

    Sometimes, the timeout errors occurred in Compilations workflow, this is because Launchable CLI process was not terminated correctly. To address this issue, we'll send signals to a process group.

    https://github.com/ruby/ruby/actions/runs/15614867686
    https://github.com/ruby/ruby/actions/runs/15662906947

    Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit ddb412f6804484db165fdbbd34e144a7b2bed5b0
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-12 00:58:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-16 10:03:36 +0900

    [rubygems/rubygems] Fix redefinition warnings when using modern RubyGems with old Bundler

    https://github.com/rubygems/rubygems/commit/ce7e8e92ca

commit 022c18b60d2245980abcdd7b5195eebca73b8809
  Author:     Dmitry Dygalo <dadygalo@gmail.com>
  AuthorDate: 2025-06-16 01:12:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-16 01:12:45 +0900

    [ruby/date] [Bug #21436] check for fixnum lower bound in `m_ajd`

    Issue - https://bugs.ruby-lang.org/issues/21436

    Apparently, the lower bound check is missing, which results in overflow & wrapping later on in RB_INT2FIX

    Signed-off-by: Dmitry Dygalo <dmitry.dygalo@workato.com>

    https://github.com/ruby/date/commit/67d75e8423

commit c1877d431e76f4a782d51602fa8487e98d302956
  Author:     Dmitry Dygalo <dadygalo@gmail.com>
  AuthorDate: 2025-06-16 01:11:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-16 01:11:06 +0900

    [ruby/date] [Bug #21437] Date#hash for large years

    Addresses https://bugs.ruby-lang.org/issues/21437

    Signed-off-by: Dmitry Dygalo <dmitry.dygalo@workato.com>

    https://github.com/ruby/date/commit/31f07bc576

commit 9a840fd2d4c121d91dc822661774761171624fcb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-15 23:54:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-15 23:59:47 +0900

    Relax the criteria of flaky weak_references count test

commit a259ce406f14f3e044beaa35a16b650920e248d1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-15 22:22:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-15 23:59:47 +0900

    Simplify weak_references count test initialization

    Using an enumerator does not resolve the intermittent failures: 100+
    failures in 10,000 iterations.

commit 04925c6608f3e8f869ed9764b69d9273a1238fbe
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-15 22:15:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-15 23:59:46 +0900

    Add `--keep-repeating` option

    It directs the program to continue repeating the tests the specified
    number of times, even if any tests fail along the way.

commit d60144a4908b9bd64f7cd635defaa68b2abf2638
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 01:43:21 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-06-15 22:37:20 +0900

    Implement COLON3 NODE locations

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

commit c584790bde83bfd6a01ebc9301f2fe00e4986ad7
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 01:29:43 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-06-15 22:37:20 +0900

    Implement COLON2 NODE locations

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

commit 2d96400c26bbba16233aa8d7afce297804400a2a
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-06-15 21:12:07 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-06-15 22:35:50 +0900

    Fix typo in error message for shape_id verification

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

commit 251cfdfe22bf53e88a140f419d9db0be139ca68e
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-06-15 21:09:34 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-06-15 22:35:26 +0900

    Fix typo in rb_bug message for unreachable code

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

commit ef66aef7912eb41c1d0d0733fe51375932e38a99
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-06-15 21:07:25 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-06-15 22:34:19 +0900

    Fix typo in NEWS.md

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

commit b670a04ac7f92c26dc8ecad4ccbb31a171a76d6e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-15 20:58:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-15 20:58:06 +0900

    Fix a missing double quote

commit 36a04de9f08584fd566a349c9d5e953905b45838
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-14 15:58:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-15 20:24:30 +0900

    Dump with debugger before killing stuck worker

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

commit c88c2319a85c0006d0800e06a1effd08310b434d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-15 11:45:00 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-15 13:41:29 +0900

    Skip test_exivar_resize_with_compaction_stress on s390x

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

commit f5ada7d1b25adfbc8e96498d8070abdc22bab686
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-06-15 10:36:44 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-15 12:01:41 +0900

    Skip the optional capi digest specs if fiddle is not installed

    Should fix a failure on the OpenBSD RubyCI machine.

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

commit 39697ffd01f98b888a5585547ef8cbee4199c583
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-14 10:59:34 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-14 15:29:41 +0900

    Remove fields_tbl in gen_fields_lookup_ensure_size

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

commit 5342d9130beb44f9aa1dddbb7f6276bf01c7404f
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-14 10:52:32 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-14 15:29:41 +0900

    Fix generic_ivar_set_shape_field for table rebuild

    [Bug #21438]

    Previously GC could trigger a table rebuild of the generic fields
    st_table in the middle of calling the st_update callback. This could
    cause entries to be reallocated or rearranged and the update to be for
    the wrong entry.

    This commit adds an assertion to make that case easier to detect, and
    replaces the st_update with a separate st_lookup and st_insert.

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

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

commit 74cdf8727e6eb2f958a8516c44fcb1d429a3451c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-14 14:55:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 14:55:43 +0900

    Remove test_object_id_race_free_with_stress_compact

    This test was written for another implementation of `#object_id`
    which had complex interations with GC, that's not the case of
    the implementation that was actually merged.

commit 68625a23d6deeb2e4c498d4bccc36d616608e05f
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-06-14 12:32:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-14 12:32:51 +0900

    Fix blocking operation cancellation. (#13614)

    Expose `rb_thread_resolve_unblock_function` internally.

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

commit c45c600e2237affa8ba62ea5b290e29a1045d483
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-06-14 09:54:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-14 09:54:34 +0900

    Add `open_timeout` as an overall timeout option for `Socket.tcp` (#13368)

    * Add `open_timeout` as an overall timeout option for `Socket.tcp`

    [Background]
    Currently, `TCPSocket.new` and `Socket.tcp` accept two kind of timeout options:
    - `resolv_timeout`, which controls the timeout for DNS resolution
    - `connect_timeout`, which controls the timeout for the connection attempt

    With the introduction of Happy Eyeballs Version 2 (as per [RFC 8305](https://datatracker.ietf.org/doc/html/rfc8305)) in[ Feature #20108](https://bugs.ruby-lang.org/issues/20108) and [Feature #20782](https://bugs.ruby-lang.org/issues/20782), both address resolution and connection attempts are now parallelized.
    As a result, the sum of `resolv_timeout` and `connect_timeout` no longer represents the total timeout duration. This is because, in HEv2, name resolution and connection attempts are performed concurrently, causing the two timeouts to overlap.

    Example:
    When `resolv_timeout: 200ms` and `connect_timeout: 100ms` are set:
    1. An IPv6 address  is resolved after the method starts immediately (IPv4 is still being resolved).
    2. A connection attempt is initiated to the IPv6 address
    3. After 100ms, `connect_timeout` is exceeded. However, since `resolv_timeout` still has 100ms left, the IPv4 resolution continues.
    4. After 200ms from the start, the method raises a `resolv_timeout` error.

    In this case, the total elapsed time before a timeout is 200ms, not the expected 300ms (100ms + 200ms).

    Furthermore, in HEv2, connection attempts are also parallelized.
    It starts a new connection attempts every 250ms for resolved addresses. This makes the definition of `connect_timeout` even more ambiguous—specifically, it becomes unclear from which point the timeout is counted.

    Additionally, these methods initiate new connection attempts every 250ms (Connection Attempt Delay) for each candidate address, thereby parallelizing connection attempts. However, this behavior makes it unclear from which point in time the connect_timeout is actually measured.
    Currently, a `connect_timeout` is raised only after the last connection attempt exceeds the timeout.

    Example:
    When `connect_timeout: 100ms` is set and 3 address candidates:
    1. Start a connection attempt to the address `a`
    2. 250ms after step 1, start a new connection attempt to the address `b`
    3. 500ms after step 1, start a new connection attempt to the address `c`
    4. 1000ms after step 3 (1000ms after starting the connection to `c`, 1250ms after starting the connection to `b,` and 1500ms after starting the connection to `a`) `connect_timeout` is raised

    This behavior aims to favor successful connections by allowing more time for each attempt, but it results in a timeout model that is difficult to reason about.

    These methods have supported `resolv_timeout` and `connect_timeout` options even before the introduction of HEv2. However, in many use cases, it would be more convenient if a timeout occurred after a specified duration from the start of the method. Similar functions in other languages (such as PHP, Python, and Go) typically allow specifying only an overall timeout.

    [Proposal]
    I propose adding an `open_timeout` option to `Socket.tcp` in this PR, which triggers a timeout after a specified duration has elapsed from the start of the method.

    The name `open_timeout` aligns with the existing accessor used in `Net::HTTP`.
    If `open_timeout` is specified together with `resolv_timeout` and `connect_timeout`, I propose that only `open_timeout` be used and the others be ignored. While it is possible to support combinations of `open_timeout`, `resolv_timeout`, and `connect_timeout`, doing so would require defining which timeout takes precedence in which situations. In this case, I believe it is more valuable to keep the behavior simple and easy to understand, rather than supporting more complex use cases.

    If this proposal is accepted, I also plan to extend `open_timeout` support to `TCPSocket.new`.

    While the long-term future of `resolv_timeout` and `connect_timeout` may warrant further discussion, I believe the immediate priority is to offer a straightforward way to specify an overall timeout.

    [Outcome]
    If `open_timeout` is also supported by `TCPSocket.new`, users would be able to manage total connection timeouts directly in `Net::HTTP#connect` without relying on `Timeout.timeout`.
    https://github.com/ruby/ruby/blob/aa0f689bf45352c4a592e7f1a044912c40435266/lib/net/http.rb#L1657

    ---

    * Raise an exception if it is specified together with other timeout options

    > If open_timeout is specified together with resolv_timeout and connect_timeout, I propose that only open_timeout be used and the others be ignored.

    Since this approach may be unclear to users, I’ve decided to explicitly raise an `ArgumentError` if these options are specified together.

    * Add doc

    * Fix: open_timeout error should be raised even if there are still addresses that have not been tried

  Notes:
    Merged-By: shioimm <shioi.mm@gmail.com>

commit 15084fbc3c10d21769dd61cd1cd55b2662fa8845
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-14 00:56:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 06:50:30 +0900

    Get rid of FL_EXIVAR

    Now that the shape_id gives us all the same information, it's no
    longer needed.

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

commit 6dbe24fe5641e5c86638ff5c5d9fe08ea31d196d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 22:49:17 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 06:50:30 +0900

    Use the `shape_id` rather than `FL_EXIVAR`

    We still keep setting `FL_EXIVAR` so that `rb_shape_verify_consistency`
    can detect discrepancies.

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

commit b51078f82ee35d532dfd5b6981733f757d410d79
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 22:22:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 06:50:30 +0900

    Enforce consistency between shape_id and FL_EXIVAR

    The FL_EXIVAR is a bit redundant with the shape_id.
    Now that the `shape_id` is embedded in all objects on all archs,
    we can cheaply check if an object has any fields with a simple
    bitmask.

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

commit f2d7c6afee45cd7db86fbe2508556f88518a3bdb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-13 21:09:20 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 05:24:09 +0900

    Suppress unused-variable warning

commit 39569da4e497c08b9d8610937cca7bbfd8e0d484
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-06-14 04:43:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-06-14 04:45:34 +0900

    Work around CI failures coming from Launchable

    https://github.com/ruby/ruby/actions/runs/15640729145/job/44067161266

commit 69148a87e8a78cc30eb01fa85c6be6b45661c26c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-06-14 04:40:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-14 04:40:29 +0900

    ZJIT: Partially enable btest on CI (#13613)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit a99d941cacbb9d5d277400abf76f5648f91009ea
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 18:23:32 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 02:46:29 +0900

    Add SHAPE_ID_HAS_IVAR_MASK for quick ivar check

    This allow checking if an object has ivars with just a shape_id
    mask.

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

commit fb0dbbc0e660d0c77ebba292578945aca8baafac
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-14 02:45:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-14 02:46:10 +0900

    [ruby/date] d_lite_marshal_load: copy ivars in the right order

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

commit 99a72df16d6174f171754c3a4dcd48c07108097e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-14 02:36:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-14 02:40:43 +0900

    [ruby/date] Remove references to FL_EXIVAR

    This flag isn't really meant to be public, it's an implementation
    detail of Ruby.

    And checking it before calling `rb_copy_generic_ivar` only save
    a function call.

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

commit e22fc73c66b478a19930788b7d23c6ea48b4bdec
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 21:25:42 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 01:27:52 +0900

    Fix a race condition in object_id for shareable objects

    If an object is shareable and has no capacity left, it isn't
    safe to store the object ID in fields as it requires an object
    resize which can't be done unless all field reads are synchronized.

    In this very specific case we create the object_id in advance,
    before the object is made shareable.

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

commit 0674f7dfb5fa79c5b2158c38f2ae80bc5692922a
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-13 07:22:57 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-06-14 00:54:35 +0900

    ZJIT: Only write LIR output of HIR instructions with output

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

commit f208e017f200a7912cf172cfbb9849ed0214cf2f
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-13 07:17:50 +0900
  Commit:     Max Bernstein <tekknolagi@gmail.com>
  CommitDate: 2025-06-14 00:54:35 +0900

    ZJIT: Add codegen for SideExit

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

commit 97ea756e1cd221732606746b329b929f9c0f9b3f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 22:25:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 00:13:13 +0900

    test/ruby/test_ractor.rb: avoid outputting anything

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

commit 545e99da66bddfcf8afa965747eb9bc9821aefa5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 21:29:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-14 00:13:08 +0900

    mmtk: Get rid of unused reference to FL_EXIVAR

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

commit 1d11e1be134617bcc3219be325d3d7b46f5fe8e5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-13 21:09:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-13 21:09:20 +0900

    Suppress unused-variable warning

commit a66d823c157959831f78df4c56367562cded6a92
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-13 19:48:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-13 19:48:44 +0900

    CI: Fix launchable timeout

    `setup_launchable` needs to run the current shell, not in a subshell.

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

commit 583ce06c0e6f7d10e1b485a4ca32cf797eab62cf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-13 18:25:14 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-13 19:35:52 +0900

    Normalize subseconds using `wideint_t` instead of `time_t`

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

commit b8de3cfb04e4d510d3a3af73029a9ca5ab39f79e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-11 23:33:14 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-13 19:35:52 +0900

    Conversion is needed between `WIDEVALUE` and `VALUE`

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

commit c7f5ae981a36405f4161c7ee7fe8cd0186c8d89f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-11 23:29:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-13 19:35:52 +0900

    The device numbers in `struct statx` may be larger than `dev_t`

    `dev_t` is already 64-bit in glibc, but on some platforms like Alpine
    Linux and Android NDK, `makedev` is defined as more than 32-bit (
    promoting to `unsigned long long` then left-shifting by 32bit), while
    `dev_t` is still 32-bit.

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

commit 071aa02a4ad989916feaf74cd14633ac0e7d0728
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 18:26:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 19:03:22 +0900

    shape.c: cleanup unused IDs

    id_frozen and id_t_object are no longer used.
    id_object_id no longer need to be exposed.

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

commit dd4c5acc0f6a6b3858c784438364a766f5975617
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-13 16:11:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 17:08:42 +0900

    vm_callinfo.h: Stick to using user flags

    For some unclear reasons VM_CALLCACHE_UNMARKABLE
    and VM_CALLCACHE_UNMARKABLE used global flags rather than the
    available IMEMO_FL_USER flags.

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

commit 2e7e78cd590d20aa9d41422e96302f3edd73f623
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-13 14:15:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-13 14:22:06 +0900

    [Bug #21440] Stop caching member list in frozen Data/Struct class

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

commit 64c421db20f391a893d53cc098ec2dbbe9d45962
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-13 10:57:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-13 12:55:15 +0900

    [rubygems/rubygems] Surpressing warning for CGI library of Ruby 3.5+

    ```
    ❯ bin/rspec ./spec/bundler/friendly_errors_spec.rb
    /Users/hsbt/Documents/github.com/rubygems/rubygems/bundler/spec/bundler/friendly_errors_spec.rb:5: warning: CGI library is removed from Ruby 3.5. Please use cgi/escape instead for CGI.escape and CGI.unescape features.
    If you need to use the full features of CGI library, Please install cgi gem.
    ```

    https://github.com/rubygems/rubygems/commit/a23a951004

commit 22a7f6b6c257e2ceb10a1f2ef304d6e94b5b9b2b
  Author:     Cody Cutrer <cody@cutrer.us>
  AuthorDate: 2025-03-14 00:21:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-13 12:55:14 +0900

    [rubygems/rubygems] Recognize JRuby loaded from a classloader, not just any JAR

    Such is the case if you embed JRuby into an application dynamically (such
    as via OSGi). From my test environment:

    ```
    irb(main):006:0> $LOADED_FEATURES.grep(/cli.rb/)
    => ["uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/cli.rb"]
    ```

    https://github.com/rubygems/rubygems/commit/75ac5d46a7

commit 73532ecf3a84d3a6340bf029bd9f2b25f226c71b
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-05-30 04:40:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-13 12:55:13 +0900

    [rubygems/rubygems] Update bundled tls certs

    By running tool/update_bundled_ca_certificates.rb

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/54f5278450

commit 7cfdcde069037b2a353c7662eb8819ef96ba6dad
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-11 22:56:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-13 11:14:05 +0900

    Expect aligned pointer for the atomic operations

commit 7fa3e1a1db6e7c998865cc114f9145ab841f8601
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-06-13 09:18:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-13 09:18:50 +0900

    ZJIT: Write a callee frame on JIT-to-JIT calls (#13579)

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit ef9301a6b747035a113f3c9dfb805214e9285026
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-12 05:35:28 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-13 05:13:55 +0900

    Ensure crr->feature is an fstring

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

commit b28f3443122c4e5461877d704618c752e56ca8b0
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-06 05:27:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-13 05:13:55 +0900

    Use a T_DATA for cross_ractor_require

    [Bug #21090]

    The struct was previously allocated on the stack, which could be freed
    if the Thread is terminated. Moving this to a T_DATA on the heap should
    mean this is no longer an issue.

    1000.times { Ractor.new { th = Thread.new { require "rbconfig" }; Thread.pass }.take }

    Co-authored-by: Luke Gruber <luke.gruber@shopify.com>

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

commit a34fcf401b5b20c38eb98b42815e17bc2af9bad5
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-06 05:48:34 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-13 05:13:55 +0900

    Add a new_thread flag to rb_interrupt_exec

    Previously rb_ractor_interrupt_exec would use an intermediate function
    to create a new thread with the actual target function, replacing the
    data being passed in with a piece of malloc memory holding the "next"
    function and the original data.

    Because of this, passing rb_interrupt_exec_flag_value_data to
    rb_ractor_interrupt_exec didn't have the intended effect of allowing
    data to be passed in and marked.

    This commit adds a rb_interrupt_exec_flag_new_thread flag, which
    both simplifies the implementation and allows the original data to be
    marked.

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

commit 97994c77fb5b82ca959e1188ecaee7d633d60a8e
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-13 00:10:29 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-13 05:13:18 +0900

    Only use regex internal reg_cache when in main ractor

    Using this `reg_cache` is racy across ractors, so don't use it when in a
    ractor. Also, its use across ractors can cause a regular expression created
    in 1 ractor to be used in another ractor (an isolation bug).

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

commit 6e36841dbd5f52b572b690b8a4c3c534fec43ba8
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-12 05:21:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-13 04:23:50 +0900

    Free rb_native_thread memory at fork

    We never freed any resources of rb_native_thread at fork because it would
    cause it to hang. This is because it called rb_native_cond_destroy for
    condition variables.  We can't call rb_native_cond_destroy here because
    according to the specs of pthread_cond_destroy:

        Attempting to destroy a condition variable upon which other threads
        are currently blocked results in undefined behavior.

    Specifically, glibc's pthread_cond_destroy waits on all the other listeners.
    Since after forking all the threads are dead, the condition variable's
    listeners will never wake up, so it will hang forever.

    This commit changes it to only free the memory and none of the condition
    variables.

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

commit 5ec9a392cdf7f971221dc073dd466bce877d8acb
  Author:     Ufuk Kayserilioglu <ufuk.kayserilioglu@shopify.com>
  AuthorDate: 2025-06-13 00:33:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-13 00:33:10 +0900

    [Bug #21439] Fix `PM_SPLAT_NODE` compilation error in for loops (#13597)

    [Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops

    This commit fixes a crash that occurred when using splat nodes (*) as
    the index variable in for loops. The error "Unexpected node type for
    index in for node: PM_SPLAT_NODE" was thrown because the compiler
    didn't know how to handle splat nodes in this context.

    The fix allows code like `for *x in [[1,2], [3,4]]` to compile and
    execute correctly, where the splat collects each sub-array.

  Notes:
    Merged-By: eileencodes <eileencodes@gmail.com>

commit 7c22330cd2b5430aa4c284aca2a5db9478d971e0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 22:18:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 00:08:22 +0900

    Allocate `rb_shape_tree` statically

    There is no point allocating it during init, it adds
    a useless indirection.

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

commit de4b9103815926bb43d5af3f0cb5dbea3749fe2f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 22:15:20 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 00:08:22 +0900

    Get rid of GET_SHAPE_TREE()

    It's a useless indirection.

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

commit e070d93573967423064707e09b566a33dd14a0e3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 21:03:57 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 00:08:22 +0900

    Get rid of `rb_shape_lookup`

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

commit 0292b702c4296f7dde2a05a7a027c3395fbd0f78
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 20:55:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-13 00:08:22 +0900

    shape.h: make RSHAPE static inline

    Since the shape_tree_ptr is `extern` it should be possible to
    fully inline `RSHAPE`.

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

commit d55c463d563800311d6dab23edeec16abd45068d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-12 02:59:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-12 23:02:44 +0900

    Fix memory leak of Ractor basket when sending to closed Ractor

    The following script leaks memory:

        r = Ractor.new { }
        r.value

        10.times do
          100_000.times do
            r.send(123)
          rescue Ractor::ClosedError
          end

          puts `ps -o rss= -p #{$$}`
        end

    Before:

        18508
        25420
        32460
        40012
        47308
        54092
        61132
        68300
        75724
        83020

    After:

        11432
        11432
        11432
        11432
        11432
        11432
        11432
        11432
        11432
        11688

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

commit a74c38520844252b0308c434173058efbdb06054
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 17:06:03 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-12 21:55:13 +0900

    Make setting and accessing class ivars lock-free

    Now that class fields have been deletated to a T_IMEMO/class_fields
    when we're in multi-ractor mode, we can read and write class instance
    variable in an atomic way using Read-Copy-Update (RCU).

    Note when in multi-ractor mode, we always use RCU. In theory
    we don't need to, instead if we ensured the field is written
    before the shape is updated it would be safe.

    Benchmark:

    ```ruby
    Warning[:experimental] = false

    class Foo
      @foo = 1
      @bar = 2
      @baz = 3
      @egg = 4
      @spam = 5

      class << self
        attr_reader :foo, :bar, :baz, :egg, :spam
      end
    end

    ractors = 8.times.map do
      Ractor.new do
        1_000_000.times do
          Foo.bar + Foo.baz * Foo.egg - Foo.spam
        end
      end
    end

    if Ractor.method_defined?(:value)
      ractors.each(&:value)
    else
      ractors.each(&:take)
    end
    ```

    This branch vs Ruby 3.4:

    ```bash
    $ hyperfine -w 1 'ruby --disable-all ../test.rb' './miniruby ../test.rb'

    Benchmark 1: ruby --disable-all ../test.rb
      Time (mean ± σ):      3.162 s ±  0.071 s    [User: 2.783 s, System: 10.809 s]
      Range (min … max):    3.093 s …  3.337 s    10 runs

    Benchmark 2: ./miniruby ../test.rb
      Time (mean ± σ):     208.7 ms ±   4.6 ms    [User: 889.7 ms, System: 6.9 ms]
      Range (min … max):   202.8 ms … 222.0 ms    14 runs

    Summary
      ./miniruby ../test.rb ran
       15.15 ± 0.47 times faster than ruby --disable-all ../test.rb
    ```

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

commit 8b5ac5abf258270b32ef63a6acb4eb0d191f79d9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-12 19:02:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-12 20:43:29 +0900

    Fix class instance variable inside namespaces

    Now that classes fields are delegated to an object with its own
    shape_id, we no longer need to mark all classes as TOO_COMPLEX.

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

commit 81209719321f9cded2c4bdf50203f5ef34e3db7e
  Author:     Hartley McGuire <skipkayhil@gmail.com>
  AuthorDate: 2025-06-03 07:47:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-12 16:30:09 +0900

    Move more NilClass methods to ruby

    ```
    $ make benchmark ITEM=nilclass COMPARE_RUBY="/opt/rubies/ruby-master/bin/ruby"
    /opt/rubies/3.4.2/bin/ruby --disable=gems -rrubygems -I../benchmark/lib ../benchmark/benchmark-driver/exe/benchmark-driver \
                        --executables="compare-ruby::/opt/rubies/ruby-master/bin/ruby -I.ext/common --disable-gem" \
                        --executables="built-ruby::./miniruby -I../lib -I. -I.ext/common  ../tool/runruby.rb --extout=.ext  -- --disable-gems --disable-gem" \
                        --output=markdown --output-compare -v $(find ../benchmark -maxdepth 1 -name 'nilclass' -o -name '*nilclass*.yml' -o -name '*nilclass*.rb' | sort)
    compare-ruby: ruby 3.5.0dev (2025-06-02T13:52:25Z master cbd49ecbbe) +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-06-02T22:47:21Z hm-ruby-nilclass 3e7f1f0466) +PRISM [arm64-darwin24]

    |             |compare-ruby|built-ruby|
    |:------------|-----------:|---------:|
    |rationalize  |     24.056M|   53.908M|
    |             |           -|     2.24x|
    |to_c         |     23.652M|   82.781M|
    |             |           -|     3.50x|
    |to_i         |     89.526M|   84.388M|
    |             |       1.06x|         -|
    |to_f         |     84.746M|   96.899M|
    |             |           -|     1.14x|
    |to_r         |     25.107M|   83.472M|
    |             |           -|     3.32x|
    |splat        |     42.772M|   42.717M|
    |             |       1.00x|         -|
    ```

    This makes them much faster

commit 3abdd4241fd5231a5711ce1b087d660c667ef30d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-22 21:01:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-12 14:58:16 +0900

    Turn `rb_classext_t.fields` into a T_IMEMO/class_fields

    This behave almost exactly as a T_OBJECT, the layout is entirely
    compatible.

    This aims to solve two problems.

    First, it solves the problem of namspaced classes having
    a single `shape_id`. Now each namespaced classext
    has an object that can hold the namespace specific
    shape.

    Second, it open the door to later make class instance variable
    writes atomics, hence be able to read class variables
    without locking the VM.
    In the future, in multi-ractor mode, we can do the write
    on a copy of the `fields_obj` and then atomically swap it.

    Considerations:

      - Right now the `RClass` shape_id is always synchronized,
        but with namespace we should likely mark classes that have
        multiple namespace with a specific shape flag.

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

commit 166ff187bd2a84fddd7a633bdbdbcd4ae393c91e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 13:34:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 14:28:43 +0900

    [rubygems/rubygems] Removed ccache or sccache from args of Rust builder

    ```
     "  = note: some arguments are omitted. use `--verbose` to show all linker arguments\n" +
     "  = note: error: unexpected argument '-W' found\n" +
     "          \n" +
     "            tip: to pass '-W' as a value, use '-- -W'\n" +
     "          \n" +
     "          Usage: sccache [OPTIONS] <--dist-auth|--debug-preprocessor-cache|--dist-status|--show-stats|--show-adv-stats|--start-server|--stop-server|--zero-stats|--package-toolchain <EXE> <OUT>|CMD>\n" +
     "          \n" +
     "          For more information, try '--help'.\n" +
     "          \n" +
    ```

    https://github.com/rubygems/rubygems/commit/45e688ae62

commit 4585ccd90f4251f4d42bfc338a5e14100236fa15
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-12 10:32:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 10:34:31 +0900

    [ruby/strscan] Update extconf.rb
    (https://github.com/ruby/strscan/pull/158)

    - `have_func` includes "ruby.h" by default.
    - include "ruby/re.h" where `rb_reg_onig_match` is declared.

    https://github.com/ruby/strscan/commit/1ac96f47e9

commit 7854b71e7f94eb4484c5ad72f5b6e3d0839fc24b
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-05 12:00:43 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-12 10:11:36 +0900

    Supress a few more tsan errors

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

commit f91c80836a3f0c0a7ada00d439ad78fdfccd6b29
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-06 04:09:54 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-12 10:11:36 +0900

    gdbinit: fix printing of T_DATA

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

commit 3a6844a692cab3bd9078ce74c3d96c16c2f3f2fb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 16:14:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 08:45:02 +0900

    Tweak to spec setup so that `rspec` instead of our `bin/rspec` binstub still works

commit 8abb87b9c7cabf84615eb639a7f601a65ce7920e
  Author:     Joshua Young <djry1999@gmail.com>
  AuthorDate: 2025-06-09 14:18:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 08:40:51 +0900

    [rubygems/rubygems] Remove duplicate documentation for `--changelog` flag

    https://github.com/rubygems/rubygems/commit/9f1d07685f

commit 3fdaa6a19cca5d4d8cf1ef7760db08b04d5c6270
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-11 22:51:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 08:40:50 +0900

    [rubygems/rubygems] Fix typos in some documentation lists making them render incorrectly

    https://github.com/rubygems/rubygems/commit/19739ba71c

commit ca7bd597949d7525f3bcfe390805d47914f37e4f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-11 22:50:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-12 08:40:50 +0900

    [rubygems/rubygems] Update man pages month

    https://github.com/rubygems/rubygems/commit/3e4687616a

commit 970813d98285b8f59fe5e4d3c815cc044926cb1b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-06-11 22:28:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-12 03:07:43 +0900

    [ruby/prism] Fix parser translator during string escaping with invalid utf-8

    Instead, prefer `scan_byte` over `get_byte` since that already returns the byte as an integer, sidestepping conversion issues.

    Fixes https://github.com/ruby/prism/issues/3582

    https://github.com/ruby/prism/commit/7f3008b2b5

commit 95201299fd7bf0918dfbd8c127ce2b5b33ffa537
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-11 21:32:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 23:38:38 +0900

    Refactor the last references to `rb_shape_t`

    The type isn't opaque because Ruby isn't often compiled with LTO,
    so for optimization purpose it's better to allow as much inlining
    as possible.

    However ideally only `shape.c` and `shape.h` should deal with
    the actual struct, and everything else should just deal with opaque
    `shape_id_t`.

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

commit 4463ac264dc44979ea74bbca3de58ae72d5eea71
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-11 20:08:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 21:21:43 +0900

    shape.h: remove YJIT workaround

    YJIT x86 backend would crash if the shape_id top bit was set.
    This should have been fixed now.

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

commit 59fad961b8c8b70ddac0c450963d51e5076c2c47
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-10 21:58:56 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-11 19:49:49 +0900

    ZJIT: x86: Fix panic writing 32-bit number with top bit set

    Previously, `asm.mov(m32, imm32)` panicked when `imm32 > 0x80000000`. It
    attempted to split imm32 into a register before doing the store, but
    then the register size didn't match the destination size.

    Instead of splitting, use the `MOV r/m32, imm32` form which works for
    all 32-bit values. Adjust asserts that assumed that all forms undergo
    sign extension, which is not true for this case.

    See: 54edc930f9f0a658da45cfcef46648d1b6f82467

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

commit e5c7f1695e8cf774d073e7b103c1d9289cad56ee
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-10 20:52:57 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-11 19:49:49 +0900

    YJIT: x86: Fix panic writing 32-bit number with top bit set

    Previously, `asm.mov(m32, imm32)` panicked when `imm32 > 0x80000000`. It
    attempted to split imm32 into a register before doing the store, but
    then the register size didn't match the destination size.

    Instead of splitting, use the `MOV r/m32, imm32` form which works for
    all 32-bit values. Adjust asserts that assumed that all forms undergo
    sign extension, which is not true for this case.

    See: 54edc930f9f0a658da45cfcef46648d1b6f82467

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

commit 4ebe0a1ba50c7022bcbd823471a6d08e7cee52bd
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-11 10:09:51 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-11 19:49:49 +0900

    ZJIT: Restore x86 assembler tests

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

commit c489020cabb822a40f1d32eefc31487ac20a5e5d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-10 23:44:53 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-11 19:49:49 +0900

    ZJIT: Restore some A64 backend tests to fix unused warning

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

commit 0bc24353d31ff14661b74c57297795b8fa1e6439
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-10 21:52:50 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-11 19:49:49 +0900

    ZJIT: Restore most x64 backend tests

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

commit f45aa1505f40558394cea9d71138130ac1af4ba3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-11 19:05:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-11 19:05:39 +0900

    [ruby/date] Update zonetab.h at 2025-06-11

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

commit c2f2ac7db37936375307378dceee6f62fe881882
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-11 16:03:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 17:10:04 +0900

    shape.c: Fix rb_bug call to use correct format for size_t

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

commit fd7e56a831acfdcfd42bee958ae62967dc1033e1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-11 16:02:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 17:04:18 +0900

    Use artifacts built by vcpkg manifest mode

    I'm not sure why vcpkg cache is not using while recent weeks.

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

commit 255e6e619752854e5740519ad8829e4a7a4b9bea
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-11 14:47:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 15:40:52 +0900

    Try to run ignored tests with macOS 15

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

commit 51118fa2da6267d71915d0614cae733b94782f7f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-10-30 17:59:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-11 14:04:16 +0900

    [ruby/net-http] Support pretty_print

    https://github.com/ruby/net-http/commit/bfc60454f6

commit a976fa1bb7e04d5484e2992ba42d03312109d0ee
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-11 13:04:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 13:57:08 +0900

    Followed up https://github.com/ruby/net-http/commit/002441da1e for ruby/spec

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

commit 82e3312493a26fc56e2823c07e261d1bf61edd42
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-11 10:45:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-11 12:35:12 +0900

    [ruby/net-http] Fixed test case for default content-type.

    I changed content-type of request to "application/octet-stream" if request didn't have
    content-type.

    https://github.com/ruby/net-http/commit/fc5870d2ac

commit 51b70d106ad2fa29f833bde5648738931981d8f4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-13 15:52:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-11 12:35:11 +0900

    [ruby/net-http] Don't set content type by default

    Fixes https://github.com/ruby/net-http/issues/205

    https://github.com/ruby/net-http/commit/002441da1e

commit 9b09c68032fc6f30809e33da4b3010a207d2ec95
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 16:59:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 09:38:56 +0900

    Simplify `make test-bundler`

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

commit ec897fd204c40eea9a6e1802ab8ae5cd18b27c35
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 16:58:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 09:38:56 +0900

    Fix `make test-bundler`

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

commit dba72134de4e8e86caf9eccb0185eb9505314f93
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-11 00:52:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 08:48:57 +0900

    [rubygems/rubygems] Fix `gem pristine` sometimes not resetting extensions

    If `gem pristine foo` is run, and there's a default copy of foo, only
    executables for it are reset. However, that was causing other copies of
    `foo` to only reset executables, which is unexpected.

    We should not modify `options[:only_executables]`, but respect its value
    for every gem, and make sure special handling for default gems does not
    leak to other gems.

    https://github.com/rubygems/rubygems/commit/2c3039f1b0

commit 6560083c39e2052a5ab9f114a6dcf25317e7fdc6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-11 00:35:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 08:48:57 +0900

    [rubygems/rubygems] Normalize file existence helpers usage

    https://github.com/rubygems/rubygems/commit/a61cc97cd4

commit 7e3d271f765b6e2b2372b6af2f974d448cbfd1e0
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-06-06 03:26:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 08:48:56 +0900

    [rubygems/rubygems] Install the best matching gem for the current platform in gem install

    Instead of picking essentially a random matching platform

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/3727096297

commit b5beb1982502c46aeaac2f29888763df3272b568
  Author:     Randy Stauner <randy.stauner@shopify.com>
  AuthorDate: 2025-05-03 02:05:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-11 08:48:55 +0900

    [rubygems/rubygems] Validate dependencies when doing bundle install

    https://github.com/rubygems/rubygems/commit/b0983f392f

commit 35fc19f5d44341a9bb691231d2e150caefdc2b70
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-11 04:13:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 04:13:37 +0900

    enumerator.c: Remove unused IDs

commit 0f922edca018c20c8b9b8c7711b371e26a724104
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-06-10 13:12:53 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-06-11 02:42:01 +0900

    ZJIT: Support get/set on global variables

    Adds support for code like:

    ```ruby
    $foo
    $foo = x
    ```

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

commit c54e96d651b53d4105447c3bb4fb94903bd67cc5
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-06-11 00:04:07 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 02:37:03 +0900

    Fix RubyVM::Shape.transition_tree

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

commit bcb4fbe2ebba2efbea1933f0ac32b87dc48b2021
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-11 00:12:10 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-11 02:26:37 +0900

    Refactor `Enumerator::ArithmeticSequence` to not use ivars

    It's an embedded TypedData, it can much more efficiently store
    the references it need without using ivars.

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

commit 585dcffff1a0ed5fe43657661644628707ff0869
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-10 07:21:19 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-11 01:00:17 +0900

    Fix regular expressions across ractors that match different encodings

    In commit d42b9ffb206, an optimization was introduced that can speed up
    Regexp#match by 15% when it matches with strings of different encodings.
    This optimization, however, does not work across ractors. To fix this,
    we only use the optimization if no ractors have been started. In the
    future, we could use atomics for the reference counting if we find it's
    needed and if it's more performant.

    The backtrace of the misbehaving native thread:

    ```
      * frame #0: 0x0000000189c94388 libsystem_kernel.dylib`__pthread_kill + 8
        frame #1: 0x0000000189ccd88c libsystem_pthread.dylib`pthread_kill + 296
        frame #2: 0x0000000189bd6c60 libsystem_c.dylib`abort + 124
        frame #3: 0x0000000189adb174 libsystem_malloc.dylib`malloc_vreport + 892
        frame #4: 0x0000000189adec90 libsystem_malloc.dylib`malloc_report + 64
        frame #5: 0x0000000189ae321c libsystem_malloc.dylib`___BUG_IN_CLIENT_OF_LIBMALLOC_POINTER_BEING_FREED_WAS_NOT_ALLOCATED + 32
        frame #6: 0x00000001001c3be4 ruby`onig_free_body(reg=0x000000012d84b660) at regcomp.c:5663:5
        frame #7: 0x00000001001ba828 ruby`rb_reg_prepare_re(re=4748462304, str=4748451168) at re.c:1680:13
        frame #8: 0x00000001001bac58 ruby`rb_reg_onig_match(re=4748462304, str=4748451168, match=(ruby`reg_onig_search [inlined] rbimpl_RB_TYPE_P_fastpath at value_type.h:349:14
    ruby`reg_onig_search [inlined] rbimpl_rstring_getmem at rstring.h:391:5
    ruby`reg_onig_search at re.c:1781:5), args=0x000000013824b168, regs=0x000000013824b150) at re.c:1708:20
        frame #9: 0x00000001001baefc ruby`rb_reg_search_set_match(re=4748462304, str=4748451168, pos=<unavailable>, reverse=0, set_backref_str=1, set_match=0x0000000000000000) at re.c:1809:27
        frame #10: 0x00000001001bae80 ruby`rb_reg_search0(re=<unavailable>, str=<unavailable>, pos=<unavailable>, reverse=<unavailable>, set_backref_str=<unavailable>, match=<unavailable>) at re.c:1861:12 [artificial]
        frame #11: 0x0000000100230b90 ruby`rb_pat_search0(pat=<unavailable>, str=<unavailable>, pos=<unavailable>, set_backref_str=<unavailable>, match=<unavailable>) at string.c:6619:16 [artificial]
        frame #12: 0x00000001002287f4 ruby`rb_str_sub_bang [inlined] rb_pat_search(pat=4748462304, str=4748451168, pos=0, set_backref_str=1) at string.c:6626:12
        frame #13: 0x00000001002287dc ruby`rb_str_sub_bang(argc=1, argv=0x00000001381280d0, str=4748451168) at string.c:6668:11
        frame #14: 0x000000010022826c ruby`rb_str_sub
    ```

    You can reproduce this by running:
    ```
    RUBY_TESTOPTS="--name=/test_str_capitalize/" make test-all TESTS=test/ruby/test_m17n.comb
    ```

    However, you need to run it with multiple ractors at once.

    Co-authored-by: jhawthorn <john@hawthorn.email>

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

commit bb1a992d37de3cbc1fd4339ce5d50cbdb1374ed4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-10 21:46:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-10 21:46:14 +0900

    [DOC] Fix unclosed markup

commit a21acaee6dd1e34d74a7c1c959d3c34cd574eae5
  Author:     Joshua Young <djry1999@gmail.com>
  AuthorDate: 2025-06-09 22:05:32 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-10 19:25:32 +0900

    Follow-ups to #13555

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

commit cdeedd5bc1a3c712f7f7b8c2409906a0b5ed9e37
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-06-10 16:30:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-10 16:30:43 +0900

    Fix handling of cancelled blocking operations. (#13570)

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

commit 20adae4ad6c20aa5918e00f60e956fe9051a7ead
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-10 15:05:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-10 15:05:39 +0900

    Fix up birthtime specs

    There are two different possible messages: unsupported OS/version, and
    unsupported filesystem on a supported system.

commit 6184793ea94d38702870f45126a4e91a659910fb
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-10 05:50:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-10 11:30:43 +0900

    [DOC] Split building docs for modular GC

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

commit 837699e16059936f9fb98b3c2e4ec7eeb933d420
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-06 23:56:46 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-10 02:57:18 +0900

    Take file and line in GC VM locks

    This commit adds file and line to GC VM locking functions for debugging
    purposes and adds upper case macros to pass __FILE__ and __LINE__.

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

commit c962735fe846d83eef862df38843a5510339ae57
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-06-09 04:17:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-10 02:06:47 +0900

    Add missing write barrier in set_i_initialize_copy

    When we copy the table from one set to another we need to run write
    barriers.

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

commit 698cf146ace41841a6388d681abaf36d316c0778
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-08 21:27:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-09 23:41:13 +0900

    Fetch only necessary commits of bundled gems

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

commit 3b17ff2457a138b1963de0a51c4b9281d2c930df
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-09 22:08:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-09 23:41:13 +0900

    Reuse fetch-bundled_gems.rb

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

commit f9966b9b76706705202f83112e0e2dea0237aea1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-09 17:37:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-09 23:38:29 +0900

    Get rid of `gen_fields_tbl.fields_count`

    This data is redundant because the shape already contains both the
    length and capacity of the object's fields.

    So it both waste space and create the possibility of a desync between
    the two.

    We also do not need to initialize everything to Qundef, this seem
    to be a left-over from pre-shape instance variables.

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

commit e210a70e9a5eb891fe8a999f2f9eb942d295a078
  Author:     Tim Craft <email@timcraft.com>
  AuthorDate: 2025-06-09 18:41:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-09 22:41:17 +0900

    [ruby/prism] Fix typo in visitor example code

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

commit b8922a8d45812a23927228ecc3f21ae9ef5255f2
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 22:01:04 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_regexpmatch2 into HIR

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

commit ec1244cfd2f115485bffa78fc9d887c1b5c43dbe
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 22:00:51 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_not into HIR

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

commit 038087adf7243366cabb6db32c9034de032397f7
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 22:00:32 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_or into HIR

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

commit 1c43f7e9668b841f8976b32c60c3ce6b2aeffc23
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 22:00:17 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_and into HIR

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

commit 4a2480e79a6c1932a06d56035a8e2eb0ba5defca
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 21:59:53 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_succ into HIR

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

commit 9865aa94f7de65cd8c4964c13960ca9299cbdd48
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 21:51:05 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-09 22:36:53 +0900

    ZJIT: Parse opt_empty_p into HIR

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

commit 96fdaf2e393933fdd128cd1a41fa9b2062792a15
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-06-09 20:19:08 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-09 21:22:36 +0900

    Fix build on alpine with statx change

    Since https://github.com/ruby/ruby/commit/18a036a6133bd141dfc25cd48ced9a2b78826af6 building on alpine fails
    because usage of `__u32`, which is not portable.

    > file.c: In function 'rb_stat_new':
    > file.c:546:33: error: '__u32' undeclared (first use in this function)
    >   # define CP_32(m) .stx_ ## m = (__u32)st->st_ ## m

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

commit f4135feafc558111c7388b823a64652e09999161
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-08 17:35:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-09 16:25:37 +0900

    [Feature #21219] Selective inspect of instance variables

    Make Kernel#inspect ask which instance variables should be dumped by
    the result of `#instance_variables_to_inspect`.

    Co-Authored-By: Jean Boussier <byroot@ruby-lang.org>

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

commit e8094943a4a5ffff06559fc3fa9968a5e61fd097
  Author:     zzak <zzak@hey.com>
  AuthorDate: 2025-06-09 16:23:08 +0900
  Commit:     zzak <zzak@hey.com>
  CommitDate: 2025-06-09 16:23:08 +0900

    s/sned/send

commit c8ddc0a843074811b200673a2019fbe4b50bb890
  Author:     alpaca-tc <alpaca-tc@alpaca.tc>
  AuthorDate: 2025-04-06 01:50:08 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-09 12:33:35 +0900

    Optimize callcache invalidation for refinements

    Fixes [Bug #21201]

    This change addresses a performance regression where defining methods
    inside `refine` blocks caused severe slowdowns. The issue was due to
    `rb_clear_all_refinement_method_cache()` triggering a full object
    space scan via `rb_objspace_each_objects` to find and invalidate
    affected callcaches, which is very inefficient.

    To fix this, I introduce `vm->cc_refinement_table` to track
    callcaches related to refinements. This allows us to invalidate
    only the necessary callcaches without scanning the entire heap,
    resulting in significant performance improvement.

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

commit d0b5f3155406e8243b78e4cedd3a38710c7c323c
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-08 04:24:56 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-08 04:24:56 +0900

    record load average at fail

    On a high load machine, the following test can fail.
    This patch simply records the load average with `uptime`.

    ```
      1) Failure:
    TestThreadQueue#test_thr_kill [/tmp/ruby/src/trunk_gcc10/test/ruby/test_thread_queue.rb:239]:
    only 165/250 done in 60 seconds.
    ```

commit 98ac3f1fe451789c2676956d09cdda6dee78f947
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-08 04:08:35 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-08 04:08:35 +0900

    increase timeout for high load env

    I can reproduce timeout failure with the high load machine:

    ```
    $ RUBY_MAX_CPU=100 ruby -e '100.times{Ractor.new{loop{}}}; sleep' &
    $ while make test-all -o exts -o encs TESTS='ruby/gc -n /test_interrupt_in_finalizer/ --repeat-count=100'; do date; done
    ....
    Finished(93/100)  tests in 0.653434s, 1.5304 tests/s, 7.6519 assertions/s.
    Finished(94/100)  tests in 0.614422s, 1.6275 tests/s, 8.1377 assertions/s.
    [1/1] TestGc#test_interrupt_in_finalizer = 11.08 s
      1) Timeout:
    TestGc#test_interrupt_in_finalizer
    ```

commit 7d8695e02f15dc4c6cddb19f9c595dfc07e88682
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-08 00:30:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Stop pinning shape edges

    Now that `rb_shape_traverse_from_new_root` has been eliminated there's
    no longer any reason to pin these objects, because we no longer
    need to traverse shapes downward during compaction.

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

commit a640723d31262904b4de14be55357fb426873d7f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 23:48:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Simplify `rb_gc_rebuild_shape`

    Now that there no longer multiple shape roots, all we need to do
    when moving an object from one slot to the other is to update the
    `heap_index` part of the shape_id.

    Since this never need to create a shape transition, it will always
    work and never result in a complex shape.

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

commit 191f6e3b8744ae459ab7f6cb4d95ac5218856084
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 22:26:27 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Get rid of rb_shape_t.heap_id

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

commit 6eb0cd8df703d0a2edf7b11eab3255295e58c888
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 21:44:13 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Get rid of SHAPE_T_OBJECT

    Now that we have the `heap_index` in shape flags we no longer
    need `T_OBJECT` shapes.

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

commit 1c96aed6eea39a06a4b790ddc7a31a0b35a9330e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 20:50:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Remove EMBEDDED shape_id flags

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

commit 2de67d424fa94722099d1b28c803a6cd49364607
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 20:42:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    shape.c: assert we're not returning INVALID_SHAPE_ID.

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

commit 8c4e368dcf9e50814ed8a65a824f22035bbe6770
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 17:55:49 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    shape.c: ensure heap_index is consistent for complex shapes

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

commit 54edc930f9f0a658da45cfcef46648d1b6f82467
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 03:54:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Leave the shape_id_t highest bit unused to avoid crashing YJIT

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

commit 689ec5114624978f47edcba4f055e62017e4ac36
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-06 16:26:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-08 01:30:44 +0900

    Replicate `heap_index` in shape_id flags.

    This is preparation to getting rid of `T_OBJECT` transitions.
    By first only replicating the information it's easier to ensure
    consistency.

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

commit c45e4da71b3112f3734863d2051f0d8fb1a38cb8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 17:42:21 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-07 18:41:36 +0900

    Make the installation target overridable

    There are various targets such as `install-bin`, `install-ext`, etc.,
    but since then, the number of installation types has increased too
    much to add all the targets.

commit dd4e39a115d039b27ba20fb6eb3634e9b1043d81
  Author:     Satoshi Tagomori <s-tagomori@sakura.ad.jp>
  AuthorDate: 2025-06-07 10:26:43 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-06-07 18:19:59 +0900

    Delete useless Namespace#current_details

    The implementation of Namespace#current_details shows warning about
    use of snprintf directive arguments (only in gcc environments?).
    This method will be useless when the current namespace management
    will be updated.

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

commit 20cf46039a90135b3d9efceabc73b0d41ad257b8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-07 16:28:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-07 16:28:05 +0900

    Fix messages for skipped bundled gems

commit 16057041178d3084884693937d6f02e0680e0657
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-06 16:50:50 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-07 09:52:03 +0900

    ignore confirming belonging while finrializer

    A finalizer registerred in Ractor A can be invoked in B.

    ```ruby
    require "tempfile"
    r = Ractor.new{
      10_000.times{|i|
        Tempfile.new(["file_to_require_from_ractor#{i}", ".rb"])
      }
    }
    sleep 0.1
    ```

    For example, above script makes tempfiles which have finalizers
    on Ractor r, but at the end of the process, main Ractor will invoke
    finalizers and it violates belonging check. This patch just ignore
    the belonging check to avoid CI failure.

    Of course it violates Ractor's isolation and wrong workaround.
    This issue will be solved with Ractor local GC.

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

commit 90ba2f4e1c60324f4d4a958a8a28bc2bbd1968b7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-07 04:01:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-07 06:07:22 +0900

    Add missing lock around `redblack_cache_ancestors`

    This used to be protected because all shape code was
    under a lock, but now that the shape tree is lock-free
    we still need to lock around the red-black cache.

    Co-Authored-By: Luke Gruber <luke.gruber@shopify.com>

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

commit 347e581a4cbe2bbf7c13532038f2a68b0b37099a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-06 11:10:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-06 23:46:55 +0900

    Introduce MODULAR_GC_FN

    MODULAR_GC_FN allows functions in gc.c to be defined as static when not
    building with modular GC.

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

commit 94ba62c790c535f55a755bef011704a40fb6f0f1
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-06-06 23:14:51 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-06-06 23:14:51 +0900

    ZJIT: Fix build error from commit race

commit 677c36370f7666744810d2a79a29539ac0ae3051
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-06 00:45:41 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-06 22:30:17 +0900

    ZJIT: Fix insn arg index for `defined`, add tests

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

commit 657b2f064b14d9d4641c60ec12ba8d01ba466a5c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-05 22:42:58 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-06 22:30:17 +0900

    ZJIT: Parse definedivar into HIR

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

commit cd7c5a3484e56e6182f6676ab581066d61e24048
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-05 22:02:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-06 22:30:17 +0900

    ZJIT: Take a slice instead of Vec in test code

    Shorter code and more efficient.

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

commit 2b810ac595664423e612964616068ad95d9d9e5e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-06 19:16:31 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 20:37:03 +0900

    shape.c: match capacity growth with T_OBJECT embedded sizes

    This helps with getting with of `SHAPE_T_OBJECT`, by ensuring
    that transitions will have capacities that match the next embed size.

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

commit dde9fca63bf4bf56050c734adca3eaae70506179
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-06-06 19:12:11 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-06-06 20:29:04 +0900

    Be more specific with `RUBY_VM_INTERRUPTED` in debug assertions.

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

commit 3883c3897912ce8dfe9f2d55f4ee5c08040a8239
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-06 16:09:36 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 18:43:51 +0900

    shape.c: Fix improperly named routine

    Meant to be `transition_complex` not `transition_frozen`.

commit 0cc41d3d39303e186e5037deba6910b15278f465
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-06 15:51:10 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 18:30:23 +0900

    proc.c: saves Binding#clone on copying ivars twice

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

commit 5ac435dc345d81b78bac4c995fb2b3dc7cface68
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-06-06 17:23:46 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-06-06 18:15:41 +0900

    Log `ec->interrupt_flag` if non-zero.

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

commit 3246bbd32500bff86f32db0dd3cafdd648650afa
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-06 05:54:25 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-06 16:17:54 +0900

    ZJIT: Add codegen for uncached setinstancevariable

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

commit 6a46ca31a7d4999e9788896445fbb53d049882ab
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-06-06 00:43:56 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-06 16:17:54 +0900

    ZJIT: Add codegen for uncached getinstancevariable

    I didn't know `rb_ivar_get` existed until @Xrxr pointed me to it.
    Thanks, Alan!

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

commit 2eb0a1a7498db7605a381a6c774b043a74779f16
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 13:46:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 14:16:37 +0900

    Fix birthtime specs on not supporting filesystems

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

commit 180214287e213eee3a2e786840d8d0b6b8203587
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 12:11:44 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-06 14:03:32 +0900

    CI: Continue  without record if Launchable setup failed

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

commit 78d2a2308f58447688e078f8da7e63611d895837
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 10:44:25 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-06-06 14:03:32 +0900

    CI: Split cleanups of Launchable generated files

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

commit 1baa396e21c272cc9cc1fea4e5d372ae1979fb9f
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-06 06:46:14 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-06 13:44:15 +0900

    fix `rp(obj)` for any object

    Now `rp(obj)` doesn't work if the `obj` is out-of-heap because
    of `asan_unpoisoning_object()`, so this patch solves it.

    Also add pointer information and type information to show.

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

commit ead14b19aa5acbdfb2f1ccc53cc7b8b34517b6e9
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-06-05 12:49:02 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-06-06 13:13:16 +0900

    Fix `blocking_operation_wait` use-after-free bug.

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

commit 81a23c5793fecaff5f75cefe6a6e03dab99df16b
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-24 20:33:08 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-06-06 13:13:16 +0900

    `rb_io_blocking_operation_exit` should not execute with pending interrupts.

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

commit 9f00044d0fe2d0c8c998da8e1627e63f36f7df57
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-06 11:30:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 11:30:14 +0900

    Bump up strscan version to 3.1.6.dev

commit deb70925a2e5f4a272b2ecb4571adfe5b7ca97f2
  Author:     Daniel Colson <composerinteralia@github.com>
  AuthorDate: 2025-05-26 06:26:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 11:29:42 +0900

    [ruby/strscan] Implement Write Barrier
    (https://github.com/ruby/strscan/pull/156)

    StringScanner holds the string being scanned, and a regex for methods
    like `match?`. Triggering the write barrier for those allows us to mark
    this as WB protected.

    https://github.com/ruby/strscan/commit/32fec70407

commit 1dd8671c46c155920b141407ba442523758a7128
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-06 11:11:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 11:11:38 +0900

    Sync ruby/openssl

    Pick https://github.com/ruby/openssl/pull/896

commit ca1c46d33c9ef86c288d4ae4226644451b4dedec
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-23 20:27:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:22:29 +0900

    [rubygems/rubygems] Ignore local specifications if they have incorrect dependencies

    Currently ruby-dev installs an incorrect gemspec for rdoc, that does not
    declare its dependency on psych.

    This seems like a ruby-core bug, but it seems best for Bundler to ignore
    it, go with the remote specification instead, and print a warning.

    https://github.com/rubygems/rubygems/commit/227cafd657

commit c0a1e877b3c0c5dd69bb634262bd4e73a07eb27e
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-05-19 00:37:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:22:18 +0900

    Move most of Bundler::GemHelpers to Gem::Platform

    This will help centralize wheel platform selection logic eventually

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

commit 6a9af9f0b566f8a13f82a1ca402efa99a3464794
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 16:14:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Tweak to spec setup so that `rspec` instead of our `bin/rspec` binstub still works

    https://github.com/rubygems/rubygems/commit/24e6699316

commit 3ba066e54f9bfae053ca4baac90a4f745166a507
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 18:57:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Improve more exec specs to avoid swallowing errors

    https://github.com/rubygems/rubygems/commit/439e9bcf81

commit 3b2d068ac2250fae91bd4b433b8ce393615ddc86
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 17:53:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Improve `bundle exec` with default gems specs

    Make them more consistent and not silently pass even if something
    regresses. These specs had a typo that made the assertion be that the
    `erb --version` output includes the empty string which is always
    obviously true.

    https://github.com/rubygems/rubygems/commit/451e07c305

commit d95f7a3c43fb2014e5865ab6bc01dd4ac6d26c79
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-05 17:52:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Extract stdboth spec helper

    https://github.com/rubygems/rubygems/commit/bb13f4e702

commit ee55b82b34017051e6854a7940efc1615a693242
  Author:     Thomas Marshall <thomas@thomasmarshall.com>
  AuthorDate: 2025-06-02 21:16:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Cache commit SHA ref revisions

    If the `ref` option is a specific commit SHA, we can check to see if
    it's already fetched locally. If it is, then we don't need to re-fetch
    it from the remote.

    The `ref` option might not be a commit SHA, so we're using the `#commit`
    method which returns the full SHA if it's a commit ref, or the locked
    revision, or nil.

    This is a small improvement that will make `bundle update` slightly
    faster in cases for git-sourced gems pinned to a specific commit.

    https://github.com/rubygems/rubygems/commit/f434c2e66c

commit 6839eadd5312b7d2f15415a5f65677cb71d39a1c
  Author:     Thomas Marshall <thomas@thomasmarshall.com>
  AuthorDate: 2025-06-02 21:10:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-06 10:09:14 +0900

    [rubygems/rubygems] Add tests for GitProxy#checkout

    This commit adds tests to capture the current behavior of `#checkout`.
    They are not exhaustive, but they cover cases cloning and fetching the
    repository with different ref types. This will make it easier to change
    the caching behavior in a subsequent commit.

    https://github.com/rubygems/rubygems/commit/f637a412a6

commit f1fe26a334d39d86ab28a166fd71df38bef4234b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 09:40:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 09:40:52 +0900

    CI: Fix duplicate timeouts

commit f0cf4dce65ba7bf3dc6787e10b88e08b411e2c92
  Author:     Samuel Williams <samuel.williams@shopify.com>
  AuthorDate: 2025-06-06 09:38:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-06 09:38:57 +0900

    Handle spurious wakeups in `Thread#join`. (#13532)

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

commit e66ac2a743a03bd1af99c3d56b0ec94edfd423e8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 09:21:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 09:37:19 +0900

    CI: Fix redirection errors

commit 54ef6c312a2154f26e971af9e4a483d5d377730e
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-06-06 09:31:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-06 09:31:45 +0900

    [Bug #21400] Fix rb_bug() when killing current root fiber in non-main thread (#13526)

    Fixes the following:

    ```ruby
    Thread.new { Fiber.current.kill }.join
    ```

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

commit 86eb5f9c0590f4a855c9158777b1a600b03b22b4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 08:05:55 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 08:52:02 +0900

    CI: Trap launchable_record_test in the parent process

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

commit 43472a30014924f77790d9d05593546d19043fb5
  Author:     Shannon Skipper <shannonskipper@gmail.com>
  AuthorDate: 2025-06-06 08:37:01 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-06 08:37:01 +0900

    ZJIT: Panic unimplemented for OOB basic block args (#13533)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 5da3dc88d68a7dce616e583c18213ea6a3bc6c37
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 03:32:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 08:00:51 +0900

    CI: Timeout launchable setup in 3min

commit 296a0d0b7c58bca218fbec0cc1711e76747ab15d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-06 02:43:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-06 08:00:51 +0900

    CI: Create report files only when Launchable setup succeeded

commit a62166e28efeb13d309bc4b7dc04371a5b62b3cc
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-04 06:41:39 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-06 06:49:08 +0900

    support nested VM barrier synchronization

    on `RGENGC_CHECK_MODE > 1`, there are the following steps

    1. gc_enter
    2. vm_barrier
    3. verify_internal_consistency
    4. vm_barrier

    and it causes nested vm_barrier synchronization.

    This patch allows such cases.

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

commit 1a991131a04feb3527f7e4993491b587d2e57179
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-06-06 06:48:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-06 06:48:04 +0900

    ZJIT: Pass self through basic block params (#13529)

    * ZJIT: Pass self through basic block params

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

    * Add comments for self

    * Use self_param for ivar

    * Make self_param a loop local

    * Fix rest parameter type check

    * Push self_param first

    * Add a test case for putself

    * Use SELF_PARAM_IDX

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

    * Fix test_unknown

    ---------

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 4e39580992064a4e91e9b8626a1a220f262a7011
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-04 20:35:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 05:06:15 +0900

    Refactor raw accesses to rb_shape_t.capacity

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

commit 0b07d2a1e32a456fc302c8d970fa85782bdb98ce
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-31 10:25:58 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-06-06 01:24:05 +0900

    Deprecate passing arguments to Set#to_set and Enumerable#to_set

    Array#to_a, Hash#to_h, Enumerable#to_a, and Enumerable#to_h do not
    allow you to specify subclasses.  This has undesired behavior when
    passing non-Set subclasses.  All of these are currently allowed, and
    none make sense:

    ```ruby
    enum = [1,2,3].to_enum

    enum.to_set(Hash)
    enum.to_set(Struct.new("A", :a))
    enum.to_set(ArgumentError)
    enum.to_set(Thread){}
    ```

    Users who want to create instances of a subclass of Set from an
    enumerable should pass the enumerable to SetSubclass.new instead of
    using to_set.

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

commit 2f80117ce48f83a709989a0d88eb712b123ef371
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-06-05 23:09:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 01:02:45 +0900

    Fix comment about debugging shapes

    This method was moved to RubyVM::Shape in 913979bede2a1b79109fa2072352882560d55fe0.

commit 22dfa250a89d11cc138ef73d1ed6c364c15b54c7
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-06-06 00:09:47 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-06 01:01:11 +0900

    More comprehensive debugging configuration

commit da2453c58de9b1bc6ab58296980b2b79a9213a90
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-04-19 20:10:39 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-05 23:51:46 +0900

    Add debug message to test_heaps_grow_independently

    To debug flaky failures on i686 that look like:

      1) Failure:
      TestGc#test_heaps_grow_independently [test/ruby/test_gc.rb:704]:
      Expected 2061929 to be < 2000000.

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

commit 01f6bd8bc357360882ad0161ebf1fa9718e9f3b3
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-06-05 23:45:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-05 23:45:42 +0900

    ZJIT: Add `insns` param that tests for opcode presence

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

    Merged-By: XrXr

commit 998e5791c5c119fe050e81ed0ac35a45df4921dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 23:12:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-05 23:18:38 +0900

    [ruby/date] Suppress warnings by gcc-13 with `-Og`

    https://github.com/ruby/date/commit/6dd7969a64

commit edaa27ce45dacd5e972781105a8e7ba4abe77c3d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 22:22:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-05 22:33:02 +0900

    Suppress warnings by gcc-13 with `-Og`

commit 0e0008da0f19d098a2e98902f2215c126aca0101
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 19:05:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-05 19:21:02 +0900

    [Bug #21381] Refine error messages for `it` and numbered parameters

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

commit b9e3edb3e60c3efb97a0e7df2da9d2be1cf71d02
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-04 00:40:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:46 +0900

    [rubygems/rubygems] Slightly simplify locked specification source replacement

    https://github.com/rubygems/rubygems/commit/22f0a07377

commit 970eac1530081e4d56614b4c865fe1c5aae9532b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-03 21:03:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:46 +0900

    [rubygems/rubygems] Fix git source unlocking for multi-gem repositories like Rails

    If you have

    ```
    gem "rails", git: "https://github.com/rails/rails"
    ```

    and then explicitly pin to an older ref, like

    ```
    gem "rails", git: "https://github.com/rails/rails", ref: "https://github.com/rubygems/rubygems/commit/99bacb5aa8e5"
    ```

    Then `bundle install` fails, because locked sources fail to be updated
    to use the new source.

    This commit fixes the problem by making sure get their source properly
    replaced.

    https://github.com/rubygems/rubygems/commit/5de8c2e0cf

commit e4933e1d93218ff740ea6ac552b309eca03ba5d1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-30 03:49:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:45 +0900

    [rubygems/rubygems] Fix `bundle update --bundler` when restarts disabled

    There's no reason why we should not update bundler as requested, even if
    restarts are disabled.

    https://github.com/rubygems/rubygems/commit/e59acd2a0d

commit 5cf07c1e8fa32ff4619c02b1762b5b7bb074ad71
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-03 19:56:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:44 +0900

    [rubygems/rubygems] Look in configured path when checking if self-update version is installed

    https://github.com/rubygems/rubygems/commit/1ce0882e6f

commit 1befc5d1024419fcd96fa986eecc5cd16aa43ab4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-03 19:00:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:44 +0900

    [rubygems/rubygems] Make update specs independent from version of Bundler

    https://github.com/rubygems/rubygems/commit/609b21a5fe

commit 0e6805eb31b0c478f6ee5a2aa9e5b85f75318304
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-30 03:27:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:43 +0900

    [rubygems/rubygems] Refactor restarts to not need memoizing the restart version

    https://github.com/rubygems/rubygems/commit/a9d80a7dcb

commit 417210c0ec6b172cccfe3137db8a460d81c05371
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-30 01:31:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:42 +0900

    [rubygems/rubygems] Make self management specs independent from version of Bundler

    https://github.com/rubygems/rubygems/commit/1257bd161e

commit 523f68c6ab75d7282aa31738e06a066aa9587c80
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-28 01:38:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:42 +0900

    [rubygems/rubygems] Compare major version only

    https://github.com/rubygems/rubygems/commit/6b4cf6713d

commit 8b2145dc312d7c2acf59c9ba2dc2c4d88b942ca2
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-26 04:31:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:41 +0900

    [rubygems/rubygems] Remove dead spec helpers

    https://github.com/rubygems/rubygems/commit/ee5a0158fd

commit e74008bfc9b0d3017e924e6eef39a4aeef7de01c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2023-03-13 22:26:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:40 +0900

    [rubygems/rubygems] Reduce duplication a bit

    https://github.com/rubygems/rubygems/commit/0574c62fc0

commit 11492bd88d98edeaac4d3e35dd0d59bf67a79569
  Author:     Antoine Marguerie <antoine@basesecrete.com>
  AuthorDate: 2025-05-21 22:07:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:39 +0900

    [rubygems/rubygems] Fix headings levels in Changelogs

    And adapt release scripts and configuration to the new structure.

    https://github.com/rubygems/rubygems/commit/3deb1aedae

commit 803dae70cbed180079beb717dee23a4bc8dabf1b
  Author:     Nicholas La Roux <larouxn@gmail.com>
  AuthorDate: 2025-05-30 15:55:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:37 +0900

    [rubygems/rubygems] Deprecate x64-mingw32 legacy Windows platform in favor of x64-mingw-ucrt

    https://github.com/rubygems/rubygems/commit/71c969be44

commit 21bce66f59c449896005fed26d5559184d11abf0
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-06-03 17:49:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-05 19:12:36 +0900

    [rubygems/rubygems] Reset variables that can cause specs to fail if set

    https://github.com/rubygems/rubygems/commit/8df67b7322

commit 9f112afcde513489b9b44b77bd2bd66843388dfb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 17:32:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-05 17:32:24 +0900

    Allow volatile pointer relaxed atomic operations

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

commit 9e84a278a3bfee575fee71f64e47f0114a03c7e1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 17:09:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-05 17:09:52 +0900

    Win: Cast of qualifier in `rbimpl_atomic_u64_load_relaxed`

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

commit 8906d55cb58e0e4db5d17d6de25376c67ddd530f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-05 17:06:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-05 17:06:51 +0900

    [ruby/stringio] Extract internal part as the function
    `str_chilled_p`
    (https://github.com/ruby/stringio/pull/136)

    https://github.com/ruby/stringio/commit/3c52ddc4c8

commit 256440a82705ac53e5266b06428209ca375c72f8
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-06-05 16:05:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-05 16:05:29 +0900

    Update bundled gems list as of 2025-06-05

commit 62b1ae0905e0a072c36ad7940069c2d795f59abf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-04 18:56:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-05 15:34:49 +0900

    Win: Slim down `vcvars_ver` options in the matrix

commit 772fc1f18785dd3f15dfd815977c9a796e9a3592
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-04 18:11:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-05 14:44:44 +0900

    Get rid of `rb_shape_t.flags`

    Now all flags are only in the `shape_id_t`, and can all be checked
    without needing to dereference a pointer.

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

commit 111986f8b0604156e139d96476e06a0d1d645e04
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-06-05 10:51:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-05 10:51:53 +0900

    ZJIT: Add newrange support (#13505)

    * Add newrange support to zjit

    * Add RangeType enum for Range insn's flag

    * Address other feedback

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 0ca80484aca180762f0a17db53981a3e69c0f7f9
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-04 05:56:39 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-05 08:15:57 +0900

    mark main Ractor object

    `RUBY_DEBUG=gc_stress ./miniruby -e0` crashes because of this
    marking miss.

    BTW, to use `RUBY_DEBUG=gc_stress` we need to specify
    `--enable-debug-env` configure option. This is why I couldn't repro
    on my environments.

    see c0c94ab183d0d428595ccb74ae71ee945f1afd45

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

commit 112c34252d15d94bff87241ade18badc09923b09
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-06-05 06:14:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-05 06:14:40 +0900

    ZJIT: Implement side exits for entry frames (#13469)

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>
    Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 99cc100cdf4f424faea8caa33beb0d14171c5dcb
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-04 22:55:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-05 03:07:19 +0900

    Remove dead rb_malloc_info_show_results

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

commit 3b5787a97f41b122014fe74b98add300bacdc366
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-06-03 23:22:08 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-05 02:18:36 +0900

    Implement write barrier for addrinfo

    `rb_addrinfo_t` has `VALUE inspectname` and `VALUE canonname`, so this
    triggers the write barrier for those. The `AddrInfo` wasn't readily
    available where we need to call `RB_OBJ_WRITE`, so this involves passing
    `self` around a bit.

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

commit a4dc778a5e700a16705ab11a1311d5172adf83ed
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-06-04 20:59:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-04 20:59:40 +0900

    Launchable: Set env variables to prevent CI slowdowns (#13513)

    When Launchable in unstable, the round trip time takes a long time, which slows down CI execution. In this PR I configured the environment variable `LAUNCHABLE_COMMIT_TIMEOUT` to configure the timeout.

    https://github.com/launchableinc/cli/pull/1015

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit a87b089349cdf710cf743adafa6f73c3adbba260
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-06-04 20:14:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-04 20:14:44 +0900

    ZJIT: Fix incorrect method name in test for Array#size

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

    Merged-By: XrXr

commit 675f33508cc08cbd17ff8dc1b14bbbe256a709ba
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-04 16:05:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 20:13:50 +0900

    Get rid of TOO_COMPLEX shape type

    Instead it's now a `shape_id` flag.

    This allows to check if an object is complex without having
    to chase the `rb_shape_t` pointer.

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

commit 8d49c05c134702c321198b70fbbf34dd80cc1ba6
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-04 17:26:06 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-04 19:53:16 +0900

    Use the edge version of debug gem

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

commit caa6ba1a46afa1bc696adc5fe91ee992f9570c89
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-06-04 16:44:28 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-06-04 19:53:16 +0900

    Make `rb_debug_inspector_backtrace_locations` return a raw backtrace

    Previously, a user of the debug inspector API was supposed to use
    `rb_debug_inspector_backtrace_locations` to get an array of
    `Thread::Backtrace::Location`, and then used its index to get more
    information from `rb_debug_inspector _frame_binding_get(index)`, etc.

    However, `rb_debug_inspector_backtrace_locations` returned an array of
    backtraces excluding rescue/ensure frames. On the other hand,
    `rb_debug_inspector_frame_binding_get(index)` interprets index with
    rescue/ensure frames. This led to inconsistency of the index, and it was
    very difficult to correctly use the debug inspector API.

    This is a minimal fix for the issue by making
    `rb_debug_inspector_backtrace_locations` return a raw backtrace
    including rescue/ensure frames.

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

commit 8d14d6ea2d9e278a04ebe7e5805221f4cd4cd950
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-30 01:35:46 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-04 19:23:30 +0900

    ZJIT: Spill to the stack using arguments instead of FrameState

    The FrameState on the SendWithoutBlock represents the entry state,
    but for instructions that push to the stack in the middle of the
    instruction before actually doing the send like opt_aref_with,
    the FrameState is incorrect. We need to write to the stack using the
    arguments for the instruction.

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

commit 6f0f84e5dd1fc603a646d744d64eedcfef43f7c1
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-29 06:40:54 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-06-04 19:23:30 +0900

    ZJIT: Parse opt_aref_with into HIR

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

commit 8070d5d97d0b1ff4f2457326d7af325560ac9ec7
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-06-04 18:17:13 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-06-04 19:18:16 +0900

    `Ractor#take` and warn

    `Ractor#take` was deprecated but some libraries can use it as
    an alias for `Ractor#value` (i.e., to wait for a Ractor's
    temrination and retrieve its result).
    Therefore `Ractor#take` is simply an alias for `Ractor#value`.

    This method will remain available until the end of August 2025,
    unless there is further discussion.

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

commit 9fddb8d954d35b70dd39676af563e66125646f39
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-04 13:50:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-04 15:31:40 +0900

    Suppress dangling pointer warning by gcc

    `__has_warning` is clang, not gcc.

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

commit 7ddc5e6187fdf531fe5e92f01bb4624c06bddda2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-04 13:49:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-04 15:31:40 +0900

    Suppress overflow warning at `ALLOC_N` in `iseq_set_local_table`

    `xmalloc2` checks the overflow of arguments multiplication.

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

commit c5f7d274d78a5ef6818bc5d344a1f27bf2f794c4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-04 13:35:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-04 15:31:28 +0900

    Check for 64bit atomic operations

    May not be supported on some 32bit architectures.

    ```
    /usr/lib/gcc-cross/m68k-linux-gnu/14/../../../../m68k-linux-gnu/bin/ld: ../../libruby-static.a(vm.o): in function `rbimpl_atomic_u64_set_relaxed':
    /home/ubuntu/build/ruby/master/m68k-linux/../src/ruby_atomic.h:60:(.text+0x2468): undefined reference to `__atomic_store_8'
    /usr/lib/gcc-cross/m68k-linux-gnu/14/../../../../m68k-linux-gnu/bin/ld: ../../libruby-static.a(vm.o): in function `rbimpl_atomic_u64_load_relaxed':
    /home/ubuntu/build/ruby/master/m68k-linux/../src/ruby_atomic.h:43:(.text+0x2950):
    undefined reference to `__atomic_load_8'
    ```

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

commit 47f55b4b449c315a9628aa9849428c2c0e98e167
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-04 12:54:39 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-04 15:27:45 +0900

    Mark as NORETURN

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

commit 206110a2a8f5d14f8e462c81065673c1dae1c2ef
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-03 22:52:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 15:26:20 +0900

    Add missing lock in `rb_ivar_defined`

    If called on a class, we should acquire the lock.

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

commit 1f4913db97d2262c8ffc4244ca0a39349ff62b23
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:29:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 15:14:27 +0900

    [ruby/did_you_mean] Revert "Alias value to take in old Ruby"

    This reverts commit https://github.com/ruby/did_you_mean/commit/15d7b0bfa573.

    https://github.com/ruby/did_you_mean/commit/86a7daca19

commit 6b8dcb7c8f13f13b31d610f38ff677d4e5ed8e56
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-04 05:11:10 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 14:59:20 +0900

    shape.c: fix off by one error in `shape_tree_mark`

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

commit bbd5a5a81d8bf3c7368d308c10f5752be25af6d1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-28 16:34:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 14:59:20 +0900

    vm_getivar: normalize shape_id to ignore frozen state

    Freezing an object changes its `shape_id` This is necessary
    so that `setivar` routines can use the `shape_id` as a cache key
    and save on checking the frozen status every time.

    However for `getivar` routines, this causes needless cache misses.
    By clearing that bit we increase hit rate in codepaths that see
    both frozen and mutable objects.

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

commit 625d6a9cbb0ed617b28115e4e3cb063e52481635
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 22:53:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 14:59:20 +0900

    Get rid of frozen shapes.

    Instead `shape_id_t` higher bits contain flags, and the first one
    tells whether the shape is frozen.

    This has multiple benefits:
      - Can check if a shape is frozen with a single bit check instead of
        dereferencing a pointer.
      - Guarantees it is always possible to transition to frozen.
      - This allow reclaiming `FL_FREEZE` (not done yet).

    The downside is you have to be careful to preserve these flags
    when transitioning.

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

commit 6b7e3395a4ab69f5eaefb983243a8e4cad7f8abf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:36:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 14:51:19 +0900

    [ruby/psych] Revert "Alias value or join to take in old Ruby"

    This reverts commit https://github.com/ruby/psych/commit/1a4d383efe0b.

    https://github.com/ruby/psych/commit/2f51c02280

commit a88ff325594d97821ef06db609c6b500b707e295
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:33:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 14:35:09 +0900

    [ruby/uri] Revert "Alias value or join to take in old Ruby"

    This reverts commit https://github.com/ruby/uri/commit/443ed0cf8540.

    https://github.com/ruby/uri/commit/9e51838a04

commit ac1dfee44aaf8d33cfb47dcb39f0edef6c2a22e2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:24:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 14:28:25 +0900

    [ruby/date] Removed workaround for assert_ractor

    https://github.com/ruby/date/commit/700e44ef54

commit 803526786a2a8e4ee4649150f9d8c51e8cb71c22
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:10:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 14:12:15 +0900

    [ruby/time] Removed workaround for assert_ractor

    https://github.com/ruby/time/commit/337410e971

commit 04b26db5ef999b1afd94cadb819dbc6b2b6e9da9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 14:07:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-04 14:08:04 +0900

    Support Ractor#value and Ractor#join for old versions of Ruby

    https://github.com/ruby/test-unit-ruby-core/pull/9
    https://github.com/ruby/test-unit-ruby-core/pull/10

commit 50400f3bb27070c028d9c4b3bde8efe44eba6efd
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 13:53:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-04 14:03:18 +0900

    [ruby/etc] Removed workaround for assert_ractor

    https://github.com/ruby/etc/commit/fd61177b71

commit a84f734343e4f564b6645f56b0c0c91c07235172
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-04 12:47:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-04 12:47:29 +0900

    Added warning for CGI.parse

commit 553753cd3eaece627e31c987067edbf241d6c28b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-03 17:31:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 04:55:37 +0900

    Fix scheduler warning

    ```
    test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt
    ```

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

commit 89d49433a9229d13fa8df7945876a8b83413434c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-04 00:33:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-04 04:48:38 +0900

    Fix memory leak of Ractor ports

    Memory leak reported:

        3   miniruby                              0x1044b6c1c ractor_init + 164  ractor.c:460
        2   miniruby                              0x1043fd6a0 ruby_xmalloc + 44  gc.c:5188
        1   miniruby                              0x104402840 rb_gc_impl_malloc + 148  default.c:8140
        0   libsystem_malloc.dylib                0x19ab3912c _malloc_zone_malloc_instrumented_or_legacy + 152

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

commit 7a40f1f06ce099455065dd98b2f8ce1d71946c6c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-04 00:23:25 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-04 04:48:38 +0900

    Fix memory leak of Ractor recv_queue

    Memory leak reported:

        3   miniruby                              0x104702c1c ractor_init + 164  ractor.c:460
        2   miniruby                              0x1046496a0 ruby_xmalloc + 44  gc.c:5188
        1   miniruby                              0x10464e840 rb_gc_impl_malloc + 148  default.c:8140
        0   libsystem_malloc.dylib                0x19ab3912c _malloc_zone_malloc_instrumented_or_legacy + 152

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

commit e27404af9e2888bede6667e4bd0a145c4efa7c46
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-03 16:26:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-04 04:15:41 +0900

    Use all 32bits of `shape_id_t` on all platforms

    Followup: https://github.com/ruby/ruby/pull/13341 / [Feature #21353]

    Even thought `shape_id_t` has been make 32bits, we were still limited
    to use only the lower 16 bits because they had to fit alongside `attr_index_t`
    inside a `uintptr_t` in inline caches.

    By enlarging inline caches we can unlock the full 32bits on all
    platforms, allowing to use these extra bits for tagging.

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

commit ea8b53a53954c2f34b1093ae2547951ae0e1fe8c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-03 05:31:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-04 01:04:24 +0900

    Allow pass special constants to the write barrier

    Some GC implementations want to always know when an object is written to,
    even if the written value is a special constant. Checking special constants
    in rb_obj_written was a micro-optimization that made assumptions about
    the GC implementation.

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

commit 5f247416b6b46b6f99c9f5229fab36ba721fd975
  Author:     harasho <shogo.harada.936@smarthr.co.jp>
  AuthorDate: 2025-05-29 14:05:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 23:07:43 +0900

    [ruby/prism] Document ClassNode fields - Adds documentation for the fields of the `ClassNode`. - Part of #2123

    https://github.com/ruby/prism/commit/99615b43ac

commit 34b407a4a89e69dd04f692e2b29efa2816d4664a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-03 04:02:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-03 23:00:15 +0900

    Fix memory leak in Prism's RubyVM::InstructionSequence.new

    [Bug #21394]

    There are two ways to make RubyVM::InstructionSequence.new raise which
    would cause the options->scopes to leak memory:

    1. Passing in any (non T_FILE) object where the to_str raises.
    2. Passing in a T_FILE object where String#initialize_dup raises. This is
       because rb_io_path dups the string.

    Example 1:

        10.times do
          100_000.times do
            RubyVM::InstructionSequence.new(nil)
          rescue TypeError
          end

          puts `ps -o rss= -p #{$$}`
        end

    Before:

        13392
        17104
        20256
        23920
        27264
        30432
        33584
        36752
        40032
        43232

    After:

        9392
        11072
        11648
        11648
        11648
        11712
        11712
        11712
        11744
        11744

    Example 2:

        require "tempfile"

        MyError = Class.new(StandardError)
        String.prepend(Module.new do
          def initialize_dup(_)
            if $raise_on_dup
              raise MyError
            else
              super
            end
          end
        end)

        Tempfile.create do |f|
          10.times do
            100_000.times do
              $raise_on_dup = true
              RubyVM::InstructionSequence.new(f)
            rescue MyError
            else
              raise "MyError was not raised during RubyVM::InstructionSequence.new"
            end

            puts `ps -o rss= -p #{$$}`
          ensure
            $raise_on_dup = false
          end
        end

    Before:

        14080
        18512
        22000
        25184
        28320
        31600
        34736
        37904
        41088
        44256

    After:

        12016
        12464
        12880
        12880
        12880
        12912
        12912
        12912
        12912
        12912

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

commit 135583e37c06267debf77ee60a8540dfe70bec8f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:49:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 18:13:15 +0900

    [ruby/tmpdir] Restore Ractor.yield style test for old version of Ruby

    https://github.com/ruby/tmpdir/commit/f12c766996

commit 365d5b6bf44e4779af0abaf5fee7af9c7c39d224
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:41:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 18:13:15 +0900

    [ruby/time] Alias value or join to take in old Ruby

    https://github.com/ruby/time/commit/2a1827b0ce

commit d609a2311582fa6a67d0b15cc661c50291f0a313
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-03 15:41:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 18:13:15 +0900

    [ruby/json] Update `JSONInRactorTest` to handle Ruby 3.5 Ractors.

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

commit 267d8a04b369bd40ba229ff17995d1c09c917afa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:44:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 18:13:15 +0900

    [ruby/strscan] Support `Ractor#value`
    (https://github.com/ruby/strscan/pull/157)

    This is same as https://github.com/ruby/stringio/pull/134

    ---------

    https://github.com/ruby/strscan/commit/141f9cf9b6

    Co-authored-by: Koichi Sasada <ko1@atdot.net>

commit 8ab4935ddff38da632624945db97c251abd103d3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:01:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 17:40:55 +0900

    [ruby/pathname] Alias value or join to take in old Ruby

    https://github.com/ruby/pathname/commit/c501767d12

commit a79e9ab3907160054386b597e79c8ef6c60faf16
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:55:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 17:40:46 +0900

    [ruby/uri] Alias value or join to take in old Ruby

    https://github.com/ruby/uri/commit/443ed0cf85

commit 6609ba05141a8e95e4c0b7db2579d85b1e35d074
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:00:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 17:24:14 +0900

    [ruby/io-wait] Alias value or join to take in old Ruby

    https://github.com/ruby/io-wait/commit/cf84aea70d

commit ce459c1df30d9e98846ca1ff6d45597885676414
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:09:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 17:24:03 +0900

    [ruby/did_you_mean] Omit some tests with JRuby

    https://github.com/ruby/did_you_mean/commit/a7a438ae27

commit 0266e4def2efc809cccac19b4cc985d270bc0201
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 15:51:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 17:24:03 +0900

    [ruby/did_you_mean] Alias value to take in old Ruby

    https://github.com/ruby/did_you_mean/commit/15d7b0bfa5

commit a77ec9a22c22a93ee979809dc7e4bed57b52972f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:06:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 16:56:39 +0900

    [ruby/psych] Alias value or join to take in old Ruby

    https://github.com/ruby/psych/commit/1a4d383efe

commit 7d1190059fa872f1a6c2f51fde8c1971b8c2bcaf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 16:44:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 16:44:36 +0900

    [ruby/stringio] Support `Ractor#value`
    (https://github.com/ruby/stringio/pull/134)

    from https://bugs.ruby-lang.org/issues/21262

    We need to alias `Ractor#value` to `Ractor#take` for old versions of
    Ruby.

    ---------

    https://github.com/ruby/stringio/commit/9954dabd80

    Co-authored-by: Koichi Sasada <ko1@atdot.net>
    Co-authored-by: Sutou Kouhei <kou@clear-code.com>

commit c6c51569cb29a70aa086523d7508f88e645c72ff
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 15:59:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 16:02:18 +0900

    [ruby/io-console] Alias value or join to take in old Ruby

    https://github.com/ruby/io-console/commit/7106d05219

commit 17401792fad0ac9a22067092cde9e4bfb1b0f0c7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 15:57:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 15:59:51 +0900

    [ruby/etc] Alias value or join to take in old Ruby

    https://github.com/ruby/etc/commit/3dbe760bed

commit 9991edcc41ad55cf79626035637915f1c5d664fb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 15:52:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 15:57:30 +0900

    [ruby/digest] Alias value to take in old Ruby

    https://github.com/ruby/digest/commit/1eaee7d4fe

commit 52d85c0efb8871ed2e29738c8edf60cc0fa034c3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-03 15:43:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-03 15:46:56 +0900

    [ruby/date] Alias value to take in old Ruby

    https://github.com/ruby/date/commit/1ce29a26dd

commit 6f4eaa100f3b1afd0edf99a7f7fa09a17732ff54
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-30 19:07:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:12:09 +0900

    Remove hardcoded version of rake from Bundler tests

    Let them run against the version resolved by the `test_gems.rb` gemfile.

    This should fix ruby-core CI job that was broken by the release of rake
    13.3.0.

commit 710f5b771155dcb4786014c8fd7b767a08f4d6f6
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 17:53:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:50 +0900

    [rubygems/rubygems] Follow coding style

    https://github.com/rubygems/rubygems/commit/bfac93100e

commit 792414678ddce65961bbd761ef1144cd3a0883a3
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 17:41:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:45 +0900

    [rubygems/rubygems] Test `bin/` is included in the ignore list

    https://github.com/rubygems/rubygems/commit/7afe81fd45

commit 204e3c58e11d1bd0e7a07f3692955aa7b7a20828
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 17:35:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:39 +0900

    [rubygems/rubygems] Only ignore `.gitignore` when generating gems with git

    https://github.com/rubygems/rubygems/commit/aec5a7887d

commit 9024caa1d6095d1764ba2352122d7cbd798a28f9
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 17:27:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:31 +0900

    [rubygems/rubygems] Ignore `Gemfile`, `gems.rb` & `gems.locked` according to `init_gems_rb` preference

    https://github.com/rubygems/rubygems/commit/88aeb66f41

commit 582e2c7fe29419d85593651c06a8dfd9da0e1b9f
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 17:04:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:21 +0900

    [rubygems/rubygems] Extract `ignore_paths` helper method

    https://github.com/rubygems/rubygems/commit/d45710ee53

commit 2667df27e90a16d3c3dd21592c1042c1bd2d6e95
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 16:58:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:13 +0900

    [rubygems/rubygems] Remove `.git` from `spec.files` default ignore list

    https://github.com/rubygems/rubygems/commit/4f96e12ff3

commit ab63fb0e3b3095d371a7c1e478ebc637fca69f31
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 16:57:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:06:05 +0900

    [rubygems/rubygems] Rename `ignore_files` to `ignore_paths`

    https://github.com/rubygems/rubygems/commit/c07e3a88aa

commit 636ff31c4ef1fa50e36a9db414cab245703b2b19
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:55:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:49 +0900

    [rubygems/rubygems] Add `.gitignore`, `gems.rb` & `gems.locked` into `spec.files` default ignore list

    https://github.com/rubygems/rubygems/commit/6390ed7a2b

commit 63ae1d289a1649d498e3ac209d3dc15e84dfcfd8
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:52:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:39 +0900

    [rubygems/rubygems] Remove `features/` from `spec.files` default ignore list

    https://github.com/rubygems/rubygems/commit/77ba4192a7

commit 68345e2930e18777f442a7ed67b5acbb37eeed16
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:52:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:31 +0900

    [rubygems/rubygems] Only ignore `test/` when generating gems with `minitest` or `test-unit`

    https://github.com/rubygems/rubygems/commit/c464f2036a

commit 2745221ad857113bfa8f6c40065668efa034e591
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:44:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:24 +0900

    [rubygems/rubygems] Test it does not add any CI config files into ignore list when not generating any CI config

    https://github.com/rubygems/rubygems/commit/018bb19244

commit f1512bfa55315c00f0288819c9677e91cdb43090
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:39:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:17 +0900

    [rubygems/rubygems] Extract `before` blocks

    https://github.com/rubygems/rubygems/commit/ff51a51d1a

commit 959bde86431550bcc90419070ccbe08f45c47eaf
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:38:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:05:07 +0900

    [rubygems/rubygems] Suffix `.circleci` with `/` in `spec.files` in the `.gemspec` template

    https://github.com/rubygems/rubygems/commit/e48c6beaf6

commit 3691c5409d42281a45e26c04280d3ae503d0f053
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:37:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:59 +0900

    [rubygems/rubygems] Suffix `.github` with `/` in `spec.files` in the `.gemspec` template

    https://github.com/rubygems/rubygems/commit/edf13f7e60

commit 68d64f464a01f168834bf850119af5c169eb28e5
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:36:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:49 +0900

    [rubygems/rubygems] Exclude `spec` from `spec.files` in the `.gemspec` template only when using RSpec

    https://github.com/rubygems/rubygems/commit/a42387b8be

commit 6b2088cf9037663170b20fff5de90d35c47fce3f
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:35:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:39 +0900

    [rubygems/rubygems] Exclude `.rspec` from `spec.files` in the `.gemspec` template

    https://github.com/rubygems/rubygems/commit/331901941d

commit a7be563d0b964aa1294c6a55fd8f43233baaf101
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 10:08:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:32 +0900

    [rubygems/rubygems] Exclude `.rubocop.yml` and `.standard.yml` from `spec.files` in the `.gemspec` template

    https://github.com/rubygems/rubygems/commit/9d937d4f7f

commit 4802571729ed9d8c20285a0d6ee66f67c5e40019
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 09:50:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:18 +0900

    [rubygems/rubygems] Remove `appveyor` from `spec.files` default ignore list

    https://github.com/rubygems/rubygems/commit/2f2046c97b

commit 04a396409d19ed1ae40a663663bf3108c3ac844f
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 09:49:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:04:04 +0900

    [rubygems/rubygems] Refactor `spec.files` ignore list generation

    https://github.com/rubygems/rubygems/commit/c11539f325

commit b34959b497c274563b0e148eb9408c715647048a
  Author:     TangRufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-30 09:07:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 08:03:52 +0900

    [rubygems/rubygems] Fix English grammar

    https://github.com/rubygems/rubygems/commit/160938e75c

commit 21a14ea2308d765e2860b6c4a33697c8c20a73ed
  Author:     Matthew Hively <matthewhively@viz.com>
  AuthorDate: 2025-05-23 04:26:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 07:47:14 +0900

    [rubygems/rubygems] Moved the REMEMBERING OPTIONS section to be after CONFIGURATION KEYS

    Since the remembering options are discouraged, the preferred method should be explained first.

    Slight tweak to wording

    Fix documentation spec test as per suggested patch

    https://github.com/rubygems/rubygems/commit/9f082ccf31

commit f4a5247ce4d5e9a764f884ad304970044ce29793
  Author:     Matthew Hively <matthewhively@viz.com>
  AuthorDate: 2025-05-23 03:06:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 07:47:14 +0900

    [rubygems/rubygems] Clarify how BUNDLE_DEPLOYMENT, BUNDLE_FROZEN and BUNDLE_PATH are connected

    https://github.com/rubygems/rubygems/commit/9ed20bddab

commit 1f894fa2cc4a3e7938732c4f1b930bf88130bb0c
  Author:     Nicholas La Roux <larouxn@gmail.com>
  AuthorDate: 2025-05-30 19:59:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 07:47:14 +0900

    [rubygems/rubygems] Remove unnecessary duplicate x64-mingw-ucrt entry

    https://github.com/rubygems/rubygems/commit/d6f1f96585

commit 869a52f33aa2777f51fe87326850a010c58c4b64
  Author:     Nicholas La Roux <larouxn@gmail.com>
  AuthorDate: 2025-04-18 19:21:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 07:47:14 +0900

    [rubygems/rubygems] Partially phase out x64-mingw32 in favour of x64-mingw-ucrt (platforms)

    - the x64-mingw32 platform has been superseded by x64-mingw-ucrt
    - the mingw-ucrt platform is present as of Windows 10, which was released 10 years ago in 2015 and all versions prior to 10 are end-of-life and 10 will be by mid October 2025
    - newer rubies use the mingw-ucrt platform instead of the mingw32 platform, meaning using the deprecated platform can cause issues during gem installation

    https://github.com/rubygems/rubygems/commit/b9d871022e

commit a763716a9682f367ee664f1f43e36daac9839cbe
  Author:     John Bampton <jbampton@gmail.com>
  AuthorDate: 2025-05-29 04:30:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-03 07:47:14 +0900

    [rubygems/rubygems] misc: fix spelling

    https://github.com/rubygems/rubygems/commit/0e40e7d938

commit d6aa1714fed3e8b5ee8bede00a8853c338ff6092
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-06-03 01:34:54 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-06-03 04:54:48 +0900

    Update to ruby/spec@4d2fc4d

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

commit 685c8ca9af892f562f64b54dbee73bb9a1999b90
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-06-03 00:51:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-03 04:45:16 +0900

    Fix test_loading_kwargs_memory_leak

    The test fails with:

        TestISeq#test_loading_kwargs_memory_leak [test/ruby/test_iseq.rb:882]:
        pid 18222 exit 1
        | -:2:in '<main>': undefined method 'iseq_to_binary' for main (NoMethodError)

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

commit e596cf6e93dbf121e197cccfec8a69902e00eda3
  Author:     John Hawthorn <john.hawthorn@shopify.com>
  AuthorDate: 2025-05-29 02:11:58 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-06-03 03:57:48 +0900

    Make FrozenCore a plain T_CLASS

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

commit db2cfebff1ae78ec6cbe32d24dcaf236b178f6ca
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-06-02 21:45:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-03 00:49:53 +0900

    Pin shape->edges

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

commit e9fd44dd724b165a7ea1dd9822fdb65d80907c06
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-19 19:38:49 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-03 00:49:53 +0900

    shape.c: Implement a lock-free version of get_next_shape_internal

    Whenever we run into an inline cache miss when we try to set
    an ivar, we may need to take the global lock, just to be able to
    lookup inside `shape->edges`.

    To solve that, when we're in multi-ractor mode, we can treat
    the `shape->edges` as immutable. When we need to add a new
    edge, we first copy the table, and then replace it with
    CAS.

    This increases memory allocations, however we expect that
    creating new transitions becomes increasingly rare over time.

    ```ruby
    class A
      def initialize(bool)
        @a = 1
        if bool
          @b = 2
        else
          @c = 3
        end
      end

      def test
        @d = 4
      end
    end

    def bench(iterations)
      i = iterations
      while i > 0
        A.new(true).test
        A.new(false).test
        i -= 1
      end
    end

    if ARGV.first == "ractor"
      ractors = 8.times.map do
        Ractor.new do
          bench(20_000_000 / 8)
        end
      end
      ractors.each(&:take)
    else
      bench(20_000_000)
    end
    ```

    The above benchmark takes 27 seconds in Ractor mode on Ruby 3.4,
    and only 1.7s with this branch.

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

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

commit cbd49ecbbe870c934b2186e3896dd43033313332
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-30 23:41:35 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-02 22:52:25 +0900

    Remove unused RBASIC_RESET_FLAGS

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

commit acc273a8a44f2238ad2d74c95ca00c91ab2047f3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-30 23:40:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-06-02 22:52:25 +0900

    Remove dependancy of default.c on internal/object.h

    We don't want the default GC to depend on Ruby internals so we can build
    it as a modular GC.

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

commit cfe17520ba209c18ee1e39e36d50c5a01d6d0cd6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-01 19:52:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-02 22:08:32 +0900

    [DOC] Mention vsdevcmd.bat

commit ff222ac27afe712ef6ec2bb74c81cdde1a1fa176
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-24 17:02:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-06-02 20:41:28 +0900

    compile.c: Handle anonymous variables in `outer_variable_cmp`

    [Bug #21370]

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

commit 9a292528305e88fc05c054afcfe25fc23e5c9b80
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-06-02 18:50:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-06-02 18:50:23 +0900

    Fix compatibility with fiber schedulers that don't implement `#fiber_interrupt`. (#13492)

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

commit 20d7db8cbaa617f58d0d262c354c76460a6ad809
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-06-02 08:50:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-06-02 08:50:54 +0900

    Handle test failure of mock object

    Fixup 4c26a38ed3c

    https://rubyci.s3.amazonaws.com/amazon2/ruby-master/log/20250601T213003Z.fail.html.gz

    ```
    1)
    An exception occurred during: Mock.verify_count
    File.birthtime accepts an object that has a #to_path method FAILED
    Mock 'path' expected to receive to_path(:any_args) exactly 1 times
    but received it 0 times
    /home/chkbuild/chkbuild/tmp/build/20250601T213003Z/ruby/spec/ruby/core/file/birthtime_spec.rb:4:in 'block in <top (required)>'
    /home/chkbuild/chkbuild/tmp/build/20250601T213003Z/ruby/spec/ruby/core/file/birthtime_spec.rb:3:in '<top (required)>'
    ```

commit 3fd2d54a0aa31d9e851790f85a2baf97fa17458e
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-06-01 16:03:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-06-01 16:03:33 +0900

    Update bundled gems list as of 2025-06-01

commit 4c26a38ed3c0322a3a9116ea7a32d7d48bf74727
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-06-01 14:22:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-01 14:22:51 +0900

    Skip birthtime failures on old linux

    `statx(2)` is available since Linux 4.11 and glibc 2.28.

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

commit 1395abd025f69045fe3dd7552b0ff210ba53fded
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-31 19:02:32 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-01 12:16:18 +0900

    Win: Use `VsDevCmd.bat` instead of old `vcvarsall.bat`

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

commit a64616fb4c29290478adde391327ab97acf12be8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-31 19:01:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-06-01 10:24:06 +0900

    Win: Fix `winget` command to `install`

commit 63617a6ce182dd6599d3bb7a62b2abdfeda528ac
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-31 20:56:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-31 20:56:00 +0900

    Update rake version in bundler tests

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

commit f2ddd923ed826bac31bda4c28679f4a686888c8c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-31 19:21:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-31 19:21:14 +0900

    Update rake version in lock files

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

commit 32c708efbd8fd0f80b30ec9dbb8979f00ae5e7d5
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-31 18:43:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-31 18:43:52 +0900

    Update bundled gems list as of 2025-05-31

commit 49f35c917b35d33f10900443837ba79e58414879
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-05-31 18:31:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-31 18:31:17 +0900

    Bump bundled bigdecimal to 3.2.1 (#13482)

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit 2097d3794d94cca79e58128f85063ecd169e9ec0
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-05-31 10:12:41 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 18:31:10 +0900

    Fix typo (s/ractore/ractor/)

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

commit 7b75b1f2da85b3862d4cebe176f41cf044ed6e7f
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 13:13:38 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 18:29:02 +0900

    prepare IDs for `Ractor::monitor`

    To prevent the following strange error, prepare IDs at first.

    ```
         <internal:ractor>:596:in 'Ractor#monitor': symbol :exited is already registered with 98610c (fatal)
                 from <internal:ractor>:550:in 'Ractor#join'
                 from <internal:ractor>:574:in 'Ractor#value'
                 from bootstraptest.test_ractor.rb_2013_1309.rb:12:in '<main>'
    ```

    BTW, the error should be fixed on ID management system.

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

commit e8b31c273c205d6e5482c9cf1832fbe8fdc97f5b
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 15:23:10 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 17:15:44 +0900

    rake 13.3.0 -> 13.2.1

    `make test-bundler-parallel` prints many errors, so try to
    downgrade rake version.

    ```
      219) bundle install --standalone run in a subdirectory with --binstubs creates stubs that can be symlinked
           Failure/Error:
                   raise <<~ERROR
                     #{error_header}

                     ----------------------------------------------------------------------
                     #{stdboth}
                     ----------------------------------------------------------------------
                   ERROR

           RuntimeError:

             Commands:
             $ /home/ko1/ruby/build/trunk/ruby -I/home/ko1/ruby/src/trunk/spec/bundler -r/home/ko1/ruby/src/trunk/spec/bundler/support/artifice/compact_index.rb -r/home/ko1/ruby/src/trunk/spec/bundler/support/hax.rb /home/ko1/ruby/src/trunk/tmp/2.13/gems/system/bin/bundle config set --local path /home/ko1/ruby/src/trunk/tmp/2.13/bundled_app/bundle
             # $? => 0
             Invoking `/home/ko1/ruby/build/trunk/ruby -I/home/ko1/ruby/src/trunk/spec/bundler -r/home/ko1/ruby/src/trunk/spec/bundler/support/artifice/compact_index.rb -r/home/ko1/ruby/src/trunk/spec/bundler/support/hax.rb /home/ko1/ruby/src/trunk/tmp/2.13/gems/system/bin/bundle install --standalone --binstubs` failed with output:

             ----------------------------------------------------------------------
             [DEPRECATED] The --binstubs option will be removed in favor of `bundle binstubs --all`
             Could not find compatible versions

             Because every version of rails depends on rake = 13.3.0
               and rake = 13.3.0 could not be found in rubygems repository https://gem.repo1/ or installed locally,
               rails cannot be used.
             So, because Gemfile depends on rails >= 0,
               version solving has failed.
             Fetching gem metadata from https://gem.repo1/...
             Resolving dependencies...
             ----------------------------------------------------------------------
           Shared Example Group: "bundle install --standalone" called from ./spec/bundler/install/gems/standalone_spec.rb:532
           # /home/ko1/ruby/src/trunk/spec/bundler/support/command_execution.rb:26:in 'Spec::CommandExecution#raise_error!'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/subprocess.rb:66:in 'Spec::Subprocess#sh'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:216:in 'Spec::Helpers#sys_exec'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:107:in 'Spec::Helpers#bundle'
           # /home/ko1/ruby/src/trunk/spec/bundler/install/gems/standalone_spec.rb:482:in 'block (3 levels) in <top (required)>'
           # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:107:in 'block (4 levels) in <top (required)>'
           # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:107:in 'block (3 levels) in <top (required)>'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:355:in 'block in Spec::Helpers#with_gem_path_as'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:369:in 'Spec::Helpers#without_env_side_effects'
           # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:350:in 'Spec::Helpers#with_gem_path_as'
           # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:106:in 'block (2 levels) in <top (required)>'
    ```

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

commit 9dc9d5f5a6a698274babe596552020bcd2c37928
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-19 22:49:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-31 16:49:21 +0900

    [DOC] Fix indentation

    RDoc markdown parser requires exact 4 spaces or tab as indentation.
    Also the first nested bullet list must be separated from the enclosing
    bullet list item by a blank line.

commit 57d10c6e806c4572eb75084462ecdf883591f4ea
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 10:27:31 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 13:06:22 +0900

    NEWS entries for `Ractor::Port`

commit c0c94ab183d0d428595ccb74ae71ee945f1afd45
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 08:38:58 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 13:05:16 +0900

    skip failing test in a week

    ```
      1) Failure:
    TestGc#test_gc_stress_at_startup [/home/chkbuild/chkbuild/tmp/build/20250530T213003Z/ruby/test/ruby/test_gc.rb:799]:
    [Bug #15784]
    pid 1748790 killed by SIGSEGV (signal 11) (core dumped).

    1. [3/3] Assertion for "success?"
       | Expected #<Process::Status: pid 1748790 SIGSEGV (signal 11) (core dumped)> to be success?.
    ```

commit 7924296844fe616b24935018d82f2c65424c4156
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 08:17:36 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 08:17:36 +0900

    skip flaky test

    ```
      1) Failure:
    TestProcess#test_warmup_frees_pages [/tmp/ruby/src/trunk-random1/test/ruby/test_process.rb:2772]:
    <164348> expected but was
    <165985>.
    ```

    can someone investigate it?

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

commit e577edb12ef3c4192cbcbf4286f071e3fae52d28
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-31 04:14:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-31 04:14:14 +0900

    Update bundled gems list as of 2025-05-30

commit 49b7a092fa42341faf98d53fee11cfb776201ff0
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-31 02:38:41 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 04:01:33 +0900

    skip tests for BigDecimal 3.2.0

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

commit 70131741851aa703b4e7a334d947ffdbe875ec31
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-29 19:19:29 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 04:01:33 +0900

    fix for test-bundled-gems to catch up new API

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

commit ef2bb61018cd9ccb5b61a3d91911e04a773da4a7
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-27 03:58:04 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-31 04:01:33 +0900

    `Ractor::Port`

    * Added `Ractor::Port`
      * `Ractor::Port#receive` (support multi-threads)
      * `Rcator::Port#close`
      * `Ractor::Port#closed?`
    * Added some methods
      * `Ractor#join`
      * `Ractor#value`
      * `Ractor#monitor`
      * `Ractor#unmonitor`
    * Removed some methods
      * `Ractor#take`
      * `Ractor.yield`
    * Change the spec
      * `Racotr.select`

    You can wait for multiple sequences of messages with `Ractor::Port`.

    ```ruby
    ports = 3.times.map{ Ractor::Port.new }
    ports.map.with_index do |port, ri|
      Ractor.new port,ri do |port, ri|
        3.times{|i| port << "r#{ri}-#{i}"}
      end
    end

    p ports.each{|port| pp 3.times.map{port.receive}}

    ```

    In this example, we use 3 ports, and 3 Ractors send messages to them respectively.
    We can receive a series of messages from each port.

    You can use `Ractor#value` to get the last value of a Ractor's block:

    ```ruby
    result = Ractor.new do
      heavy_task()
    end.value
    ```

    You can wait for the termination of a Ractor with `Ractor#join` like this:

    ```ruby
    Ractor.new do
      some_task()
    end.join
    ```

    `#value` and `#join` are similar to `Thread#value` and `Thread#join`.

    To implement `#join`, `Ractor#monitor` (and `Ractor#unmonitor`) is introduced.

    This commit changes `Ractor.select()` method.
    It now only accepts ports or Ractors, and returns when a port receives a message or a Ractor terminates.

    We removes `Ractor.yield` and `Ractor#take` because:
    * `Ractor::Port` supports most of similar use cases in a simpler manner.
    * Removing them significantly simplifies the code.

    We also change the internal thread scheduler code (thread_pthread.c):
    * During barrier synchronization, we keep the `ractor_sched` lock to avoid deadlocks.
      This lock is released by `rb_ractor_sched_barrier_end()`
      which is called at the end of operations that require the barrier.
    * fix potential deadlock issues by checking interrupts just before setting UBF.

    https://bugs.ruby-lang.org/issues/21262

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

commit d2a1ad00cbba41e22c11abf2948c23cd8d68f565
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-05-28 17:21:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-30 23:55:42 +0900

    [ruby/mmtk] Fix environment variable parsing

    Ues more idiomatic rust approaches.

    https://github.com/ruby/mmtk/commit/ef125f9eae

commit 94688bdc7da3ac82f712d3cdc11859ace3bfa8ac
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-05-28 15:28:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-30 23:55:42 +0900

    [ruby/mmtk] Fix clippy warnings and formatting.

    We also enable `#![warn(unsafe_op_in_unsafe_fn)]` in the whole mmtk_ruby
    crate.

    https://github.com/ruby/mmtk/commit/8b8025f71a

commit d8774ec98fb723f5cc6872a5019ec588a8b5aef6
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-05-27 17:57:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-30 23:55:41 +0900

    [ruby/mmtk] Bump MMTk and dependencies version

    https://github.com/ruby/mmtk/commit/de252637ec

commit 60de513d05c390095a265135c6d910722b637674
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-05-27 17:31:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-30 23:55:41 +0900

    [ruby/mmtk] Remove unused constant

    Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.

    In the mmtk/mmtk-ruby repo, we are now able to find the global field
    (IV) table of a moved object during copying GC without using the
    HAS_MOVED_GFIELDSTBL bit.  We synchronize some of the code, although we
    haven't implemented moving GC in ruby/mmtk, yet.

    See: https://github.com/mmtk/mmtk-ruby/commit/13080acdf553f20a88a7ea9ab9f6877611017136

    https://github.com/ruby/mmtk/commit/400ba4e747

commit f8db23afe5e2e45e987f0c62ed731f62838f135a
  Author:     Tavian Barnes <tavianator@tavianator.com>
  AuthorDate: 2025-05-30 23:27:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-30 23:27:00 +0900

    ZJIT: Fold more fixnum operations (#13465)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 65e9791c55c56eb8e6af2e39a2de3ab8068fa7d9
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-05-30 23:23:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-30 23:23:26 +0900

    ZJIT: Assert that we're compiling a specific YARV insn to HIR (#13471)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 8872d3e10bc36a07dff72d0baf461992cca9b699
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-10 15:40:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-30 20:55:12 +0900

    [Feature #21205] Fix up birthtime in ruby/spec

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

commit 18a036a6133bd141dfc25cd48ced9a2b78826af6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-09 22:16:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-30 20:55:12 +0900

    [Feature #21205] Define File::Stat#birthtime by statx

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

commit a333fb1eccf5218559c89bd51753e48a8a156ade
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-29 20:09:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-30 18:44:28 +0900

    Win: Add scripts to install and setup

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

commit 9f91f3617bab2ee220d298ddb874ef73b10dac23
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-29 03:48:02 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-30 05:06:49 +0900

    Fix memory leak with invalid yield in prism

    [Bug #21383]

    The following script leaks memory:

        10.times do
          20_000.times do
            eval("class C; yield; end")
          rescue SyntaxError
          end

          puts `ps -o rss= -p #{$$}`
        end

    Before:

        16464
        25536
        29424
        35904
        39552
        44576
        46736
        51600
        56096
        59824

    After:

        13488
        16160
        18240
        20528
        19760
        21808
        21680
        22272
        22064
        22336

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

commit 6a62a46c3cd8a0fe3623b5363ff21ead1e755169
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-24 02:49:21 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-30 05:02:07 +0900

    Read {max_iv,variation}_count from prime classext

    MAX_IV_COUNT is a hint which determines the size of variable width
    allocation we should use for a given class. We don't need to scope this
    by namespace, if we end up with larger builtin objects on some
    namespaces that isn't a user-visible problem, just extra memory use.

    Similarly variation_count is used to track if a given object has had too
    many branches in shapes it has used, and to use too_complex when that
    happens. That's also just a hint, so we can use the same value across
    namespaces without it being visible to users.

    Previously variation_count was being incremented (written to) on the
    RCLASS_EXT_READABLE ext, which seems incorrect if we wanted it to be
    different across namespaces

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

commit 5b3f1c4c51480cbdbd1ace92b1767f14f9fff280
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-30 00:40:57 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-30 01:51:43 +0900

    Take VM lock around manipulation of fiber pool for vacant stacks

    When creating fibers in multiple ractors at the same time there were
    issues with the manipulation of this structure, causing segfaults.

    I didn't add any tests for this because I'm making a more general
    PR in the very near future to be able to run test methods (test-all suite)
    inside multiple ractors at the same time. This is how this bug was
    caught, running test/ruby/test_fiber.rb inside 10 ractors at once.

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

commit 38ecaca15544644e68eed8a0f5a86c8567ce9269
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-29 23:46:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 23:46:49 +0900

    [ruby/mmtk] Remove dependance on internal/object.h

    https://github.com/ruby/mmtk/commit/fdc13963f0

commit 9542e3db1cdbb16d14b3823df5e5566c31df2a72
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-29 17:52:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 17:52:58 +0900

    Removed needless components of BuildTools

commit 857b1ae786045c598d71bdeaedf947ec6645fafb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-29 06:11:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:46:00 +0900

    [ruby/prism] [DOC] No RDoc in include/prism/ast.h

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

commit 8aa21634d8d8574fe56772c4290a2baac93dba56
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-28 19:49:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:45:59 +0900

    [ruby/prism] [DOC] Simply use `String#ljust`

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

commit 5e64d5c7d922e775641015775ffb5f1624dfba84
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-28 19:47:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:45:59 +0900

    [ruby/prism] [DOC] Markup `__FILE__` as code, not emphasis

    https://github.com/ruby/prism/commit/571ba378f5

commit 82c74e4282d4471a16534ab6f314b3447a24e20a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-28 19:40:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:45:59 +0900

    [ruby/prism] [DOC] Stop rdoc from processing non-rdoc comments

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

commit 22451f370e258f8558063e9169754aa037166c15
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-28 19:26:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:45:58 +0900

    [ruby/prism] [DOC] Add code fences

    https://github.com/ruby/prism/commit/641775e5fe

commit 991cf2dd4d611d5a8b275dfb3ec83c4d25799629
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-28 19:25:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 13:45:58 +0900

    [ruby/prism] [DOC] Specify markdown mode to RDoc

    https://github.com/ruby/prism/commit/12af4e144e

commit 6256c52667cd84a7b76f2eed532be78c3a82ffb5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-29 13:15:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 13:15:12 +0900

    Added VS2022 BuildTools instructions

commit 5131d5ef83f9c3910c4dc94b9de0c897ed7500fd
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-29 13:08:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 13:15:12 +0900

     VS2022 17.13.x and winsdk-10.0.26100 issues are resolved now

commit 2a240103cc02ce0407f9eb0a9fc740275a93d259
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-29 13:05:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 13:15:12 +0900

    Added instruction for installing gcc toolchain with ridk

commit fa85d23ff4a02985ebfe0716b0ff768f5b4fe13d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-27 22:24:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-29 11:10:58 +0900

    [Bug #21380] Prohibit modification in String#split block

    Reported at https://hackerone.com/reports/3163876

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

commit 7082ef201ecf4998d0b4a7a5fd10832a7a3cb18a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-28 21:09:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 10:09:28 +0900

    Remove unnecessary `GEM_PATH` modification

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

commit 1a8d3383374fe7e94d8659d21e39757387b10c7e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-28 21:18:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-29 10:09:28 +0900

    Initialize `gems` tmp when initializing bundled_gems_spec suite

    That way it works even if no Bundler specs have run before.

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

commit bb4d9f3f618ac02860450e51be56097f518dfabd
  Author:     John Bampton <jbampton@users.noreply.github.com>
  AuthorDate: 2025-05-29 04:37:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-29 07:01:04 +0900

    [ruby/resolv] Update resolv.rb - fix spelling

    https://github.com/ruby/resolv/commit/65ce7f214b

commit cce89a6f69b4be99f33e1ad1a9f4906977e50d62
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-29 06:20:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-29 06:20:10 +0900

    ZJIT: Add --enable-zjit=dev_nodebug (#13456)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 9a1d6cc7991a856c4f4394572378570e01a61aaa
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-29 05:59:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-29 05:59:51 +0900

    ZJIT: Add CallableMethodEntry to type lattice (GH-13459)

    This will be useful when we split Send into Lookup+Call.
    For reasoning about various method types during optimization.

commit b5f56720340f688b60abe120cd4fd79afe13b00e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-29 00:24:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-29 02:25:37 +0900

    Set iclass_is_origin flag for FrozenCore

    We don't free the method table for FrozenCore since it is converted to
    an iclass and doesn't have the iclass_is_origin flag set. This causes a
    memory leak to be reported during RUBY_FREE_AT_EXIT:

        14  dyld                                  0x19f13ab98 start + 6076
        13  miniruby                              0x100644928 main + 96  main.c:62
        12  miniruby                              0x10064498c rb_main + 48  main.c:42
        11  miniruby                              0x10073be0c ruby_init + 16  eval.c:98
        10  miniruby                              0x10073bc6c ruby_setup + 232  eval.c:87
        9   miniruby                              0x100786b98 rb_call_inits + 168  inits.c:63
        8   miniruby                              0x1009b5010 Init_VM + 212  vm.c:4017
        7   miniruby                              0x10067aae8 rb_class_new + 44  class.c:834
        6   miniruby                              0x10067a04c rb_class_boot + 48  class.c:748
        5   miniruby                              0x10067a250 class_initialize_method_table + 32  class.c:721
        4   miniruby                              0x1009412a8 rb_id_table_create + 24  id_table.c:98
        3   miniruby                              0x100759fac ruby_xmalloc + 24  gc.c:5201
        2   miniruby                              0x10075fc14 ruby_xmalloc_body + 52  gc.c:5211
        1   miniruby                              0x1007726b4 rb_gc_impl_malloc + 92  default.c:8141
        0   libsystem_malloc.dylib                0x19f30d12c _malloc_zone_malloc_instrumented_or_legacy + 152

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

commit d1343e12d253cef9c8af22ff58275d28c484d6f2
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-27 03:48:41 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-29 00:44:07 +0900

    Use flag for RCLASS_IS_INITIALIZED

    Previously we used a flag to set whether a module was uninitialized.
    When checked whether a class was initialized, we first had to check that
    it had a non-zero superclass, as well as that it wasn't BasicObject.

    With the advent of namespaces, RCLASS_SUPER is now an expensive
    operation, and though we could just check for the prime superclass, we
    might as well take this opportunity to use a flag so that we can perform
    the initialized check with as few instructions as possible.

    It's possible in the future that we could prevent uninitialized classes
    from being available to the user, but currently there are a few ways to
    do that.

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

commit 3935b1c401d00f52b9ee0ce0b58767cc32e280fc
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-25 14:49:54 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-29 00:10:09 +0900

    Make class_alloc only accept type

    If any other flags were passed other than type they were ignored, so we
    might as well be more explicit that that's all this accepts. This also
    fixes the incorrect (internal) documentation.

    It also turns out type is always known in the caller, so I made it
    explicit in the two places additional flags were being passed.

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

commit 749bda96e59240f43f8938545990da505807eb36
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-28 19:39:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-28 19:39:21 +0900

    Refactor attr_index_t caches

    Ensure the same helpers are used for packing and unpacking.

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

commit 658fcbe91a7c74ba33aee96c8a6c10f13ff3e6d9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-28 19:28:42 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-28 19:29:25 +0900

    Get rid of `vm_cc_attr_index` and `vm_cc_attr_index_dest_shape_id`

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

commit a0e9af0146ab04e6d9eb8f5435ecdf383144af60
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-28 19:20:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-28 19:20:37 +0900

    Get rid of unused `vm_ic_attr_index_dest_shape_id`

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

commit d064fd067b2045dcfcd1535054cc72b843b9402e
  Author:     John Bampton <jbampton@gmail.com>
  AuthorDate: 2025-05-27 09:45:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-28 13:34:40 +0900

    [rubygems/rubygems] test(ruby): fix spelling

    https://github.com/rubygems/rubygems/commit/398bc1365e

commit f88d67db3484ce02da616f2c69ee569fc1c369e5
  Author:     Tang Rufus <tangrufus@gmail.com>
  AuthorDate: 2025-05-26 04:24:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-28 13:34:39 +0900

    [rubygems/rubygems] Fix example name typo

    https://github.com/rubygems/rubygems/commit/2d0cf3c31e

commit 28860842cf458e7baaba12049628b9cf570bcd95
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-28 09:03:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-28 10:37:00 +0900

    Use the latest version of Windows SDK

    https://github.com/ruby/ruby/commit/72bda0f981c7136f50254c433bbfb97a953f634b

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

commit 326c120aa70274b8bdab3ce791f504f32f9b9b09
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 21:08:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Rename `rb_shape_id_canonical_p` -> `rb_shape_canonical_p`

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

commit 6c4ae85211a8c5ac23214303ef5023361a899689
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 21:07:50 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Rename `rb_shape_frozen_shape_p` -> `shape_frozen_p`

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

commit 925dec8d703fca9078a5c553f40dfb370162ef49
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 20:53:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Rename `rb_shape_set_shape_id` in `rb_obj_set_shape_id`

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

commit ccf2b7c5b89ba4b40f9ed4b9eef95d7bd4867538
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 20:32:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Refactor `rb_shape_too_complex_p` to take a `shape_id_t`.

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

commit a1f72d23a911d8a1f4c89fbaacee1d8e7b4e90d3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 20:20:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Refactor `rb_shape_has_object_id`

    Now takes a `shape_id_t` and the version that takes a `rb_shape_t *`
    is private.

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

commit a80a5000ab9ac08b9b74cfee559bba5c349b1808
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 20:16:50 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Refactor `rb_obj_shape` out.

    It still exists but only in `shape.c`.

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

commit 97f44ac54e197bca43b54dd65e116cb9ea22cda0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 19:58:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Get rid of rb_shape_set_shape

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

commit a59835e1d53d3fb673978e93417f4080774f905a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 19:57:03 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 22:34:02 +0900

    Refactor `rb_shape_get_iv_index` to take a `shape_id_t`

    Further reduce exposure of `rb_shape_t`.

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

commit e535f8248b1ad9f18cfc8134dd7e8056d97a6244
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 18:51:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 19:45:24 +0900

    Get rid of `rb_shape_id(rb_shape_t *)`

    We should avoid conversions from `rb_shape_t *` into `shape_id_t`
    outside of `shape.c` as the short term goal is to have `shape_id_t`
    contain tags.

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

commit cc48fcdff22689cdca04181105582150b01904a1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 18:46:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 19:45:24 +0900

    Get rid of `rb_shape_canonical_p`

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

commit 8b0868cbb106c49d8761536abc408dae0b2e1c1c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-27 16:36:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 19:45:24 +0900

    Refactor `rb_shape_rebuild_shape` to stop exposing `rb_shape_t`

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

commit cd355ac8aabbfd671f4cf6fe17f4ac1e500e49cf
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-05-27 15:54:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-27 15:54:22 +0900

    bundle rbs-3.9.4 to fix test failure (#13287)

    * Skip CGI tests

    * Bundle rbs-3.9.4

  Notes:
    Merged-By: soutaro <matsumoto@soutaro.com>

commit 72bda0f981c7136f50254c433bbfb97a953f634b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-26 20:37:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-27 15:26:25 +0900

    [Bug #21255] Win32: Do not export `__declspec(selectany)` symbols

    ```
    x64-vcruntime140-ruby350.def : error LNK2001: unresolved external symbol Avx2WmemEnabledWeakValue
    ```

commit e1adb6cb15129a54df0c55a337e98b92b2a55e3f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-26 20:11:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-27 15:26:24 +0900

    Win: Suppress false warnings from Visual C 17.14.1

    https://developercommunity.visualstudio.com/t/warning-C5287:-operands-are-different-e/10877942?

    It is not able to silence "operands are different enum types"
    warnings, even using an explicit cast, as the message says.

commit be5450467b9d8cd461e2efd0ea9bd57cf001c05c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-27 04:05:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-27 15:22:26 +0900

    Fix reference updating for id2ref table

    The id2ref table could contain dead entries which should not be passed
    into rb_gc_location. Also, we already update references in gc_update_references
    using rb_gc_vm_weak_table_foreach so we do not need to update it again.

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

commit 061d36476fbeec9aebaf2e9058b0ac01be3d0dd0
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-25 14:56:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-27 09:41:09 +0900

    Remove set library from maintainers doc, as Set is now a core class

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

commit 386f87481632f1ba8de53fd94d314183034a4b06
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-27 03:11:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-27 04:04:00 +0900

    Don't copy FL_PROMOTED to new object in Ractor move

    We should not copy the FL_PROMOTED flag when we move an object in Ractor#send(move: true)
    because the newly created object may not be old.

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

commit 909a0daab696c7b9dc1d23d27500e1eecd93e470
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-25 23:59:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-27 02:42:35 +0900

    [DOC] More tweaks for String#byteindex

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

commit f483befd9065d159d3a944b87fe26179c5373c30
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-15 03:06:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-26 17:31:54 +0900

    Add shape_id to RBasic under 32 bit

    This makes `RBobject` `4B` larger on 32 bit systems
    but simplifies the implementation a lot.

    [Feature #21353]

    Co-authored-by: Jean Boussier <byroot@ruby-lang.org>

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

commit 485ee6d7a3eb8e7708f777b00289c717adb99bcc
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-05-17 23:58:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [rubygems/rubygems] Remove backport of LATEST_RUBY_WITHOUT_PATCH_VERSIONS

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/24c8073b24

commit d8d0da571340e40bc6dbabab7a421a94d55e5b72
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-05-15 05:31:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [rubygems/rubygems] Remove platform backports from bundler

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/9336d3811c

commit af27688697f708b4fe15e4211d61d2765acc80f6
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-05-15 05:31:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [rubygems/rubygems] Remove reference to validate_rust_builder_rubygems_version

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/f8baf13ab0

commit c9ba3d0bacc291c852bb9d4609010c5b1fab7680
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-04-14 16:39:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [rubygems/rubygems] Bump required_ruby_version to 3.2

    Ruby 3.1 was EOL March 2025

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/29c21b1e78

commit d565d809afea326999c24da56dcd9a902dc15486
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-24 00:07:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [ruby/json] Release 2.12.2

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

commit 54a314233c48cb5202512ea37e210e8380119186
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-23 18:36:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [ruby/json] Release 2.12.1

    https://github.com/ruby/json/commit/8603a57a91

commit 212213a5526ee1768c3a972476967050443a25f6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-23 18:27:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [ruby/json] fbuffer.c: add debug mode with bound checks.

    This would have caught https://github.com/ruby/json/pull/808
    on CI.

    https://github.com/ruby/json/commit/8109421fb4

commit f171a263f76d6505b891f848bc5393ebbb973be3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-23 16:28:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-26 11:46:12 +0900

    [ruby/json] Fix: generate_json_float to reserve enough memory for large negative floats.

    Fix: https://github.com/ruby/json/issues/807

    Since https://github.com/ruby/json/pull/800, `fpconv_dtoa` can actually
    generate up to 28 chars.

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

commit aad9fa285398d48b5647f8a36922b8d817a24156
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-23 20:14:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-25 15:22:43 +0900

    Use RB_VM_LOCKING

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

commit fc518fe1ff0410f836b01577b8c4f3940404a24b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2021-10-27 11:45:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-25 15:22:43 +0900

    Delimit the scopes using encoding/symbol tables

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

commit f2ca66fefc809f3a6f92864d3e7d3f1769f7bfbd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2021-10-27 11:44:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-25 15:22:42 +0900

    Add RB_VM_LOCKING macro which delimits the variable scope

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

commit 87d340f0e129ecf807e3be35d67fda1ad6f40389
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-05-24 05:17:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 08:31:28 +0900

    ZJIT: Parse branchnil into HIR

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

commit fa474a41e809822579bf8db6bbcb036a07c03774
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 04:05:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 08:31:28 +0900

    ZJIT: Parse opt_aref into HIR

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

commit 5905f71a3406dc60ccc3a3c9bf6159d9113808ee
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 03:21:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 08:31:28 +0900

    ZJIT: Add fast-paths for Array#length and Array#size

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

commit 2b5a6744407d34ca81cfa91b2b69c13043981f86
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-24 02:53:00 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-24 08:02:48 +0900

    ractor_wakeup was broken when compiled with USE_RUBY_DEBUG_LOG

    The `ractor_wakeup` function takes an optional `th` argument, so it can be NULL.
    There is a macro call to RUBY_DEBUG_LOG that dereferences `th` without checking
    if it's NULL first. To fix this, we never dereference `th` in this macro call.

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

commit 75b92c5cd6485a6b236101771f571cdf53cbd6a4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 03:08:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 05:32:49 +0900

    ZJIT: Implement find for Defined

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

commit 15618b7707aefe9a601771d2aca986392d1fb775
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 02:47:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 05:32:49 +0900

    ZJIT: Mark SideExit as terminator

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

commit d23fe287b647d342dbb26b5b714992823b068fe4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 02:45:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 05:32:49 +0900

    ZJIT: Side-exit into the interpreter on unknown call types

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

commit a0df4cf6f16c68406aa32ad32047511e77bc0659
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 02:41:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 05:32:49 +0900

    ZJIT: Side-exit into the interpreter on unknown opt_newarray_send

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

commit 0c29ff8e8f92a4511863aa2078296d955dfd465e
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 02:27:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-24 05:32:49 +0900

    ZJIT: Side-exit into the interpreter on unknown opcodes

    No need to bail out of compilation completely; we can compile all the
    code up until that point.

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

commit 2a951f62e117549a3e442925886859264fe809e6
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-05-23 22:58:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-24 04:28:16 +0900

    Change test to avoid stack overflow with MN threads

    When using MN threads (such as running the test in a ractor), this test
    failed because it was raising a SystemStackError: stack level too deep.

    This is because the machine stack is smaller under MN threads than on
    the native main thread.

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

commit f64c89f18d3a0cd15ea334d43f73f72e7bd99140
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-24 00:12:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-24 04:13:23 +0900

    Fix 'require' from a ractor when the required file raises an error

    If you catch an error that was raised from a file you required in
    a ractor, that error did not have its belonging reset from the main
    ractor to the current ractor, so you hit assertion errors in debug
    mode.

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

commit b7e751181eefbce272958d62c26e396ac16363c1
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-24 03:43:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-24 03:43:17 +0900

    ZJIT: Parse splatarray, concattoarray, pushtoarray into HIR (#13429)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit e00c46017b84583494d01f03918e1a67977c70c1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-16 05:42:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-24 03:35:56 +0900

    Drop unnecessary compiler guards for memory_sanitizer

    We unpoison slots allocated out of the GC, so we don't need to disable
    the assertions that read from the memory.

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

commit 9130023cf57297b702eba57b91bcceabd27bf796
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-16 04:15:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-24 03:35:56 +0900

    Remove dependency on bits.h in default.c when BUILDING_MODULAR_GC

    We can assume that the compiler will have __builtin_clzll so we can implement
    nlz_int64 using that.

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

commit 4f9f2243e9fc0fd0e0d4334b54b2cad7282f4ac1
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-23 06:18:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-24 02:33:48 +0900

    Stricter assert for RCLASS_ALLOCATOR

    I'd like to make this only valid to T_CLASS also, but currently it is
    called in some places for T_ICLASS and expected to return 0.

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

commit 05cdcfcefd7854ee2601ff876a9ddb22b5feed81
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-20 09:37:25 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-24 02:33:48 +0900

    Only call RCLASS_SET_ALLOCATOR on T_CLASS objects

    It's invalid to set an allocator on a T_ICLASS or T_MODULE, as those use
    the other fields from the union.

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

commit e01e89f55c82be8db5d8ccbf305ee38e3769e582
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-23 08:07:22 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-24 02:22:24 +0900

    Avoid calling RCLASS_SUPER in rb_class_superclass

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

commit 11ad7f5f47b4e4919bcf7a03338a62ef5b5396cc
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-21 05:10:41 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-24 02:22:24 +0900

    Don't use namespaced classext for superclasses

    Superclasses can't be modified by user code, so do not need namespace
    indirection. For example Object.superclass is always BasicObject, no
    matter what modules are included onto it.

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

commit 1435ea7f44f3d781a03054b4055a1ad2f90dd392
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-23 23:08:51 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-24 00:33:17 +0900

    Add missing lock for `Module#remove_instance_variable`

    We must take a lock to ensure another ractor isn't reading the ivars
    while we're moving them.

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

commit 52da5f8bbc705e75d89403df281fcf95d30cbe15
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-23 22:55:38 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-24 00:33:17 +0900

    Refactor `rb_shape_transition_remove_ivar`

    Move the fields management logic in `rb_ivar_delete`, and keep
    shape managment logic in `rb_shape_transition_remove_ivar`.

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

commit 746d7fef9276c0e018cae24642a87ed486f8e212
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-23 05:43:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-24 00:06:53 +0900

    Fix moving old objects between Ractors

    The FL_PROMOTED flag was not copied when moving objects, causing assertions
    to fail when an old object is moved:

        gc/default/default.c:834: Assertion Failed: RVALUE_AGE_SET:age <= RVALUE_OLD_AGE

    Co-Authored-By: Luke Gruber <luke.gruber@shopify.com>

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

commit 54bed7e2577503705e9dc8308f3541c255c9accb
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-05-23 23:49:08 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-05-23 23:51:14 +0900

    [DOC] ZJIT: `Function::find`: Give advice instead of talking about safety

    Co-Authored-By: Max Bernstein <max.bernstein@shopify.com>

commit 224a02f924967066fc5c784c2f4a75eea52b11b4
  Author:     Ufuk Kayserilioglu <ufuk.kayserilioglu@shopify.com>
  AuthorDate: 2025-05-22 22:32:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-23 23:22:47 +0900

    [ruby/prism] Monomorphise visitor methods

    The current implementation of the visitor pattern in Prism uses
    a single method (`visit_child_nodes`) to handle all node types. This can lead to performance issues since the `node` argument will end up being polymorphic, and will prevent effective use of inline caches, which in CRuby are monomorphic.

    This commit generates an inlined version of the previous code for each node type, thus making the calls inside visitor methods monomorphic. This should improve performance, especially in cases where the visitor is called frequently.

    https://github.com/ruby/prism/commit/60d324a701

commit 70f8f7c4b11da8e237dc312a76ac49ebe0b66333
  Author:     Daisuke Fujimura (fd0) <booleanlabel@gmail.com>
  AuthorDate: 2025-05-23 20:09:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-23 20:49:19 +0900

    Fix warning on cygwin

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

commit 966fcb77e48328baf28c1d042d8da25ba181f262
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-22 00:32:49 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-23 18:20:35 +0900

    lock vm around `rb_free_generic_ivar`

    Currently, this can be reproduced by:

    r = Ractor.new do
        a = [1, 2, 3]
        a.object_id
        a.dup # this frees the generic ivar for `object_id` on the copied object
        :done
    end
    r.take

    In debug builds, this hits an assertion failure without this fix.

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

commit 627a5ac53b8116d83ad63929c8510cae674f8423
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-23 16:20:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-23 16:20:33 +0900

    Bump fiber scheduler version and add missing documentation. (#13424)

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

commit 64c520fc25278c653cb19cd88633c3f112301e8c
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-05-23 12:22:15 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-05-23 15:03:10 +0900

    skip the test now we couldn't fix

    The following error is reported repeatedly on my riscv64-linux machine, so just skip it.
    I hope someone investigate it.

    ```
      1) Error:
    TestStruct::SubStruct#test_named_structs_are_not_rooted:
    Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_no_memory_leak expired timeout (10 sec)
    pid 1113858 killed by SIGTERM (signal 15)
    | ruby 3.5.0dev (2025-05-22T21:05:12Z master 9583b7af8f) +PRISM [riscv64-linux]
    |
    | [7;1m1096282:1747967727.622:d70f:[mSTART={peak:453828608,size:453763072,lck:0,pin:0,hwm:9601024,rss:9601024,data:445943808,stk:135168,exe:4096,lib:7450624,pte:77824,swap:0}
    | [7;1m1096282:1747967727.622:d70f:[mFINAL={peak:457502720,size:457498624,lck:0,pin:0,hwm:13312000,rss:13312000,data:449679360,stk:135168,exe:4096,lib:7450624,pte:86016,swap:0}
    ```

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

commit 73c9d6ccaa2045a011ed991dc29633bd0443971a
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-23 14:55:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-23 14:55:05 +0900

    Allow `IO#close` to interrupt IO operations on fibers using `fiber_interrupt` hook. (#12839)

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

commit e32054736fcdb2a7729dc770ec0c7ad6a4654135
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-23 08:07:21 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-23 14:12:42 +0900

    Remove assertion on field in `class_duplicate_iclass_classext`

    `ext` is newly allocated so it shouldn't need an assertion. The class
    ext (which is always from the module) that we're passing to
    `class_duplicate_iclass_classext` could legitimately have instance
    variables on it.  We just want to avoid copying them.

    The assertion was making this crash:

    ```
    $ RUBY_NAMESPACE=1 ./miniruby -e1
    ```

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

commit 9583b7af8f4934397913e2197a1c40e91c1d853e
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-23 04:59:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-23 06:05:12 +0900

    ZJIT: Parse newhash into HIR

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

commit f1fe3d809f842dec741cd88f256c1ddbb0fdd240
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-23 04:47:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-23 06:05:12 +0900

    ZJIT: Parse duphash into HIR

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

commit 5a3f3f0917e92d2f6da8e7d31e618262714f6667
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-23 03:51:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-23 03:51:05 +0900

    ZJIT: Parse getinstancevariable, setinstancevariable into HIR (#13413)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit d96e9bd03a861e3cd7f46ae50e14ddf944a07288
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-05-23 01:18:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-23 01:18:46 +0900

    [DOC] Set canonical root for online docs (#13410)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit b080aabb22d01f625d940fce9c75cd35948bddee
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-22 02:34:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-22 23:17:46 +0900

    Update string.rb

    Co-authored-by: Peter Zhu <peter@peterzhu.ca>

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

commit 3403055d137e5ad14d72904148cf385848bd5dcc
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-17 03:45:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-22 23:17:46 +0900

    [DOC] Tweaks for String#byteindex

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

commit f18883b2954ef327eef59dec356391c2541e5dcd
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-22 18:21:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-22 19:10:10 +0900

    Namespaces: Don't initialize fields for T_ICLASS

    ICLASS don't have instance variables or anything like that.

    `gc_mark_classext_iclass` didn't mark it, and `classext_iclass_free`
    wasn't freeing it.

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

commit ec41b1e8231ed9fff207f273d65d7c357151b1d6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-22 11:28:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-22 13:08:39 +0900

    Fix for old mingw without `clock_gettime` and `clock_getres`

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

commit 056497319658cbefe22351c6ec5c9fa6e4df72bd
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-05-22 11:00:12 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-05-22 12:25:55 +0900

    [Bug #21357] Fix crash in Hash#merge with block

    Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
    the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
    was a hash value (i.e. a VALUE). After that commit it changed to an
    `update_call_args`.

    If the block sets or changes the value, `tbl_update_modify` will set the
    `arg.value` back to an actual value and we won't crash. But in the case
    where the block returns the original value we end up calling
    `RB_OBJ_WRITTEN` with the `update_call_args` which is not expected and
    may crash.

    `arg.value` appears to only be used to pass to `RB_OBJ_WRITTEN` (others
    who need the `update_call_args` get it from `arg.arg`), so I don't think
    it needs to be set to anything upfront. And `tbl_update_modify` will set
    the `arg.value` in the cases we need the write barrier.

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

commit 7154b4208be5fbc314ba2aac765c6f1530e2ada6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-22 10:55:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-22 10:55:19 +0900

    Fix a -Wmaybe-uninitialized

    lev in rb_gc_vm_lock() is uninitialized in single ractor mode.

commit 6a16c3e26d8323e8179801fa77d8d2541cc8a261
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-22 08:42:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-22 09:23:18 +0900

    Remove too_complex GC assertion

    Classes from the default namespace are not writable, however they do not
    transition to too_complex until they have been written to inside a user
    namespace. So this assertion is invalid (as is the previous location it
    was) but it doesn't seem to provide us much value.

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

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

commit 7b10660974dcdd7882a48a62cfc2a32c4a17aa85
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-21 09:28:30 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-22 04:23:14 +0900

    Use rb_inspect for Ractor error

    Previously the object was used directly, which calls `to_s` if defined.
    We should use rb_inspect to get a value suitable for display to the
    programmer.

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

commit ef935705cfb1b4493b8b8cf112e435b554b3138a
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-20 01:58:14 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-22 02:27:14 +0900

    Use shape_id for determining "too complex"

    Using `rb_shape_obj_too_complex_p` looks up the shape, but we already
    have the shape id. This avoids looking up the shape twice.

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

commit 6df6aaa036310a499d293e76fe8da2e3093ecdbc
  Author:     Aaron Patterson <aaron.patterson@gmail.com>
  AuthorDate: 2025-05-21 09:42:16 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-22 01:51:32 +0900

    Update class.c

    Co-authored-by: Satoshi Tagomori <tagomoris@gmail.com>

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

commit 6ea893f37688bafaa8145474ce754a74af5a850a
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-21 02:15:22 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-22 01:51:32 +0900

    Add assertion for RCLASS_SET_PRIME_CLASSEXT_WRITABLE

    When classes are booted, they should all be writeable unless namespaces
    are enabled.  This commit adds an assertion to ensure that classes are
    writable.

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

commit 511b6bcb53aec8c429d00628e7d2ba286671a4fc
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-21 04:36:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-22 00:27:02 +0900

    Reenable MMTk tests

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

commit ac23fa09029a2db4045b03b377133f770cb25327
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-21 04:34:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-22 00:27:02 +0900

    Use rb_id_table_foreach_values for mark_cc_tbl

    We don't need the key, so we can improve performance by only iterating
    on the value.

    This will also fix the MMTk build because looking up the key in
    rb_id_table_foreach requires locking the VM, which is not supported in
    the MMTk worker threads.

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

commit b4c900debdc4d757d42d6eee5d72b911db45ff45
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-21 23:20:38 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-22 00:23:19 +0900

    ZJIT: More type level docs in zjit::hir [DOC]

    Given `InsnId` is at the top of the file and everywhere, hopefully this
    will help first time readers.

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

commit 3487117e55f09e710cdf338ce5b87607b0b51d6d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-21 23:10:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-21 23:35:36 +0900

    [ruby/mmtk] Fix object ID in rb_gc_impl_define_finalizer

    The 0th element of the finalizer table array should be the object ID.

    https://github.com/ruby/mmtk/commit/75e4a82652

commit 8f50bb7c24a7df0d0cb92c1b2fedf027bf926d13
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-21 21:33:20 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-21 22:48:20 +0900

    JITs: Add back MACOSX_DEPLOYMENT_TARGET=11.0 setting to avoid warning

    See: 41251fdd309d4ff8f699268e33c32a114257211e

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

commit 9a41d76b830d1f1feed46e0c3c8640a413f0e94e
  Author:     Richard Böhme <richard.boehme1999@gmail.com>
  AuthorDate: 2025-05-21 18:14:28 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-21 22:12:34 +0900

    Fix one-by-one error of numbered parameter ID

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

commit 081a44f586b19e66be5a22d2f7d29b34de453efb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-21 16:34:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-21 17:11:15 +0900

    Disabled TRAP cache of CodeQL again

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

commit 0964593e5d7cee2f6a72911813dc72a6152f4ec9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-21 15:41:13 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-21 16:29:27 +0900

    Shrink `sym_proc_cache` by half

    There is no need to store the symbol and the proc given the
    proc has a reference to the symbol.

    This makes the cache half as small, now fitting in an object
    slot, but also make it easier to allow that cache to be
    used by ractors, assuming we'd make `Symbol#to_proc`
    return a shareable proc.

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

commit c980cab1552e2319ef40020a06a09dd7a0582ed0
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-05-20 05:40:24 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-21 16:08:42 +0900

    [DOC] Add bundled gem doc links

    - rake
    - reline
    - logger
    - csv
    - rexml
    - racc

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

commit df66d2befb3525c890b6a0ad0e1ef1f6dedd9a05
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-21 16:03:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-21 16:03:43 +0900

    Update bundled gems list as of 2025-05-21

commit f6cbf499bc98b851034fffb49fcbb59d495f6f7b
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-20 22:41:57 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-21 15:12:18 +0900

    Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe

    In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe
    to add to this array without a lock and also it leaks procs from one
    ractor to another. Instead, we create a new proc each time. If this
    results in poor performance we can come up with a solution later.

    Fixes [Bug #21354]

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

commit 97e774b95d5233f801666f873c27de64684b0cf0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-21 09:37:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-21 11:33:33 +0900

    [rubygems/rubygems] Bump up to rack-3.1.15 that is removed dependency of CGI::Cookie

    https://github.com/rubygems/rubygems/commit/cecc280f61

commit 3ac239f7904816a61137524140306123e53c18dd
  Author:     Nathan Ladd <nathanladd@gmail.com>
  AuthorDate: 2025-04-24 01:26:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-21 11:33:32 +0900

    [rubygems/rubygems] Copy prerelease attribute to dependency resolver sets

    https://github.com/rubygems/rubygems/commit/5956e7f8e5

commit 27b0638386de460fde4a9fc3adb35400994aa2fa
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-21 02:03:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-21 11:30:33 +0900

    [ruby/mmtk] Fix object ID for finalizers

    We should get the object ID for finalizers in rb_gc_impl_define_finalizer
    instead of when we create the finalizer job in make_final_job because
    when we are in multi-Ractor mode, object ID needs to walk the references
    which allocates an identity hash table. We cannot allocate in make_final_job
    because it is in a MMTk worker thread.

    https://github.com/ruby/mmtk/commit/922f22a690

commit 1c66124273ec37e1c359fc327ab25be99a6f7fa9
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-21 08:37:51 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-21 10:04:37 +0900

    Make Addrinfo objects Ractor shareable

    Allow Addrinfo objects to be shared among Ractors.  Addrinfo objects are
    already immutable, so I think it's safe for us to tag them as
    RUBY_TYPED_FROZEN_SHAREABLE shareable too.

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

commit b08e20d34afb1cb99eeb97b4b7330290556511d3
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-21 07:41:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-21 07:41:37 +0900

    ZJIT: Allow DCE to remove some CCalls (#13363)

    Allow DCE to remove some CCalls

    Add `elidable` field that signals that there would be no discernible
    effect if the call to the method were removed. The default is false.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit b043abc048e74d5f3fdca37395457e6f24abbe55
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-20 22:56:42 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-21 01:57:23 +0900

    Only define RVALUE_OVERHEAD if undefined

    This allows RVALUE_OVERHEAD to be defined elsewhere.

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

commit 84bfcaa80dcbc05b79a386d444d7ed353768ef6d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-15 13:40:16 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-21 01:56:31 +0900

    Add two more TSan suppressions

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

commit e7f97eb2f3539ec49c61e4adbfaa7600256ef234
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-15 11:59:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-21 01:56:31 +0900

    Use atomic load for signal buff size

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

commit 05e0e7223acbc9ab223dd8f4b342d5eb6d3ae8c7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-15 10:28:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-21 01:56:31 +0900

    Use atomic load to read interrupt mask

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

commit cd15cc250fa7dc6482833327728eeff641d2e41d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-20 18:42:45 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-21 01:22:55 +0900

    ZJIT: Run `make zjit-test` under combo build with YJIT

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

commit 1fed568e3eac842831187f40f3325957f7195b05
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-20 18:40:35 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-21 01:22:55 +0900

    ZJIT: Add --allow-multiple-definition for make zjit-test

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

commit 2297afda7ff3926c51fea700dfbf0f0eb4fea1e5
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-21 00:58:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-21 00:58:32 +0900

    Include stdbool.h without checking with autoconf

    As reported in <https://bugs.ruby-lang.org/issues/21340>, older autoconf
    have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
    fixed the macro, but also mentions that it's obsolescent since all
    current compilers have this header.

    Since we require C99 [1] and VS 2015 [2], we might actually be able take
    that suggestion and include stdbool.h without a check. I want to try
    this on rubyci.org and will revert if this cause any issues. Not
    touching AC_HEADER_STDBOOL in configure.ac for now.

    [1]: https://bugs.ruby-lang.org/issues/15347
    [2]: https://bugs.ruby-lang.org/issues/19982

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

    Merged-By: XrXr

commit ce5eb2803e91d268365bbf403611de557fb78f51
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-20 17:55:24 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-21 00:35:56 +0900

    YJIT: ZJIT: CI: Smoke test for --[y,z]jit-dump-disasm

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

commit dfc0fe367974aa8416c4d54504e58850314a3296
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-20 17:34:26 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-21 00:35:56 +0900

    Add jit.rs as dependency in Makefile

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

commit bf082a37a9fb1bfd0826e6315c30d023bc79a8d7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-20 22:27:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-20 22:27:51 +0900

    CI: Check if runnable first, before set up directories

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

commit d0a8f6baa71d320e4bdc2420a2a30ef150dfa8e4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-20 22:12:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-20 22:12:58 +0900

    [DOC] Fix call-seq of Dir.glob

    `patterns` may be an array but not the rest argument.

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

commit 8dbff6e402d7a490e6e624256699362bb713986d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-20 20:43:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-20 20:43:58 +0900

    Silence error messages of `cd` to non-existent opt directories

commit a82e7132df71bd99b5d02c0c8a348bc7526a5fbb
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-05-15 02:56:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-20 18:22:41 +0900

    Fix uplevel for `cgi` under bundler

    Since there is `bundled_gems.rb` it is not always one. Fixes the following:
    ```sh
    $ ruby -w -rbundler/inline -e "gemfile {}; require 'cgi'"
    /home/earlopain/.rbenv/versions/ruby-dev/lib/ruby/3.5.0+0/bundled_gems.rb:59: warning: CGI library is removed from Ruby 3.5. Please use cgi/escape instead for CGI.escape and CGI.unescape features.
    If you need to use the full features of CGI library, Please install cgi gem.
    ```

    into:

    ```sh
    $ ruby -w -rbundler/inline -e "gemfile {}; require 'cgi'"
    -e:1: warning: CGI library is removed from Ruby 3.5. Please use cgi/escape instead for CGI.escape and CGI.unescape features.
    If you need to use the full features of CGI library, Please install cgi gem.
    ```

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

commit bfe89c7a904612fc40f5a21d8991d298decbe2e1
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-20 16:03:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-20 16:03:43 +0900

    Update bundled gems list as of 2025-05-19

commit edff523407ac54b09a95a946c927656262595178
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-05-19 23:44:57 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-20 15:51:42 +0900

    [DOC] Describe new return value of source_location

    Proc#source_location, Method#source_location and
    UnboundMethod#source_location carry more information since
    073c4e1cc712064e626914fa4a5a8061f903a637.

    https://bugs.ruby-lang.org/issues/6012
    https://github.com/ruby/ruby/pull/12539

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

commit c52f4eea564058a8a9865ccc8b2aa6de0c04d156
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-28 03:21:50 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-05-20 13:34:31 +0900

    Remove SortedSet autoload and set/sorted_set

    Implements [Feature #21287]

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

commit a7ef9a44a6e072bf3b72f2071195da661ddde8d1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-20 02:34:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-20 02:34:29 +0900

    ZJIT: Propagate disasm feature to ZJIT and YJIT (#13372)

    Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 93ce95d46c7db7053c4f598445e953e11002e593
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-19 22:49:22 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-19 22:49:22 +0900

    [DOC] Fix indentation

    RDoc markdown parser requires exact 4 spaces or tab as indentation.

commit 22c1201bba8098e851e7b42255d5a007f82ba1f9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-19 22:47:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-19 22:47:07 +0900

    [DOC] Fold long lines

commit d84f20319ca49533ebd452df54aa7f6df2b71674
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-19 22:41:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-19 22:41:56 +0900

    [DOC] Escape dot in regexp

commit 83d636f2d01f6bc1fd044a6f6c3071303b68dd82
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-19 22:05:06 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-19 22:06:08 +0900

    Free shapes last

    [Bug #21352]

    `rb_objspace_free_objects` may need to check objects shapes
    to know how to free them.

commit 40c957ba2153bc60aec95924b56dca9bf52c77ee
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-05-19 13:27:50 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-05-19 13:27:50 +0900

    Fix a typo and capitalize a character

commit 47595509670096e244d59a51d6574e19b2ea5601
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-18 04:02:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [ruby/json] Remove some unnecessary top level constant lookups

    https://github.com/ruby/json/commit/7c03ffc3e0

commit e4a44b1f2a62a48ab766afdb7607c4fc829d781c
  Author:     GrantBirki <grant.birkinbine@gmail.com>
  AuthorDate: 2025-05-18 03:37:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [ruby/json] remove redundant `self.`

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

commit 9b25023fe485b00137d26877e793c6b2dcbdac6f
  Author:     GrantBirki <grant.birkinbine@gmail.com>
  AuthorDate: 2025-05-18 03:35:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [ruby/json] use `.` over `::` for consistency

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

commit dc69bebde7bfa2d0ee19178683f0c4dc22e080d5
  Author:     Grant Birkinbine <grant.birkinbine@gmail.com>
  AuthorDate: 2025-05-18 02:30:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [ruby/json] Update json_encoding_test.rb

    https://github.com/ruby/json/commit/0ac54a8161

commit 3468811ed1dc3d907bd837f1639d587afd4ca3ae
  Author:     Cody Horton <cody.horton@amd.com>
  AuthorDate: 2025-05-16 23:58:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [ruby/json] fix for pretty_generate throwing wrong number of arguments error

    https://github.com/ruby/json/commit/8433571dcf

commit 57e4176649f056966d860505694570d23200b44a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-17 02:51:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    [rubygems/rubygems] Fix test warnings introduced by recent CGI changes

    They read like this:

    ```
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date
    /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:225: warning: previous definition of rfc1123_date was here
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:34: warning: method redefined; discarding old pretty
    /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:246: warning: previous definition of pretty was here
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:16: warning: method redefined; discarding old escape
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:29: warning: method redefined; discarding old unescape
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date
    /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:225: warning: previous definition of rfc1123_date was here
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:34: warning: method redefined; discarding old pretty
    /opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3.4.0/cgi/util.rb:246: warning: previous definition of pretty was here
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:16: warning: method redefined; discarding old escape
    /home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/escape.rb:29: warning: method redefined; discarding old unescape
    ```

    The problem is that `rspec` loads `erb` for its configuration, which
    loads `cgi/util` from system gems.

    Then our tests change the `$LOAD_PATH` to make test gems installed in
    tmp visible to `require`, and then they all require `cgi` as a
    transitive dependency of `rack-test`, this time from `tmp` gems. This
    causes system and test specific copies to be mixed together and these
    warnings to be printed, but we have also observed failures in some tests
    with errors like

    > class variable @@accept_charset of CGI::Util is overtaken by CGI::Escape

    This changes should also fix those failures.

    The fix is to require all of `rack-test` (including `cgi`) before we
    have changed the `$LOAD_PATH`. Because the `$LOAD_PATH` is unchanged,
    RubyGems respects the version of `cgi` activated by RSpec, avoiding the
    double loads.

    https://github.com/rubygems/rubygems/commit/34e75465c6

commit 0f867d97ab96fd663f8bd0627276bf93119d892e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-17 02:49:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:19:17 +0900

    Rename a couple of spec files

    Generally are "realworld" specs are the ones using VCR cassettes of real
    requests. These files don't use that, so I moved them to a different
    place.

commit 6e8be3a63438e2686a9c1dccc4c469aa7dbf0b08
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-13 19:54:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:33 +0900

    [rubygems/rubygems] Test JRuby 10

    Necessary changes to get tests passing are:

    * Rewrite one "out of memory" error spec to not define a subclass inside
      a RSpec context block. Due to some [JRuby issue], that's failing in
      JRuby 10, so I rewrote the test so that the Bundler process really
      goes OOM and that class definition is not necessary.
    * JRuby 10, even if Ruby 3.4-compatible, has not yet adapted backtraces
      to include receivers, so our tests need an special case for JRuby when
      detecting a test method call inside backtraces.
    * Warbler test is upgraded to use JRuby 10. Getting it to pass needs [a
      PR] to warbler, so our test is temporarily pointing to that PR.

    [JRuby issue]: https://github.com/jruby/jruby/issues/8838
    [a PR]: https://github.com/jruby/warbler/pull/557

    https://github.com/rubygems/rubygems/commit/edec85d4c3

commit bfab76abe62a258c96ed4eba366384d2fb5099a1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-13 21:56:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:31 +0900

    [rubygems/rubygems] Normalize platforms in warbler lockfile

    https://github.com/rubygems/rubygems/commit/c7c50343bb

commit 0dfe427cbaf6bd207ac2922496daae31fcfd3b9a
  Author:     Vít Ondruch <vondruch@redhat.com>
  AuthorDate: 2025-05-15 19:59:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:31 +0900

    [rubygems/rubygems] Fix typo "shippped" => "shipped"

    https://github.com/rubygems/rubygems/commit/1762d18d7b

commit aea603615fedf6289ae5e841d32a63ab3f433a91
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-08 21:33:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:30 +0900

    [rubygems/rubygems] Missing tweak

    https://github.com/rubygems/rubygems/commit/407c1cbcfe

commit 4be199e435da2c0e814e570f1b638b2f08ee2527
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-04-17 10:54:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:29 +0900

    [rubygems/rubygems] Simplify Gem::Platform#initialize

    Based on PR feedback

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/562d7aa087

commit 8f61e1755616f40192e7bff566709759b893e5fa
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-03-25 11:47:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:29 +0900

    [rubygems/rubygems] RuboCop

    Signed-off-by: Samuel Giddins <segiddins@segiddins.me>

    https://github.com/rubygems/rubygems/commit/768784910b

commit eb48418b4024c6a19725598ce088918c6392b69f
  Author:     Samuel Giddins <segiddins@segiddins.me>
  AuthorDate: 2025-03-25 02:48:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 11:15:28 +0900

    [rubygems/rubygems] Ensure that Gem::Platform parses strings to a fix point

    The issue was that the property that

    ```ruby
    platform = Gem::Platform.new $string
    platform == Gem::Platform.new(platform.to_s)
    ```

    was not always true.

    This property (of acchieving a fix point) is important,
    since `Gem::Platform` gets serialized to a string and
    then deserialized back to a `Gem::Platform` object.
    If it doesn't deserialize to the same object, then
    different platforms are used for the initial serialization
    than subsequent runs.

    I used https://github.com/segiddins/Scratch/blob/main/2025/03/rubygems-platform.rb
    to find the failing cases and then fixed them.
    With this patch, the prop check test now passes.

    https://github.com/rubygems/rubygems/commit/313fb4bcec

commit 72387ebd0e9520f0730bc959e2dff14d045c5d83
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-19 09:46:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-19 09:46:03 +0900

    Fix typos: misspell -w -error -source=text namespace.c

commit aa0f689bf45352c4a592e7f1a044912c40435266
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-02-03 23:54:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-17 09:42:12 +0900

    [ruby/net-http] Freeze some constants to improve Ractor compatibility

    Freeze `Net::HTTP::SSL_IVNAMES`, `Net::HTTPResponse::CODE_CLASS_TO_OBJ`
    and `Net::HTTPResponse::CODE_TO_OBJ` to improve Ractor compatibility.

    This change allows the following code to work:

        Ractor.new {
          uri = URI.parse('http://example.com')
          http = Net::HTTP.new(uri.host, uri.port)
          http.open_timeout = nil
          http.read_timeout = nil
          http.get('/index.html')
        }

    https://github.com/ruby/net-http/commit/9f0f5e4b4d

commit 22c09135a8c459dd09f4fb9a6e9124d4a149083b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-16 23:08:21 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-17 03:16:52 +0900

    rb_copy_generic_ivar: reset shape_id when no ivar are present

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

commit 1e33a451bbbec1ffa15fc3032a0bdd74bd9b41ff
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-16 22:37:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-17 03:16:52 +0900

    gc: Execute run_final with the lock held

    The finalizer table can't be read nor modified without the VM lock.

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

commit ec8900e3eb7f0008a635fb6fbabde3eb7802536b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 21:04:36 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-17 03:16:52 +0900

    rb_gc_impl_copy_finalizer: generate a new object id

    Fix a regression introduced by: https://github.com/ruby/ruby/pull/13155

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

commit a29442701785463d0febf5b8cf217246e927bfae
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 20:43:44 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-17 03:16:52 +0900

    Add missing lock to `rb_gc_impl_copy_finalizer`

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

commit d9248856d2289d15ccdf196132711ab2c07e71c9
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-17 02:50:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-17 02:50:48 +0900

    ZJIT: Create more ergonomic type profiling API (#13339)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit eead83160bcc5f49706e05669e5a7e2620b9b605
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-05-17 02:31:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-17 02:31:43 +0900

    Prevent enabling yjit when zjit enabled (GH-13358)

    `ruby --yjit --zjit` already warns and exits, but it was still possible
    to enable both with `ruby --zjit -e 'RubyVM:YJIT.enable`.

    This commit prevents that with a warning and an early return. (We could
    also exit, but that seems a bit unfriendly once we're already running
    the program.)

    Co-authored-by: ywenc <ywenc@github.com>

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

    Merged-By: XrXr

commit cc90adb68d8457a5c79af6cb732906a882438092
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-17 01:50:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-17 01:50:55 +0900

    [DOC] Tweaks for String#append_as_bytes

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

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

commit a1882496163770cf92b188ebaf75365fe5731b2d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-16 04:58:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-17 01:47:17 +0900

    [DOC] Tweaks for String#b

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

commit 1f09c9fa14b252928aaaee65c21b325f7a3d88cc
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-16 04:51:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-17 01:46:56 +0900

    [DOC] Tweaks for String#ascii_only?

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

commit c5c252c067a3ed39fa9fcf0e84e072e1f5b17291
  Author:     Nick Dower <nicholasdower@gmail.com>
  AuthorDate: 2025-05-16 22:44:45 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-17 00:17:21 +0900

    Add a test case for `it` in a regex.

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

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

commit 4921845b61c6a1b539dd8a65fb265024b8e40523
  Author:     Nick Dower <nicholasdower@gmail.com>
  AuthorDate: 2025-05-16 12:18:28 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-17 00:17:21 +0900

    [Bug #21313] Handle `it` in rescue and ensure blocks.

    The following is crashing for me:

    ```shell
    ruby --yjit --yjit-call-threshold=1 -e '1.tap { raise rescue p it }'

    ruby: YJIT has panicked. More info to follow...
    thread '<unnamed>' panicked at ./yjit/src/codegen.rs:2402:14:
    ...
    ```

    It seems `it` sometimes points to the wrong value:

    ```shell
    ruby -e '1.tap { raise rescue p it }'
    false

    ruby -e '1.tap { begin; raise; ensure; p it; end } rescue nil'
    false
    ```

    But only when `$!` is set:

    ```shell
    ruby -e '1.tap { begin; nil; ensure; p it; end }'
    1

    ruby -e '1.tap { begin; nil; rescue; ensure; p it; end }'
    1

    ruby -e '1.tap { begin; raise; rescue; ensure; p it; end }'
    1
    ```

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

commit 097d742a1ed53afb91e83aef01365d68b763357b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-16 20:45:18 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-16 21:22:33 +0900

    [Bug #20009] Support marshaling non-ASCII name class/module

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

commit 5e01c0e4e2cf0130989b0a4cfc975645fb782324
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-16 05:30:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-16 21:08:01 +0900

    ZJIT: Remove unnecessary cloning

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

commit 9cec38c1605131068a9700c8e6125284d686a3e8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-16 20:04:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-16 20:04:34 +0900

    "binary" is not valid encoding name in Emacs

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

commit a0fe0095ab2711ba54b29cdd2a5957f993cfc1de
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-16 14:14:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-16 14:14:23 +0900

    Don't enumerate `io->blocking_operations` if fork generation is different. (#13359)

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

commit 35000ac2ed3a1829f8d193ffb23da0e44cc6fe5f
  Author:     Hiroya Fujinami <make.just.on@gmail.com>
  AuthorDate: 2025-05-16 10:14:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-16 10:14:26 +0900

    Prevent double free for too big repetition quantifiers (#13332)

    Prevent double free for too big repetition quantifiers

    The previous implementation calls `free(node)` twice (on parsing and compiling a
    regexp) when it has an error, so it leads to a double-free issue. This
    commit enforces `free(node)` once by introducing a temporal pointer to hold
    parsing nodes.

  Notes:
    Merged-By: makenowjust <make.just.on@gmail.com>

commit 6b10d40157b5287cd13169437800343165eae949
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-16 05:55:38 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-16 07:31:02 +0900

    ZJIT: Bail out of recursive compilation if we can't compile callee

    Right now we just crash if we can't compile an ISEQ for any reason
    (unimplemented in HIR, unimplemented in codegen, ...) and this fixes
    that by bailing out.

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

commit d67d169aeae8b05f8b06f4829de6d5f14059cfea
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-14 14:36:09 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-16 07:18:10 +0900

    Use atomics for system_working global

    Although it almost certainly works in this case, volatile is best not
    used for multi-threaded code. Using atomics instead avoids warnings from
    TSan.

    This also simplifies some logic, as system_working was previously only
    ever assigned to 1, so --system_working <= 0 should always return true
    (unless it underflowed).

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

commit d845da05e83a2c2929ef8d4fd829804d44f292d3
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2024-11-15 08:21:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-16 06:44:26 +0900

    Force reset running time in timer interrupt

    Co-authored-by: Ivo Anjo <ivo.anjo@datadoghq.com>
    Co-authored-by: Luke Gruber <luke.gru@gmail.com>

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

commit 55c9c75b4788f6411bfa14f0e7d462d06850f60d
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-02 04:13:31 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-16 06:19:48 +0900

    Maintain same behavior regardless of tracepoint state

    Always use opt_new behavior regardless of tracepoint state.

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

commit 04f538c1441e65def90d5b4224010e7d4f4ffab3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-15 04:19:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-16 03:13:53 +0900

    Remove dependency on sanitizers.h in default.c when BUILDING_MODULAR_GC

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

commit 06a56a7ffcb053d5bc45b9a984082d9301d6819c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-20 16:22:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-16 01:51:15 +0900

    [ruby/openssl] ssl: fix potential memory leak in SSLContext#setup

    If SSL_CTX_add_extra_chain_cert() fails, the refcount of x509 must be
    handled by the caller. This should only occur due to a malloc failure
    inside the function.

    https://github.com/ruby/openssl/commit/80bcf727dc

commit b43c7cf8c41e86f4ecefbd605bef17625c69ed1a
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-05-14 02:09:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-16 01:50:25 +0900

    [ruby/openssl] cipher: remove Cipher#encrypt(password, iv) form

    OpenSSL::Cipher#encrypt and #decrypt have long supported a hidden
    feature to derive a key and an IV from the String argument, but in an
    inappropriate way.

    This feature is undocumented, untested, and has been deprecated since
    commit https://github.com/ruby/ruby/commit/0dc43217b189 on 2004-06-30,
    which started printing a non-verbose warning. More than 20 years later,
    it must be safe to remove it entirely.

    The deprecated usage:

            # `password` is a String, `iv` is either a String or nil
            cipher = OpenSSL::Cipher.new("aes-256-cbc")
            cipher.encrypt(password, iv)
            p cipher.update("data") << cipher.final

    was equivalent to:

            cipher = OpenSSL::Cipher.new("aes-256-cbc")
            cipher.encrypt

            iv ||= "OpenSSL for Ruby rulez!"
            key = ((cipher.key_len + 15) / 16).times.inject([""]) { |ary, _|
              ary << OpenSSL::Digest.digest("MD5", ary.last + password + iv[0, 8].ljust(8, "\0"))
            }.join
            cipher.key = key[...cipher.key_len]
            cipher.iv = iv[...cipher.iv_len].ljust(cipher.iv_len, "\0")
            p cipher.update("data") << cipher.final

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

commit 0b9644c252483d2d677ee05b487369f5462e5693
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-05-15 09:50:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-16 01:40:42 +0900

    [ruby/openssl] AWS-LC has support for parsing ber constructed strings now

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

commit b2ab1b04094b74ebdbd16cb78a81cc71f019100f
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-16 00:21:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-16 00:21:46 +0900

    Update bundled gems list as of 2025-05-15

commit 4fc5047af8fe1ae2c70bf308378516b78c9bb084
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-16 00:18:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-16 00:18:49 +0900

    [DOC] Tweaks for String#=~ (#13325)

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

commit c3eb40687632f52a181dde646cf186eb2c902c7e
  Author:     Kazuki Tsujimoto <kazuki@callcc.net>
  AuthorDate: 2025-05-16 00:05:42 +0900
  Commit:     Kazuki Tsujimoto <kazuki@callcc.net>
  CommitDate: 2025-05-16 00:05:42 +0900

    Update power_assert for `opt_new`

    https://bugs.ruby-lang.org/issues/21298#note-5

commit 31ba8816846c9dfec47e7bfe1752118b44400b05
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 18:31:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 23:29:45 +0900

    Disable GC when building id2ref table

    Building that table will likely malloc several time which
    can trigger GC and cause race condition by freeing objects
    that were just added to the table.

    Disabling GC to prevent the race condition isn't elegant,
    but iven this is a deprecated callpath that is executed at
    most once per process, it seems acceptable.

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

commit 60ffb714d251878753ebf66e68149311c728cac6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 19:14:53 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 23:06:52 +0900

    Ensure shape_id is never used on T_IMEMO

    It doesn't make sense to set ivars or anything shape
    related on a T_IMEMO.

    Co-Authored-By: John Hawthorn <john@hawthorn.email>

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

commit ed632cd0bacc710b03809c903a978d3fa2cfedfe
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 20:00:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 20:32:08 +0900

    Add missing lock in `rb_gc_impl_undefine_finalizer`

    The table is global so accesses must be synchronized.

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

commit 3d1b8e7298957711998bfb2e8cce09bcc17e4d46
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 19:29:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 20:26:26 +0900

    newobj_fill: don't assume RBasic size

    The previous implementation assumed `RBasic` size is `2 * sizeof(VALUE)`,
    might as well not make assumption and use a proper `sizeof`.

    Co-Authored-By: John Hawthorn <john@hawthorn.email>

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

commit 186e60cb68fe8e49455cffc1955637cabd270c81
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 04:46:13 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 18:56:24 +0900

    YJIT: handle opt_aset_with

    ```
     # frozen_string_ltieral: true
    hash["literal"] = value
    ```

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

commit 427ede2dde522327b4e3e6d18866b6cfe4423eb4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-15 17:25:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-15 17:25:56 +0900

    CI: Fix revision.h on Windows

    - Quote % inside `if` block
    - Use short branch name

commit 87261c2d95f93f8738557cfb6f93ed14f1b483dd
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-15 15:50:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-15 15:50:15 +0900

    Ensure that forked process do not see invalid blocking operations. (#13343)

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

commit 49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-15 03:13:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-15 15:39:15 +0900

    [Bug #21333] Prohibit hash modification inside Hash#update block

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

commit a5da3682ef45fbfc54621ab90506bc94dd7baf97
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-13 18:56:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-15 15:08:43 +0900

    CI: Refine setup on Windows

    Get rid of hardcoded paths

commit a4ce8639d95838e55208a2cf348e3ba0099b41b8
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-15 13:43:26 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-05-15 14:51:02 +0900

    Add `continue-on-error` to failed Windows 2025 build.

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

commit 7afee53fa068918a03d5b7465a53c5552234a782
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-15 04:24:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-15 04:24:30 +0900

    [DOC] Tweaks for String#<< (#13306)

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

commit 10e8119cff10cc9b74cd9d69f9dbab6d61702211
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-15 04:24:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-15 04:24:19 +0900

    [DOC] Tweaks for String#== (#13323)

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

commit 76ec41bf3d48c6bb853fb777a252c02c20ce151e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-15 01:21:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-15 04:01:32 +0900

    Bump ABI_VERSION

    `struct RTypedData` was changed significantly in https://github.com/ruby/ruby/pull/13190
    which breaks many extensions.

    Bumping the ABI version might save some people from needlessly
    investigating crashes.

commit b00a33960310f6ce8d578258243c2a1df4d6e248
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-15 03:34:09 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-15 03:34:09 +0900

    [DOC] Tweaks for String#[] (#13335)

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

commit 1f72512b03292e4e2bfe90a3d2c87ac6dd3f0a3d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-14 22:50:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-15 03:33:40 +0900

    [DOC] Tweaks for String#[]=

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

commit 57f8dde0f2228dbc67503403d740a74e26c1eefc
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-15 02:09:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-15 02:10:04 +0900

    [ruby/erb] Version 5.0.1

    https://github.com/ruby/erb/commit/42f389dc45

commit ef0e4406c8ab879da7e4932e5104ce25c80f3b02
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-15 02:06:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-15 02:06:28 +0900

    Revert "Set WASMTIME_BACKTRACE_DETAILS=1 for WASM basictest"

    This reverts commit cb88edf0bfdc2ce6bfbe3b4e0463a4c2dc5d2230.

    It didn't help. You need to go to a different repository (ruby/ruby.wasm)
    to see meaningful backtraces.
    https://github.com/ruby/ruby.wasm/actions/runs/15000135135/job/42144675968#step:16:176

commit 1825ae456783fc0cc6f675abb2f38de9d38f0f13
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-09 23:12:25 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-15 00:39:03 +0900

    ZJIT: Add CI runs for building with YJIT

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

commit 92b218fbc379fe85792eb060b71520e271971335
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-07 00:19:36 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-15 00:39:03 +0900

    YJIT: ZJIT: Allow both JITs in the same build

    This commit allows building YJIT and ZJIT simultaneously, a "combo
    build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
    runtime, though, only one of the two can be enabled at a time.

    Add a root Cargo workspace that contains both the yjit and zjit crate.
    The common Rust build integration mechanisms are factored out into
    defs/jit.mk.

    Combo YJIT+ZJIT dev builds are supported; if either JIT uses
    `--enable-*=dev`, both of them are built in dev mode.

    The combo build requires Cargo, but building one JIT at a time with only
    rustc in release build remains supported.

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

commit b5575a80bc3849651c395d0ae470eb41dc3aa897
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-10 23:18:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 21:41:46 +0900

    Reduce `Object#object_id` contention.

    If the object isn't shareable and already has a object_id
    we can access it without a lock.

    If we need to generate an ID, we may need to lock to find
    the child shape.

    We also generate the next `object_id` using atomics.

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

commit 920dc0fe3aafaf4d70f742abf846d7a2d9c142c4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-14 19:39:40 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-14 20:13:26 +0900

    ZJIT: Split long `use` line and add a module doc.

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

commit 4eff1727e3017f1b05e030bfd0ed9c6674d61e2d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-09 01:17:37 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-14 20:13:26 +0900

    ZJIT: More tests for parsing param forms

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

commit 37d6de533187af09eb6b3b19e727b11b6b603134
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-14 19:18:23 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-14 20:13:26 +0900

    ZJIT: Infer ArrayExact for the rest parameter

    The rest parameter is always a rb_cArray, even when anonymous. (This is
    different from kw_rest, which can be nil.)

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

commit 767e8e165a200cd0fdd7ae8f7830deb26eed11b5
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-08 22:18:09 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-14 20:13:26 +0900

    ZJIT: Fix rest parameter not parsed into a BB parameter

    Use total parameter size instead of lead parameter size when parsing
    iseq into hir. Also, copy over IntoUsize for compile-time checked
    u32->usize cast.

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

commit 074dce8370b480ccf0ef5843347b87af57b31000
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-09 01:19:16 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-14 20:13:26 +0900

    ZJIT: Add IntoUsize, ported from YJIT

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

commit f9c3feccf4229b766f609658da3b8e96c2cdd29c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-14 17:53:04 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 18:41:14 +0900

    Rename `id_to_obj_tbl` -> `id2ref_tbl`

    As well as associated functions, this should make it more obvious
    what the purpose is.

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

commit 94001197028bca3426365ea6f2e6f398ee236a7e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-13 17:28:42 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 17:26:48 +0900

    Fix `object_id` for classes and modules in namespace context

    Given classes and modules have a different set of fields in every
    namespace, we can't store the object_id in fields for them.

    Given that some space was freed in `RClass` we can store it there
    instead.

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

commit 130d6aaef297ec43ed24f413624088f41bc616b3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-13 23:27:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 17:17:03 +0900

    Reclaim one `VALUE` from `rb_classext_t` by shrinking `super_classdepth`

    By making `super_classdepth` `uint16_t`, classes and modules can
    now fit in 160B slots again.

    The downside of course is that before `super_classdepth` was large
    enough we never had to care about overflow, as you couldn't
    realistically create enough classes to ever go over it.

    With this change, while it is stupid, you could realistically
    create an ancestor chain containing 65k classes and modules.

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

commit f855bcc6b27bd2e67babbb082213ab4c9c15f8c9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-13 17:36:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:13:45 +0900

    Applied rake vendor:install

commit cc3d304b471b40f6a3bc1266a35744aa9d4fdbd4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-14 10:23:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:13:45 +0900

    [rubygems/rubygems] Try cgi-0.5.0.beta2

    https://github.com/rubygems/rubygems/commit/5d5e37bf23

commit a89460a8a068315e510275e53ad56f4a45e1d255
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-05-13 19:35:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:13:45 +0900

    [rubygems/rubygems] Reenable skipped specs in truffleruby since they should be fixed

    https://github.com/rubygems/rubygems/commit/a7cbec95c1

commit 52d72979ae64495478e7194ab584ef5285b29b07
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-13 17:36:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:13:45 +0900

    [rubygems/rubygems] Update vendored version and patch for net-http and net-http-persistent

    https://github.com/rubygems/rubygems/commit/b9a4722d5e

commit a7af85a7bd844b54586a867202fc9eb3550df3bf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-14 14:07:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:08:52 +0900

    Use gh cache

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

commit af7413054460c9fe2afb394d163dd4418f84f8bd
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-14 11:48:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:08:52 +0900

    Purge the oldest TRAP cache with gh actions-cache cli

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

commit 3b459b5ab6c2bc6ec30c9d2ab63e4cfb0872d7a7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-14 11:33:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-14 15:08:52 +0900

    Disabled TRAP cache of CodeQL

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

commit 86f5cec7828a49926e49783a545e9d2b2b1e2415
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-14 07:39:39 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-14 12:09:30 +0900

    Add misc/tsan_suppressions.txt

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

commit 7793b59c8d2a13c124fe276e11723db23facce04
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-14 10:37:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-14 10:37:59 +0900

    [Bug #21331] Prohibit hash modification during stlike loop

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

commit 7f5b4fb26ea8c0a736a37101327905eebebee8bf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-14 10:26:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-14 10:26:04 +0900

    Remove unused retval assignments

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

commit b66c5c3b1b31581960bcb69d49b618d69ae2a87f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-14 10:23:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-14 10:23:16 +0900

    Revert "[Bug #21331] Prohibit modification during stlike loop"

    This reverts commit bb180b87b43c45e17ff49735a26d7a188d5c8396, which
    caused "malloc during GC" error on wasm.

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

commit cb88edf0bfdc2ce6bfbe3b4e0463a4c2dc5d2230
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 09:03:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-14 09:05:28 +0900

    Set WASMTIME_BACKTRACE_DETAILS=1 for WASM basictest

    https://github.com/ruby/ruby/actions/runs/15008767265/job/42173424631
    "error while executing at wasm backtrace" doesn't have meaningful
    symbols. We can't debug this from just looking at the "[BUG] Cannot
    malloc during GC" message.

    As suggested by the error message, this commit sets WASMTIME_BACKTRACE_DETAILS=1.
    Let me see if this improves the backtrace.

commit 1d3221ad289af51af8c246904d42a5d0f31e3c2b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 08:52:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 08:54:02 +0900

    [ruby/erb] Give up on using resolve_feature_path

    Apparently `$LOAD_PATH.resolve_feature_path('erb/escape')` returns true
    for miniruby but `require 'erb/escape'` fails on it.

    I still don't want to check it and rescue LoadError at the same time
    because the code looks too complicated. Let me just rescue LoadError for
    platforms that don't build native extensions.

    https://github.com/ruby/erb/commit/3081c6b20f

commit e8e7daa71a4915e3cfcf0dccc8392cdacc55866e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 08:29:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 08:31:02 +0900

    [ruby/erb] Reapply "Refactor the logic of require 'erb/escape'
    (https://github.com/ruby/erb/pull/61)"

    This reverts commit https://github.com/ruby/erb/commit/1c9200aab071.

    Now that we've bumped BASERUBY, we shouldn't need to rescue the
    LoadError.

    https://github.com/ruby/erb/commit/846b20fe0e

commit 2279da2c916038e0118fbdcd02bc145f9c282d6a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 05:39:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-14 05:39:45 +0900

    Bump the required BASERUBY version to 3.1 (#13321)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit b6698114e61208e2711f42a05fdf7b0d4f5e37a3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-14 05:30:50 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 05:30:50 +0900

    Add specs for Set mutation during iteration

commit 1ee4b43a56e9539d3b09c08114c59cb49857b956
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-14 04:39:48 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-14 05:27:42 +0900

    Set#merge: raise if called during iteration

    [Bug #21332]

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

commit 1d4822a175a0dfccca8f252b0e757a1991bd54f9
  Author:     Luke Gruber <luke.gruber@shopify.com>
  AuthorDate: 2025-05-13 07:03:22 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-05-14 05:23:57 +0900

    Get ractor message passing working with > 1 thread sending/receiving values in same ractor

    Rework ractors so that any ractor action (Ractor.receive, Ractor#send, Ractor.yield, Ractor#take,
    Ractor.select) will operate on the thread that called the action. It will put that thread to sleep if
    it's a blocking function and it needs to put it to sleep, and the awakening action (Ractor.yield,
    Ractor#send) will wake up the blocked thread.

    Before this change every blocking ractor action was associated with the ractor struct and its fields.
    If a ractor called Ractor.receive, its wait status was wait_receiving, and when another ractor calls
    r.send on it, it will look for that status in the ractor struct fields and wake it up. The problem was that
    what if 2 threads call blocking ractor actions in the same ractor. Imagine if 1 thread has called Ractor.receive
    and another r.take. Then, when a different ractor calls r.send on it, it doesn't know which ruby thread is associated
    to which ractor action, so what ruby thread should it schedule? This change moves some fields onto the ruby thread
    itself so that ruby threads are the ones that have ractor blocking statuses, and threads are then specifically scheduled
    when unblocked.

    Fixes [#17624]
    Fixes [#21037]

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

commit 2fee379f8f0be08be49c1fccbb37cb2a06834b24
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 05:05:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-14 05:05:45 +0900

    Checkout .github on omnibus result for notifications

    It currently fails like: Can't find 'action.yml'

commit cbaf85cb32144fcf8e55969b8084aadf366ee60c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 03:22:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 03:23:04 +0900

    [ruby/erb] Update the reason why we need to rescue LoadError

    https://github.com/ruby/erb/commit/c2d1f82817

commit c71f9b8aee9b11467e2bb91d841e166f6b36c8af
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 03:18:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 03:23:04 +0900

    [ruby/erb] Revert "Refactor the logic of require 'erb/escape'
    (https://github.com/ruby/erb/pull/61)"

    This reverts commit https://github.com/ruby/erb/commit/1c393aa738f3.

    https://github.com/ruby/erb/commit/1c9200aab0

commit 9db0704e67c8af3b47429e28e1da5e8bc9154d91
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 03:07:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 03:09:08 +0900

    [ruby/erb] Version 5.0.0

    https://github.com/ruby/erb/commit/08b544cdb8

commit 8982bbcbeeb36f9cf0576621898bba27c51dcba2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-14 03:05:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 03:07:17 +0900

    [ruby/erb] Publish constant ERB::VERSION

    Even cgi.gem publicly defines CGI::VERSION today. It's just weird that
    ERB::VERSION is kept private at this point.

    https://github.com/ruby/erb/commit/46801cbd47

commit 4a9d46ce07c5135e6a1fbc7da5ea9b1f21030d94
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-05-14 03:00:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 03:00:07 +0900

    [ruby/erb] Refactor the logic of require 'erb/escape'
    (https://github.com/ruby/erb/pull/61)

    https://github.com/ruby/erb/commit/1c393aa738

commit 735f28388cb8d7b37e67155f4d54cf52f28aa3ad
  Author:     Takashi Kokubun <takashi.kokubun@shopify.com>
  AuthorDate: 2025-05-14 02:50:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 02:50:05 +0900

    [ruby/erb] Support all cgi.gem versions
    (https://github.com/ruby/erb/pull/60)

    https://github.com/ruby/erb/commit/de9bb8c3cc

commit 9420fc8ad6b30c3ff98b116a9bde5cd8cc91c5fa
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-14 02:15:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-14 02:15:16 +0900

    [ruby/stringio] Add a comment to explicit RUBY_FL_USER2 |
    RUBY_FL_USER3
    (https://github.com/ruby/stringio/pull/133)

    This way when someone removes these flags from Ruby or update them,
    they'll find this reference when greping.

    Followup: https://github.com/ruby/stringio/pull/128

    https://github.com/ruby/stringio/commit/fad26ee14b

commit 96b823a2116d26144c960b5aa5fee231fa94e76c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-14 00:30:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-14 02:14:25 +0900

    [DOC] Tweaks for String#<=>

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

commit bb180b87b43c45e17ff49735a26d7a188d5c8396
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-13 22:34:18 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-13 23:16:58 +0900

    [Bug #21331] Prohibit modification during stlike loop

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

commit 1e2a67e1b0d12b193f3d9b367ec6f1743fc70a13
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-13 22:43:52 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-05-13 23:16:21 +0900

    Fix typo in `NEWS.md`.

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

commit 2ca876944382631d399905bb09974f8571ac01c7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-13 21:11:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-13 21:55:39 +0900

    Reclaim one `VALUE` from `rb_classext_t`

    The `includer` field is only used for `T_ICLASS`, so by moving
    it into the existing union we can save one `VALUE` per class
    and module.

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

commit c941fced211c7472d6a61e7469b70282ac506ea6
  Author:     lukeg <luke.gru@gmail.com>
  AuthorDate: 2023-01-22 23:42:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-13 20:18:10 +0900

    Throw RuntimeError if getting/setting ractor local storage for non-main ractor

    [Bug #19367]

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

commit 7517d7629d300122c062ade1cdacee6e33949829
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-05-13 19:28:56 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-05-13 19:28:56 +0900

    [DOC] Fix a link and sort links in NEWS.md

commit 5974841d116e1d6b4a8c93631a5469f33f402590
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-13 19:01:50 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-13 19:02:19 +0900

    Remove outdated references to FL_SEEN_OBJ_ID

commit 425fa0aeb5ced20c03b2d5edb7a409666363ea8f
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-05-13 19:02:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-13 19:02:03 +0900

    Make `waiting_fd` behaviour per-IO. (#13127)

    - `rb_thread_fd_close` is deprecated and now a no-op.
    - IO operations (including close) no longer take a vm-wide lock.

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

commit a6435befa76c2ae0525147f934bd9cd1914ffb8a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 18:02:17 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-13 17:35:34 +0900

    variable.c: Refactor rb_obj_field_* to take shape_id_t

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

commit fa2414f29a410b1d295f06470e9177638032105c
  Author:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  AuthorDate: 2025-05-13 16:00:42 +0900
  Commit:     Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
  CommitDate: 2025-05-13 16:00:42 +0900

    Fix a typo

commit e46fbe624aa9242c9eb9c7f0fcff28af74e6846e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-13 14:35:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 15:49:20 +0900

    Psych and SafeYAML was loaded Gem.load_yml, these changes is unnecessary

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

commit 4d9a1d5b6fc18a41fa72bb823dd49bafdc1a790f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-13 13:29:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:37:24 +0900

    Handle to look up CGI::EscapeExt instead of using LoadError. cgi/escape is provided snce Ruby 2.3

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

commit cd7495a1d0e003360c96bb9746c1a8e6b3c6901c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 22:41:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:12:22 +0900

    [ruby/json] Further improve parsing errors

    Report EOF when applicable instead of an empty fragment.

    Also stop fragment extraction on first whitespace.

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

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

commit 8cc1aa82f1a14b9d1822562eb943e7ffb41b426e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 21:35:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:12:22 +0900

    [ruby/json] Add missing single quotes in error messages

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

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

commit 73d0bd5e9094aa3c10fc3f0f0b29851f1d56ee37
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 21:31:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:12:22 +0900

    [ruby/json] Release 2.12.0

    https://github.com/ruby/json/commit/41f1f6939d

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

commit 50ef208369c683346340d6dfdc151d4dfceb998d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 20:34:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:12:22 +0900

    [ruby/json] parser.c: include line and column in error messages

    https://github.com/ruby/json/commit/30e35b9ba5

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

commit 8f008598c3be85ee210317236e07cef92296c191
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 20:06:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-13 14:12:22 +0900

    [ruby/json] parser.c: refactor `raise_parse_error` to have document start

    https://github.com/ruby/json/commit/832b5b1a4c

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

commit a93d9fdcd2dc7a5991c0e596a4a4487a121be282
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-13 13:10:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-13 13:10:04 +0900

    Add a missing dependency for stringio

    18d395e0784401585b5c14300e689de55e208647

commit 5e59ae186fcf8c93ca63a32abd70bffc0db43d73
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-15 11:18:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-13 12:20:09 +0900

    [ruby/stringio] Fix Ruby 3.4 check

    https://github.com/ruby/stringio/commit/a27c5d5e2e

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

commit 18d395e0784401585b5c14300e689de55e208647
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-15 10:51:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-13 12:20:09 +0900

    [ruby/stringio] Do not issue warning when calling set_encoding if string is chilled

    StringIO does not warn for unchilled unfrozen string or for frozen
    string, so it should not warn for chilled string.

    https://github.com/ruby/stringio/commit/4ac33b8c70

commit 9b8c846bdf4ae2f218e0b92d0898d7206d0002c9
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-13 10:22:39 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-13 11:05:19 +0900

    Add an additional test to module_eqq

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

commit 203199251f723d02f23f5782523d16f91277ea82
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-03 16:16:16 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-05-13 10:09:58 +0900

    Remove Set#to_h

    This overrides Enumerable#to_h, but doesn't handle a block, breaking
    backwards compatibility.

    Set#to_h was added in the marshalling support commit, but isn't
    necessary for that, as the underlying function is called. Remove
    the method definition to restore backwards compatibility.

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

commit b758b6f204a05ad6b7f348ca290e88fabac8cc47
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-13 09:05:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-13 09:05:08 +0900

    Prevent namespace inspected strings from GC

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

commit b0502e8f904f155ac077014077431ed5e54b9996
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-04-15 10:02:12 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-13 06:10:29 +0900

    Remove respond_to check from Class#bind_call

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

commit c6528548d04cb918f424885111a2d6ae9516518d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 20:26:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-13 01:59:58 +0900

    [ruby/erb] Use cgi/escape instead of deprecated cgi/util

commit 957473d87fc7741c8d36caed8f05db80f4824bca
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-13 01:21:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-13 01:21:41 +0900

    [ruby/psych] Bump version for release

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

commit 0c94ae048a277485aa691820277108c2335ec3d3
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-05-13 00:51:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-13 01:19:38 +0900

    [ruby/psych] Fix dumping `StringIO` (and potentially others) on Ruby <= 2.7

    In Ruby < 3.0, the superclass of StringIO was actually already `Data`,
    but it doesn't have the expected shape. So, on these earlier versions it errors:
    > NoMethodError: undefined method `members' for #<StringIO:0x00005641dd5f2880>
    >    vendor/bundle/ruby/2.6.0/gems/psych-5.2.5/lib/psych/visitors/yaml_tree.rb:170:in `visit_Data'

    This test doesn't fail on 2.7, presumably because it can pull in a newer `stringio` version.

    https://github.com/ruby/psych/commit/0f40f56268

commit 53a27f114afafcdfea1a6066d01c12e4dc295657
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-13 01:03:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-13 01:03:46 +0900

    YJIT: Split the block on optimized getlocal/setlocal (#13282)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 0b6cee73295099ce095d3a17c1d00ad8c1907b82
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-13 00:57:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-13 00:57:15 +0900

    ZJIT: Stop padding side exits (#13295)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 64944cf422df4de380d985a494e33bf249e0c4a2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-13 00:07:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-13 00:07:56 +0900

    [DOC] Remove a garbage

commit 85d9ebc995979d4b6152fd958b7bf22a9481a138
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-08 00:52:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-12 23:51:17 +0900

    Remove duplicate asan_unpoisoning_object

    It's already defined in internal/sanitizers.h.

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

commit bc6d48bd34db9b8d6ffea2bb9f702c15c79be106
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-12 23:16:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-12 23:16:37 +0900

    [DOC] Tweak for String#+@ (#13285)

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

commit 311b9352a1fb50eef0122b0eeede3494648fcf8f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-09-19 02:41:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-12 22:57:24 +0900

    [ruby/erb] [DOC] Make documentation 100%

    https://github.com/ruby/erb/commit/9152ce8db4

commit 46e4c8673747de96838d2c5dec37446d23d99d88
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 14:16:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    Detect `clock_gettime` and `clock_getres` for winpthreads

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

commit 91375d75796699384c9b44078149ac393462cf45
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 14:13:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    CI: Create proper revision.h on Windows

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

commit d2ffdb108897151d3bcb7e079aa6b0d37c4409fb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 13:51:12 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    Explicit cast down from `double` to `int`

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

commit ed2806117a0b76e4439ce1a061fae21d9e116d69
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 13:50:33 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    Do not let files depend on a phony target

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

commit 543e3a1896ae2fe3b5b954f6497d261ab5663a15
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 10:17:49 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    Cast up `int` instruction code to `VALUE`

    Fix Visual C warnings:
    ```
    iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
    iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
    ```

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

commit f1f0cc14cc7d3f9be35b203e5583f9224b1e2387
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 10:16:11 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 17:45:39 +0900

    Separate `__has_attribute` from `defined(__has_attribute)`

    Fix Visual C warnings:
    ```
    regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline
    ```

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

commit 131ba059cad0cff223842a739b2bc87425613b49
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 16:49:59 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-12 16:49:59 +0900

    test_object_id.rb: use better randomness

    When the test is repeated 20 or more times in the same process
    it's not that unlikely for `rand(100_000)` to return the same thing
    twice, causing `TestObjectIdTooComplexClass` to fail.

    ```
      1) Failure:
    TestObjectIdTooComplexClass#test_dup_with_id_and_ivar [/tmp/ruby/src/trunk-repeat20-asserts/test/ruby/test_object_id.rb:172]:
    Expected #<struct RubyVM::Shape
     id=6783,
     parent_id=6774,
     edge_name=:@___26417,
     next_field_index=2,
     heap_index=0,
     type=1,
     capacity=7> to be too_complex?.
    ```

commit f638e1483835aa0497754723798a83d3bd26eace
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-12 11:03:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-12 12:52:33 +0900

    Support to sync cgi/escape from ruby/cgi repo

commit 4464cbe5cd17cff26b4aceee83c849790b812c8b
  Author:     Randy Stauner <randy.stauner@shopify.com>
  AuthorDate: 2025-04-30 03:30:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-12 11:09:22 +0900

    [rubygems/rubygems] Fix doctor command parsing of otool output

    I have several gem dylibs that have a line matching "(compatibility "
    with no file path preceding it.

    https://github.com/rubygems/rubygems/commit/de9dc2bdc4

commit af799140028d9600c5c799356da9a4f1f31b2e7e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-10 18:31:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-12 11:09:11 +0900

    [ruby/json] Favor decimal notation over scientific notation for floats

    e.g.
    ```
    JSON.dump(1746861937.7842371)
    ```

    master:
    ```
    "1.https://github.com/ruby/json/commit/746861937784+9"
    ```

    This branch and older json versions:
    ```
    https://github.com/ruby/json/commit/1746861937.7842371
    ```

    In the end it's shorter, and according to `canada.json` benchmark
    performance is the same.

    https://github.com/ruby/json/commit/866f72a437

commit dc5555d74aa75a61813c9cfba52058624bccc63e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-12 05:37:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-12 05:37:47 +0900

    Fix -Wmaybe-uninitialized

    ../namespace.c: In function ‘current_namespace’:
    ../namespace.c:221:48: warning: ‘proc_ns’ may be used uninitialized [-Wmaybe-uninitialized]
      221 |                     if (permit_calling_builtin || (proc_ns && NAMESPACE_USER_P(proc_ns)))
          |                         ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../namespace.c:204:31: note: ‘proc_ns’ was declared here
      204 |         const rb_namespace_t *proc_ns;
          |                               ^~~~~~~

    In function ‘copy_ext_file’,
        inlined from ‘rb_namespace_local_extension’ at ../namespace.c:855:18:
    ../namespace.c:768:21: warning: ‘written’ may be used uninitialized [-Wmaybe-uninitialized]
      768 |             wrote = fwrite(buffer+written, 1, read-written, dst);
          |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../namespace.c: In function ‘rb_namespace_local_extension’:
    ../namespace.c:748:25: note: ‘written’ was declared here
      748 |     size_t read, wrote, written;
          |                         ^~~~~~~

    In function ‘copy_ext_file’,
        inlined from ‘rb_namespace_local_extension’ at ../namespace.c:855:18:
    ../namespace.c:768:21: warning: ‘read’ may be used uninitialized [-Wmaybe-uninitialized]
      768 |             wrote = fwrite(buffer+written, 1, read-written, dst);
          |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../namespace.c: In function ‘rb_namespace_local_extension’:
    ../namespace.c:748:12: note: ‘read’ was declared here
      748 |     size_t read, wrote, written;
          |            ^~~~

commit 8b7a4d167a4a6be80fb5dad173006b1a81852804
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 03:30:42 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-12 05:05:06 +0900

    Handle GC triggering while building the initial `id_to_obj_tbl`

    GC can trigger while we build the table, and if it sweeps an object
    with an ID, it may not find it in the `id_to_obj` table.

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

commit 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-12 00:20:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 02:50:25 +0900

    Copy to path with the base name

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

commit b48b841378f80e16378ceb83f3b78e52df9ae023
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-11 19:52:51 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 02:50:25 +0900

    digest.so needs ruby/digest.h which is installed by build-ext

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

commit 204740b73fd8869f6056ce0568824fb7db8661bd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-11 19:28:11 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 02:50:25 +0900

    Revert "Try removing building C API specs in CRuby makefiles entirely"

    This reverts commit 2a9236366d6016738a756caecab03263565a20c7.
    spec/ruby/optional/capi/spec_helper.rb doesn't work well for mingw.

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

commit 3e47e7a499acd256be549935fcb559d3c82e556c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-11 14:47:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-12 02:50:25 +0900

    Fix redefinition of `clock_gettime` and `clock_getres`

    winpthreads-git 12.0.0.r720 provides `clock_gettime` and
    `clock_getres` as inline functions.

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

commit f2e5f6dbb605960b69ddced5503a18639aa29e8e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 01:47:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-12 02:35:58 +0900

    Allow T_CLASS and generic types to be too_complex

    The intial complex shape implementation never allowed objects
    other than T_OBJECT to become too complex, unless we run out of
    shapes.

    I don't see any reason to prevent that.

    Ref: https://github.com/ruby/ruby/pull/6931

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

commit 54c2edc05d8cc3fff25f04e4b28e698b9324e163
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-12 00:38:14 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-12 00:38:14 +0900

    Fix `Namespace#inspect` to display its internal id

commit b94df81be2955f3b00bac8927da0a29e6951f2e4
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-11 22:38:02 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    RUBY_TYPED_WB_PROTECTED should be specified with write barrier protection on this object.

    https://github.com/tagomoris/ruby/pull/7
    RUBY_TYPED_FREE_IMMEDIATELY can be added because namespace_entry_free does no IO nor
    things to block.

commit 574127b0db7ac757ea55cee4e3e61d5a7a5e06c6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-11 17:42:42 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Add missing gc_mark in `autoload_const_mark`

    If we're referencing the namespace object we have to mark it.

commit ae2d5378e8acc015e43f38188bd0b1412c6302b9
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-11 18:27:18 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Suppress warning about unused variable without VM_CHECK_MODE

commit e9b538bb35c29788539a8953d44c5d18f9a6fb65
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-11 17:08:35 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Fix `namespace_initialize` to not crash on boot

    ```
    /opt/rubies/head-namespaces/bin/ruby(sigsegv+0x84) [0x104e897e8]
    /usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x18de56de4]
    /opt/rubies/head-namespaces/bin/ruby(object_id+0x80) [0x104d7d420]
    /opt/rubies/head-namespaces/bin/ruby(object_id+0x80) [0x104d7d420]
    /opt/rubies/head-namespaces/bin/ruby(rb_initialize_main_namespace+0xe4) [0x104ddaa20]
    /opt/rubies/head-namespaces/bin/ruby(ruby_opt_init+0x120) [0x104e7f524]
    /opt/rubies/head-namespaces/bin/ruby(ruby_process_options+0x1370) [0x104e7e31c]
    /opt/rubies/head-namespaces/bin/ruby(ruby_options+0xb0) [0x104d69844]
    /opt/rubies/head-namespaces/bin/ruby(main+0x64) [0x104ca8d54]
    ```

    I'm not too sure why `rb_obj_id` crashes, but I suspect it's called too
    early. Either way I don't think generating an object_id for namespaces
    is a good idea. If all we need is a unique number we can do that
    for much cheaper.

commit b132322e94460a50fd7f0d844fe73e2272207f1d
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-11 09:30:16 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Skip mmtk/i686 tests for a while

commit bbcc3782b11939075f753b8f3260c8cd5137d600
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-11 00:39:53 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Skip updating max_iv_count when the namespace cannot be determined

commit c2c5b0542324a0c74e033bbe79a65caf2204ed95
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-10 23:36:57 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Unexpectedly miss-fixed macro during rebase

commit f0b41ef6694cd14415ff2480d5a1f61b7b0b35ef
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-10 16:50:29 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Describe the basic documents of Namespace

commit 8199e6e1a621f928e7e08261047c224eb49d3128
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-09 00:32:30 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Show experimental warning when namespace is enabled

commit 8ecc04dc042d2dc24379dec34ae33fa483faa267
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-08 23:53:20 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Delete code for debugging namespace

commit 82f645e818a6c8029c40fd3cddcec7e2d3c1b559
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-08 23:45:59 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Namespace::Entry is long living object

commit 294b52fb9b1c96479f6c1aba563ae7376419688a
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-08 23:38:00 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Follow the code style about else

commit 90e5ce6132f874ed719bbb9fecd87ad2392ffbdd
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-08 23:19:25 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Rename RCLASS_EXT() macro to RCLASS_EXT_PRIME() to prevent using it wrongly

    The macro RCLASS_EXT() accesses the prime classext directly, but it can be
    valid only in a limited situation when namespace is enabled.
    So, to prevent using RCLASS_EXT() in the wrong way, rename the macro and
    let the developer check it is ok to access the prime classext or not.

commit ff790c759ed0d32e398792af3bc2c7f9ee1cf6c4
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-08 22:53:31 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Compact prime classext readable/writable flags

    To make RClass size smaller, move flags of prime classext readable/writable to:
     readable - use ns_classext_tbl is NULL or not (if NULL, it's readable)
     writable - use FL_USER2 of RBasic flags

commit e81d50207b43027343b557140d006b775bddfb02
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-06 16:11:12 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Add yjit/zjit bindings for adding namespace

commit 5ee1ec313a5c644b38344f219961c3ca590374b4
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-02 12:21:51 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    initialize method tables before any GC chance

commit f24ba27d6d88241f0560f12b0b2cb54d8cb40262
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-05-02 11:30:24 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    avoid calling ZALLOC after NEWOBJ_OF for RClass: need to return RClass not promoted

commit 4b33b468ac2f20d7b13e691ecc2c7e857b53d356
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 18:36:24 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Fix function pointer type mismatch with `rb_define_private_method`

    `rb_define_private_method` performs strict type checking on the function
    pointer. As a result, we cannot pass the function a generic signature.

    ```
      /github/workspace/src/namespace.c:1097:72: note: expected 'VALUE (*)(void)' {aka 'long unsigned int (*)(void)'} but argument is of type 'VALUE (*)(int,  VALUE *, VALUE)' {aka 'long unsigned int (*)(int,  long unsigned int *, long unsigned int)'}
       1097 | namespace_define_loader_method(VALUE module, const char *name, VALUE (*func)(ANYARGS), int argc)
            |                                                                ~~~~~~~~^~~~~~~~~~~~~~
    ```

    This commit defines the method directly to avoid the mismatch error.

commit cf3e2bbad27b8e37fcad7b804b44b907eca45a86
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 17:46:01 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Prevent a compile error of clang's -Wformat-pedantic

    ```
      /github/workspace/src/proc.c:2023:65: error: format specifies type 'void *' but the argument has type 'const rb_namespace_t *' (aka 'const struct rb_namespace_struct *') [-Werror,-Wformat-pedantic]
       2023 |     rb_bug("Unexpected namespace on the method definition: %p", ns);
            |                                                            ~~   ^~
    ```

commit e7e517499b66bb97fc47d01d22ff458b764429c1
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 17:18:43 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    spec/ruby/core/module/ancestors_spec.rb: Add a guard for Namespace feat.

commit cb99e544862cbfdffdfd93b82893cab89fb71a91
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 17:14:24 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Update common.mk dependencies

commit 8d3cd4301a38725229171fbbd71d587056d86de4
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 17:10:55 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Remove unnecessary prototype declarations

    ```
    internal/class.h:158:20: warning: ‘RCLASS_SET_CLASSEXT_TABLE’ declared ‘static’ but never defined [-Wunused-function]
      158 | static inline void RCLASS_SET_CLASSEXT_TABLE(VALUE obj, st_table *tbl);
          |                    ^~~~~~~~~~~~~~~~~~~~~~~~~
    internal/class.h:271:20: warning: ‘RCLASS_WRITE_SUBCLASSES’ declared ‘static’ but never defined [-Wunused-function]
      271 | static inline void RCLASS_WRITE_SUBCLASSES(VALUE klass, rb_subclass_anchor_t *anchor);
          |                    ^~~~~~~~~~~~~~~~~~~~~~~
    ```

commit 1e4f7a28b826c6130610c13e4e7dc57ab50672d5
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 17:09:48 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    Fix "old-style function definition"

    ```
    namespace.c: In function ‘rb_namespace_available’:
    namespace.c:55:1: warning: old-style function definition [-Wold-style-definition]
       55 | rb_namespace_available()
          | ^~~~~~~~~~~~~~~~~~~~~~
    ```

commit 382645d440d5da66a0c04557f3ff2ca226de3a27
  Author:     Satoshi Tagomori <tagomoris@gmail.com>
  AuthorDate: 2025-04-30 13:48:02 +0900
  Commit:     Satoshi Tagomori <tagomoris@gmail.com>
  CommitDate: 2025-05-11 23:32:50 +0900

    namespace on read

commit 49742414f6444960838bb968bab43db27f5872c1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-11 11:31:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-11 12:09:26 +0900

    Revert "Fix redefinition of `clock_gettime` and `clock_getres`"

    This reverts commit 585598623da949c92d0f2ea94029a863142ec908.

    This broke Windows CIs

    ```
    linking miniruby.exe
       Creating library miniruby.lib and object miniruby.exp
    process.obj : error LNK2019: unresolved external symbol clock_gettime referenced in function rb_clock_gettime
    random.obj : error LNK2001: unresolved external symbol clock_gettime
    thread.obj : error LNK2001: unresolved external symbol clock_gettime
    time.obj : error LNK2001: unresolved external symbol clock_gettime
    process.obj : error LNK2019: unresolved external symbol clock_getres referenced in function rb_clock_getres
    miniruby.exe : fatal error LNK1120: 2 unresolved externals
    NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\cl.EXE"' : return code '0x2'
    ```

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

commit 915d0277381826edf83a261c85e9fe0919a3a3a3
  Author:     Zopolis4 <creatorsmithmdt@gmail.com>
  AuthorDate: 2025-05-10 19:48:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-11 07:07:10 +0900

    Fix typo (newsString -> new String)

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

commit 98667f82d29f758007e5c3487fc31dff5f0a4fa9
  Author:     Daisuke Aritomo <di.aritomo@gmail.com>
  AuthorDate: 2025-05-10 20:21:27 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-11 02:32:21 +0900

    [DOC] Update documentation for ObjectSpace#each_object

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

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

commit 29b3d683fb85d8c63b7b616ce8544d538814feaf
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-05-10 16:35:02 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-11 02:32:21 +0900

    [DOC] Make clear that current behavior is not ideal

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

commit a51b4a86fc847e02f294b360a03d69797b8d7c18
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-05-09 00:09:37 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-11 02:32:21 +0900

    [DOC] ObjectSpace#each_object behavior in multi-Ractor mode

    This behavior of ObjectSpace#each_object has been around since Ruby 3.0
    when Ractors were first introduced, but was never documented and has
    caused some amount of confusion:

    https://bugs.ruby-lang.org/issues/17360
    https://bugs.ruby-lang.org/issues/19387
    https://bugs.ruby-lang.org/issues/21149

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

commit 6dd7a7bb414040e15c37daa9a968f8959cf6bd49
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-10 23:17:11 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-10 23:55:22 +0900

    Refactor `rb_obj_field_get` to handle complex shapes

    This allow to get or set fields without having to worry about the
    shape type.

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

commit d9502a8386cae343054183e68683d3bbdbb1f383
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-10 22:39:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-10 22:39:33 +0900

    Rename `rb_field_get` -> `rb_obj_field_get`

    To be consistent with `rb_obj_field_set`.

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

commit 585598623da949c92d0f2ea94029a863142ec908
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-10 15:50:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-10 18:26:09 +0900

    Fix redefinition of `clock_gettime` and `clock_getres`

    winpthreads-git 12.0.0.r720 provides `clock_gettime` and
    `clock_getres` as inline functions.

commit 7add6b2ac333ad0940c27245721ad8b65db5ebca
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-05-10 17:28:14 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 17:29:48 +0900

    ruby/spec has a minimum of Ruby 3.2 now

commit 3c37d6ffcf3a55e18caa147bd0c97424ab6598c5
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-05-10 15:59:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 15:59:40 +0900

    Update bundled gems list as of 2025-05-09

commit c75202c57e4c3c81e97fb89dc7218e6614ed145c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-10 15:41:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-05-10 15:41:30 +0900

    [Feature #15408] Fix up _id2ref_spec.rb

commit 3306d7d2f9287e2b3d42406e7a8eff27bad93533
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-10 07:02:53 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-10 08:15:54 +0900

    Only clear Ractor cache in child

    This avoids a race condition where we were clearing the cache from
    another ractor while it was in use. Oops!

    Fixes this failure http://ci.rvm.jp/results/master@oci-aarch64/5750416

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

commit 58c008e68f31a8056df508cc46e17c0ef69f16d5
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-10 07:12:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 07:12:47 +0900

    [ruby/psych] Bump version for release

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

commit 4a2f489ca6d54b46c9b36ff4c1b33ba79fd4a7df
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-05-10 05:46:09 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Fix rb_range_beg_len() and rb_arithmetic_sequence_beg_len_step() spec

    * The begp, lenp and stepp might not be written to, so they need default values.

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

commit 2a9236366d6016738a756caecab03263565a20c7
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-05-10 04:44:44 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Try removing building C API specs in CRuby makefiles entirely

    * Since it does not work when using some configure options such as:
      .../configure --with-ext=-test-/cxxanyargs,+ --enable-shared
      as the CI does.
    * It also duplicates the logic of spec/ruby/optional/capi/spec_helper.rb incorrectly.
      ruby/spec maintainers have no experience and no interest in dealing with these complicated CRuby build system issues.
      We asked help on the CRuby Slack and nobody helped so far.

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

commit 29be534fad50810bb0e077011c8236ba89d4e3ba
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-05-08 01:29:52 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Try fixing building C API specs with make

    * But it doesn't work because there is no .ext/include/ruby/digest.h
      when using .../configure --with-ext=-test-/cxxanyargs,+ --enable-shared
      as the CI does.

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

commit 78a2ffa000301230261812a0ea4e9927ef0e49dc
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-05-08 00:44:49 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Fix digest specs when run in CRuby via make test-spec

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

commit cb4a441819a56a445dbe82921b44f1410c682fc6
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-05-08 00:49:54 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Fix formatting in digest_spec.c

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

commit 269ad29de95e41cc8a4eede84b98a81a6ff4f7b6
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-05-07 19:08:11 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-05-10 06:22:15 +0900

    Update to ruby/spec@d8bacef

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

commit 3135eddb4e8c6975b6fa5345f15fdaa55257851a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 19:02:48 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-10 03:45:48 +0900

    Refactor `FIRST_T_OBJECT_SHAPE_ID` to not be used outside `shape.c`

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

commit e2f5e233b53208f032e9196cb3e411add1658853
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 14:22:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:18 +0900

    [ruby/psych] exception tests

    https://github.com/ruby/psych/commit/1e9b79f699

commit 42328d4ef447b71f952a8b3a6e9850b4f827b7ea
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 14:15:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:18 +0900

    [ruby/psych] more special cases

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

commit 451e1dcf313d176f20f5acb2e12855468ac95b14
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 12:38:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:17 +0900

    [ruby/psych] duplicate more tests

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

commit ae299cc9cd7e19626c973f166098a4128c2779ed
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 12:14:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:17 +0900

    [ruby/psych] add first test for safe load stream

    https://github.com/ruby/psych/commit/336553b412

commit f0e2a41d4bacd4ad37843b662194f128737407cf
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 11:57:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:17 +0900

    [ruby/psych] fixed bugs from testing

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

commit d69319304f111a9c1c9fac8d92460547b8749610
  Author:     OrenGitHub <tuna.is.good.for.you@gmail.com>
  AuthorDate: 2025-04-29 03:47:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-10 02:53:17 +0900

    [ruby/psych] Add safe version for load_stream

    https://github.com/ruby/psych/commit/30a2a5ee94

commit 011982ef837150044d9f18acc49a7b70e39eaf76
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-10 01:07:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-10 01:43:08 +0900

    Fix warnings in tests for ObjectSpace._id2ref

    There's a lot of warnings when running test_objectspace.rb because of
    ObjectSpace._id2ref. For example:

        test_objectspace.rb:19: warning: ObjectSpace._id2ref is deprecated

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

commit 102063f964f16373e448baa968772b6aa79c067c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-09 03:07:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-10 01:32:40 +0900

    ZJIT: Fix a splitting condition for LHS

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

commit f30f0f0a22bb5cf536b5ca551f3dfa5ebb745030
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-09 05:19:54 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-09 23:24:38 +0900

    Fix crash when instantiating classes in Ractors

    [Bug #18119]

    When we create classes, it pushes the class to the subclass list of the
    superclass. This access needs to be synchronized because multiple Ractors
    may be creating classes with the same superclass, which would cause race
    conditions and cause the linked list to be corrupted.

    For example, we can reproduce with this script crashing:

        workers = (0...8).map do
          Ractor.new do
            loop do
              100.times.map { Class.new }
              Ractor.yield nil
            end
          end
        end

        100.times { Ractor.select(*workers) }

    With ASAN enabled, we can see that there are use-after-free errors:

        ==176013==ERROR: AddressSanitizer: heap-use-after-free on address 0x5030000974f0 at pc 0x62f9e56f892d bp 0x7a503f1ffd90 sp 0x7a503f1ffd88
        WRITE of size 8 at 0x5030000974f0 thread T4
            #0 0x62f9e56f892c in rb_class_remove_from_super_subclasses class.c:149:24
            #1 0x62f9e58c9dd2 in rb_gc_obj_free gc.c:1262:9
            #2 0x62f9e58f6e19 in gc_sweep_plane gc/default/default.c:3450:21
            #3 0x62f9e58f686a in gc_sweep_page gc/default/default.c:3535:13
            #4 0x62f9e58f12b4 in gc_sweep_step gc/default/default.c:3810:9
            #5 0x62f9e58ed2a7 in gc_sweep gc/default/default.c:4058:13
            #6 0x62f9e58fac93 in gc_start gc/default/default.c:6402:13
            #7 0x62f9e58e8b69 in heap_prepare gc/default/default.c:2032:13
            #8 0x62f9e58e8b69 in heap_next_free_page gc/default/default.c:2255:9
            #9 0x62f9e58e8b69 in newobj_cache_miss gc/default/default.c:2362:38
        ...
        0x5030000974f0 is located 16 bytes inside of 24-byte region [0x5030000974e0,0x5030000974f8)
        freed by thread T4 here:
            #0 0x62f9e562f28a in free (miniruby+0x1fd28a) (BuildId: 5ad6d9e7cec8318df6726ea5ce34d3c76d0d0233)
            #1 0x62f9e58ca2ab in rb_gc_impl_free gc/default/default.c:8102:9
            #2 0x62f9e58ca2ab in ruby_sized_xfree gc.c:5029:13
            #3 0x62f9e58ca2ab in ruby_xfree gc.c:5040:5
            #4 0x62f9e56f88e6 in rb_class_remove_from_super_subclasses class.c:152:9
            #5 0x62f9e58c9dd2 in rb_gc_obj_free gc.c:1262:9
            #6 0x62f9e58f6e19 in gc_sweep_plane gc/default/default.c:3450:21
            #7 0x62f9e58f686a in gc_sweep_page gc/default/default.c:3535:13
            #8 0x62f9e58f12b4 in gc_sweep_step gc/default/default.c:3810:9
            #9 0x62f9e58ed2a7 in gc_sweep gc/default/default.c:4058:13
        ...
        previously allocated by thread T5 here:
            #0 0x62f9e562f70d in calloc (miniruby+0x1fd70d) (BuildId: 5ad6d9e7cec8318df6726ea5ce34d3c76d0d0233)
            #1 0x62f9e58c8e1a in calloc1 gc/default/default.c:1472:12
            #2 0x62f9e58c8e1a in rb_gc_impl_calloc gc/default/default.c:8138:5
            #3 0x62f9e58c8e1a in ruby_xcalloc_body gc.c:4964:12
            #4 0x62f9e58c8e1a in ruby_xcalloc gc.c:4958:34
            #5 0x62f9e56f906e in push_subclass_entry_to_list class.c:88:13
            #6 0x62f9e56f906e in rb_class_subclass_add class.c:111:38
            #7 0x62f9e56f906e in RCLASS_SET_SUPER internal/class.h:257:9
            #8 0x62f9e56fca7a in make_metaclass class.c:786:5
            #9 0x62f9e59db982 in rb_class_initialize object.c:2101:5

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

commit 15e3675ecc28f791e30ad92967b7bb85dbe62283
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 17:24:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 18:13:52 +0900

    Remove dead code in `rb_gc_impl_ractor_cache_free`

    Followup: https://github.com/ruby/ruby/pull/13286

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

commit ea772508470fbde15154c816b36fdf70f4c8735a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 15:58:07 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Rename `RB_OBJ_SHAPE` -> `rb_obj_shape`

    As well as `RB_OBJ_SHAPE_ID` -> `rb_obj_shape_id`
    and `RSHAPE` is now a simple alias for `rb_shape_lookup`.

    I tried to turn all these into `static inline` but I'm having
    trouble with `RUBY_EXTERN rb_shape_tree_t *rb_shape_tree_ptr;`
    not being exposed as I'd expect.

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

commit 0b81359b3f0df5b663b21562660877f8ef303e00
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 05:00:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Stop exposing rb_shape_frozen_shape_p

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

commit becc45ff4efeda88c9e62e0ab463b8b09596ccfc
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 04:15:36 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Eliminate some `rb_shape_t *` usages outside of `shape.c`.

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

commit a970d35de2fcef0d898520b45d3606e3bdd1d1e7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 04:08:40 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Get rid of `rb_shape_get_parent`.

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

commit 5782561fc105164baf95037dc5bab44c48ef1e76
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 04:01:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Rename `rb_shape_get_shape_id` -> `RB_OBJ_SHAPE_ID`

    And `rb_shape_get_shape` -> `RB_OBJ_SHAPE`.

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

commit a007575497ef00aeb3cb0d7ceef0f764c8bc4615
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:50:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Remove unused `rb_shape_object_id_index`

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

commit c9b08882b796c9d3a5f92d57d0b4f866fb24f3ac
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:47:51 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_get_next` to return an ID

    Also rename it, and change parameters to be consistent with
    other transition functions.

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

commit e0200cfba03bf7d23b6e298c35ca2636cbbdbd91
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:30:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_transition_shape_remove_ivar` to not take a shape pointer

    It's more consistent with other transition functions.

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

commit 3f7c0af05191c6120db1617fef1d5be18151dfe6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:17:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Rename `rb_shape_obj_too_complex` -> `rb_shape_obj_too_complex_p`

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

commit 677d075c2901198aad2f17b7d9f07af021c5e974
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:16:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_transition_too_complex` to return an ID.

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

commit f82523f14bf69f73a4660611a16a67a88a408eda
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 02:05:03 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_transition_frozen` to return a `shape_id`.

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

commit 31d0a5815c43b219eca356d0cc7dfedfb0569eca
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:53:12 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Get rid of useless SHAPE_MASK

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

commit 334ebba2219cba4b8ec1ef69325d3fe517345e47
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:47:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Rename `rb_shape_get_shape_by_id` -> `RSHAPE`

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

commit 9966de11fb349688f12ea16dc4c082269a8fdb42
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:36:01 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_get_next_iv_shape` to take and return ids.

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

commit df7d25bb3e8105783f3a243f12213d5c52c42377
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:29:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Stop exposing rb_shape_get_root_shape

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

commit 62eb2007f6f219cc85bd5421c17643f673033bc8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:27:45 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Remove unused rb_obj_debug_shape

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

commit e4f97ce38725a22fb75c60d8114ce47af9c423a8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 01:20:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_depth` to take an ID rather than a pointer.

    As well as `rb_shape_edges_count` and `rb_shape_memsize`.

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

commit f8b3fc520f2ec19bca8f30e022bd8765187da7ac
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 00:56:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Refactor `rb_shape_traverse_from_new_root` to not expose `rb_shape_t`

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

commit 7116b0a7f1398f18346ad6f9ba805e3877d45944
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 00:38:39 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 17:22:51 +0900

    Extract `rb_shape_free_all`

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

commit 30ef0f180b396314521d1309e7732ce921cd2fab
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-09 14:35:59 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-09 16:55:14 +0900

    Fix allocation count when forking with Ractors

    After fork we reset to single ractor mode (which IMO we shouldn't do,
    but it requires more work to fix) and so we need to add the pending
    object counts back to the main heap.

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

commit 4de049a3f9709ab8b0b192c40e83b910b80d6de3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-23 18:42:26 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 16:19:25 +0900

    Deprecate `ObjectSpace._id2ref`

    [Feature #15408]

    Matz decided to deprecate it for Ruby 2.6 or 2.7 but that never
    actually happened.

    Given the object_id table is a contention point for Ractors
    it seems sensible to finally deprecate this API so we can
    generate and store object ids more efficiently in the future.

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

commit 4ef324c7c1f894d7870f94744e24afdbfd2b27ba
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-09 15:37:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 15:37:01 +0900

    Added https://bugs.ruby-lang.org/issues/21258 to NEWS.md

commit d3c472781dec4fe415203fbb898d8b1f7b538eb0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-09 12:17:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Replaced CGI.parse with URI.decode_www_form

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

commit ab19b1f6297e171d72a5b6a9cb00fc9ee3178170
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-09 11:48:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Use CGI 0.5.0.beta1

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

commit 5e1c90675e3d9bec0e3e98223a0a75e0848b7d72
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 20:26:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Added cgi for bundler testing. rack depends cgi/cookie.rb

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

commit 5aade8a84acd4fa69c0b5362c807bf41d551c4d8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 20:01:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Added migration wrapper for cgi.rb and cgi/util.rb

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

commit ce6c1778fb90f9685f9e790f111184d622f981be
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:41:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Guard CGI examples with Ruby 3.5 and use cgi/escape for related examples

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

commit 600c616507b258cdf9dbfbc822deb267f3202325
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:21:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Removed CGI library without CGI::Escape features

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

commit a61f51f66d7dff966dd17915c854fea08763722d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:21:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Use cgi/escape instead of cgi/util

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

commit 56423d43a34bfd7260a53f048ee891130d3a0715
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:16:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Reduce loading class/module on CGIUtilTest and CGIEscapeTest

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

commit 382be44f4277e6617a27887a99906f5f5e87d265
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:14:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Extract CGIEscapeTest from CGIUtilTest

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

commit 8a1d45144bc30aaca67d953521c19c7ee0b378c0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 19:08:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 14:27:28 +0900

    Support `require 'cgi/escape'` with extracting CGI::Escape from CGI::Util

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

commit c66768376815878e9d103e80135b37cb4058fa8b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-09 13:51:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-09 13:51:44 +0900

    Added instruction for initial setup of depend file

commit 7a660d7c69455565b2d5cc8f6af295d1c917c574
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-09 03:18:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-09 05:34:33 +0900

    [DOC] Tweaks for What's Here

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

commit b67711b17a40c839af1415853d56bdf9ce82a142
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-09 03:24:17 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-09 04:48:35 +0900

    Fix `remove_instance_variable` on complex objects

    Introduced in: https://github.com/ruby/ruby/pull/13159

    Now that there is no longer a unique TOO_COMPLEX shape with
    no children, checking `shape->type == TOO_COMPLEX` is incorrect.

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

commit e3452cfad26edcb3ba6e9bf818f7d02838cf676f
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-26 07:55:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-09 02:53:28 +0900

    Raise error on take/send for Ractors in child processes

    Ractor objects that are available in a child process should raise a
    `Ractor::ClosedError` exception when called with `send` or `take`

    Co-authored-by: John Hawthorn <john@hawthorn.email>

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

commit f7ff380998888f5bdcd6fccda472fdd3e5f40470
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-26 07:26:55 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-09 02:53:28 +0900

    Clean up Ractor cache after fork

    Ractors created in a parent process should be properly shut down in the
    child process.  They need their cache cleared and status set to
    "terminated"

    Co-authored-by: John Hawthorn <john@hawthorn.email>

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

commit d7ad53f249de459190d88bcb16c819411226be46
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-07 11:08:02 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-09 02:53:28 +0900

    Acquire VM lock around fork

    Otherwise it might be held by another Ractor, causing a deadlock in the
    new process.

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

commit c750856367dfda37e5668fee8cfd671104cbd303
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-09 02:46:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-09 02:46:09 +0900

    Fix -Wreturn-type

    ../variable.c: In function ‘iterate_over_shapes_with_callback’:
    ../variable.c:2189:1: warning: control reaches end of non-void function [-Wreturn-type]
     2189 | }
          | ^

commit c18bedcdbbf3d059ef6a6fae20d1dc4ea895c020
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-08 04:14:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-08 23:36:27 +0900

    Remove dependency on debug_counter.h when BUILDING_MODULAR_GC

    This allows the default GC to not need debug_counter.h when building as a
    modular GC.

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

commit 3f5080e7676c375b7724a08fe711765d30a590eb
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-08 04:13:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-08 23:36:27 +0900

    Stop checking for USE_DEBUG_COUNTER in default.c

    We don't need to check for USE_DEBUG_COUNTER because the code is no-op
    if USE_DEBUG_COUNTER is not enabled.

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

commit 46a82408846fe1ec5ad6f8fbb883c886abae079a
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-08 23:31:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-08 23:31:47 +0900

    [DOC] Tweaks for String#-@

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

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

commit 5e534849940b34ea6590da053830cf1ef53ab475
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-08 21:22:44 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-08 21:22:44 +0900

    ZJIT: Temporarily revert path compression

    For reasons I don't understand yet, this causes an issue when trying to
    boot yjit-bench. Temporarily revert it.

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

    Merged-By: XrXr

commit f3006c26de80827a74844f79082a4f79ab21e7c6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-08 17:31:56 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-08 18:20:51 +0900

    Add depend files under ext/-test-

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

commit a41eed99c0d072eb79ddc357fd6c6deeb703d967
  Author:     Ellen Marie Dash <ellen@duckinator.net>
  AuthorDate: 2025-05-06 07:03:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [rubygems/rubygems] Update `TarWriter` test to store mtime in a variable

    https://github.com/rubygems/rubygems/commit/0e2cec3fa3

commit 819ecd115d663e5d0c7e1f14902f5bfde0a7414a
  Author:     Yusuke Nakamura <yusuke1994525@gmail.com>
  AuthorDate: 2025-05-03 23:59:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [rubygems/rubygems] Add mtime to Gem::Package::TarWriter#add_file argument

    Since 9e21dd9, Gem::Package::TarWriter#add_file adds the file to
    the tar with Gem.source_date_epoch for its mtime.
    This behavior breaks the code depending on the previous add_file
    behavior.
    Therefore, add_file accepts mtime as an argument, and uses
    Gem.source_date_epoch if not specified.

    https://github.com/rubygems/rubygems/commit/7020ea98a0

commit 8685a81e6a0bdf7b766af930ee0e05a28e07d69b
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-05-03 13:26:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [ruby/strscan] jruby: Check if len++ walked off the end
    (https://github.com/ruby/strscan/pull/153)

    Fix https://github.com/ruby/strscan/pull/152

    CRuby can walk off the end because there's always a null byte. In JRuby,
    the byte array is often (usually?) the exact size of the string. So we
    need to check if len++ walked off the end.

    This code was ported from a version by @byroot in
    https://github.com/ruby/strscan/pull/127 but I missed adding this check
    due to a lack of tests. A test is included for both "-" and "+" parsing.

    https://github.com/ruby/strscan/commit/1abe4ca556

commit 5a0306f9c1cd3c60d8b4735565a8cd794eb20ca6
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-05-03 09:26:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [ruby/strscan] jruby: Pass end index to byteListToInum
    (https://github.com/ruby/strscan/pull/150)

    These parse methods take begin and end indices, not begin and length. A
    test is included.

    Fixes https://github.com/jruby/jruby/issues/8823

    https://github.com/ruby/strscan/commit/9690e39e73

commit 61b6f226e8b5067bf2bc38ea36a4540e45371702
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-06 18:22:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [ruby/json] Constify static data in fpconv.c

    https://github.com/ruby/json/commit/3b605d9b1e

commit 1f2a9dc2a912118e77ec9f01e9ad4002ccde52b5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-03 19:57:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 18:03:04 +0900

    [ruby/psych] Refine Ruby 3.5 Set support.

    Use feature testing to detect native Set,
    and don't rely on `Set#to_h` which wasn't intended
    as a public method.

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

commit 49b4e0350d1a55f9372760b0b164039c7535b85e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-08 16:11:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 16:50:45 +0900

    Make test/ruby/test_env.rb#test_delete_if_in_ractor easier to debug

commit 71baa6943ba755963e95735dd8c5750933d1879e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-08 16:05:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 16:50:45 +0900

    variable.c: Fix compilation warnings

    ```
    variable.c: In function ‘iterate_over_shapes_with_callback’:
    variable.c:2188:1: warning: control reaches end of non-void function [-Wreturn-type]
             2188 | }
                  | ^
    variable.c: In function ‘rb_field_get’:
    variable.c:1322:43: warning: ‘fields_tbl’ may be used uninitialized [-Wmaybe-uninitialized]
             1322 |         return fields_tbl->as.shape.fields[attr_index];
                  |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
    variable.c:1319:32: note: ‘fields_tbl’ was declared here
             1319 |         struct gen_fields_tbl *fields_tbl;
                  |
    ```

commit cf9046c00b985e46ae48f4a0871d1481ce987b99
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-08 01:17:16 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    Refactor `id_to_obj_tbl` compaction

    Use `st_foreach_with_replace` rather than to call `st_insert`
    from inside `st_foreach`, this saves from having to disable GC.

    Co-Authored-By: Peter Zhu <peter@peterzhu.ca>

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

commit 2d1241ba97a048830421f840a628471bbbeea469
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-08 00:56:13 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    Get rid of RB_GC_VM_ID_TO_OBJ_TABLE_KEYS

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

commit f48e45d1e9c4412d5f3ee49241d0b9359651ce7c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-21 16:16:07 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    Move `object_id` in object fields.

    And get rid of the `obj_to_id_tbl`

    It's no longer needed, the `object_id` is now stored inline
    in the object alongside instance variables.

    We still need the inverse table in case `_id2ref` is invoked, but
    we lazily build it by walking the heap if that happens.

    The `object_id` concern is also no longer a GC implementation
    concern, but a generic implementation.

    Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com>

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

commit d34c15054708c84e9d3305ede0752820b42ac498
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-21 12:01:01 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    shape.c: refactor frozen shape to no longer be final

    This opens the door to store more informations in shapes, such
    as the `object_id` or object address in case it has been observed
    and the object has to be moved.

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

commit 6c9b3ac232fc65f6019af28ec836aa59b8657b70
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 18:10:08 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    Refactor OBJ_TOO_COMPLEX_SHAPE_ID to not be referenced outside shape.h

    Also refactor checks for `->type == SHAPE_OBJ_TOO_COMPLEX`.

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

commit 0ea210d1ea257162642969edce665935cc87c643
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-30 16:42:57 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-08 14:58:05 +0900

    Rename `ivptr` -> `fields`,  `next_iv_index` -> `next_field_index`

    Ivars will longer be the only thing stored inline
    via shapes, so keeping the `iv_index` and `ivptr` names
    would be confusing.

    Instance variables won't be the only thing stored inline
    via shapes, so keeping the `ivptr` name would be confusing.

    `field` encompass anything that can be stored in a VALUE array.

    Similarly, `gen_ivtbl` becomes `gen_fields_tbl`.

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

commit 4e30b77b90e463997de265af1e7a5819b4c46fcc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-08 11:53:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-08 12:34:22 +0900

    Added depend file for test/-ext-/econv/test_append.rb

    https://github.com/ruby/ruby/commit/ce51ef30df5bf07ec3881a377f0011b8f20ec507 broke
    ext/-test-/econv/append.o. We should rebuild that object file when dependencies are updated.

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

commit 3e94b5f9c03ae09629b283b00cb461d6074a9019
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-05-07 05:46:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-08 00:47:13 +0900

    Remove dependence on internal/hash.h for default GC

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

commit d6d63b278ac1eb839518de709504bf3db3dc32d9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-02 18:17:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-07 07:32:18 +0900

    Enabled debug mode for CodeQL

commit cb772247e72ce3d3c7718018539508b0204c1f2c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-04-28 18:53:49 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-07 02:13:59 +0900

    Improve correctness contention for allocated object counts

    Currently the count of allocated object for a heap is incremented
    without regards to parallelism which leads to incorrect counts.

    By maintaining a local counter in the ractor newobj cache, and only
    syncing atomically with some granularity, we can improve the correctness
    without increasing contention.

    The allocated object count is also synced when the ractor is freed.

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

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

commit 925da368763487c495f47c9e7f17a252ff38a105
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-03 06:11:52 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-07 00:11:44 +0900

    Parse topn, opt_length, opt_size into HIR

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

commit cbf9c088f8005a49b6aa3f475c70041357774c61
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-06 05:35:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-06 05:35:28 +0900

    YJIT: End the block after OPTIMIZE_METHOD_TYPE_CALL (#13245)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 4621feb677b1f1f490e675bc122cf7cffd1a3da1
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-06 00:30:29 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-06 01:04:59 +0900

    ZJIT: Use 2024 edition for rustc-only release builds

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

commit e042e106444ca186561b3ca7e72a06ed4b2b3c07
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 22:55:42 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-05 22:55:42 +0900

    vm_dump.c: avoid `USE_MN_THREADS` is not defined warning

commit 3a2e56e6855b36ca4fe1e086c3eed89ec2c4af31
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 22:00:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-05 22:34:32 +0900

    Fix `USE_MN_THREADS=0` builds on macOS

    This was recently broken.

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

commit a3af4e905f66e9f95396ae5619cfb486feb6ee4a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 20:54:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-05 21:44:49 +0900

    Make rb_shape.capacity an `attr_index_t`

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

commit bbea71fafb41aeac1e813498acc26f7903af1efb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 20:47:08 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-05 21:44:49 +0900

    variable.c: Fix too_complex shape initialization

    `SHAPE_OBJ_TOO_COMPLEX` is a `shape_type` not a `shape_id_t`.

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

commit 53ae558042493fa0f2c4408e9fdc1afe290ef712
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-05 20:45:29 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-05 21:44:49 +0900

    Improve style consistency of `rb_shape_t *`

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

commit 5b1a61e29cb0773e2d8e8e40269dad1d972f348f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-05 17:44:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-05 19:20:31 +0900

    [ruby/digest] stringop-overread warning is since GCC 11

    https://github.com/ruby/digest/commit/d16853fe8c

commit bbf1130f918ca26e33aba4711ccf99a8083517ea
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-05 16:16:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-05-05 18:25:04 +0900

    Add `RBIMPL_ATTR_NONSTRING_ARRAY()` macro for GCC 15

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

commit ce51ef30df5bf07ec3881a377f0011b8f20ec507
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-28 09:23:04 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-05-05 09:46:32 +0900

    Save one VALUE per embedded RTypedData

    This halves the amount of memory used for embedded RTypedData if they
    are one VALUE (8 bytes on 64-bit platforms) over the slot size limit.

    For Set, on 64-bit it uses an embedded 56-byte struct.  With the
    previous implementation, the embedded structs starts at offset 32,
    resulting in a total size of 88.  Since that is over the 80 byte
    limit, it goes to the next highest bucket, 160 bytes, wasting 72
    bytes.  This allows it to fit in a 80 byte bucket, which reduces
    the total size for small sets of from 224 bytes (160 bytes
    embedded, 64 bytes malloc, 72 bytes wasted in embedding) to 144
    bytes (80 bytes embedded, 64 bytes malloc, 0 bytes wasted in
    embedding).

    Any other embedded RTypedData will see similar advantages if they
    are currently one VALUE over the limit.

    To implement this, remove the typed_flag from struct RTypedData.
    Embed the typed_flag information in the type member, which is
    now a tagged pointer using VALUE type, using the bottom low 2 bits
    as flags (1 bit for typed flag, the other for the embedded flag).
    To get the actual pointer, RTYPEDDATA_TYPE masks out
    the low 2 bits and then casts.  That moves the RTypedData data
    pointer from offset 32 to offset 24 (on 64-bit).

    Vast amount of code in the internals (and probably external C
    extensions) expects the following code to work for both RData and
    non-embedded RTypedData:

    ```c
    DATA_PTR(obj) = some_pointer;
    ```

    Allow this to work by moving the data pointer in RData between
    the dmark and dfree pointers, so it is at the same offset (24
    on 64-bit).

    Other than these changes to the include files, the only changes
    needed were to gc.c, to account for the new struct layouts,
    handle setting the low bits in the type member, and to use
    RTYPEDDATA_TYPE(obj) instead of RTYPEDDATA(obj)->type.

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

commit 35918df740018a510d0f9434e6eca2a2ad533003
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-04 02:39:06 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-05 06:14:44 +0900

    [DOC] Tweaks for String#+

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

commit d2de59798c286b37a901791c19991c66f5381f53
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-04 02:24:54 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-05 06:14:17 +0900

    [DOC] Tweaks for String#*

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

commit d71e171464a99f4f7ec735c9ef800ff3445b4a65
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-05-03 08:02:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-05-05 06:13:50 +0900

    [DOC] Tweaks for String#%

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

commit ce8f7da49e2fea995993b49aa7a26f7640c2e258
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-04 21:40:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-04 21:40:33 +0900

    [Bug #21304] Reload length and pointer after `#hash` method

    The receiver can be modified during the method calls.

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

    Merged-By: nobu <nobu@ruby-lang.org>

commit 21035c826db5933cf836a4a12fb74b696a76b255
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-04 03:20:23 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-05-04 04:10:57 +0900

    Handle mutating of array passed to Set.new during iteration

    This avoids a heap-use-after-free.

    Fixes [Bug #21306]

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

commit be665cf855d7b35ce166ea1137d4f8d0cac1010b
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-05-04 03:07:22 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-05-04 04:10:57 +0900

    Handle mutation of array being merged into set

    Check length of array during every iteration, as a #hash method
    could truncate the array, resulting in heap-use-after-free.

    Fixes [Bug #21305]

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

commit f3246ccebb0ccb8667fc6f143e69ecc2a9e3fb3c
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-04 01:47:03 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-05-04 02:20:42 +0900

    Fix an ASAN error in Array#difference

    [Bug #21303]

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

commit 2be117a97dc46b5f1e0c571d2de81b57905313d9
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-05-03 21:39:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-03 21:39:57 +0900

    Fix `heap-use-after-free` in `free_fast_fallback_getaddrinfo_entry` (#13231)

    This change addresses the following ASAN error:

    ```
    ==36597==ERROR: AddressSanitizer: heap-use-after-free on address 0x512000396ba8 at pc 0x7fcad5cbad9f bp 0x7fff19739af0 sp 0x7fff19739ae8
      WRITE of size 8 at 0x512000396ba8 thread T0
      [643/756] 36600=optparse/test_summary
          #0 0x7fcad5cbad9e in free_fast_fallback_getaddrinfo_entry /home/runner/work/ruby-dev-builder/ruby-dev-builder/ext/socket/raddrinfo.c:3046:22
          #1 0x7fcad5c9fb48 in fast_fallback_inetsock_cleanup /home/runner/work/ruby-dev-builder/ruby-dev-builder/ext/socket/ipsocket.c:1179:17
          #2 0x7fcadf3b611a in rb_ensure /home/runner/work/ruby-dev-builder/ruby-dev-builder/eval.c:1081:5
          #3 0x7fcad5c9b44b in rsock_init_inetsock /home/runner/work/ruby-dev-builder/ruby-dev-builder/ext/socket/ipsocket.c:1289:20
          #4 0x7fcad5ca22b8 in tcp_init /home/runner/work/ruby-dev-builder/ruby-dev-builder/ext/socket/tcpsocket.c:76:12
          #5 0x7fcadf83ba70 in vm_call0_cfunc_with_frame /home/runner/work/ruby-dev-builder/ruby-dev-builder/./vm_eval.c:164:15
    ...
    ```

    A `struct fast_fallback_getaddrinfo_shared` is shared between the main thread and two child threads.
    This struct contains an array of `fast_fallback_getaddrinfo_entry`.

    `fast_fallback_getaddrinfo_entry` and `fast_fallback_getaddrinfo_shared` were freed separately, and if `fast_fallback_getaddrinfo_shared` was freed first and then an attempt was made to free a `fast_fallback_getaddrinfo_entry`, a `heap-use-after-free` could occur.

    This change avoids that possibility by separating the deallocation of the addrinfo memory held by `fast_fallback_getaddrinfo_entry` from the access and lifecycle of the `fast_fallback_getaddrinfo_entry` itself.

  Notes:
    Merged-By: shioimm <shioi.mm@gmail.com>

commit 36c64b3be83f17992137d63ffd0b94f90e24424a
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-04-12 08:02:23 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-03 06:28:25 +0900

    Also prefer FL_TEST_RAW in gc.c

    Similar to 4a040eeb0d880b67a5005cce382122fd5b629b99, I noticed the test
    for FL_FINALIZE checking FL_ABLE in a profile, and we shouldn't need to
    do that here.

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

commit 23000c7339298d8888e161dcf11ad62c9053e180
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-03 05:01:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-03 05:01:22 +0900

    ZJIT: Parse opt_newarray_send into HIR (#13242)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 186022d13fc7542525049b6dee6cc6e6fbd0cf94
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-05-03 01:47:29 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-05-03 02:36:13 +0900

    wasm: increase the default Asyncify buffer size

    We will need more Asyncify space for the upcoming namespace changes
    as it will introduce more local variables and conditional jumps in
    asyncify'd functions.

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

commit 33909a1c69a5b76770a2e4fb9e630b0945572f36
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-01 17:05:23 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-02 23:47:57 +0900

    YJIT: ZJIT: Share identical glue functions

    Working towards having YJIT and ZJIT in the same build, we need to
    deduplicate some glue code that would otherwise cause name collision.
    Add jit.c for this and build it for YJIT and ZJIT builds. Update bindgen
    to look at jit.c; some shuffling of functions in the output, but the set
    of functions shouldn't have changed.

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

commit aafd10616d8b0b3331d80d69e8001651d9e30c91
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-05-01 17:33:27 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-05-02 23:47:57 +0900

    Add an include guard for insns_info.inc

    The JIT bindgens need this.

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

commit 85198262a33d82d02039b84dbb0fdbc81bec0c32
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-02 18:38:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 18:46:51 +0900

    [ruby/digest] Suppress false stringop-overread warning

    https://github.com/ruby/digest/commit/0df846e8c1

commit 277bcb717b49dcf567a5c10d9336b2904066146f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-02 17:16:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 18:46:51 +0900

    [ruby/digest] Move macros for warnings to defs.h

    https://github.com/ruby/digest/commit/70a805b872

commit ba6a36e653c40d10b9dc9d5b102c2a8b5885de90
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-11-07 11:00:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 18:20:47 +0900

    [ruby/digest] Fix `--without-common-digest` option

    In `digest_conf`, "no implicit conversion of false into String"
    TypeError is raised.

    https://github.com/ruby/digest/commit/89e5e5fe3a

commit 430789dec4df4c8294c135b6eff3cf2e6d78db76
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-05-02 15:05:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 15:27:11 +0900

    [ruby/psych] Ensure to remove the test constants

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

commit 0f066269150375982712bd4a918438db75256ba6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-02 10:11:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-02 10:11:09 +0900

    Bump up strscan version to 3.1.5.dev

commit af6d6b64eafc8f9353804cd8c8192a2afed0d6e5
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-04-29 07:17:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-02 09:52:38 +0900

    [ruby/strscan] named_captures: fix incompatibility with
    MatchData#named_captures
    (https://github.com/ruby/strscan/pull/146)

    Fix https://github.com/ruby/strscan/pull/145

    `MatchData#named_captures` use the last matched value for each name.

    Reported by Linus Sellberg. Thanks!!!

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

commit a1e627b7e3a081a9ab52b04ef4a8e4930caa0cf2
  Author:     nick evans <nick@rubinick.dev>
  AuthorDate: 2024-11-09 00:00:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-02 09:49:15 +0900

    [ruby/psych] Use `rb_struct_initialize` to initialize Data

    https://github.com/ruby/psych/commit/3573fb356e

commit 5d0708378ea0813b8a912e458a73c05b5d05f915
  Author:     Mike Perham <mike@perham.net>
  AuthorDate: 2025-04-29 00:05:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-02 09:49:15 +0900

    [rubygems/rubygems] Smoother authentication experience

    Copying the URL is painful here because the URL is embedded within a paragraph of text. I presume we don't want to automatically open the browser.

    Instead, move the URL to its own line so that "triple click" will automatically select the whole thing.

    https://github.com/rubygems/rubygems/commit/21532a69ae

commit 69bb2b3bb286b527a91b689dbb6b44308749f601
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-02 08:02:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-02 09:49:15 +0900

    Set is migrated to Core class

commit 48a360baa4570a31d760040118d005bb656c6389
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-04-29 01:54:25 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-02 08:58:06 +0900

    Fix C level backtraces for USE_ELF

    After upgrading GitHub to Ruby 3.4 we noticed that we stopped getting
    useful C level backtrace information in our crash reports. We traced it
    back to https://github.com/github/ruby/commit/7dd2afbe3a14d021e5554288517709f5778c3d58.

    Passing 0 instead of -1 made sense for the Mach-O version of
    `fill_lines`, but there is a separate ELF version of `fill_lines` that
    still has special handling for -1: https://github.com/ruby/ruby/blob/58e3aa02240a9ec1b5fe6ce60d63828c2cf0c73a/addr2line.c#L2178-L2209

    Without this special handling for the main executable, we don't have the
    right `base_addr` when reading debug info, and so we fail to populate
    the information for that line: https://github.com/ruby/ruby/blob/58e3aa02240a9ec1b5fe6ce60d63828c2cf0c73a/addr2line.c#L1948
    Then we get to https://github.com/ruby/ruby/blob/58e3aa02240a9ec1b5fe6ce60d63828c2cf0c73a/addr2line.c#L2649,
    and potentially (depending on how things were run) get back `"ruby"` as
    `info.dli_fname` instead of the absolute path for the executable. We set
    that as the `binary_filename` and then try to open it inside the next
    call to `fill_lines`, but that fails (unless you happen to be in the
    directory where the ruby executable lives) and break out of filling
    lines entirely: https://github.com/ruby/ruby/blob/58e3aa02240a9ec1b5fe6ce60d63828c2cf0c73a/addr2line.c#L2673-L2674

    This commit treats offset 0 as the main executable, rather than having
    a special meaning for -1 (which gets turned into 0 anyway).

    [Bug #21289]

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

commit 3176cd699359e5dc276f15452dc5ed828b58c628
  Author:     Sam Rawlins <sam.rawlins@gmail.com>
  AuthorDate: 2014-04-02 06:20:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 02:54:18 +0900

    [ruby/psych] fix error in @dispatch_catch

    https://github.com/ruby/psych/commit/9df5501fdc

commit 136dc52663b3e3a1a6c4efd3c4621ea2a7aacd17
  Author:     nick evans <nick@rubinick.dev>
  AuthorDate: 2024-10-29 04:41:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 02:52:14 +0900

    Add support for Data objects with ivars

    This sets the ivars _before_ calling initialize, which feels wrong.  But
    Data doesn't give us any mechanism for setting the members other than 1)
    initialize, or 2) drop down into the C API.  Since initialize freezes
    the object, we need to set the ivars before that.  I think this is a
    reasonable compromise—if users need better handling, they can implement
    their own `encode_with` and `init_with`.  But it will lead to unhappy
    surprises for some users.

    Alternatively, we could use the C API, similarly to Marshal.  Psych _is_
    already using the C API for path2class and build_exception.  This would
    be the least surprising behavior for users, I think.

commit a397e4d4b0a0e7e8499a33ec760dba97ce494c63
  Author:     nick evans <nick@rubinick.dev>
  AuthorDate: 2024-10-29 04:41:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 02:52:13 +0900

    [ruby/psych] Add support for ruby 3.2 Data objects

    https://github.com/ruby/psych/commit/788b844c83

commit bd1d6e8cd725e84addfac8583634458a624929ae
  Author:     Martin Meyerhoff <mamhoff@gmail.com>
  AuthorDate: 2025-02-05 02:00:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 02:50:13 +0900

    [ruby/psych] Fix loading/parsing regular expressions

    This fixes the issue where regular expression would come back slightly
    different after going through a YAML load/dump cycle. Because we're used
    to having to escape forward slashes in regular expression literals
    (because the literal is delimited by slashes), but the deserializer
    takes the literal output from `Regexp#inspect` and feeds it as a string
    into `Regexp.new`, which expects a string, not a Regexp literal, cycling
    did not properly work before this commit.

    I've also changed the code to be a bit more readable, I hope this
    doesn't affect performance.

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

commit 67b91e780798b80038dbfb39a06831918a75259f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-05-02 02:25:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-05-02 02:26:20 +0900

    Drop an ignored attribute

    GCC 13.3.0 (Ubuntu 24.04) emits the following warning:

    ../symbol.c: In function ‘rb_id_attrset’:
    ../symbol.c:175:9: warning: ‘nonstring’ attribute ignored on objects of type ‘const char[][8]’ [-Wattributes]
      175 |         RBIMPL_ATTR_NONSTRING() static const char id_types[][8] = {
          |         ^~~~~~~~~~~~~~~~~~~~~

commit b63c4d14f2a9f5455268b6ac6fb1b4b205edd80e
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-05-02 01:33:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-02 01:34:09 +0900

    [ruby/psych] Bump version for release

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

commit 79fe8aa0106cd06dd518cabb77cb8ee8236cac43
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-05-01 23:51:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-01 23:51:22 +0900

    [DOC] Tweaks for String.new

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13027

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 5cee3329df2963667d958cc7bb091f77ae9172aa
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 16:50:46 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-05-01 17:21:36 +0900

    Skip test affected by TracePoint-dependent allocation_class_path

    These assertions fail when TracePoint is enabled due to differing
    allocation context. Commented out for now until behavior is fixed.

    See [Bug #21298]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13228

commit de6e59e5ba038e4d1293b5d973a2c8b1d27b4ac6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-05-01 16:34:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-01 17:06:04 +0900

    Sync ruby/json

    Fix: https://github.com/ruby/json/issues/796

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13227

commit e8ad728209ee22136e61054fea74096b49088b8a
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 13:37:28 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-05-01 14:15:55 +0900

    Omit tests using ISeq#to_binary under coverage measurement

    ... because ISeq#to_binary does not work

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13225

commit 1c89b1ec6040f0b4ab6d1f7e3a7b5b4b0c459dd4
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-05-01 13:36:24 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-05-01 14:08:33 +0900

    Reset `GC.stress` to avoid slow coverage processing during process exit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13224

commit 994dadfbf4d090e73f996bafcc9d3d64892a57c6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-01 09:46:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-01 10:46:00 +0900

    Removed unused OS_VER variable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13220

commit 17912cb50085eb39785f189fe2975f4484a27aa3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-05-01 09:35:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-05-01 10:46:00 +0900

    windows-2019 will be EOL at end of June, 2025

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13220

commit 5411b504a5e75d553a423b4e5dbe63b9c45e906f
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-01 08:28:22 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-01 08:28:22 +0900

    ZJIT: Use RefCell to allow path compression in union-find (#13218)

    Use RefCell to allow path compression in union-find

    When I wrote the original version I didn't understand the interior
    mutability pattern, but now I do! With this commit, we should have a
    more optimal union-find implementation.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 7866e124a852c344b5762eb917c03a1f95d9058d
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-05-01 06:17:48 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-05-01 07:36:58 +0900

    Use rb_current_ec_noinline in assertions

    When doing a coroutine transfer from one thread to another, there's a
    risk that the compiler will reuse an address from TLS before the
    transfer to the new thread.

    These VM assertions are all in places we would not otherwise be reading
    from TLS, but using the value of `ec` or `cr` passed in. Switching these
    to test against rb_current_ec_noinline() instead ensures there isn't an
    optimization applied to how we read ruby_current_ec.

    Currently it seems we were hitting this on LLVM 18 specifically, but I
    don't know of any reason other versions wouldn't have the same issue.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13217

commit 73fdd90315a7038b060ec78ca0984951d13ccb4f
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-05-01 06:48:12 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-05-01 06:48:12 +0900

    ZJIT: Compile opt_new to slow-path SendWithoutBlock (#13216)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit c65991978baac17fbfd3bc09e58a35bb2e5f769e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-28 17:37:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-05-01 06:32:33 +0900

    get_next_shape_internal: Skip VM lock for single child case

    If the shape has only one child, we check it lock-free without
    compromising thread safety.

    I haven't computed hard data as to how often that it the case,
    but we can assume that it's not too rare for shapes to have
    a single child that is often requested, typically when freezing
    and object.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13191

commit f55138c9e7b6c62847eb4cefbfb452233615b59f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-30 16:13:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-05-01 03:31:33 +0900

    [ruby/psych] Handle Ruby 3.5 new Set class

    Since `Set` no longer is a regular object class holding a Hash
    it needs to be specially handled.

    https://github.com/ruby/psych/commit/c2d185d27c

commit 46c9e46ef624178dfa5abe5f76ab2142e07c3b29
  Author:     Matt Valentine-House <matt@eightbitraptor.com>
  AuthorDate: 2025-04-30 21:54:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-30 22:41:21 +0900

    [ruby/mmtk] Exclude the test_ractor_parallel test with MMTk

    https://github.com/ruby/mmtk/commit/86b0dbeca8

commit 59a902cd790f5e9ecff9b711ebbf31a735736780
  Author:     Matt Valentine-House <matt@eightbitraptor.com>
  AuthorDate: 2025-04-30 19:48:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-30 22:41:21 +0900

    [ruby/mmtk] test_finalize is in TestObjectSpace not TestObjSpace

    These filenames are passed into test classes, and the tests we're trying
    to exclude exist in TestObjectSpace in the Ruby repo, not TestObjSpace

    https://github.com/ruby/mmtk/commit/195728dc8c

commit b42afa1dbcbb91e89852b3b3bc72484d7f0a5528
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-30 18:35:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-30 20:04:10 +0900

    Suppress gcc 15 unterminated-string-initialization warnings

commit 719486a642f0e282b02b958069b8b39b85b3aa1e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-04-29 21:13:17 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-04-30 19:44:59 +0900

    Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions

    Fixes [Bug #21286]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13202

commit 39ba16e5a1dea831e2f73c34a735249a4d4cb0a9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-30 15:13:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-30 16:59:25 +0900

    Re-enabled repl_type_completor test with upstream fix

    https://github.com/ruby/repl_type_completor/pull/62

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13211

commit 8b4017584b1478c0d3cfe0dbd88c01539db1e071
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-30 15:26:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-30 16:59:16 +0900

    Use EnvUtil.apply_timeout_scale for test_io_wait.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13212

commit 142998fdaa9a801ccba8a9c0fd321f866adcaec6
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-30 16:04:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-30 16:04:02 +0900

    Update bundled gems list as of 2025-04-30

commit 6e7825316ed572e56f6e1baabe63ef5fbc421c76
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-29 01:50:24 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Remove explicit include of extconf.h

    https://github.com/ruby/json/commit/6b059900de

    .

commit 6ba0dc4d971e179e6b73273bc08ac8ebffe0fbd9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-29 01:01:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Fix --with-static-linked-ext builds

    https://github.com/ruby/json/commit/d7d60cccb0

commit 338adad8ba0c1f61cb9a86612a35448213e90f74
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-28 23:15:36 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Fix i686 builds

    We should test compilation with `-msse2` because we need to
    test with whatever arguments Ruby will be compiled with.

    https://github.com/ruby/json/commit/0a871365db

commit b5beed45a22265f9537d23717637f6067458c834
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-28 22:23:48 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] SIMD: Match control char and double quote in one pass

    `c < 32 || c == 34` is equivalent to `c ^ 2 < 33`.

    Found in: https://lemire.me/blog/2025/04/13/detect-control-characters-quotes-and-backslashes-efficiently-using-swar/

    The gain seem mostly present on micro-benchmark, and even there aren't
    very consistent, but it's never slower.

    ```
    == Encoding long string (124001 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after     5.295k i/100ms
    Calculating -------------------------------------
                   after     55.796k (± 3.4%) i/s   (17.92 μs/i) -    280.635k in   5.035690s

    Comparison:
                  before:    49840.7 i/s
                   after:    55795.8 i/s - 1.12x  faster
    ```

    https://github.com/ruby/json/commit/034c5debd8

commit b7d1e33f26be7610df27d5c4538f443e81f986fa
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-28 22:08:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    Update ext/json/generator/depend

commit a3ec53bbb0337121d3518d069516bb7b3a795e96
  Author:     Scott Myron <samyron@gmail.com>
  AuthorDate: 2025-04-28 21:57:10 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Introduce ARM Neon and SSE2 SIMD.
    (https://github.com/ruby/json/pull/743)

    See the pull request for the long development history: https://github.com/ruby/json/pull/743

    ```
    == Encoding activitypub.json (52595 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after     2.913k i/100ms
    Calculating -------------------------------------
                   after     29.377k (± 2.0%) i/s   (34.04 μs/i) -    148.563k in   5.059169s

    Comparison:
                  before:    23314.1 i/s
                   after:    29377.3 i/s - 1.26x  faster

    == Encoding citm_catalog.json (500298 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after   152.000 i/100ms
    Calculating -------------------------------------
                   after      1.569k (± 0.8%) i/s  (637.49 μs/i) -      7.904k in   5.039001s

    Comparison:
                  before:     1485.6 i/s
                   after:     1568.7 i/s - 1.06x  faster

    == Encoding twitter.json (466906 bytes)
    ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/d2930f8e7a) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
                   after   309.000 i/100ms
    Calculating -------------------------------------
                   after      3.115k (± 3.1%) i/s  (321.01 μs/i) -     15.759k in   5.063776s

    Comparison:
                  before:     2508.3 i/s
                   after:     3115.2 i/s - 1.24x  faster
    ```

    https://github.com/ruby/json/commit/49003523da

commit 7f0c6d30d3d42a9d9ee9ab79e2acd86baa9184f4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-27 19:35:01 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Use RB_TYPE_P

    https://github.com/ruby/json/commit/b14250f1da

commit 5566a7f7402197002a8d12420230f32d5fff727b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-27 18:10:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Handle non-string keys returning immediate values via `to_s`

    We can't directly call `RBASIC_CLASS` as the return value of
    `to_s` may be an immediate.

    https://github.com/ruby/json/commit/12dc394d11

commit 1103611600fd64569b450619bca68f7ef00dddfb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-25 15:02:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Release 2.11.3

    https://github.com/ruby/json/commit/3e025f76d7

commit 8fe3fb5d5a020d9c567cce92dc8812ae7bd8c327
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-25 14:35:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:12:41 +0900

    [ruby/json] Stop caching the generator state pointer

    Fix: https://github.com/ruby/json/issues/790

    If we end up calling something that spills the state
    on the heap, the pointer we received is outdated and
    may be out of sync.

    https://github.com/ruby/json/commit/2ffa4ea46b

commit 18dac125cb48768b546a5913378e7349ee687492
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-29 16:50:47 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 15:10:55 +0900

    Improve syntax style consistency in shape.c and shape.h

    Most of this code use the `type * name` style, while the
    overwhemling majority of the rest of ruby use the `type *name`
    style.

    This is a cosmetic change, but helps with readability.

commit cbc045a0eaf1c4d4221dedf3f882a8d62bfb7ce7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-30 09:33:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-30 13:12:19 +0900

    Added GCC 15 build

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13210

commit 6f1caa561c4d362220674e5d07502f6477059dc4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-30 07:54:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-30 07:54:25 +0900

    Update auto_request_review config for YJIT/ZJIT (#13209)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 87117756b52f3f380dbfde6ff78c7720e5507ce0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-30 05:37:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 06:19:51 +0900

    st.c: Removed unused `set_add_direct_with_hash` function

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13208

commit b5426826f90d02ae0b1b6997acd9d14c55f0c2da
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-30 05:36:06 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-30 05:36:06 +0900

    test/ruby/test_set.rb: mmtk doesn't have GC.compact

commit 203614080f2e944abb190a130b07685b0373da03
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-30 02:02:00 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-30 05:33:23 +0900

    opt_new needs to happen after safe navigation

    If safe navigation instructions happen first, we get a stack
    inconsistency error.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13205

commit e6974be5458907d4e809a84d775c3e6b7f4fcea9
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-30 03:33:42 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-30 05:33:10 +0900

    Don't call hash tombstone compaction from GC compaction

    Tombstone removal may possibly require allocation, and we're not allowed
    to allocate during GC.  This commit also renames `set_compact` to
    `set_update_references` to differentiate tombstone removal compaction with GC
    object compaction.

    Co-Authored-By: Max Bernstein <max.bernstein@shopify.com>
    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13206

commit 9cdc46587d8dbe55201acbf90e20523479b6c03c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-30 03:10:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-30 03:10:49 +0900

    Explain a missing USE_ZJIT check on rb_vm_max_insn_name_size

commit 0f3d6ee57825f6ecbcbab797ef8e9ca9f84bc095
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-30 03:03:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-30 03:03:13 +0900

    ZJIT: Disable ZJIT instructions when USE_ZJIT is 0 (#13199)

    * ZJIT: Disable ZJIT instructions when USE_ZJIT is 0

    * Test the order of ZJIT instructions

    * Add more jobs that disable JITs

    * Show instruction names in the message

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 0c44e5ab5efc3a54a0d18bf9c2a206c714e1d1c7
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-29 00:09:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-30 03:01:33 +0900

    Make sure to call find() on basic block arguments

    This ensures basic block arguments keep instructions alive, etc.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13204

commit b970ff1850ba88717d11a9ced55fb83334b38ffe
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-30 01:27:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-30 03:01:33 +0900

    Default instruction output type to Any

    If we're adding a bunch of instructions in the middle of an optimization
    pass, we don't want to use their (currently uninitialized) types because
    they start as Empty, and Empty is a subtype of everything. This breaks
    some optimizations.

    This Any will get refined the next time we call infer_types.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13204

commit 608fe6ee535e10b0203516b9d8c8039703aea3c5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-30 01:50:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-30 01:50:05 +0900

    ZJIT: Handle ZJIT options properly (#13197)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 10fd5a6357aceed4778bedf389e6a4cbf3ea294a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-29 21:05:55 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-30 01:13:25 +0900

    Add tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13198

commit b42c8398ba84437cd6e96cbf6ccaf5ac5eff32b6
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-29 03:54:39 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-30 01:13:25 +0900

    Don't support blockarg in opt_new

    We don't calculate the correct argc so the bookkeeping slot is something
    else (unexpected) instead of Qnil (expected).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13198

commit 6052b12de484eb675fd3cdb6c6ff32a3e1b90b72
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-29 04:10:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-29 04:10:26 +0900

    ZJIT: Replace GetConstantPath with Const if the IC is not empty (#13183)

    * Add rb_zjit_constcache_shareable

    * Add rb_zjit_multi_ractor_p

    * Replace GetConstantPath with Const if the IC is not empty

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 1e416685fd8f5b6877c78b8f02e660ce68fdc4ba
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-29 04:08:32 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-29 04:08:32 +0900

    ZJIT: Drop a duplicated call into optimize (#13196)

    * ZJIT: Drop a duplicated call into optimize

    * Update a comment

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

    ---------

    Co-authored-by: Max Bernstein <tekknolagi@gmail.com>

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 9996d692f4cd4194dcc699083e38fb5236ac987c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-29 03:45:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-29 03:45:54 +0900

    Add comments for cryptic functions in iseq.c

commit 58e3aa02240a9ec1b5fe6ce60d63828c2cf0c73a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-29 01:25:56 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-29 01:25:56 +0900

    ZJIT: Drop trace_zjit_* instructions (#13189)

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 926411171d296859839745a536aa86bc1e18aa76
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-29 00:38:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-29 00:38:35 +0900

    Support Marshal.{dump,load} for core Set

    This was missed when adding core Set, because it's handled
    implicitly for T_OBJECT.

    Keep marshal compatibility between core Set and stdlib Set,
    so you can unmarshal core Set with stdlib Set and vice versa.

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13185

    Merged-By: jeremyevans <code@jeremyevans.net>

commit 80a1a1bb8ae8435b916ae4f66a483e91ad31356a
  Author:     Rian McGuire <rian@rian.id.au>
  AuthorDate: 2025-04-28 21:50:29 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-28 21:50:29 +0900

    YJIT: Fix potential infinite loop when OOM (GH-13186)

    Avoid generating an infinite loop in the case where:
    1. Block `first` is adjacent to block `second`, and the branch from `first` to
       `second` is a fallthrough, and
    2. Block `second` immediately exits to the interpreter, and
    3. Block `second` is invalidated and YJIT is OOM

    While pondering how to fix this, I think I've stumbled on another related edge case:
    1. Block `incoming_one` and `incoming_two` both branch to block `second`. Block
       `incoming_one` has a fallthrough
    2. Block `second` immediately exits to the interpreter (so it starts with its exit)
    3. When Block `second` is invalidated, the incoming fallthrough branch from
       `incoming_one` might be rewritten first, which overwrites the start of block
       `second` with a jump to a new branch stub.
    4. YJIT runs of out memory
    5. The incoming branch from `incoming_two` is then rewritten, but because we're
       OOM we can't generate a new stub, so we use `second`'s exit as the branch
       target. However `second`'s exit was already overwritten with a jump to the
       branch stub for `incoming_one`, so `incoming_two` will end up jumping to
       `incoming_one`'s branch stub.

    Fixes [Bug #21257]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13186

    Merged-By: XrXr

commit 73f8d0a9c8ff4bc3d9380a09ec8de2c6f100320c
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-28 09:03:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-28 15:09:56 +0900

    Fix nondeterministic failure in test_latest_gc_info_weak_references_count

    Clear the ary variable before setting it to nil.  Otherwise, if
    the previous ary value was somewhere on the stack, all references
    in it would be considered live, and the wmap size would be 10000.

commit 3ec7bfff2e7ac4f6f69d26676edcfd2e73ea3b05
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-27 15:05:43 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-27 18:59:28 +0900

    Use a `set_table` for `rb_vm_struct.unused_block_warning_table`

    Now that we have a hash-set implementation we can use that
    instead of a hash-table with a static value.

commit 6874b289a199db74fac4126cbefe7cfac491cda0
  Author:     刘皓 <whiteaxe@tuta.io>
  AuthorDate: 2025-04-22 00:02:15 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-04-27 15:47:30 +0900

    Free jump buffers leaked by `cont_restore_thread` in WASI builds

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13142

commit 45e814d1167d4e270621249bf2cc72676c54cf58
  Author:     刘皓 <whiteaxe@tuta.io>
  AuthorDate: 2025-04-21 03:48:02 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-04-27 15:47:30 +0900

    Fix jump buffer leak in WASI builds

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13142

commit 687bd837244309fa293d6e08d0e13a662fce3a83
  Author:     Taketo Takashima <t.taketo1113@gmail.com>
  AuthorDate: 2024-08-07 19:18:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-26 20:56:42 +0900

    [ruby/ipaddr] Added IPAddr#+/-

    https://github.com/ruby/ipaddr/commit/78b4f53bf5

commit c0417bd094abcc68be913ce49a430df7cefbcd44
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-26 14:56:54 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-26 19:10:32 +0900

    Use `set_table` to track const caches

    Now that we have a `set_table` implementation, we can
    use it to track const caches and save some memory.

    We could even save some more memory if `numtable` didn't
    store a copy of the `hash` and instead recomputed it every
    time, but this is a quick win.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13184

commit e4f85bfc311a3812de7bc2e9d068934e8b364574
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-06 09:57:43 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-04-26 10:31:11 +0900

    Implement Set as a core class

    Set has been an autoloaded standard library since Ruby 3.2.
    The standard library Set is less efficient than it could be, as it
    uses Hash for storage, which stores unnecessary values for each key.

    Implementation details:

    * Core Set uses a modified version of `st_table`, named `set_table`.
      than `s/st_/set_/`, the main difference is that the stored records
      do not have values, making them 1/3 smaller. `st_table_entry` stores
      `hash`, `key`, and `record` (value), while `set_table_entry` only
      stores `hash` and `key`.  This results in large sets using ~33% less
      memory compared to stdlib Set.  For small sets, core Set uses 12% more
      memory (160 byte object slot and 64 malloc bytes, while stdlib set
      uses 40 for Set and 160 for Hash).  More memory is used because
      the set_table is embedded and 72 bytes in the object slot are
      currently wasted. Hopefully we can make this more efficient and have
      it stored in an 80 byte object slot in the future.

    * All methods are implemented as cfuncs, except the pretty_print
      methods, which were moved to `lib/pp.rb` (which is where the
      pretty_print methods for other core classes are defined).  As is
      typical for core classes, internal calls call C functions and
      not Ruby methods.  For example, to check if something is a Set,
      `rb_obj_is_kind_of` is used, instead of calling `is_a?(Set)` on the
      related object.

    * Almost all methods use the same algorithm that the pure-Ruby
      implementation used.  The exception is when calling `Set#divide` with a
      block with 2-arity.  The pure-Ruby method used tsort to implement this.
      I developed an algorithm that only allocates a single intermediate
      hash and does not need tsort.

    * The `flatten_merge` protected method is no longer necessary, so it
      is not implemented (it could be).

    * Similar to Hash/Array, subclasses of Set are no longer reflected in
      `inspect` output.

    * RDoc from stdlib Set was moved to core Set, with minor updates.

    This includes a comprehensive benchmark suite for all public Set
    methods.  As you would expect, the native version is faster in the
    vast majority of cases, and multiple times faster in many cases.
    There are a few cases where it is significantly slower:

    * Set.new with no arguments (~1.6x)
    * Set#compare_by_identity for small sets (~1.3x)
    * Set#clone for small sets (~1.5x)
    * Set#dup for small sets (~1.7x)

    These are slower as Set does not currently use the AR table
    optimization that Hash does, so a new set_table is initialized for
    each call.  I'm not sure it's worth the complexity to have an AR
    table-like optimization for small sets (for hashes it makes sense,
    as small hashes are used everywhere in Ruby).

    The rbs and repl_type_completor bundled gems will need updates to
    support core Set.  The pull request marks them as allowed failures.

    This passes all set tests with no changes.  The following specs
    needed modification:

    * Modifying frozen set error message (changed for the better)
    * `Set#divide` when passed a 2-arity block no longer yields the same
      object as both the first and second argument (this seems like an issue
      with the previous implementation).
    * Set-like objects that override `is_a?` such that `is_a?(Set)` return
      `true` are no longer treated as Set instances.
    * `Set.allocate.hash` is no longer the same as `nil.hash`
    * `Set#join` no longer calls `Set#to_a` (it calls the underlying C
       function).
    * `Set#flatten_merge` protected method is not implemented.

    Previously, `set.rb` added a `SortedSet` autoload, which loads
    `set/sorted_set.rb`.  This replaces the `Set` autoload in `prelude.rb`
    with a `SortedSet` autoload, but I recommend removing it and
    `set/sorted_set.rb`.

    This moves `test/set/test_set.rb` to `test/ruby/test_set.rb`,
    reflecting that switch to a core class.  This does not move the spec
    files, as I'm not sure how they should be handled.

    Internally, this uses the st_* types and functions as much as
    possible, and only adds set_* types and functions as needed.
    The underlying set_table implementation is stored in st.c, but
    there is no public C-API for it, nor is there one planned, in
    order to keep the ability to change the internals going forward.

    For internal uses of st_table with Qtrue values, those can
    probably be replaced with set_table.  To do that, include
    internal/set_table.h.  To handle symbol visibility (rb_ prefix),
    internal/set_table.h uses the same macro approach that
    include/ruby/st.h uses.

    The Set class (rb_cSet) and all methods are defined in set.c.
    There isn't currently a C-API for the Set class, though C-API
    functions can be added as needed going forward.

    Implements [Feature #21216]

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
    Co-authored-by: Oliver Nutter <mrnoname1000@riseup.net>

commit b1283b45e6246a85ce34be54e5806fb0ca2e3d2d
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-26 04:20:00 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-26 05:46:05 +0900

    maybe fix bindgen

commit ec3b48d3da437e3358f4b7ae1ae007741f4ccd7b
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-08 07:28:53 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-26 05:46:05 +0900

    Deopt if iseq trace events are enabled

commit f15d85f0864a68944d769c353e88543ce5775b31
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-08 07:09:16 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-26 05:46:05 +0900

    Add parse.y implementation

commit 3552d446ca9e4ebbbbbe54b472b3629d8857f17e
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-08 05:29:58 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-26 05:46:05 +0900

    update allocation location tests

commit 8ac8225c504dee57454131e7cde2c47126596fdc
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-18 08:59:19 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-26 05:46:05 +0900

    Inline Class#new.

    This commit inlines instructions for Class#new.  To make this work, we
    added a new YARV instructions, `opt_new`.  `opt_new` checks whether or
    not the `new` method is the default allocator method.  If it is, it
    allocates the object, and pushes the instance on the stack.  If not, the
    instruction jumps to the "slow path" method call instructions.

    Old instructions:

    ```
    > ruby --dump=insns -e'Object.new'
    == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,10)>
    0000 opt_getconstant_path                   <ic:0 Object>             (   1)[Li]
    0002 opt_send_without_block                 <calldata!mid:new, argc:0, ARGS_SIMPLE>
    0004 leave
    ```

    New instructions:

    ```
    > ./miniruby --dump=insns -e'Object.new'
    == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,10)>
    0000 opt_getconstant_path                   <ic:0 Object>             (   1)[Li]
    0002 putnil
    0003 swap
    0004 opt_new                                <calldata!mid:new, argc:0, ARGS_SIMPLE>, 11
    0007 opt_send_without_block                 <calldata!mid:initialize, argc:0, FCALL|ARGS_SIMPLE>
    0009 jump                                   14
    0011 opt_send_without_block                 <calldata!mid:new, argc:0, ARGS_SIMPLE>
    0013 swap
    0014 pop
    0015 leave
    ```

    This commit speeds up basic object allocation (`Foo.new`) by 60%, but
    classes that take keyword parameters see an even bigger benefit because
    no hash is allocated when instantiating the object (3x to 6x faster).

    Here is an example that uses `Hash.new(capacity: 0)`:

    ```
    > hyperfine "ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end'" "./ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end'"
    Benchmark 1: ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end'
      Time (mean ± σ):      1.082 s ±  0.004 s    [User: 1.074 s, System: 0.008 s]
      Range (min … max):    1.076 s …  1.088 s    10 runs

    Benchmark 2: ./ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end'
      Time (mean ± σ):     627.9 ms ±   3.5 ms    [User: 622.7 ms, System: 4.8 ms]
      Range (min … max):   622.7 ms … 633.2 ms    10 runs

    Summary
      ./ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end' ran
        1.72 ± 0.01 times faster than ruby --disable-gems -e'i = 0; while i < 10_000_000; Hash.new(capacity: 0); i += 1; end'
    ```

    This commit changes the backtrace for `initialize`:

    ```
    aaron@tc ~/g/ruby (inline-new)> cat test.rb
    class Foo
      def initialize
        puts caller
      end
    end

    def hello
      Foo.new
    end

    hello
    aaron@tc ~/g/ruby (inline-new)> ruby -v test.rb
    ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin24]
    test.rb:8:in 'Class#new'
    test.rb:8:in 'Object#hello'
    test.rb:11:in '<main>'
    aaron@tc ~/g/ruby (inline-new)> ./miniruby -v test.rb
    ruby 3.5.0dev (2025-03-28T23:59:40Z inline-new c4157884e4) +PRISM [arm64-darwin24]
    test.rb:8:in 'Object#hello'
    test.rb:11:in '<main>'
    ```

    It also increases memory usage for calls to `new` by 122 bytes:

    ```
    aaron@tc ~/g/ruby (inline-new)> cat test.rb
    require "objspace"

    class Foo
      def initialize
        puts caller
      end
    end

    def hello
      Foo.new
    end

    puts ObjectSpace.memsize_of(RubyVM::InstructionSequence.of(method(:hello)))
    aaron@tc ~/g/ruby (inline-new)> make runruby
    RUBY_ON_BUG='gdb -x ./.gdbinit -p' ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems  ./test.rb
    656
    aaron@tc ~/g/ruby (inline-new)> ruby -v test.rb
    ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin24]
    544
    ```

    Thanks to @ko1 for coming up with this idea!

    Co-Authored-By: John Hawthorn <john@hawthorn.email>

commit e0545a02503983e8824d0fb5972c15d51093d927
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-26 03:04:45 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-26 03:04:45 +0900

    ZJIT: Bail out of HIR translation if we can't handle a send flag (#13182)

    Bail out of HIR translation if we can't handle a send flag

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 871d07a20e3de00bdd15a2d522e9a4220889fe60
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-26 01:33:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-26 01:33:51 +0900

    ZJIT: Emit CCall if we know the type statically, not just from profiles (#13173)

    Emit CCall if we know the type statically, not just from profiles

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit c772d2691dabd15f2b6fcb8bddce64c4385b3b23
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-25 19:40:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-25 19:40:04 +0900

    Count metadata entries automatically from the names list

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13181

commit 62a7f17157c5c67956d95a2582f8f256df13f9e2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-25 17:35:18 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-25 18:17:31 +0900

    Update `RB_GC_OBJECT_METADATA_ENTRY_COUNT`

    In cb1ea54bbf6cdf49c53f42720fec1a151069810c I added one more
    metadata flag, but didn't notice `RB_GC_OBJECT_METADATA_ENTRY_COUNT`
    had to be incremented.

    This should fix ASAN builds.

    Interestingly, bdb25959fb047af0358f33d7327b7752dca14aa4 already
    caused the count to be off by one, so I had to increment it by
    2.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13179

commit f501d114ad7fd5ada5e711ddbd6c7feaaad1fc22
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-25 16:19:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 16:37:03 +0900

    Use OS label for actions/cache. vcpkg only uses same os cache

commit b3566e9ef294ef5831be5d5d591ba15616d33a0e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-25 13:33:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 16:25:21 +0900

    [rubygems/rubygems] bin/rubocop -a --only Style/StringLiterals

    https://github.com/rubygems/rubygems/commit/62e1bf2d37

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13177

commit 24c838f92e7df02847ecb9d607d5b988aebc8153
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-25 16:03:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-25 16:03:06 +0900

    Update bundled gems list as of 2025-04-25

commit ffa40d3418360eb58423ef1a5756d2ec7b18e8e7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-25 13:13:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 14:24:41 +0900

    Use actions/cache instead of vcpkg built-in cache feature

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13176

commit 08f62809ea1da8c7b0ff1e447f189b447b22c382
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-25 13:06:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 14:24:41 +0900

    Revert "Extract windows-11-arm job from windows.yml because it may ignored vcpkg binary cache for x64-windows"

    This reverts commit 8e258af5b083a417a8f5e424a2c7d2c4800f8ca2.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13176

commit 8e258af5b083a417a8f5e424a2c7d2c4800f8ca2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-25 09:10:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:37:18 +0900

    Extract windows-11-arm job from windows.yml because it may ignored vcpkg binary cache for x64-windows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13174

commit 6f336d1b154e608d5200bd8de484737ed3f8bda6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-10 23:42:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:12:03 +0900

    [rubygems/rubygems] Remove shellwords autoload

    https://github.com/rubygems/rubygems/commit/2af1646776

commit db660382858da75c475b679799a596a330181e4d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-25 01:34:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:11:22 +0900

    [ruby/json] Release 2.11.2

    https://github.com/ruby/json/commit/c985e8c6ea

commit 05f949ebbff5c2b6cce01598cc069472bfbe52d2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-25 01:21:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:11:21 +0900

    [ruby/json] Bring back JSON::PRETTY_STATE_PROTOTYPE with a deprecation

    Fix: https://github.com/ruby/json/issues/788

    `multi_json` rely on it, even though it was never documented as
    public API.

    Bringing it back as a method so it can emit a deprecation warning.

    https://github.com/ruby/json/commit/123121bba2

commit 1d65d5ce473ed098a02aa0150f318f3fc69a1e80
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-24 22:09:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:11:20 +0900

    [ruby/json] Release 2.11.1

    https://github.com/ruby/json/commit/84443e881d

commit 2b5e1db2dbd98260221050eb33731bb8d7539295
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-24 21:59:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:11:19 +0900

    [ruby/json] Bring back the numerous deprecated alias

    This time with explicit deprecation warnings.

    https://github.com/ruby/json/commit/0dee9bdad9

commit 169b33d1d5532043ad6c56bb482a69e2d437c9d8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-24 17:11:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-25 11:11:18 +0900

    [ruby/json] Release 2.11.0

    https://github.com/ruby/json/commit/a6949f8656

commit 9aed9e94867654b94d88be141026110d1f247bb5
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-25 08:41:34 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-25 08:41:34 +0900

    ZJIT: Fold Send into SendWithoutBlockDirect if we know the class statically (#13172)

    Fold Send into SendWithoutBlockDirect if we know the class statically

    This applies for constants and also for values where we know the type
    for other reasons.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 71166f60d95f0d78de5f151205ef6060de5e054e
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-25 01:40:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-25 03:33:11 +0900

    Add tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13162

commit c2677f4d0ba7ef3741020c754a498e4582cfe708
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-24 00:57:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-25 03:33:11 +0900

    Make type_of use union-find

    Otherwise we might have stale types floating around

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13162

commit 4c1f29fd58dd9ad9ad84cf25ac5b034869e42779
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-24 00:06:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-25 03:33:11 +0900

    Make PatchPoint(CalleeModifiedLocals) implicit

    We don't have a good model for modeling weakref-like instruction
    dependency behavior and I don't think we should add it just for this.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13162

commit b437a3eeab340018a36694f079f37effe1aa0047
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-24 00:02:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-25 03:33:11 +0900

    Strength reduce sends on Fixnums in the optimizer instead of HIR builder

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13162

commit f36f792091df3c6bcdbc2f7793d47431c0df3e44
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-23 21:57:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-25 03:33:11 +0900

    Simplify fixnum guarding code

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13162

commit bbd5d3348b519035a5d2cdf777e7c8d5c143055c
  Author:     Masafumi Koba <473530+ybiquitous@users.noreply.github.com>
  AuthorDate: 2025-04-24 20:13:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 21:15:27 +0900

    Fix tiny typo in syntax/exceptions.rdoc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13171

commit 18f8c514ea1c97c5ecbbf285d2f529284247f423
  Author:     Hiroya Fujinami <make.just.on@gmail.com>
  AuthorDate: 2025-04-24 21:03:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-24 21:03:24 +0900

    Fix memoization for the `/(...){0}/` case (#13169)

    In this case, the previous implementation counted an extra number of
    opcodes to cache and the matching was unstable on memoization.

    This patch is to fix that problem by not counting an number of opcodes
    to cache in the parentheses of `(...){0}`.

  Notes:
    Merged-By: makenowjust <make.just.on@gmail.com>

commit 5113869f5d0c6f6a0349a23f479240210fefe5d0
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-04-24 17:59:16 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-04-24 19:06:49 +0900

    Fix a flaky test by making sure that a test thread stops

    ```
        1) Failure:
      TestThread#test_join_argument_conversion [D:/a/ruby/ruby/src/test/ruby/test_thread.rb:249]:
      Expected nil (oid=4) to be the same as #<TestThread::Thread:0x000001e9e13bbc18 D:/a/ruby/ruby/src/test/ruby/test_thread.rb:245 run> (oid=3856).
    ```
    https://github.com/ruby/ruby/actions/runs/14636019219/job/41067199813?pr=13169

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13170

commit 842547604c5fea78bab4a5edf102e2a7081d6740
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 14:46:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 18:40:28 +0900

    Move VCPKG_BINARY_SOURCES to global environmental variable on workflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13166

commit 5dc155351a23465ace10f32e8775fc5e23909d6e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-24 11:01:42 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-24 17:28:18 +0900

    Do not allocate new objects at machine stack overflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13167

commit cb1ea54bbf6cdf49c53f42720fec1a151069810c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-21 10:21:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-24 17:14:29 +0900

    objspace_dump: Include `shareable` flag

    Given that the currently planned ractor local GC implementation
    performance will heavilly be influenced by the number of shareable
    objects it would be valuable to be able to know how many of them
    are in the heap.

commit 7af5a632f42b031767cc211543aa4aee75b6fafc
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-24 16:03:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-24 16:03:05 +0900

    Update bundled gems list as of 2025-04-24

commit d34ba74ca5d91e940fc2a555a359f1a056a5072f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 11:47:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 14:06:16 +0900

    Added --vcpkg-root for fixing mismatched vcpkg root with scoop version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13165

commit 0714867dbab3e156690bf67db44f3bc69c987d04
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 10:57:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 14:06:16 +0900

    codeql-trap cache is growing over 300MB. We should enable to cleanup needless cache from actions/cache

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13165

commit f0dda0534be8befd0d6223531f70df8b12ade9cc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 10:14:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 12:15:11 +0900

    Rewrite CGI.parse with URI.decode_www_form_component

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit a23ce6d3a5c4a52ed302e6d335fd0721f1e38738
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 10:08:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 12:15:11 +0900

    Removed unused cgi library

commit a88c5b501ccc0187ac6a6db48d69bc408c50b40d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-24 10:04:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-24 12:15:11 +0900

    Use cgi/util if that uses like CGI.escape methods

commit bf3be2723ab888037c1d47114ffcde85b87155ee
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-24 05:45:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-24 05:45:10 +0900

    ZJIT: Fix README example command (#13163)

    Fix README example command

commit 1f090403e205de5efedde80915d74170cb0b5b2d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-23 23:11:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-24 01:35:00 +0900

    Fix comparison of signed and unsigned integers

    ```
    ../string.c:660:38: warning: comparison of integers of different signs: 'rb_atomic_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
      660 |             RUBY_ASSERT(table->count < table->capacity / 2);
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13160

commit 7d7478c7bc92ab26703892ee301f890420bd914a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-23 18:42:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-23 19:05:31 +0900

    Run auto-style.rb only on ruby/ruby

    `github.event.before` for newly pushed branch is all zero and cannot
    check out.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13158

commit 1048b162dea92e015e7136765b5f8fb179b0aa5c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-22 19:38:35 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-23 18:54:29 +0900

    Eagerly store a copy of `object_id` in finalizer table.

    This makes the finalizer table fully self contained, so GC no
    longer need to delay cleaning the `obj_to_id_tbl`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13155

commit a8aa83cc7b7d7dc78b58b2d11538171563e46c1b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-23 14:36:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-23 18:09:55 +0900

    all of examples at commands/newgem_spec.rb are working on ruby repo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13156

commit 59c7b3840d895a18320941564caf1c46fa09e861
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-23 12:58:09 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-04-23 14:14:36 +0900

    Check Unicode version of the normalization table

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13154

commit b4417ff66511ef94a80a3b49ba184603b8e85a1b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-23 11:22:55 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-04-23 14:14:36 +0900

    Add Encoding::UNICODE_VERSION constant

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13154

commit 5f3fb35a14665374f353d3889ded3e8a0061895a
  Author:     Xavier Noria <fxn@hashref.com>
  AuthorDate: 2025-04-21 06:43:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-23 14:07:18 +0900

    Add a new spec for inherited

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13141

commit 80cf292c79ff0cd91353ab5e7e1112a6f800413d
  Author:     Xavier Noria <fxn@hashref.com>
  AuthorDate: 2025-04-21 06:42:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-23 14:07:18 +0900

    Add a new spec for const_added

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13141

commit 6d0dd7d86390458e02830684dd45830b5869a7aa
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-23 14:04:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-23 14:04:41 +0900

    rb_gc_impl_define_finalizer: unlock on early return

commit 6029781984b9db6e1a7f4542e6a6f094876098f3
  Author:     Damian C. Rossney <dcr8898@users.noreply.github.com>
  AuthorDate: 2025-04-23 13:05:30 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-23 13:05:30 +0900

    [DOC] Update for String#split

    Highlight the performance advantages of calling `string.split` with a block, instead of `string.split.each` with the same block.

    Includes other minor formatting corrections.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13153

    Merged-By: nobu <nobu@ruby-lang.org>

commit c1dbd01c6796adb64edc6136134be8271b933bb8
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-23 10:17:15 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-23 10:17:15 +0900

    Increase fiber sleep test tolerance. (#13152)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 7c30bd50df8617063c99630112e1015ec5a743c3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-22 18:55:55 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-23 06:23:35 +0900

    Add missing lock in `rb_gc_impl_define_finalizer`

    `objspace->finalizer_table` must be synchronized,
    otherwise concurrent insertion from multiple ractors
    will cause a crash.

    Repro:

    ```ruby
    ractors = 5.times.map do |i|
      Ractor.new do
        100_000.times.map do
          o = Object.new
          ObjectSpace.define_finalizer(o, ->(id) {})
          o
        end
      end
    end

    ractors.each(&:take)
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13151

commit 9fc5a5dbedf70d6026ff8b76a57297b8021c5dcd
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-23 01:17:35 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-23 01:17:35 +0900

    ZJIT: Add option to dump LIR (#13139)

    Now we can dump HIR, optimized HIR, LIR, and assembly.

  Notes:
    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 87d00142d24fb73d0b1db6d208331d2cc9e6bf2a
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-04-23 00:50:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-23 00:50:55 +0900

    Make yjit team auto-review ZJIT PRs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13150

    Merged-By: k0kubun <takashikkbn@gmail.com>

commit 00b1a9cde6bc115119baede027ce1a986df2c0a9
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-22 23:14:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-23 00:21:07 +0900

    [ruby/pp] Rename EMPTY_HASH to EMPTY_KWHASH

    https://github.com/ruby/pp/commit/efe5bc878f

commit 3ce5d89c206a54cbf32032674c9edf6f649e95f6
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-20 15:47:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-23 00:21:07 +0900

    [ruby/pp] Avoid an array allocation per element in list passed to seplist

    The array allocation was because the keyword splat expression is
    not recognized as safe by the compiler.  Also avoid unnecessary
    >= method call per element.  This uses a private constant to
    avoid unnecessary work at runtime.

    I assume the only reason this code is needed is because v may
    end with a ruby2_keywords hash that we do not want to treat as
    keywords.

    This issue was found by the performance warning in Ruby feature
    21274.

    https://github.com/ruby/pp/commit/3bf6df0e5c

commit 349f36c5279403519b97e1e333e93cf16e985cc2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-22 18:53:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-22 21:09:26 +0900

    Get rid of quadratic downloads of Unicode data files

commit 3b7dd205a525589a896f9ae9cac7a763cdfae7fe
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-22 17:40:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-22 21:09:26 +0900

    Remove extra empty expressions

    Only `class_table` values are not quoted and need to terminate %-=
    literal.

commit 4e6946bda7f5257237912ecd0f98acfaeb3735a3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-22 21:02:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-22 21:02:29 +0900

    Assign the result of `format_changelog` to the changelog writer

    Also, rename `format_changelog` to `changelog_formatter` since this
    method does not format the changelog when called, but rather returns a
    Proc that takes IO and writes the formatted changelog.

commit 888820c581065c7d5cbcd4a137af1e66a708979c
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-22 16:03:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-22 16:03:05 +0900

    Update bundled gems list as of 2025-04-22

commit 3a2415cc47aab53ed54ba66193ee81379ca6704d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-22 12:42:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 15:34:56 +0900

    Skip failing example on Ubuntu runner of ruby/ruby

    https://github.com/ruby/ruby/actions/runs/14585602800/job/40910453142

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13149

commit 8e8df8efb748c1949f61b80610646210b9dd77b3
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 07:47:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 15:34:21 +0900

    Remove the temporary script:

    - The remaining code was not ported over as I felt it wasn't useful
      to output the Ruby related version in the context of
      running `bundle doctor`.

commit 4634a0042e34c022984ef2d3b377ed9ff36d54d2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-22 11:23:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    Mark development version for unreleased gems

commit 067fc410fcdc7eb673f854733e9a424da880acd7
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-04-13 15:06:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    [ruby/strscan] Bump version

    https://github.com/ruby/strscan/commit/8ff80150c4

commit e0264791f013f1d1de51bc9be823a3eb042a0293
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-17 07:37:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    [ruby/json] Get rid of unused CircularDatastructure class

    https://github.com/ruby/json/commit/92beca8032

commit 51d0e5877283a260f994b05fde6411d39a49bc99
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-20 17:09:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    [rubygems/rubygems] Avoid unnecessary splat allocation

    Because get_push_scope is a method call, Ruby will allocate an array
    for *args even though it is not necessary to do so. Using a local
    variable avoids the allocation.

    Found by the performance warning in Ruby feature 21274.

    https://github.com/rubygems/rubygems/commit/0473c0cf32

commit 56c1a15eb70eaed2acf84cb449f19a9745dcfe44
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 07:31:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    [rubygems/rubygems] Warn if TLS 1.2 is not supported

    https://github.com/rubygems/rubygems/commit/e4f70a3e4f

commit ff2e0e41730f21b29660254d29cf5bb3ceffdbd4
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 07:31:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:24 +0900

    [rubygems/rubygems] Summarize the diagnostic

    https://github.com/rubygems/rubygems/commit/40cf54d256

commit 19477ef2875221ff38bdc934897d32d94af0da05
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 07:11:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Diagnose the bare net/http connection

    https://github.com/rubygems/rubygems/commit/38a0bdc123

commit 7a10ce8c95a714e6eb37250687828508e133dddc
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 06:59:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Diagnose the RubyGems connection

    https://github.com/rubygems/rubygems/commit/bf63859e1e

commit cba7408017e51e6ef119964f1b408e4938c8a2a4
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 06:50:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Diagnose the bundler connection

    https://github.com/rubygems/rubygems/commit/0aae094c89

commit ae308ae523a0af0e5566fff741395e48e5e877a2
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-10 06:42:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Diagnose when OpenSSL can't be loaded.

    https://github.com/rubygems/rubygems/commit/e6aa8aabcd

commit cda29294a912521a72e28d773e6aa6845535616d
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-04 08:08:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Add the `bundle doctor subcommand` skeleton:

    - The command can either be run using:

      1. `bundle doctor --ssl`
      2. `bundle doctor ssl`

      The later is most useful when you need to specify
      custom ssl options (such as the verify mode or the
      TLS version when running the diagnostic).

      The implementation will follow in the next commits.

    https://github.com/rubygems/rubygems/commit/993d12874c

commit c2e58a90435e506fde3ca055dc9eb3faa2ed6412
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-04 07:45:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Define `bundler doctor` as a subcommand

    - See explanation in previous commit https://github.com/rubygems/rubygems/commit/170890befb4c

    https://github.com/rubygems/rubygems/commit/8f1b5a4479

commit ef82273c04c8d0b8f858d6fdbcc50155ad9921f9
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-03 23:05:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    [rubygems/rubygems] Import the SSL Check script:

    - Copy/pasted from https://github.com/rubygems/ruby-ssl-check.
      The next commits will break it down for easier reviewing.

    https://github.com/rubygems/rubygems/commit/aa643a11b1

commit 89d1af9af3f1d1355eb5362798af87e1aa342384
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-04-04 07:12:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 11:27:23 +0900

    Move the doctor command into a subfolder:

    - Adding a new `ssl` option to bundle doctor will make the `Doctor`
      command quite bloated. The "diagnose ssl" option will also have
      children option to allow passing which host or which tls version
      you want to diagnose and I feel these options don't belong in the
      doctor command.
      So my intention in this commit is to prepare to have a new `Doctor`
      subcommand and allow for better organisation of the code:

      The command will be:

      `bundle doctor` -> Run exactly the same as before.
      `bundle doctor --ssl` -> Run the doctor command and diagnose SSL
      with default options (rubygems.org as the host and verify peer as
      the verify mode)
      `bundle doctor ssl --host github.com` -> Run the ssl subcommand and
      pass a specific host.

      This commit just renames a file in order to avoid big diff chunks.

commit d4815d39b7b06c7bc4fe7e6898dcf372100b1372
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-22 07:39:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 10:40:23 +0900

    Test with Windows 2025 server

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13146

commit 9106088b7e581c98ac9ad613664a38f65aee14cb
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-21 22:45:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-22 05:41:47 +0900

    Fix typo in doc/zjit.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13145

commit fa17cb75a1a79b6c3fb1e70acc5a4a589efa23e8
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-04-22 01:49:41 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-04-22 01:49:41 +0900

    [doc] update Enumerable document.

    - Enhance document about #size method for Enumerable and Enumerator
    - add an Enumerator example for Enumerable#drop_while

commit ff689b9a7ac01d512619e28cd832271f85295e6a
  Author:     Takafumi ONAKA <takafumi.onaka@gmail.com>
  AuthorDate: 2025-04-21 20:05:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 20:19:51 +0900

    [DOC] Fix broken link reference in NEWS.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13144

commit 85bab61565841a815322449d3309cf53b15f57b9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-21 10:31:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Try to run only working tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit d414dbae0abc395139a5d243aeb0a91368807a3e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-21 09:17:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    nmake check is crashed with windows-11-arm, we need to try test-spec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 99a16757ca74bfb15605a02e33c33f6bcec0616c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-21 08:12:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    windows-11-arm has only C drive

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 9e3c120a155ce2f84034d57c56c11f9f70cec7b3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-18 23:14:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    set arm64-windows for VCPKG_DEFAULT_TRIPLET

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit a12fe4012462bb47357b3777b736d38bb911854c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-18 19:45:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Manually generate dummy revision.h file

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 123726ca78e8bb8301664fa27f91f7eaf5f80808
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-17 08:18:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Don't specify old version of Visual Studio

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 9408bdb571c7a16153f12daf30e54fe025d7e9a0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 17:54:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Use vcvarsarm64.bat directly on ARM platform

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 22d72fed56a54e4a4fdc3845e89feb1201dc26b0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:19:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Skip to install BASERUBY from ruby/setup-ruby when windows-11-arm runner is active

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit c1393bb92bfb2e2e6a652190d9746a11f41e7eb8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:14:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-21 12:25:41 +0900

    Try to build with windows-11-arm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13118

commit 6962f3dc29702ffa68f33d889bab7067b6fe0ca7
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-04-21 11:40:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-21 11:40:31 +0900

    [ruby/stringio] Development of 3.1.8 started.

    https://github.com/ruby/stringio/commit/14fbdcc02c

commit f8c20cc45d2b1fc63d2a133a49a3381ad33ee46f
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-04-21 11:38:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-21 11:38:57 +0900

    [ruby/stringio] Development of 3.1.7 started.

    https://github.com/ruby/stringio/commit/ee3ee1df31

commit 93afcfcde36581e6f94b69c3f40fd0021f382d70
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-23 00:18:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-20 16:41:15 +0900

    [ruby/openssl] asn1: check for missing EOC in indefinite length encoding

    EOC octets are required at the end of contents of a constructed encoding
    that uses the indefinite length form. This cannot be assumed from the
    end of the input. Raise an exception when necessary.

    https://github.com/ruby/openssl/commit/bc20c13a7c

commit d6d4e6877c9670b871ba44b9ca8bece033d17f22
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-19 19:16:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-19 19:16:54 +0900

    Tidy up `rb_io_fptr_finalize`. (#13136)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 0f25886facd0b5f8e0998ec78ce3147d62c61bef
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-19 11:45:02 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-19 12:42:14 +0900

    Implement dsize function for `fstring_table_type`

    The fstring table size used to be reported as part of the VM
    size, but since it was refactored to be lock-less it was no
    longer reported.

    Since it's now wrapped by a `T_DATA`, we can implement its
    `dsize` function and get a valuable insight into the size
    of the table.

    ```
    {"address":"0x100ebff18", "type":"DATA", "shape_id":0, "slot_size":80,
    "struct":"VM/fstring_table", "memsize":131176, ...
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13138

commit 52487705d09aa4d304f3513594650c8bfbaad774
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-19 11:38:22 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-19 11:38:22 +0900

    Fix style of recent fstring feature

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13137

commit 20a1c1dc6be9349521592fc21b17de3eb9f84051
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-19 09:55:16 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-19 09:55:16 +0900

    Ensure `struct rb_io` is passed through to `thread.c`. (#13134)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 8bf14b048f9f9dcc9892959cecc356a33475f82a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-18 19:51:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-19 06:33:10 +0900

    SVN repository is already retired

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13133

commit 0232c31555cee9ca1f9b16023123c1b16072ce69
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 21:54:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:54:22 +0900

    Resurrect concurrency in JIT workflows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ae3d6a321b5801cd6e6718f336baeaaa38c5a61f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 19:43:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Fix yjit-bindgen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 50ae35054b878cf4c09fc3e962ce249ad5c1fbae
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 20:04:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Resurrect yjit_hook

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 338b9c20649d860659bb66e57a57a59257ad4a77
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 18:41:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Enable YJIT by default

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2ef85c12fb38ff1e04657fe8de7b702c280e8e01
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 18:41:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Drop duplicated workflow jobs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit dfacd052354ebba915cf2cb87c55fd969a4d6ecf
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-18 01:34:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Change mentions of YJIT to ZJIT (https://github.com/Shopify/zjit/pull/113)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 74f4d8b8a64d64be3d866166976d474fb217248e
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-04-16 17:06:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Display Snapshot's FrameState using Display (https://github.com/Shopify/zjit/pull/111)

    This makes the output a little nicer when doing --zjit-dump-hir=all

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 490a6d8ef932f3ce2536cb496c12878d88eb40a0
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-16 06:45:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add codegen for NewArray instruction (https://github.com/Shopify/zjit/pull/110)

    * Show failing test

    * Add second test case

    * Add empty NewArray setup

    * Update opt_tests and fix NewArray instantiation

    * Add code generation for NewArray

    * Add NewArray ordering test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1b95e9c4a027755907f2cb903a66de5c649e7cd5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:08:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Implement JIT-to-JIT calls (https://github.com/Shopify/zjit/pull/109)

    * Implement JIT-to-JIT calls

    * Use a closer dummy address for Arm64

    * Revert an obsoleted change

    * Revert a few more obsoleted changes

    * Fix outdated comments

    * Explain PosMarkers for CCall

    * s/JIT code/machine code/

    * Get rid of ParallelMov

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4f43a09a20593e99d6b04a2839ce0fde5f0918c6
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-04-08 05:53:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Use GuardType output variable

    Helps with readability and threads type info that's there around for
    longer. Amend test so `GuardType` doesn't DCE'ed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 164bd8e1a69680867c6fe0dfde46afb5eb68552e
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-08 05:19:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add codegen support for ArrayDup

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0e766c9014dde24e71f565e95ff696f5ed1e7fe8
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-08 04:40:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Mark Guard* as depending on Snapshot in DCE

    We need to keep the Snapshot instruction alive.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 392c492b0707e9ed641665dfb1a98f9bcc5adb09
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-08 03:15:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Remove any object specialization in CCall optimization

    We don't want to only guard on the class

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5f69e35be2804c8a72cff640374adf5f3b13ec47
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-08 02:57:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add return_type to FnProperties and CCall

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3e57c4dceba54b23e0c186591da98d045a8d4be1
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-04-08 02:34:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Strength reduce to `CCall` for sends landing in simple C methods

    A new optimization pass. Also:
    - Printing for `Insn::CCall`
    - Wrap `ID` and add convenience method for printing, replacing calls to rb_id2name()

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 97ba8d9c4dbfd8d277b0214aa1306356db586e77
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-05 03:04:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Insert PatchPoint after each Send

    In case the callee writes to the caller's locals, we need to be able to
    immediately side-exit because our frame's invariants might have been
    invalidated.

    If in the course of optimization we rewrite the Send, we can choose to
    remove the PatchPoint too---but it's not an error to keep it around.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8b72e07359488ebc4af2a23e44919c56f7013399
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-05 01:06:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Disable ZJIT profiling at call-threshold (https://github.com/Shopify/zjit/pull/99)

    * Disable ZJIT profiling at call-threshold

    * Stop referencing ZJIT instructions in codegen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2915806820f6fd0686a8a2c4484c961266dcc817
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-04 23:39:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add --zjit-num-profiles option (https://github.com/Shopify/zjit/pull/98)

    * Add --zjit-profile-interval option

    * Fix min to max

    * Avoid rewriting instructions for --zjit-call-threshold=1

    * Rename the option to --zjit-num-profiles

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 31106afdce97313d3598457f1f5b422a04c4af86
  Author:     Aiden Fox Ivey <aiden.foxivey@shopify.com>
  AuthorDate: 2025-04-04 23:37:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add miscellaneous Clippy 'corrections' pt. 2 (https://github.com/Shopify/zjit/pull/95)

    * Remove immediately deferenced borrow operators

    source: https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

    * Remove unnecessary cast as i64

    Since Const::CInt64 wraps i64, it is unnecessary to cast to i64.

    * Remove unnecessary borrow operators

    * Beautify assign operation syntax

    * Use .is_null() convenience method

    * Omit .into() call from u32 to u32

    * Use more descriptive std::ptr::null<VALUE>()

    In lieu of casting a literal as a type, opt to use the convenience type.

    * Use sized integer literal

    * Simplify pattern matching to explicit check

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 14f0b83d3626d11efb78d5ba4a2c0b012139ff76
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-04 23:37:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Let --zjit-dump-hir dump the input HIR to codegen (https://github.com/Shopify/zjit/pull/96)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ddef6a7ce46ed87e0c58ddaf97f69feeb5d29300
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-04 00:52:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Split LHS of CMP if it's an immediate (https://github.com/Shopify/zjit/pull/94)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bfe7da019fb6a03c2727acb5e4ad50def91cf917
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-04 00:51:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Print block param names in asm comment (https://github.com/Shopify/zjit/pull/93)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d8a6d43fa486f4f374f1e4d52ebadf27e3e478a6
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 07:07:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Fix opt_neq HIR codegen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 508a0496a5368dad99d7091e9adf9599621d4f2b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 06:15:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Use find() in frame_state()

    We want to return representatives for the stack and locals.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 32374b70fe04a98542f0a71c72e40b470b6ffb88
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-04-03 10:28:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add miscellaneous Clippy 'corrections' (https://github.com/Shopify/zjit/pull/92)

    * Remove redundant  statements

    * Remove .clone() since A64 implements Copy

    * Remove .clone() since InsnId implements Copy

    .

    * Dereference since *const rb_call_data implements Copy

    * Remove unnecessary return statement

    * Remove unnecessary braces

    * Use .is_empty() over length checks

    * Remove unnecessary conversion handling

    Since i32 can always fit into i64 (the inner type in Opnd::Imm), the conversion is infallibile.

    * Use slice notation in lieu of Vec

    https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg

    * Simplify match statement

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ee3949ac3d505394a70ff1e66b8d5ed4a9e9db6f
  Author:     Aiden Fox Ivey <aiden@aidenfoxivey.com>
  AuthorDate: 2025-04-03 09:53:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Improve register alloc and dealloc error messaging (https://github.com/Shopify/zjit/pull/90)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a9809a6d666f338b10b7d5cecdff892b105cb346
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-03 09:16:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Fix inconsistent indentation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e9f6863e82e872f7e61f47510606335a79348cbd
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 04:15:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Make NewArray DCE-able

    Initialize with a vector of operands instead of ArraySet instructions.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1826c2d23da6e8be7fb589e151beed7569e715bd
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 01:31:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add dead code elimination pass

    Dead code elimination (DCE) is like garbage collection for your HIR
    graph: it removes instructions that are not referenced by the "root
    set"---in this case, the instructions marked critical.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3e81d18636517002f9b3f175076fc2527f88e88f
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 00:31:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Reduce the number of Snapshots emitted

    Only emit them on-demand.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c0957d4b456132b9cb83597cfe880f9832d8624a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-03 00:24:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Make Snapshot own FrameState objects

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8a09dd3fb33587f7dd3a66181fed58e9f7b595ed
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-03 04:10:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Remove an outdated comment

    https://github.com/Shopify/zjit/pull/87#discussion_r2025152210

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ad0d84f0f132874c605ee5f606b26d032147916b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-01 01:15:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Move get_class_name into cruby

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9dab8cd6334fbc78f565df9541c2a47b86260920
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-04-01 01:14:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Remove Option from get_class_name parameter

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 308cd59bf8d9a3d6141fae5931bad397020e7bc8
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 05:38:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Rewrite SendWithoutBlock to SendWithoutBlockDirect when possible

    In calls to top-level functions, we assume that call targets will not
    get rewritten, so we can insert a PatchPoint and do the lookup at
    compile-time.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cfc9234ccdb457934f4daeef599e303844869fc3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-03 01:18:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Compile Param into VReg and ParallelMov (https://github.com/Shopify/zjit/pull/87)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit dd44935e8bda014cf3c1d6491b22a9ccac84f093
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-03 00:43:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Update the VReg comment to imply spilling

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0a1ef1696ea93465d5f24248d13ebd2782df55ab
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-02 05:06:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Disassociate InsnOut from Insn index

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8220b91c211684d5ba8a4027deed3d51c02562d3
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 06:36:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Fix s/Raw/Debug/g

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 49b8368aa685e18ce1bc64529de5f3311e74c597
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 05:37:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Print iseq names in HIR dumps

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a86d187cda486a7c34d10476e57c2c6ffd36e050
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 01:59:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add option to dump optimized HIR

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0a38850524bec6877fc197cf24abde4233f10b8d
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 01:58:35 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Only map pointers in tests

    We want to otherwise see real pointers in print output.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 52fe40f030f7b8639a85f72444f229f12287e6c2
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-28 01:03:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Default to BasicObject subclass if unknown

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2cf769376b1c8e6e1f98fe3aa98d426fb6afc5c8
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-28 01:27:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add profiling for opt_send_without_block

    Split out from the CCall changes since we discussed during pairing that
    this is useful to unblock some other changes. No tests since no one
    consumes this profiling data yet.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 36d328eb9982face1698904052bfb3021fb5b1eb
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-26 01:11:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Make disassembly look nicer using InsnPrinter

    This makes the disassembly comments much easier to read because they use
    the more familiar `v2` rather than `InsnId(2)` and `Fixnum` rather than
    `Type { bits: ...... }`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 556fda08640d69bf18f704f8983cf9bfe2bd9f7c
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-26 01:26:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Use expect-test for HIR tests

    This makes it easier to update cascading test failures while still
    making output reviewable in the PR.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d9720eaf10ed1dda3c2a9b9b4f4b8254b33a0c3c
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-26 00:55:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add constant folding pass (https://github.com/Shopify/zjit/pull/74)

    Add a constant folding pass for HIR. This pass uses the types left by
    `infer_types` to fold away:

    * `GuardType(val, ty)` where `val` is already `ty`
    * `FixnumAdd(l, r)` where `l` and `r` are constants
    * `FixnumLt(l, r)` where `l` and `r` are constants
    * `FixnumEq(l, r)` where `l` and `r` are constants
    * `Test(v)`, where `v` is a constant
    * `IfTrue(v)` and `IfFalse(v)` where `v` is a constant

    It does this by using the union-find data structure in the IR to avoid a
    complicated manual find-and-replace process for all the uses. Right now, for
    branch instructions that it deletes, we remove from the block completely. This
    is safe only because we have ensured that nothing refers to branch
    instructions---they produce no values. However, if we want to instead replace
    them with Nops that get ignored during codegen or removed by a later DCE pass,
    that works for me as well.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 97a478f95fb09566360bcff2b3fba93098d4e1ac
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-25 05:48:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Add recursive factorial and fibonacci functions to test_zjit.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 102c48c85ff3f7dac70b3f12e553e7f035709879
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-25 05:40:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:01 +0900

    Don't compute predecessors for infer_types (https://github.com/Shopify/zjit/pull/78)

    We don't need this anymore thanks to the push-driven type union for
    basic block arguments.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e5647d8bd983d1859a2dbc0455e805608979e174
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-21 09:06:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Assert that ids are initialized

    I've been bit by this a couple times.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6421e8996209c61f7ddefdd173df451adfc1d775
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-21 09:05:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    DRY up IDs that have the same content as their name

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f4283c68bcd832ae1e222d2988e0d5157b75c50c
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-22 01:26:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Fix VALUE/isize conversion

    Coming out of VALUE did not work for negative numbers; they came out as
    huge numbers instead.

    Add more tests.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6ec411add7def0ab97640ebb110bea5e18747e81
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-22 01:31:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Compile IfFalse, IfTrue, and Jump instructions (https://github.com/Shopify/zjit/pull/72)

    * Compile IfFalse instruction

    * Add a TODO comment

    * Rename *s_len to num_*s

    * Run only gen_param() against block.params

    * Add a few more tests

    * Wrap label indexes with Label

    * Compile blocks in reverse post-order

    * Simplify a nested test

    * s/get_block/block/

    * Return a number instead of an iterator

    * Clarify the allocator uses disjoint sets of registers

    * Use Display for Block and Insn

    * Compile IfTrue and Jump

    * Avoid resolving Param instructions

    * Always compile Insn::Param as basic block arguments

    * Remove an obsoleted variable

    * Change it back to use find

    * Use find for params too

    * Use Display more

    * Add more tests

    * nested if
    * if after if
    * if elsif else
    * loop after loop
    * nested loops
    * if in loop
    * loop in if

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit efb2ba3338480b3e19e43a30dbaa1c2ad66f5988
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-21 03:26:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    HIR printing: Assign stable address to pointers when first seen

    This gives output stability while still showing address equality and
    inequality.

    This mapping mechanism is only turned on for FunctionPrinter, so
    implementation of Display and Debug can share the same code but not go
    through the mapping process. Outside of `cfg!(test)` we don't want
    and need to stabilize the addresses.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a5330afed9ca07018c5c2109f9ed8bbcd4609426
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-21 02:28:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Fix another case of single-arm match

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit eb3045f23d600a22c0261b2a3f9043fddf08c45e
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-21 01:59:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Make reverse post-order traversal iterative

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6a8150fc2734c9528c57edf6a0c1c1ec5e2b8905
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-18 02:44:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Refactor push_fixnum_insn! further (https://github.com/Shopify/zjit/pull/70)

    * Refactor push_fixnum_insn! further

    * Take one or zero extra argument

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 263a1f2bb39785cc6d414b6aa3ebbdde1e73f07a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-17 23:37:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Use a more noticeable invalid pointer

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f525cff5c852e7bf83a737b666bdeb946ded0f59
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-15 06:32:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Test builtin type inference

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4a4845cec81d241ea5da03f3fbb15cb0f26ae2f1
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-15 05:20:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Fix type checking for strings, arrays, and hashes in the constant pool

    Prism hides the objects from the GC by setting the objects' class fields
    to 0, so class_of returns 0 (unexpectedly, at least to me). Instead, use
    builtin_type.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit be874df1c4250d16701d0c3b8c169a96f0ed4dc4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-15 05:19:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Print fake/stable addresses in HIR printer in tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 92b87ec53fe87978554793a4fc58e4b5ccb879db
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-18 01:06:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Convert send (with block) to HIR (https://github.com/Shopify/zjit/pull/67)

    * Convert send (with block) to HIR

    * Remove newline

    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

    ---------

    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d750e12fa65247fc533a8c866ad03524f0ab98e4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-18 01:03:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Revert "Pass $state to fallbacks instead of exit_state"

    This reverts commit e2eae71d44ced602946d54a083f600848eab79e9.

    The $state exists for switching Fixnum insn, so guard_two_fixnums and
    SendWithoutBlock shouldn't need to use $state. The other macro argument
    pattern doesn't have $state, so it's now inconsistent.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c460b16272c926e2457ebbc70f017651152b3cf5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-18 00:54:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Pass $state to fallbacks instead of exit_state

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d488f74deed838f8595dd06bf249689a5bc41444
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-15 07:51:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Resurrect icache invalidation for arm64 (https://github.com/Shopify/zjit/pull/68)

    * Resurrect icache invalidation for arm64

    * Get rid of cfg(not(test))

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 00cc26d04e18011fc4d8ba1c7dbc73d4aa84de4e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-15 07:06:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Refactor Fixnum operations using macros

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ae17323a65d019f9f26248ed1f40d6f7a519090b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-15 07:09:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Move a couple of bindgen targets to ZJIT bindgen

    We filed https://github.com/Shopify/zjit/pull/65 and
    https://github.com/Shopify/zjit/pull/64 concurrently.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f5c3fc877e921ecfdd63663e6711ba25d8a09585
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-15 07:08:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Rename a reference to an obsoleted variable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 19e8e45f69027b485484e4afdffbe17a9bf211ba
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-15 06:12:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Rust tests: Load builtins (core library written in ruby)

    Key here is calling rb_call_builtin_inits(), which sticking to public
    API for robustness is done by calling ruby_options().

    Fixes: https://github.com/Shopify/zjit/issues/61

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fa7c3e6c9c0e7b6b0d0b1611c696ba74a6f45165
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-15 03:25:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Implement dynamic dispatch for opt_send_without_block (https://github.com/Shopify/zjit/pull/63)

    * Implement dynamic dispatch for opt_send_without_block

    * Rename stack methods

    * Fix typos

    * More clarification on gen_save_sp()

    * Update a comment

    * Update a comment about spills

    * Rename name to method_name

    * Test no-arg and 2-arg method calls

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5a35c47c829e912fb92898b332d53eff21d0d733
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-14 23:52:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Stop sharing yjit/bindgen with ZJIT (https://github.com/Shopify/zjit/pull/64)

    * cp -r yjit/bindgen zjit/

    * Rename YJIT variables

    * Stop mentioning YJIT in zjit.c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d492734d1425fc1f91e662aebcf3e313f7b4f85b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-14 08:27:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Fix a ubuntu job with --disable-zjit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bb46bb781c529477f1cc8e0de64a602f0607a393
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-14 08:18:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Stub Init_builtin_zjit for --disable-zjit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 31121a9107f01a7cee798baf9c68548863cf0d5c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-14 07:47:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Avoid running the same test in multiple workflows

    This workflow is supposed to test that we didn't mess up the
    interpreter's implementation. We shouldn't need to run test_zjit.rb on
    this workflow.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 97f022b5e75f124f08fa44794f65fe1b112818eb
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-14 01:16:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Print Ruby exception in test utils

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c39a150787d77dc706f8af65ad46710b3d879190
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-13 06:01:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Implement codegen for Test insn (https://github.com/Shopify/zjit/pull/57)

    * Implement codegen for Test insn

    * Update zjit/src/codegen.rs

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

    ---------

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b345fa90069ed98d79deb29e4a808563730324eb
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-13 04:52:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Reorder two tests, update comment

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b9424e50963fdab8b950795186b80c5d9568ad4b
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-13 04:48:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Remove redundant bits from zjit.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9ca67c471d983e17d09cf0e594208ca9f3e19f5c
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-13 02:25:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Explicitly give function parameters types (https://github.com/Shopify/zjit/pull/52)

    * Explicitly give function parameters types

    Entrypoint blocks have no predecessors, so they are not otherwise typed.
    This means we have to explicitly mark them as being Object.

    * Refactor some tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4c694a4c15335792810ab5d162998a7db43fbe00
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-13 00:14:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:53:00 +0900

    Replace ...User with ...Subclass

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ca4d09137b7f8199d754c92eb7785599650bed6e
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-13 01:00:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add union and predicates for testing if immediate (https://github.com/Shopify/zjit/pull/54)

    * Add union and predicates for testing if immediate

    * Add tests

    * Improve description for Primitive

    * Add undef to immediates

    Also partition Any into (Primitive | Value), where Value is
    (Object | Undef)

    * Add BasicObject to hierarchy

    * Rename Value to RubyValue and Primitive to CValue

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 125d87b92b319b06950ec22eb8f4a722ac3844c6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-12 05:47:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Prefix stack operation names with `stack_`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6a4db3e1d7f8cd7a46ac96e6e7bb2ee6467dd6ec
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-12 01:32:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Put hir_type sources in a sub-folder

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c1d229c5058e3de05c30beec37ef51a8be466bab
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-12 01:59:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Remove more outdated TODOs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 033537fc5468817cf3efda5468c7c99d7254e95e
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-12 01:58:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Remove outdated TODO

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9137e24b54e6ae3d2bb0703adbb97c0d392a04d2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-12 01:26:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add a make target to run all ZJIT tests (https://github.com/Shopify/zjit/pull/49)

    * Add a make target to run all ZJIT tests

    * Remove an unused variable

    * Write up a document about testing

    * Explain zjit-test-all first

    * Clarify what's zjit-test-all

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit be8c78f20dd5eaf31d1514319e60d904aad6dbd5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-12 01:20:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add a skipped test case for opt_mult overflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a7f8beee84f0e59e152214d41976f559f5f79e42
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-12 00:59:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Implement all basic Fixnum instructions (https://github.com/Shopify/zjit/pull/50)

    * Implement all basic Fixnum instructions

    * Use opnd! macro for other instructions as well

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 17ff0bc8d7ad32740f10e8b194ab9c15405f7867
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-11 06:46:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Compile FixnumLt (https://github.com/Shopify/zjit/pull/48)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 29c0ef55a79e0cd32270d86870d32254b8f3fd0f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-11 06:01:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add comments to tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1769c05e8d8e64e9df19bf410d8c1c71b97ffb3b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-11 05:20:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add diff_text to pretty-print IR differences in unit test failures

    This produces errors that look like

        thread 'hir::tests::test_display_types' panicked at src/hir.rs:1777:9:
        assertion `left == right` failed: Differences found (-expected, +actual):
        ---
         bb0():
           v0:NilClassExact = Const Value(nil)
           v2:TrueClassExact = Const Value(true)
           v6:CBool[true] = Test v2
        -  IfFalse v6, bb1(v)
        +  IfFalse v6, bb1(v2)
           v9:Fixnum[3] = Const Value(3)
           Return v9
         bb1(v12):
           v14 = Const Value(4)
           Return v14
        ---

    instead of just

        left: "bb0():\n  v0:NilClassExact = Const Value(nil)\n  v2:TrueClassExact = Const Value(true)\n  v6:CBool[true] = Test v2\n  IfFalse v6, bb1(v2)\n  v9:Fixnum[3] = Const Value(3)\n  Return v9\nbb1(v12):\n  v14 = Const Value(4)\n  Return v14\n"
        right: "bb0():\n  v0:NilClassExact = Const Value(nil)\n  v2:TrueClassExact = Const Value(true)\n  v6:CBool[true] = Test v2\n  IfFalse v6, bb1(v)\n  v9:Fixnum[3] = Const Value(3)\n  Return v9\nbb1(v12):\n  v14 = Const Value(4)\n  Return v14\n"

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 708940e8c2335d11dd1891c0e9ed7b5d437b56bb
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-11 05:27:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add commented out if-else test to test_zjit.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a412f9322cb3924f58bea88fd112816b9aeba815
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-11 05:02:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Remove reference to nonexistent function

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 42cef565a405287c2b62501eafb0786d1f72e08f
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-11 04:53:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add intraprocedural flow typing (https://github.com/Shopify/zjit/pull/23)

    * Add RPO

    * Add basic flow typing

    * Add more tests, check for type bit equality

    * Run to fixpoint

    * Only use/flow types if insn has an output

    * WIP

    * WIP 2: merge pred args

    * It compiles again

    * Infer more Const instructions

    * Boot VM

    * Test displaying types

    * .

    * Use type_of more

    * Extract Param inference into its own function for readability

    * .

    * .

    * Add notion of unions to generated type bit patterns

    * .

    * .

    * Fix hierarchy for user/exact

    * .

    * .

    * .

    * Give ArraySet a receiver

    * Use Function::find consistently

    * s/fd/find/g

    * Comment

    * .

    * Add TODO about recursion

    * FrameStateId

    * Use worklist based type inference

    This requires computing "uses", or at least which blocks to revisit if
    their params change.

    * Just use a set

    * Revert "Just use a set"

    This reverts commit 54d88be00cbf78ce7e928c66d955c968187a5ec9.

    * Revert "Use worklist based type inference"

    This reverts commit e99b24629723c8848fefd5a75caa23e84c2f552e.

    * .

    * Store block params separately

    * Sparse type inference

    * Get tests passing after rebase

    * .

    * Use assert_method_hir

    * .

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 43d532e36db81a68164f0a807c34c57b6f4a363f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-11 03:58:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add while loop test to test_zjit.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 113080936355d2e43dbbb0bcd0b09bf93966f2f6
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-11 03:52:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add small test for setlocal

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5fa12b36c2e4d6a5cf2247e6b06d2e2661ae34b1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-11 01:06:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Set a return value before popping registers (https://github.com/Shopify/zjit/pull/41)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3e9dd115691b8f3d1b6839d67e1c0917dd92de61
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-11 00:51:35 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Fix a comment for subtraction

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8adbe292ed70089a33ff7eb0e9a0ce0bcd0bd5e4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-08 12:59:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Implement Insn::FixnumSub (https://github.com/Shopify/zjit/pull/42)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c01568e070a205ab5a7bad42ead9b2dba1f74eff
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-08 12:59:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Move lib.rs functions to appropriate modules (https://github.com/Shopify/zjit/pull/43)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ed894fa13b32bf6572158caa89ed3baf690debe4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-08 07:36:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Pass test results using #inspect

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 33a052486baa54ab858bd0a06033e90a3c66d2ac
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-08 05:55:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Assert everything is compiled in test_zjit (https://github.com/Shopify/zjit/pull/40)

    * Assert everything is compiled in test_zjit

    * Update a comment on rb_zjit_assert_compiles

    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

    * Add a comment about assert_compiles

    * Actually use pipe_fd

    ---------

    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d2115562b92e70bea71cfaca175f59587c6a77da
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-03-08 00:59:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add two more small btests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 14253e7d122d0b5fa0cd476fecaaa258435dc1e6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 10:26:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Implement Insn::Param using the SP register (https://github.com/Shopify/zjit/pull/39)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0aef948a1e917ba7560ed2279c493ab0468b5fe5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 10:24:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Load an immediate into a register in the backend (https://github.com/Shopify/zjit/pull/38)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 7dd15abed30d90102aa1e18095b18db70367f541
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 07:32:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Do not assert inside rb_protect() (https://github.com/Shopify/zjit/pull/37)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c5a93df555edddffd7f1d2fdd84374b8aaf222e2
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-07 05:43:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Rename Top to Any and Bottom to Empty

    Top/Bottom can be unintuitive or ambiguous.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bbbf40de3fda4a234efa40ac2bfeb1fe3acb2436
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-07 05:39:50 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Store block params separately (https://github.com/Shopify/zjit/pull/35)

    Don't put them in the instruction stream. Instead put them in `Block::params`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 563281e89f5013bb30306f3458dbd85696dc2ce4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 04:03:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Test HIR using FunctionPrinter (https://github.com/Shopify/zjit/pull/34)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 48fa16f6445f7dbf47ccd81fe3c3fff7b2012866
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 03:25:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Load Param off of cfp->ep (https://github.com/Shopify/zjit/pull/31)

    * Load Param off of cfp->ep

    * Test with --zjit-call-threshold=1 as well

    * Fix get_opnd's debug output

    * Return Mem operand from gen_param

    * Test both first and second calls

    * Spell out the namespace for Opnd returns

    * Update a comment about gen_param

    * Explain why we take a lock

    * Fix a typo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 62adbdf247e92448f6a783e8c1f9d05d2e2f0406
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-06 23:51:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Share FrameState by storing it on Function

    Give every instruction a cheap ID to hold onto instead of owning a copy.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 22c73f1ccbe04b1e85ed5977f676f5afd31a2fcc
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-06 06:47:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Implement FixnumAdd and stub PatchPoint/GuardType (https://github.com/Shopify/zjit/pull/30)

    * Implement FixnumAdd and stub PatchPoint/GuardType

    Co-authored-by: Max Bernstein <max.bernstein@shopify.com>
    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

    * Clone Target for arm64

    * Use $create instead of use create

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

    * Fix misindentation from suggested changes

    * Drop an unneeded variable for mut

    * Load operand into a register only if necessary

    ---------

    Co-authored-by: Max Bernstein <max.bernstein@shopify.com>
    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bd41935b02c554589d29882d62a3a76c4afe2165
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-06 04:48:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add std docs to crate docs

    This makes it easier to work offline.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d9a51eb8657bb06fcc95e174f4fde60f12018900
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-06 02:40:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Sort type bits at compile time for Display

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8b2a4625cb179bffa3195d9251cfe1516c0ef475
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-06 04:17:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Profile instructions for fixnum arithmetic (https://github.com/Shopify/zjit/pull/24)

    * Profile instructions for fixnum arithmetic

    * Drop PartialEq from Type

    * Do not push PatchPoint onto the stack

    * Avoid pushing the output of the guards

    * Pop operands after guards

    * Test HIR from profiled runs

    * Implement Display for new instructions

    * Drop unused FIXNUM_BITS

    * Use a Rust function to split lines

    * Use Display for GuardType operands

    Co-authored-by: Max Bernstein <max@bernsteinbear.com>

    * Fix tests with Display-ed values

    ---------

    Co-authored-by: Max Bernstein <max@bernsteinbear.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9e31d29e0ee20ef1fcbcb4b71112002dad3bcc1d
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-06 01:18:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Tell GitHub that `*.inc.rs` files are generated

    ... and rename hir_type_generated.rs so it gets picked up by the
    glob.

    This mostly changes how GitHub renders diffs for generated files on
    the web interface.

    See: https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 91114b9933efcbfc29b4ec58deea096bc8cf9e5d
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-03-06 01:21:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Write all bits in Type as easy-to-read names

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ec41dffd05f4f839c78cfd035fe0f2639b370644
  Author:     Max Bernstein <max@bernsteinbear.com>
  AuthorDate: 2025-03-05 02:18:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add compact Type lattice

    This will be used for local type inference and potentially SCCP.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0a543daf15e995ad12b0884bf89ea89b6b480dd2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-04 06:46:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add zjit_* instructions to profile the interpreter (https://github.com/Shopify/zjit/pull/16)

    * Add zjit_* instructions to profile the interpreter

    * Rename FixnumPlus to FixnumAdd

    * Update a comment about Invalidate

    * Rename Guard to GuardType

    * Rename Invalidate to PatchPoint

    * Drop unneeded debug!()

    * Plan on profiling the types

    * Use the output of GuardType as type refined outputs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 30db473389ca5bb6c68bec72de49330a72a2541c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-25 05:22:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Compile Insn::Const (https://github.com/Shopify/zjit/pull/18)

    * Compile Insn::Const

    * Update the comment on JITState

    * Print insn index like YJIT

    * Wrap and unwrap InsnId

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3c38ad605ae322906f158881208228dc4e40114a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-25 02:29:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Rename --zjit-dump-ssa to --zjit-dump-hir (https://github.com/Shopify/zjit/pull/17)

    * Rename --zjit-dump-ssa to --zjit-dump-hir

    * Update comments

    * Add a comment on iseq_to_hir

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e4d4ee751789fe2e1777930b546b80f7a797c580
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-25 02:17:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Fix inconsistent triggers of workflows

    This is another left-over from https://github.com/Shopify/zjit/pull/12.
    No reason to duplicate jobs for PRs.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c443e538b62e625263bf5217db024e9af7d51de5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-25 02:15:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Fix inconsistent workflow settings

    This is a left-over from https://github.com/Shopify/zjit/pull/12.
    It was supposed to be removed from both workflows in the PR, but this
    was somehow uncommitted.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bd0f63507dd2e34caeb27be8eff92b08b44e7f69
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-21 09:42:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Use rustup to get 1.85.0 since GitHub's image doesn't have it

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b8f49888a4030a29437cef9491078258df45ee77
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-21 09:10:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Avoid setting RUST_BACKTRACE environment while panicking

    The 2024 edition pointed out that setting env vars in multiple threaded
    programs is unsafe, due to it being thread unsafe in glibc. Sure don't
    want to crash while already crashing! Always grab a backtrace with
    force_backtrace().

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e24be0b8d5704f33b65541dd8493831b9364ef3e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-21 09:10:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Upgrade bindgen, so it generates `unsafe extern` as 2024 expects

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 26e15ed6295e67aaaa21eda8a2a82def9d5c91c4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-21 08:29:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Fix 2024 edition errors

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e5d4769bc5266fa6f3e50fc629aa0a3e99df856a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-21 08:01:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Bump to Rust 1.85.0, 2024 edition

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 949ef70c5deb2c068619a0643f6cc43a7aa08114
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-20 06:44:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Make pattern match clearer with global

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 778b67e50d396cb78efbf473a817961c86e32529
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-20 06:42:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Pretty-print Const

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cdf16b73930db02492a7b5523eb5fcc294791bcb
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-20 02:13:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:59 +0900

    Add sample union-find implementation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fcaa7665c91ec12eae4955a9ef42fda17e41167a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-20 01:43:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Remove Opnd

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 25a36aaf5ed2c9318270d717113d17f77bd74d25
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-20 00:42:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix ep_offset locals math

    Thanks to @xrxr for explaining all of the "kindergarten" math :)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e4fc29785e51c522f3e2233186cdda49da15107a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-19 07:31:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Rename `backend::Opnd` to `backend::lir::Opnd` (https://github.com/Shopify/zjit/pull/13)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e68f5a181606ec9f8de5361ce05ea53242b74921
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-19 03:40:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add `result` CI job to enable auto-merge (https://github.com/Shopify/zjit/pull/12)

    * Add `result` CI job to enable auto-merge

    * Avoid triggering duplicated jobs on PRs

    * Drop cancel-in-progress

    We don't run as many jobs as ruby/ruby CI. We shouldn't need this here.

    * Fix a typo

    * Drop the concurrency group too

    Similarly, we shouldn't need this in the Shopify/zjit repo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fe93c27da52bc3fbe57ed5f470ab8fe1950048a7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 11:18:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add asm comments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5ee11d515bc8b8eb006b6d0a83229a5fac9dade2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 11:12:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix zjit-test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 562c35a560e2f99b9ab6b4ff352e4cf7a73f050e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 10:49:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Resurrect asm comment support

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 53bee25068d11877b034af53797cf6e5d3d8e2be
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 10:35:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Implement --zjit-call-threshold

    As a preparation for introducing a profiling layer, we need to be able
    to raise the threshold to run a few cycles for profiling.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 06d875b97901b7c6accb36c8b7b525d0884696a7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 10:27:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Backport the latest jit_compile()

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3e49f3304d6a42edded0d571bd45ffdf846ffd9b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-15 10:16:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    remove duplicate yarv_frames.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b6e4b37c442692253b572e2b8da4cc8cb007296a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-15 10:04:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add explainer for YARV frame layout

    Just a first step. Have a read, and let's improve it together.

    Close: GH-6

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9644b17279bb39eac6d6951d04341eb7324720ea
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-15 04:26:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add minor comments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ce9c9e0a6a9651a23d1274b73ad9a7e26bf9396d
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-15 04:16:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Rename ir.rs to hir.rs to avoid namespace ambiguity with backend

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 22eec6592805be64603aa624b014f8d87746d462
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 03:23:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Recommend the same task as what CI uses

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ccbf4441de3e7e99a456f699d8c05c77e2dd2e51
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 23:17:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add comments for Test and Snapshot

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 24f8a787090c5312368601d9e8d584f6428953a9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 14:03:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    btest jobs are now passing

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d68f878976f2d6f9d951cd4aae26c167fd309d8d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:57:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Ignore btest failures for now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 93f67e24d253244c910c260264c55002603d7de7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:55:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add a missing use for release build

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bf565fd418d2a2b2bf78383731294b7376b0c7a6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:46:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add --zjit-debug and debug! macro

    to print debug messages

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 83da2dd1eab0e9ec6e6cd8ba5a9a8894b227b2ae
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:36:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Try to fix the BTESTS path

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5321e1479d06426acf73527b5d0478f1facb9e6a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:30:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Rename backend::ir to backend

    because it's so confusing to have ir.rs in multiple places.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ec35162536842b4a5fcb4d7e4a9bbbff5e5c0489
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 13:25:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix BTESTS path

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5cbaa2288edf60d0983c9b11fe63b01b6b52428e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 11:59:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Mention that the linker warnings were from capstone.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 24b29afc5a5c665a30346a28365d9deb25c16b57
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 11:56:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Try macOS linker warning fix

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3f68bcdeb129ba4daa23b4920f26693afa8af4df
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 10:48:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Explain libminiruby

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5925903e38292d9ae0a86a21bae0b865c07763d7
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 10:38:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    More about testing in zjit.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d093793e6b5217c56845005173ec44bf8cb433ff
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 11:01:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Pass BTESTS to make properly

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b3dca8d4fe938517dc95073a5563fe9acc8cb754
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:59:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Allow dumping SSA in multiple ways

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fc03b7353ddd11a80cf69cab8cd0957834eee820
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:49:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Start testing the actual JIT code on CI

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6f3f69098bccddb520e0a6f7e1b3dcf61af98f38
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:40:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Drop redundant options in workflows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fa4eee51f1dd51060e000b26da9de7f26982b39e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:38:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix options in zjit.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bc443eef7a39f45026c857a254d1efd61fef6b51
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:23:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Let ZJIT and YJIT disable each other

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b0739cd1c1e61c9512c62b79fe6afc66596301c8
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 10:15:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Rename utils.rs to cast.rs

    to avoid making it a place to put anything.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9cfb860cb3aec755fd2d97d8116d019f24886c28
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 09:50:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Let tests share the same ZJITState::init()

    to share the initialization of other globals in the future as well

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d550a9b1244b2c73e7018bcadaf368c417938154
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 09:35:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Initialize dummy globals for tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e543b6a0309b465d95327d26b6a3e908377c24a3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 08:10:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Start compiling the actual IR

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5f3ebd44de96a352c7b353c647afedd6af81171f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 07:30:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add a comment to dump the actual structs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit de8d4c83d81cb6bed0069e94db745c7c43b07ec7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 07:24:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add --zjit-dump-ssa option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 24cb2f604565eda9383cc523933e1b9b8e5beb7b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 05:25:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Set up locals in FrameState at function entry

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 721b919e17efac2c5d9da250015f8c7d368fbf46
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 04:53:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix test for setlocal and getlocal

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ed2ff3bb4c4783a9493ba45fe6ea9e430ff1096c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 04:26:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    zjit-ubuntu: remove continue on error for make zjit-test. Passes now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fc256fb6be68e71f17fd55f2dc4dd02cb4a32153
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 04:01:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Skip a failing cargo test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 43bb240bbd4bc54b3e1d711c49660502cc9fe01e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 03:59:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Disable stub code execution for now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6de43bdc3162bd6ddfad210c93882d15dba82791
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-13 02:49:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Mention rubyexplorer

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8caed382448fea04124ebd2265ecdc1f5bcf82be
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-13 02:47:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add some basic documentation for ZJIT

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 7017e2ba77b0b33f07c00eae475c42a60b547ccc
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 02:47:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Compile sample exception code in ZJIT

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c35931b5d593d201c5efa8499af36872a9c62369
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 02:38:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Remove unused function

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d9d167423f51fac2c65aaf05ac9da6d1d8cfd885
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 02:35:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix locals propagation across edges

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3d7e88ce444faaffc62e34b8e012f50722a1aadf
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 02:30:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Clarify operand order in binops

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 94496cd86222dcb36fa63919b067fe3ec5393579
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 02:14:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Test setlocal/getlocal

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f4dc402e790ef9374baa8f5cf512d4b59703e646
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-13 01:50:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Add assert_matches! macro

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 95904e2092e157bcfdcc8616a7d99b122418a28e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 01:23:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    reorder libminiruby link flags. Now works on aarch64 linux

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 42c1434f9b07d34c4523dc771cf7f49a9e0dc363
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 01:20:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    put libminiruby next to zjit-test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3fbb4b09538db677e47896388e9c28004d2d2e0f
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-13 00:51:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    zjit-test requires cargo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 78d60548eff3b287fd6f627b2a3f088cea0be663
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 09:55:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Allow failing zjit-test on Linux

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit daced753a5c4eedcb121042f2cd5f7ec5f5aa0cd
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 09:47:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix YJIT references in comments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fa9713d59c8f492321c620045e83833859674ebe
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 09:45:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Drop cargo build jobs

    It doesn't seem important to keep `cargo build`-only jobs. The zjit-test
    task should be covering most of what we wanted in the job now.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1ac465f8582841e70051b991cdf4719f9e6598f4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 09:35:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    copyedit comment

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ea932d8735cac055ebf3bb63f2f1814e367e5d2b
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 09:32:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    Fix s/test-zjit/zjit-test/

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b3ff735b2af35834b5f435ec1a1c80ef75bfc5ad
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 09:30:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    CI: get cargo-nextest

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5627121ef9bb4e65083fa3ca7c19c6a74a4e9a50
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 09:25:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:58 +0900

    fix typo to actually test zjit in zjit-macos

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b19dce1fbac56bbc71f82d28c547b31354302ca4
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 09:23:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    ci blindshot for `make test-zjit`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 20ec3c8033de23602ecc62d989cc885390ce8fce
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 08:47:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    add `make zjit-test`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b30c8ddfc7c03bfb108ec7a480600291d8977d25
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 07:52:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    cargo:rustc-link-lib=static:-bundle needs 1.63

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4326b0ceceee6c0efa97602e54b50a874d9e6e38
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-12 07:37:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    boot_vm boots and runs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ea9b23a2cbcbe2fb784751f595a1d83083146403
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-11 10:53:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    can link and run `p RubyVM::ISeq`, hardcoded paths, needs more init

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bcf5c1cdc4998bd6019c771eb8d50d6ca24d10f2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 09:11:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Generate working putnil-leave using the backend

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 7447513509bf5e6c7770ed09838a844486c29b8b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 08:10:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Rename codegen.rs to state.rs

    since it's only about ZJITState at the moment. Because it's no longer
    called "CodegenGlobals", we don't have any reason to keep it in
    codegen.rs.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 05c451343f4c3ff5185146a6d8911b9be5310fde
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 08:03:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Set up a CI for Arm64 macOS too

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 71d4cb3a8bc689dcf07081e112531132651fbe02
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-12 07:47:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix cargo test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9c267256d896125a2aea4be8609ec415ff7760ef
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 10:12:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Stub YJIT-specific implementations in the backend

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e28ab5480e457b54681b4b23b1081a62aec8cb16
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 09:18:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Copy yjit/src/backend to zjit/src/backend

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a9903686688203c5e0b76fbac5520a9d52106795
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 06:15:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Format some push_insn code

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 25b357294cdd45689835d21bdd13870b87739bb7
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 03:59:09 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Re-work CFG queueing

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 01fbd0d5eebf5918acacc10b12a6a88daf06ffd9
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 03:54:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Don't re-visit blocks

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 805c0baa39fad1c1e179f8cced237f254de02082
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 01:48:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Pass entire FrameState as block args

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 037e35ef590b93cfea8eedfc540f5b8a4b1c4ec9
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 01:47:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Display IfTrue and Jump

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3372c137a73208a45ce99f805f4bf64551a89ddb
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-12 01:13:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Create FrameStates with block params

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d96cb4fe6f0f364a4ba2163e56a1bd4f8c776924
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 10:24:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Move CodeBlock to asm module

    The assembler does expect CodeBlock as the first argument of most
    assembler functions, so it is a part of the assembler library.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 90dd6f7e2ab2d81381fd5298a47e54dce63d7e6c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:26:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Check dump_disasm option before running disasm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0d791686f958f397152811e7cb05c8e71d3fdec5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:20:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix configure for zjit-bindgen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c1199714edc015eab89d855a75f69d3cfd66e874
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:14:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Revert "Suppress ld's macOS version warnings"

    This reverts commit 47b810cdb7b2604cf0e83a9e68ebc4a02dbc37db.

    It seems to break the CI.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1906db9c78b62eceeef0eb97fb2cde429a15465d
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:12:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Implement version string for ZJIT

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6bc9e8e42353406638b8cebcc1312c73c1e2bdd2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:08:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    We don't need the result job for now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8d1c404dc1a8d850be1d395087cab3b4a834dae7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 08:07:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix #[warn(elided_named_lifetimes)]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f3b673d0626a2d5c0673ce21bfa87cb57efc267f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 07:59:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Run a basic CI for ZJIT without --zjit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a6e1a562e4c9f8c9a0f9e0c7db6fb1c0795d0ade
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 07:53:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Support --zjit-dump-disasm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0252ce1cd439ec2cacd9486b5c0cf2ee50ecc13e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 06:31:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Implement Options as part of ZJITState

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 464e74f20cd0190565b908d0b7a0a91fcef4c3f7
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-11 06:49:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add branchif, jump

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5b5d54f8862e8fccfde9f657d85529eaf2f161b2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-11 06:30:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Suppress ld's macOS version warnings

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 948560ac5a05efaf17add7f4edd0ecf75e0bb5b2
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-11 01:10:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Traverse bytecode using block queue

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3b97bcea13da6b21452bce4136ad6e54f28c9348
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 03:09:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Give context in StackUnderflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1013ced144dc9d3507640394f4a442d10b44fa22
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:58:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Don't panic; err

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2ae92c97f8f56394ec2f19d7747264ac1bdf5305
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:48:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add opt_ltlt

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 251a7cfaf156122b42659485c77627a9a2cbc5b3
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:46:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Format nil VALUE opnd

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cb8b6a34436273b57afe31ca20b3014a890fe862
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:43:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix opt_plus/opt_lt param order

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9cec9a5c1ebdaa83f9825371b954ed2ffe4aec32
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:43:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix setlocal/getlocal

    Need to read the index

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2ce1888005f6f53aa7049e1d7bb7cf1dffa7d1a0
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:19:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add setn

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 70f365708b34f4690951d3e355ce248dfda1b7d5
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 01:14:50 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add opt_aset

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 03a56988e43b37dd29e9e2fc6e4ea69caaa28e6a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 00:36:26 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add opt_send_without_block

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e60f84af0bb32686617c5be1c69dba555201d1bb
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-08 00:36:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add putself

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d0ee9bcd70db5fd5a59ce9ea2cd284990ab5f1fa
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:48:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Ignore other insns

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9fa2a9aba8e6b6919c1fa403a45dd19797a522e3
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:46:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Don't make a new block after end of iseq

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4ff0109ffdbafedbd3d2ca489d0b0cc7c980916c
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:45:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    De-duplicate block starts

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit fdb4e24d562b1cd9611e24dcac8293e9727eedba
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:43:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Split block after leave

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9910fba282dfc19214d8a34b5f62c1e11d8a73ac
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:40:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    More jump targets

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ea98a5ae39087edd18a1225f3fe4614dfefe4fe6
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 23:36:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Display FrameState

    Also make pc a VALUE instead of ptr to VALUE

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6a7578632295a3d6ad271c96b73e66c66b7f428b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 07:08:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add Snapshots and customizable function printer

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4595c5d7143ead6d12d7c26daabf6d2cb1512e56
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:54:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Display NewArray, ArraySet

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 66c2809980e513f9fd69c50792094b43353a5b5f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 06:49:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Store iseq associated with function

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a113df0cede23b37176a4ff179d54c451e05abd1
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:33:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Adjust the format of Send

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e19ccddb9bc9fb2fc037f51ee64e1fb8eb1f04db
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 06:30:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

     YARVINSN_opt_send_without_block, can do `-e nil.itself`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a93ff3616115688f5b96ec926e32f39522f80d78
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 06:30:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Add empty doc/zjit.md to place notes

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b6ac5cdefd5ebf786c2f0fcefe248bc6a773d156
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:29:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Fix s/[add|lt]/send/g

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a74615fcd7e9a5f1636a816e2d312709aaa60cfd
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 06:16:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Implement the disassembler

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 92d48f47a3866d05f09a3746deb61e7e6c978a0c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 06:07:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Use separate cargo build flags

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 94f572f6b49f9cd3373cfd8a9c79284e4df32d64
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:09:50 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Display Test and BranchEdge

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 75724a10e1c864ecf11a9e528ceabb4e90ac61b6
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 06:08:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Remove mock RubyOpcode

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bfae72b34b5dd0a1c3061b7f1fcf1d970eb71adf
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:06:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Display Send

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3305e7626ddbdb0e787fd17cb26eb9ae18e16afe
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 06:04:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Store pc on frame state

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a6872d8feb8fe059cfa6cd72eee55af89ce09709
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 06:02:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:57 +0900

    Try to use libcapstone

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f7e6a2cf36d83224e69c7c8d5e7d6d019f9d69da
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 06:00:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fake CallInfo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 7fd42d5fbe0b914cf7001029255fd7af4125c3d3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:47:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fix warnings on Mac

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit eb677ec24c421a0817d642c94857e8923ab94f1a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:42:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fix the handling of flags

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c5e17f50b7bc81d39f2f063a238fc8cb55ef726c
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 05:41:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Make iseq_to_ssa return Function object

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 520872074603d99432e206b55461fe6d62dd305a
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 05:38:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Pass CARGO_BUILD_ARGS through properly

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e97d47d5fb6cfeda5253bc6a89f570033b106ac9
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 05:13:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Overflow checks in release profile per tradition

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2ac7b85ea57a6f3e0252a080687df2874348cee0
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 05:38:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fall back to ugly debug

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 518a387d6c5ca72eab09eaea8091234cd86132e8
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 05:37:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Pretty print fixnum

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5f199c8f4b217a3b931fc5335fe79fe0e34ffd95
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 05:33:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Display Return, Add, and Const

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e74345039ffa4486d0bd02432c58a4ec2b3b1f29
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:31:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Return null on Arm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a8f1dad1e77270f9e4160e937a1d24ee07d19126
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 05:27:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Pretty print SSA, sort of

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f4a011bc22572920cc7676b3f2e944c2838f0bbf
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 05:15:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add multiple blocks

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cdcdb9c6a8803b35c33021d406f5552979ad959a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:24:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Reuse the register variable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b076037af26de91c41c651ce40ed4d38fcfdce05
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:23:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Disable yjit_hook builtin for now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 73d01016e81bc9f24355777de1a04a6a8b5a1a80
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 05:22:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add opt_lt, remove as_usize() trait

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6a0748d2c5b434615327eed0e3934a77b41c7903
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:21:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Port align_ptr for x86

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 82e4c07343de7cd6f235b646c7aee17142c76aa3
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 05:13:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Generate intructions to be executed

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 34becd4017e2eb5f5f0e9be93cb85a4495892f7f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 05:12:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add CCall insn

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 14a4edaea61a49da0c93ce53d76bbecba2df7448
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 04:57:18 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    bindgen works in --enable-zjit=dev mode.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 35aec9ff680904ebe1067d40c18e2b75fd1d0b7f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 05:05:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Sketch Send insn

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 3c8386b11d68c9c9472254faf08e667754aaea34
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:47:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Store interpreter pc on FrameState

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e0f1bc86b9fd3f82200d2651e578c4120cd975cf
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:42:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Sketch opt_plus

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d7dbaf04fab43d75d6e77ee45a77567cfdc831ed
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 04:21:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Get CodeBlock

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9ddce45c7df7d198b5089042ea8be5717f3eef00
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 04:12:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fix duplicated make target names

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5af1c2ed62a681bd4e710e81f62e1a1e27582f8a
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:20:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add YARVInsn_nop

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit b5deaf85dd47aa84358bb35d58bca1c14f7850bd
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:18:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    AllocArray => NewArray

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d1b4bd4acac9df0e5fcc6097a44bc096fe1e69ac
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:16:46 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Move RubyOpcode

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2b9570a24c88bb592760c40fd755d5fb6053c674
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 04:13:52 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add BranchEdge

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 4b9455a859fc54dad4c2ad920f664021b2ae035b
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 04:10:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add some INT2FIX

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 9b54848d66891a4bf1731bb398864f67a797f7b4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 03:59:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Don't skip unknown opcodes

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bd22748c6bfeb208a0024fee1e1d2a6891083ed4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 03:58:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add rb_insn_name to zjit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 00511bcc92c02384a481ffd78412a888811795de
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 04:09:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Put mod in the right place

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 750480d624f1dd78d2f4a4b2e7514613e3f6c2f5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 03:57:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Set up the panic handler

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 106b328117cd02f22c4344b250e4836475bff59e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 02:35:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    make zjit-bindgen runs, but doesn't graft the right things yet

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 5e37317cc51bc8349714ccbd8004ae882f56542d
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 02:27:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add (gutted) asm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 809b63c8044692284e57c4d417030c9abb74a4ae
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 02:26:53 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Fix bindgen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cf2e305d737c2d217f0509079b86f246aefdae68
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 02:23:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Initialize VirtualMem

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f9b03b237c29993f293c0d17a26cbb2246d489bd
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 02:15:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    for now symlink cruby_bindings.inc.rs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d091d6ea94e5a23346c30ea642d53bd00c90ee30
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 02:13:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add swap

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit db14f4a16b818d4709553af8da8f9875d997a809
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 02:12:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add pop/dup

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1d95139bf6bee795fb5dc47da9d0ae663bc69c8c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 02:10:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    `miniruby --zjit -e nil` runs through iseq_to_ssa

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0f9557e9a7992c91c4aba9d8cf88c0695445e611
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 01:39:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Copy VirtualMem and mmap

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a0e2502e183cbc699cfd18922dfc9ee1fede320f
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:56:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add other real yarv insns

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 64287c95caceb2d00b49d68946e0de5df0a642bf
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 01:45:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add iseq_to_ssa()

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 21026abbd6d15135ea98358ba864ced2569c9d41
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:41:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add Newarray

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 0bb709718b023457a490efe222ce19cb2a1dce07
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 01:35:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Hook ZJIT compilation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 26d1aa40292b33c3dc35f4ce8ccca10f1efbd5a1
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:29:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add Intern opcode

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 139102b24adb4fcd431785a3b5b38c4edbf3a515
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 01:17:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:56 +0900

    Add comments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8d5d5b34cff237540f0b80e943b584d872745ec0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 01:23:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Hook zjit_init

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit f0954d1b2b7703e0d5dc89564caa4620305d16c1
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:21:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add Putstring

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit cabfa3bfe14f72ef139ff081766add46db6922cd
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 01:15:22 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Call libzjit from CRuby

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit bb9b45a8ddb66001a75ff5aa46729f4f8d5e3f97
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:13:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add setlocal and getlocal

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8ad08f112684acf5eff590363be6f3035cb242a2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:55:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Fix template/Makefile.in

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 6e9cc0e7bdfb5ed9a63a8eeebe5feb2b513b9acc
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 01:09:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Derive block default

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 30e688ca14c5bcab58974cea468c24bdd55bee54
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:04:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Move IR to its own file

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2b05fbd1b4ad30e878b9a5914507f2ec676b1885
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 01:01:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add putobject

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 41786d355a464d990865084c7a8d5689fd233e9a
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 00:58:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Bring back Opnd

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 50908a7fe2a99357c7b7b0a5f629dc566b28db9f
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 00:54:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Replace RubyValue by VALUE

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit acf9491215e12334e0ceadf1458eb9ba707d87b7
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 00:51:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add assert for Function

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a45a85a58f16568a356bb12c6b9b3c4b9d7b59d1
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 00:51:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add imports, allow dead code

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit e6ffc141b174609413ed03104af3436d5792d192
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:50:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Define ZJIT libs for non-gmake

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 1388f9291963aa725a9a5d874c64fd51a03166d4
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 00:45:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add simple SSA

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 344ee211d6dd827ebd4c81253541fb8d05706177
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:36:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Link zjit into the interpreter

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit c0e42a7e8fefc4f89d4723c762319a91f573027c
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 00:41:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add CRuby bindings

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit a65b79c6537d84cac82b1e0f76ff0fd8c69931af
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-07 00:32:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Turn ZJIT into staticlib

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 82606faaea562980fa2988c8a73ef1267adbe97b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:29:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add zjit.mk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 2a3dc9f32fd841a42b7c41ef15f5fd39dad2e288
  Author:     Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
  AuthorDate: 2025-02-07 00:28:28 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add stats.rs placeholder

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit dca2b1ddaf85e8751b76f74b044d0de279541c51
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 00:27:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Sketch HIR

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit d993307d4cf2eeac3c261d4fa4fa308ea3740830
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:27:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Add --zjit option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 43234138d6456ea2b9b65d2fc2c69a4fb769cef6
  Author:     Max Bernstein <max.bernstein@shopify.com>
  AuthorDate: 2025-02-07 00:25:02 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    Downgrade lockfile

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit 8e47b6f324cc41d650b87237b4139bba0b0de743
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-07 00:12:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 21:52:55 +0900

    cargo init

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13131

commit ad69f4ddffb639dca7313dda10865735529b4325
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-04-18 21:10:18 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-04-18 21:10:18 +0900

    [doc] update {Enumerator,Enumerable}#size document.

    at Code Party RubyKaigi 2025.

commit ccc7493308ae327fb6c089e88e0cd4436c4dc513
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-04-16 00:31:10 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-04-18 19:50:23 +0900

    U+036F is now alnum

    0363..036F    ; Alphabetic # Mn  [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13117

commit 63b07cdcbba1d523219c8a59048615441d0a9c08
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-04-18 16:16:59 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-04-18 19:50:23 +0900

    [Feature #20724] Bump Unicode version to 16.0.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13117

commit 900ece77b2d338300ea79d19e7c623043a0be810
  Author:     Martin Dürst <duerst@it.aoyama.ac.jp>
  AuthorDate: 2025-04-18 16:03:30 +0900
  Commit:     Martin Dürst <duerst@it.aoyama.ac.jp>
  CommitDate: 2025-04-18 16:07:17 +0900

    prepare Unicode normalization for Unicode 16.0.0

commit ab22f3910d51703ddf832e46c2a5e845b4703f50
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-04-18 12:19:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 13:56:57 +0900

    Mention VS Code debugger configuration in debugging guide

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13129

commit 3a29e835e69187330bb3fee035f1289561de5dad
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-04-17 10:27:38 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-18 13:03:54 +0900

    Add benchmarks for fstring de-duplication

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12921

commit 57b6a7503f19a9ffb53b1c505c7e093d7a6e33a4
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-07 09:16:35 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-18 13:03:54 +0900

    Lock-free hash set for fstrings [Feature #21268]

    This implements a hash set which is wait-free for lookup and lock-free
    for insert (unless resizing) to use for fstring de-duplication.

    As highlighted in https://bugs.ruby-lang.org/issues/19288, heavy use of
    fstrings (frozen interned strings) can significantly reduce the
    parallelism of Ractors.

    I tried a few other approaches first: using an RWLock, striping a series
    of RWlocks (partitioning the hash N-ways to reduce lock contention), and
    putting a cache in front of it. All of these improved the situation, but
    were unsatisfying as all still required locks for writes (and granular
    locks are awkward, since we run the risk of needing to reach a vm
    barrier) and this table is somewhat write-heavy.

    My main reference for this was Cliff Click's talk on a lock free
    hash-table for java https://www.youtube.com/watch?v=HJ-719EGIts. It
    turns out this lock-free hash set is made easier to implement by a few
    properties:

     * We only need a hash set rather than a hash table (we only need keys,
       not values), and so the full entry can be written as a single VALUE
     * As a set we only need lookup/insert/delete, no update
     * Delete is only run inside GC so does not need to be atomic (It could
       be made concurrent)
     * I use rb_vm_barrier for the (rare) table rebuilds (It could be made
       concurrent) We VM lock (but don't require other threads to stop) for
       table rebuilds, as those are rare
     * The conservative garbage collector makes deferred replication easy,
       using a T_DATA object

    Another benefits of having a table specific to fstrings is that we
    compare by value on lookup/insert, but by identity on delete, as we only
    want to remove the exact string which is being freed. This is faster and
    provides a second way to avoid the race condition in
    https://bugs.ruby-lang.org/issues/21172.

    This is a pretty standard open-addressing hash table with quadratic
    probing. Similar to our existing st_table or id_table. Deletes (which
    happen on GC) replace existing keys with a tombstone, which is the only
    type of update which can occur. Tombstones are only cleared out on
    resize.

    Unlike st_table, the VALUEs are stored in the hash table itself
    (st_table's bins) rather than as a compact index. This avoids an extra
    pointer dereference and is possible because we don't need to preserve
    insertion order. The table targets a load factor of 2 (it is enlarged
    once it is half full).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12921

commit b28363a8381fd4e93d1254e71486e0185a84c9c5
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-29 14:23:48 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-18 13:03:54 +0900

    Work on ATOMIC_VALUE_SET

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12921

commit 89199a47db25a89cbce05f1be6685e96ded32db5
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-11 15:49:59 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-18 13:03:54 +0900

    Extract rb_gc_free_fstring to string.c

    This allows more flexibility in how we deal with the fstring table

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12921

commit 6f6d07272e76682029112c4ceb6eb6b811ee8d6f
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-18 11:37:55 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-18 11:37:55 +0900

    Update usage of `enum rb_io_mode`. (#13128)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit bcacf7c849bdc835221f2899e358dd640f1f5042
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 09:08:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 09:08:57 +0900

    Add configuration for git commit

    and test auto-style again by adding spaces to app_fib

commit 2da80242a965b59e0d7b678ebee512aa23404258
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 09:04:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 09:04:25 +0900

    Actually test auto-style

    My editor deleted trailing spaces which I meant to leave

commit d5f3549e712a3ec517df6c384d14dcfe89799941
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 09:02:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 09:02:30 +0900

    Test auto-style

commit ba341883b9fa050eebc8ed586165e21408e5b727
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 09:02:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 09:02:15 +0900

    Fix auto-style target reporting

commit 4805f20f44025cdd4571c9fc217a49b4f90b9aaf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 08:58:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 08:58:37 +0900

    Use github.event.before

commit 69c1e4c422e7497e3dc44a0e88e9d21c52d62aa8
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 08:55:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 08:55:29 +0900

    Check GitHub context for push events

commit 3e1dae8d2a95a08b9a1e5a8b16febb12924be398
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 07:19:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 08:52:52 +0900

    Port auto-style to GitHub Actions

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13126

commit 8c6f250dcf4624892347e7d15c9739c043528abf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-18 06:56:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-18 08:52:52 +0900

    Copy over bin/auto-style.rb

    from ruby/git.ruby-lang.org as of:
    https://github.com/ruby/git.ruby-lang.org/commit/a8635a4cd93c8adc2e1b48b6ae8fa3fcd3bb4b34

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13126

commit 0db1f47ad057b1d1df78f32fab8dc6ea60002f38
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-04-17 23:52:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-18 08:48:55 +0900

    [ruby/resolv] quote registry value name properly

    'NV Domain' needs to be quoted.

    https://github.com/ruby/resolv/commit/332a16dcc0

commit b4f74e24d99cd02cd4f0d2ab109b85219c04fa9c
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-04-18 00:26:47 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-04-18 07:47:49 +0900

    [wasm] Fallback to emulated realpath on wasi-libc realpath `ENOTSUP`

    wasi-libc 22 and later support realpath(3)
    (https://github.com/WebAssembly/wasi-libc/pull/463) but the underlying
    host syscall may return ENOTSUP. This is typically the case when using
    incomplete WASI polyfills on web browsers. For such cases, we should
    fallback to the emulated realpath.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13124

commit 06a7b3c14453b35ff530b3a06c134193dc25207e
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-18 01:19:05 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-18 01:19:05 +0900

    Only test on known good platforms. (#13123)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit c4ae6cb5005cfa53be0af466a5619e7455c15744
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-17 22:21:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-17 22:21:51 +0900

    Prefer `th->ec` for stack base/size. (#13101)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 6556a7be2614d1c808ba7bd11e8b6158c99bc5f7
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-04-17 19:01:08 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-04-17 19:59:19 +0900

    Temporarily stop the trailing-space check in CI

    I will restore the check after the preview release

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13122

commit 25efd09c71fc53acf1c5ce7f994b1bb78396b9f9
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-04-17 17:10:16 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-04-17 19:59:19 +0900

    sample/trick2025/: adds the top-five entries of TRICK 2025

    See https://github.com/tric/trick2025 for TRICK 2025.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13122

commit 7e2ba5a91bcdc31e14502f797a6184e3f4d41747
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-17 07:19:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-17 08:08:37 +0900

    Don't use admin grant

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13121

commit 9b5ae69aac7246199c7cb8e32f7f0490fa519751
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-17 07:18:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-17 08:08:37 +0900

    Use uutils-coreutils

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13121

commit b4c29b7af648051430de5439740b6b08756d1d83
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-17 06:27:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-17 08:08:37 +0900

    Use coreutils instead of msys2 because msys2 is not provided windows-11-arm

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13121

commit 0a8a641d0a1917285cbfeca0dc47f7bd56c1f093
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-16 23:51:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-17 00:16:50 +0900

    [ruby/openssl] ssl: fix SSLSocket#syswrite with String-convertible objects

    Correctly pass the new object assigned by StringValue() to
    ossl_ssl_write_internal_safe().

    This is a follow-up to commit https://github.com/ruby/openssl/commit/0d8c17aa855d (Reduce
    OpenSSL::Buffering#do_write overhead, 2024-12-21).

    https://github.com/ruby/openssl/commit/3ff096196a

commit bbf873521a01c1c44297b9dd52cf4e309ae5b496
  Author:     NARUSE, Yui <naruse@airemix.jp>
  AuthorDate: 2025-04-16 16:54:33 +0900
  Commit:     NARUSE, Yui <naruse@airemix.jp>
  CommitDate: 2025-04-16 16:55:38 +0900

    Add description about edge cases of Enumerable#size

    [Bug #21152]

commit 8d21f666b8098545a366c46f1990edf2a9f4ffcb
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-16 16:50:37 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-16 16:50:37 +0900

    Introduce `enum rb_io_mode`. (#7894)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 51952929e1ddd01a17f9e47899ec4de35be002c6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:59:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-16 14:10:36 +0900

    [rubygems/rubygems] Fixed rubocop issue: Layout/SpaceInsideBlockBraces

    https://github.com/rubygems/rubygems/commit/77a52b011a

commit a4eb81a08334cbe2963e535f9cbfd0aea96c3144
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:39:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-16 11:40:11 +0900

    Revert advanced-security/filter-sarif update for v1.0.1

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13119

commit 02152501a41cd645267ffb8c2ee7aeb843a0fec8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:23:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-16 11:40:11 +0900

    Bump up to msys2/setup-msys2 to v2.27.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13119

commit 49c29cff479546df7e267d97ceb1f08a4d537a8e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-16 10:22:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-16 11:40:11 +0900

    Bump up to the latest versions of actions

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13119

commit 2cf95e2e0428a5cc07734789bbf618c014ad5c2d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-16 08:29:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-16 08:29:23 +0900

    Run the proper version of `rake`

commit 28491e53cda02c9b7372c01b88bf55dad50a53bf
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-15 20:15:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-15 20:15:35 +0900

    [ruby/stringio] Support for `rb_io_mode_t`
    (https://github.com/ruby/stringio/pull/129)

    Companion PR to <https://github.com/ruby/ruby/pull/7894>.

    https://github.com/ruby/stringio/commit/2d3988e12f

commit 77a52787a6321ee8964c1a6ccc5547abc4a08caf
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-15 13:43:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:48:22 +0900

    [ruby/json] Cleanup Kernel#JSON

    https://github.com/ruby/json/commit/573ebdca89

commit 26a9ccbf83957877355ef5eb3993dc28e07e4278
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-15 13:43:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:48:22 +0900

    [ruby/json] Deprecate Kernel#j and Kernel#jj

    https://github.com/ruby/json/commit/27155b6500

commit 1afc5399004ac5f27133469873571e7ff0ab16ab
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-15 13:35:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:48:21 +0900

    [ruby/json] Get rid of JSONError.wrap

    https://github.com/ruby/json/commit/3e7e661ef5

commit 62b7ae955a1fba88a4f70e270b1e118cc6c0d778
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-15 13:34:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:48:20 +0900

    [ruby/json] Don't create custom NaN and Infinity objects.

    https://github.com/ruby/json/commit/ff8e18392d

commit b8b4c15695ac4053b9d6c203e3948ea545be726b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 04:06:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:22 +0900

    [rubygems/rubygems] Let `bundle lock --normalize-platforms` remove invalid platforms

    https://github.com/rubygems/rubygems/commit/c39d2f84fd

commit 1929e73a36958aee963d4e843716a3927d641d69
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 02:45:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:21 +0900

    [rubygems/rubygems] Raise an error if `bundle lock` target platform is incompatible

    https://github.com/rubygems/rubygems/commit/282e4a8593

commit 1b18810ed92191f53069f5ef285084d37cb26aed
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 02:43:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:21 +0900

    [rubygems/rubygems] Rename `resolution_packages` to `resolution_base`

    It handles resolution packages but also other stuff.

    https://github.com/rubygems/rubygems/commit/4baec92c20

commit c910e85b022bca1518dc720af968fbaf58fa453e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 01:04:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:19 +0900

    [rubygems/rubygems] Extract some logic to a method and expand comment

    https://github.com/rubygems/rubygems/commit/ed31e888fd

commit 0ad7cf17a00d7f183f4fb41a9c4b595ea8bb99cd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 03:00:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:19 +0900

    [rubygems/rubygems] Clarify comment

    https://github.com/rubygems/rubygems/commit/42534e746b

commit 806fbb1e477c4e70f3239a117a31ccef13f7aa2d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-13 01:02:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:18 +0900

    [rubygems/rubygems] Comparing platforms is only needed for dependency validation

    If we materialized to a different platform, then the dependencies may
    actually be different so the validation does not really make sense.

    https://github.com/rubygems/rubygems/commit/68fad98e6f

commit 3cb573ee55f3d3af03f3a232ba442bd949277f17
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-12 23:01:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:17 +0900

    [rubygems/rubygems] Only platforms are relevant here

    https://github.com/rubygems/rubygems/commit/4b6f07f634

commit 00389b664bc6f5faaaaef9ddb2fb706052a20de4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-12 22:53:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-15 16:47:16 +0900

    [rubygems/rubygems] Fix false positive warning about insecurely materialized gem

    In frozen mode, the previous logic would not set the platform locked
    originally in the materialized specification, and that would trigger the
    warning about insecure materialization incorrectly.

    https://github.com/rubygems/rubygems/commit/a18001e10c

commit 72dc16aa65a9d46f032d7a8d0292f5a5df6aade5
  Author:     Luke Gruber <luke.gru@gmail.com>
  AuthorDate: 2025-04-03 02:04:49 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-15 16:34:22 +0900

    Add a test for moving composite object parts

commit 698ef864a59004f468c77534d59e51e862ec2624
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-04-15 15:55:40 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-04-15 15:55:40 +0900

    `IO.select` accepts +Float::INFINITY+ as a timeout argument.

    matz accepted at the developper meeting 2024-07-11.

commit e1f544c1cf34787f139a973b934c9f535b201ea3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-04-10 22:26:06 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-15 11:50:48 +0900

    Always look for the top-level RBasic in LLDB scripts

    `rp` and other commands were broken for me because they always showed
    the object as a T_NONE.

    The reason was that instead of returning the type `struct RBasic`,
    FindFirstType("struct RBasic") was returning
    `yjit::cruby::autogened::RBasic`.

    Explicitly asking for the top-level RBasic by prefixing it with `::` is
    enough to fix those commands.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13096

commit 6e184ebb5aa0461936a6db408a7fa48541a0e80d
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-04-10 22:24:52 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-15 11:50:48 +0900

    Fix LLDB heap_page command

    Move _append_command_output and _append_expression to LLDBInterface, and
    use it from HeapPageCommand after setting result.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13096

commit 0606046c1a3816eabb26b5de18942c02710eb28e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-10 18:53:39 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-15 07:57:39 +0900

    Lazily create `objspace->id_to_obj_tbl`

    This inverse table is only useful if `ObjectSpace._id2ref` is used,
    which is extremely rare. The only notable exception is the `drb` gem
    and even then it has an option not to rely on `_id2ref`.

    So if we assume this table will never be looked up, we can just
    not maintain it, and if it turns out `_id2ref` is called, we
    can lock the VM and re-build it.

    ```
    compare-ruby: ruby 3.5.0dev (2025-04-10T09:44:40Z master 684cfa42d7) +YJIT +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-04-10T10:13:43Z lazy-id-to-obj d3aa9626cc) +YJIT +PRISM [arm64-darwin24]
    warming up..

    |           |compare-ruby|built-ruby|
    |:----------|-----------:|---------:|
    |baseline   |     26.364M|   25.974M|
    |           |       1.01x|         -|
    |object_id  |     10.293M|   14.202M|
    |           |           -|     1.38x|
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13115

commit b68172caada45724a302f337334f29ebae5a0e1e
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-14 22:12:45 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-15 00:39:12 +0900

    Rename `f_optarg` to `f_opt_arg` for consistency in parser rules

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13114

commit 1c8154e5c9fc18878146330fb86f3216b4769aea
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-14 22:05:08 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-14 23:13:57 +0900

    Use call_op2 instead of call_op and tCOLON2

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13113

commit c13ac4d615c28edc1580363c13b44eb7a73103f3
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2024-11-01 11:45:43 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-04-14 18:28:09 +0900

    Assert the GVL is held when performing various `rb_` functions.

    [Feature #20877]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11975

commit 4e970c5d5aee94c729541236c69792ec314f3731
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2024-11-21 06:38:13 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-04-14 18:28:09 +0900

    Expose `ruby_thread_has_gvl_p`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11975

commit 22667fcc38f6246f8d93f229097375f85e3efbab
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-04-14 16:46:11 +0900
  Commit:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  CommitDate: 2025-04-14 18:28:09 +0900

    Add `RUBY_VERSION_IS_3_5`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11975

commit ad8cb532d52692fe72dea68a0aeaf48e5fc1fc02
  Author:     Sutou Kouhei <kou@clear-code.com>
  AuthorDate: 2025-04-13 13:18:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:18:48 +0900

    [ruby/strscan] Bump version

    https://github.com/ruby/strscan/commit/7b1eb1e4ed

commit 0db87b894365101581d7a560f019acd5acd434f0
  Author:     Jean byroot Boussier <jean.boussier+github@shopify.com>
  AuthorDate: 2025-04-13 12:42:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:18:47 +0900

    [ruby/strscan] Allow parsing strings larger than 2GiB
    (https://github.com/ruby/strscan/pull/147)

    For a reason unknown, even though `pos` is stored as a `long`, the
    `#pos` and `#pos=` treat it as an `int`, which prevent seeking into
    strings larger than 2GiB.

    https://github.com/ruby/strscan/commit/b76368416e

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 38024772cafb3342a61d247c42d47d07afa97a8a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-11 03:32:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:17:50 +0900

    [rubygems/rubygems] Refine `bundle update --verbose` logs

    Don't mention "Found changes from the lockfile" because that's not
    really true in general.

    https://github.com/rubygems/rubygems/commit/0181c278e8

commit ce2640dde8c65d9e11c3bc2249c5cd5bb7d0dbce
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-11 04:03:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:17:50 +0900

    [rubygems/rubygems] Fix edge case making `bundle update` behave incorrectly

    If both a native and a generic version are locked, but the native
    version is incompatible with the running Ruby, Bundler will still keep
    the native version in the lockfile, since it could be potentially useful
    when using other rubies.

    However, when `bundle update` is run, this was not the case because the
    locked native gems were not using the right source when materializing.
    They were using the lockfile source instead of the Gemfile source, and
    that meant they could not be found when materializing, because the
    lockfile source always uses local mode so does not see them.

    The effect of this was normally that they were incorrectly removed from
    the lockfile and a strange "this spec has been possibly yanked" was
    printed in verbose mode. However, in certain situations (i.e., when the
    generic gem would bring extra dependencies), it could also make `bundle
    update` crash.

    The solution is, when adding this extra locked specs to the result after
    resolving, maybe sure they inherit the source from the resolved specs,
    so they can be found when materializing.

    `bundle install` did not have the issue because it passes locked specs
    to the resolver, and assigns the right source to them in
    `Definition#converge_locked_specs`.

    https://github.com/rubygems/rubygems/commit/91ce881fda

commit 66aa7139800e7ab5ef7d7a1b0dec73789936e672
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-10 23:42:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:17:49 +0900

    [rubygems/rubygems] Materialize specs just once in installer

    `Definition#specs` does the same thing but memoizes the result.

    https://github.com/rubygems/rubygems/commit/b62bf9fe41

commit c4a2f72b1bf0e43782ae38e0a456d8e18131c63a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-08 00:42:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 16:17:48 +0900

    [rubygems/rubygems] Fix `bundle lock --normalize-platforms` regression

    https://github.com/rubygems/rubygems/commit/458fa5dc4c

commit f65aad61f7c2b5ff15d10be9264d3b323b9e5145
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-14 10:24:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-14 11:20:34 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13112

commit 311167ee3a3c5fce6c4a3aa3a1aca18da0d55c88
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-13 21:59:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-14 07:03:59 +0900

    [ruby/etc] Suppress unused function warning

    https://github.com/ruby/etc/commit/410c8dd4ae

commit 6d00fa2270131b049a5502406868a1c7741812ad
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-13 21:48:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-14 07:03:59 +0900

    [ruby/etc] Check members only for defined structs

    https://github.com/ruby/etc/commit/15c2696794

commit e2559645421294d80315313d13385e8b948ab880
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-14 02:33:28 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-14 03:21:17 +0900

    Use user defined parameterizing rules `range_expr`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13111

commit 088fd968ed8af169964bed47cde2b25b58004396
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-14 02:13:58 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-14 03:01:01 +0900

    Add a new non-terminal symbol `ternary` to tidy up

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13110

commit e9966998200ba4786f5b6912047832c8889999bd
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-13 23:02:14 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-14 01:15:20 +0900

    Refactor assignment rules to remove unnecessary lhs parameter

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13109

commit 3700ae2e99a879a2b413c3132c95d933386c4e24
  Author:     Haruna Tsujita <82350582+haruna-tsujita@users.noreply.github.com>
  AuthorDate: 2025-04-13 20:46:40 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-13 20:46:40 +0900

    Fix typos `finised` -> `finished` (#13104)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 8c9cd65d8203cbae8f95a945669ee6215a0287e1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-13 16:53:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-13 16:53:18 +0900

    Fix unnecessary `false` in `CLEANLIBS`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13107

commit cfa74dda4547c7ef4d3510b729bad8cc6299e523
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-13 16:00:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-13 16:00:08 +0900

    Update bundled gems list as of 2025-04-13

commit 29b26fd3e7a881399b69665184be41ee6d47da6f
  Author:     Daniel Colson <danieljamescolson@gmail.com>
  AuthorDate: 2025-04-13 03:04:57 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-04-13 11:44:49 +0900

    Fix macro for disabled match cache

    The `MEMOIZE_LOOKAROUND_MATCH_CACHE_POINT` macro needs an argument
    otherwise we end up with:

    ```
    ../regexec.c:3955:2: error: called object type 'void' is not a function or function pointer
     3955 |         STACK_POS_END(stkp);
          |         ^~~~~~~~~~~~~~~~~~~
    ../regexec.c:1680:41: note: expanded from macro 'STACK_POS_END'
     1680 |     MEMOIZE_LOOKAROUND_MATCH_CACHE_POINT(k);\
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    ../regexec.c:3969:7: error: called object type 'void' is not a function or function pointer
     3969 |       STACK_POP_TIL_POS_NOT;
          |       ^~~~~~~~~~~~~~~~~~~~~
    ../regexec.c:1616:41: note: expanded from macro 'STACK_POP_TIL_POS_NOT'
     1616 |     MEMOIZE_LOOKAROUND_MATCH_CACHE_POINT(stk);\
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    ```

    The macro definition with the match cache enabled already has the
    correct argument. This one is for when the match cache is disabled (I
    had disabled it while trying to learn more about how it works.)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13105

commit 543dd77cc39d16a45693d35af670995f7e66ce36
  Author:     viralpraxis <iaroslav2k@gmail.com>
  AuthorDate: 2025-04-10 17:56:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-13 02:43:57 +0900

    [ruby/prism] Fix parsing rescued exception via indexed assignment

    Given this code

    ```ruby
    begin
      raise '42'
    rescue => A[]
    end
    ```

    Prism fails with this backtrace

    ```
    Error: test_unparser/corpus/literal/rescue.txt(Prism::ParserTest): NoMethodError: undefined method `arguments' for nil
    prism/lib/prism/translation/parser/compiler.rb:1055:in `visit_index_target_node'
    prism/lib/prism/node.rb:9636:in `accept'
    prism/lib/prism/compiler.rb:30:in `visit'
    prism/lib/prism/translation/parser/compiler.rb:218:in `visit_begin_node'
    ```

    Seems like

    ```diff
    -            visit_all(node.arguments.arguments),
    +            visit_all(node.arguments&.arguments || []),
    ```

    fixes the problem.

    https://github.com/ruby/prism/commit/76d01aeb6c

commit a35a101b4cd393aa4947eea872c71f0f7f0cd3f0
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-04-08 20:38:18 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-04-13 01:23:39 +0900

    Change the indent after lhs in generation rules from spaces to tabs

    Change the indent to match the characters used in other generation rules. This makes it easier to find lhs.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13082

commit 3628e9e30d3809da67eb38b9d19fa99f8a999eaa
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-04-11 03:53:49 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-04-12 02:28:26 +0900

    Remove unused field on Thread struct

    It looks like stat_insn_usage was introduced with YARV, but as far as I
    can tell the field has never been used.  I think we should remove the
    field since we don't use it.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13100

commit 0a35c5b4d9add69251590e3902a5d861df49e142
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 12:20:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 13:24:03 +0900

    Restore Windows 2022 build with VS2019 toolset

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13103

commit 8a15f806532fd1912b930abdcec6efac33f438b8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 11:37:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 12:18:56 +0900

    Fixed wrong usage of matrix.vs. That label is os version, not vs version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13102

commit 0e792793277f3bb67ec58369436a57c0cb757a4d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 11:11:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 11:11:38 +0900

    Note the detailed version of Visual Studio

commit a2b39e5ca686b677b63be2b1ab8baa5a1b8df08d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 11:01:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 11:01:05 +0900

    Added instruction for autocrlf issue of Git on Windows

commit 1bd029b1eaa76496f376d92059db5f0b355ad03b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 10:55:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 10:55:31 +0900

    Note the detailed version of Windows SDK

commit af69421c91abc49390e8741870fac63513efbc0b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-11 10:49:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-11 10:49:26 +0900

    Added instruction for MSYS2 without RubyInstaller-Devkit

commit f13e86a70edffe9af9b8bca15a0a9652cf143386
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-04 10:03:50 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-11 03:33:46 +0900

    Allow gdb's rp to work on classes offline

    It's useful to be able to get information about classes without a
    running process, ie. when debugging a coredump.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13099

commit e3dd766e991892f1e2c0191ab6648eb0872a641c
  Author:     HoneyryderChuck <cardoso_tiago@hotmail.com>
  AuthorDate: 2024-10-30 02:58:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-11 00:58:04 +0900

    [ruby/resolv] refactoring class-hash to be ractor-safe

    mutable constants can't be shared across ractors; this changes that design to define the required variables as constants on the Resource class, which makes them reachable using ractors; the ClassHash is kept in order not to break integrations relying on its existence, but under the hood it's doing the same thing

    https://github.com/ruby/resolv/commit/639c01dc7f

commit 54a85caed4b364df5a7dd25795957b20b8e50f8e
  Author:     HoneyryderChuck <cardoso_tiago@hotmail.com>
  AuthorDate: 2024-10-29 23:43:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-11 00:58:03 +0900

    [ruby/resolv] config read from file should return frozen data!

    https://github.com/ruby/resolv/commit/afb57f40a1

commit 756479324fcbf609b401cefafd2911268d4a7851
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-08 23:24:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-10 19:21:51 +0900

    Sync Bundler and adapt to new spec setup

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13083

commit 684cfa42d77f8b667333f5efa3bd52463985b9d4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-10 17:50:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-10 18:44:40 +0900

    Avoid to infinite require loop for irb.

    if irb and that dependency are broken, it caused infinite loop with force_activate("irb").

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13093

commit 8003a06854fed5e46d20ed310488294b96537da8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-10 17:39:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-10 17:39:56 +0900

    [DOC] Use slashes in mingw confiure examples

    To show that mingw `sh` expects forward slashes as path separators, not
    backslashes, configure in another directory than the source directory.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13092

commit 08ce6268ee1690f003af40b9357272d43e990d75
  Author:     Xavier Noria <fxn@hashref.com>
  AuthorDate: 2025-02-17 04:30:40 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-10 17:33:36 +0900

    Document order of execution const_added vs inherited

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12759

commit b47a04eb9151a9fa59979fbaf20deeb404822959
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-10 16:02:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-10 17:29:39 +0900

    Refactor bundled condition

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12847

commit 598b0e8b72930c372a22b3db5da17bd69871be20
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-04 18:46:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-10 17:29:39 +0900

    The current force_activate always fails without Gemfile

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12847

commit 3390b6a515c4195905ef3be715fb611cce7ccaf5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-04 18:44:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-10 17:29:39 +0900

    Added simple failing example

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12847

commit c5c0bb5afcbbc054c9e8f4e4b9209253d42f7326
  Author:     Xavier Noria <fxn@hashref.com>
  AuthorDate: 2025-04-09 05:29:05 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-10 17:20:31 +0900

    Restore the original order of const_added and inherited callbacks

    Originally, if a class was defined with the class keyword, the cref had a
    const_added callback, and the superclass an inherited callback, const_added was
    called first, and inherited second.

    This was discussed in

        https://bugs.ruby-lang.org/issues/21143

    and an attempt at changing this order was made.

    While both constant assignment and inheritance have happened before these
    callbacks are invoked, it was deemed nice to have the same order as in

        C = Class.new

    This was mostly for alignment: In that last use case things happen at different
    times and therefore the order of execution is kind of obvious, whereas when the
    class keyword is involved, the order is opaque to the user and it is up to the
    interpreter.

    However, soon in

        https://bugs.ruby-lang.org/issues/21193

    Matz decided to play safe and keep the existing order.

    This reverts commits:

        de097fbe5f3df105bd2a26e72db06b0f5139bc1a
        de48e47ddf78aba02fd9623bc7ce685540a10743

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13085

commit 0d6263bd416338a339651fb97fe4d62701704c4b
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-04-09 19:49:21 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-04-09 23:45:54 +0900

    Fix coverage measurement for negative line numbers

    Fixes [Bug #21220]

    Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
    Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13089

commit ce0d5cc06952317e8b0810ad978d6424f7ed9f6d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-09 19:14:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-09 19:14:36 +0900

    Refine dirname test on Windows

    - Compare with the root of the target file
    - Fix root path of UNC path

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13090

commit 5cf7d948ad4b8b365092673d48e3be16fcf08a10
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-04-09 19:13:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-09 19:13:58 +0900

    [DOC] Fix contributing link

    It moved in https://github.com/ruby/ruby/pull/13012 but wasn't updated here

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13088

    Merged-By: nobu <nobu@ruby-lang.org>

commit 9f61541f7624298be0c379ff61b66fc8470423e2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-09 15:18:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 15:51:08 +0900

    Re-enabled to test at win32ole

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13087

commit 8ab517698a76238d0afc7669b0ea1d5c6c1c0391
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-09 10:31:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 10:31:33 +0900

    sed is not requirement now

commit 9e93759b999c4fca219b3682eaf7964fa65f3bf0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-09 10:20:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 10:20:22 +0900

    Restore assertion that is not related mswin platform

commit ab4a25e48e351962d0d183d474c8b6d394123be6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-04 19:22:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 08:11:10 +0900

    [rubygems/rubygems] Follow up to removal of rubyinstaller2 workaround

    https://github.com/rubygems/rubygems/commit/5b312fd040

commit ae45a7a952c232be66cd08b8c2df62c5fc741ab0
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-07 20:10:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 08:11:03 +0900

    [ruby/json] Cleanup jeaiii-ltoa to not need pragmas

    https://github.com/ruby/json/commit/97f2924d0a

commit b1362e26c7375a6fe3f30437b23e6e9fc28e35ab
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-07 19:44:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-09 08:11:03 +0900

    [ruby/json] Suppress -Wunknown-pragmas warnings

    https://github.com/ruby/json/commit/97f47d1cfd

commit d5f94941d87743d6563fa1a038665917dea70201
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-04-08 22:03:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-09 02:46:42 +0900

    [ruby/openssl] Fix the tests using SHA-1 Probabilistic Signature Scheme (PSS) parameters.

    Fedora OpenSSL 3.5 on rawhide stopped accepting SHA-1 PSS[1] parameters.
    This is different from the SHA-1 signatures which Fedora OpenSSL stopped
    accepting since Fedora 41.[2]

    This commit fixes the following test failures related to the SHA-1 PSS
    parameters with Fedora OpenSSL 3.5.
    Note these failures are the downstream Fedora OpenSSL RPM specific. The tests
    pass without this commit with the upstream OpenSSL 3.5.

    ```
    $ rpm -q openssl-libs openssl-devel
    openssl-libs-3.5.0-2.fc43.x86_64
    openssl-devel-3.5.0-2.fc43.x86_64

    $ bundle exec rake test
    ...
    E
    ===============================================================================================
    Error: test_sign_verify_options(OpenSSL::TestPKeyRSA): OpenSSL::PKey::PKeyError: EVP_PKEY_CTX_ctrl_str(ctx, "rsa_mgf1_md", "SHA1"): digest not allowed (digest=SHA1)
    /mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'Hash#each'
    /mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'OpenSSL::PKey::PKey#sign'
    /mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'OpenSSL::TestPKeyRSA#test_sign_verify_options'
         110:       "rsa_pss_saltlen" => 20,
         111:       "rsa_mgf1_md" => "SHA1"
         112:     }
      => 113:     sig_pss = key.sign("SHA256", data, pssopts)
         114:     assert_equal 256, sig_pss.bytesize
         115:     assert_equal true, key.verify("SHA256", sig_pss, data, pssopts)
         116:     assert_equal true, key.verify_pss("SHA256", sig_pss, data,
    ===============================================================================================
    E
    ===============================================================================================
    Error: test_sign_verify_pss(OpenSSL::TestPKeyRSA): OpenSSL::PKey::RSAError: digest not allowed (digest=SHA1)
    /mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:191:in 'OpenSSL::PKey::RSA#sign_pss'
    /mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:191:in 'OpenSSL::TestPKeyRSA#test_sign_verify_pss'
         188:     data = "Sign me!"
         189:     invalid_data = "Sign me?"
         190:
      => 191:     signature = key.sign_pss("SHA256", data, salt_length: 20, mgf1_hash: "SHA1")
         192:     assert_equal 256, signature.bytesize
         193:     assert_equal true,
         194:       key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA1")
    ===============================================================================================
    ...
    577 tests, 4186 assertions, 0 failures, 2 errors, 0 pendings, 3 omissions, 0 notifications
    ```

    [1] https://en.wikipedia.org/wiki/Probabilistic_signature_scheme
    [2] https://fedoraproject.org/wiki/Changes/OpenSSLDistrustSHA1SigVer

    https://github.com/ruby/openssl/commit/e0e771b76f

commit 5aa05f179c028981950cb5f40112ce058c5a40cd
  Author:     Eileen <eileencodes@users.noreply.github.com>
  AuthorDate: 2025-04-09 01:52:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-09 01:52:49 +0900

    Fix lldb debug scripts (#13048)

    In ruby/ruby#13008 `RVALUE` was removed without replacement. This means
    the lldb scripts that relied on `RVALUE` stopped working.

    I updated the ones that were using it just for the bytesize to use
    `slot_size` and then round to the nearest power of 40. We can't use
    `slot_size` directly because in debug mode it's `48` but `RVALUE` is
    `40` bytes.

    For the `as_type` method, I updated it to check the type. It's only used
    for `bignum` and `array` so that's a simple change.

    Lastly, for the `dump_page` method I replaced it with `struct free_slot`
    since that's looking at the freelist.

    `struct RVALUE` has been removed from all the scripts and I verified
    that `rp` is fixed. I'm not confident the `dump_page` method is fixed,
    the freelist looks off, but for now this gets us closer.

  Notes:
    Merged-By: eileencodes <eileencodes@gmail.com>

commit b68fe530f1880ed314099b61a70e3c0b1ee7cf6d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-08 15:45:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-08 15:46:45 +0900

    Windows 11 24H2 with VS 2019 16.11.45 couldn't handle long name test

    ```
      2) Error:
    TestDir#test_children_long_name:
    Test::Unit::ProxyError: No such file or directory @ apply2files - C:/Users/hsbt/AppData/Local/Temp/rubytest.zxydnz/d20250408-35424-2b0o6e/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/c
        V:/github.com/ruby/ruby/test/ruby/test_dir.rb:653:in 'File.unlink'
        V:/github.com/ruby/ruby/test/ruby/test_dir.rb:653:in 'block in TestDir#test_children_long_name'
        V:/github.com/ruby/ruby/lib/tmpdir.rb:105:in 'Dir.mktmpdir'
        V:/github.com/ruby/ruby/test/ruby/test_dir.rb:646:in 'TestDir#test_children_long_name'
    ```

commit 10d6ee65542a756072afb7182216efff80aa97d7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-08 15:20:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-08 15:46:45 +0900

    Skip some assertions of TestFileExhaustive#test_dirname with Windows platform.

    These assertions didn't handle drive letter of Windows

    ```
      1) Failure:
    TestFileExhaustive#test_dirname [V:/github.com/ruby/ruby/test/ruby/test_file_exhaustive.rb:1282]:
    <"V:/"> expected but was
    <"C:/">.
    ```

commit d17ab5a430d0068a9016746402b296ab7f87abe1
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-04-07 16:21:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-08 12:12:50 +0900

    [ruby/mmtk] Do root scanning in scan_vm_specific_roots

    We rely on scan_vm_specific_roots to reach all stacks via the following
    path:

        VM -> ractors -> threads -> fibers -> stacks

    https://github.com/ruby/mmtk/commit/0a6a835aaa

commit b3b1d7b2952037727abfa66236d43e434003524a
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-27 10:23:04 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-08 08:56:44 +0900

    Remove spinlock in dtoa's Balloc, use xmalloc

    The spinlock here performs poorly when there are multiple Ractors. The
    improvement on single threaded performance doesn't seem that
    significant, so I think we should just use malloc.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12991

commit 4646ab89179aa3dac917a16aaa16533548ad33d9
  Author:     Kanstantsin Shautsou <kanstantsin.sha@gmail.com>
  AuthorDate: 2025-04-07 20:02:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-07 23:37:39 +0900

    Use correct warn method

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13079

commit e3abdfbc84fe1da62f309e260e574612a7b13473
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-04-06 04:34:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-07 22:41:11 +0900

    Skip test_heaps_grow_independently for MMTk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13061

commit d4406f0627c78af31e61f9e07dda9151e109dbc4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-04-04 05:43:09 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-07 22:41:11 +0900

    Grow GC heaps independently

    [Bug #21214]

    If we allocate objects where one heap holds transient objects and another
    holds long lived objects, then the heap with transient objects will grow
    along the heap with long lived objects, causing higher memory usage.

    For example, we can see this issue in this script:

        def allocate_small_object = []
        def allocate_large_object = Array.new(10)

        arys = Array.new(1_000_000) do
          # Allocate 10 small transient objects
          10.times { allocate_small_object }
          # Allocate 1 large object that is persistent
          allocate_large_object
        end

        pp GC.stat
        pp GC.stat_heap

    Before this change:

        heap_live_slots: 2837243
        {0 =>
          {slot_size: 40,
           heap_eden_pages: 1123,
           heap_eden_slots: 1838807},
         2 =>
          {slot_size: 160,
           heap_eden_pages: 2449,
           heap_eden_slots: 1001149},
        }

    After this change:

        heap_live_slots: 1094474
        {0 =>
          {slot_size: 40,
           heap_eden_pages: 58,
           heap_eden_slots: 94973},
         2 =>
          {slot_size: 160,
           heap_eden_pages: 2449,
           heap_eden_slots: 1001149},
        }

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13061

commit 432e5fa7e4ad57e0d8dcfcec29f0426aac7aedb4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-04 19:25:03 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-07 19:00:09 +0900

    prism_compile.c: Avoid zero length allocation

    The constant pool may be empty.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13068

commit d485638a08a4561cd2f9c28d29b6d08d43dc5621
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-07 13:56:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-07 15:10:58 +0900

    Allow win32ole test failure

    ```
    D:/a/ruby/ruby/src/gems/src/win32ole/test/win32ole/test_win32ole_event.rb:80:in 'TestWIN32OLE_EVENT_SWbemSink#default_handler': undefined method '+' for nil (NoMethodError)
    ```

    https://github.com/ruby/ruby/actions/runs/14299035797/job/40072083885?pr=13078

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13078

commit f70bf7840370c4739ba11ddfdc35297086257170
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-07 10:44:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-07 15:10:58 +0900

    Fixed wrong condition to avoid flaky ractor_test.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13078

commit be5dea972002b4d26a736f9b40fad7aa0fcf0fec
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-07 10:37:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-07 15:10:58 +0900

    Rename test command for test-unit

    https://github.com/test-unit/test-unit/commit/b7d3c32f6e334e1823e30c053c2268893cf073ef

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13078

commit a4b4dad4badee2cf46dbc3da20d211c520fb79cb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-07 10:36:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-07 15:10:58 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13078

commit 3a7b9ca93b91dcc086b9ac8b9957e59268f9493b
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-04-06 18:36:06 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-04-07 11:08:10 +0900

    Fix `Integer.sqrt` to never exceed actual value

    `Integer.sqrt` uses `sqrt(3)` from libm for small values.
    This method must return a value less than or equal to the actual integer
    square root, but libm's sqrt does not always guarantee that.

    This change corrects that by decrementing the result if necessary.

    Fixes [Bug #21217]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13076

commit e25889951f39aff6e3c16ecee10e678912454e69
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-06 12:24:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-06 12:24:23 +0900

    Ensure builtin binaries are aligned to ibf_header

    Since IBF result string size should be multiple of 4, this should not
    increase the binary size actually.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13075

commit b5ac483d9546f5e3bc8d72ef3efb8c90c9452069
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-04-06 09:38:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-06 09:38:58 +0900

    Fix the if condition to skip test_ractor.rb correctly (#13067)

    Follow-up for https://github.com/ruby/ruby/commit/a2b03ba7cb721d698bebee74c535dea4583a9c28

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 229784d160452dcdaa85ae4b5c5fae5c2728324b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-05 10:29:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-05 10:31:20 +0900

    [Bug #21150] macOS: unwinding coroutine workaround is only for arm64

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13072

commit 085cc6e43473f2a3c81311a07c1fc8efa46c118b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-04 20:28:51 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-04 23:26:29 +0900

    Ractor: revert to moving object bytes, but size pool aware

    Using `rb_obj_clone` introduce other problems, such as `initialize_*`
    callbacks invocation in the context of the parent ractor.

    So we can revert back to copy the content of the object slots,
    but in a way that is aware of size pools.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13070

commit eb765913c108fa0e71ab7f9852457a914a7d98f0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-04 19:34:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-04 19:34:04 +0900

    Console Cntl event is sent to root process sharing the console

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13069

commit cec45aedb5ce7cf9f263421712ad5abcf6404380
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-04 15:21:11 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-04 16:24:49 +0900

    Cannot send signal to process group on Windows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13069

commit d22e7660427e1e9929e8444135199b5c3e731246
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-04 10:59:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-04 16:24:48 +0900

    Cannot send `SIGTERM` to another process on Windows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13069

commit 0251abca7f19c393d756e77ee059a4357a8f2f20
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-04 14:23:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 14:23:25 +0900

    Fixed mismatched indentation

commit 705a95323e7bd85fdade2970976fd7d87a1ccf2e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-04 14:21:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 14:21:05 +0900

    Removed unused variable

commit b4a94011ca018c2e7b105534e299033106793158
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-04 11:58:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 11:58:59 +0900

    Hardening auto-merge workflow

    https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enabling-automerge-on-a-pull-request

commit 05e74543f6b0dca882e4324d3577b68fe1c231e1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-04 08:51:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 10:21:31 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13066

commit 710bf4a47246c973b597f6d948dc7279babe93f4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-03 23:06:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 08:54:47 +0900

    [rubygems/rubygems] Rubyinstaller2 fixed this

    https://github.com/rubygems/rubygems/commit/08b3c48f41

commit f8c0225971f93fdbb546bf4f921619357446135f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-02 02:35:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-04 08:54:47 +0900

    [rubygems/rubygems] Improve bug report instructions

    * Explicitly recommend copying full command output and not just the bug
      report template part.
    * Include quadruple quotes in the "What actually happened section" and
      tell users to copy full command output inside. Hopefully quadruple
      quotes will make the error report information (which includes triple
      quotes itself) render fine by default.
    * Avoid "actually" as per quality_spec.rb recommendation.

    https://github.com/rubygems/rubygems/commit/0a3bf2edb1

commit 6b5e187d0eb07994fee7b5f0336da388a793dcbb
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-04 02:20:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-04 02:58:30 +0900

    [ruby/openssl] pkcs7: fix test failure on RHEL 9

    The test case test_split_content fails on RHEL 9 and Fedora 41 because
    their OpenSSL packages do not accept SHA-1 signatures. This was only
    caught after commit https://github.com/ruby/openssl/commit/69fd7f886313 added the missing assertion.

    While the example PKCS#7 structures could be simply regenerated with
    SHA-256, this test case could be simplified because it is checking two
    different things.

    Replace test_split_content with separate test cases: one verifying
    signed-data authenticatedAttributes and another for decoding BER input.

    Fixes https://github.com/ruby/openssl/issues/875

    https://github.com/ruby/openssl/commit/b32406b0c1

commit 3911113bc4d441d01ad888fbaaee494c9386ebe0
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-04-03 22:02:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-04 02:58:29 +0900

    [ruby/openssl] pkcs7: update test case test_graceful_parsing_failure

    Using test_pkcs7.rb as an example invalid input is not reliable because
    we may happen to include a valid PKCS#7 PEM block in a heredoc.

    https://github.com/ruby/openssl/commit/76fead26d2

commit 137b51e4d3dff93e0101f776ac05af63aca9b778
  Author:     John Hawthorn <john.hawthorn@shopify.com>
  AuthorDate: 2025-04-03 04:03:44 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-04 02:39:47 +0900

    Remove rb_gc_start from cancel_single_ractor_mode

    In 307732ccee7f9f28f8422bab2f839da021d8cdec Ractors were changed to
    explicitly run GC when the first non-main one was activated in order to
    disable the transient heap. Theap no longer exists so I don't think we
    need to do this.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13047

commit 5eb3efcf2de300e4ad1d3ce5de8ea756063b9a28
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-04-04 00:31:13 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-04-04 02:39:47 +0900

    Fix timeline_value not being marked in test

    T_DATA with a NULL pointer are not marked. Let's wrap 1 instead to
    ensure that our mark function is actually run.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13047

commit 4aa74b605c9960192c30c711fa6e982727eb8d1b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-03 23:07:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-03 23:57:57 +0900

    compile.c: avoid allocating 0 length call_data

    if `body->ci_size` is `0`, there's no point allocating 0B,
    it just wastes an entry in the allocator.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13059

commit fab133e629c507f4add4a7dde2e0ba12b7ec281c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 19:30:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-03 20:03:18 +0900

    Use EnvUtil.apply_timeout_scale

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13058

commit 3f152ce767dcc2bda2232d35d29eaecf97932627
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 19:07:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-03 20:03:18 +0900

    Extend open_timeout for test failure on s390x

    https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13058

commit 1dddc6c78b5f6dc6ae18ee04ebe44abfce3b0433
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-04-02 17:32:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-04-03 16:56:24 +0900

    Remove no longer used union

    IMEMO_NEW takes just one memo value, min/max argc are assigned
    directly and packed argc is not used.

commit 29dafa5fc21343803127dda7d608f1f1f7908e7b
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-04-03 01:27:47 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-04-03 11:31:05 +0900

    Fix assertion failure with anonymous splats

    When calling a method that accepts an anonymous splat and literal
    keywords without any arguments, an assertion failure was previously
    raised. Set rest_index to 0 when setting rest to the frozen hash,
    so the args_argc calculation is accurate.

    While here, add more tests for methods with anonymous splats with
    and without keywords and keyword splats to confirm behavior is
    correct.

    Also add a basic bootstrap test that would hit the previous assertion
    failure.

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13046

commit b8e2bec9142a3e0153b756379ecb11853e86f1af
  Author:     Herwin <herwinw@users.noreply.github.com>
  AuthorDate: 2025-04-02 18:50:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-03 10:14:58 +0900

    Grammar fix in doc/exceptions.md: there => they're

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13040

commit 1598a2cab817b3264c9e38b258e4a650738cb521
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 09:40:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-03 10:12:34 +0900

    Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13049

commit d543fda4335ea1cafd56b3976f089cfbc3d20597
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-31 17:53:01 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-03 05:53:34 +0900

    [ruby/prism] Be explicit in tests which files `parser` can't parse

    It also updates to latest `parser`, which allows numbered
    parameters in pattern matching pin,
    passing `patterns.txt` and `case.txt`

    https://github.com/ruby/prism/commit/bdcc8b3dc5

commit 334c261cc9ee125c4c4bfc65dec2e571af8944a2
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-30 20:28:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-03 05:51:54 +0900

    [ruby/prism] Fix parser translator when splatting in pattern matching pin

    Because it ends up treating it as a local variable, and `a.x`
    is not a valid local variable name.

    I'm not big on pattern matching, but conceptually it makes sense to me
    to treat anything inside ^() to not be
    pattern matching syntax?

    https://github.com/ruby/prism/commit/80dbd85c45

commit fe9ebb245644a38392fd26b5ec18efd8e549b154
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-03 00:41:33 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-03 01:50:14 +0900

    vm_core.h: unify YJIT ifdefs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13044

commit 3a7b03242f4f8f31899ffcf5e4a253ae6f01e96a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-04-01 22:09:04 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-03 01:10:56 +0900

    [DOC] Tweaks for Hash doc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13029

commit 2a55cc3fb87f43b44dfb820f325bed60f01db236
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-04-03 01:03:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-03 01:03:17 +0900

    [DOC] Tweaks to String::try_convert

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13030

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit ce1dfe81c2ef148aa6f0f2bb51ee373f68cefd04
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-04-01 13:07:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-02 23:47:52 +0900

    [DOC] Doc for Thread::ConditionVariable

    Documented the necessity of calling `wait` in a loop.  We modified the
    example to demonstrate the idiomatic use, and added a third thread `a2`
    to demonstrate another reason that necessitates the loop.

    Mentioned spurious wake-up in the doc.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13024

commit 580aa60051773e3512121088eb8ebaee8ce605ea
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-02 19:08:39 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-04-02 20:24:22 +0900

    Improve backtrace of errors raised by `Socket.tcp_with_fast_fallback`

    [Bug #21211]

    Socket errors raised from background threads are hard to track down because
    their backtrace starts from the spawned thread.

    To solve this we can raise a new error with the old one as `cause`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13041

commit 43ee4a50d91652c0909b97fe7195af8e87600971
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-02 15:21:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 16:24:47 +0900

    Fixup comment for Windows platform, not Solaris

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13037

commit e71192da69f733a987a5db5692f4a33b303ade0d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-02 14:53:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 16:24:47 +0900

    Removed Solaris conditions from optional and shared directories

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13037

commit 3d4ea45411cba9d14f061aa5a26a0e146f3d7304
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-02 14:52:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 16:24:47 +0900

    Removed Solaris conditions from library directory

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13037

commit 8cb61b00fd0c5e87163703fc93e5303ca413b79e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-02 14:38:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 16:24:47 +0900

    Removed Solaris conditions from core directory

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13037

commit 6bd5a51ab5a2b1d33fa586cb2969b25d8d68c121
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-02 13:38:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 16:24:47 +0900

    Removed Solaris conditions from test files

    We no longer execute those files with Solaris platforms.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13037

commit ca97302dd404070bf971767914b6e4855b4de8a9
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-04-02 16:01:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-02 16:01:44 +0900

    Update bundled gems list as of 2025-04-01

commit 938db05361585fb4a2da38bc62d1ea36ea451bf6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 17:35:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-02 10:52:26 +0900

    Removed the warning targets for Ruby 3.1 because 3.1 is already EOL

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13017

commit e4020133c88b358d4392d29058043cc5dbdb195b
  Author:     Matt Valentine-House <matt@eightbitraptor.com>
  AuthorDate: 2025-04-01 23:57:55 +0900
  Commit:     Matt Valentine-House <matt@eightbitraptor.com>
  CommitDate: 2025-04-02 05:45:08 +0900

    Remove incorrect assertion

    ractor_cache will always be NULL in this context

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13031

commit 6fbc32b5d0da31535cccc0eca1853273313a0b52
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-04-02 04:48:18 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-04-02 05:25:01 +0900

    GCC defines __linux__, not __LINUX__

    Fixes: 2c6512fe67a275ce4d251f3c5d304bc523597f42

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13032

commit 30e5e7c005f4a0a2cd4b883ab8c2be48aa3bf6ed
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-04-01 20:01:49 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-04-02 01:11:01 +0900

    Revert "Fix jump buffer leak in setjmp handler in WASI builds"

    This reverts the following commits as it's causing OOM in some cases in
    ruby/ruby.wasm test suite.
    * 372515f33c908b36b3f5fbd2edcb34c69b418500
    * 3a730be8b464454878a42132f6fecb98ab4c1b5b

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13026

commit a671b25525279706d1fa2ee3b25ef45e3ec0eb89
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-04-01 18:20:13 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-01 18:20:13 +0900

    [Bug #21203] Skip TestGc#test_gc_parameter_init_slots since it is flaky (#13025)

    https://bugs.ruby-lang.org/issues/21203

    TestGc#test_gc_parameter_init_slots is a flaky test that fails intermittently. Until the issue with flakiness is resolved, I will skip it.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 67a7d4a0a83638ac0c33bfb21d3d87d996946a45
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-01 15:20:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-01 15:58:24 +0900

    [rubygems/rubygems] Bump up minimum required version for cmake 4

    https://github.com/rubygems/rubygems/commit/3e77caeddf

commit cd1952484cc74e2171cd72eb46bb00b04c8daa60
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-04-01 03:20:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-01 13:31:48 +0900

    [rubygems/rubygems] Stay away from FileUtils.rm_rf in Bundler specs

    Instead, skip the spec when run by ruby-core. Maybe the root cause can
    be fixed at some point.

    https://github.com/rubygems/rubygems/commit/09594ae5b8

commit 79f3167e0b601656f651b247d6ca09e4cadfadcb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-27 06:26:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-01 09:57:40 +0900

    [rubygems/rubygems] Let compact index response parser consistently return a mutable dependencies array

    That restores support for compact index dummy implementations that only lists
    versions, without checksums or dependencies.

    This format is undocumented, so we may want to get rid of it in the
    future. However, some of our tests rely on it, and some implementations
    did use it (gems.mutant.dev at least). And the way the code was written
    suggest that support was intentional.

    So for now, we should restore it.

    https://github.com/rubygems/rubygems/commit/0427d8c983

commit 92422576c6ffa21f8c68f7b9774f0297b8acae71
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-27 23:58:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-01 09:56:56 +0900

    Remove compact index response parser from Bundler

    It's available in RubyGems since 3.2.3 and we no longer support that old
    version.

commit fce2c386a5e3a49bf8863c7550e257e349ca093b
  Author:     Giacomo Benedetti <giacomo.bndt@gmail.com>
  AuthorDate: 2025-03-14 20:01:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-04-01 09:55:19 +0900

    [rubygems/rubygems] Sorting files in metadata for reproducibility

    https://github.com/rubygems/rubygems/commit/792117980b

commit 6d70847e27ccd3a92d8a22907531b8e1a38ca546
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-31 22:28:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-01 05:37:44 +0900

    Make free, memsize functions of IO::Buffer static

    They are not used outside of io_buffer.c, so we can make them static.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13022

commit 0fad0ce35ca0160288a64a8cc49e6dae1b199821
  Author:     Alexander Momchilov <alexander.momchilov@shopify.com>
  AuthorDate: 2025-03-31 23:28:24 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-04-01 04:57:33 +0900

    [ruby/prism] Use `xmalloc()`/`xfree()`

    https://github.com/ruby/prism/commit/bd9027f0ab

commit 2d9036498e775dbc8a5a9ba42a6ab02f1c43f2ac
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-31 21:50:10 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-04-01 03:49:40 +0900

    [DOC] Tweaks for Hash doc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13020

commit 765918d28317be34ec0c688a7742847801804e36
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-04-01 03:48:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-01 03:48:23 +0900

    [DOC] Tweaks for docs about contributing (#13012)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit cdb1bf1e53a8cbb67d273f5b09c3bec775f2c3eb
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-04-01 03:47:20 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-04-01 03:47:20 +0900

    [DOC] Tweaks for Hash#update

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12985

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit a61e7118e6da9798862b559661075bafce44b541
  Author:     Matt Valentine-House <matt@eightbitraptor.com>
  AuthorDate: 2025-03-31 21:50:23 +0900
  Commit:     Matt Valentine-House <matt@eightbitraptor.com>
  CommitDate: 2025-04-01 01:10:51 +0900

    Provide compaction support for argf_type

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13021

commit 6012145299cfa4ab561360c78710c7f2941a7e9d
  Author:     Matt Valentine-House <matt@eightbitraptor.com>
  AuthorDate: 2025-03-31 19:38:16 +0900
  Commit:     Matt Valentine-House <matt@eightbitraptor.com>
  CommitDate: 2025-04-01 01:10:37 +0900

    Mark rb_io_buffer_type references declaratively

    allowing them to support compaction and be moved.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13018

commit 8a475d15d6aec3618d075b66541b4bae663beac9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-31 19:48:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-31 23:56:29 +0900

    Implement `dcompact` for Time objects

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13019

commit 7db0e07134c9ff9e1da090053041b670f3206de4
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-31 18:29:06 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-31 19:01:55 +0900

    Don't preserve `object_id` when moving object to another Ractor

    That seemed like the logical thing to do to me, but ko1 disagree.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13008

commit 0350290262ea0fbc4e1807901797ee8a6970c2b9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 22:26:59 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-31 19:01:55 +0900

    Ractor: Fix moving embedded objects

    [Bug #20271]
    [Bug #20267]
    [Bug #20255]

    `rb_obj_alloc(RBASIC_CLASS(obj))` will always allocate from the basic
    40B pool, so if `obj` is larger than `40B`, we'll create a corrupted
    object when we later copy the shape_id.

    Instead we can use the same logic than ractor copy, which is
    to use `rb_obj_clone`, and later ask the GC to free the original
    object.

    We then must turn it into a `T_OBJECT`, because otherwise
    just changing its class to `RactorMoved` leaves a lot of
    ways to keep using the object, e.g.:

    ```
    a = [1, 2, 3]
    Ractor.new{}.send(a, move: true)
    [].concat(a) # Should raise, but wasn't.
    ```

    If it turns out that `rb_obj_clone` isn't performant enough
    for some uses, we can always have carefully crafted specialized
    paths for the types that would benefit from it.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13008

commit 532b9246d3819b2a309992a20ff031f91ac3e5db
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-31 17:34:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-31 18:14:34 +0900

    Initialize ractor thgroup in `thread_do_start_proc`

    Followup: https://github.com/ruby/ruby/pull/13013

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13016

commit 5e421ce8d949a4f92568db359be0d188b66e58ca
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-31 02:18:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-31 17:25:52 +0900

    ractor: don't inherit the default thread group

    [Bug #17506]

    `Thread.current.group` isn't shareable so it shouldn't be inherited
    by the main thread of a new Ractor.

    This cause an extra allocation when spawning a ractor, which could
    be elided with a bit of extra work, but not sure if it's worth
    the effort.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13013

commit 502fcfcc46fe1362b30d311e2fc03bfe37a78dc8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 16:13:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 16:13:46 +0900

    stringio-3.1.6 has been released

commit a2b03ba7cb721d698bebee74c535dea4583a9c28
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 14:36:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 15:08:58 +0900

    Skip test_ractor.rb with ModGC workflow because this test is flaky

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13015

commit 679e3e5b333a36a6621ba03c9c10d66708318ecb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 14:10:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:42:59 +0900

    Specified commits for removing csv-filter executable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13014

commit 91973a595cb364301894e0821bbe83d6e614ab6a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 14:09:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:42:59 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13014

commit 397334ab673420db4e0fc7df38e64c6afca01a8f
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-03-31 13:07:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:06:27 +0900

    Bundle rbs-3.9.2

commit 83518d8d5e3106eb40617b1cbc98dc3b6fb625d2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 12:49:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:06:27 +0900

    Update rdoc-6.13.1

commit 0dae3edb347053fe7c456a95cf794cea4309fe53
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 12:47:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:06:27 +0900

    Also skip test_load(JSONSingletonTest)

commit 0a097e6e452014d63bdb6cc3d7b287e1a671d77f
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-03-24 17:37:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:06:27 +0900

    Fix `{}`

commit 3fb2006bf18228afbedd470e82bc0204c6e1d15e
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-03-24 10:16:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:06:26 +0900

    Skip RDoc tests

commit e47f6215545ce04d759f3b071a355a1bf7ff256b
  Author:     Soutaro Matsumoto <matsumoto@soutaro.com>
  AuthorDate: 2025-03-24 09:55:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 14:05:32 +0900

    Bundle rbs-3.9.1

commit 372515f33c908b36b3f5fbd2edcb34c69b418500
  Author:     刘皓 <whiteaxe@tuta.io>
  AuthorDate: 2025-03-27 14:45:20 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-03-31 11:59:33 +0900

    Don't set `saved_ec.tag` to `NULL` in `cont_init()`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12995

commit 3a730be8b464454878a42132f6fecb98ab4c1b5b
  Author:     刘皓 <whiteaxe@tuta.io>
  AuthorDate: 2025-03-27 13:37:14 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-03-31 11:59:33 +0900

    Fix jump buffer leak in setjmp handler in WASI builds

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12995

commit 72fc9c7b1580251eac7d8db116df7f6e436be8b3
  Author:     刘皓 <whiteaxe@tuta.io>
  AuthorDate: 2025-03-27 13:34:27 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-03-31 11:59:33 +0900

    Fix stack pointer corruption in setjmp handler in WASI builds

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12995

commit dea505dea014c45062fb2963d4eb770be1497a4a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-25 22:46:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    [rubygems/rubygems] Allow ruby platform to be remove also when dependencies have changed

    Since we will now add it back if the final resolution is compatible, we
    can also get this kind of edge case (`bundle add`) working.

    https://github.com/rubygems/rubygems/commit/cdc5ebec77

commit b2bcd360441c334f16148908684e9b409eac4949
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-25 02:19:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    [rubygems/rubygems] Remove edge cases for not removing invalid platforms

    Instead, remove them anytime we find dependencies don't match the
    lockfile for a platform, and then add them back after resolution if
    they ended up being valid.

    https://github.com/rubygems/rubygems/commit/220bd77887

commit f72d5effb79a9957a0abd62c4f743e67cbf8e5ed
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-27 23:34:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    [rubygems/rubygems] `SpecSet#add_extra_platforms!` doesn't need to return anything

    https://github.com/rubygems/rubygems/commit/9fd92ade54

commit 91df1795c5bc9659ff7cec6c8f5a1b3eade1145b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-25 01:19:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    [rubygems/rubygems] Split finding and removing invalid platforms

    I don't like traversing the array and modifying it at the same time
    while it seems to work.

    https://github.com/rubygems/rubygems/commit/6551c74c27

commit f8720b01d9500d890a5b2a499c5126b83951c3cb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-28 16:53:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    [ruby/json] Remove caller location assertions

    Fix: https://github.com/ruby/json/pull/781

    Tests are ran a bit differently in ruby/ruby
    and this assertion breaks.

    https://github.com/ruby/json/commit/0d4fc669ed

commit a7ab156d947960e4202a4fe96ea9c6a1d39c9260
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-31 09:05:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:39:22 +0900

    Revert "Relax assertion pattern for ruby repo"

    This reverts commit 09b94688731a73a4ee63969a22ba7d537223e02a.

commit a203603be0ac6d95fa4740c0c763d9cad46c844c
  Author:     Lorenzo Zabot <lorenzozabot@gmail.com>
  AuthorDate: 2025-03-29 18:45:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-31 09:16:18 +0900

    Correct typo in Ractor comment

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13011

commit d7e46543b5fc34487dbc2c784412af015dbe67f4
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-30 19:48:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-31 02:24:05 +0900

    [ruby/prism] Fix parser translator when pinning hash with string keys

    `StringNode` and `SymbolNode` don't have the same shape
    (`content` vs `value`) and that wasn't handled.

    I believe the logic for the common case can be reused.
    I simply left the special handling for implicit nodes in pattern matching
    and fall through otherwise.

    NOTE: patterns.txt is not actually tested at the moment,
    because it contains syntax that `parser` mistakenly rejects.
    But I checked manually that this doesn't introduce other failures.
    https://github.com/whitequark/parser/pull/1060

    https://github.com/ruby/prism/commit/55adfaa895

commit 052794bfe1970e90f4f4f9e37fc362dd27903a8d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-23 02:17:27 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-31 02:22:41 +0900

    [ruby/prism] Accept a newline after the defined? keyword

    [Bug #21197]

    https://github.com/ruby/prism/commit/22be955ce9

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12999

commit 6b5aa432913c8aaef96513618d0edc73cdb6141c
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-03-19 10:33:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-30 22:46:28 +0900

    [ruby/openssl] Skip PKCS7 with indefinite length test in AWS-LC

    AWS-LC had been decoding the indefinite BER to an unusable output. We
    should skip the test until indefinite BER decoding in AWS-LC is
    properly fixed.

    Changes:
    1. AWS-LC will be looking to fix the parsing for indefinite BER
    constructed strings in AWS-LC soon, so I've marked the test as `pend`
    for now and removed the AWS-LC specific logic at the end.
    2. I've added an assertion to verify that `OpenSSL::PKCS7.verify`
    behaves correctly before doing content comparisons. I noticed this was
    failing initially in AWS-LC, but that will be fixed soon as well. This
    shouldn't effect OpenSSL/LibreSSL builds and should improve the test.

    https://github.com/ruby/openssl/commit/69fd7f8863

commit 9e87323ad00f393fbaa8b9e170248fe11bd652aa
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-27 06:00:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-30 06:05:21 +0900

    [DOC] Tweaks for Hash#values_at

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12989

commit dbc1ceca3264246ab2e7b47e06e5e62f0409051e
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-27 05:45:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-30 06:04:56 +0900

    [DOC] Tweaks for Hash#values

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12988

commit 4e3bc65e88f050563a49982ac0a5e57940def161
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-27 05:15:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-30 06:04:33 +0900

    [DOC] Tweaks for Hash#has_value?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12986

commit a4a60195502add094fb52a587411bbd0c19facce
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-03-29 20:46:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-29 20:46:43 +0900

    [Bug #21202] Fix wrong token concat while tokenizing nested unterminated heredoc (#13000)

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit 549c7fe29d95394ccdc4387d24a4c4a48e30dad7
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-29 09:24:42 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-29 17:51:19 +0900

    Adjust indentation for user defined parameterized rule

    This PR just fixing indentation.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13010

commit 332f5d0b73cffb07c3e0002d31cc2c5d1b3fac1c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-03-28 00:46:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-29 01:36:24 +0900

    Remove RUBY_FL_PROMOTED{0,1} from debugger scripts

    These flags were removed in d426343418aab6148706860bd1678ac309dc12c0 and
    print_flags is broken because of it.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13006

commit 3aee7b982b283d2355c249b863d4f3570c929e26
  Author:     Richard Böhme <richard.boehme1999@gmail.com>
  AuthorDate: 2025-01-18 04:41:13 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-03-28 23:08:28 +0900

    Mark first argument to all C-API tracepoint functions as nonnull

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12553

commit 04ebedf7f0144e8d5b8b2cd9cd243a2581bf974c
  Author:     Richard Böhme <richard.boehme1999@gmail.com>
  AuthorDate: 2025-01-12 05:45:32 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-03-28 23:08:28 +0900

    Make rb_tracearg_(parameters|eval_script|instruction_sequence) public C-API

    This allows C-Extension developers to call those methods to retrieve
    information about a TracePoint's parameters, eval script and
    instruction sequence.

    Implements [Feature #20757]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12553

commit fc26004660a287b977e5481a09f6329ffa688357
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-28 13:34:32 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-28 14:19:33 +0900

    Remove test_retry_workers

    The test fails randomly for unknown reason.

    https://github.com/ruby/ruby/actions/runs/14121674932/job/39562945096?pr=12993
    ```
        1) Error:
      TestParallel::TestParallel#test_retry_workers:
      Test::Unit::ProxyError: execution expired (start: 2025-03-28 04:04:10 +0000, end: 2025-03-28 04:05:50 +0000)
          /home/runner/work/ruby/ruby/src/tool/test/testunit/test_parallel.rb:16:in 'TestParallel.timeout'
          /home/runner/work/ruby/ruby/src/tool/test/testunit/test_parallel.rb:225:in 'TestParallel::TestParallel#test_retry_workers'
    ```

    Maybe the workers do not respond "quit" request.

    We no longer use the retry mechanism, so just remove the test.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12993

commit 28c7ae66268c1f81441f8ed5fc0800337f0e3bcf
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-27 14:05:00 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-28 14:19:33 +0900

    Try avoiding "invalid byte sequence in UTF-8"

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12993

commit 12f8dda9e0c942584ba8672522f47d5b66179111
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-27 13:17:55 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-28 14:19:33 +0900

    Report the actual time waited for timeout errors in TestParallel

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12993

commit c3ca9313040c270cbc1c238ed67ec4b0c902c928
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-28 14:07:18 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-28 14:07:40 +0900

    TestRegexp#test_match_cache_positive_look_ahead_complex: Extend the timeout limit

commit 8582d93194d5878a5b1aefcaa8ece91910f1df82
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-28 12:58:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-28 12:58:14 +0900

    [ruby/etc] Skip TestEtc#test_ractor_parallel on ModGC workflow
    (https://github.com/ruby/etc/pull/55)

    https://bugs.ruby-lang.org/issues/21204

    TestEtc#test_ractor_parallel is only failing intermittently on ModGC workflow after 87fb0c4. So, we'll skip this test on ModGC workflow.

    https://github.com/ruby/etc/commit/fb037c5162

commit 1e715bd27a25b8803f8efbbfef7eb5912202b927
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-28 12:09:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    Skip failing rbs tests for deprecated JSON methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 2ba37d24e8f8c7858a3db9df5fa9d1a1cb39181a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-28 12:02:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ...3.5' spec/ruby/security/cve_2020_10663_spec.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 09b94688731a73a4ee63969a22ba7d537223e02a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-28 11:57:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    Relax assertion pattern for ruby repo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 3bbb52f5c5fb086492c9799ea7b48675cfde50f1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 23:07:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Add missing assert_deprecated_warning

    https://github.com/ruby/json/commit/1b16a82980

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit ec171b4075407d02698a445e169f57fd68a9dcfc
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 20:25:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Move `create_addtions` logic in Ruby.

    By leveraging the `on_load` callback we can move all this logic
    out of the parser. Which mean we no longer have to duplicate
    that logic in both parser and that we'll later be able to extract
    it entirely from the gem.

    https://github.com/ruby/json/commit/f411ddf1ce

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit e8c46f4ca5e6ba2638fbfc81fdb9d141cd88e99a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-26 23:19:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] JSON.load invoke the proc callback directly from the parser.

    And substitute the return value like `Marshal.load` doesm
    which I can only assume was the intent.

    This also open the door to re-implement all the `create_addition`
    logic in `json/common.rb`.

    https://github.com/ruby/json/commit/73d2137fd3

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 80a59a62441c0938d0a29fcd5dd95f8024db6ddf
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 19:01:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Remove more dead code

    https://github.com/ruby/json/commit/eda239ad34

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 756b75f2421008a46ee68390c683ca2c1a0ddc31
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 18:34:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Remove `Class#json_creatable?` monkey patch.

    https://github.com/ruby/json/commit/1ca7efed1f

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 96ecac1e245aaac4484f69a731d2af4328760a8e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 18:36:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Get rid of JSON::NOT_SET

    https://github.com/ruby/json/commit/760d922265

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit bba30bee6275601e14cde260e3a3c9545cebe6b7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 18:16:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Remove outdated JSON.iconv

    https://github.com/ruby/json/commit/3de8702354

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 26e55562ce449d407c95891c8d3258e15cc9b129
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 18:16:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Cleanup JSON.pretty_generate

    https://github.com/ruby/json/commit/01c47a0555

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 2b9a9300ac4cb00824d59e59f6671a77cc003a1f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 17:54:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 12:44:53 +0900

    [ruby/json] Deprecate `JSON.fast_generate`

    https://github.com/ruby/json/commit/6508455d82

  Notes:
    Merged: https://github.com/ruby/ruby/pull/13004

commit 589713bcb5cf4b52278a2cd6074d37c897dc79fc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-28 10:12:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 11:15:29 +0900

    Ignore to build C extension for test files of bundled gems

commit e652af18816ffe0b85109b8de0827349bf03f16d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-28 01:29:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-28 07:24:52 +0900

    Update LEGAL to mention ext/json/vendor

    One file is under MIT, which is already the case of many files
    in Ruby, so it's fine.

    The other is under the Boost Software License, which is very
    similar to BSD and is fine to include in Ruby as far as I'm
    aware.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12998

commit 43683e1e9d8f7f6ed3fb4a48598190a0993f8f66
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-01-19 01:54:28 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-03-28 05:59:03 +0900

    Avoid allocation for anonymous positional splat with no arguments

    Anonymous positional splats cannot be directly accessed, they can
    only be passed as splats to other methods.  So if an anonymous
    positional splat would be empty, you can use a shared frozen
    empty array to save an allocation.

    ```ruby
    def a(*) end
    a()
    ```

    This is similar to how anonymous empty keyword splats are optimized,
    except those use `nil` instead of a shared empty frozen hash.

    This updates the allocation tests to check that the array allocations
    are avoided where possible.

    It also makes a small change to test_iseq.rb to ensure an unfrozen
    hash is passed as the value of an anonymous splat parameter.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12596

commit 72cb68972c878ca9a221bfffc6b6757807f8b2cf
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-28 05:38:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-28 05:39:38 +0900

    [ruby/etc] Attempt to re-enable TestEtc#test_ractor_parallel

    * If this fails, please revert this commit in ruby/etc
      to keep the repos sync'ed.

    https://github.com/ruby/etc/commit/87fb0c4a83

commit 0581947af536ec0fc3da295003455404e45b8f4d
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-28 05:38:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-28 05:39:38 +0900

    [ruby/etc] Speedup TestEtc#test_ractor_parallel

    https://github.com/ruby/etc/commit/18c12c084c

commit 2f1ac3fea377db64e8a7983ef25975418514d99a
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-28 05:20:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-28 05:21:21 +0900

    [ruby/etc] Increase timeout for test_ractor_parallel

    * It seems much slower on macOS (locally on Linux it's always < 1 second).

    https://github.com/ruby/etc/commit/9e46857011

commit d49483a747c7336f25019a6e4a4f81907309b361
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-28 03:14:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-28 05:14:36 +0900

    [ruby/prism] Move snapshots

    This is messing up the CRuby sync, so moving them out of the test
    directory will make this easier.

    https://github.com/ruby/prism/commit/7ba13bfb68

commit 67d1dd2ebd622c27d2ae0681c544d9f5d2f5349b
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-01-18 18:40:05 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-03-28 03:17:40 +0900

    Avoid array allocation for *nil, by not calling nil.to_a

    The following method call:

    ```ruby
    a(*nil)
    ```

    A method call such as `a(*nil)` previously allocated an array, because
    it calls `nil.to_a`, but I have determined this array allocation is
    unnecessary.  The instructions in this case are:

    ```
    0000 putself                                                          (   1)[Li]
    0001 putnil
    0002 splatarray                             false
    0004 opt_send_without_block                 <calldata!mid:a, argc:1, ARGS_SPLAT|FCALL>
    0006 leave
    ```

    The method call uses `ARGS_SPLAT` without `ARGS_SPLAT_MUT`, so the
    returned array doesn't need to be mutable.  I believe all cases where
    `splatarray false` are used allow the returned object to be frozen,
    since the `false` means to not duplicate the array.  The optimization
    in this case is to have `splatarray false` push a shared empty frozen
    array, instead of calling `nil.to_a` to return a newly allocated array.

    There is a slightly backwards incompatibility with this optimization,
    in that `nil.to_a` is not called.  However, I believe the new behavior
    of `*nil` not calling `nil.to_a` is more consistent with how `**nil`
    does not call `nil.to_hash`.  Also, so much Ruby code would break if
    `nil.to_a` returned something different from the empty hash, that it's
    difficult to imagine anyone actually doing that in real code, though
    we have a few tests/specs for that.

    I think it would be bad for consistency if `*nil` called `nil.to_a`
    in some cases and not others, so this changes other cases to not
    call `nil.to_a`:

    For `[*nil]`, this uses `splatarray true`, which now allocates a
    new array for a `nil` argument without calling `nil.to_a`.

    For `[1, *nil]`, this uses `concattoarray`, which now returns
    the first array if the second array is `nil`.

    This updates the allocation tests to check that the array allocations
    are avoided where possible.

    Implements [Feature #21047]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12597

commit 6ecfe643b5d8d64682c6f6bce5b27db5c007331d
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-03-24 20:17:58 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-28 01:54:56 +0900

    Freeze $/ and make it ractor safe

    [Feature #21109]

    By always freezing when setting the global rb_rs variable, we can ensure
    it is not modified and can be accessed from a ractor.

    We're also making sure it's an instance of String and does not have any
    instance variables.

    Of course, if $/ is changed at runtime, it may cause surprising behavior
    but doing so is deprecated already anyway.

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12975

commit 49d49d5985fa22d6f283e1f0e5299d18dd94e77d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-27 23:47:13 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-27 23:56:49 +0900

    [ruby/psych] Format Date in ISO-8601 explicitly

    Fix https://github.com/ruby/psych/pull/644

    https://github.com/ruby/psych/commit/b1ade765ba

commit 5adb2591dacc9b9c40db373616b6bc0b5c5dadb7
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-27 21:22:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-27 21:22:38 +0900

    Skip TestThreadInstrumentation#test_sleeping_inside_ractor on ModGC workflow (#12996)

    TestThreadInstrumentation#test_sleeping_inside_ractor is a flaky and failing intermittently. Additionally, Launchable reported this test as a top flaky test. (Link: https://app.launchableinc.com/organizations/ruby/workspaces/ruby/insights/unhealthy-tests)

    It failed only failed intermittently on ModGC workflow, so I'm gonna skip this test on ModGC workflow.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit c577416b27337e94df2db38c0a7925994188ac07
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-03-27 07:25:15 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-03-27 19:09:24 +0900

    Do not run ruby/spec on CI on Ruby 3.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12984

commit bac22c985ecc7e4309b5b5e5ae1074c81319e889
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-03-27 02:56:40 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-03-27 19:09:24 +0900

    Update to ruby/spec@5e579e2

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12984

commit 53a930f1570c81d2f7829f932e8d7ad67e8462b8
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-03-27 02:56:35 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-03-27 19:09:24 +0900

    Update to ruby/mspec@484310d

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12984

commit df08cc629e36dace0cc0be8cb7b67ff6e505a711
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 15:13:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 16:57:10 +0900

    [rubygems/rubygems] Bump up connection_pool-2.5.0 with rake vendor:install

    https://github.com/rubygems/rubygems/commit/33c3caa63f

commit 62a026a425560f534d6e99bd2f3adf90ff6f101b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 15:05:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 16:57:10 +0900

    [rubygems/rubygems] Fix Style/RedundantParentheses by bin/rubocop -a

    https://github.com/rubygems/rubygems/commit/4bbf02493e

commit c9e07da51d9780cb4bb4c670938675b2fad65e34
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 15:04:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 16:57:10 +0900

    [rubygems/rubygems] Resolved Lint/ShadowingOuterLocalVariable warning

    https://github.com/rubygems/rubygems/commit/01a14a7073

commit d4a97ea313657b99716990b66649a367acac1321
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 16:54:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 16:56:59 +0900

    Update the all of gemfile deps

commit 752a1d785475d1950b33c7d77b289a6a3a753f02
  Author:     Hartley McGuire <skipkayhil@gmail.com>
  AuthorDate: 2025-03-26 12:27:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 13:57:26 +0900

    [rubygems/rubygems] Implement pub_grub strategy interface

    My application spends more than 30% of time during `bundle update`
    comparing versions due to versions being sorted inside
    next_package_to_try. This has been addressed in pub_grub by defining a
    strategy interface (a `#next_package_and_version` method) which allows
    consumers to have finer control over the heuristic to select the next
    package to try.

    This commit implements the new strategy interface to remove extraneous
    version sorting (previously in next_package_to_try) since only the final
    count of versions is used.

    Combined with a previous change to pub_grub (already applied to
    Bundler), this commit results in `bundle update` taking only half the
    time it did on 2.6.5.

    https://github.com/rubygems/rubygems/commit/62f69e27f0

commit af594f5166538d6d7f5c21d26ed824f03730c61a
  Author:     Ellen Marie Dash <me@duckie.co>
  AuthorDate: 2025-03-26 07:19:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 13:57:25 +0900

    [rubygems/rubygems] Have "gem exec" sort executable names in error message.

    This decouples `gem exec` behavior (and tests) from the sort order of
    the gemspec.

    https://github.com/rubygems/rubygems/commit/911cd29159

commit 9f17a0c7cb4cef10e462fec6a80691b55144853a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-27 00:37:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 13:54:12 +0900

    Get rid of SAFE_STATE_PROTOTYPE

    It was only used by JRuby and TruffleRuby to call `SAFE_STATE_PROTOTYPE.dup`
    instead of `State.new` which isn't an worthy optimization.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12994

commit 4dde7101c722df3e1659ab0f4bee546afba9f3a5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-25 18:59:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 13:54:12 +0900

    Refactor jeaiii-ltoa.h

    Some relatively minor change to make the library more in line
    with the gem. Some renaming, etc.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12994

commit 1b8e6568e41d1244b5e8a9f1f03348ec1a424863
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-27 11:56:33 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-27 12:28:28 +0900

    Pend a test for ractor in etc

    ... because it is flaky

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12992

commit c6f89e263e0a54114c4482fb9756b2ca081791d8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 11:01:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    Skip failing rbs tests for removing deprecated methods

commit 6d82ea7db8f66ee148639f380013308f31d50e8e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 10:22:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    Update ext/json/generator/depend

commit ee85745c616aa0dcd0bcf207708778a14c02816c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-27 10:12:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    Removed trailing spaces

commit d1f3c8125854bb0976b08dbcbda3524d8ea3e3fe
  Author:     eno <eno@open-lab.org>
  AuthorDate: 2025-03-17 03:51:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    Faster integer formatting

    This commit provides an alternative implementation for a
    long → decimal conversion.

    The main difference is that it uses an algorithm pulled from
    https://github.com/jeaiii/itoa.
    The source there is C++, it was converted by hand to C for
    inclusion with this gem.
    jeaiii's algorithm is covered by the MIT License, see source code.

    On addition this version now also generates the string directly into
    the fbuffer, foregoing the need to run a separate memory copy.

    As a result, I see a speedup of 32% on Apple Silicon M1 for an
    integer set of benchmarks.

commit dc6ffbbe9ec09c9786b67fb5a9427e5a963980a2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-26 23:44:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    [ruby/json] Remove unused `FAST_STATE_PROTOTYPE` and `PRETTY_STATE_PROTOTYPE`

    https://github.com/ruby/json/commit/18e5c3c67c

commit b71ec1196e6e50e47a96964f79b967914858e5e6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-26 23:23:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    [ruby/json] Remove `unparse` and `restore` aliases.

    These were deprecated 16 years ago.

    https://github.com/ruby/json/commit/a88d825a91

commit f4529ecbe7adf6cc24bf8f8aa92becbc005e897a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-26 19:47:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-27 11:37:27 +0900

    [ruby/json] Deprecate all `*_default_options`

    Globally changing the behavior of the library is a bad idea, as
    many different libraries may rely on `json` and may not expect it
    and likely never tested that a different default config works for them.

    If you need to change the behavior of JSON, it's best to do it only
    locally, and not globally.

    In addition the new `JSON::Coder` interface is much more suited for
    that.

    Another reason for the deprecation is that it's impossible to
    make `JSON.load` and `JSON.dump` Ractor-safe with such API.

    https://github.com/ruby/json/commit/172762c6e4

commit 46ee73f4f6a6fceba4ed6dfe6622c78462a2b1ac
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-25 06:44:51 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-27 08:05:02 +0900

    Add additional Ractor.make_shareable tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12977

commit d80f3a287c5c8d0404b6cb837db360cab320cde1
  Author:     lukeg <luke.gru@gmail.com>
  AuthorDate: 2023-01-25 21:45:19 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-27 08:05:02 +0900

    Ractor.make_shareable(proc_obj) makes inner structure shareable

    Proc objects are now traversed like other objects when making them
    shareable.

    Fixes [Bug #19372]
    Fixes [Bug #19374]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12977

commit 2183899fd184ab1cfee80d57c0dd6f4dcd370375
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-25 22:37:46 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-26 22:35:51 +0900

    Re-use objspace variable instead of calling rb_gc_get_objspace()

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12979

commit 88f0c04174fe9aed88cfa6f8163c8a54e86b2117
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-26 18:24:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-26 19:37:22 +0900

    Use release version of turbo_tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12983

commit 310c00a1371ccbf584b7aaa4c1768a68c3813f58
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-26 06:34:41 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-26 11:14:26 +0900

    Reset thread interrupt lock on fork

    If a thread was holding this lock before fork, it will not exist in the
    child process. We should re-initialize these locks as we do with the VM
    locks when forking.

    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12981

commit be6954f5d466f4b274505e4f14bcad291d0b0989
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-26 04:06:39 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-26 11:14:26 +0900

    Fail test if child process exists non-zero

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12981

commit 8f952a117870d2a3284a33988aa23e7af3a3a2d3
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-26 04:05:01 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-26 11:14:26 +0900

    Clear VM_CHECK lock info on fork

    We are resetting the actual lock so we should reset this information at
    the same time. Previously this caused an assertion to fail in debug
    mode.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12981

commit c576e83a241ef54b8da51e481676b286d905c120
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-26 07:16:31 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-26 07:16:31 +0900

    Prefer FL_TEST_RAW() in GC on known on-heap objects

    Was reading some assembly and noticed the dead branches generated for
    FL_TEST(). Just a quick basic pass to change the obvious places; there
    may be other opportunities.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12980

    Merged-By: XrXr

commit bfc5b8305d6a78b8cd011e89538dd7961d88dcff
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-26 06:20:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-26 06:27:16 +0900

    [ruby/etc] Etc.sysconfdir does not work in a Ractor

    * Because it uses RbConfig::CONFIG.
    * See https://github.com/ruby/ruby/actions/runs/14069312270/job/39399502142#step:12:947

    https://github.com/ruby/etc/commit/12dbe03b6a

commit 6bb35a1de4f6c769171a57dc5d832b5f2217d0c6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-24 00:45:45 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-26 05:19:32 +0900

    Make ruby_autocompact_compare_func static

    It's not used outside of default.c.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12964

commit e4c7eb1152968fd9054d074cd5656c6bb896bab4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-24 00:45:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-26 05:19:32 +0900

    Make ruby_enable_autocompact static

    It's not used outside of defaut.c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12964

commit b9e9a1034a9530c8e3db83239224fb70e464e509
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-02-20 01:46:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-26 05:17:01 +0900

    [ruby/etc] Most Etc methods are not Ractor-safe currently

    * See https://bugs.ruby-lang.org/issues/21115

    https://github.com/ruby/etc/commit/ae62b7619c

commit 0b186ed4133c0825047d97341788f77c1dc4df11
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-26 04:26:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-26 04:26:51 +0900

    [DOC] Doc for Hash#transform_keys! (#12942)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit eb3f73ae9c777f233af950c4779a0fb553a2c565
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-24 23:55:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-25 21:49:31 +0900

    [DOC] Use install-modular-gc in gc/README.md

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12976

commit 1427629a5ff6e74518d25447ad19ce45c8338032
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-20 04:39:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-25 10:36:33 +0900

    [rubygems/rubygems] Remove specs with bad sources when converging dependencies

    https://github.com/rubygems/rubygems/commit/a0f7851451

commit fd43aca13b004b978103a836a7caad2a6fa6bba0
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-20 23:37:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-25 10:36:33 +0900

    [rubygems/rubygems] Tweak to check specs size just once

    https://github.com/rubygems/rubygems/commit/4497555023

commit 2eb5690ab6f8ca273e1bcb3dc064ff9a946cb0d0
  Author:     Randy Stauner <randy.stauner@shopify.com>
  AuthorDate: 2025-03-13 06:14:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-25 10:36:32 +0900

    [rubygems/rubygems] Add test for fixing mismatched versions in lockfile

    This test confirms that a bug that existed in 2.6.3
    was fixed by https://github.com/rubygems/rubygems/commit/b8e55087f026

    https://github.com/rubygems/rubygems/commit/9e4ca5c5b2

commit 319fcca656447ad969ff61868eea4356358c53db
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-24 02:48:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-24 21:49:30 +0900

    Move rb_gc_impl_ractor_cache_free to shutdown section

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12965

commit a572ec1ba0830ce812e8359aec20835bcbb209be
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-24 02:47:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-24 21:49:30 +0900

    Move rb_gc_impl_objspace_free to shutdown section

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12965

commit 56b89d31c722f31164174ea5eb3aa5ec12754d73
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-24 20:45:24 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-24 20:45:24 +0900

    Launchable: Fix CI scripts by adding backslashes (#12974)

    The following command doesn't work correctly since a backslash doesn't exist after `exec`. This PR fixes it.

    ```
    if [ -n "${LAUNCHABLE_ORGANIZATION}" ]; then
      exec
      > >(tee launchable_stdout.log) \
      2> >(tee launchable_stderr.log)
    fi
    ```

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 42daa6c2a2b49b4e45f40736e25c7d182860f24a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-24 15:49:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-24 15:49:41 +0900

    [Bug #21141] [DOC] Fix indentation

commit 51bc992822f9108ad64de32d300e1cefd0e2da59
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-24 15:43:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-24 15:43:40 +0900

    [Bug #21141] [DOC] Refine description of `Time#utc?`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12972

commit c5f30e9567af587f91676cb49eacf3fe70146811
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-24 15:24:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 15:24:47 +0900

    Update ext/json/generator/depend

commit 6b15857e2563cec0b38e6bce7646c1a9abaf4ba3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-24 15:20:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 15:20:59 +0900

    Removed trailing space

commit f3f4524d19476447df390ce9960778eac973b79b
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-20 19:05:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 14:49:44 +0900

    Reorganize `fpconv` vendoring

    Make it a single file and declare the dependency.

commit c98e6a9b8959f4a564eb71024d0f91e1f2f84352
  Author:     eno <eno@open-lab.org>
  AuthorDate: 2025-03-20 18:05:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 14:35:05 +0900

    [ruby/json] Extends license description

    https://github.com/ruby/json/commit/cce3d1f6c1

commit 528c08cc5fe8f8c990442885c0a30c95d8798e55
  Author:     eno <eno@open-lab.org>
  AuthorDate: 2025-03-20 06:48:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 14:35:04 +0900

    [ruby/json] Adjust fpconv to add ".0" to integers

    Adds a test case

    fix

    https://github.com/ruby/json/commit/fa5bdf87cb

commit a59333c58bbe0df0baaada6d3cc4a64b0aaf911e
  Author:     eno <eno@open-lab.org>
  AuthorDate: 2025-03-17 04:28:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 14:35:04 +0900

    [ruby/json] Faster float formatting

    This commit provides an alternative implementation for a float → decimal conversion.

    It integrates a C implementation of Fabian Loitsch's Grisu-algorithm [[pdf]](http://florian.loitsch.com/publications/dtoa-pldi2010.pdf), extracted from https://github.com/night-shift/fpconv. The relevant files are added in this PR, they are, as is all of https://github.com/night-shift/fpconv, available under a MIT License.

    As a result, I see a speedup of 900% on Apple Silicon M1 for a float set of benchmarks.

    floats don't have a single correct  string representation: a float like `1000.0` can be represented as "1000", "1e3", "1000.0" (and more).

    The Grisu algorithm converts floating point numbers to an optimal decimal string representation without loss of precision. As a result, a float that is exactly an integer (like `Float(10)`) will be converted by that algorithm into `"10"`. While technically correct – the JSON format treats floats and integers identically –, this differs from the current behaviour of the `"json"` gem. To address this, the integration checks for that case, and explicitely adds a ".0" suffix in those cases.

    This is sufficient to meet all existing tests; there is, however, a chance that the current implementation and this implementation occasionally encode floats differently.

    ```
    == Encoding floats (4179311 bytes)
    ruby 3.4.1 (2024-12-25 revision https://github.com/ruby/json/commit/48d4efcb85) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
            json (local)     4.000 i/100ms
    Calculating -------------------------------------
            json (local)     46.046 (± 2.2%) i/s   (21.72 ms/i) -    232.000 in   5.039611s

    Normalize to 2090234 byte
    == Encoding floats (4179242 bytes)
    ruby 3.4.1 (2024-12-25 revision https://github.com/ruby/json/commit/48d4efcb85) +YJIT +PRISM [arm64-darwin24]
    Warming up --------------------------------------
           json (2.10.2)     1.000 i/100ms
    Calculating -------------------------------------
           json (2.10.2)      4.614 (± 0.0%) i/s  (216.74 ms/i) -     24.000 in   5.201871s
    ```

    These benchmarks are run via a script ([link](https://gist.github.com/radiospiel/04019402726a28b31616df3d0c17bd1c)) which is based on the gem's `benchmark/encoder.rb` file. There are probably better ways to run benchmarks :) My version allows to combine multiple test cases into a single one.

    The `dumps` benchmark, which covers the JSON files in `benchmark/data/*.json` – with the exception of `canada.json` – , reported a minor speedup within statistical uncertainty.

    https://github.com/ruby/json/commit/7d77415108

commit ef7c7f9e77777477b8f6cdd72f92f9650afafdb4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-24 10:46:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    Revert "Fix broken CI. (#12963)"

    This reverts commit eb91c664dc0b4d69db09ae913f2d7a5ef3490d74.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 55930987e10b84a39562cdbd483f9d85074d26fe
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 03:19:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Raise an error in frozen mode if CHECKSUMS entries are missing

    https://github.com/rubygems/rubygems/commit/054a0cd76c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 60d00da083a8006fbd6e903d7c844ac632b59ec7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-17 23:27:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Fix redundant `path` configurations

    The deployment setting already does this implicitly.

    https://github.com/rubygems/rubygems/commit/402b11fa39

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 131559f6715cc2c0f7d681a6fd71a979e91500dd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-15 02:34:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Rename block variable

    It's a dependency, not a specification.

    https://github.com/rubygems/rubygems/commit/9d78f5aa14

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 9c1be12f99af34924c90f6848903480246f07365
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 03:02:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Add `Specification#lock_name` and use that when dealing with checksums

    https://github.com/rubygems/rubygems/commit/8e2c5748d9

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 5bff692346bda9f282acbe4236dc7ddabc0b90be
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-17 21:04:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Refactor replacing locked specification path sources

    Instead of doing an explicit pass, let sources be replaced while checking
    if specifications are up to date.

    https://github.com/rubygems/rubygems/commit/676271e804

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 28943c2820b8f620b98a951c0ae1f821b0880a8e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-17 21:03:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Refactor replacement of locked path sources

    Instead of doing an explicit pass to preserve the source from the
    Gemfile when it's a `Source::Gemspec`, add a special case to our generic
    source replacement method.

    https://github.com/rubygems/rubygems/commit/20c8c42380

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 164952cef3929035ff0d83b2432942b15118493d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-17 20:51:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Remove unnecessary replacement of locked dependencies sources

    The `converge_dependencies` method already replaces the source of the
    dependency with an equivalent source from the Gemfile if possible.

    https://github.com/rubygems/rubygems/commit/a449e7ba19

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 20f57c5dc1a4b4169e749d86e4f1fa1022951c9a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-15 04:20:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Refactor Path vs Gemspec source comparison

    https://github.com/rubygems/rubygems/commit/58e9bd9962

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 765da72839ba6b228656148389f84e4c89e1b629
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-14 03:09:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Refactor replacing sources

    https://github.com/rubygems/rubygems/commit/4c05ac8306

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 192e57db31911af68e0033c59b0c58139ef237d6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-14 03:00:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Remove `spec.source` duplication

    https://github.com/rubygems/rubygems/commit/24523a839e

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 000f01977204ba677a4208a6682d12d2f1375e5d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-14 02:57:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Simplify passing "gemspec" option to path sources

    https://github.com/rubygems/rubygems/commit/9c6b57c01d

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit c55cc01b1e2feb707c90ad8e9d62a2c5572d79ed
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-14 02:16:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Remove unused default value

    https://github.com/rubygems/rubygems/commit/e9f4d1e5c2

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 58663e8e2c1d787ef308029b2138e9b66c616714
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-11 01:09:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Change behavior when gemfile and gemspec dep deps conflict

    https://github.com/rubygems/rubygems/commit/7026b5f2e5

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 504b4bd9f5b3dda38f3b747e549b281719996078
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-11 01:08:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Use `name` argument consistently

    https://github.com/rubygems/rubygems/commit/4e66fe4208

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 3b78b888423f85e206f70909adaed9ecb5dfe900
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-21 02:19:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Support git 2.49

    One error message that we parse is now slightly different.

    https://github.com/rubygems/rubygems/commit/758528791d

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 6982b80a8bf236271de246adab1d9fca07cbb39c
  Author:     Ellen Marie Dash <me@duckie.co>
  AuthorDate: 2025-03-14 06:08:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Default to a SOURCE_DATE_EPOCH of 315619200, to simplify reproducible builds.

    https://github.com/rubygems/rubygems/commit/1d5a627398

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 4fe882e2c925c067693fbd432228d92548481ec4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-18 04:10:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Let `gem exec` raise an error in ambiguous cases

    When `gem exec foo` is run, and "foo" is a gem that has multiple
    executables, none of them named "foo", raise an error explaining the
    situation and telling user to be more specific.

    Currently the first command in the executables array is run, but this
    may come as surprising sometimes, so better raise an error.

    https://github.com/rubygems/rubygems/commit/acda5d8f6e

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit ee7cfb1d1ec25f38c14e5d3cec72ed87937ef1c4
  Author:     Hartley McGuire <skipkayhil@gmail.com>
  AuthorDate: 2025-03-18 06:22:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Update vendored pub_grub

    https://github.com/rubygems/rubygems/commit/3aaa75e7b9

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit afda30774c8165428ca886945889c8747c66e599
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 03:26:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Reword log message about current platform being missing

    It reads better this way I think.

    https://github.com/rubygems/rubygems/commit/ce9743290d

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 4e1df25b158f35d0aef09ce6e6fd278392cc8230
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 02:38:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Improve grammar of some error messages

    https://github.com/rubygems/rubygems/commit/558a4765c7

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit bb1b5877a7b2dba79c81275f32b7cc5485323540
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 02:16:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Consistently use "lockfile" over "lock file"

    https://github.com/rubygems/rubygems/commit/e891be9197

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 33201adf686044163951de3068ca915fd6cea6cd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-13 02:15:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-24 13:25:07 +0900

    [rubygems/rubygems] Fix frozen error message incorrectly mentioning the Gemfile

    It meant to mention the lockfile here.

    https://github.com/rubygems/rubygems/commit/2f0233a0fb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12968

commit 4b1fea81f93af5a0c8df6a1de6026fe480b5f534
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-24 02:47:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-24 07:16:45 +0900

    [ruby/prism] Update Ruby deps

    https://github.com/ruby/prism/commit/594e2a69ed

commit 12b2b577b7737ed4e81ca89b851fb429194c95fc
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-24 00:09:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-24 00:09:08 +0900

    [DOC] Doc for Hash#transform_values!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12944

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 383af53a56f7e4a490b891701f96f91ef31e0bef
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-17 06:07:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-24 00:07:31 +0900

    [DOC] Doc for Hash#transform_values

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12943

commit 7e0dac4cb18be87600068c346cd5339d1d880f01
  Author:     Mohamed Hafez <mohamed.m.m.hafez@gmail.com>
  AuthorDate: 2025-03-23 19:45:23 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-23 19:45:23 +0900

    Add test for Ractor safety (#11762)

  Notes:
    Merged-By: eregon <eregontp@gmail.com>

commit 5f77f9bea61fb4cc8447a76e191fdfb28f076862
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-03-23 09:42:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-23 09:42:04 +0900

    Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)

    [Bug #21195]

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit eb91c664dc0b4d69db09ae913f2d7a5ef3490d74
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-03-23 08:49:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-23 08:49:18 +0900

    Fix broken CI. (#12963)

    * Increase timeout to fix flaky tests?

    * Fix bundler test - wording changed.

    expect "fatal: Remote branch deadbeef not found in upstream origin" to
    include "Revision deadbeef does not exist in the repository"

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit c49051eaa82e68b1a8792ad79f8cf2cf73f5ee90
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-20 23:52:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-23 02:08:42 +0900

    [ruby/prism] Enforce a minimum `parser` version for the parser translator

    There hasn't been much that would actually affect parsers usage of it.
    But, when adding new node types, these usually appear in the `Parser::Meta::NODE_TYPES`.

    `itblock` was added, gets emitted by prism, and then `rubocop-ast` blindly delegates to `on_itblock`.
    These methods are dynamically created through `NODE_TYPES`, which means that it will error if it
    doesn't contain `itblock`.

    This is unfortunate because in `rubocop-ast` these methods are eagerly defined but
    the prism translator is lazily loaded on demand.
    The simplest solution is to add them on the `parser` side (even if they are not emitted directly), and require that a version that contains those be used.

    In summary when adding a new node type:
    * Add it to `Parser::Meta::PRISM_TRANSLATION_PARSER_NODE_TYPES` (gets included in `NODE_TYPES`)
    * Bump the minimum `parser` version used by `prism` to a version that contains the above change
    * Actually emit that node type in `prism`

    https://github.com/ruby/prism/commit/d73783d065

commit 13e6f715ef766eb04ba6862d1d716eb03fea6396
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-22 18:50:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-23 02:06:46 +0900

    [ruby/prism] Include nodeId in Java Node only if necessary

    * See https://github.com/ruby/prism/issues/3502

    https://github.com/ruby/prism/commit/b7aedfe696

commit 595040ba271175e18c8461a926c34903742788de
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-22 01:19:42 +0900
  Commit:     Aaron Patterson <tenderlove@ruby-lang.org>
  CommitDate: 2025-03-22 04:25:02 +0900

    FCALL shouldn't be forwarded from caller

    When we forward an FCALL (a method call with an implicit self), we
    shouldn't forward the FCALL flag because it ignores method visibility
    checks.  This patch removes the FCALL flag from callers.

    [Bug #21196]

commit 93ac342afc5e42c0361c8fccf378ca14b2e8b0dd
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-21 23:12:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-21 23:18:57 +0900

    [ruby/prism] Add node_id to Java serialization

    https://github.com/ruby/prism/commit/93e768bd18

commit 9b5165b1d7b197befa01327f5aef2ecebed2914e
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-21 17:00:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-21 20:18:33 +0900

    [ruby/prism] Don't use `RUBY_VERSION.to_f`

    There will be a bunch of other problems should 3.10 ever exists, but I guess why not fix this one now.

    https://github.com/ruby/prism/commit/b385f47f8b

commit d868922ea8e68dc2292e351c8266ef3c3058bf1e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-21 15:17:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-21 15:17:15 +0900

    Fix regexp when non-ruby thread received the signal

    A space is added only when the source path is found.

commit edabdd95a84a31c61bab651584d58fe7f695552a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-21 11:05:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-21 11:05:57 +0900

    Run cleanup code in `ensure`

commit 99503ab9751c09a2f5467dee4ceb0e30af4e95bd
  Author:     Joshua Young <djry1999@gmail.com>
  AuthorDate: 2025-03-20 17:44:10 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-21 10:36:13 +0900

    Escape `Binding` reference in pattern matching docs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12955

commit 80ab42462e94025f69db38c9359c65d108ebb51b
  Author:     flavio-b <flaviobombonatti@gmail.com>
  AuthorDate: 2025-03-21 10:24:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-21 10:30:40 +0900

    [DOC] beginless and endless ranges inspect returns "nil..nil" always

    Small correction to the Range docs. All beginless (nil..) and endless (..nil) ranges, as well as fully open ranges (nil..nil), display "nil..nil" when inspected, regardless of their original syntax.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12959

commit 65bc0ec62dee1e3210f5ce4e824f818beb718bcd
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-03-21 05:19:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-21 06:24:19 +0900

    [ruby/prism] Fix fork check in ractor_test.rb

    https://github.com/ruby/prism/commit/0073266cad

commit e47078fb306bc6ec07b01df8d0c811c43ff6e0ae
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-21 01:38:11 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-21 06:23:36 +0900

    [ruby/prism] Update ractor_test.rb per review

    https://github.com/ruby/prism/commit/fd96a6821f

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12958

commit ab8b199be82c3191723067867c4f078dee94df89
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-21 06:00:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-21 06:20:23 +0900

    [ruby/prism] Add `Prism::Translation::ParserCurrent`

    It's not my favorite api but for users that currently use the same thing
    from `parser`, moving over is more difficult
    than it needs to be.

    If you plan to support both old and new ruby versions, you definitly need to
    branch somewhere on the ruby version
    to either choose prism or parser.
    But with prism you then need to enumerate all the versions again and choose the correct one.

    Also, don't recommend to use `Prism::Translation::Parser` in docs. It's version-less
    but actually always just uses Ruby 3.4 which is probably
    not what the user intended.

    Note: parser also warns when the patch version doesn't match what it expects. But I don't think prism has such a concept,
    and anyways it would require releases anytime ruby releases, which I don't think is very desirable

    https://github.com/ruby/prism/commit/77177f9e92

commit bfe6068417ca41a6b88a1ba5fcde04f9a76718a7
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-19 07:02:44 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-21 05:09:40 +0900

    Use atomic for method reference count [Bug #20934]

    This changes reference_count on rb_method_definition_struct into an
    atomic.

    Ractors can create additional references as part of `bind_call` or
    (presumably) similar. Because this can be done inside Ractors, we should
    use a lock or atomics so that we don't race and avoid incrementing.

    Co-authored-by: wanabe <s.wanabe@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12951

commit 62cc3464d902ee7a399ec8c38606fdc0ee98f05e
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-21 01:48:34 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-03-21 03:49:13 +0900

    Remove leading `nop` from block when we don't need it

    Blocks insert a leading `nop` instruction in order to execute a "block
    call" tracepoint. Block compilation unconditionally inserts a leading
    `nop` plus a label after the instruction:

      https://github.com/ruby/ruby/blob/641f15b1c6bd8921407a1f045573d3b0605f00d3/prism_compile.c#L6867-L6869

    This `nop` instruction is used entirely for firing the block entry
    tracepoint.  The label exists so that the block can contain a loop but
    the block entry tracepoint is executed only once.

    For example, the following code is an infinite loop, but should only
    execute the b_call tracepoint once:

    ```ruby
    -> { redo }.call
    ```

    Previous to this commit, we would eliminate the `nop` instruction, but
    only if there were no other jump instructions inside the block.  This
    means that the following code would still contain a leading `nop` even
    though the label following the `nop` is unused:

    ```ruby
    -> { nil if bar }
    ```

    ```
    == disasm: #<ISeq:block in <main>@test.rb:1 (1,2)-(1,17)> (catch: FALSE)
    0000 nop                                                              (   1)[Bc]
    0001 putself                                [Li]
    0002 opt_send_without_block                 <calldata!mid:bar, argc:0, FCALL|VCALL|ARGS_SIMPLE>
    0004 branchunless                           8
    0006 putnil
    0007 leave                                  [Br]
    0008 putnil
    0009 leave                                  [Br]
    ```

    This commit checks to see if the label inserted after the `nop` is
    actually a jump target.  If it's not a jump target, then we should be
    safe to eliminate the leading `nop`:

    ```
    > build-master/miniruby --dump=insns test.rb
    == disasm: #<ISeq:<main>@test.rb:1 (1,0)-(1,17)>
    0000 putspecialobject                       1                         (   1)[Li]
    0002 send                                   <calldata!mid:lambda, argc:0, FCALL>, block in <main>
    0005 leave

    == disasm: #<ISeq:block in <main>@test.rb:1 (1,2)-(1,17)>
    0000 putself                                                          (   1)[LiBc]
    0001 opt_send_without_block                 <calldata!mid:bar, argc:0, FCALL|VCALL|ARGS_SIMPLE>
    0003 branchunless                           7
    0005 putnil
    0006 leave                                  [Br]
    0007 putnil
    0008 leave                                  [Br]
    ```

    We have a test for b_call tracepoints that use `redo` here:

      https://github.com/ruby/ruby/blob/aebf96f371c8d874398e0041b798892e545fa206/test/ruby/test_settracefunc.rb#L1728-L1736

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12957

commit f07af59a2f10beeb99878c967cefed2912310030
  Author:     Sam Bostock <sam.bostock@shopify.com>
  AuthorDate: 2025-03-12 00:11:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-21 02:28:59 +0900

    [ruby/prism] Dynamically register events to dispatch

    Instead of requiring the consumer to provide a list of all events which
    they wish to handle, we can give them to option of dynamically detecting
    them, by scanning the listener's public methods.

    This approach is similar to that used by Minitest (scanning for `test_`
    methods) and Rails generators (running all public methods in the order
    they are defined).

    While this is slower than specifying a hard coded list, the penalty is
    only during registration. There is no change the the behaviour of
    dispatching the events.

    https://github.com/ruby/prism/commit/781ebed743

commit de097fbe5f3df105bd2a26e72db06b0f5139bc1a
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-21 01:25:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-21 02:18:11 +0900

    Trigger `inherited` and `const_set` callbacks after const has been defined

    [Misc #21143]
    [Bug #21193]

    The previous change caused a backward compatibility issue with code
    that called `Object.const_source_location` from the `inherited` callback.

    To fix this, the order is now:

    - Define the constant
    - Invoke `inherited`
    - Invoke `const_set`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12956

commit a51364f54b644ba2d98779f0af8c7203822d9a31
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-20 20:59:42 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-20 20:59:42 +0900

    Close reader pipes

commit 820c541671d9485144d81138bb029f2da8379edd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-13 15:17:26 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-20 17:32:26 +0900

    [Bug #21026] no singleton method on pseudo variable literal

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12925

commit 641f15b1c6bd8921407a1f045573d3b0605f00d3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-20 05:50:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-20 06:11:57 +0900

    [ruby/prism] Mark Prism as ractor-safe

    https://github.com/ruby/prism/commit/c02429765b

commit 050ffab82b1a855d6b6edf5fbc6dc8c9311b6556
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-20 03:54:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-20 06:03:18 +0900

    [ruby/prism] Polyfill Kernel#warn category parameter

    https://github.com/ruby/prism/commit/d85c72a1b9

commit b5e9a2da4c668fe73f9fcca2b237def56c507464
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-20 00:41:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-20 06:03:17 +0900

    [ruby/prism] Remove `category` keyword from `warn` call

    `category` is only supported from Ruby 3.0 onwards and prism can still run with Ruyb 2.7

    https://github.com/ruby/prism/commit/335a193851

commit e5e160475bbd94ab90525132f7987cf29e9afc11
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-20 00:40:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-20 06:03:17 +0900

    [ruby/prism] Warn when the parser translator receives an incompatible builder class

    In https://github.com/ruby/prism/pull/3494 I added a bit of code
    so that using the new builder doesn't break stuff.
    This code can be dropped when it is enforced that builder
    is _always_ the correct subclass (and makes future issues like that unlikely).

    https://github.com/ruby/prism/commit/193d4b806d

commit 265dcd1733ede8f3e4cb13322392d6c42b75700f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-19 16:57:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-19 17:00:01 +0900

    [ruby/optparse] bump up to 0.7.0.dev.2

    https://github.com/ruby/optparse/commit/8c2c7a4903

commit 6c7f721f1eaaba75c624b5a84d2c7ace30a96b2f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-19 15:08:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-19 15:08:20 +0900

    Source path may or may not exist

commit 3eb802fb562cbb29ec1ede64f6df70719fc8f144
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-19 14:57:15 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-19 14:57:15 +0900

    Loosen SEGV message testing

    Since `rb_bug` does not always take Ruby frame info during SEGV, the
    source file path may not be output.

    ```
      1) Failure:
    TestRubyOptions#test_crash_report_script [/tmp/ruby/src/trunk_gcc11/test/ruby/test_rubyoptions.rb:907]:
    Expected /
            bug\.rb:(?:1:)?\s\[BUG\]\sSegmentation\sfault.*\n
          /x
    to match
      "[BUG] Segmentation fault at 0x000003e900328766\n"+
    ```
    http://ci.rvm.jp/results/trunk_gcc11@ruby-sp2-noble-docker/5663880

commit 6e9568d202389dc5f820b024315cf8db0a5aae65
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-19 02:58:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-19 04:06:34 +0900

    [ruby/prism] Bump to v1.4.0

    https://github.com/ruby/prism/commit/71d31db496

commit adaaa7878ebee62888bf3547d14c1db4938da88a
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-19 02:40:49 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 03:44:28 +0900

    Handle void expressions in defined?

    [Bug #21029]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12949

commit b003d4019421e004460a8c947db2695d71ad0b8c
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-19 02:02:56 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    Fix up merge conflicts for prism sync

commit 33aaa069a4e7b405e6d7ec5fcbf04a487e36e345
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-18 23:51:45 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Update truffleruby version

    https://github.com/ruby/prism/commit/2afe89f8ce

commit 90d38ddb47f557b07b57c88139725267c7c313f8
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-02-26 01:06:16 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix merge mishap

    Caused by https://github.com/ruby/prism/pull/3478 and https://github.com/ruby/prism/pull/3443

    I also made the builder reference more explicit to clearly distinquish
    between `::Parser` and `Prism::Translation::Parser`

    https://github.com/ruby/prism/commit/d52aaa75b6

commit dc48c1aca347f43ef9cb122342c80d699c5860fa
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-14 02:59:45 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Add a multiple statements flag to parentheses

    This can get triggered even if the list of statements only contains
    a single statement. This is necessary to properly support compiling

    ```ruby
    defined? (;a)
    defined? (a;)
    ```

    as "expression". Previously these were parsed as statements lists
    with single statements in them.

    https://github.com/ruby/prism/commit/b63b5d67a9

commit e3c846463092da8a7533740f9960fd626c749305
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-21 00:01:19 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Only unnest parser mlhs nodes when no rest argument is provided

    ```
    (a,), = []

    PARSER====================
    s(:masgn,
      s(:mlhs,
        s(:mlhs,
          s(:lvasgn, :a))),
      s(:array))
    PRISM====================
    s(:masgn,
      s(:mlhs,
        s(:lvasgn, :a)),
      s(:array))
    ```

    https://github.com/ruby/prism/commit/8aa1f4690e

commit 94e12ffa39e46f5b1f80485e9b2e06a59cd69dac
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-19 23:54:07 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator multiline interpolated symbols

    In https://github.com/ruby/prism/commit/26370079291a420c6b2b7be5cdbd5c609da62f21 I added tests but didn't modify them correctly

    https://github.com/ruby/prism/commit/de021e74de

commit a8adf5e006da03b8ccaa2bf900f4f077ca9888cf
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-16 07:24:05 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Further refine string handling in the parser translator

    Mostly around newlines and line continuation.
    * percent arrays need special backslash handling in the ast
    * Fix offset issue for heredocs with many line continuations (used wrong variable as index access)
    * More refined rules on when to simplify string tokens
    * Handle line continuations in squiggly heredocs
    * Correctly dedent squiggly heredocs with interpolation
    * Consider `':foo:` and `%s[foo]` to not be interpolation

    https://github.com/ruby/prism/commit/4edfe9d981

commit fc14d3ac7d4fa14f568d2428b846f391ebdf0d62
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-17 16:53:35 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Allow to test a custom fixtures path during testing

    Of course, these won't really be fixtures, but it allows to test against whole codebases
    without copying them, doing symlinks or something like that.

    For example, I can tell that over the whole RuboCop codebase, there are only 8 files that produce mismatched ast.
    Telling what the problem is is a different problem. The ast for real files can and will be huge so I haven't checked yet
    (maybe parser bug) but it's nice for discoverability regardless

    https://github.com/ruby/prism/commit/2184d82ba6

commit 0b4604d5a0f999d7fdd33a9230587a775301a667
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-13 22:54:15 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Use Set.new over to_set

    https://github.com/ruby/prism/commit/422d5c4c64

commit ad478de3f0bbf3cf5a1e5e5f5cf01689717db4df
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-11 17:05:21 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Optimize array inclusion checks in the parser translator

    I see `Array.include?` as 2.4% runtime. Probably because of `LPAREN_CONVERSION_TOKEN_TYPES` but
    the others will be faster as well.

    Also remove some inline array checks. They are specifically optimized in Ruby since 3.4, but for now prism is for >= 2.7

    https://github.com/ruby/prism/commit/ca9500a3fc

commit d5503444fd6e680a85e9d0cf639dc9a27704ccc1
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-19 21:38:17 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator crash for certain octal escapes

    `Integer#chr` performs some validation that we don't want/need. Octal escapes can go above 255, where it will then raise trying to convert.

    `append_as_bytes` actually allows to pass a number, so we can just skip that call.
    Although, on older rubies of course we still need to handle this in the polyfill.
    I don't really like using `pack` but don't know of another way to do so.

    For the utf-8 escapes, this is not an issue. Invalid utf-8 in these is simply a syntax error.

    https://github.com/ruby/prism/commit/161c606b1f

commit 1944247a0e44521948076ac43e76df84b32a9204
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-17 04:16:30 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Handle control and meta escapes in parser translation

    https://github.com/ruby/prism/commit/09c59a3aa5

commit fd7a10cf4a73f27a0113a6bc2a65c4c274ee11ec
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-16 07:24:05 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Further refine string handling in the parser translator

    Mostly around newlines and line continuation.
    * percent arrays need special backslash handling in the ast
    * Fix offset issue for heredocs with many line continuations (used wrong variable as index access)
    * More refined rules on when to simplify string tokens
    * Handle line continuations in squiggly heredocs
    * Correctly dedent squiggly heredocs with interpolation
    * Consider `':foo:` and `%s[foo]` to not be interpolation

    https://github.com/ruby/prism/commit/4edfe9d981

commit 5d138f2b436dc84b1efed86ac3328e67638887cb
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-15 04:20:05 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Better handle regexp in the parser translator

    Turns out, it was already almost correct. If you disregard \c and \M style escapes, only a single character is allowed to be escaped in a regex so most tests passed already.

    There was also a mistake where the wrong value was constructed for the ast, this is now fixed.
    One test fails because of this, but I'm fairly sure it is because of a parser bug. For `/\“/`, the backslash is supposed to be removed because it is a multibyte character. But tbh,
    I don't entirely understand all the rules.

    Fixes more than half of the remaining ast differences for rubocop tests

    https://github.com/ruby/prism/commit/e1c75f304b

commit 177adf6fa543663334bfb8918b356b4771e5ff1a
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-14 05:17:29 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator tokens for %-arrays with whitespace escapes

    Also fixes a token incompatibility for the word separator. parser only considers whitespace until the first newline

    https://github.com/ruby/prism/commit/bd3dd2b62a

commit ac728389e219480dd678a01e6f91f96098d3b6d6
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-20 23:49:06 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator edge-case when multiline string ends with \n

    When the line contains no real newline but contains unescaped ones, then there will be one less entry

    https://github.com/ruby/prism/commit/4ef093b600

commit 0fcb7fc21d1923a61ffe4d127e6e72cc55560972
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-09 05:17:21 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Better handle all kinds of multiline strings in the parser translator

    This is a followup to #3373, where the implementation
    was extracted

    https://github.com/ruby/prism/commit/2637007929

commit acf404e20e3d7bc18cbb8abd2b16c62f9c1f996f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2024-12-22 06:00:56 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix an incompatibility with the parser translator

    The offset cache contains an entry for each byte so it can't be accessed via the string length.

    Adds tests for all variants except for this:
    ```
    "fo
    o" "ba
    ’"
    ```

    For some reason, this still has the wrong offset.

    https://github.com/ruby/prism/commit/a651126458

commit f49a0114e36cbff434a442561b9637760665897b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-21 02:38:08 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator rescue location with semicolon body

    There are a few other locations that should be included in that check.
    I think the end location must always be present but I left it in to be safe (maybe implicit begin somehow?)

    https://github.com/ruby/prism/commit/545d07ddc3

commit 12541d2cc0c550197d3b5b848315886149930519
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-16 11:30:21 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Track then keyword on rescue nodes

    https://github.com/ruby/prism/commit/bde8ccc038

commit a679597547b23259159dd914959ca36409878199
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-19 21:38:17 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator crash for certain octal escapes

    `Integer#chr` performs some validation that we don't want/need. Octal escapes can go above 255, where it will then raise trying to convert.

    `append_as_bytes` actually allows to pass a number, so we can just skip that call.
    Although, on older rubies of course we still need to handle this in the polyfill.
    I don't really like using `pack` but don't know of another way to do so.

    For the utf-8 escapes, this is not an issue. Invalid utf-8 in these is simply a syntax error.

    https://github.com/ruby/prism/commit/161c606b1f

commit bc506295a30a5806b3346ed09cd679f3b8ee6f64
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-16 07:24:05 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Further refine string handling in the parser translator

    Mostly around newlines and line continuation.
    * percent arrays need special backslash handling in the ast
    * Fix offset issue for heredocs with many line continuations (used wrong variable as index access)
    * More refined rules on when to simplify string tokens
    * Handle line continuations in squiggly heredocs
    * Correctly dedent squiggly heredocs with interpolation
    * Consider `':foo:` and `%s[foo]` to not be interpolation

    https://github.com/ruby/prism/commit/4edfe9d981

commit 9e5e3f1bede46ed499a809975c663ba32c34ffff
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-21 18:20:08 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Add a custom builder class for the parser translator

    I want to add new node types to the parser translator, for example `itblock`. The bulk of the work is already done by prism itself. In the `parser`
    builder, this would be a 5-line change at most but we don't control that here.

    Instead, we can add our own builder and either overwrite the few methods we need,
    or just inline the complete builder. I'm not sure yet which would be better.

    `rubocop-ast` uses its own builder for `parser`. For this to correctly work, it must explicitly choose to extend the
    prism builder and use it, same as it currently chooses to use a different parser when prism is used.

    I'd like to enforce that the builder for prism extends its custom one since it will lead to
    some pretty weird issues otherwise. But first, I'd like to change `rubocop-ast` to make use of this.

    https://github.com/ruby/prism/commit/b080e608a8

commit fcd6e536933514d222e28274a39ce92e96a575cd
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-19 00:52:13 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    Remove incorrectly committed snapshots

commit 705bd6fadbd5a784d2c0fd52138007404de6a5c2
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-13 04:08:28 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-03-19 02:36:53 +0900

    [ruby/prism] Fix parser translator when unescaping invalid utf8

    1. The string starts out as binary
    2. `ち` is appended, forcing it back into utf-8
    3. Some invalid byte sequences are tried to append

    > incompatible character encodings: UTF-8 and BINARY (ASCII-8BIT)

    This makes use of my wish to use `append_as_bytes`. Unfortunatly that method is rather new
    so it needs a fallback

    https://github.com/ruby/prism/commit/e31e94a775

commit 9c71b5901c700bb2b18b0083130e65e97e386089
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-01-22 18:30:08 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-19 01:28:59 +0900

    fix rb_w32_strerror when errno < 0

    change SystemCallError.new(-1) message on Windows

    (Bug #21083)
    https://bugs.ruby-lang.org/issues/21083

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12622

commit c717dbdc8198ddaedb6f7562cb74038fa2b30c6f
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-01-25 01:13:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-19 01:28:59 +0900

    avoid platform dependent message

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12622

commit f220866c39d12da8fffd9b41db8bf4b8dc80b74e
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-01-24 21:48:12 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-19 01:28:59 +0900

    Explicitly place a regular expression

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12622

commit 0f6c647b1a1e313e3cb4fe79d4b63ffa2b7a6a6e
  Author:     YO4 <ysno@ac.auone-net.jp>
  AuthorDate: 2025-01-23 22:40:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-19 01:28:59 +0900

    avoid platform dependent message

    (Bug #21083)
    https://bugs.ruby-lang.org/issues/21083

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12622

commit 3d6fc2916907a351c274449280a82b020208f084
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-19 00:35:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-19 01:00:03 +0900

    [ruby/prism] Make xstrings concat syntax error

    https://github.com/ruby/prism/commit/f734350499

commit f69ad0e810e1fdc18dc12f77bbecfa49999ef3bf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 16:55:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-18 23:47:20 +0900

    [Bug #21094] Update nested module names when setting temporary name

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12947

commit 6670926a91734ddb92d01ce4578b1bb48d26b7de
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-02-24 12:09:26 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-03-18 21:18:12 +0900

    Do not break within certain combinations with Indic_Conjunct_Break (InCB)=Linker.

    https://www.unicode.org/reports/tr29/tr29-43.html#GB9c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12798

commit e63c516046b6dbf2f684454b68013b4eea12e94a
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-02-24 12:01:14 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-03-18 21:18:12 +0900

    [Feature #19908] Update Unicode headers to 15.1.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12798

commit 4f82a6f3e8d332926f9e3b615201d1b21a482f2f
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-02-24 11:43:23 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-03-18 21:18:12 +0900

    Support for Indic_Conjunct_Break in Unicode 15.1

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12798

commit 75844889eb0169fab62da3063c9bcc950be0ae88
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-03-09 15:22:16 +0900
  Commit:     Mari Imaizumi <mariimaizumi5@gmail.com>
  CommitDate: 2025-03-18 21:04:02 +0900

    Fix case folding in single byte encoding

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12889

commit c7f31c88aeed45607d2abc6b641ad2ccfd77e240
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-18 17:55:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-18 17:55:46 +0900

    [Feature #20702] Tests for Array#fetch_values

commit 76aaf8ddf4b13411f925085046cee2422bb9902e
  Author:     Susan van den Broek <susan.van.den.broek@axini.com>
  AuthorDate: 2025-03-18 00:36:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-18 16:28:50 +0900

    [ruby/date] Add license files (COPYING, BSDL) to gem files

    https://github.com/ruby/date/commit/a3d85e0be5

commit 9b49ba5a68486e42afd83db49a48edf2bfc00105
  Author:     Hartley McGuire <skipkayhil@gmail.com>
  AuthorDate: 2025-03-13 05:01:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-18 09:42:38 +0900

    [rubygems/rubygems] Speed up Version#<=> ~20-50% when lengths differ

    Previously, the comparison code would loop through segments up to the
    longest of the two versions being compared. However, this is inefficient
    because once one version has more segments than the other we can do a
    lot less work.

    This commit optimizes the differing segment length case by specializing
    the logic once the iteration has passed the shorter of the two segment
    lengths. At this point we only need to continue looking at the longer
    version's segment, and we know that any String encountered means the
    version is less than (pre), and any non-zero Integer means the version
    is greater than.

    Benchmark:

    ```
    {
      first: [Gem::Version.new("1.2.3"), Gem::Version.new("2.2.3")],
      second: [Gem::Version.new("1.2.3"), Gem::Version.new("1.3.3")],
      third: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.4")],
      length: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.3.4")],
      left_s_second: [Gem::Version.new("1.a.3"), Gem::Version.new("1.2.3")],
      left_s_third: [Gem::Version.new("1.2.a"), Gem::Version.new("1.2.3")],
      right_s_second: [Gem::Version.new("1.2.3"), Gem::Version.new("1.a.3")],
      right_s_third: [Gem::Version.new("1.2.3"), Gem::Version.new("1.2.a")],
      left_s_length: [Gem::Version.new("8.0.1.pre"), Gem::Version.new("8.0.1")],
      right_s_length: [Gem::Version.new("8.0.1"), Gem::Version.new("8.0.1.pre")],
      both_s: [Gem::Version.new("8.0.2.pre1"), Gem::Version.new("8.0.2.pre2")],
    }.each do |name, v|
      puts "== #{name} =="

      raise name unless v[0].fast_comp(v[1]) == (v[0] <=> v[1])

      Benchmark.ips do |x|
        x.report("fast") { v[0].fast_comp(v[1]) }
        x.report("original") { v[0] <=> v[1] }
        x.compare!(order: :baseline)
      end
    end

    == first ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   208.555k i/100ms
                original   199.789k i/100ms
    Calculating -------------------------------------
                    fast      2.075M (± 6.0%) i/s  (481.93 ns/i) -     10.428M in   5.055818s
                original      2.045M (± 3.9%) i/s  (488.94 ns/i) -     10.389M in   5.090034s

    Comparison:
                    fast:  2075002.8 i/s
                original:  2045227.4 i/s - same-ish: difference falls within error

    == second ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   192.395k i/100ms
                original   183.000k i/100ms
    Calculating -------------------------------------
                    fast      1.892M (± 3.8%) i/s  (528.62 ns/i) -      9.620M in   5.094104s
                original      1.824M (± 3.5%) i/s  (548.11 ns/i) -      9.150M in   5.023163s

    Comparison:
                    fast:  1891722.2 i/s
                original:  1824435.3 i/s - same-ish: difference falls within error

    == third ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   172.788k i/100ms
                original   162.934k i/100ms
    Calculating -------------------------------------
                    fast      1.719M (± 9.0%) i/s  (581.72 ns/i) -      8.467M in   5.025861s
                original      1.638M (± 3.6%) i/s  (610.36 ns/i) -      8.310M in   5.080344s

    Comparison:
                    fast:  1719042.9 i/s
                original:  1638389.6 i/s - same-ish: difference falls within error

    == length ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   191.741k i/100ms
                original   155.952k i/100ms
    Calculating -------------------------------------
                    fast      1.920M (± 3.9%) i/s  (520.74 ns/i) -      9.587M in   5.002328s
                original      1.576M (± 6.2%) i/s  (634.42 ns/i) -      7.954M in   5.072507s

    Comparison:
                    fast:  1920362.1 i/s
                original:  1576240.9 i/s - 1.22x  slower

    == left_s_second ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   176.441k i/100ms
                original   164.879k i/100ms
    Calculating -------------------------------------
                    fast      1.609M (± 7.3%) i/s  (621.51 ns/i) -      8.116M in   5.083414s
                original      1.620M (± 8.3%) i/s  (617.43 ns/i) -      8.079M in   5.028525s

    Comparison:
                    fast:  1608994.8 i/s
                original:  1619606.5 i/s - same-ish: difference falls within error

    == left_s_third ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   160.562k i/100ms
                original   152.799k i/100ms
    Calculating -------------------------------------
                    fast      1.591M (± 3.6%) i/s  (628.40 ns/i) -      8.028M in   5.052029s
                original      1.528M (± 3.6%) i/s  (654.31 ns/i) -      7.640M in   5.007526s

    Comparison:
                    fast:  1591334.1 i/s
                original:  1528320.6 i/s - same-ish: difference falls within error

    == right_s_second ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   135.938k i/100ms
                original   132.907k i/100ms
    Calculating -------------------------------------
                    fast      1.367M (± 1.2%) i/s  (731.77 ns/i) -      6.933M in   5.074030s
                original      1.320M (± 2.4%) i/s  (757.35 ns/i) -      6.645M in   5.036155s

    Comparison:
                    fast:  1366548.7 i/s
                original:  1320386.4 i/s - same-ish: difference falls within error

    == right_s_third ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   129.971k i/100ms
                original   123.802k i/100ms
    Calculating -------------------------------------
                    fast      1.273M (± 4.1%) i/s  (785.25 ns/i) -      6.369M in   5.011805s
                original      1.215M (± 1.8%) i/s  (823.04 ns/i) -      6.190M in   5.096330s

    Comparison:
                    fast:  1273487.0 i/s
                original:  1215002.9 i/s - same-ish: difference falls within error

    == left_s_length ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   211.093k i/100ms
                original   155.784k i/100ms
    Calculating -------------------------------------
                    fast      2.120M (± 1.9%) i/s  (471.63 ns/i) -     10.766M in   5.079336s
                original      1.565M (± 6.7%) i/s  (638.87 ns/i) -      7.789M in   5.007522s

    Comparison:
                    fast:  2120296.1 i/s
                original:  1565258.0 i/s - 1.35x  slower

    == right_s_length ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   213.977k i/100ms
                original   142.990k i/100ms
    Calculating -------------------------------------
                    fast      2.154M (± 1.3%) i/s  (464.15 ns/i) -     10.913M in   5.066124s
                original      1.446M (± 1.8%) i/s  (691.75 ns/i) -      7.292M in   5.046172s

    Comparison:
                    fast:  2154455.3 i/s
                original:  1445607.9 i/s - 1.49x  slower

    == both_s ==
    ruby 3.4.2 (2025-02-15 revision https://github.com/rubygems/rubygems/commit/d2930f8e7a) +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                    fast   154.903k i/100ms
                original   131.011k i/100ms
    Calculating -------------------------------------
                    fast      1.515M (± 4.0%) i/s  (659.97 ns/i) -      7.590M in   5.019890s
                original      1.280M (± 5.3%) i/s  (781.28 ns/i) -      6.420M in   5.035387s

    Comparison:
                    fast:  1515223.3 i/s
                original:  1279957.8 i/s - 1.18x  slower
    ```

    https://github.com/rubygems/rubygems/commit/7195e77152

commit 2dc501497e4e49c20be87dfbd86337f9e0795ec7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-18 05:12:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-18 05:12:34 +0900

    [DOC] Fix indentation for documentation of Hash#compact

commit 52f6563422edd9b233dbe5f522058be230c63651
  Author:     Hiroaki Osawa <ikusawasi@gmail.com>
  AuthorDate: 2025-03-18 02:19:43 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-18 02:19:43 +0900

    Allow arguments to be passed through Binding#irb (#12796)

    * Allow arguments to be passed through Binding#irb

    Modified Binding#irb to forward any arguments to the underlying irb
    method call.

    * Update prelude.rb

    Co-authored-by: Stan Lo <stan001212@gmail.com>

    * Update prelude.rb

    Co-authored-by: Stan Lo <stan001212@gmail.com>

    ---------

    Co-authored-by: Stan Lo <stan001212@gmail.com>

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit 1acfb29015dbc38fd345d8786aa78aad59f7dcd1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-17 21:37:00 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-17 23:55:11 +0900

    [Bug #21186] multibyte char literal should be a single letter word

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12946

commit c85dffeee2f1899e0db3bde6a4fb49bc90c90ec2
  Author:     Eileen M. Uchitelle <eileencodes@users.noreply.github.com>
  AuthorDate: 2025-03-17 23:42:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-17 23:42:48 +0900

    Avoid pinning `storage_head` in `iseq_mark_and_move` (#12880)

    * Avoid pinning `storage_head` in `iseq_mark_and_move`

    This refactor changes the behavior of `iseq_mark_and_move` to avoid
    pinning the `storage_head`. Previously pinning was required because they
    could be gc'd during `iseq_set_sequence` it would be possible to end
    up with a half build array of instructions. However, in order to
    implement a moving immix algorithm we can't pin these objects so this
    rafactoring changes the code to mark and move. To accomplish this, it was
    required to add `iseq_size`, `iseq_encoded`, and the `mark_bits` union
    to the `iseq_compile_data` struct. In addition `iseq_compile_data` sets
    a bool for whether there is a single or list of mark bits. While this
    change is needed for moving immix, it should be better for Ruby's GC
    as well.

    * Don't allocate mark_offset_bits for one word

    If only one word is needed, we don't need to allocate mark_offset_bits
    and can instead directly write to it.

    ---------

    Co-authored-by: Peter Zhu <peter@peterzhu.ca>

  Notes:
    Merged-By: eileencodes <eileencodes@gmail.com>

commit 8d6f153fba8ce48a8e31cb22a9c9222bbb1832f6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-13 13:37:01 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-17 23:42:16 +0900

    Manage skipping instance variable IDs in one place

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12923

commit 4c072c811905610a84107fdae103982d144b3d71
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-13 12:51:04 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-17 23:42:16 +0900

    Fix `assert_warning` for `Proc`

    `Proc` does not have `encoding` method.

    Also, make `assert_raise_with_message` accept a `Proc` as the expected
    pattern, as well.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12923

commit 8f19f0aad5f87d481b5ae4337afdb844bcce1885
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-17 19:13:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-17 19:18:49 +0900

    [ruby/optparse] Fix completion of key-value pairs array

    Enum array may be the list of pairs of key and value.  Check if only
    key is completable, not pair.

    Fix https://github.com/ruby/optparse/pull/93
    Fix https://github.com/ruby/optparse/pull/94

    https://github.com/ruby/optparse/commit/a8d0ba8dac

commit b5cdbadeeddd2b8e834b9d5565c13fcc43f3e684
  Author:     Jérôme Parent-Lévesque <jerome.parent-levesque@potloc.com>
  AuthorDate: 2025-03-16 04:05:50 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-17 16:26:23 +0900

    [Bug #21185] Fix Range#overlap? with infinite range
    Infinite ranges, i.e. unbounded ranges, should overlap with any other range
    which wasn't the case in the following example: (0..3).overlap?(nil..nil)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12937

commit 3e04f7b69fb56eac88b56f491b6a298fcc28b7f9
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-17 05:00:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-17 05:00:08 +0900

    Only mark `cc->cme_` on valid imemo_callcache

    We observed T_NONE on `cc->cme_` on a --repeat-count=50 run a compaction
    test on CI:
    http://ci.rvm.jp/results/trunk-repeat50@ruby-sp2-noble-docker/5654900

    During reference updating for imemo_callcache in
    rb_imemo_mark_and_move(), if `cc->klass` is not live, but `cc->_cme` is
    live and moved, we go to the vm_cc_invalidate() path which
    leaves `cc->_cme` not updated and stale. In the next marking run after
    compaction, CME would've become a T_NONE.

    So to quote the comment above "... cc is invalidated by
    `vm_cc_invalidate()` and cc->cme is not be accessed."

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12936

    Merged-By: XrXr

commit 70a9e5f6eb42cb1badba13d118f3c0d4106a3fe1
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-15 06:54:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-17 00:35:32 +0900

    [DOC] Doc for Hash#transform_keys

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12935

commit 47d75b65bfde4d2803a415dea4fbbf2cffc66fe6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-14 16:21:59 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-16 17:33:58 +0900

    Make wrapper of `main` for wasm more generic

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12933

commit 453f88f7f1c339a5256bc3a2c733610cc3ee965c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-14 16:24:31 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-16 17:33:58 +0900

    Make ASAN default option string built-in libruby

    The content depends on ruby internal, not responsibility of the
    caller.  Revive `RUBY_GLOBAL_SETUP` macro to define the hook function.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12933

commit f23146f09f3c5d0d9b72d044efa0a544566b4a49
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-16 12:27:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-16 12:27:56 +0900

    Fix enums in comparisons

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12941

commit 06919949a60b42a8f30e8bd0cb075e17b05eebcd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-15 16:15:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-16 12:09:18 +0900

    [Bug #21141] [DOC] Clarify what time is in UTC

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12940

commit 35920f7a440139563e9e46686378bba062bd08c1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-15 15:52:49 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-15 16:02:19 +0900

    Refine `TestSocket_TCPSocket#test_initialize_failure`

    * Use `assert_raise_kind_of` instead of `rescue` and `flunk`.
    * Use `assert_include` for the pattern that may contain regexp meta
      characters.

commit 29c0ca58c22b25dbd323d1ba5cdcf6dbdfd505e5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-15 00:36:04 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-15 15:50:46 +0900

    Test for the crash

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12934

commit b148dfef5aa208cafa28626fd84c9762bfdfe0ac
  Author:     Luke Jahnke <luke.jahnke@gmail.com>
  AuthorDate: 2025-03-14 22:38:33 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-15 15:50:46 +0900

    Fix crash in TCPSocket.open

    Fix segfault crash observable with TCPSocket.open(nil, nil)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12934

commit efb2d4363709b36a205791787f6812259027c6e1
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-14 23:41:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-14 23:41:27 +0900

    [DOC] Tweaks for Hash#to_h (#12918)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit de48e47ddf78aba02fd9623bc7ce685540a10743
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-13 21:29:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-14 17:51:57 +0900

    Invoke `inherited` callbacks before `const_added`

    [Misc #21143]

    Conceptually this makes sense and is more consistent with using
    the `Name = Class.new(Superclass)` alternative method.

    However the new class is still named before `inherited` is called.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12927

commit dd7deef338d843c8d866ddc279854068b39bfeb9
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-14 14:32:22 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-14 17:10:33 +0900

    Organize block_param_def by defining opt_block_param for non-terminal symbols

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12932

commit f5f195180883fe80f02bc2579ba9aa84118e834b
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-14 00:16:34 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-14 12:32:03 +0900

    Refactor parse.y to replace tIDENTIFIER and tCONSTANT with ident_or_const inline rules

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12929

commit a4328a424bbbe3fdeefa861d5946e6258bc87260
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-13 04:46:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-14 10:12:08 +0900

    [DOC] Tweaks for Hash#to_hash

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12920

commit 057ee25d1b5f0882615063c41d21083bd7c78415
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-13 04:37:38 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-14 10:11:47 +0900

    [DOC] Tweaks for Hash#to_proc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12919

commit ae7890df33577b9f4eecab5626644d619ba442dd
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-14 06:37:29 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-03-14 07:21:37 +0900

    Use the EC parameter in instructions.

    The forwarding instructions should use the `ec` parameter passed to
    vm_exec_core instead of trying to look up the EC via `GET_EC()`.  It's
    cheaper to get the local than to try looking up a global

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12931

commit 84f51eb02ac3b456e7b25d83e781202152abf21d
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-13 23:23:14 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-14 00:20:35 +0900

    Use user defined parameterizing rules `args_tail_basic`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12928

commit f2483c79fe651c3dc5f100348a22f6a34d1d34bd
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-13 22:54:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 23:24:48 +0900

    [ruby/prism] Use Set.new over to_set

    https://github.com/ruby/prism/commit/422d5c4c64

commit 31cf2684b0bc12cad19356672fcc86c6279b1f22
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-12 22:55:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-13 23:12:24 +0900

    Output object_id in object metadata for MMTk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12915

commit bdb25959fb047af0358f33d7327b7752dca14aa4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-12 22:25:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-13 23:12:24 +0900

    Move object_id to flags for ObjectSpace dumps

    Moving object_id dumping from ObjectSpace to the GC flags allows ObjectSpace
    to not assume the FL_SEEN_OBJ_ID flag and instead move it to the responsibility
    of the GC.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12915

commit 3d4c7c38020fa4de420e927e0b579aeff62b54ba
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-11 18:30:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 22:52:45 +0900

    [ruby/prism] Use `reverse_each` in the parser translator

    Avoids an array allocation which matters more and more
    the larger the file is.

    I have it at 14% of runtime.

    https://github.com/ruby/prism/commit/f65b90f27d

commit 67e6ccb23fd910b70b0d690adcb56395778c9f2a
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-11 17:05:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 22:52:45 +0900

    [ruby/prism] Optimize array inclusion checks in the parser translator

    I see `Array.include?` as 2.4% runtime. Probably because of `LPAREN_CONVERSION_TOKEN_TYPES` but
    the others will be faster as well.

    Also remove some inline array checks. They are specifically optimized in Ruby since 3.4, but for now prism is for >= 2.7

    https://github.com/ruby/prism/commit/ca9500a3fc

commit ee1f39ef882e7ce175794e6286c0dcafba0bfa35
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-03-13 20:45:23 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-13 22:08:01 +0900

    Add a document to autoload

    Users are responsible for avoiding circular autoload.

    [Misc #21154]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12926

commit 4b844f7d9e2f41cd6c0e9f1d30dcbf1a0f24b449
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-03-13 20:32:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 21:06:58 +0900

    [ruby/prism] Ensure backwards compatibility with the custom parser builder

    Temoprary backwards-compat code so that current users
    don't break.

    Eventually the Translation::Parser initializer should asser that the correct class is passed in.

    https://github.com/ruby/prism/commit/66b0162b35

commit 7c88cbb4a6c486348c44be24941f17ef8be6b329
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-10 02:01:59 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-03-13 18:43:48 +0900

    [Feature #20971] Deprecate `rb_path_check`

    https://bugs.ruby-lang.org/issues/20971

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12542

commit faa8ccb6850b9e16953f04d7cc49c11a3ded9008
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-03-13 16:01:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 16:01:36 +0900

    Update bundled gems list as of 2025-03-12

commit 482b5307f2efa1c6b2af5c3e8641b4ba59841127
  Author:     Yutaro Ohno <yutaro.ono.418@gmail.com>
  AuthorDate: 2025-03-12 15:48:56 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-13 13:43:36 +0900

    [DOC] Correct output in calling_methods.rdoc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12912

commit f9aadc62ed40d9b68e2ca64b1c0ee56f0c2b3322
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-13 10:45:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-13 13:08:15 +0900

    Use ghcr.io/ruby/fedora:latest instead of docker.io for avoiding rate limit

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12922

commit 069ecfe869f48c2bc3162de4ef00ac11d4a3e586
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-12 22:06:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-13 10:33:38 +0900

    [ruby/json] Release 2.10.2

    https://github.com/ruby/json/commit/350c1fd154

commit e6a2cf9fd79330bd6838cb504648a874f30f5629
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-12 02:49:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-13 10:33:25 +0900

    [ruby/json] Fix potential out of bound read in `json_string_unescape`.

    https://github.com/ruby/json/commit/cf242d89a0

commit 8cc85dc00feef7fc7846ad15df2778f58716c169
  Author:     Hartley McGuire <skipkayhil@gmail.com>
  AuthorDate: 2025-03-12 06:46:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-13 10:24:21 +0900

    [rubygems/rubygems] Remove array allocation from Candidate#<=>

    In a large application I profiled allocations while running `bundle
    update` and found that this method was ~60% of allocations while
    resolving (and Candidate#<=> is almost half of the total runtime).

    This commit removes the array allocation in Candidate#<=> (and similar
    methods since the implementations are so simple). The array is always
    the same two elements so they can just be compared directly.

    https://github.com/rubygems/rubygems/commit/6a7c411ba7

commit af76b7f4d9f791b8d20f567e0fa8a45488fa00b8
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-13 04:56:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 04:56:22 +0900

    [ruby/prism] Revert "Mark extension as Ractor-safe"

    https://github.com/ruby/prism/commit/56eaf53732

commit 242e99eb0f32e1705413d084126be4ae6525a804
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-13 02:16:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 04:15:03 +0900

    [ruby/prism] Mark extension as Ractor-safe

    https://github.com/ruby/prism/commit/10e5431b38

commit 08b3a45bc97c835b4677bf76dbce68fd51d81897
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-11 11:37:44 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-03-13 04:00:26 +0900

    Push a real iseq in rb_vm_push_frame_fname()

    Previously, vm_make_env_each() (used during proc
    creation and for the debug inspector C API) picked up the
    non-GC-allocated iseq that rb_vm_push_frame_fname() creates,
    which led to a SEGV when the GC tried to mark the non GC object.

    Put a real iseq imemo instead. Speed should be about the same since
    the old code also did a imemo allocation and a malloc allocation.

    Real iseq allows ironing out the special-casing of dummy frames in
    rb_execution_context_mark() and rb_execution_context_update(). A check
    is added to RubyVM::ISeq#eval, though, to stop attempts to run dummy
    iseqs.

    [Bug #21180]

    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12898

commit 9b9661883b1e2cc85b1341d804b106885432d2bd
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-12 02:14:13 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-03-13 04:00:26 +0900

    Have `ast` live longer in ISeq.compile_file to fix GC stress crash

    Previously, live range of `ast_value` ended on the call right before
    rb_ast_dispose(), which led to premature collection and use-after-free.

    We observed this crashing on -O3, -DVM_CHECK_MODE, with GCC 11.4.0 on
    Ubuntu.

    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12898

commit a8d63ecdb82c33744c0d1fcfa362b0c7247e83c9
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-13 00:24:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-13 02:27:03 +0900

    Fix flaky test_AREF_fstring_key

    The code between the two ObjectSpace.count_objects could trigger a GC,
    which could free string objects causing this test to fail.

    We can see this failure on CI http://ci.rvm.jp/results/trunk-random2@ruby-sp2-noble-docker/5651016

        TestHashOnly#test_AREF_fstring_key [test/ruby/test_hash.rb:1991]:
        <197483> expected but was
        <129689>.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12916

commit 9ec8dc9c6504e62c6a3ff6b111cee53f67d5508c
  Author:     Sarun Rattanasiri <midnight_w@gmx.tw>
  AuthorDate: 2025-03-08 23:43:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-13 01:03:47 +0900

    [ruby/openssl] mark `initialize_copy` as :nodoc:

    https://github.com/ruby/openssl/commit/17f87d2cf0

commit b8af9325c0f3440c5bec05605ec450ce6b0dacc5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-08-22 11:18:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-12 18:42:39 +0900

    [DOC] Discourage use of `USERDEF`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12914

commit 9459bedd84d479bb1d7d3d40bada1cecb4701c37
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-08-20 13:04:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-12 18:42:38 +0900

    [Bug #19841] Refine error on marshaling recursive USERDEF

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12914

commit 2782cc75a99751228bc55d6d0f04d3a1742087fa
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-12 14:55:04 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-12 18:20:40 +0900

    Win32: Remove intermediate files for rubyspec-capiext

commit 3239af9b5d5fb7c03a9c39c5469d79b199fe3bc8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-12 10:43:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-12 18:20:39 +0900

    Win32: Make object files in the same place as the DLLs

commit 1a222816fbe65e49f5f395dfd4a307763c00f012
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-12 17:00:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    Restore to use rm_rf for failing example

    https://github.com/ruby/ruby/actions/runs/13804651931/job/38616664529?pr=12911

commit 1d07deb422819ce0be58c5d6dd24d632d30ef817
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-12 04:50:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [ruby/json] Raise a ParserError on all incomplete unicode escape sequence.

    This was the behavior until `2.10.0` unadvertently changed it.

    `"\u1"` would raise, but `"\u1zzz"` wouldn't.

    https://github.com/ruby/json/commit/7d0637b9e6

commit de9ce8c0e09c209d70394f32e0c51e5047b0607e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-12 12:01:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    Use erb executable again

    Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>

commit 63dbb2f8a231421e92480b8209c8f6323bbfbd23
  Author:     Jacob Atzen <jatzen@gmail.com>
  AuthorDate: 2025-03-10 18:54:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [rubygems/rubygems] Update docs for with/without consistency

    The with and without flags accepts both comma and space separated values.

    https://github.com/rubygems/rubygems/commit/b6149f61e3

commit 510edbccf92deff0ccc6b4a1e0686b180a432aff
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2022-05-29 20:19:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [rubygems/rubygems] Fix `ENAMETOOLONG` error when creating compact index cache

    If a custom rubygems source URI is long enough, Bundler may end up
    raising an `ENAMETOOLONG` error and crash.

    This commit fixes the problem by trimming the cache slug size to fit
    usual OS requirements.

    https://github.com/rubygems/rubygems/commit/df40ff1e14

    Co-authored-by: mbclu <mbclu@users.noreply.github.com>
    Co-authored-by: martinemde <martinemde@users.noreply.github.com>

commit 13020ac0696819f1e996c9a1998f782f624e5903
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-11 02:53:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [rubygems/rubygems] Path helper to build paths in compact index cache

    https://github.com/rubygems/rubygems/commit/d28f9b8515

commit 51958bae66df026823fff159dd7513daf74f5727
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-08 05:35:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [rubygems/rubygems] Prefer `FileUtils.rm_r` to `FileUtils.rm_rf` for specs

    Because it does not swallow errors if it fails to remove the given
    folders, making issues easier to debug.

    https://github.com/rubygems/rubygems/commit/0db12d7afc

commit f656d34f103d9cc53259239d164ffa86d4117f9c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-08 04:47:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 18:02:09 +0900

    [rubygems/rubygems] Refactor specs to not try to remove folders that don't exist

    This has the following benefits:

    * Avoid duplicated work in some specs that first build a repo, and then
      overwrite it with a completely different set of gems.
    * Reduce RSpec nesting and improve readability.
    * The change also made surfaces several specs that were incorrect since
      they were unintentionally not testing the right thing.

    https://github.com/rubygems/rubygems/commit/ed430883e0

commit c68088038fb4555b821a5e60ab529843074014d1
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-12 11:34:03 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 11:34:03 +0900

    Launchable: Disable request retries when a timeout exception occurs (#12877)

    When a Launchable server is unstable, a ReadTimeoutException occurs in the Launchable CLI. In such case, the Launchable CLI retries requests, which slows down CI execution. In this PR, I configured the environment variable SKIP_TIMEOUT_RETRY to disable retry attempts on requests(Link: https://github.com/launchableinc/cli/pull/992).

    ```
    WARNING:urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
      WARNING:urllib3.connectionpool:Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
      WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)")': /intake/organizations/ruby/workspaces/ruby/commits/collect/options
      HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Max retries exceeded with url: /intake/organizations/ruby/workspaces/ruby/commits/collect/options (Caused by ReadTimeoutError("HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=15)"))
      Exception in thread "main" javax.net.ssl.SSLException: Connection reset
            at sun.security.ssl.Alert.createSSLException(Alert.java:127)
            at sun.security.ssl.TransportContext.fatal(TransportContext.java:331)
            at sun.security.ssl.TransportContext.fatal(TransportContext.java:274)
            at sun.security.ssl.TransportContext.fatal(TransportContext.java:269)
            at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1572)
            at sun.security.ssl.SSLSocketImpl.access$400(SSLSocketImpl.java:73)
            at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:982)
            at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
            at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
            at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
            at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
            at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
            at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
            at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
            at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
            at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
            at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
            at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
            at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
            at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
            at com.launchableinc.ingest.commits.CommitGraphCollector.transfer(CommitGraphCollector.java:131)
            at com.launchableinc.ingest.commits.CommitIngester.run(CommitIngester.java:145)
            at com.launchableinc.ingest.commits.CommitIngester.main(CommitIngester.java:72)
            Suppressed: java.net.SocketException: Broken pipe (Write failed)
                    at java.net.SocketOutputStream.socketWrite0(Native Method)
                    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
                    at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
                    at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
                    at sun.security.ssl.TransportContext.fatal(TransportContext.java:362)
                    ... 25 more
      Caused by: java.net.SocketException: Connection reset
            at java.net.SocketInputStream.read(SocketInputStream.java:210)
            at java.net.SocketInputStream.read(SocketInputStream.java:141)
            at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:464)
            at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:68)
            at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1350)
            at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:73)
            at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:966)
            ... 20 more
      Couldn't get commit history from `/github/workspace/src`. Do you run command root of git-controlled directory? If not, please set a directory use by --source option.
      HTTPSConnectionPool(host='api.mercury.launchableinc.com', port=443): Read timed out. (read timeout=60)
      Command '['java', '-jar', '/root/.local/pipx/venvs/launchable/lib/python3.10/site-packages/launchable/jar/exe_deploy.jar', 'ingest:commit', '-endpoint',
    ```

    https://github.com/ruby/ruby/actions/runs/13572112090/job/37939529243

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 1ba93fdfd21f403889aa7930f7ef2ad4414aa00a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-12 09:59:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 11:05:39 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12910

commit 1cdec3240b3c998c0cbf73556786aa3fa0b02ae7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-12 04:05:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-12 10:55:03 +0900

    Fix memory leak in rb_reg_search_set_match

    https://github.com/ruby/ruby/pull/12801 changed regexp matches to reuse
    the backref, which causes memory to leak if the original registers of the
    match is not freed.

    For example, the following script leaks memory:

        10.times do
          1_000_000.times do
            "aaaaaaaaaaa".gsub(/a/, "")
          end

          puts `ps -o rss= -p #{$$}`
        end

    Before:

        774256
        1535152
        2297360
        3059280
        3821296
        4583552
        5160304
        5091456
        5114256
        4980192

    After:

        12480
        11440
        11696
        11632
        11632
        11760
        11824
        11824
        11824
        11888

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12905

commit 1b2cc9c2b80da4618499ab3dd3dd70a499546c75
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 10:54:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 10:54:49 +0900

    [DOC] Tweaks for Hash#slice

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12907

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 86eff8565b21ca7e8deff572feedbcd7d2421d55
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-12 07:26:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-12 10:54:06 +0900

    [DOC] Tweaks for Hash#to_a

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12908

commit 5208d2f440ec3175dc48ba5672413bb3b5cb4fd7
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-12 07:07:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-12 10:52:38 +0900

    [DOC] Tweaks for Hash#shift

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12906

commit 97231e4d7ece859ab7c7d81033e74d402176910e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-12 07:52:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-12 08:31:16 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12909

commit b52f78952039a6b50ceaee4626ef9f0fb59eab6b
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 04:19:38 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 04:19:38 +0900

    [DOC] Tweaks for Hash#select! (#12904)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit a5f29213dcd3bd3da896c34505d487569c9ad339
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 04:18:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 04:18:47 +0900

    [DOC] Tweaks for Hash#select (#12903)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 51e2ff1ef777f82b0898f30b636a29b92e63a2e1
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 04:18:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 04:18:06 +0900

    [DOC] Tweaks for Hash#reject!

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12902

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 3278e3b6f3b4252ab05988b000886e3b6f089404
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-11 11:57:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-12 00:46:05 +0900

    [Bug #21177] Win32: Allow longer path name

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12901

commit e51411ff1fa38b296020529b51241b96d2c15b54
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-11 04:47:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-12 00:44:07 +0900

    Fix flaky test_latest_gc_info_need_major_by

    The test could flake because a major GC could be triggered due to allocation
    for caches or other things, which would cause the test to fail.

commit 497f409ba402ee2207f71f6998fe996433370107
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 00:43:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 00:43:50 +0900

    [DOC] Tweaks for Hash#reject (#12876)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit e99026784a5af7b188eb8a98b708ed4b75922a6d
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-12 00:43:20 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-12 00:43:20 +0900

    [DOC] Tweaks for Hash#update

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12826

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 47c3ae6962900434b6ffd486decd639b76f3d54d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-11 04:43:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-11 09:00:47 +0900

    Bump tolerance for weak reference test from 1 to 2

    The test fails sometimes with:

        TestGc#test_latest_gc_info_weak_references_count [test/ruby/test_gc.rb:421]:
        Expected 2 to be <= 1.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12894

commit ba5fb74583303d9e80f3700d0b5433cbc7e7c88e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-11 05:18:59 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-11 06:57:44 +0900

    Fix `Socket.tcp_with_fast_fallback` to be usable from a Ractor

    [Bug #21179]

    ```
    socket.rb:1046:in 'Socket::HostnameResolutionStore#get_addrinfo': can not access non-shareable objects in constant
    Socket::HostnameResolutionStore::PRIORITY_ON_V6 by non-main ractor. (Ractor::IsolationError)
            from socket.rb:724:in 'block in Socket.tcp_with_fast_fallback'
            from socket.rb:720:in 'Socket.tcp_with_fast_fallback'
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12896

commit 6b4453e332d67b5fb8f6932244fff9c7b385abdc
  Author:     Koichi ITO <koic.ito@gmail.com>
  AuthorDate: 2025-02-26 13:02:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-11 01:57:46 +0900

    [ruby/prism] Support `itblock` for `Prism::Translation::Parser`

    ## Summary

    `itblock` node is added to support the `it` block parameter syntax introduced in Ruby 3.4.

    ```console
    $ ruby -Ilib -rprism -rprism/translation/parser34 -e 'buffer = Parser::Source::Buffer.new("path"); buffer.source = "proc { it }"; \
                                                          p Prism::Translation::Parser34.new.tokenize(buffer)[0]'
    s(:itblock,
      s(:send, nil, :proc), :it,
      s(:lvar, :it))
    ```

    This node design is similar to the `numblock` node, which was introduced for the numbered parameter syntax in Ruby 2.7.

    ```
    $ ruby -Ilib -rprism -rprism/translation/parser34 -e 'buffer = Parser::Source::Buffer.new("path"); buffer.source = "proc { _1 }"; \
                                                          p Prism::Translation::Parser34.new.tokenize(buffer)[0]'
    s(:numblock,
      s(:send, nil, :proc), 1,
      s(:lvar, :_1))
    ```

    The difference is that while numbered parameters can have multiple parameters, the `it` block parameter syntax allows only a single parameter.

    In Ruby 3.3, the conventional node prior to the `it` block parameter syntax is returned.

    ```console
    $ ruby -Ilib -rprism -rprism/translation/parser33 -e 'buffer = Parser::Source::Buffer.new("path"); buffer.source = "proc { it }"; \
                                                          p Prism::Translation::Parser33.new.tokenize(buffer)[0]'
    s(:block,
      s(:send, nil, :proc),
      s(:args),
      s(:send, nil, :it))
    ```

    ## Development Note

    The Parser gem does not yet support the `it` block parameter syntax. This is the first case where Prism's node design precedes that of the Parser gem.
    When implementing https://github.com/whitequark/parser/issues/962, this node design will need to be taken into consideration.

    https://github.com/ruby/prism/commit/c141e1420a

commit 13fa6cc6a328176334924a654c0e2d742b704ca9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-04-26 19:32:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 20:01:03 +0900

    [ruby/optparse] [DOC] Extract description from README

    https://github.com/ruby/optparse/commit/83e8c23d68

commit 3cd3f766799eb1e591356acde3ab863e3bb3566a
  Author:     Kouhei Yanagita <yanagi@shakenbu.org>
  AuthorDate: 2025-01-09 11:00:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 19:21:29 +0900

    [ruby/optparse] Fix LESS environment variable setup in OptionParser#help_exit

    If the original value of LESS ends with an option starting with "--",
    simply appending "Fe" would result in an invalid option string.

    https://github.com/ruby/optparse/commit/30571f91d3

commit f4c16c57aad9138f236f4fa966893b21d5a64cbf
  Author:     Koichi ITO <koic.ito@gmail.com>
  AuthorDate: 2025-02-02 16:17:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 19:19:58 +0900

    [ruby/optparse] Make the result of `tty?` obtainable with flexible stdout

    In mock testing for stdout, `StringIO.new` is sometimes used to redirect the output.
    In such cases, the assignment is done with `$stdout = StringIO.new`, not the constant `STDOUT`.
    e.g., https://github.com/rubocop/rubocop/blob/v1.71.1/lib/rubocop/rspec/shared_contexts.rb#L154-L164

    After assigning `StringIO.new`, `$stdout.tty?` returns `false`,
    allowing the standard output destination to be switched during test execution.

    ```ruby
    STDOUT.tty?       # => true
    StringIO.new.tty? # => false
    ```

    However, since `STDOUT.tty?` returns `true`, a failure occurred in environments
    where the environment variables `RUBY_PAGER` or `PAGER` are set.
    e.g., https://github.com/rubocop/rubocop/pull/13784

    To address this, `STDOUT` has been updated to `$stdout` so that the result of `tty?` can be flexibly overridden.

    A potential concern is that `$stdout`, unlike `STDOUT`,
    does not always represent the standard output at the time the Ruby process started.
    However, no concrete examples of issues related to this have been identified.

    `STDOUT.tty?` is the logic of optparse introduced in https://github.com/ruby/optparse/pull/70.

    This PR replaces `STDOUT` with `$stdout` throughout, based on the assumption
    that `$stdout` is sufficient for use with optparse.

    https://github.com/ruby/optparse/commit/262cf6f9ac

commit 45e8dc1e85eced97c7e3b29c947757736a6fcf79
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-10 16:53:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 18:55:29 +0900

    [ruby/optparse] [DOC] Mention about post-check

    https://github.com/ruby/optparse/commit/e1957d7392

commit 9e265b583b5cc35b8120978c855e1a6a78abbe5b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-10 13:12:34 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 18:55:29 +0900

    [ruby/optparse] Add post-check of value

    Fix https://github.com/ruby/optparse/pull/80

    https://github.com/ruby/optparse/commit/050a87d029

commit b51450f3bd77f6dc862fcb8b177922a588f0e381
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-10 17:02:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 17:03:55 +0900

    [ruby/optparse] Update argument check with safe navigation operator

    https://github.com/ruby/optparse/commit/71e2b31824

commit 9de9cb53c091fa14397380fd0cc776330457ace6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-10 14:05:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-10 16:56:44 +0900

    [ruby/optparse] [DOC] Update documents to use single quotes instead of backqoutes

    https://github.com/ruby/optparse/commit/5e71a70cb5

commit 1a985d36a753e2e867c2a2c37548f514748d8c8e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-07 03:45:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Adapt specs to extraction of irb from ruby-core

    This gets our daily Bundler CI back to green.

    https://github.com/rubygems/rubygems/commit/1bb70f75d2

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit 0ca5240d58e292d0b94a0476dbeee07f61bc08c9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-07 03:45:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] `bundle console` deprecation was canceled

    https://github.com/rubygems/rubygems/commit/1c237a4c3f

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit 9d5a3c0314f8065ab8da54e82cfaebe5f538883a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-07 03:44:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Reduce duplicate of some spec gemfiles

    https://github.com/rubygems/rubygems/commit/bd42c840c6

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit e21e5bc814484ea1f37c702404f434d72bd257c1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-03-05 23:56:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Fix `gem rdoc` not working with newer versions of rdoc

    https://github.com/rubygems/rubygems/commit/369f9b9311

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit 4323674fe4d697db48856292deb459f9ca923272
  Author:     Tara Bass <tara.bass@gusto.com>
  AuthorDate: 2025-02-28 04:44:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Don't treat a git-sourced gem install as complete if only the '.git' directory is present. This recovers cases where a git-sourced install can be left in a partially installed state.

    https://github.com/rubygems/rubygems/commit/d132b7008d

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit 71e340881f1aca4911a35ddafd519fb0e29e6544
  Author:     Sean Collins <sean@cllns.com>
  AuthorDate: 2025-03-04 12:52:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Switch inject to use shorthand hash syntax

    https://github.com/rubygems/rubygems/commit/ba5a62fd04

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit 8acf0d7bcc2a55299bed00caee9679446f04e0d0
  Author:     Sean Collins <sean@cllns.com>
  AuthorDate: 2025-03-04 07:12:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    [rubygems/rubygems] Use shorthand hash syntax for bundle add

    https://github.com/rubygems/rubygems/commit/9691097036

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit afbc6649cd98226a1f221d87fc289dad2458a490
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-10 11:38:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    Revert "Omit irb related examples temporary"

    This reverts commit 750e6195040ec3f9d0b172ac1a49a49d9b7d8ba0.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit ce4abf2a2b22b39d3653045e0b5351a27669ecbf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-10 11:38:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-10 12:43:36 +0900

    Revert "Move irb detection to top-level before(:each) block"

    This reverts commit 261f8023842b6f90007df68dfc3d88a01a9337a2.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12890

commit cdf36d6bfd6409b8c626557aca7abf74b7e4e76c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-09 22:39:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-09 23:32:17 +0900

    [ruby/optparse] Allow non-string enum list #79

    Command line arguments are strings, convert enum list elements to
    strings to match.

    https://github.com/ruby/optparse/commit/c5ec052efc

commit 213c27825af45f25d27150a4d11164df04ee9080
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-09 22:54:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-09 23:32:17 +0900

    [ruby/optparse] Add test for enum arguments

    https://github.com/ruby/optparse/commit/0a0e977b7c

commit 0c73328affeeaf04684e15dbc8def018f30fa553
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-09 22:38:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-09 23:09:16 +0900

    [ruby/optparse] Use `\A` instead of `^` as the beginning of string

    https://github.com/ruby/optparse/commit/a3f1029815

commit 49199445f5be18cb2f97c5d0eaaa952329d0e09f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-09 21:56:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-09 23:03:55 +0900

    [ruby/optparse] [DOC] Manage rdoc options only in .rdoc_options file

    Make `rdoc .` and `rake rdoc` consistent.

    https://github.com/ruby/optparse/commit/61b4ea0704

commit 5965978efbfea95aefb6900dc9a594b682dae43b
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-09 02:06:54 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-09 11:26:56 +0900

    Merge the `new_yield` method into the `rb_node_yield_new` method

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12888

commit caa7eaecc5b0d2d97c56abe336270541a06702ed
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-09 01:39:36 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-09 02:56:26 +0900

    Refactor parser rules to remove inline_operation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12886

commit 24945defa57ca2a12e5d2773552e9b156ad6ecf0
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-08 21:12:28 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-08 22:20:11 +0900

    Remove redundant semantic action in bvar rule

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12883

commit a14d9b8d5777b05e288b412bcdef609f05389fd7
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-08 05:38:30 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-08 18:56:02 +0900

    string.c: Improve `fstring_hash` to reduce collisions

    `rb_str_hash` doesn't include the encoding for ASCII only strings
    because ASCII only strings are equal regardless of their encoding.

    But in the case if the `fstring_table`, two identical ASCII strings
    with different encodings aren't equal.

    Given it's common to have both `:foo` (or `def foo`) and `"foo"`
    in the same source code, this causes a lot of collisions in the
    `fstring_table`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12881

commit eae0fe37c08b568c0a7cbf904caba4faca517746
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 23:52:50 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-08 18:26:40 +0900

    Implement CLASS NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e "class A < B; end"
    @ ProgramNode (location: (1,0)-(1,16))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,16))
        +-- body: (length: 1)
            +-- @ ClassNode (location: (1,0)-(1,16))
                +-- locals: []
                +-- class_keyword_loc: (1,0)-(1,5) = "class"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- constant_path:
                |   @ ConstantReadNode (location: (1,6)-(1,7))
                |   +-- name: :A
                +-- inheritance_operator_loc: (1,8)-(1,9) = "<"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- superclass:
                |   @ ConstantReadNode (location: (1,10)-(1,11))
                |   +-- name: :B
                +-- body: nil
                +-- end_keyword_loc: (1,13)-(1,16) = "end"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- name: :A
    ```

commit 98790faae3cbbe67a5335df30f6e9000f3a83ad9
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-08 07:42:03 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-03-08 10:23:32 +0900

    YJIT: Add Counter::invalidate_everything

    When YJIT is forced to discard all the code, that's bad for
    performance, so there should be an easy way to know about it.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12882

commit 3c92fe13f83c458991349a9b77963c90027fe53b
  Author:     kyontan <kyontan@monora.me>
  AuthorDate: 2025-03-08 06:18:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-08 06:18:25 +0900

    [DOC] Fix minor miscalculation of stack size

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12872

    Merged-By: XrXr

commit 17f6a689629ec3507a79fc156833f329dc641bed
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-07 23:38:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-07 23:38:51 +0900

    [DOC] Tweaks for Hash#rehash

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12875

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 8774530ce10bbee5b483b4e7283cc263b246125d
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-03-07 08:08:24 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-07 23:36:51 +0900

    [DOC] Tweaks for Hash#rassoc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12874

commit 42b75a9c6414eb93fdee777d87a7ad7562edf009
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-03-07 23:34:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-07 23:34:36 +0900

    [DOC] Tweaks for Hash#merge (#12825)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit f118e0ce734d7951597eddccff3695d6573589c4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-07 17:52:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-07 17:52:18 +0900

    [Bug #21174] [Bug #21175] Update rubyspec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12879

commit cbe3156f82ee8b68e734be58badb9b6a3adc8aa6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-07 17:23:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-07 17:23:33 +0900

    [Bug #21174] [Bug #21175] Fix `Range#max` on beginless integer range

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12879

commit 8841f885bde7bbe571d2043830799059870dc70c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-04 10:22:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-03-07 12:14:48 +0900

    [Bug #21163] Fix hexadecimal float conversion

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12878

commit 6bad47ac6d62b54fe30e3f161c2a9d8f5fa4800c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-06 04:22:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-07 01:58:54 +0900

    RUBY_FREE_AT_EXIT does not work when error in -r

    [Bug #21173]

    When loading a file using the command line -r, it is processed before
    RUBY_FREE_AT_EXIT is checked. So if the loaded file raises an error, it
    will cause memory to not be freed with RUBY_FREE_AT_EXIT.

    For example `ruby -rtest.rb -e ""` will report a large amount of memory
    leaks if `test.rb` raises.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12859

commit bb91c303bad5fcdd59b73ca1a1923f71c7efdbfd
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-07 00:52:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-07 00:52:49 +0900

    YJIT: Rename get_temp_regs2() back to get_temp_regs() (#12866)

  Notes:
    Merged-By: maximecb <maximecb@ruby-lang.org>

commit e20f1f76f4d7479faa112b612ba6f712a46c49fc
  Author:     Rahim Packir Saibo <i.am@rah.im>
  AuthorDate: 2025-03-06 03:03:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-06 18:29:27 +0900

    [ruby/json] Fix JSON::GeneratorError#detailed_message with Ruby < 3.2

    https://github.com/ruby/json/commit/2e015ff839

commit f7af75d3d9239dadd66382e421f63790ad46aeb7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-05 13:34:52 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-03-06 16:58:13 +0900

    Show test task names longer

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12871

commit ca4325f6c9710ae5dcda9f735b264ba92bffb68f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-06 16:09:57 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-06 16:42:01 +0900

    Harden `TestObjSpace#test_memsize_of_root_shared_string`

    This test occasionally fail because it runs into a String instance
    that had its `==` method removed.

    I couldn't identify where this String comes from, but in general
    when using `each_object` it's best to not assume returned objectd
    are functional.

    By just inverting the operands of `==` we ensure it's always
    `String#==` that is called.

    ```
      1) Error:
    TestObjSpace#test_memsize_of_root_shared_string:
    NoMethodError: undefined method '==' for #<String:0x00007f9b50e8c978>
        /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'block in TestObjSpace#test_memsize_of_root_shared_string'
        /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'ObjectSpace.each_object'
        /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'TestObjSpace#test_memsize_of_root_shared_string'
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12870

commit c939d0c85d1da76477a268058689f2f65e02d4be
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-06 12:39:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-06 12:39:39 +0900

    Launchable: Send stdout and stderr (#12785)

    Currently, the Launchable team is developing a new feature to attach any logs. Attached log can be anything, such as system logs or stdout. Users can find these logs using any text search. Please note that this feature is a work in progress, so we can't use it yet.

    I'm going to attach stdout and stderr as attached logs because they will be useful for finding interpreter bugs. When running tests, we sometimes see interpreter itself crash, and the stack is output to stderr. When debugging the cause of the issue, this feature is useful.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 309076ff91601f718f8e1285060c486c6bf37c67
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-03-06 12:18:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-06 12:18:54 +0900

    Fix flaky failure in TestSetTraceFunc#test_tracepoint_disable (#12854)

    TestSetTraceFunc#test_tracepoint_disable is a flaky and failing intermittently. Here is an example of failure logs.

    ```
       1) Failure:
      TestSetTraceFunc#test_tracepoint_disable [/home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb:857]:
      <[:foo, :disable, :foo, :disable]> expected but was
      <[:call, :call, :foo, :disable, :foo, :disable]>.
    ```
    https://github.com/ruby/ruby/actions/runs/13619175633/job/38066208546?pr=12585#step:12:875

    I printed values of TracePoint objects as follows, and checked the values when failing intermittently.

    https://github.com/ruby/ruby/blob/7f9a6fc582fb5cfd88ab73a61782f39894a37ba6/test/ruby/test_settracefunc.rb#L848

    Here is the log when the TestSetTraceFunc#test_tracepoint_disable failed intermittently.

    `2025-03-05T09:08:37.4075411Z e: call, f: /home/runner/work/ruby/ruby/src/lib/tempfile.rb, l: 386, i: call, d: Tempfile::FinalizerManager` is an unexpected events. Thus, I modified test code so that we can filter out unexpected trace events.

    ```
    2025-03-05T09:08:37.4075411Z e: call, f: /home/runner/work/ruby/ruby/src/lib/tempfile.rb, l: 386, i: call, d: Tempfile::FinalizerManager
    2025-03-05T09:08:37.4085009Z e: call, f: /home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb, l: 808, i: foo, d: TestSetTraceFunc
    2025-03-05T09:08:37.4086042Z e: call, f: <internal:trace_point>, l: 295, i: disable, d: TracePoint
    2025-03-05T09:08:37.4115693Z e: call, f: /home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb, l: 808, i: foo, d: TestSetTraceFunc
    2025-03-05T09:08:37.4116734Z e: call, f: <internal:trace_point>, l: 295, i: disable, d: TracePoint
    ```

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit e8f8565dc2afc586ed9eae1b75623f7aca9b7df7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-06 09:23:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-06 09:23:31 +0900

    Remove obsoleted insn_may_depend_on_sp_or_pc()

    which was for MJIT

commit 0d03183748e29a7133df3e9bde99f5d9258ce6f1
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-03-06 08:46:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-06 08:46:51 +0900

    auto-request-review should run only for master

    Backport PRs are reviewed only by the branch maintainers.

commit 443e2ec27db89c896bd62994f6e04d8d6d48cddb
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-05 05:54:33 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2025-03-06 07:05:24 +0900

    Replace tombstone when converting AR to ST hash

    [Bug #21170]

    st_table reserves -1 as a special hash value to indicate that an entry
    has been deleted. So that that's a valid value to be returned from the
    hash function, do_hash replaces -1 with 0 so that it is not mistaken for
    the sentinel.

    Previously, when upgrading an AR table to an ST table,
    rb_st_add_direct_with_hash was used which did not perform the same
    conversion, this could lead to a hash in a broken state where one if its
    entries which was supposed to exist being marked as a tombstone.

    The hash could then become further corrupted when the ST table required
    resizing as the falsely tombstoned entry would be skipped but it would
    be counted in num entries, leading to an uninitialized entry at index
    15.

    In most cases this will be really rare, unless using a very poorly
    implemented custom hash function.

    This also adds two debug assertions, one that st_add_direct_with_hash
    does not receive the reserved hash value, and a second in
    rebuild_table_with, which ensures that after we rebuild/compact a table
    it contains the expected number of elements.

    Co-authored-by: Alan Wu <alanwu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12852

commit c224ca4feaff20cab03d76439bcbfb35d4e2f6b1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-06 01:29:32 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-06 02:57:21 +0900

    Fix a race condition with interned strings sweeping.

    [Bug #21172]

    This fixes a rare CI failure.

    The timeline of the race condition is:

    - A `"foo" oid=1` string is interned.
    - `"foo" oid=1` is no longer referenced and will be swept in the future.
    - Another `"foo" oid=2` string is interned.
    - `register_fstring` finds `"foo" oid=1`, but since it is about to be swept,
      removes it from `fstring_table` and insert `"foo" oid=2` instead.
    - `"foo" oid=1` is swept, since it has the `RSTRING_FSTR` flag,
      a `st_delete` is issued in `fstring_table` which removes `"foo" oid=2`.

    I don't know how to reproduce this bug consistently in a single test
    case.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12857

commit 53579e5718b82dd655cd7bb129c86b83ecdb625d
  Author:     a5-stable <sh07e1916@gmail.com>
  AuthorDate: 2025-03-05 22:46:57 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-03-06 00:19:31 +0900

    yjit.rb: Fix parameter name in documentation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12856

commit 36ee0c1acb45760d63fc7dcb9a4d2b6002a58a4f
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-03 00:14:25 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-05 18:21:21 +0900

    Add tests for alias locations with special variables $`, $', and $+

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12837

commit 1ce10f3fbb037bc8383d0cf7fe72d9f261669246
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-03-05 05:08:34 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-03-05 05:45:54 +0900

    do not reset `EnvUtil.timeout_scale`

    Even if `setup` is omitted, but `teardown` is called and
    `EnvUtil.timeout_scale` was reset with `nil`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12851

commit 46f3d82f40535235f9fcda2d804fc564314f4e87
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-03-05 05:16:13 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-03-05 05:45:54 +0900

    Revert "try to show timeout sec"

    This reverts commit ce66eea167847d4300150791bde4932b907b0cc0.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12851

commit 15ee45080133c19d167760d577d72540a9db0ec9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-04 21:40:13 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-03-04 23:23:38 +0900

    Move in-place interning spec to Ruby's tests

    Fix: https://github.com/ruby/spec/issues/1249

    JRuby and TruffleRuby can't implement this behavior.
    While quite a lot of code out there relies on it, if it's
    not implemented it will simply result in sligthly less efficient
    code, so not the end of the world.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12850

commit 5de02d64878246eb04ab3654c7fcb8b119a89c46
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-28 01:52:21 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-03-04 23:22:19 +0900

    [DOC] Tweaks for Hash#size

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12824

commit ce66eea167847d4300150791bde4932b907b0cc0
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2025-03-04 19:09:38 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2025-03-04 19:39:16 +0900

    try to show timeout sec

    http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-noble-docker/5632508
    ```
      1) Error:
    TestEval#test_outer_local_variable_under_gc_compact_stress:
    Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_separately expired timeout (10 sec)
    pid 1339179 killed by SIGABRT (signal 6) (core dumped)
    ```

    seems that timeout scale doesn't work even though `RUBY_TEST_TIMEOUT_SCALE`
    is specified.

    This patch tries to print the timeout with scale information.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12849

commit d7a96a285c5be8a4009f3e0a3fab2246fad060f3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-04 17:45:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-04 18:58:10 +0900

    Sync skip rules from ubuntu.yml

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12846

commit bb6674f96c094dd2e7d1e2f179d05ff5d4bbe073
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-04 17:43:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-04 18:58:10 +0900

    Try to build WSL on GitHub Actions

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12846

commit 5085ec3ed90beb54125d5eb9329e202ae1542b5c
  Author:     annichai-stripe <annichai@stripe.com>
  AuthorDate: 2025-03-04 05:45:39 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-03-04 05:45:39 +0900

    Allow YJIT `mem-size` and `call-threshold` to be set at runtime via `YJIT.enable()` (#12505)

    * first commit

    * yjit.rb change

    * revert formatting

    * rename mem-size to exec-mem-size for correctness

    * wip, move setting into rb_yjit_enable directly

    * remove unused helper functions

    * add in call threshold

    * input validation with extensive eprintln

    * delete test script

    * exec-mem-size -> mem-size

    * handle input validation with asserts

    * add test cases related to input validation

    * modify test cases

    * move validation out of rs, into rb

    * add comments

    * remove trailing spaces

    * remove logging

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

    * remove helper fn

    * Update test/ruby/test_yjit.rb

    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

    * trailing white space

    ---------

    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
    Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
    Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>

  Notes:
    Merged-By: maximecb <maximecb@ruby-lang.org>

commit 9ccba88160c1b702a97b80817b97109cc2b9f33c
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-03-03 22:28:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-04 00:27:56 +0900

    [ruby/openssl] test_pkey_dh.rb: Merge 2 test_new_break tests to one test.

    Merge 2 test_new_break tests to one test because it's easy to maintain the test.

    https://github.com/ruby/openssl/commit/446ff3e11f

commit 12e2dfdc56cf835a37e03682d33e5318ac0fabef
  Author:     Josef Šimánek <josef.simanek@gmail.com>
  AuthorDate: 2025-03-02 01:04:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    [rubygems/rubygems] Update parallel_tests.

    - new version restores previously removed method

    https://github.com/rubygems/rubygems/commit/5348e88d07

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit fdf1076ef9dd438f27fddd51e771d18c9ae7d045
  Author:     Michael Chui <saraid216@gmail.com>
  AuthorDate: 2025-02-28 09:20:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    [rubygems/rubygems] docs(bundle-exec): recommend non-deprecated methods

    https://github.com/rubygems/rubygems/commit/3b4934fb69

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit a98c3d229e77bc25f73aa02cff2d6aed57f80017
  Author:     Mateo <sheshi.mateo01@gmail.com>
  AuthorDate: 2025-02-28 03:40:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    [rubygems/rubygems] docs(bundle-config): hint default group when using only option

    https://github.com/rubygems/rubygems/commit/c258e45b44

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit 29e3ee056819049580f8d599624bc70265ac251f
  Author:     Josef Šimánek <josef.simanek@gmail.com>
  AuthorDate: 2025-03-01 10:39:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    [rubygems/rubygems] Bring man pages up to date

    https://github.com/rubygems/rubygems/commit/591d2c0503

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit e4c5531b4c6f2d0053478fe69160d403af14e404
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 18:18:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    [rubygems/rubygems] Update vendored uri to 1.0.3

    https://github.com/rubygems/rubygems/commit/176dc7421c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit f52a2e4b12d0776ff78d464adfdecf57712da9cf
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 18:18:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-03-03 15:52:35 +0900

    Restore lockfile for vendor_gems.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12840

commit a47e686cb6195dbd1266229d6e8d6bb17207c311
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-02 15:46:49 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-03 11:17:14 +0900

    Implement POSTEXE NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e "END {  }"
    @ ProgramNode (location: (1,0)-(1,8))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,8))
        +-- body: (length: 1)
            +-- @ PostExecutionNode (location: (1,0)-(1,8))
                +-- statements: nil
                +-- keyword_loc: (1,0)-(1,3) = "END"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- opening_loc: (1,4)-(1,5) = "{"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- closing_loc: (1,7)-(1,8) = "}"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ```

commit 617e8608b2cff8be1d063c2f47ab425cda839d58
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-03-03 00:53:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-03-03 03:14:36 +0900

    [ruby/prism] Rename fgets parameter to fix NetBSD

    Fixes [Bug #21165]

    https://github.com/ruby/prism/commit/3f0acf7560

commit c93f30ab67a37276d6cc50ec33186fd55f62c0a3
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-02 02:24:45 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-02 23:10:45 +0900

    Use user defined parameterizing rules  `mlhs`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12836

commit 6c8cdc9c6b642eb4c613a6819f0c1d241dd0e30a
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-03-02 02:06:42 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-03-02 23:10:17 +0900

    Change superclass rhs to use none

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12835

commit db4ea95219f045b8e855afae0b6d28027ec8d3eb
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-28 18:32:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-28 18:32:36 +0900

    [Bug #20682] Add sleep 0.1 to stabilize flaky failures on macOS (#12829)

    [Bug #20682] Add `sleep 0.1` to stabilize flaky failures on macOS

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 1ead1eb6dbe4ed1fe3128fb9ac3f3dacb86230e5
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-28 17:01:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-28 17:01:19 +0900

    Increase timeouts in Compilations actions to reduce intermittent failures (#12827)

    Compilations actions are flaky and intermittently failing now. This run (https://github.com/ruby/ruby/actions/runs/13572112090) is an example of the issue. The job fails due to exceeding the timeout, resulting in termination. To prevent these intermittent failures, I'm going to increase the timeout.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 56f46e544876e7a96b1196ed8a89de578e0307fc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-28 14:47:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-28 15:51:11 +0900

    Visual Studio 2022 17.13.x couldn't build miniruby.exe. It prevents other PRs.

    https://github.com/actions/runner-images/commit/e43209e1398efe7739e42509162b3187515b9359

    ```
    user32.lib advapi32.lib shell32.lib ws2_32.lib iphlpapi.lib gmp.lib imagehlp.lib shlwapi.lib bcrypt.lib
    linking miniruby.exe
       Creating library miniruby.lib and object miniruby.exp
    [BUG] heap_idx_for_size: allocation size too large (size=145u, heap_idx=25u)
    ruby 3.5.0dev (2025-02-28T01:12:37Z pull/12827/merge 3d6a5a1883) [x64-mswin64_140]
    ```

    ```
    user32.lib advapi32.lib shell32.lib ws2_32.lib iphlpapi.lib imagehlp.lib shlwapi.lib bcrypt.lib
      linking miniruby.exe
      NMAKE : fatal error U1077: '@ miniruby.exe -v' : return code '0xc0000005'
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12830

commit a6da77c9e95aab3be9f4553e94eea605bd95d2eb
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-28 12:23:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 13:33:43 +0900

    [ruby/openssl] ssl: fix tests using TLS 1.1 or older

    Commit https://github.com/ruby/openssl/commit/aa7f03e18f26 broke test_minmax_version and test_fallback_scsv
    on systems using OpenSSL 1.1.1 with a system-wide configuration file
    that specifies MinProtocol=TLSv1.2.

    http://rubyci.s3.amazonaws.com/debian11/ruby-master/log/20250228T003003Z.fail.html.gz
    http://rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20250228T003003Z.fail.html.gz

    These test cases were already broken before the commit, but they were
    being skipped because check_supported_protocol_versions failed to detect
    TLS 1.1 support. To avoid affected by the configuration file, explicitly
    reset SSLContext#min_version when TLS 1.1 or older is required.

    The test cases are also broken with OpenSSL 3.0 or later, but this is
    not currently visible because it still fails to detect TLS 1.1 support.
    This is caused by the default SSLContext#security_level value, as
    OpenSSL 3.0 changed TLS 1.1 to be disabled at level 1.

    https://github.com/ruby/openssl/commit/6d0ea81b5e

commit 42c0722f83d7ed60360bbaf17f2d45e7cfe7d121
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-28 12:55:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-28 12:55:46 +0900

    [DOC] Fix the comment for RUBY_CONST_ID and rb_intern

    RUBY_CONST_ID has never been deprecated; `rb_intern` is handy but it
    is using non-standard GCC extensions and does not cache the ID with
    other compilers.

commit 3294d3d4571bd50a86e701a46ffd70505afdad87
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-28 08:53:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-28 12:34:57 +0900

    [rubygems/rubygems] Skip default gems executable example with Windows platform

    https://github.com/rubygems/rubygems/commit/b4a8bda811

commit 0cac191c6e938e04bc2781d6766c98445a05a170
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 20:49:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-28 12:34:57 +0900

    [rubygems/rubygems] Update version for broken executables with default gems

    https://github.com/rubygems/rubygems/commit/d2f90a81d9

commit 19bdcc8f0c1f08b60aa41044ba5b78b55a5c650e
  Author:     Martin Emde <me@martinemde.com>
  AuthorDate: 2025-02-22 10:57:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-28 12:34:57 +0900

    [rubygems/rubygems] Retry gracefully on blank partial response in compact index

    https://github.com/rubygems/rubygems/commit/fafb9ae090

commit 223f37c00271001cc522cf00822bae6bbe7340ea
  Author:     Maciek Rząsa <maciejrzasa@gmail.com>
  AuthorDate: 2025-02-21 19:39:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-02-28 12:34:38 +0900

    Improve tests for small UTF regex with case fold.

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12787

commit a50fbc56a30a0665102781019029e9cf9ddb3576
  Author:     Maciej Rzasa <maciejrzasa@gmail.com>
  AuthorDate: 2025-02-21 08:42:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-02-28 12:34:38 +0900

    Use mbuf instead of bitset for character class for small UTF.  Fixes #16145

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12787

commit 025832c3859c4369ed12ace13e35523bd04116fe
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-28 05:53:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 09:28:24 +0900

    [ruby/prism] Use a locale-insensitive version of tolower

    [Bug #21161]

    The `tolower` function provided by the libc is locale dependent
    and can behave in ways you wouldn't expect for some value
    of `LC_CTYPE`.

    https://github.com/ruby/prism/commit/e3488256b4

    Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit d4b8da66ca9533782d2fed9762783c3e560f2998
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-27 22:56:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 02:18:02 +0900

    [ruby/openssl] ssl: refactor check_supported_protocol_versions

    As reported in <https://github.com/ruby/ruby/pull/12823>,
    check_supported_protocol_versions is unstable and occasionally fails
    with Errno::ECONNABORTED during SSLSocket#connect on Windows.

    When the server-side SSLContext specifies an unsupported SSL/TLS
    protocol version, start_server accepts a TCP connection but closes it
    without reading ClientHello, as SSLSocket#accept immediately raises an
    exception. With Winsock, this can cause the client-side
    SSLSocket#connect to raise Errno::ECONNABORTED.

    While the simplest fix is to add rescue Errno::ECONNABORTED, this method
    can be simplified. Instead, let's set up a server that accepts all
    protocol versions and test client connections with different settings.

    https://github.com/ruby/openssl/commit/aa7f03e18f

commit c0f3dcf7958b07e7d2cf008770594bd9c656fb51
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-26 23:25:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 02:04:32 +0900

    [ruby/openssl] digest: correct assert_equal usage in test_sha3

    assert_equal accepts an expected value as the first argument.

    https://github.com/ruby/openssl/commit/8faa1d89de

commit f5a74bd645a6b074695fb046b44d50967c468a83
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-26 23:00:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 02:04:32 +0900

    [ruby/openssl] digest: always run SHA-3 and truncated SHA-2 tests

    The "pend" are no longer necessary, as they work with all OpenSSL
    variants we currently support. They were added in OpenSSL 1.1.1 and
    LibreSSL 3.8.0. They are also supported by the current AWS-LC release.

    This makes the SHA-3 tests run with AWS-LC correctly. AWS-LC does not
    report SHA-3 in OpenSSL::Digest.digests.

    https://github.com/ruby/openssl/commit/e1a6e9c081

commit 9994a95790fe2c8c69625543b9078c105213cd2c
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-25 20:38:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 02:04:16 +0900

    [ruby/openssl] ssl: manually craft invalid SAN extensions in tests

    Starting with LibreSSL 3.5, OpenSSL::X509::ExtensionFactory refuses to
    create SAN extensions that are not valid according to RFC 6125. While
    this behavior makes sense, we need such invalid extensions to test our
    own validation routine. Let's construct SAN extensions manually instead.

    https://github.com/ruby/openssl/commit/b420d6d739

commit 244363b23e5e14cedbeb99a4fb24b1576ff44ffe
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-02-25 00:23:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-28 02:01:57 +0900

    [ruby/openssl] Use ENV["TEST_RUBY_OPENSSL_FIPS_ENABLED"] instead of OpenSSL::OPENSSL_FIPS.

    As OpenSSL::OPENSSL_FIPS always returns true on OpenSSL >= 3.0.0, we cannot use
    this constant as a flag to check whether the OpenSSL is FIPS or not.
    See <https://github.com/ruby/openssl/blob/d725783c5c180337f3d00efcba5b8744e0aea813/ext/openssl/ossl.c#L994-L1004>.

    Skip the test_fips_mode_get_with_fips_mode_set test in AWS-LC case.

    Because we don't test `OpenSSL.fips_mode=` on AWS-LC for now. We cannot change
    the value of the `OpenSSL.fips_mode` on AWS-LC.
    The `OpenSSL.fips_mode` in AWS-LC behaves as follows.

    On AWS-LC non-FIPS:
    ```
    $ bundle exec ruby -I ./lib -ropenssl.so -e 'p OpenSSL.fips_mode'
    false

    $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = true; p OpenSSL.fips_mode'
    -e:1:in 'OpenSSL.fips_mode=': Turning on FIPS mode failed (OpenSSL::OpenSSLError)
            from -e:1:in '<main>'

    $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = false; p OpenSSL.fips_mode'
    false
    ```

    On AWS-LC FIPS:
    ```
    $ bundle exec ruby -I ./lib -ropenssl.so -e 'p OpenSSL.fips_mode'
    true

    $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = false; p OpenSSL.fips_mode'
    -e:1:in 'OpenSSL.fips_mode=': Turning off FIPS mode failed (OpenSSL::OpenSSLError)
            from -e:1:in '<main>'

    $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = true; p OpenSSL.fips_mode'
    true
    ```

    https://github.com/ruby/openssl/commit/fd3e3e722f

commit 4f19f23036a873ff718ac3b2253101d85890b919
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 19:53:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 19:53:24 +0900

    Use erb for simple executable example

commit 921ca9d8a83aff50d04cec8d788bf43631702dd5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 19:50:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 19:50:14 +0900

    Use syntax_suggest instead of erb executable.

    erb is only working with Ruby 3.5dev.

commit 2dff416ff2a5465518c080fcb0fe60e29e149f25
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-27 16:55:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-27 16:55:54 +0900

    Increase timeout in TestParallel testing to reduce flaky failures (#12822)

    Currently, the following tests are flaky and failing intermittently, so I'm going to increase the timeout to improve stability.

    ```
        1) Failure:
      TestParallel::TestParallel#test_hungup [/Users/runner/work/ruby/ruby/src/tool/lib/zombie_hunter.rb:6]:
      Expected [[42009, #<Process::Status: pid 42009 SIGKILL (signal 9)>]] to be empty.

        2) Error:
      TestParallel::TestParallel#test_hungup:
      Test::Unit::ProxyError: execution expired
          /Users/runner/work/ruby/ruby/src/lib/timeout.rb:40:in 'Timeout::Error.handle_timeout'
          /Users/runner/work/ruby/ruby/src/lib/timeout.rb:194:in 'Timeout.timeout'
          /Users/runner/work/ruby/ruby/src/tool/test/testunit/test_parallel.rb:210:in 'TestParallel::TestParallel#test_hungup'

    ```
    https://github.com/ruby/ruby/actions/runs/13560087551/job/37901506230#step:14:105

    ```
        1) Error:
      TestParallel::TestParallel#test_retry_workers:
      Test::Unit::ProxyError: execution expired
          /Users/runner/work/ruby/ruby/src/lib/timeout.rb:40:in 'Timeout::Error.handle_timeout'
          /Users/runner/work/ruby/ruby/src/lib/timeout.rb:194:in 'Timeout.timeout'
          /Users/runner/work/ruby/ruby/src/tool/test/testunit/test_parallel.rb:217:in 'TestParallel::TestParallel#test_retry_workers'
    ```
    https://github.com/ruby/ruby/actions/runs/13559151505/job/37899041580#step:14:106

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 261f8023842b6f90007df68dfc3d88a01a9337a2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 15:49:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 15:49:31 +0900

    Move irb detection to top-level before(:each) block

commit 3e8bf097ce20acd12b8625d0b9c2353cd69313cb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-27 14:26:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 15:48:26 +0900

    Use erb executable instead of irb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12821

commit 48b6c60969e544d0b50e92bab10711d34fed9c27
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-27 15:12:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-27 15:12:02 +0900

    [Misc #20661] Stop retrying tests in `make test-all` command by default (#11271)

    [Misc #20661] Stop retrying tests in make test-all command by default

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 9cf5d20e5f355e2d355e3f5426080a9d8467392e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 16:35:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:32 +0900

    [ruby/cgi] Bump up v0.4.2

    https://github.com/ruby/cgi/commit/ab84b7fe66

commit cdc55c24520af97fc5d4e31d4db5826cb07e0883
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 15:25:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:32 +0900

    [ruby/cgi] Bump up 0.4.2.beta2

    https://github.com/ruby/cgi/commit/8e6fb1041b

commit 61060d349d26f6ae6388b75899ba0a438906efdb
  Author:     Martin Emde <me@martinemde.com>
  AuthorDate: 2025-02-26 06:51:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:32 +0900

    [rubygems/rubygems] Remove MD5 digesting of compact index responses

    It has been over a year since the release, so let's stop MD5ing everything

    https://github.com/rubygems/rubygems/commit/29ef4ca30b

commit 3e78a2f58e60c2cb7a6fdd2aacdea03b31ca21eb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2022-09-09 20:00:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:32 +0900

    [rubygems/rubygems] Improve error message when on read-only filesystems

    If we fail to write the lockfile, give a better error.

    https://github.com/rubygems/rubygems/commit/81a08d6eda

commit 0d62037fc0626855c36359e4a8a02936b592f9d9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-26 01:12:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:32 +0900

    [ruby/json] Ensure parser error snippets are valid UTF-8

    Fix: https://github.com/ruby/json/issues/755

    Error messages now include a snippet of the document
    that doesn't parse to help locate the issue, however
    the way it was done wasn't UTF-8 aware, and it could
    result in exception messages with truncated characters.

    It would be nice to go a bit farther and actually support
    codepoints, but it's a lot of complexity to do it in C,
    perhaps if we move that logic to Ruby given it's not a
    performance sensitive codepath.

    https://github.com/ruby/json/commit/e144793b72

commit 75f07afd1897a81a18d3e40b57e8a5731d455827
  Author:     yuuji.yaginuma <yuuji.yaginuma@gmail.com>
  AuthorDate: 2025-02-02 16:11:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-27 13:32:27 +0900

    [ruby/uri] Use a fully qualified name in warning messages

    Currently, some warning messages don't contain a `URI` like the following.

    ```ruby
    warning: URI::ABS_URI is obsolete. Use RFC2396_PARSER.regexp[:ABS_URI] explicitly.
    ```

    But, without `URI` prefix, the suggested value doesn't work.
    So I think we should use a fully qualified name to avoid confusion.

    https://github.com/ruby/uri/commit/428eb10e44

commit 31bd669f67e19f675f8de8b6cf9df74ea2c60103
  Author:     Yuji Yaginuma <yuuji.yaginuma@gmail.com>
  AuthorDate: 2025-01-23 17:44:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-27 13:30:23 +0900

    [ruby/uri] Fix the mention to removed `URI.escape/URI::Escape`

    This was removed by #9.

    https://github.com/ruby/uri/commit/fec924238f

commit d31c15d81f368614f81e8c32295d0529b66e7334
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-27 13:07:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-27 13:07:43 +0900

    [DOC] Reference to the idiom from Array#sort

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12820

commit 9394d2084c0d474093fb1fa0754c86f156d152cf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-27 13:00:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-27 13:00:34 +0900

    [DOC] Fix indentation

    Not to make preceding paragraphs a code block.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12820

commit 931ac960b6d11937364b6c4e847fdd575ee67980
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-27 11:07:36 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-27 11:07:36 +0900

    [Bug #21159] module names should not be modifiable

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12819

commit 1b6fddf4db9405d44db8b30493a943d766ddc1cb
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-27 01:22:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-27 05:52:45 +0900

    [DOC] Tweaks for Hash#keep_if

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12816

commit 04e46bd75cae6b327ddf5498258389344bf9bfef
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-27 01:27:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-27 05:52:13 +0900

    [DOC] Tweaks for Hash#key

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12817

commit 8dce189078d609340d9a558a1e770a2002a32fa0
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-27 01:31:42 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-27 05:51:58 +0900

    [DOC] Tweaks for Hash#keys

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12818

commit 3bbb029d449868e5f371cc5c2311366fa33218cb
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-26 23:28:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-26 23:28:52 +0900

    [DOC] Tweaks for Hash#invert

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12808

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 43a729b1be1c03499e1fa8475364708f4a1ca39e
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-25 23:57:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-26 23:28:05 +0900

    [DOC] Tweaks for Hash#replace

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12806

commit a870419f3a1f9a12d7458d4a7427d0766ea86911
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-26 00:05:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-26 23:27:55 +0900

    [DOC] Tweaks for Hash#inspect

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12807

commit 237ab21f25b0a062ce6a272e0586d00778a6f20b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 15:53:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 16:34:04 +0900

    [ruby/cgi] Escape/unescape unclosed tags as well

    https://github.com/ruby/cgi/commit/cd1eb08076

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit fc60a04de958d4ba94fbdf82af94017b963dea7e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 16:01:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 16:34:03 +0900

    [ruby/cgi] Use String#concat instead of String#+ for reducing cpu usage

    https://github.com/ruby/cgi/commit/9907b76dad

    Co-authored-by: "Yusuke Endoh" <mame@ruby-lang.org>

commit eac8b1197f65162233465e1c32e2cef9d6f0d161
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 16:12:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 16:12:53 +0900

    [ruby/uri] Bump up v1.0.3

    https://github.com/ruby/uri/commit/3213f4a0f8

commit b407b6b5b2dc8071c3b1b623e4399899e851f791
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 18:16:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 16:08:45 +0900

    [ruby/uri] Fix merger of URI with authority component

    https://hackerone.com/reports/2957667

    https://github.com/ruby/uri/commit/2789182478

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

commit 57dcb4bb9bc44368db3a2ef908f1babc79ea5224
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 16:29:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 16:08:44 +0900

    [ruby/uri] Truncate userinfo with URI#join, URI#merge and URI#+

    https://github.com/ruby/uri/commit/3675494839

commit ae0853b5f5f4bf78c2bd9e34cad6e5c94bba6224
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 15:20:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 15:20:36 +0900

    [ruby/cgi] Bump up 0.4.2.beta1

    https://github.com/ruby/cgi/commit/3f5b4ed9e9

commit 0c9f149b4d87cefa1080c1c2f316ad3a8bdd809d
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-26 12:50:54 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-26 12:50:54 +0900

    Launchable: Fix `launchable record session` command failures (#12810)

    Currently, the `launchable record session` command is failing some workflows such as YJIT on macOS. This occurs because of word splitting, as explained in https://www.shellcheck.net/wiki/SC2086. This PR addresses the issue.

    ```
    + launchable record session --build refs_pull_12785_merge_5ac818aaf7402e232de6b3e1b078765da3dc6279 --observation --flavor os=macos-14 --flavor test_task=check --flavor test_opts=--enable-yjit --flavor workflow=YJIT macOS Arm64 --test-suite yjit-test-all
    Usage: launchable record session [OPTIONS]
    Try 'launchable record session --help' for help.

    Error: Got unexpected extra arguments (macOS Arm64)
    Error: Process completed with exit code 2.
    ```

    https://github.com/ruby/ruby/actions/runs/13535324545/job/37825826044#step:10:354

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 14192921f5eda76efa85a97ed3f1bfbf48e9a534
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-26 11:13:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-26 11:13:41 +0900

    Check LoadError first

    The message from dlerror is not our concern.

commit 2194e65a98444c1c8fc71c9835000378df18e59c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 09:09:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-26 09:09:56 +0900

    Added assertion strings with Xcode 16.3 beta

commit 6efd15a12823883fc94824041f8b3a00927a8364
  Author:     Koichi ITO <koic.ito@gmail.com>
  AuthorDate: 2025-02-26 01:07:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 07:18:02 +0900

    [ruby/prism] Restore a comment for `Prism::Translation::Parser#initialize`

    This restores the missing method comments in https://github.com/ruby/prism/pull/3479.

    https://github.com/ruby/prism/commit/78b8f67dee

commit 044570fd76d58048ea3deb0693d00a89a746d1b6
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-02-26 01:06:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 02:11:39 +0900

    [ruby/prism] Fix merge mishap

    Caused by https://github.com/ruby/prism/pull/3478 and https://github.com/ruby/prism/pull/3443

    I also made the builder reference more explicit to clearly distinquish
    between `::Parser` and `Prism::Translation::Parser`

    https://github.com/ruby/prism/commit/d52aaa75b6

commit 790b3858e8cf076e320a5dd4c5b777a168ceb46e
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-21 18:20:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 00:44:56 +0900

    [ruby/prism] Add a custom builder class for the parser translator

    I want to add new node types to the parser translator, for example `itblock`. The bulk of the work is already done by prism itself. In the `parser`
    builder, this would be a 5-line change at most but we don't control that here.

    Instead, we can add our own builder and either overwrite the few methods we need,
    or just inline the complete builder. I'm not sure yet which would be better.

    `rubocop-ast` uses its own builder for `parser`. For this to correctly work, it must explicitly choose to extend the
    prism builder and use it, same as it currently chooses to use a different parser when prism is used.

    I'd like to enforce that the builder for prism extends its custom one since it will lead to
    some pretty weird issues otherwise. But first, I'd like to change `rubocop-ast` to make use of this.

    https://github.com/ruby/prism/commit/b080e608a8

commit 2c3d2415d1e5be7e2ca5fa2981068b8584f17c6a
  Author:     Koichi ITO <koic.ito@gmail.com>
  AuthorDate: 2025-02-19 02:36:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-26 00:41:29 +0900

    [ruby/prism] Support custom parser in `Prism::Translation::Parser`

    Follow-up to https://github.com/Shopify/ruby-lsp/pull/1849.

    This is an extension of `Prism::Translation::Parser` to implement https://github.com/Shopify/ruby-lsp/pull/1849.
    It is based on the comments in https://github.com/Shopify/ruby-lsp/pull/1849#pullrequestreview-1966020868,
    but also adds a default argument for delegation to `Parser::Base` super class.

    Using this API, https://github.com/rubocop/rubocop-ast/pull/359 has been implemented in RuboCop AST.
    As detailed in https://github.com/rubocop/rubocop-ast/pull/359, this change is expected to improve performance by 1.3x
    for some source code.
    Achieving a 1.3x speedup with such this simple modification is a significant improvement for Ruby LSP and its users.

    https://github.com/ruby/prism/commit/925725291c

commit e0c0e061543431dade1103d54d8c390c9d09afac
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-25 15:05:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    Skip fiddle assertions if fiddle is not available

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 158e4cc4ec4a7554c1805749e160385b9921fd6e
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-21 19:41:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [rubygems/rubygems] Improve log message about adding a new platform

    This message is printed when running `bundle lock --add-platform`. This
    command affects the lockfile, not the gemfile, and I think it's better
    to use "You are adding" rather than "You added", because the addition is
    happening during the current invocation (as opposed to other log
    messages that talk about a change made to the Gemfile prior to running
    the command).

    https://github.com/rubygems/rubygems/commit/aba1e55f5b

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 528471927307552efac5ff7e999df47dcb0bced2
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-21 19:39:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [rubygems/rubygems] Refactor handling platform removals

    And make it consistent with platform additions.

    https://github.com/rubygems/rubygems/commit/64342ae404

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 8b952e6489e1cb9955f62e32736e8dc7ff86fa91
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-21 19:38:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [rubygems/rubygems] Improve log message when resolving due to local platform not in lockfile

    Current it says "you added a new platform to your gemfile", but that's
    not actually the case here.

    https://github.com/rubygems/rubygems/commit/1e39527a38

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 71f0c37473224580d7c67091588f1a32e64c9a53
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-02-21 05:15:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [rubygems/rubygems] Modify `bundle doctor` to not report issue when files aren't writable:

    - ### Problem

      Running `bundle doctor` warn about files that aren't writable.
      This makes the output of `bundle doctor` very verbose for something
      I believe isn't really an issue.

      ### Context

      Rubygems keeps the files original permission at the time the gem
      is packaged.
      Many gem maintainers have decided that the permissions of the files
      in their bundled would be 0444, this includes amongst others:
      minitest, selenium, brakeman...

      Any git gems that had a 0444 permissions at some point in its git
      history would also be reported (as bundle doctor look in the
      `cache/bundler/git/<gem>/object` path).

      While it completely make sense to report when files aren't readable,
      maybe it's worth questioning the usefulness of reporting files
      that can't be written and what problem this causes to the user
      (if any).

      ### Solution

      Removed the check for unwritable file.

      ### Side note

      I also tweaked the "No issues ..." message logic as it was doing
      the opposite (reporting an issue when there is none and vice versa).
      This wasn't caught in tests because as a stub on `Bundler.ui.info`
      was missing.

    https://github.com/rubygems/rubygems/commit/9a426b9495

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit b7c87ccd79ce14df3b95f413a527be95ac16ff10
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 13:52:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [rubygems/rubygems] Added fiddle dependency for TestGemExtCargoBuilder

    https://github.com/rubygems/rubygems/commit/a7c6696ffd

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit ea8b0017b25e283c603ab84055b7c7db3a26f560
  Author:     Andrii Konchyn <andry.konchin@gmail.com>
  AuthorDate: 2025-02-25 06:03:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [ruby/strscan] Enable tests passing on TruffleRuby
    (https://github.com/ruby/strscan/pull/144)

    Changes:
    - enabled tests passing on TruffleRuby
    - removed `truffleruby` and keep only `truffleruby-head` in CI

    https://github.com/ruby/strscan/commit/4aadfc8408

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 018943ba0557cb78d429caf4a6d536faa94a95ca
  Author:     NAITOH Jun <naitoh@gmail.com>
  AuthorDate: 2025-02-23 16:52:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [ruby/strscan] Fix a bug that inconsistency of IndexError vs nil for
    unknown capture group
    (https://github.com/ruby/strscan/pull/143)

    Fix https://github.com/ruby/strscan/pull/139

    Reported by Benoit Daloze. Thanks!!!

    https://github.com/ruby/strscan/commit/bc8a0d2623

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 36ab247e4d2fa7fa82142d9f70b340b28da05274
  Author:     NAITOH Jun <naitoh@gmail.com>
  AuthorDate: 2025-02-23 10:21:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-25 15:36:46 +0900

    [ruby/strscan] Fix a bug that scanning methods that don't use Regexp
    don't clear named capture groups
    (https://github.com/ruby/strscan/pull/142)

    Fix https://github.com/ruby/strscan/pull/135

    https://github.com/ruby/strscan/commit/b957443e20

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12804

commit 021ccbf7e8e34a1ae7af2d8411ed6dc4e5e8f980
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-02-25 12:37:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-25 12:38:04 +0900

    [ruby/pp] Ensure the thread local state is always set up.
    (https://github.com/ruby/pp/pull/38)

    https://github.com/ruby/pp/commit/5b5d483ac2

commit d32fa5283f1197f2dfbd1f22d06515035095ecee
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-02-25 12:37:21 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-25 12:37:21 +0900

    Prefer `0.000001` over `0.000001f` for timeout calculations. (#12803)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit 3198b46a36feddabe5bbdcae253e5895e31f182a
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-02-24 18:56:31 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-02-25 10:29:15 +0900

    s/TERMINTOR/TERMINATOR/

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12800

commit 8749a131cee87434b717cad6a0960443ae66d773
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-23 01:38:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-25 09:27:41 +0900

    [DOC] Tweaks for Hash#include?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12797

commit 0615df2a844280b5d0a988e10b2c8d0af7e27b89
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-22 07:04:47 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-25 09:27:31 +0900

    [DOC] Tweaks for Hash#hash

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12793

commit 19f7961e46b2c5817b8eb27510c890d623ac14b3
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-25 09:26:50 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-25 09:26:50 +0900

    [DOC] Tweaks for Hash#flatten

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12792

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit aa7b5e2df4e2acbc571998161ff4542b97b9d735
  Author:     Kunshan Wang <wks1986@gmail.com>
  AuthorDate: 2025-02-21 17:52:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-25 08:30:00 +0900

    [ruby/mmtk] Trigger forced GC in GC.start

    We now use `MMTK::handle_user_collection_request(true, ...)` to force
    triggering a GC instead of enabling GC temporarily.

    https://github.com/ruby/mmtk/commit/02ef47f818

commit 97e6ad49a4604e7e4ca04da2aaafc63cbd5d29d8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-24 22:42:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-25 02:32:46 +0900

    Reuse the backref if it isn't marked as busy.

    [Misc #20652]

commit 87f9c3c65e38fa3e5c6ef097e2cf63ff448f48d6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-24 19:39:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-25 02:32:46 +0900

    String#gsub! Elide MatchData allocation when we know it can't escape

    In gsub is used with a string replacement or a map that doesn't
    have a default proc, we know for sure no code can cause the MatchData
    to escape the `gsub` call.

    In such case, we still have to allocate a new MatchData because we
    don't know what is the lifetime of the backref, but for any subsequent
    match we can re-use the MatchData we allocated ourselves, reducing
    allocations significantly.

    This partially fixes [Misc #20652], except when a block is used,
    and partially reduce the performance impact of
    abc0304cb28cb9dcc3476993bc487884c139fd11 / [Bug #17507]

    ```
    compare-ruby: ruby 3.5.0dev (2025-02-24T09:44:57Z master 5cf146399f) +PRISM [arm64-darwin24]
    built-ruby: ruby 3.5.0dev (2025-02-24T10:58:27Z gsub-elude-match da966636e9) +PRISM [arm64-darwin24]
    warming up....

    |                 |compare-ruby|built-ruby|
    |:----------------|-----------:|---------:|
    |escape           |      3.577k|    3.697k|
    |                 |           -|     1.03x|
    |escape_bin       |      5.869k|    6.743k|
    |                 |           -|     1.15x|
    |escape_utf8      |      3.448k|    3.738k|
    |                 |           -|     1.08x|
    |escape_utf8_bin  |      6.361k|    7.267k|
    |                 |           -|     1.14x|
    ```

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

commit 21ac0a3a640a2a86e8716675f82221f178e29088
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-24 23:20:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-24 23:20:12 +0900

    [Bug #21153] Add missing op-assign to top const in `command_asgn`

    It was defined in `arg` only; moved that pattern to `op_asgn` rule to
    share it with `command_asgn`.

commit c27f433d7c0ddb13501f7e19a0158da3aec1577c
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-02-24 18:10:56 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-24 18:47:58 +0900

    Fix RUBY_PAGER in manpage

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12799

commit 5cf146399f5961513c2ee1697368e4c5a1c492ce
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-02-22 16:19:37 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-02-24 18:44:57 +0900

    Merge NODE_LINE and NODE_ENCODING cases in cond0 function

    NODE_LINE and NODE_ENCODING cases are used SWITCH_BY_COND_TYPE macro that is same to NODE_INTEGER and other cases.
    NODE_LINE and NODE_ENCODING cases can be marge to NODE_INTEGER and other node cases.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12794

commit dfc25204235079e23eadf9e0ba860c1ebcb14325
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-02-23 10:37:36 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-02-23 10:37:36 +0900

    [doc] update Time document.

commit fd882fb6819fb8b48b09e24ff71748d1bae35e43
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 11:12:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:40 +0900

    [ruby/openssl] test_ssl_session.rb: test adjustments to work with AWS-LC

    The SSL SESSION files we were originally testing against use DHE and
    SSLv3. AWS-LC happens to have no support for either and we have newer
    possible alternatives available, so I've updated the respective
    files to use ECDHE-RSA-AES256-SHA with TLS 1.1 and 1.2. I've verified
    that these work as expected with all libcryptos we support.

    There are also a few SSL session discrepencies in AWS-LC when
    compared to OpenSSL.

    1. AWS-LC has no support for internal session caching on the
       client-end.
    2. AWS-LC supports internal session caching on the server, but
       SSL_get1_session does not return a resumable session with TLS 1.3
       in AWS-LC. Users have to use the SSL_CTX_sess_set_new_cb
       (ctx.session_new_cb in Ruby) to retrieve the resumable session
       ticket.
    3. AWS-LC has no current support for external session caching in TLS
       1.3.

    https://github.com/ruby/openssl/commit/ca384b8e2f

commit 7a15ba48b58c57bbfbe77b41d172f37f542dc59d
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 11:09:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:40 +0900

    [ruby/openssl] ssl: account for slight behavioral differences in AWS-LC

    There are a few SSL discrepencies in AWS-LC when compared to OpenSSL.

    1. AWS-LC has slightly different error messages (in all-caps).
    2. AWS-LC has no support for DHE ciphersuites.
    3. There are no concepts of SSL security levels within AWS-LC.
    4. Similar to LibreSSL, there is no support for OPENSSL_CONF.

    https://github.com/ruby/openssl/commit/a60d050342

commit 4ec0e9e25d32f54f0778b3b78acbc1e002bde825
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 11:00:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:40 +0900

    [ruby/openssl] pkey/ec: AWS-LC disallows serialization of explicit curves

    https://github.com/ruby/openssl/commit/65c5a772ea

commit 23465d8446fa32c7a76f0e11c4bf8f1e56e98e9e
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:59:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:39 +0900

    [ruby/openssl] pkey/dh: tweak break tests for AWS-LC

    We reecently tweaked some break tests in test_pkey_dh.rb due to
    different behavior with OpenSSL in FIPS mode.
    AWS-LC does not inherit the same specific behavior, so tests
    have been adjusted accordingly.

    https://github.com/ruby/openssl/commit/3117897dbc

commit 841d9f259dbe70fa35b4634b5c90d2c33e51c3f9
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:52:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:39 +0900

    [ruby/openssl] pkey: EVP_DigestVerify doesn't return -1 in AWS-LC

    EVP_DigestVerify in OpenSSL returns 0 to indicate a signature
    verification failure and can return -1  to indicate other
    failures, such as invalid ASN1 contents. ruby/openssl also
    reflects that by returning false with 0 and raising an error
    with -1.
    EVP_DigestVerify in AWS-LC simply returns 0 for any failure.

    https://github.com/ruby/openssl/commit/be8ba76dc1

commit f63a123606286eadd812313a4ea42af8ea8c686f
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:45:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:38 +0900

    [ruby/openssl] pkey: AWS-LC disallows parsing of invalid keys and params

    OpenSSL allows invalid EC keys or DH params to be parsed. The consuming
    application can then run parameter/key checks to check the validity of
    the parameters. We happen to run tests to verify that this behaves as
    expected.
    AWS-LC on the other hand, directly raises an error and disallows the
    invalid state to be parsed, rather than making it parsable and checking
    the validity later. Relevant tests have been adjusted accordingly to
    reflect this.

    https://github.com/ruby/openssl/commit/febe50be1b

commit 6263d0d16bbe18fa210d2d67816dbd14272e109e
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:38:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:38 +0900

    [ruby/openssl] test_pkcs7.rb: skip AWS-LC's unsupported features

    1. AWS-LC has no support for SMIME with PKCS7. That may change in the
       near future, so I've marked that with "pend" for now.
    2. AWS-LC doesn't support printing of PKCS7 contents with
       PKCS7_print_ctx.
    3. OpenSSL traditionally used indefinite-length encoding with
       ASN1_TFLG_NDEF in its implementation for PKCS7 EncryptedContent.
       AWS-LC uses explicit OCTET STRING headers to encode instead,
       which leads to a slight difference in serialized ASN1 contents
       from the two libraries.

    https://github.com/ruby/openssl/commit/78c585a9c2

commit b995eee81183c793c36ad87715e23d2e96bd8f5f
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:37:17 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:38 +0900

    [ruby/openssl] asn1: adjusting an ASN1 test to use CONTEXT_SPECIFIC

    AWS-LC's ASN1 parsing capabilities led to us examine some of our
    ASN1 tests. One test in test_asn1.rb happens to use a tag number
    of 8224. There are concerns with larger UNIVERSAL tags being
    ambiguous with negative ASN1 Integers, so I've adjusted the test
    to use CONTEXT_SPECIFIC instead with the same tag number (8224).

    https://github.com/ruby/openssl/commit/c73d9985ab

commit c4a39d6ebccdc5cf6a04fc7238e40a8a45749b86
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:31:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:37 +0900

    [ruby/openssl] test_config.rb: skip AWS-LC's unsupported features

    AWS-LC has a few minor functionalities removed from NCONF_get_string.

    1. Expanding of $foo to a previously-parsed value was removed.
    2. OpenSSL falls back to using "default" with an unknown "section".
       AWS-LC does not support this behavior.
    3. AWS-LC does not support parsing environment variables with "ENV"
       like LibreSSL.

    https://github.com/ruby/openssl/commit/e8de3bbd1e

commit ee5af8860f15485745a8e37c19f28704e94be7bd
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:13:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:37 +0900

    [ruby/openssl] test_bn.rb: AWS-LC does not support BN::CONSTTIME

    AWS-LC does not support BN_FLG_CONSTTIME due to its historically
    inconsistent constant-time guarantees.

    https://github.com/ruby/openssl/commit/9875a01b5f

commit f14995e2123e57e5412f1ac573445c2ba550ee2a
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 10:02:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:37 +0900

    [ruby/openssl] test_pkcs12.rb: don't use KEY_EX/SIG with AWS-LC

    AWS-LC does not support the KEY_SIG or KEY_EX flags that were only ever
    supported by old MSIE.

    https://github.com/ruby/openssl/commit/d50528b4e2

commit 6f3bd3769b0e962fc029fcaf8fbf10f06600693d
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-02-12 09:45:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-23 00:11:36 +0900

    [ruby/openssl] test_fips.rb: account for AWS-LC's FIPS mode

    AWS-LC's FIPS mode is decided at compile time. FIPS in AWS-LC can't be
    toggled on and off like OpenSSL, so tests that attempt to do so are
    incompatible.

    https://github.com/ruby/openssl/commit/027de6732d

commit d6f44535c6482e895483c0c28c9a35bcf5e4fd88
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-22 19:14:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-22 19:14:33 +0900

    [DOC] Fix a typo

commit b17f984e4e903d3ece3013c1488279d1947dfc39
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-02-22 10:29:37 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-02-22 10:29:37 +0900

    [doc] Time class document updated.

commit 4963d393ca1b05dafaf97b7adc15075808ab464e
  Author:     Tanaka Akira <akr@fsij.org>
  AuthorDate: 2025-02-22 10:09:32 +0900
  Commit:     Tanaka Akira <akr@fsij.org>
  CommitDate: 2025-02-22 10:09:32 +0900

    Add description for Socket::Ifaddr#flags.

commit 412997300569c1853c09813e4924b6df3d7e8669
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-21 23:25:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-22 01:53:51 +0900

    [DOC] Tweaks for Hash#fetch_values

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12791

commit 7ef9110b1eaefbcbf72f25ad941c2c3b7ed3db01
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-21 19:40:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-21 21:06:19 +0900

    [ruby/stringio] Fix SEGV at unget to a null device StringIO

    https://github.com/ruby/stringio/commit/eb4ee49218

commit fa6b9f75efa8411829aa987b81b9c5ca0e081462
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-21 19:39:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-21 21:06:19 +0900

    [ruby/stringio] Suppress a warning for the chilled string

    https://github.com/ruby/stringio/commit/4a35291ed3

commit a1bdc364439744b72f5b7a0414ed9395a5f689dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-21 19:06:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-21 19:06:27 +0900

    Use an exclusive range for `ruby_version_is`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12790

commit 1bc57b5e0e3cd15e8702c8856a276e98b6e46ba8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-21 17:53:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-21 17:53:16 +0900

    [Bug #21150] macOS: Temporary workaround at unwinding coroutine

    On arm64 macOS, libunwind (both of system library and homebrew
    llvm-18) seems not to handle our coroutine switching code.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12789

commit d97884a58be32e829fd03a80cd521f4733d65c79
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 15:19:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-21 15:20:13 +0900

    [ruby/cgi] Use license files same as ruby/ruby

    https://github.com/ruby/cgi/commit/defbdf9a30

commit f8750dd87f91482283838090a801a313aa1f215c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 11:36:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:36:19 +0900

    Bump up development version of stringio

commit ee2c7bcae5d8c96f41305e1a24739493121ef49b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2022-09-09 18:18:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:31:49 +0900

    [rubygems/rubygems] Allow noop `bundle install` to work on read-only or protected folders

    As long as there's nothing new to install and gems are already there.

    If not, give a meaningful error about what happened.

    This was how things already worked until
    https://github.com/rubygems/rubygems/commit/345ec45f5a87, so this commit partially
    reverts that change.

    https://github.com/rubygems/rubygems/commit/794b0ecb39

commit ca46a159911e100ced3d4c96a4ee8291b8e0954e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-20 15:54:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:31:47 +0900

    [rubygems/rubygems] bin/rubocop -a --only Style/RedundantParentheses

    https://github.com/rubygems/rubygems/commit/24d4281d86

commit 425cfcff8579bfef64264ba2f644b717c5248b80
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-20 15:54:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:31:47 +0900

    [rubygems/rubygems] bin/rubocop -a --only Style/MultipleComparison

    https://github.com/rubygems/rubygems/commit/677e17aa2e

commit cdbadafd25a5fc9af00d9495236396beaf329619
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-19 03:01:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:31:44 +0900

    [rubygems/rubygems] Fix resolver issue due to ill-defined version ranges being created

    https://github.com/rubygems/rubygems/commit/f2f2ac9680

commit bf6c106d5467b51efb88fe6252093a59dbeeddee
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-20 18:25:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-21 11:31:36 +0900

    [ruby/strscan] `scan_integer(base: 16)` ignore x suffix if not
    followed by hexadecimal
    (https://github.com/ruby/strscan/pull/141)

    Fix: https://github.com/ruby/strscan/issues/140

    `0x<EOF>`, `0xZZZ` should be parsed as `0` instead of not matching at
    all.

    https://github.com/ruby/strscan/commit/c4e4795ed2

commit 7d7984642ce11c48c5f0bc1627f50ff097b9e7f5
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-02-21 09:37:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-21 09:37:40 +0900

    [ruby/stringio] Allow seek when underlying string is frozen
    (https://github.com/ruby/stringio/pull/121)

    Fixes https://github.com/ruby/stringio/pull/119. Adds a test for this expectation.

    https://github.com/ruby/stringio/commit/3f90fe44c6

commit 0f1cb9234574d3d39c85b5b98a306306e20f068b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-21 03:58:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-21 04:35:38 +0900

    [ruby/mmtk] Fix compatibility for Rust 1.85

    https://github.com/ruby/mmtk/commit/9da566e26a

commit b2cf48f4067c22a79e6ceb30247d611e5a310a19
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-21 03:14:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-21 03:14:37 +0900

    chmod -x tool/ruby_vm/models/bare_instructions.rb

    We run only tool/insns2vm.rb as the executable. It seems confusing to
    have an executable flag on this file.

commit 34098b669c0cbc024cd08e686891f1dfe0a10aaf
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-20 15:34:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-20 15:34:32 +0900

    [Bug #21144] Win32: Convert the time zone name to the current locale

    The Windows time zone IDs provided by Microsoft as of 24H1 are ASCII
    only all, but the API itself is not impossible to set non-ASCII key
    name.  Prefer the current locale encoding for now until we move to
    UTF-8 including environment variables and command line arguments.

commit 556be73cbbf3845c448ca4f546411be18d523f33
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-19 16:39:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-20 12:58:45 +0900

    [rubygems/rubygems] gem server command is extracted from rubygems core feature now

    https://github.com/rubygems/rubygems/commit/b29f8d6a37

commit 63600d79dc265893b17c2e3a549898d16fa6e64d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-15 00:33:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-20 12:58:44 +0900

    [rubygems/rubygems] Fix lockfile platforms inconveniently added on JRuby

    When working with our repository on JRuby locally, I get the following
    changes when running `bin/rake setup` in all of our lockfiles

    ```diff
    diff --git a/tool/bundler/dev_gems.rb.lock b/tool/bundler/dev_gems.rb.lock
    index https://github.com/rubygems/rubygems/commit/362bf25690d..https://github.com/rubygems/rubygems/commit/74550b2a408 100644
    --- a/tool/bundler/dev_gems.rb.lock
    +++ b/tool/bundler/dev_gems.rb.lock
    @@ -66,6 +66,7 @@ PLATFORMS
       java
       ruby
       universal-java
    +  universal-java-22
       x64-mingw-ucrt
       x86-linux
       x86_64-darwin
    ```

    This is inconvenient, so I applied the same strategy we already use on
    non JRuby implementations to not add the current platform to the
    lockfile if a less specific platform is already there.

    https://github.com/rubygems/rubygems/commit/812b9cd1e8

commit 7605d680625896d728a4e493ae0ff2963967dccd
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-02-20 09:32:22 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-02-20 10:20:06 +0900

    Revert "refactor: make get_local_variable_ptr accept "rb_env_t *""

    This reverts commit 6d75599a1aade9f8081d0691a9da1e62a5428e95.

    Updating env was actually needed in local_variable_set.
    Alan Wu pointed this out to me.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12783

commit a27758ad4e6a24110f11f16cf62464981dc041a2
  Author:     Aaron Patterson <119901895+tenderworks@users.noreply.github.com>
  AuthorDate: 2025-02-20 09:18:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-20 09:18:08 +0900

    [ruby/stringio] Make sure shared buffer is copied on mutation
    (https://github.com/ruby/stringio/pull/117)

    We need to ensure shared buffers are made independent on mutation.
    Otherwise we could end up mutating unrelated string buffers.

    ---------

    https://github.com/ruby/stringio/commit/5101cfb030

    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
    Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
    Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com>
    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

commit c515da3d74779bd725f5bc60d6514d325515df0e
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-19 03:15:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-20 02:08:16 +0900

    [ruby/openssl] ssl: remove cert_store from start_server test helper

    OpenSSL::SSL::SSLContext#cert_store= uses SSL_CTX_set_cert_store(). The
    store is used for verifying peer certificates and for building
    certificate chains to be sent to the peer if there is no chain
    explicitly provided by SSLContext#extra_chain_cert=.

    Do not specify it in the common test helper start_server, as most
    callers do not require either function. Instead, update individual test
    cases that use client certificates to explicitly specify it in ctx_proc.
    A more direct test case is added to verify the latter function.

    https://github.com/ruby/openssl/commit/9daecee615

commit 49e229b3fca15f85889f66a4cc56c55d3bd44b43
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 23:56:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:56:17 +0900

    Fix value of RB_GC_OBJECT_METADATA_ENTRY_COUNT

    There are 7 entries in RB_GC_OBJECT_METADATA_ENTRY_COUNT.

commit ff6b1a03abc034eee88327958a6ce8911fbdfe0d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 04:02:49 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:47:28 +0900

    Skip TestObjSpace#test_dump_flag_age for MMTk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12777

commit 5e45f2a0bce9a94b1b5f9eda615344e74a39e597
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 03:45:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:47:28 +0900

    Add age to rb_gc_object_metadata

    This will allow ObjectSpace.dump to output the age of the object.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12777

commit 5acfe30880294cd4129c811f1d6d814ef1d62e70
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 03:21:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:47:28 +0900

    Implement rb_gc_object_metadata for MMTk

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12777

commit 7b6e07ea93cfc42bfb8bdf875555d2c8c7d5e507
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 02:58:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:47:28 +0900

    Add rb_gc_object_metadata API

    This function replaces the internal rb_obj_gc_flags API. rb_gc_object_metadata
    returns an array of name and value pairs, with the last element having
    0 for the name.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12777

commit 273e35cdcc04c6c68066a963157896472a2d1eb3
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-19 06:10:28 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:46:52 +0900

    [DOC] Tweaks for Hash#fetch

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12780

commit a46997a8f70c3f4640c07c719de82b8d612354cf
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-19 05:50:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 23:46:04 +0900

    [DOC] Tweaks for Hash#except

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12779

commit 188b3375b0668c71fa46eba8e0fc7628867c148e
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-19 23:45:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-19 23:45:27 +0900

    [DOC] Tweaks for Hash#eql?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12778

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 3f07bc76ff6a11232d9f18e5eaa31835c195e8f0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-17 21:46:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-02-19 18:27:32 +0900

    [Bug #21144] Win32: Use Windows time zone ID if TZ is not set

    If the TZ environment variable is not set, the time zone names
    retrieved from the system are localized for UI display and may vary
    across editions and language packs for the same time zone.
    Use the time zone IDs that are invariant across environments instead.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12765

commit bd84c75a013042f4feefa4616ab119394b3bbf24
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-02-18 19:30:17 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-02-19 13:54:51 +0900

    [wasm] Update WASI SDK to 25

    to include WASI Preview 2 related changes added in the SDK.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12772

commit eac35edfd1101e8f7c34dbdd7b595fdac8f0ad4c
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-02-19 01:06:36 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2025-02-19 11:46:12 +0900

    [wasm] Stop using mprotect(PROT_NONE) on WASI

    we had been using a stub weak definition of `mprotect` in wasm/missing.c
    so far, but wasi-sdk 23 added mprotect emulation to wasi-libc[^1], so the
    emulation is now linked instead. However, the emulation doesn't support
    PROT_NONE and fails with ENOSYS, so we need to avoid calling mprotect
    completely on WASI.

    [^1]: https://github.com/WebAssembly/wasi-libc/commit/7528b13170462c82e367d91ae0ecead84e470ceb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12776

commit 4f7dfbe58ee2915b0724251c6464c9b4e0c34245
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-19 03:34:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-19 11:04:09 +0900

    [rubygems/rubygems] Remove no longer necessary JRuby specific test ENV

    It does not seem noisy anymore.

    https://github.com/rubygems/rubygems/commit/060c5e960a

commit 5d8fe7a595567803b822c1455f6dfba2f8ffa8d5
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-18 21:13:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-19 11:04:09 +0900

    [rubygems/rubygems] Make sure empty gems are not reinstalled every time

    Unfortunately this requires reverting a previous enhancement of
    reinstalling gems if they incorrectly ship with an empty installation
    dir.

    However, there's no way to distinguish this kind of bad state from a gem
    that's empty for real, for example, sorbet-static-and-runtime.

    This reverts commit https://github.com/rubygems/rubygems/commit/9720a9b980d2, and adds a
    spec to make sure empty gems are not reinstalled every time.

    https://github.com/rubygems/rubygems/commit/7c102394af

commit da976629963104ae6315cbe4f182c749503a58ee
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-18 21:50:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-19 11:04:09 +0900

    [rubygems/rubygems] Don't add gemspec to specification list of our test gems

    Real gems hardly ever do this, so don't do it ourselves for testing
    either.

    https://github.com/rubygems/rubygems/commit/2c8960cfb4

commit 68f0150ff0402746e0fee21a287aabf7d7900523
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-02-15 07:58:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-19 11:04:09 +0900

    [ruby/json] Pass through all options if present.

    https://github.com/ruby/json/commit/bea96e0a69

commit f423f6e10c0c226dfed98e7cb7a5d489191dfa35
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-02-18 10:23:14 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-02-19 10:18:16 +0900

    Ensure IO.copy_stream buffer is an independent string

    Otherwise, changes to the buffer by the destination write method
    could result in data changing for supposedly independent strings.

    Fixes [Bug #21131]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12771

commit 6e510d78c02d78d335f09f5175c73c4794fe0378
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-19 08:48:33 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-19 08:48:33 +0900

    Launchable: Remove unused file names (#12782)

    I found file names that were not used anymore. I'm gonna delete them in this PR.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 0597cbcb1d895028e954db9711681e987c56729d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-19 06:26:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 07:09:28 +0900

    Fix crash for special constants in too complex generic ivars

    We should skip reference updating for entries in too complex generic ivars
    that are special constants. This fixes the following crash:

        MAX_SHAPES = 0x80000

        MAX_SHAPES.times do |i|
          o = []
          o.instance_variable_set(:"@foo#{i}", 1)
        end

        o = []

        o.instance_variable_set(:"@a", 123)

        GC.compact

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12781

commit 27ba268b75bbe461460b31426e377b42d4935f70
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-19 05:29:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-19 05:29:27 +0900

    [DOC] Tweaks for Hash#empty?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12775

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit fd134cf6d2af656f94a6bb1a2a251f66b5ad1bf8
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-19 00:10:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 05:02:05 +0900

    [DOC] Tweaks for Hash#each_value

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12774

commit eafcdc153560fd391dabd60705cb88e3f72d7b47
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-18 23:51:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-19 00:04:58 +0900

    [DOC] Tweaks for Hash#each_key

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12773

commit e9ba334fd1655c09ad30030773f43e3b710a4a91
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-02-18 21:09:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-18 21:09:06 +0900

    Tweak: Add prefix to non-static function names (#12764)

    to avoid conflicts with other functions.
    This was pointed out in https://github.com/ruby/ruby/pull/11653#discussion_r1837356617 , but it was not fixed at that time.

  Notes:
    Merged-By: shioimm <shioi.mm@gmail.com>

commit cfca348436e0a9da2bb2d4402a4003601501ef0e
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-02-18 17:49:29 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-02-18 17:49:29 +0900

    Add the behavior change of Binding#local_variable* to NEWS.md

commit 3a0d00ddfbcf564765a27570df113f6dfdbfe484
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-02-14 10:50:34 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-02-18 16:23:24 +0900

    Add a test for Binding#local_variable* with numbered parameters and `it`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12746

commit 993fd96ce6bb763e08207bb3d53824d5d46d07a4
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-01-20 17:41:08 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-02-18 16:23:24 +0900

    reject numbered parameters from Binding#local_variables

    Also, Binding#local_variable_get and #local_variable_set rejects an
    access to numbered parameters.

    [Bug #20965] [Bug #21049]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12746

commit 6d75599a1aade9f8081d0691a9da1e62a5428e95
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-01-20 17:35:12 +0900
  Commit:     Yusuke Endoh <mame@ruby-lang.org>
  CommitDate: 2025-02-18 16:23:24 +0900

    refactor: make get_local_variable_ptr accept "rb_env_t *"

    ... instead of "rb_env_t **" because no one uses the updated env.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12746

commit 39960cd748e969dd2bc711a7913fe4c0b00e7fd4
  Author:     Martin Emde <me@martinemde.com>
  AuthorDate: 2025-02-18 02:57:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:55 +0900

    [rubygems/rubygems] Reduce confusion about domains used for testing

    Sometimes security reports believe they have found a vulnerability
    because they find a domain we don't own being used in the rubygems
    repository. Though there is nothing vulnerable about using 'fake'
    domains in tests when they are never hit, it nonetheless reduces
    confusion for everyone if we constrain our test domains to domains
    we actually own and control.

    https://github.com/rubygems/rubygems/commit/e77ebbe2fc

commit 507de2226bcc75b1d0d8c1736cdbe62e46a97916
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-14 03:08:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:54 +0900

    [rubygems/rubygems] Fix Bundler incorrectly downgrading direct dependencies

    There's no reason to call `converge_specs` when adding additional
    lower bound requirements to prevent downgrades, and it actually causes
    the extra requirements to be missed sometimes.

    Loop over the originally locked specs directly, adding the additional
    precaution of not adding the requirement if the Gemfile dependency has
    changed and it no longer matches the locked spec.

    https://github.com/rubygems/rubygems/commit/5154506912

commit 203a570f68b43ce591c5ef1784112725fa0692cd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-14 03:07:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:53 +0900

    [rubygems/rubygems] Add additional assertions to spec

    To make it consistent with the spec above it.

    https://github.com/rubygems/rubygems/commit/9a00bf8db9

commit c5cdabc14a28087eda121ee9735ce457bdcd8ab3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-14 03:06:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:52 +0900

    [rubygems/rubygems] Don't try to skip requirements to prevent downgrades

    These don't really hurt, so I'm not sure why I introduced it.

    https://github.com/rubygems/rubygems/commit/85b6b405ac

commit c77354157f7a0af8de5f16dc1b4f352f4bc1402f
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-12 23:45:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:51 +0900

    [rubygems/rubygems] Fix locked gems being upgraded when locked dependencies are incorrect

    Resolver had internal logic to prioritize locked versions when sorting
    versions, however part of it was not being actually hit because of how
    unlocking worked in the resolver: a package was allow to be unlocked
    when that was explicit requested or when the list of unlocks was empty.
    That did not make a lot of sense and other cases were working because
    the explicit list of unlocks was getting "artificially filled".

    Now we consider a package unlocked when explicitly requested (`bundle
    update <package>`), or when everything is being unlocked (`bundle
    install` with no lockfile or `bundle update`).

    This makes things simpler and gets the edge case added as a test case
    working as expected.

    https://github.com/rubygems/rubygems/commit/b8e55087f0

commit 249881690a70c907a7e4aaa8c4f9476858c21ce3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-12 23:44:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:50 +0900

    [rubygems/rubygems] Add intermediate assertion to spec to help debugging

    https://github.com/rubygems/rubygems/commit/ffabab65f2

commit 592eb02d6cfda4174eb9dcc191b7e44ba42a5fe4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 01:17:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:49 +0900

    [rubygems/rubygems] Refactor finding dependency changes

    https://github.com/rubygems/rubygems/commit/d8c4754d8f

commit 63657565eb1e1c8df2e8e1bdc1a256f5fcfc0209
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-10 23:57:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:48 +0900

    [rubygems/rubygems] Extract a `TheBundle#locked_specs` test helper

    https://github.com/rubygems/rubygems/commit/8cbe6573b4

commit 533e894cb524d7d319ae6977fbf2f582a3c3af70
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-10 22:19:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-18 12:12:48 +0900

    [rubygems/rubygems] Improve processing and categorizing unlock information

    https://github.com/rubygems/rubygems/commit/516430c3ec

commit 36f69d5b69711ec3cc27e885a3be2da3e555484c
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-18 03:18:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-18 09:09:33 +0900

    [DOC] Tweaks for Hash#dig

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12768

commit 266088a85a60f23187b74ad0cea7e125a6b783f6
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-18 04:18:08 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-18 09:08:14 +0900

    [DOC] Tweaks for Hash#each_pair

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12769

commit 047a05ea43cc9a621b239fbf16480954398772b6
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-18 02:27:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-18 09:06:22 +0900

    [DOC] Tweaks for Hash#delete_if

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12766

commit 2db365dc83b3bc5e5bc15d93b5cd44b048188361
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-18 02:57:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-18 03:12:03 +0900

    [ruby/prism] Fix escape unicode curly inline whitespace

    Fixes [Bug #21145]

    https://github.com/ruby/prism/commit/be2d845639

commit 8324e3148a7737e1adbe8667d6918a141573693f
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-18 01:10:48 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-18 01:10:48 +0900

    [DOC] Tweaks for Hash#compact! (#12756)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 657bd31cc74578dfa6002193cf9b98b2b7861a65
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-16 18:54:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-17 18:27:24 +0900

    Trivial optimization

    - Not call `strlen` at the end of the zone name.
    - Use the initialized UTC string.

commit de490a132c358c184939a7e733106ae9b4446787
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-17 16:52:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-17 18:08:37 +0900

    Enabled test_gmp_version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12763

commit 13c64a8a20592992c2f62b84a4b3c42e2da5de0c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-17 16:27:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-17 18:08:37 +0900

    Pass XINCFLAGS for gmp build with Windows platform

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12763

commit fa5663ea247b83ad497373dc5215abb7bdeb47dd
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-17 14:15:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-17 18:08:37 +0900

    Revert "Temporary removed gmp because vcpkg package is broken."

    This reverts commit b56b70a373753fd5c6d1b6df911342c8d0138695.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12763

commit 929e8131f12efad067ded25dca93d2e267df86f2
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-02-17 16:00:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-17 16:00:27 +0900

    Update bundled gems list as of 2025-02-16

commit 7032e2d6bc8ff3a046ff17e7a676a1ab8e4070f2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-17 13:19:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-17 13:19:08 +0900

    Check programs for CC in the same path

    When the path of `CC` contains the target program name, e.g., clang,
    the replaced program names were unexpected.  Replace basename part
    only.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12762

commit c1c7934b63d7682216fed9dd7c9ddff5b72fea89
  Author:     Collin Funk <collin.funk1@gmail.com>
  AuthorDate: 2025-02-12 14:07:40 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-02-17 13:05:18 +0900

    [Bug #21128] Include fcntl.h before checking for O_CLOEXEC

    On glibc O_CLOEXEC is defined in fcntl.h and not unistd.h so this change
    prevents the macro from being redefined.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12735

commit c8f4df4ae93cec8825c919bfebaa5f1f744ba09c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-10 23:41:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-17 11:04:39 +0900

    [rubygems/rubygems] Make Bundler never instantiate development dependencies

    Bundler does not really have a concept of "development dependencies",
    like RubyGems has. Bundler has the more generic concept of "groups".

    Under the hood, the `gemspec` DSL will put gemspec development
    dependencies under a `:development` Gemfile group, but there's no reason
    to instantiate these as development dependencies, they are regular
    runtime dependencies, except that they belong in a group named
    :development.

    By never instantiating development dependencies at all, we avoid having
    to introduce hacks to "undo" the type Bundler does not know about, and I
    also think the error messages read better.

    https://github.com/rubygems/rubygems/commit/9a06fa5bda

commit eee9bd1aa44052af1a283051c7f767248ea9d54b
  Author:     NAITOH Jun <naitoh@gmail.com>
  AuthorDate: 2025-02-16 10:48:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-17 11:04:32 +0900

    [ruby/strscan] Fix a bug that scan_until behaves differently with
    Regexp and String patterns
    (https://github.com/ruby/strscan/pull/138)

    Fix https://github.com/ruby/strscan/pull/131

    https://github.com/ruby/strscan/commit/e1cec2e726

commit 6b3a97d74b3b6febb7e70ae5359831c712ae57fa
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-02-17 06:06:56 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-02-17 06:37:36 +0900

    Remove undefined function from bindgen

    `rb_get_iseq_body_total_calls` was removed in cd8d20cd1fbcf9bf9d438b306beb65b2417fcc04, but it's still in the YJIT bindgen file.  This commit just removes it from bindgen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12760

commit 2b69949407a4872e317dbc50dd1d3a6b1c72752a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-17 02:35:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-17 03:01:17 +0900

    [DOC] Tweaks for Hash#delete

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12758

commit 0a10c9bed6f20e63a7cc19e9e4778f9a996aaf1a
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-17 02:13:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-17 02:59:14 +0900

    [DOC] Tweaks for Hash#compare_by_identity

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12757

commit a94f00f7c1e3f4037f50b5aaa001b3717ffca325
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-16 01:32:58 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-17 02:57:23 +0900

    [DOC] Add Related notes to a few methods

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12754

commit e3ad6524906231d6bd72b5f568651ab142c68764
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-02-16 01:46:46 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-17 02:56:48 +0900

    [DOC] Tweaks for Hash#compact

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12755

commit 23c4ac9559a05d7be4534d8e552d8dc95e272867
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-02-08 12:44:14 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-02-15 15:37:09 +0900

    Remove rb_enc_associate for Parser

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12715

commit 2556a975c7bcf9eead469a655e5d42aef06116c9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-15 07:21:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-15 07:21:35 +0900

    Fixed syntax error for OpenSSL version detection

commit ba148e71e590d057d930681ae9c93450b9cfef96
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-15 06:16:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-15 06:16:53 +0900

    [DOC] Tweaks for Hash#[]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12694

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 9be6e4207be5cce986ebb322f57c49000a097f7e
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-15 05:55:10 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-15 05:55:10 +0900

    [DOC] Tweaks for Hash#[]= (#12695)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 8cafa5b8ce5e35881bf5077d2bfafc03274189f2
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-02-14 02:56:21 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-02-15 04:39:35 +0900

    Only count VM instructions in YJIT stats builds

    The instruction counter is slowing multi-Ractor applications.  I had
    changed it to use a thread local, but using a thread local is slowing
    single threaded applications.  This commit only enables the instruction
    counter in YJIT stats builds until we can figure out a way to gather the
    information with lower overhead.

    Co-authored-by: Randy Stauner <randy.stauner@shopify.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12670

commit c1ce3d719dab2761fbca37f9336a33b47af187ed
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 03:40:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 03:40:10 +0900

    Streamline YJIT checks on jit_compile()

commit deb010ae248879b1c577366f5349b6094536bf4e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-15 02:32:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-15 02:32:58 +0900

    [ruby/prism] Fix up locals test with it parameters

    https://github.com/ruby/prism/commit/599a96dbfc

commit ee181d1bb74ef82d6507c411a6aff10d1bf37aa3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-15 00:10:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-15 01:49:52 +0900

    [ruby/prism] Fix up it indirect writes

    Fixes [Bug #21137]

    https://github.com/ruby/prism/commit/ca493e6797

commit 0cab608d3a7791c229eea2ebe276494f063c8176
  Author:     Masataka Pocke Kuwabara <kuwabara@pocke.me>
  AuthorDate: 2025-02-14 16:31:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-14 16:31:58 +0900

    [Bug #21127] Thread deadlock does not display backtraces (#12721)

    Previously, Ruby displayed backtraces for each thread on deadlock. However, it has not been shown since Ruby 3.0.
    It should display the backtrace for debugging.

    Co-authored-by: Jeremy Evans <code@jeremyevans.net>

  Notes:
    Merged-By: pocke <p.ck.t22@gmail.com>

commit b4ed6db096b5876b547646307aa41e008fdca8ea
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-14 16:16:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:16:55 +0900

    Removed trailing spaces

commit a55a2fc6e8215b08b6a6ed72f0ed2cd83cd8f6e1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-01 04:14:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Reset existing specs when using `Bundler::SpecSet#[]=`

    We have a flaky failure where to equal Bundler specs sneak into the same
    SpecSet. This seems like a vector where that could happen so trying this
    in case it fixes the flaky.

    https://github.com/rubygems/rubygems/commit/a33aeb3c4d

commit a64c697b22f5ebb01d0a87fc5b24ae7a78398247
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-01 03:25:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Refactor SpecSet to not need reset

    https://github.com/rubygems/rubygems/commit/55af558124

commit 061d8133ce7f23894abdd62e06797a3a1e9988f9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-01 03:13:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Simplify hacks to integrate with RubyGems

    https://github.com/rubygems/rubygems/commit/33d91de732

commit c94cec27f7bd7000e9944c2037bf4a4c255c0861
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 17:27:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Simplify SpecSet#sorted

    https://github.com/rubygems/rubygems/commit/a3f365bbaa

commit e59c90118e893fae3f37ca629291f37e26de48f4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 22:03:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Raise error when lockfile is missing deps in frozen mode

    And avoid installing any gems.

    https://github.com/rubygems/rubygems/commit/c12700c7e4

commit e11401f799aa9343362a37157de6fbfc1836674d
  Author:     johnnyshields <27655+johnnyshields@users.noreply.github.com>
  AuthorDate: 2025-01-28 23:01:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Deprecate legacy windows platforms (mswin, mingw) in the Bundler DSL, in favor of using `platform :windows`

    This commit is only deprecation and does not change/remove any actual functionality.

    https://github.com/rubygems/rubygems/commit/0ca6dc3984

commit 91a17fbbadff3b811cd25a056b4f592810bc4ad2
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 04:19:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Use preferred `:windows` value for Windows exclusively

    https://github.com/rubygems/rubygems/commit/aee52d2874

    Co-authored-by: johnnyshields <27655+johnnyshields@users.noreply.github.com>

commit ccbebe9979b53352a0a11f0f5dd00ec3abab3b5a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 17:48:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Let `:bundler` filter raise if not given major versions

    Otherwise it doesn't work as expected and it may skip specs.

    https://github.com/rubygems/rubygems/commit/d6af077174

commit a3c05f27c30c04c6ebf69a63b31c0fa5e1520ecd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 17:50:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:27 +0900

    [rubygems/rubygems] Remove spec filters

    These should always run.

    https://github.com/rubygems/rubygems/commit/0818eb104f

commit 181cab566c428b0dae55033c0b15cfd072e9a5a5
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 17:49:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:26 +0900

    [rubygems/rubygems] Fix legacy windows platform values no longer working

    https://github.com/rubygems/rubygems/commit/de8b3016db

commit 51004c36417df4cb2708e8c2802d2deeada8a3c2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-13 16:42:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:26 +0900

    [ruby/strscan] Fix a bug that scan_integer doesn't update matched
    data
    (https://github.com/ruby/strscan/pull/133)

    Fix https://github.com/ruby/strscan/pull/130

    Reported by Andrii Konchyn. Thanks!!!

    https://github.com/ruby/strscan/commit/4e5f17f87a

commit c1f024f99d4f24dde4ca3c1f35825eba19c413f6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-30 17:34:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-14 16:13:26 +0900

    [ruby/psych] Avoid calls to `require` in hotspots

    Followup: https://github.com/ruby/psych/pull/686

    This single call shows up as 4% of some controller actions
    in the lobsters benchmark.

    Profile: https://share.firefox.dev/3EqKnhS

    https://github.com/ruby/psych/commit/b77bfee092

commit 599fdb9641afe4a68dc527a2b0be84caa61b3955
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-02-14 15:59:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-14 15:59:41 +0900

    Update bundled gems list as of 2025-02-13

commit 41251fdd309d4ff8f699268e33c32a114257211e
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-02-14 06:28:10 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-02-14 07:27:28 +0900

    YJIT: Fix linker warnings on macOS for Cargo (development) builds

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12743

commit e0cb069c0684bb8baf505a9d7a281d0ff8e1bf82
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-14 04:02:31 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-14 06:11:37 +0900

    Remove dead rb_st_nth_key

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12742

commit 31162bf4261b2e740f6e26f2c2f22c36d3556cf0
  Author:     HASUMI Hitoshi <hasumikin@gmail.com>
  AuthorDate: 2025-02-01 14:49:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-14 05:12:43 +0900

    [ruby/prism] Handle zero-sized allocation in pm_constant_id_list_init_capacity

    According to the calloc(3) man page, when nmemb or size is 0, `calloc()` can either return NULL or a unique pointer that can be passed to `free()`.
    While gcc and clang typically return a unique pointer, mruby's `mrb_calloc()` returns NULL in this case.

    Since `pm_constant_pool_init()` is commonly called with capacity=0 during normal operation of Prism, explicitly handle this case by setting `list->ids` to NULL when capacity is 0.
    This approach is portable across different calloc implementations and avoids potential issues with mruby's allocation behavior.

    This maintains compatibility with `free()` and `realloc()`, as passing NULL pointers to these functions is explicitly allowed by their specifications.

    https://github.com/ruby/prism/commit/1c32252df7

commit 127325a4bad409ee5da91084fac768934a8fd9e3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-14 04:17:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-14 05:04:02 +0900

    [ruby/prism] No writing to numbered parameters

    Fixes [Bug #21117]

    https://github.com/ruby/prism/commit/19d4bab5a0

commit b21e1aed2ed5b22b50efc658289a403eeed581df
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-14 03:58:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-14 04:12:10 +0900

    [ruby/prism] Fix infinite loop in error recovery

    When recovering from a depth error that occurs at the end of the
    file, we need to break out of parsing statements.

    Fixes [Bug #21114]

    https://github.com/ruby/prism/commit/a32e268787

commit 2b92172894e755362a7a0b74ef3b6a5543a89017
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 17:51:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-14 02:49:48 +0900

    [ruby/prism] Split assertion per expressions

    Expressions joined with `&&` are better asserted separately, so that
    it is clear from the failure message which expression is false.

    Also, `unsigned long` may not be enough for `ptrdiff_t`, e.g., Windows.
    Saying that `ptrdiff_t` can be larger than `SIZE_MAX` means that
    `PTRDIFF_MAX` is larger than `SIZE_MAX` and `ptrdiff_t` is sufficient
    to represent `SIZE_MAX`, otherwise if `PTRDIFF_MAX` is smaller than
    `SIZE_MAX`, `diff` will always be smaller than `SIZE_MAX` as well.
    `diff` could be equal to `SIZE_MAX` only if `PTRDIFF_MAX` is equal to
    `SIZE_MAX` and these assertions would pass, but I don't think there is
    any platform where that is the case.

    https://github.com/ruby/prism/commit/1fc6dfcada

commit 9826047f01230780c0e64072fa03a7a4aecba63c
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-13 19:08:38 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-13 19:38:02 +0900

    Array#sort_by! return early if sorting is useless

    `Array#sort!` does that check, but `#sort_by!` always tries to
    sort, which is wasteful.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12741

commit 4a67ef09ccd703047552b740431cfe15e32451f4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-13 15:59:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-13 18:01:03 +0900

    [Feature #21116] Extract RJIT as a third-party gem

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12740

commit d35cc0cc772b48c5aaba354e7084278da68f44e4
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-02-12 20:43:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 15:35:31 +0900

    tool/downloader.rb: Stop caching already existing files

    Previously, the script was caching any file already present in the
    destination directory, regardless of its origin. This caused issues
    when the directory contained files copied from external sources like
    `autoreconf --install`.

    For example:
    1. `./autogen.sh --install` copies `config.guess` and `config.sub`
       from the system to `./tool`.
    2. `ruby tool/downloader.rb -d tool -e gnu config.guess config.sub`
       treats those files as if they were downloaded and caches them.
    3. Removing the files: `rm tool/config.guess tool/config.sub`.
    4. Running the downloader again, it mistakenly restores the cached
       files instead of downloading fresh versions.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12738

commit 45397f828449498696899b416b7dfcd91ca82455
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-13 14:13:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 14:13:53 +0900

    Extend timeout with resolv.rb and Windows platform. It's expired with 10sec sometimes.

commit cf00b31b5d9882325d2124cb257fb6a3476e0d78
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-13 13:12:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-13 13:12:24 +0900

    Remove a stale function for MJIT

commit 908fe85dfcfaf3ab69e3f77b17edc7952246f4f9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-13 13:06:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-13 13:06:59 +0900

    Remove stale comment for MJIT

commit 38cf09fc7039c386b9c02886f3286273c2791ed2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-13 12:48:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-13 12:48:30 +0900

    Header files for MJIT is not generated already

    The glob patterns are replaced by rote, but these files have been
    removed before it.

commit ee03df26bad92abb5397a82be3bc385a9ef69b5a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-12 00:25:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:51 +0900

    [rubygems/rubygems] `--prefer-local` should resolve to latest version if no gems are available locally

    Filtering out remote specs should only apply where there are locally
    installed specs. Otherwise they should always be considered.

    https://github.com/rubygems/rubygems/commit/118f8389a1

commit 151b436c9d52e879e38f40cfcbcc3e516b9b439d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-11 00:40:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:51 +0900

    [rubygems/rubygems] Fix incorrect error message in frozen mode

    When Bundler refuses to install in frozen mode, sometimes it would
    incorrectly claim that some dependencies have been added to the Gemfile
    when that's not really the case. Fix that by making sure
    `locked_dependencies` always has all locked dependencies, even when
    unlocking,

    Additionally, the suggestion to run `bundle install` is also confusing
    when unlocking, since `bundle update` is what has been run. So skip that
    part as well when unlocking.

    https://github.com/rubygems/rubygems/commit/64d84ad7d8

commit d9267b4a71f82e78e6b98eab19b1f0ba5c08a0b4
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-10 23:25:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:51 +0900

    [rubygems/rubygems] Fix `type` and `gemfile` not getting reported as invalid options

    https://github.com/rubygems/rubygems/commit/5b6077a1e8

commit 0423fde31772795054a6abff86635b0d4bac902b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-10 23:23:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:51 +0900

    [rubygems/rubygems] Fix spec wording

    This feature is not really deprecated, it's removed.

    https://github.com/rubygems/rubygems/commit/e7f5f061f5

commit e7720ef8d7176adecd4cfe1a42008a89ff157e97
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-04 01:37:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Materializing specs for vendor/cache should not be strict

    Platforms specific gems not compatible with the current Ruby should not
    make `bundle cache` fail and should not get removed from the cache since
    they still may be useful in other rubies.

    https://github.com/rubygems/rubygems/commit/717b43f565

commit 5adbad731b3354e2cdf1befa0ec719f3609678dc
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-04 02:32:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Move logic to materialize gems for cache to a new method

    And make the current `materialize_strictly` private.

    https://github.com/rubygems/rubygems/commit/3fc2129147

commit 06e3943c38b83d6784d9d9be6d5f389a862a3f7d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-04 02:17:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Remove unnecessary source change

    We materializing for installation, we already do this, and we
    materializing for cache, it does not seem necessary.

    https://github.com/rubygems/rubygems/commit/1a983c6cbc

commit bb764e42baa8c99a15d7440cf2e4e1c980219b5d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-04 01:44:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Extract some common materialization logic to a method

    https://github.com/rubygems/rubygems/commit/32982fcd33

commit 7ac29372ca84ff8b0df8c6fc137fe99b4f1fc4e3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-04 01:38:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Make LazySpecification#__materialize__ private

    And rename it to something better.

    https://github.com/rubygems/rubygems/commit/321174d1ad

commit dc8cde479c257a064f4b8bc017c6c1a49b7d15ea
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-12 18:33:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 09:37:50 +0900

    [rubygems/rubygems] Stub-out additional examples and removed needless Error definition

    https://github.com/rubygems/rubygems/commit/d24d0b5c43

commit e9e4770a18f0b2375e7783e01a9f03c126ce948e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-13 09:17:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-13 09:17:08 +0900

    Fix .vscode/settings.json for the latest extension

commit abd1b700d2cec70187bca84eed2180ade2a93b87
  Author:     Serg Tyatin <700@2rba.com>
  AuthorDate: 2025-02-13 08:53:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-13 08:53:02 +0900

    [DOC] Fix description comment typo

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12736

    Merged-By: nobu <nobu@ruby-lang.org>

commit 0e34a883bc75f6d3924e8369c355281927179da9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-12 19:39:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-13 07:51:28 +0900

    Fixed infinite loop with GitHub Actions

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12737

commit 207c6750eff8c18832177a4953ed3a6206a3c6da
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-13 04:09:17 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-13 04:09:17 +0900

    Fix rjit_c.rb

commit 16f41eca53ec43763c63a830e50ca72324dc9c79
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-13 03:22:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-13 04:03:07 +0900

    Remove dead iv_index_tbl field in RObject

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12739

commit f32d5071b7b01f258eb45cf533496d82d5c0f6a1
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-11 01:30:34 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-12 18:23:50 +0900

    Elide string allocation when using `String#gsub` in MAP mode

    If the provided Hash doesn't have a default proc, we know for
    sure that we'll never call into user provided code, hence the
    string we allocate to access the Hash can't possibly escape.

    So we don't actually have to allocate it, we can use a fake_str,
    AKA a stack allocated string.

    ```
    compare-ruby: ruby 3.5.0dev (2025-02-10T13:47:44Z master 3fb455adab) +PRISM [arm64-darwin23]
    built-ruby: ruby 3.5.0dev (2025-02-10T17:09:52Z opt-gsub-alloc ea5c28958f) +PRISM [arm64-darwin23]
    warming up....

    |                 |compare-ruby|built-ruby|
    |:----------------|-----------:|---------:|
    |escape           |      3.374k|    3.722k|
    |                 |           -|     1.10x|
    |escape_bin       |      5.469k|    6.587k|
    |                 |           -|     1.20x|
    |escape_utf8      |      3.465k|    3.734k|
    |                 |           -|     1.08x|
    |escape_utf8_bin  |      5.752k|    7.283k|
    |                 |           -|     1.27x|
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12730

commit abcafb080ce9fe94cb13cca0e813a0a44d23cdc6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-11 05:22:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-12 13:15:01 +0900

    [ruby/json] Release 2.10.1

    https://github.com/ruby/json/commit/aa5b7d6acb

commit 293ad8a4e974e3dffc1419b37c15748f02b1481e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-11 05:09:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-12 13:15:01 +0900

    Fix a compatibility issue with `MultiJson.dump(obj, pretty: true)`

    Fix: https://github.com/ruby/json/issues/748

    `MultiJson` pass `State#to_h` as options, and the `as_json`
    property defaults to `false` but `false` wasn't accepted by
    the constructor.

commit 502bd6ba37b1820f5f5a0fe6bc9820797fddc0d6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-10 20:02:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-12 13:12:12 +0900

    [ruby/json] Release 2.10.0

    https://github.com/ruby/json/commit/8b56d47254

commit 4ac75f6f6453bbf3c89f5b9ae02a03085b506ed5
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-09 19:42:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-12 01:42:26 +0900

    [ruby/openssl] x509name: do not check for negative return from X509_NAME_entry_count()

    The function never returns a negative number.

    https://github.com/ruby/openssl/commit/895ce6fdfc

commit 47cdf98fa43a481991c229532e74c44943efcf39
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-07 02:14:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-12 01:42:26 +0900

    [ruby/openssl] x509: do not check for negative return from X509_*_get_ext_count()

    These functions wrap X509v3_get_ext_count(). The implementation can
    never return a negative number, and this behavior is documented in the
    man page.

    https://github.com/ruby/openssl/commit/5164725855

commit 8888ad6902b0bb12bab0a1d16389e30f4916f413
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-07 02:14:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-12 01:42:25 +0900

    [ruby/openssl] ossl.c: avoid using sk_*() functions with NULL

    Always use explicit NULL checks before interacting with STACK_OF(*).
    Even though most OpenSSL functions named sk_*() do not crash if we pass
    NULL as the receiver object, depending on this behavior would be a bad
    idea.

    Checks for a negative number return from sk_*_num() are removed. This
    can only happen when the stack is NULL.

    ossl_*_sk2ary() must no longer be called with NULL.

    https://github.com/ruby/openssl/commit/84cffd4f77

commit dedd05e9c81c210b201f5569ce83d9748f8bb2ab
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-09 19:37:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-12 01:42:25 +0900

    [ruby/openssl] pkcs7: add a test case for the data content type

    While it is not useful alone, it is still a valid content type. Some
    methods on OpenSSL::PKCS7 are only meant to work with the signed-data
    or enveloped-data content type. Add some assertions for their behavior
    with unsupported content types. The next patches will update the
    relevant code.

    https://github.com/ruby/openssl/commit/adb42b5b84

commit 06faf28558c2f1925f37dd78ff61ba1bef6e894e
  Author:     Samuel Chiang <sachiang@amazon.com>
  AuthorDate: 2025-01-24 11:16:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-12 00:35:03 +0900

    [ruby/openssl] Add build support for AWS-LC

    CI Changes
    1. I've split the original patch up to make it easier to digest, but
    that forces my hand to turn off testing in the AWS-LC CI for the time
    being. However, do let me know if you would prefer to review the test
    adjustments in the same PR and I can remove the temporary CI workaround.
    2. AWS-LC has a few no-op functions and we use -Wdeprecated-declarations
    to alert the consuming application of these. I've leveraged the
    skip-warnings CI option so that the build doesn't fail.

    Build Adjustments
    1. AWS-LC FIPS mode is decided at compile time. This is different from
    OpenSSL's togglable FIPS switch, so I've adjusted the build to account
    for this.
    2. AWS-LC does not support for the two KEY_SIG or KEY_EX flags that were
    only ever supported by old MSIE.
    3. AWS-LC has no current support for post handshake authentication in
    TLS 1.3.
    4. EC_GROUP structures for named curves in AWS-LC are constant, static,
    and immutable by default. This means that the EC_GROUP_set_* functions
    are essentially no-ops due to the immutability of the structure. We've
    introduced a new API for consumers that depend on the OpenSSL's default
    mutability of the EC_GROUP structure called
    EC_GROUP_new_by_curve_name_mutable. Since Ruby has a bit of
    functionality that's dependent on the mutability of these structures,
    I've made the corresponding adjustments to allow things to work as
    expected.

    https://github.com/ruby/openssl/commit/e53ec5a101

commit e603a420e9fb085c37f16f0a32628ecf6232f507
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-11 04:29:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-11 06:30:04 +0900

    [DOC] Fix call-seq consistency in Array

    The documentation guide (https://docs.ruby-lang.org/en/master/contributing/documentation_guide_md.html#label-Calling+Sequence+-28for+methods+written+in+C-29)
    says that the call-seq for instance methods should only include the method
    name, no prepending `array.`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12728

commit eada3cdf898efcc316e4f0bc0cb3d1a183bb06a1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-11 04:27:59 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-11 06:30:04 +0900

    [DOC] Fix call-seq consistency in Hash

    The documentation guide (https://docs.ruby-lang.org/en/master/contributing/documentation_guide_md.html#label-Calling+Sequence+-28for+methods+written+in+C-29)
    says that the call-seq for instance methods should only include the method
    name, no prepending `hash.`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12728

commit d680a13ad061eeb562b1df7c11d094e6984789ce
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-02-11 05:01:17 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-02-11 05:50:23 +0900

    Always return jit_entry even if NULL

    We can just always return the jit_entry since it will be initialized to
    NULL.  There is no reason to specifically return NULL if yjit / rjit are
    disabled

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12729

commit b74077c19ef882b3d2022d05e6f736feda3f8894
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-11 03:40:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-11 05:37:10 +0900

    [ruby/mmtk] Set Immix as the default plan

    https://github.com/ruby/mmtk/commit/e52b973611

commit 50469809b8d78dbd783d957749a0d269f43b470d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-11 04:06:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-11 04:33:04 +0900

    [ruby/mmtk] Use RUBY_TEST_TIMEOUT_SCALE for tests

    RUBY_TEST_TIMEOUT_SCALE is set for debug builds because they are slower
    to run. We should respect this environment variable in MMTk tests too.

    https://github.com/ruby/mmtk/commit/0a66c518bf

commit b4bf3ed13036a01c2082bd279e6faecd5d51a740
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-11 04:32:25 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-11 04:32:25 +0900

    [DOC] Adds section "Hash Inclusion" (#12634)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 7fd589c7fc26b0494990134d6bef699c92a9336c
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-11 04:31:41 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-11 04:31:41 +0900

    [DOC] Tweaks for Hash#assoc (#12726)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 57b9b921937931dc9ce3317214f147c3f23378c7
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-11 04:31:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-11 04:31:04 +0900

    [DOC] Tweaks for Hash#clear (#12727)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 35afc0d6e1bbbfc2d80d0cf997a2579c378f5632
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-02-11 04:23:42 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-11 04:23:42 +0900

    [DOC] Tweaks for Hash#any?

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12724

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit c7e35e5534018add3b783e871ca93e27b693842d
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-02-09 18:13:33 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-11 04:21:10 +0900

    gc.c: Remove no-op code

    In this context, `vm_locked` is a argument variable, and is not used
    later in the function.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12718

commit 3fb455adabc26a978f3bf42aa0bf42f10f64ae31
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-08 01:10:18 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-10 22:47:44 +0900

    Move global symbol reference updating to rb_sym_global_symbols_update_references

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12711

commit 8d0416ae0b6e725c855a3afb1225fe892d42dd4e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-08 00:30:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-10 22:47:44 +0900

    Make ruby_global_symbols movable

    The `ids` array and `dsymbol_fstr_hash` were pinned because they were
    kept alive by rb_vm_register_global_object. This prevented the GC from
    moving them even though there were reference updating code.

    This commit changes it to be marked movable by marking it as a root object.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12711

commit 397bb7e42ce72ac7a8c8516cbe17b3310d0a9ad0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-10 18:04:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-10 18:04:25 +0900

    Do not overwrite `GEM_PATH` if already set

    The bundler's test sets the `GEM_PATH` and `GEM_HOME` environment
    variables by itself.  Overwriting them results in tons of errors.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12722

commit cd27c580faf5b5e3ec4b4dff038bcd045ea9c282
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-10 16:55:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-10 16:55:02 +0900

    Launchable: Add a workflow name as a flavor (#12720)

    Adding a workflow name would be easier to understand the connection between a test session and GitHub workflow.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 135479a58d191af553e0c7b797a8388b3cc77ffa
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 23:43:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-10 09:27:18 +0900

    [rubygems/rubygems] Allocate strings from Requirement match only once

    https://github.com/rubygems/rubygems/commit/c65b8644e6

    Co-authored-by:  Samuel Giddins <segiddins@segiddins.me>

commit 5232c86ffc5636bc34a62a52ceb38589c6aba2ed
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-10 04:58:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-10 07:11:30 +0900

    Use the default MMTk plan

    The default MMTk plan is no longer MarkSweep, so we shouldn't force it
    to be MarkSweep.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12719

commit 5fcbf3e8ad8117c07dc4d07b3b9eabc29b8016e0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-10 04:57:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-10 07:11:30 +0900

    Remove MMTk configuration for debug builds

    We are no longer running debug builds of MMTk here, so we don't need this
    configuration anymore.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12719

commit 7d10c22a86ab37a347db92297cd95e5a606ed84b
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-06 23:45:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:07 +0900

    [ruby/openssl] Revert "Skip a new test when old OpenSSL"

    This reverts commit https://github.com/ruby/openssl/commit/8c96a69b0d47.

    This is no longer necessary since we do not support OpenSSL 1.1.0
    anymore.

    https://github.com/ruby/openssl/commit/4987688cb4

commit 581dbcec79b16ab55cf3548631cb34fe6db006ee
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-06 23:48:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:07 +0900

    [ruby/openssl] ssl: prefer SSLContext#max_version= in tests

    Avoid using the deprecated OpenSSL::SSL::SSLContext#ssl_version= outside
    the tests specifically written for it.

    https://github.com/ruby/openssl/commit/93a564dec2

commit 64a98decf2d58754d9faefa30d9e86d79c63f805
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-06 23:51:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:07 +0900

    [ruby/openssl] ssl: fix misuse of assert_handshake_error in tests

    assert_handshake_error is useful for checking handshake failures
    triggered by the peer, as the underlying socket may be closed
    prematurely, leading to different exceptions depending on the platform
    and timing.

    However, when the local end aborts a handshake, the only possible
    exception is OpenSSL::SSL::SSLError. Use stricter assertions in such
    cases.

    https://github.com/ruby/openssl/commit/637ba65818

commit 5791c93f8e16fedfcad861d83e9a54da05fd6154
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-06 23:56:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:06 +0900

    [ruby/openssl] ssl: refactor test case test_verify_mode_server_cert

    Minimize the amount of code inside the assert_raise block to avoid
    accidentally catching a wrong exception.

    https://github.com/ruby/openssl/commit/5089b2d311

commit a8b36314ec22d0f8bcbad855ba8dc675654301bf
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-02-06 23:55:49 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:06 +0900

    [ruby/openssl] ssl: fix test case test_npn_advertised_protocol_too_long

    The list of NPN protocols is validated in SSLContext#setup.

    The assert_handshake_error is misleading. The client is unable to start
    a handshake at all because the server is not running.

    https://github.com/ruby/openssl/commit/e8db6ffd9e

commit 1f4fc2e608b009599dab3413ea9c04746ae65d90
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-12-21 03:06:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:06 +0900

    [ruby/openssl] ssl: remove start_server_version from tests

    Use start_server instead of start_server_version.

    start_server_version is a wrapper around start_server that forces the
    server to a specific protocol version using the now-deprecated method
    SSLSocket#ssl_version=, but it does more than that. The slightly
    different method signature and default values are confusing. Let's
    use start_server directly.

    https://github.com/ruby/openssl/commit/22ed31d77e

commit 237c71fc29dc2b877dcd27225e75825ddec851e8
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-12-21 02:45:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-09 19:26:05 +0900

    [ruby/openssl] ssl: remove start_immediately kwarg from test helper start_server

    The keyword argument is no longer used by any test cases.

    https://github.com/ruby/openssl/commit/2f31605d47

commit b4865b14cd6cfb49ed7ec121765144811ad02180
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-02-08 15:59:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-08 15:59:12 +0900

    Update bundled gems list as of 2025-02-07

commit e12f5259e496eb201429c5da414619527c1bc609
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-08 04:22:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-02-08 05:44:54 +0900

    Add timeout to compilers workflow

    The default timeout on GitHub Actions is 360 minutes, the job usually takes
    around 20 to 30 minutes to complete. This commit sets the timeout to be
    40 minutes so jobs that hang will timeout faster.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12712

commit 5454188f6bcb333f8aa7a80986736694e1bfc26c
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-02-07 22:13:00 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-02-08 05:13:14 +0900

    Retry on IO::EAGAINWaitReadable when a closed socket is still not available for reading

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12710

commit 7178593558080ca529abb61ef27038236ab2687d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-07 18:40:07 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-07 18:40:07 +0900

    Simplified to find gemspecs for bundled gems (#12709)

    * Simplified to find gemspecs for bundled gems

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

  Notes:
    Merged-By: hsbt <hsbt@ruby-lang.org>

commit 8dbbc79e8b19f0bf000f88d0e45b26185c5fcd4b
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-02-07 16:00:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-07 16:00:32 +0900

    Update bundled gems list as of 2025-02-06

commit e776efdc70e3b90ae0d40c255626ce3a534906f1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-07 11:02:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-07 11:47:48 +0900

    Support `git ls-files ...`.split style for file list of gemspec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12708

commit 2ed1962cbedc832154630bed695cec4781b0ec89
  Author:     卜部昌平 <shyouhei@ruby-lang.org>
  AuthorDate: 2025-02-05 18:06:43 +0900
  Commit:     卜部昌平 <shyouhei@ruby-lang.org>
  CommitDate: 2025-02-07 08:49:26 +0900

    [CI] add CI matrix for clang-21

    see also https://github.com/llvm/llvm-project/pull/124870

commit 9baa0f8c8c216da3933362a6103e415b64889737
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-06 23:12:03 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-06 23:12:03 +0900

    Enable bundled gems in ruby-runner

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12706

commit adbf9c5b368e969b2e4e7806a82a2b8f017bd48d
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-02-01 00:17:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-06 23:10:34 +0900

    [ruby/openssl] test_ssl.rb: Test respecting system default min.

    https://github.com/ruby/openssl/commit/7de5ff583a

commit ec8e3e376ce9487e93860dd277944a04e15ee461
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-06 16:44:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 16:44:23 +0900

    Only modified LOAD_PATH for RJIT with fiddle provided by bundled gems

commit b4bfbcaddcc4d5ec82631df3fc53b3a3ac65edb7
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-02-05 20:35:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 16:02:03 +0900

    Optimize Symbol generation in strict mode

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit f865148e1926f838cac8b4449abfc5d402d0d015
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-02-05 20:40:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 16:02:03 +0900

    Fix JSON::Coder to call as_json proc for NaN and Infinity

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit dd1fe03b8a8da5e2cbe7b35dddb07541e7f58678
  Author:     yuuji.yaginuma <yuuji.yaginuma@gmail.com>
  AuthorDate: 2025-02-02 17:49:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:58:01 +0900

    [rubygems/rubygems] Add `irb` to a Gemfile for a newly created gem

    I think we need this to silence the following warning when running
    `bin/console` with Ruby 3.4

    ```
    ./bin/console:10: warning: irb was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
    You can add irb to your Gemfile or gemspec to silence this warning.
    ```

    https://github.com/rubygems/rubygems/commit/c46230c856

commit ac093f4350ae8f41ef18ac64829ea9dbc272063d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-01 00:20:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:58:00 +0900

    [rubygems/rubygems] Auto-heal empty installation directory

    https://github.com/rubygems/rubygems/commit/9720a9b980

commit 78ef59acf7f443b7f87039d5927005a2f8f0bb36
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-02-01 00:20:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:59 +0900

    [rubygems/rubygems] Refine messages about gem installations being missing

    The previous wording was too specific, there may be situations when the
    gem has actually never installed (so never deleted either).

    https://github.com/rubygems/rubygems/commit/e4a0d71fbe

commit 385dc5dc168504b38f59036d17aa4e012b72f1e8
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-31 17:19:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:57 +0900

    [rubygems/rubygems] Don't potentially load remote metadata when expanding dependencies

    For installed specifications, we can ignore any constraints they may
    have, since we know they match the current version of Ruby or otherwise
    would not be installed.

    For remote specifications, we already resolve optimistically without
    metadata and retry force-fetching it if necessary.

    If in the future we support resolving against a Ruby version different
    that the one being run, we'll probably need to change this but now it's
    unnecessary and saves some memory.

    ### Before

    Total allocated: 262.99 MB (3177437 objects)
    Total retained:  115.91 MB (1297821 objects)

    ### After

    Total allocated: 259.89 MB (3134199 objects)
    Total retained:  115.05 MB (1283779 objects)

    https://github.com/rubygems/rubygems/commit/201c1863fc

commit a1716e236566fd34e4f17b9b484cc077f48e7e69
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-31 15:19:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:57 +0900

    [rubygems/rubygems] Move expanding dependencies with metadata to specification classes

    https://github.com/rubygems/rubygems/commit/7f921aa46e

commit 24f5e3010f632d400e56042e4b14b121a09e6c74
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-31 14:50:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:56 +0900

    [rubygems/rubygems] Metadata dependencies can be `Gem::Dependency` instances

    They use less memory that way.

    When resolving from scratch a Gemfile including only `"gem "rails", "~>
    8.0.1"`, I get the following results:

    ### Before

    Total allocated: 265.06 MB (3186053 objects)
    Total retained:  116.98 MB (1302280 objects)

    ### After

    Total allocated: 262.99 MB (3177437 objects)
    Total retained:  115.91 MB (1297821 objects)

    https://github.com/rubygems/rubygems/commit/a4ef9c5f56

commit 7fed6c887d68e1347defcd1364b0ceb5ba18a2b9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 23:34:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:55 +0900

    [rubygems/rubygems] Remove unnecessary remapping of dependencies

    Sometimes we'll resolve using bare `Gem::Dependency` instances rather
    than `Bundler::Dependency` instances, which is fine, simpler, and saves
    some memory.

    When resolving from scratch a Gemfile including only `"gem "rails", "~>
    8.0.1"`, I get the following results:

    ### Before

    Total allocated: 277.48 MB (3384318 objects)
    Total retained:  117.53 MB (1338657 objects)

    ### After

    Total allocated: 265.06 MB (3186053 objects)
    Total retained:  116.98 MB (1302280 objects)

    https://github.com/rubygems/rubygems/commit/c6dc2966c5

commit 4c0cf2deed50e4dc9345b119ebd1f6e7f8a9eab8
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 23:08:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:55 +0900

    [rubygems/rubygems] Make `Bundler::Dependency` more memory efficient

    When resolving from scratch a Gemfile including only `"gem "rails", "~>
    8.0.1"`, I get the following results:

    ### Before

    Total allocated: 288.21 MB (3498515 objects)
    Total retained:  119.10 MB (1357976 objects)

    ### After

    Total allocated: 277.44 MB (3383182 objects)
    Total retained:  117.55 MB (1338622 objects)

    https://github.com/rubygems/rubygems/commit/2d3d6e5015

commit 8e7883011a6402413d7d6448235359195b45d781
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 19:31:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 15:57:54 +0900

    [rubygems/rubygems] Lazily parse dependencies in EndpointSpecification

    Since not every dependency gets referenced.

    When resolving from scratch a Gemfile including only `"gem "rails", "~>
    8.0.1"`, I get the following results:

    ### Before

    Total allocated: 295.01 MB (3624335 objects)
    Total retained:  119.31 MB (1364474 objects)

    ### After
    Total allocated: 288.21 MB (3498515 objects)
    Total retained:  119.10 MB (1357976 objects)

    https://github.com/rubygems/rubygems/commit/61eee39d81

    Co-authored-by: Samuel Giddins <segiddins@segiddins.me>

commit c83370671be81809e027476293151bd2c67e8beb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 04:17:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 13:07:55 +0900

    Improve bundled gems warning messages

    Currently evenn if the require actually fails, they suggest that the
    file was actually loaded, which is confusing. I reworded them to reduce
    this confusion.

commit 03a0c4e079e4ab94cd8d4ee403f1b67e6f566f49
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 03:59:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 13:07:55 +0900

    Rename "gem" to "name"

    The name "gem" could be confused with RubyGems activation method.

commit 433f4e30b3af853ef5b33948e3b4be4826d3f104
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 03:53:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 13:07:55 +0900

    Simplify bundled gems warnings implementation

    Most of the stuff is not actually necessary.

commit 68bb6ceeafeae3c06f09f8d120d3194eaa2d131d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-30 03:23:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 13:07:55 +0900

    Remove unnecessary SINCE_FAST_PATH constant

    If anything, I think this may be causing some false positives.

commit 15b77a09a7a72ac308ab478e491f3b90964a069f
  Author:     Daisuke Aritomo <osyoyu@osyoyu.com>
  AuthorDate: 2025-02-06 08:59:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-06 09:49:23 +0900

    [DOC] ractor.md: Remove link to Complex class

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12705

commit 6ca8bc8562cbe309d0a0ae82573bc14cd2b2ae47
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-06 08:57:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-06 08:57:46 +0900

    Launchable: Fix broken links by passing GITHUB_SERVER_URL (#12704)

    @peterzhu2118 mentioned that "View workflow run" button is broken in Launchable. It's because invalid URL is sent from compilers/actions.yaml. Launchable CLI builds URL based on the environment variables. In those variables, GITHUB_SERVER_URL is not set in this case.

    Hence, I set GITHUB_SERVER_URL in compilers/actions.yaml in this PR.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 141f2924eeb3816941926a425638380ca1b747f6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-05 16:34:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 17:15:30 +0900

    The test of net-smtp-0.5.1 is working with Windows platform now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12701

commit ae026ff65b85cd4ebea891825e9cedddc85c3175
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-05 15:19:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 15:19:24 +0900

    Update bundled_gems

commit c204cf7cb123b4c0aa50b3049c82caed3e6f2826
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-30 03:41:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 12:48:44 +0900

    [rubygems/rubygems] Deprecate `CurrentRuby#maglev?` and other related maglev methods:

    - Follow up to https://github.com/rubygems/rubygems/pull/8430#discussion_r1927239555.

      The maglev platform was not supported by Bundler, so calling
      `gem "foo", platforms: ["maglev"]` would raise an error.

      The helpers added in the `CurrentRuby` class were used at a time
      when maglev was supported (as explained in https://github.com/rubygems/rubygems/commit/45ec86e2e528).
      Support of maglev was most likely dropped at some point and the helpers
      in the `CurrentRuby` class were not deprecated/removed.

      We decided to deprecate them now.

    https://github.com/rubygems/rubygems/commit/66388babf8

commit 50e48a20c053f8b05c48547b5f5dc1059879867c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-05 11:05:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 11:05:42 +0900

    Generate the latest version number from OpenSSL LTS releases

commit 425a93fb1bb9a3059fab5527d4ab318c4b723807
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-05 10:36:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 10:36:24 +0900

    Removed unused parameters for building docker image

commit 4b5bcba2e28b367f851bd21fbcd828f5e21a2f43
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 17:32:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Integrate read_s and read_s_expand with get_item_property for Win32::Registry

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 333bc26d82370e2f5d324c1a24e7885fde4b9657
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 17:22:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Added get_item_property and use it for Win32::Registry and Get-ItemProperty

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit a487698cc789624924ef5e309ffbffcc36f754ca
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 17:10:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Use powershell for retrieving value from registry if fiddle is not available

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 078e723b24b6329280b83791c46f31dc284008d3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 17:09:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Don't use nested registry open for rewriting powershell version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 02a9c05e3ecc5b4a382ca9c7ca3e4adb79844bc2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 17:03:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Handle failing case to load win32/registry

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 62b87921090b09416a7846c865f23e2a19a448aa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 16:48:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Skip irb on test-bundled-gems with Windows

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 9052d0d534828f5b8bd5d94b3863f8afbd617053
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 10:59:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Try to inject fiddle path as bundled gems for RJIT

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit b50360e08be5b35ec42b0b97e1d25bc89432023b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 16:08:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Update fiddle entries under the doc directory

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 470784cbd94a70da5d3e3167dfe4f17e3b025287
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 15:19:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Expand stub-out scope of Fiddle.dlopen

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit ec2bd6f74e7abc7b9952282f744adfff5708bd41
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 11:13:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Skip to existence check fiddle from TestExtLibs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 16d446e8a5c70d69fec80a5dc109b5b2926e69c0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 10:09:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Removed fiddle from sync target

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 908529b7e0cf39bb1204588bd7f86c6bd40b8a00
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-24 16:23:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-05 07:36:59 +0900

    Migrate fiddle as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12616

commit 91a10c07579f282a94e4b5830feaeca87f9a7dd3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-05 05:54:53 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-02-05 06:25:17 +0900

    Fix a typo in WeakKeyMap argument error

    [Bug #21112]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12696

commit 10d06b9a7231e54e5f6fe34437b9c583ecefca88
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-04 13:41:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-04 13:55:16 +0900

    [ruby/resolv] Load win32/resolv with rake test

    https://github.com/ruby/resolv/commit/3ecfce3626

commit 7317f96727725ca37ddb06011918deb841de371c
  Author:     Andrii Konchyn <andry.konchin@gmail.com>
  AuthorDate: 2025-02-03 22:24:16 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-03 22:24:16 +0900

    Move out from quarantine a Marshal.dump spec for Float (#12692)

    * Move out from quarantine a Marshal.dump spec for Float

    Co-authored-by: Benoit Daloze <eregontp@gmail.com>

  Notes:
    Merged-By: eregon <eregontp@gmail.com>

commit 1683dadb19876f0a64589bdbbcf6fff8143f78ff
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-02-03 20:26:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-03 20:26:47 +0900

    Do not save ResolutionError if resolution succeeds for any address family (#12678)

    * Do not save ResolutionError if resolution succeeds for any address family

    Socket with Happy Eyeballs Version 2 performs connection attempts and name resolution in parallel.

    In the existing implementation, if a connection attempt failed for one address family while name resolution was still in progress for the other, and that name resolution later failed, the method would terminate with a name resolution error.
    This behavior was intended to ensure that the final error reflected the most recent failure, potentially overriding an earlier error.

    However, [Bug #21088](https://bugs.ruby-lang.org/issues/21088) made me realize that terminating with a name resolution error is unnatural when name resolution succeeded for at least one address family.

    This PR modifies the behavior so that if name resolution succeeds for one address family, any name resolution error from the other is not saved.

    This PR includes the following changes:

    * Do not display select(2) as the system call that caused the raised error, as it is for internal processing

    * Fix bug: Get errno with Socket::SO_ERROR in Windows environment with a workaround for tests not passing

  Notes:
    Merged-By: shioimm <shioi.mm@gmail.com>

commit f84d75eeccc38d298692c564d30f4e018d03f35d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-23 01:49:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-03 18:47:48 +0900

    [ruby/openssl] pkey/ec: remove deprecated PKey::EC::Point#mul(ary, ary [, bn]) form

    The method has two forms, each corresponding to EC_POINT_mul() and
    EC_POINTs_mul(). The latter form does not work with any OpenSSL or
    LibreSSL versions that are still supported by upstream.

    The latter form has an extremely confusing behavior, too, and using it
    would print a deprecation warning since commit https://github.com/ruby/openssl/commit/812de4253d25 in 2020,
    which went to 3.0.0. Let's remove it.

    https://github.com/ruby/openssl/commit/7343d3c559

commit 5a14f536958d20e98c58606bd44bd2c0bed6da4b
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-30 23:39:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-03 18:46:03 +0900

    [ruby/openssl] ssl: separate SSLContext#min_version= and #max_version=

    Make these methods simple wrappers around
    SSL_CTX_set_{min,max}_proto_version().

    When we introduced these methods in commit https://github.com/ruby/openssl/commit/18603949d316 [1], which went
    to v2.1.0, we added a private method to SSLContext that set both the
    minimum and maximum protocol versions at the same time. This was to
    allow emulating the behavior using SSL options on older OpenSSL versions
    that lack SSL_CTX_set_{min,max}_proto_version(). Since we no longer
    support OpenSSL 1.0.2, the related code has already been removed.

    In OpenSSL 1.1.1 or later, setting the minimum or maximum version to 0
    is not equivalent to leaving it unset. Similar to SSL options, which we
    avoid overwriting as of commit https://github.com/ruby/openssl/commit/00bec0d905d5 and commit https://github.com/ruby/openssl/commit/77c3db2d6587 [2],
    a system-wide configuration file may define a default protocol version
    bounds. Setting the minimum version should not unset the maximum
    version, and vice versa.

    [1] https://github.com/ruby/openssl/pull/142
    [2] https://github.com/ruby/openssl/pull/767

    https://github.com/ruby/openssl/commit/5766386321

commit 8cbff4fe45abbca816867f388c12df19a211e7b9
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-02-03 16:07:19 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-02-03 16:07:19 +0900

    Add sleep to PTY tests to stabilize flaky failures (#12691)

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 890020e3922ccb4c2241dc7c2024f8f5bc5e7e91
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-03 14:22:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 14:43:29 +0900

    Removed manpages for bundled gems

commit e8cf44148572683e7002cbd294dbcc1ad30bf462
  Author:     Nikita Shilnikov <fg@flashgordon.ru>
  AuthorDate: 2025-01-21 20:30:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-02-03 10:58:50 +0900

    [ruby/weakref] Add missing block parameter

    A block is part of the Delegator's contract. Ruby 3.4 issues a warning if a block is passed but unused. This commit fixes the warning by adding a block to the argument list.

    https://github.com/ruby/weakref/commit/9495ec9191

commit 15e6f13ff7c80c42490c3004977d72d95b35bb21
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2025-02-03 08:40:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:22:16 +0900

    [ruby/fiddle] Fix Fiddle.last_error on FFI backend and improve test
    to work for all
    (https://github.com/ruby/fiddle/pull/173)

    https://github.com/ruby/fiddle/commit/ef2382a7ef

commit b5b509766309f693f3bf0ea1e5214a1d727662ce
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-01 05:58:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:22:15 +0900

    [ruby/fiddle] Define Fiddle.last_error family and Fiddle.dlopen
    statically
    (https://github.com/ruby/fiddle/pull/172)

    `RUBY_ENGINE` and `Fiddle::WINDOWS` should not change in a process, no
    need to be checked inside the methods.

    Also, `win32_last_error` and `win32_last_socket_error` are equal to
    `last_error` on JRuby.

    https://github.com/ruby/fiddle/commit/50ac00ed53

commit c0688c21fef67cfa4daf21f9a6a46290841c7421
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-29 20:27:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:05:34 +0900

    [rubygems/rubygems] Raise a simpler error when RubyGems fails to activate a dependency

    If you force uninstall a dependency but leave other gems depending on
    it, those gems will fail to be activated.

    In that case, RubyGems prints a rather complicated error:

    ```
    $ rails --version
    /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1413:in 'block in Gem::Specification#activate_dependencies': Could not find 'activesupport' (= 8.0.1) among 478 total gem(s) (Gem::MissingSpecError)
    Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' at: /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/specifications/railties-8.0.1.gemspec, execute `gem env` for more information
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Array#each'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Gem::Specification#activate_dependencies'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1381:in 'Gem::Specification#activate'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
    /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/dependency.rb:303:in 'Gem::Dependency#to_specs': Could not find 'activesupport' (= 8.0.1) - did find: [activesupport-7.1.3,activesupport-7.0.8.7] (Gem::MissingSpecVersionError)
    Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' , execute `gem env` for more information
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1411:in 'block in Gem::Specification#activate_dependencies'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Array#each'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1399:in 'Gem::Specification#activate_dependencies'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1381:in 'Gem::Specification#activate'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
    ```

    With this commit, the error becomes a bit simpler to parse:

    ```
    $ rails --version
    /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1421:in 'block in Gem::Specification#activate_dependencies': Could not find 'activesupport' (= 8.0.1) among 478 total gem(s) (Gem::MissingSpecError)
    Checked in 'GEM_PATH=/Users/deivid/.local/share/gem/ruby/3.4.0:/Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0' at: /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/specifications/railties-8.0.1.gemspec, execute `gem env` for more information
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1407:in 'Array#each'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1407:in 'Gem::Specification#activate_dependencies'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems/specification.rb:1389:in 'Gem::Specification#activate'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:283:in 'block in Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Thread::Mutex#synchronize'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/lib/ruby/site_ruby/3.4.0/rubygems.rb:282:in 'Gem.activate_bin_path'
            from /Users/deivid/.asdf/installs/ruby/3.4.1/bin/rails:25:in '<main>'
    ```

    And also, we reduce exception based control flow in our code.

    https://github.com/rubygems/rubygems/commit/7e48c49f2d

commit d645b62b6ddd1f272d16b1dcc2165f5f0b05e7b7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-29 21:49:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:05:33 +0900

    [rubygems/rubygems] Remove already fixed TODO

    It was fixed by https://github.com/rubygems/rubygems/commit/3b0d44fbf5a3.

    https://github.com/rubygems/rubygems/commit/4cf3429599

commit 98c56de8237cd760200a1e5f11025a5aee7ed15f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-01 04:09:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:05:26 +0900

    [ruby/json] Refactor further to expose the simpler escape search possible

    https://github.com/ruby/json/commit/e03515ac8b

commit 98e1c2845a8361b69820c41b05eddbe5dbf8cf58
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-31 20:38:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-02-03 10:05:25 +0900

    [ruby/json] Refactor convert_UTF8_to_JSON to split searching and escaping code

    The goal is to be able to dispatch to more optimized search implementations
    without having to duplicate the escaping code.

    Somehow, this is a few % faster already:

    ```
    == Encoding activitypub.json (52595 bytes)
    ruby 3.4.1 (2024-12-25 revision https://github.com/ruby/json/commit/48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after     2.257k i/100ms
    Calculating -------------------------------------
                   after     22.930k (± 1.3%) i/s   (43.61 μs/i) -    115.107k in   5.020814s

    Comparison:
                  before:    21604.0 i/s
                   after:    22930.1 i/s - 1.06x  faster

    == Encoding citm_catalog.json (500298 bytes)
    ruby 3.4.1 (2024-12-25 revision https://github.com/ruby/json/commit/48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after   137.000 i/100ms
    Calculating -------------------------------------
                   after      1.397k (± 1.1%) i/s  (715.57 μs/i) -      6.987k in   5.000408s

    Comparison:
                  before:     1344.4 i/s
                   after:     1397.5 i/s - 1.04x  faster

    == Encoding twitter.json (466906 bytes)
    ruby 3.4.1 (2024-12-25 revision https://github.com/ruby/json/commit/48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after   249.000 i/100ms
    Calculating -------------------------------------
                   after      2.464k (± 1.8%) i/s  (405.81 μs/i) -     12.450k in   5.054131s

    Comparison:
                  before:     2326.5 i/s
                   after:     2464.2 i/s - 1.06x  faster
    ```

    https://github.com/ruby/json/commit/8fb5ae807f

commit 581d85058cf638f2f8ad87391dccc5c7708d597b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-03 00:27:43 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-03 00:27:43 +0900

    Add out of range tests of random number generator

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12690

commit 571f3394f2b8ac312e0e6213c639a44cf7e29fe4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-02 20:59:59 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-02 20:59:59 +0900

    [Bug #21106] Fix tests for custom random object

    When a positive integer limit is given, `rand` method of a RNG object
    is expected to return a value between 0 and the limit (exclusive).

    Fix shuffle_spec.rb like as the similar code in sample_spec.rb, and
    add tests for greater values.

    TODO:
    - Return a value that is equal to or greater than the limit given to
      the RNG object.
    - Extract common code about RNG objects to a shared file.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12690

commit 8dd0d63550c4da2ba7939f371f73825caa2e932e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-02 19:34:52 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-02 19:34:52 +0900

    [Bug #21106] Remove the useless last iteration

    When only one element remains, this simply swaps the first identical
    element and has no actual effect.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12690

commit ace39a3ed40cc32ff8d48893173413a7e05b8316
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-02-02 15:53:12 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-02-02 16:58:15 +0900

    Remove rb_exc_raise for Parser

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12688

commit db02a6b3ab4cabbdf492c26dcb1929b4ef0370a1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-01 22:03:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-01 22:03:47 +0900

    [Bug #21103] Fix local variable index calculation with forwarding

    Forwarding argument is optimized not to packed when no other arguments
    and an internal object refers values before it.  This size is decided
    at called time, calculate the local variable index from the fixed end
    point.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12686

commit 71f402c5d50919b0329d04704da8aa8982ab0585
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-01 16:57:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-01 16:57:18 +0900

    [DOC] Remove the index file for bundler man pages

    Those man pages are not placed here already.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12685

commit bff168f182b872ac77bbdd55665c94a7cefad9ac
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-01 16:22:24 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-01 16:22:24 +0900

    Install non-mdoc files as-is

    See if the content contains `.Nm` macro, instead of the names.

    This reverts "Don't convert bundler man pages from mdoc to man",
    commit e0b40ef5d8173aff304c81f93516e1246e3c042c.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12684

commit 5318a48e4ef09a87c2c126431bea55a14a6d11dc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-01 15:36:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-02-01 15:36:23 +0900

    Compress manpages automatically

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12684

commit 022ab413741500fecee93a586d8a15760a00747a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-24 21:58:53 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-31 21:30:07 +0900

    [DOC] Improve Errno and SystemCallError.new

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12683

commit 0da2b12741b2645f5c34f7e98e3b3b0f8f3cde5e
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-01-31 20:28:35 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-31 21:00:26 +0900

    Prefer `platform_is_not :windows`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12682

commit f719b889a149b1caad3550a70547e9e64f371f2f
  Author:     Vincent Ollivier <v@vinc.cc>
  AuthorDate: 2025-01-29 23:45:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-31 15:41:56 +0900

    [DOC] Fix grep_v description

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12663

commit 451d848a7627fc974eeecdf9792761610c23df7d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2024-12-20 05:50:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:55 +0900

    Stop generating binstubs for Bundler itself

commit 56e2ef24680424fd9392ad82a9cc852d9549b942
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-28 04:08:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:29 +0900

    [rubygems/rubygems] Fix `bundle console` unnecessarily trying to load IRB twice

    https://github.com/rubygems/rubygems/commit/f9bf58573f

commit 3cff46c521668a67572ee1ed7ae23de2fd39fddd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-28 04:08:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:28 +0900

    [rubygems/rubygems] Remove unnecessary error handling

    These gems always define their main namespace and I don't think that
    will ever change.

    https://github.com/rubygems/rubygems/commit/6663cbed53

commit e0f39d4cd32f1b346b8a6bac2431a4273def4c6a
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-28 20:22:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:27 +0900

    [rubygems/rubygems] Test with JRuby 9.4.10.0

    https://github.com/rubygems/rubygems/commit/770b19d859

commit 2ed30c9944aded2ab75943667610a83b1480b3cc
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-23 23:58:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:26 +0900

    [rubygems/rubygems] Consolidate the platform into a single list:

    - Similar change than https://github.com/rubygems/rubygems/commit/29a1be0008e6,
      keep a single source of truth where we store the platform.

      The only change worth highlighing is the platform "maglev".
      It was not part of the supported platform of dependencies,
      so calling `gem 'foo', plaftorm: 'maglev'` would not work.
      However, it was supposed to according to https://github.com/rubygems/rubygems/commit/45ec86e2e528.
      That's why it was possible to do `Bundler.current_ruby.maglev?` or
      `Bundler.current_ruby.maglev_30?`.

      I didn't change the current behaviour and maglev is not supported,
      though I kept the `*maglev` methods as I believe CurrentRuby is
      public API.

    https://github.com/rubygems/rubygems/commit/29e219ebcf

commit dc7c66510523631e0ca316e9df73f0889666d937
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-23 23:45:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:25 +0900

    [rubygems/rubygems] Consolidated the Ruby version list:

    - We keep 2 list of supported ruby versions and each time a new ruby
      version is released we need to maintain both list. Forgetting
      to update one would prevent users from adding gem for a specific
      plaftorm (i.e. https://github.com/rubygems/rubygems/commit/7cd19d824d17 and https://github.com/rubygems/rubygems/commit/5462322f8f0c).

      Extracted the list from the Dependency class and moved it to the
      CurrentRuby class (which I believe was originally added for that
      reason).

    https://github.com/rubygems/rubygems/commit/a91edd6c1f

commit 57fec1e85f457c93d19e386e663ec0d927f9fae7
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-23 22:57:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-31 14:34:24 +0900

    [rubygems/rubygems] Add ruby_34 and ruby_35 as valid platform:

    - Fix https://github.com/rubygems/rubygems/pull/8427
    - Similar to https://github.com/rubygems/rubygems/commit/7cd19d824d17.
      Tweaked a bit the test supposed to prevent this error by checking
      whether the dep respond to these methods.

    https://github.com/rubygems/rubygems/commit/62012eaeb6

commit 366462bd46e00c380796b8e040870a7a365da73b
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-22 21:59:47 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-31 11:52:57 +0900

    - Add a mention to git 2.32 in the building ruby documentation:

      I had issues building Ruby as I was using git 2.30.
      The error was:

      > file2lastrev.rb: git rev-parse failed error: could not expand
      > include path '~/.gitcinclude'

      The default system git config includes paths making use of `$HOME`,
      but that env variable gets removed when building: https://github.com/ruby/ruby/blob/7070b1b1968f31f999636b42a1af872458cd5a81/tool/lib/vcs.rb#L546-L547

      It works with git `>= 2.32` thanks to the `GIT_CONFIG_SYSTEM`
      feature which gets set to a Null IO in order to override
      the system gitconfig. https://github.com/ruby/ruby/blob/7070b1b1968f31f999636b42a1af872458cd5a81/tool/lib/vcs.rb#L549

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12611

commit 7604588f6fea57c0b1274884334946dbe4d757a9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 16:55:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-31 10:43:36 +0900

    [Feature #19521] Test for `Module#set_temporary_name`

commit 95bf3590871978f9063936444cd2a44a13975d39
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-31 08:00:53 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-01-31 08:00:53 +0900

    YJIT: Turn on dead code lint for the stats module

commit 7e733ca55168e3b1f10b685f6e9a52cf1deb5aff
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-31 08:00:53 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-01-31 08:00:53 +0900

    YJIT: Explicitly specify C ABI to fix a nightly Rust warning

commit afd7d5be5ec560c58dd3f18006d9a786125d5800
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-01-31 01:39:24 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-31 04:43:46 +0900

    Skip a new spec for Marshal#dump and Float that fails on i686

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12679

commit d7a5ad2a21f7d2c45e3fea674ff077bb0e2cadae
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-01-31 00:39:10 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-31 04:43:46 +0900

    Update to ruby/spec@affef93

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12679

commit ea2dd5b80e26036af83e7b37d722f4a106188555
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-01-31 00:39:00 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-31 04:43:46 +0900

    Update to ruby/mspec@0aabb3e

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12679

commit d729c1575e794bb9dafd1f7fcb0740735537504a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-29 00:15:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-31 01:48:14 +0900

    Output object_id in ObjectSpace.dump

    Outputs the object ID in the dump for objects that have it seen.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12657

commit f0dc9dcdc7a3b15b3192b1503a3c3d9eec3ada06
  Author:     Fabio Sangiovanni <sjh+github@sanjioh.org>
  AuthorDate: 2025-01-29 22:57:58 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-31 00:20:47 +0900

    rb_alias: improve "undefined method" error message by invoking
    `rb_print_undef` with `target_klass` as argument.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12665

commit 50327913303d3b821720476406190cbfb6382492
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-30 04:00:23 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-31 00:10:48 +0900

    Fix conversion of RubyVM::FrozenCore to T_ICLASS

    We shouldn't directly set the flags of an object because there could be
    other flags set that would be erased. Instead, we can unset T_MASK and
    set T_ICLASS isntead.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12667

commit a084fef9afc7713aa4f4111f7e826c7ca1a607c7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-30 03:56:56 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-31 00:10:48 +0900

    [Bug #21099] Fix GC when Ractor list not initialized

    When the Ractor list is not initialized and a GC is ran at boot, then it
    would crash because the newobj_cache of the main Ractor is not cleared.
    This commit changes it to use ruby_single_main_ractor when it's available
    and iterate over the Ractor list when we have multiple Ractors.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12667

commit 4cfc904d9706512732d06c17238be9eaff7e4ca9
  Author:     Kerrick Long <me@kerricklong.com>
  AuthorDate: 2025-01-26 14:25:06 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-30 18:45:29 +0900

    [DOC] Fix article-noun agreement

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12635

commit 4bde1493a792ee88110717e6cf20619ee0bc99c2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-30 16:59:18 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-30 18:19:53 +0900

    Make node line macros inline functions

    To suppress -Waddress warning and for the debugging purpose.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12676

commit aca0b92c2fa8b45647bf0e0e709213f46b5cb93f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-30 16:59:03 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-30 18:19:53 +0900

    `prev_mn_schedulable` might be clobbered by `longjmp`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12676

commit 167985dc871aca74d1b50f3766da1b775f7962e9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 17:35:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 18:13:19 +0900

    Handle environment where GEM_HOME is not available

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12675

commit dc3d2a3c2ff20c40b715dd18e1ab52a4b8a7619d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-30 12:27:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-30 16:56:02 +0900

    [ruby/json] Avoid plain char for ctype macros

    On some platforms ctype functions are defined as macros accesing tables.
    A plain char may be `signed` or `unsigned` per implementations and the
    extension result implementation dependent.

    gcc warns such case:

    ```
    parser.c: In function 'rstring_cache_fetch':
    parser.c:138:33: warning: array subscript has type 'char' [-Wchar-subscripts]
      138 |     if (RB_UNLIKELY(!isalpha(str[0]))) {
          |                              ~~~^~~
    parser.c: In function 'rsymbol_cache_fetch':
    parser.c:190:33: warning: array subscript has type 'char' [-Wchar-subscripts]
      190 |     if (RB_UNLIKELY(!isalpha(str[0]))) {
          |                              ~~~^~~
    ```

    https://github.com/ruby/json/commit/4431b362f6

commit 7f70ef64aff9b22b080690cdf9a725a2acb70f17
  Author:     Edouard CHIN <chin.edouard@gmail.com>
  AuthorDate: 2025-01-30 07:27:19 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-30 16:56:02 +0900

    [ruby/json] Few doc tweaks:

    - Also modified the gemspec files' blob as the ragel's `parser.rl`
      file was removed in https://github.com/ruby/json/commit/c8d5236a921e

    https://github.com/ruby/json/commit/b2b106e314

commit 2880ec0948bea9d5fffa2395498b91197a62e1fb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 15:37:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 16:30:52 +0900

    Use https://github.com/ruby/net-imap/pull/389 for flaky tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12674

commit 2b6fc9ea7212543a1be26768403f59c7a759b5ea
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-30 14:23:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-30 14:52:01 +0900

    [Bug #21092] Fallback variables after execonf has done

    When reading from a dummy makefile, the global variables initialized
    in `init_mkmf` may not be overridden.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12673

commit 8f77e694f999d4ccc344a5f4f4538a928705989f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-30 14:11:24 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-30 14:18:31 +0900

    [ruby/resolv] `w32error_raise` never returns

    https://github.com/ruby/resolv/commit/d00e86f7e4

commit 895aa44b81013513e1e504a683ee6eaa6f03bb46
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 12:52:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 12:52:51 +0900

    bin_path_spec.rb relied to available Ruby environment with after `make install`

    But we stub-out GEM_HOME variable for test-bundled-gems and others on ruby/ruby. It means
    the installation path mismatched with GEM_HOME variable always. We can't test this example
    collectly.

    ```
    1)
    Gem.bin_path finds executables of default gems, which are the only files shipped for default gems FAILED
    Expected File.exist? "/Users/hsbt/Documents/github.com/ruby/ruby/.bundle/gems/bundler-2.7.0.dev/exe/bundle"
    to be truthy but was false
    ```

commit 19ba093c94ffff06b3c89003900c9b9f5e1b18ea
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 11:27:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 12:07:54 +0900

    Try to use parallel execution of mingw tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12672

commit af508a6d105badae998c46ffb62a5e8e2b75883c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 10:27:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 11:24:34 +0900

    Skip irb examples, I will handle related workarounds later

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12671

commit 3dda488782365b1dea3756c5aa1d7673d997df2f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-30 09:40:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-30 09:40:12 +0900

    Removed executables of bundled gems

commit 5a7089fc03fb77da6f0f6c005a9a0ef655660cff
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-30 04:59:26 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-30 09:09:39 +0900

    YJIT: A64: Remove assert that trips when OOM at page boundary

    With a well-timed OOM around a page switch in the backend, it can return
    RetryOnNextPage twice and crash due to the assert. (More places can
    signal OOM now since VirtualMem tracks Rust malloc heap size for
    --yjit-mem-size.)

    Return error in these cases instead of crashing.

    Fixes: https://github.com/Shopify/ruby/issues/566

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12668

commit de45755de803577f0a5593623c162384affa36f1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-30 00:38:11 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-30 03:22:04 +0900

    Use an identity hash instead of array for stress_to_class

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12664

commit 5e644e80e9155414188e337b0af48f8d661e593a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-30 00:07:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-30 03:22:04 +0900

    Fix GC.add_stress_to_class and GC.remove_stress_to_class

    These methods were accidentally removed in [Feature #20470]. This commit
    adds them back.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12664

commit 1b731c1f439c73f98d49b476b859a6ec22c81da0
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-29 23:08:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-30 02:14:41 +0900

    [ruby/openssl] pkey: avoid calling i2d_PUBKEY family on an incomplete key

    Call ossl_pkey_check_public_key() to ensure that
    EVP_PKEY_missing_parameters() passes. This check should be cheap.

    DSA#{to_der,to_pem,export,to_s} and PKey#{public_to_der,public_to_pem}
    cause a segfault if the receiver is an empty DSA instance with no
    parameters set.

    Fixes <https://github.com/ruby/openssl/issues/845>.

    https://github.com/ruby/openssl/commit/5aeed935e5

commit 81c83fd79f8abed2bd000fea6e75c3ad9ab0e662
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-30 00:07:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-30 02:14:40 +0900

    [ruby/openssl] test/openssl/test_ossl.rb: use clock_gettime for measuring time

    The benchmark library is planned to become a bundled gem in Ruby 3.5.
    While we can add it in our Gemfile, it is only used in
    test_memcmp_timing and the usage can be easily replaced with a few
    Process.clock_gettime calls.

    https://github.com/ruby/openssl/commit/9a746ed1a4

commit d3bb42776c4232c51729c77da91c127e79468b27
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-01-30 00:16:47 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-30 00:16:47 +0900

    [DOC] Tweaks for rb_hash_s_try_convert

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12632

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit 63b6323e049ccab4ea5ecc716a2be61b8e6b4c3b
  Author:     Misaki Shioi <31817032+shioimm@users.noreply.github.com>
  AuthorDate: 2025-01-29 22:19:04 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-29 22:19:04 +0900

    Ensure that memory is not freed before calling `free_fast_fallback_getaddrinfo_*` (#12661)

    Ensure that `getaddrinfo_entry` and `getaddrinfo_shared` exist before free them in the main thread.

  Notes:
    Merged-By: shioimm <shioi.mm@gmail.com>

commit 2d3d7a74e91ac521bbcedcc350f6b6877b61faa3
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-29 21:53:00 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-29 21:53:00 +0900

    [DOC] Fix wrong call-seq format (#12662)

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit e01b4ca1c8eb24528b950bf77c9d0415bf1a1719
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2025-01-29 17:33:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-29 17:51:42 +0900

    [ruby/error_highlight] Ensure first_line and last_line are set

    Fixes https://github.com/ruby/error_highlight/pull/58

    https://github.com/ruby/error_highlight/commit/9ddc1f31a9

commit be44d5677d67b7f365eedfd81fda495a75e60f16
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 16:57:16 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-29 16:57:16 +0900

    Suppress unused-value warnings

commit cb586b2717bb0b23576cdb42f030e626cb6b8579
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-01-29 14:49:17 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-29 14:49:17 +0900

    Launchable: Use Zero Input Subsetting (#12650)

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit ff64806ae51c2813f0c6334c0c52082b027c255c
  Author:     Anastasia Belova <abelova@astralinux.ru>
  AuthorDate: 2025-01-28 21:08:54 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-29 10:35:28 +0900

    Fix possible dereference of NULL

    In some places in compile.c (for example in compile_builtin_arg)
    ERROR_ARGS macro is used while node = NULL. This macro uses nd_line
    which dereferences node. Add check for NULL to prevent such errors.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12656

commit a34b95fef973baa718b8c56324d45e5080ac0030
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-29 07:40:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-29 09:04:28 +0900

    Use https://github.com/ruby/net-smtp/pull/90

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12659

commit 4a06ef98bfd480a3d724b16c2d7da071e373a69c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-25 02:50:40 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-28 23:06:43 +0900

    Remove results workflow from modgc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12630

commit d3abee739f4feb91bb9aaae33877d70c8c576db0
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-01-28 21:20:08 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-28 21:20:08 +0900

    Add fallback for `hostname` if `uname` isn't available. (#12655)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit baf22a057887ec9e3a03203f607029f2517ae758
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-01-27 23:41:46 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-28 18:22:35 +0900

    Remove rb_usascii_encoding for Parser

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12643

commit 50e34fd7683ff77fae8c822096c8bf5f3ca12402
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-21 17:33:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:42:20 +0900

    Allow JSON::Fragment to be used even in strict mode

commit 89e316ad06f28f473030da04f33711328dc143c5
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2024-12-16 20:25:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:41:47 +0900

    Introduce JSON::Coder

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

commit 53cf2170f9fb1b2686ba3927609833a821c64b46
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-21 18:16:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:39:17 +0900

    [ruby/json] Update gemspec URIs

    https://github.com/ruby/json/commit/edd61b4a8b

commit 77af41ea6525d94ac3bc97ddbdbceb8665d397ca
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-21 16:52:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:39:17 +0900

    [ruby/json] Add some JSON::Fragment documentation

    https://github.com/ruby/json/commit/dbcf614e50

commit 53f0ebf938539e7ee847d1f900ac793d9cd9825a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 21:30:27 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:37:55 +0900

    Ignore vendor folder for documentation just once

commit b48febf27f6ca40f712ead68a0cba890cf6f9c1b
  Author:     Akshay Birajdar <akshaybirajdar05@gmail.com>
  AuthorDate: 2025-01-27 14:48:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:58 +0900

    [rubygems/rubygems] Remove respond_to? check for Thread#name=

    Since bundler now requires 3.3.1, we no longer need to do respond_to?
    check before setting thread name.

    https://github.com/rubygems/rubygems/commit/bfc37fc7db

commit 9b2ebfc7294a61eec32962be0547dec8321b8330
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 01:46:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:57 +0900

    [rubygems/rubygems] Fix bug report template incorrectly showing up

    If a gem has an internal error, that should not make `bundle console`
    print the bug report template.

    https://github.com/rubygems/rubygems/commit/7432a9a084

commit 83b4de8520e6ef10dfb0207c923f8ad343282d6d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:58:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:57 +0900

    [rubygems/rubygems] Remove unnecessary check

    At this point, `dep.autorequire` is always nil.

    https://github.com/rubygems/rubygems/commit/0fb2b0a70a

commit 0e985e13fef8ba6c819433fd5418279e93a34a67
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:49:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:56 +0900

    [rubygems/rubygems] Remove unnecessary initialization

    This local variable is initialized later on in this file.

    https://github.com/rubygems/rubygems/commit/5c15dbd210

commit 6460777cdedc55e9f40930f3ade3193943fbfab9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:40:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:55 +0900

    [rubygems/rubygems] Retry namespaced require using `retry`

    It's simpler.

    https://github.com/rubygems/rubygems/commit/76f1e3bf05

commit 7ae6aa0efccc486da6c7c32f7d06bff6e4770870
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:22:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:55 +0900

    [rubygems/rubygems] Handle all `Bundle.require` exceptions at the same level

    https://github.com/rubygems/rubygems/commit/a5519f4f79

commit d157aa7a9774c3725f3043fda408582ba2b09531
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:10:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:54 +0900

    [rubygems/rubygems] Remove dead code

    LoadError is not a RuntimeError.

    https://github.com/rubygems/rubygems/commit/4c67549722

commit f6e7f5337b882611c44628467a97358156cff62c
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-25 00:08:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:53 +0900

    [rubygems/rubygems] Remove unnecessary `@autorequire` initialization

    It's initialized again later on.

    https://github.com/rubygems/rubygems/commit/c3ddc81659

commit d8394461fd11df51cb743b4bb4d156d6cf6b0131
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-22 01:21:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:53 +0900

    [rubygems/rubygems] Support installing arm native gems on Windows

    https://github.com/rubygems/rubygems/commit/96496e3f53

    Co-authored-by: Johnny Shields <johnny.shields@gmail.com>

commit 47888801043e2c7ca8be03a5a5bbfae6cd1748b7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-22 01:36:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:52 +0900

    [rubygems/rubygems] Reuse platform constants

    We need to move platform monkeypatching to happen earlier because
    otherwise `Bundler::GemHelpers` will use the constants before they have
    actually been defined.

    https://github.com/rubygems/rubygems/commit/086c3438dc

commit 4035003fd03d91b7b2856d97d58ad23f930e42cd
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 20:23:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:51 +0900

    [rubygems/rubygems] Remove duplicated `bundle install`

    https://github.com/rubygems/rubygems/commit/1774ac5db1

commit 0603c1c68f12b919db98e4a3194ba0f70f3487e7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 20:22:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:51 +0900

    [rubygems/rubygems] Define `Bundler::SpecSet#to_s`

    For better debuggability.

    https://github.com/rubygems/rubygems/commit/21d252fa7a

commit 10af7a6a459ee27dab91b47c047125e5b056edc7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 20:20:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:50 +0900

    [rubygems/rubygems] Use RubyGems helpers for finding a non local tag for specs

    https://github.com/rubygems/rubygems/commit/a1d4ec1a3f

commit 09b04fefb728bf0514e0e911aac894e05abaa605
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 19:58:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:49 +0900

    [rubygems/rubygems] Remove unnecessary platform helpers

    I think they add unnecessary indirection and inconsistency to the specs.

    https://github.com/rubygems/rubygems/commit/609924d985

commit 8ad78347960af2def6ada8d6bc5245193ef652c1
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 19:38:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:49 +0900

    [rubygems/rubygems] Remove unnecessary test code

    It's always going to be either the first or the second platform in the
    list so no need to keep an explicit list of all platforms.

    https://github.com/rubygems/rubygems/commit/5d3cdb3855

commit 9c94b8feaf7090ce1de59091bbe2e5e7d2726790
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 17:34:55 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:48 +0900

    [rubygems/rubygems] Improve simulating Windows during Bundler specs

    https://github.com/rubygems/rubygems/commit/b48168bf1f

commit 22359cda1ce097c39804dfd7888c33eb12b42e71
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-21 18:28:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:47 +0900

    [rubygems/rubygems] Refactor specs to use platform strings directly

    https://github.com/rubygems/rubygems/commit/d24c0c20e3

commit c28ce7604f25d6f0b1cd03ff50d1e7bd1e21775b
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-22 19:44:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:47 +0900

    [rubygems/rubygems] Remove unnecessary mapping

    I don't think any supported platform has these names, so the mapping
    should be unnecessary.

    https://github.com/rubygems/rubygems/commit/6b1bdfc8a8

commit 77b1b3be30957724e2b82ac64c68ba232bdbc2bf
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-23 21:55:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:45 +0900

    [rubygems/rubygems] Fix typo

    https://github.com/rubygems/rubygems/commit/639b970c64

commit 4de44cb07f81d53b171e46366ab5b35fe60d4f5d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-20 18:26:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:31:43 +0900

    [rubygems/rubygems] RDoc is no longer a default gem in Ruby 3.5

    https://github.com/rubygems/rubygems/commit/0e889ae7fb

commit 4c73c3115ebcd164b6d58931f4ffef09a2f93176
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-28 14:44:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:20:59 +0900

    Increased job number on Cygwin build

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12649

commit daeac9994e2eda2b5480293a745ee157f6af3104
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-28 11:22:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:20:59 +0900

    Use the latest commit of ruby/syslog

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12649

commit bfd5df0d294b6c3046765acbf2d0ccb2cb23f1b0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-28 10:31:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 15:20:59 +0900

    Try to extract bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12649

commit 92b87c4998d13acddb2567eee4e84e2f4fe54a60
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-28 09:03:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-28 10:53:15 +0900

    Use the latest versions of irb and reline

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12648

commit 46b544c54955348ef1ea9692b837b061f59f91cd
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-01-28 09:36:06 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-28 09:36:06 +0900

    Prefer `uname -n` over `hostname`. (#12647)

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit cb9aeb283bc07de1c2f73aae3616f9e50a65326a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-28 01:57:42 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-28 03:26:26 +0900

    Fix gc_update_references_weak_table_i for ASAN

    If the object is a T_MOVED, then it is poisoned in ASAN, so we need to
    unpoison it before checking the type.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12644

commit feec48ae2b3241540fc61047252a5e83e5185e07
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-25 00:17:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-28 00:28:36 +0900

    Fix rb_gc_vm_weak_table_foreach compatibility for MMTK

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12629

commit 98b36f6f3661430a29ee1fe40d28b9abeeb903f5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-25 00:16:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-28 00:28:36 +0900

    Use rb_gc_vm_weak_table_foreach for reference updating

    We can use rb_gc_vm_weak_table_foreach for reference updating of weak tables
    in the default GC.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12629

commit 9e5ff79c5be426c3e6fef80449620075cbca7671
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-24 00:28:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-28 00:28:36 +0900

    Optionally traverse non-weak references in rb_gc_vm_weak_table_foreach

    For moving garbage collectors, we may want to combine liveliness checking
    with reference updating for performance. This commit allows for non-weak
    references to be passed into the callback function when weak_only is false.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12629

commit c3c7300b8924142173d6d16a9357468ba07d1da2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-27 17:19:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-27 17:19:32 +0900

    readline is also removed from sync target

commit 6096a72c1d7177bd4e1a7209be7d789319d6d3c5
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-27 17:15:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-27 17:15:49 +0900

    Removed irb and reline from sync targets

commit 801885c7f9497271a9498367c0d47611daef385f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-27 14:50:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-27 14:50:57 +0900

    Move bundled_gems_spec-run task to exam because we repeatedly test bundled gems for debugging

commit b346b4974442eb85fc40e9be234714d1ce3c5a0e
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-01-25 03:13:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-27 06:54:57 +0900

    [DOC] Tweaks for rb_hash_s_create

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12631

commit d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-13 07:33:00 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-26 17:52:22 +0900

    rb_feature_p: skip `get_expanded_load_path` for absolute paths

    Ref: https://github.com/fxn/zeitwerk/pull/308

    ```ruby
    require 'benchmark'

    $LOAD_PATH << 'relative-path'

    autoload :FOO, '/tmp/foo.rb'

    puts Benchmark.realtime {
      500_000.times do
        Object.autoload?(:FOO)
      end
    }
    ```

    The above script takes 2.5 seconds on `master`, and only
    50ms on this branch.

    When we're looking for a feature with an absolute path, we don't
    need to call the expensive `get_expanded_load_path`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12562

commit dd863714bf377b044645ea12b4db48920d49694e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-23 01:01:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-25 01:07:20 +0900

    Remove dead vm_cc_valid_p

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12614

commit 22e5d83cd1149b8f2a91ed489993ba952d35a9d8
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-01-23 23:56:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-25 00:44:24 +0900

    [DOC] Tweaks for Hash.new

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12620

commit f6e259da87433c2b2f89e395ce535f78521c7625
  Author:     Xavier Noria <fxn@hashref.com>
  AuthorDate: 2025-01-24 18:17:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-24 19:25:26 +0900

    Improve docs of -I ruby option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12627

commit 96a5da67864a15eea7b79e552c7684ddd182f76c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-24 17:05:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-24 17:06:45 +0900

    Fix "Relax expectations of errors from `getgrnam`"

    Use `assert_raise_kind_of` instead of `assert_raise`, that rejects sub
    classes of the given exceptions.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12626

commit c51668d24962602b781a7348451de807f74b05be
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-24 15:51:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-24 15:51:28 +0900

    Add `Test::Unit::CoreAssertions#assert_raise_kind_of`

    Similar to `Test::Unit::assert_raise`, but allows sub classes too.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12625

commit ae94fca7887f2dbab9dc6fa6ae90fcaffde3d6b5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-24 15:53:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-24 15:53:08 +0900

    Add test for `Test::Unit::CoreAssertions#assert_raise_with_message`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12625

commit 47723bb59162f25b3dc9dbff22645f027fb2159a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-24 14:25:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Added tracer for irb test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit ca871b960962ac01ba4c26b5542b92317c75eeec
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-24 12:57:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Use workaround version of irb and reline

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 5422c0f7f84417a46f931ce57fdbb566d5037dd9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-24 11:09:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Update irb and reline, readline entries

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit be1d0fcdb0d69c47fe5ba17a848458ae649b6afa
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-11-13 16:56:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Added force_activate feature again

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 68095ffc1668c32d201f12e258891d028641e43c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 17:29:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    irb and reline are now bundled gems, we don't need to skip workaround for them

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 750e6195040ec3f9d0b172ac1a49a49d9b7d8ba0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 17:20:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Omit irb related examples temporary

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 6bdccb35fcbe0d5cefc63086a4fe25b0f1ede3ae
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 16:40:19 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Restructured irb related example at spec/ruby

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 0fdc9b9fd168f9d25d78c79a9e970be7d0967363
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 16:13:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-24 15:46:46 +0900

    Migrate irb and reline to the bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12624

commit 881924f2593e89e5ef78a73a4e14948a66ca0e08
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-23 22:55:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-24 10:45:08 +0900

    [ruby/uri] [DOC] Make documentation 100%

    https://github.com/ruby/uri/commit/fe7aa3dac2

commit 76a67e46608affe7e77700450e01a65cf33d15dc
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-01-24 08:37:52 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-24 08:37:52 +0900

    Launchable: Enable PTS observation mode (#12617)

    Launchable offers the Predictive Test Selection feature for speeding up CI execution. Predictive Test Selection leverages machine learning to identify the right tests to run for a specific code change. By analyzing data from past test runs and considering the changes being tested, Launchable determines which tests are most relevant.

    To evaluate the list of tests that Launchable selects, I enable PTS observation mode. Please note that there is no impacts on CI execution.

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 7ed08c4fd31c53d4c4e3713c390daff8064d2a52
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-23 04:51:44 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-24 00:24:35 +0900

    Fix memory leak in rb_gc_vm_weak_table_foreach

    When deleting from the generic ivar table, we need to free the gen_ivtbl
    otherwise we will have a memory leak.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12615

commit abde86afe819350174b60a8bc8f9e72807ac81b1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 16:07:20 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 16:09:48 +0900

    Update win32ole entries under the doc directory

commit 7494646101d828755e4c61f227f0c7a7e67ef693
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 12:00:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 16:09:29 +0900

    Use pure ruby library instead of C ext library for dependency warning example

commit d11ca207e9dd469b933be922544e78e5cc357187
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 10:46:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 16:08:56 +0900

    Use openssl instead of fiddle and erb for native extension test

commit a7dfd0c69f3d16b04141fa82632405c59e2b702e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-23 14:17:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-23 14:17:40 +0900

    Yield from `create_makefile` in bundled gems too

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12618

commit 7d25007bbbd5768b82e55b115b3ac4cc8f983d87
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 11:48:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 11:48:29 +0900

    Ignore to add Documentation label when we pushed doc and src both

commit 5244fd32431aeca9c46ab03bdf0d252d833353bb
  Author:     Olle Jonsson <olle.jonsson@gmail.com>
  AuthorDate: 2025-01-23 00:29:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 09:28:03 +0900

    Repair documentation markup in object.c

    Issue was visible in https://docs.ruby-lang.org/en/3.4/Kernel.html#module-Kernel-label-IO

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12613

commit 5b1caffcbaa90fb5ecb1c44f3b4381307645bdbc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-22 17:03:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 09:27:35 +0900

    Added actions/labeler

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12609

commit a1ba394626bec152010022d9aacbe1cd8425827e
  Author:     Olle Jonsson <olle.jonsson@gmail.com>
  AuthorDate: 2025-01-22 21:02:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 09:24:44 +0900

    [ruby/weakref] weakref.gemspec: Drop gemspec config on executables

    This gem does not expose any executables.

    https://github.com/ruby/weakref/commit/819471ce35

commit 9bec592cc46f89ce962d24f914682d40a1cea1e8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-23 08:39:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-23 08:39:50 +0900

    Skip test_params(OpenSSLDHTest) at rbs tests with test-bundled-gems

commit 6f6654e5045f1a86ba9522bfb71395eb58ac51aa
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-01-23 05:12:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-23 05:12:53 +0900

    [DOC] Hash defaults doc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12560

    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit c2908613368b2ae404d094a15df61d830fc46dc9
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-23 04:18:58 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 04:58:27 +0900

    [ruby/prism] Fix rescue modifier precedence

    Fixes [Bug #21048]

    https://github.com/ruby/prism/commit/07202005cb

commit 241ada7b1ca4fd71dc47a83d912ee25162a555d9
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-23 03:59:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 04:09:42 +0900

    [ruby/prism] Do not put empty statements in while because of -n

    Fixes [Bug #21085]

    https://github.com/ruby/prism/commit/ebb9c36a10

commit 495b1cad042b30c40b62b5ecea5a728ea3c2f4ac
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-22 03:22:22 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-01-23 01:45:52 +0900

    [ruby/openssl] ts: use TS_VERIFY_CTX_set0_{store,certs}() on OpenSSL 3.4

    In OpenSSL 3.4, TS_VERIFY_CTX_set_certs() and TS_VERIFY_CTX_set_store()
    are deprecated in favor of the new functions with "set0" in the names.

    The new functions have a slightly different behavior. They will free the
    previous value automatically. Increment the reference counter of
    X509_STORE before setting it to TS_VERIFY_CTX, and do not try to
    manually unset it.

    We avoided doing this to work around a bug that was present in older
    versions of OpenSSL, which has now been fixed in OpenSSL 1.0.2 by commit
    https://github.com/openssl/openssl/commit/bff9ce4db38b.

    https://github.com/ruby/openssl/commit/ce37f7d93a

commit 87316d58faa2d57e9f1c1df2f76584a129a60bcc
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-06-14 14:45:56 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-01-23 01:45:52 +0900

    [ruby/openssl] pkey: change PKey::{RSA,DSA,DH}#params to use nil for missing parameters

    The returned Hash from these methods contain 0 in place of a missing
    parameter in the key, for example:

            pkey = OpenSSL::PKey.read(OpenSSL::PKey::RSA.new(2048).public_to_pem)
            pp pkey.params
            #=>
            # {"n"=>#<OpenSSL::BN https://github.com/ruby/openssl/commit/286934673421[...snip]>,
            #  "e"=>#<OpenSSL::BN 65537>,
            #  "d"=>#<OpenSSL::BN 0>,
            #  "p"=>#<OpenSSL::BN 0>,
            #  "q"=>#<OpenSSL::BN 0>,
            #  "dmp1"=>#<OpenSSL::BN 0>,
            #  "dmq1"=>#<OpenSSL::BN 0>,
            #  "iqmp"=>#<OpenSSL::BN 0>}

    Let's use nil instead, which is more appropriate for indicating a
    missing value.

    https://github.com/ruby/openssl/commit/f247ec3dec

commit ec4592280fe1efcf65982c2a5c0d39b311d56575
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-05-21 16:53:15 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-01-23 01:45:51 +0900

    [ruby/openssl] pkey: implement PKey::{RSA,DSA,DH}#params in Ruby

    Move the definitions to lib/openssl/pkey.rb. They need not to be in the
    extension and can be implemented using existing methods.

    This reduces direct usage of the now-deprecated OpenSSL APIs around the
    low-level structs such as DH, DSA, or RSA.

    https://github.com/ruby/openssl/commit/c14178f387

commit 47fe59cd8299a04dfa7af41131d0563c0e6f5b98
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-06-14 14:50:21 +0900
  Commit:     Kazuki Yamaguchi <k@rhe.jp>
  CommitDate: 2025-01-23 01:45:51 +0900

    [ruby/openssl] pkey: add tests for PKey::{RSA,DSA,DH}#params

    Add missing test cases to verify the current behavior. The next patch
    will rewrite those methods.

    https://github.com/ruby/openssl/commit/c0e0669f9b

commit 72480389d149063f2c990227e9b490889f0fc407
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-12-22 00:35:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 01:45:19 +0900

    [ruby/openssl] ssl: fix SSLSocket#sysread leaking locktmp String on timeout

    Commit https://github.com/ruby/openssl/commit/3bbf5178a90e made blocking methods on SSLSocket follow the
    IO#timeout= value. The commit changed io_wait_readable() to potentially
    raise an exception without unlocking the String.

    The String is currently locked for the entire duration of a #sysread
    method call. This does not seem to be necessary, as SSL_read() does not
    require that the same buffer is specified when retrying. Locking the
    String during each SSL_read() call should be sufficient.

    https://github.com/ruby/openssl/commit/8f791d73f5

commit 4df16051be7acb9ed9631b8714cea826e4b535e8
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-23 01:06:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 01:07:04 +0900

    [ruby/mmtk] Remove unused lazy_static dependency

    https://github.com/ruby/mmtk/commit/f47a1e2d17

commit 8c4134a31e712a191187647ff94ac6cce51b9f66
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-23 00:58:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-23 00:58:56 +0900

    [ruby/irb] Use EnvUtil.rubybin instead of "ruby" in copy command
    test
    (https://github.com/ruby/irb/pull/1071)

    `ruby` is not always available.

    https://github.com/ruby/irb/commit/f6c5106364

commit 6821b0574980191e34149853af1962e81fc570ae
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-22 14:58:59 +0900
  Commit:     tomoya ishida <tomoyapenguin@gmail.com>
  CommitDate: 2025-01-22 23:08:34 +0900

    [ruby/irb] Bump version to 1.15.1
    (https://github.com/ruby/irb/pull/1070)

    https://github.com/ruby/irb/commit/df37b074e3

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12612

commit c066453118f5ecfb86282e02398a4da344e1cd79
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-22 10:39:55 +0900
  Commit:     tomoya ishida <tomoyapenguin@gmail.com>
  CommitDate: 2025-01-22 23:08:34 +0900

    [ruby/irb] Fix pager preview with escape sequence and newlines
    (https://github.com/ruby/irb/pull/1069)

    https://github.com/ruby/irb/commit/a139562a07

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12612

commit 9ce642c282921ed3f75d5ac0fd6d468f384b3ae4
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-22 01:12:28 +0900
  Commit:     tomoya ishida <tomoyapenguin@gmail.com>
  CommitDate: 2025-01-22 23:08:34 +0900

    [ruby/irb] Update documentation about the new copy command
    (https://github.com/ruby/irb/pull/1067)

    https://github.com/ruby/irb/commit/6194111611

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12612

commit 7813edbe19a2cd131aec5490a8ad314ded61e70e
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-21 22:58:05 +0900
  Commit:     tomoya ishida <tomoyapenguin@gmail.com>
  CommitDate: 2025-01-22 23:08:34 +0900

    [ruby/irb] Show a quick preview of inspect result before pager
    launch
    (https://github.com/ruby/irb/pull/1040)

    * Quickly show inspect preview even if pretty_print takes too much time

    * Show a message "Inspecting..." while generating pretty_print content

    * Update inspecting message

    Co-authored-by: Stan Lo <stan001212@gmail.com>

    * Update rendering test for preparing inspect message

    * Don't show preview if pretty_print does not take time

    ---------

    https://github.com/ruby/irb/commit/03c36586e6

    Co-authored-by: Stan Lo <stan001212@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12612

commit c6e8ee4514c8f24c211a5fb0b6291ac81ee83115
  Author:     Prajjwal Singh <sin@prajjwal.com>
  AuthorDate: 2025-01-21 06:39:34 +0900
  Commit:     tomoya ishida <tomoyapenguin@gmail.com>
  CommitDate: 2025-01-22 23:08:34 +0900

    [ruby/irb] Add copy command (https://github.com/ruby/irb/pull/1044)

    Closes https://github.com/ruby/irb/pull/753

    https://github.com/ruby/irb/commit/a24ac53d48

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12612

commit 89240eb2fbdbd9a46788b4976cd4bdf4cc58ada2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-22 06:36:03 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-22 22:54:52 +0900

    Add generic ivar reference updating step

    Previously, generic ivars worked differently than the other global tables
    during compaction. The other global tables had their references updated
    through iteration during rb_gc_update_vm_references. Generic ivars updated
    the keys when the object moved and updated the values while reference
    updating the object. This is inefficient as this required one lookup for
    every moved object and one lookup for every object with generic ivars.

    Instead, this commit changes it to iterate over the generic ivar table to
    update both the keys and values.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12607

commit 7070b1b1968f31f999636b42a1af872458cd5a81
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-22 18:19:54 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-22 18:19:54 +0900

    Relax expectations of errors from `getgrnam`

    The list of errors cited in 58bc97628c14933b73f13e0856d1a56e70e8b0e4
    is not exhaustive and other errors may be raised by `getgrnam`.
    Additionally, these errors are system dependent and may not be listed
    on all platforms.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12610

commit 9f78c727eab888288875c423effa18c0c808dbfc
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-01-22 15:59:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 15:59:48 +0900

    Update bundled gems list as of 2025-01-21

commit 99792d063458e5559f6cc8f26c186edccc995344
  Author:     Kouhei Yanagita <yanagi@shakenbu.org>
  AuthorDate: 2025-01-22 13:56:58 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-22 15:07:19 +0900

    [DOC] Fix code markup in String#match

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12608

commit 72fdba156d2963609141867b815e202d558582bf
  Author:     Theo Buehler <tb@openbsd.org>
  AuthorDate: 2023-10-20 05:37:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 03:17:06 +0900

    [ruby/openssl] Use X509_ALGOR_get0() accessor for X509_ALGOR

    While the struct is currently still public in OpenSSL, there has been
    an accessor since OpenSSL 0.9.8h. It would be nice if this accessor
    could be used so that the struct can be made opaque at some point in
    the future.

    https://github.com/ruby/openssl/commit/812aeab2f5

commit 43c48e3030c513c17bfcf4c37bbe533097fa1a22
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-21 02:08:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 03:14:14 +0900

    [ruby/openssl] Require OpenSSL 1.1.1 or later

    Drop support for OpenSSL 1.1.0. OpenSSL 1.1.0 was a non-LTS release and
    it has reached upstream EOL in 2019-12 along with OpenSSL 1.0.2.
    Distributions that shipped with OpenSSL 1.1.0 include:

     - Debian 9 (EOL 2022-06)
     - Ubuntu 18.04 LTS (EOL 2023-04)

    https://github.com/ruby/openssl/commit/ba83abe920

commit e7bd1d1a9a59e7af71b7f994dbea3697b70225f0
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-21 02:47:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 03:14:12 +0900

    [ruby/openssl] pkey/dh: do not skip test_params_ok? on LibreSSL

    https://github.com/ruby/openssl/commit/cd91cef590

commit be6644831146dcdbb1daeb124bcdda65e93c5201
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-22 02:01:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 02:02:18 +0900

    [ruby/mmtk] Bump mmtk-core

    Fixes a bug where there is an infinite loop when MMTK_HEAP_MIN is small.

    https://github.com/ruby/mmtk/commit/12c7ede20b

commit 6d806031edb14ffe19d80973ea5668decebccac5
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-22 01:56:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 02:02:17 +0900

    [ruby/mmtk] Add tests for MMTK_HEAP_MIN

    https://github.com/ruby/mmtk/commit/a725b95f51

commit abed4ea81029d7169ef07b85622dfbd98438dae0
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-22 01:24:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-22 01:24:12 +0900

    [ruby/irb] Bump version to v1.15.0
    (https://github.com/ruby/irb/pull/1066)

    https://github.com/ruby/irb/commit/d3531d8fc0

commit a47ed9f4aa069077f9ed254d38670a9da6577ed0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-21 23:12:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-21 23:12:38 +0900

    Fix lrama for snapshot

    - Old versions should compile parse.y by `bison` or the bundled
      version `lrama`, not the `lrama` in the running repository.

    - Check variables for ruby executable more strictly.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12605

commit 2b1db0faecf03d3fa1b7a1b102cc4c51aa962d5f
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-11 23:24:34 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-21 20:25:38 +0900

    Remove unnecessary assignments to local variables in `f_arg_asgn`

    Local variables are not reassigned and are not needed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12054

commit 3260b0b6471ae0d7c31c1047550d8cc8afbfe63c
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-11 23:22:36 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-21 20:25:38 +0900

    Remove unnecessary assignments to local variables in `strings`

    Local variables are not reassigned and are not needed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12054

commit 5d6f76cf6eea68749a761cf40c731f78fb17c2d9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-21 19:45:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-21 19:45:57 +0900

    ext/json/parser/prereq.mk is removed from sync target

commit b1d5d1666ea6486b3631080d394505451845cfee
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2024-12-11 06:48:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 17:03:42 +0900

    [ruby/resolv] Check for Windows in JRuby-compatible way

    https://github.com/ruby/resolv/commit/de95f557b0

commit d3bd8df2b8fac48e7fa614c41519ab9449b55d89
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-21 16:44:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 16:58:34 +0900

    [ruby/resolv] Use port number 0 for ephemeral port if save

    On platforms where ephemeral port randomization is implemented, the
    same randomization is not needed in the ruby library layer.

    Fixes https://github.com/ruby/resolv/pull/63.

    https://github.com/ruby/resolv/commit/45e1b563c0

commit e5f81e511f566edaf2ca871aa72dbb0260c242bf
  Author:     wanabe <s.wanabe@gmail.com>
  AuthorDate: 2025-01-19 10:17:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 12:32:15 +0900

    [ruby/error_highlight] Use `$stderr` instead of STDERR for Ractor

    https://github.com/ruby/error_highlight/commit/a221a4b0eb

commit f33a76bfa93898d32841e972f006fd96bd17a1f9
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-20 17:30:30 +0900
  Commit:     yui-knk <spiketeika@gmail.com>
  CommitDate: 2025-01-21 10:16:05 +0900

    Lrama v0.7.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12595

commit 769cccba56e3a1b7336d0cfadcfb9e0689e8f01f
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-19 20:09:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 03:03:13 +0900

    [ruby/prism] Fix parser translator scope issues for implicit hash values

    `builder.pair_label` is no good since it makes use of variables that the parser gem encountered.
    Since the prism translator doesn't keep proper track of that information, the following code interprets
    the implicit value as a local variable, even though it is not in scope:

    ```rb
    def foo
      bar = 123
    end

    { bar: }
    ```

    https://github.com/ruby/prism/commit/bbeb5b083a

commit c6c1e7a92a86154c4bec5d6ccac29adc37ce810d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-16 00:26:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 02:12:57 +0900

    [ruby/openssl] extconf.rb: remove dir_config("kerberos")

    The dir_config was introduced by Ruby trunk r4181. Since support for
    Kerberos cipher suites has been removed in OpenSSL 1.1.0, it is no
    longer necessary.

    Although ruby/openssl did not directly depend on the MIT Kerberos
    library, it was an optional transitive dependency. Unless it was
    disabled by a compile-time option, the OpenSSL headers would try to
    include <krb5.h>.

    https://github.com/ruby/openssl/commit/78d028c332

commit 441862dc9f11d83e9e35c3b965fe84e42e178a35
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-14 21:49:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 02:12:57 +0900

    [ruby/openssl] Require OpenSSL 1.1.0 or later

    Drop support for OpenSSL 1.0.2. It has reached upstream EOL in 2019-12.

    Most distributions that shipped with OpenSSL 1.0.2 have also reached
    EOL, or provide a newer version in the package repository:

     - RHEL 7 (EOL 2024-06)
     - Ubuntu 16.04 LTS (EOL 2021-04)
     - Amazon Linux 2 (EOL 2026-06, but OpenSSL 1.1.1 can be installed via
       the openssl11{,-devel} package)

    https://github.com/ruby/openssl/commit/38ec6fd50e

commit 010e8bff88b50a1c43515e3aa16030ec7a2b90c3
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-19 23:08:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 02:12:55 +0900

    [ruby/openssl] pkcs7: remove unnecessary const cast

    PKCS7_encrypt() and PKCS7_SIGNER_INFO_set() take const EVP_CIPHER and
    EVP_MD at least since OpenSSL 0.9.7.

    https://github.com/ruby/openssl/commit/9db621a5c0

commit 04cc762941cb4b6dfcc5f1904b03cde683eafc7f
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-09 16:01:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-21 02:12:55 +0900

    [ruby/openssl] engine: remove constants for ENGINE_METHOD_BN_MOD_EXP{,_CRT}

    These macros do not exist in OpenSSL 0.9.7 or later, which was released
    in 2002.

    https://github.com/ruby/openssl/commit/938a1e6aab

commit 5a448a87fca72ffc277e857d0440b8638ef22ad2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 05:59:19 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-21 00:31:36 +0900

    Remove dead function rb_func_proc_new

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12566

commit 5c95898e930051ecc48d5cd2dd3434c02dd661ad
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-01-20 23:08:04 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-20 23:52:56 +0900

    Remove rb_obj_as_string for Parser

    Ruby Parser not used rb_obj_as_string.
    And obj_as_string property can be removed from Universal Parser.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12603

commit 6d3951e788c8fae8b70cbd81ab0352cef372b4f3
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2025-01-20 22:56:37 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2025-01-20 23:48:08 +0900

    .travis.yml: Drop arm64 case.

    We started running a Linux arm64 case in GitHub Actions.[1] So, it's time to
    drop the Linux arm64 case in Travis CI.

    [1] https://github.com/ruby/ruby/commit/a9d37ac3e5385c7aaec64e32de3d254903f4b5c0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12604

commit 86b262179d94e864243419ac0425cd3f85f970de
  Author:     tompng <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-20 21:31:39 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 22:20:55 +0900

    [ruby/json] Reject invalid number: `-` `-.1` `-e0`

    https://github.com/ruby/json/commit/b9bfeecfa9

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12602

commit 525d7a68e4e08aca39ef8ec6af1e78d489cf0bd5
  Author:     tompng <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-20 20:44:37 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 22:20:55 +0900

    [ruby/json] Raise parse error on invalid comments

    https://github.com/ruby/json/commit/2f57f40467

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12602

commit c026e44bb557dc42516785beba00452fa462738e
  Author:     tompng <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-20 20:42:20 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 22:20:55 +0900

    [ruby/json] Fix parsing incomplete unicode escape "\uaaa"

    https://github.com/ruby/json/commit/86c0d4eb7e

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12602

commit 2b4b7bdb10dc8671bbc9e757f05bb74355891062
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-20 19:39:25 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 22:20:55 +0900

    [ruby/json] Fix JSON::Fragment#to_json signature

    https://github.com/ruby/json/commit/f8817fe56c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12602

commit e8676cada82ed9947502b416eaa948258a62d7b9
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-01-20 19:12:09 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 22:20:55 +0900

    [ruby/json] Introduce JSON::Fragment

    https://github.com/ruby/json/commit/9e3500f345

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12602

commit ba44e92573f5fdd23d29cfb49d8afe78287d5f79
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-20 16:42:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-20 21:37:20 +0900

    ext/json no longer uses ragel

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12599

commit 8c30970c58fff823b827b5643585ce96a6340853
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-20 18:03:28 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 18:31:56 +0900

    Revert "Skip RBS::SchemaTest"

    This reverts commit 4404688a0e9e606aea870d79f5e8be6ac1524335.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12600

commit 33708f2dc4f8327aa70fe10a53423b13da85e69e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-20 16:34:40 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-20 18:31:56 +0900

    [ruby/json] Fix a regression in the parser with leading /

    Ref: https://github.com/ruby/ruby/pull/12598

    This could lead to an infinite loop.

    https://github.com/ruby/json/commit/f8cfa2696a

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12600

commit 4404688a0e9e606aea870d79f5e8be6ac1524335
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-20 15:38:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    Skip RBS::SchemaTest

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit e3ba5207b5784dfee5405f10ad70d53b5f43f9e8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-20 13:00:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    Removed parser.rl from ext/json/parser/depend

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit df8f93848e46bf19b7b548fd30e033728a5f728f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-17 02:31:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] json_string_unescape: use memchr to search for backslashes

    https://github.com/ruby/json/commit/5e6cfcf724

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit ba8f22c040bcc1efdce30ba4110e9fc261345bd5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-17 01:42:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] Cleanup json_decode_float

    Move all the decimal_class option parsing in the constructor.

    https://github.com/ruby/json/commit/e9adefdc38

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit 6c6f9672e24e2baefd3b1017b960575c3f2af91d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-16 23:29:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] parser.c: Pass the JSON_ParserConfig pointer

    Doesn't make a measurable performance difference but is a
    bit clearer.

    https://github.com/ruby/json/commit/314d117c61

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit f664e863d852bc331c33eb96fb03ac85cbb8171d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-16 23:22:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] Use RSTRING_END

    https://github.com/ruby/json/commit/dd9c46c805

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit e4b54b0a3638ed89c6c0a9ca3f10b990b2bb008d
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-16 22:53:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] Replace fbuffer by stack buffers or RB_ALLOCV in parser.c

    We only use that buffer for parsing integer and floats, these
    are unlikely to be very big, and if so we can just use RB_ALLOCV as it will
    almost always end in a small `alloca`.

    This allow to no longer need `rb_protect` around the parser.

    https://github.com/ruby/json/commit/994859916a

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit 99e9eb5380a7a58880bef459c740e91369b8dab2
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-16 22:36:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    [ruby/json] Implement write barriers for ParserConfig objects

    https://github.com/ruby/json/commit/591056a526

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit ef585744c0db927efa8fbb072912458c2200bb5e
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-15 20:54:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 16:09:00 +0900

    Finalize Kevin's handrolled parser.

    And get rid of the Ragel parser.

    This is 7% faster on activitypub, 15% after on twitter and 11% faster
    on citm_catalog.

    There might be some more optimization opportunities, I did a quick
    optimization pass to fix a regression in string parsing, but other
    than that I haven't dug much in performance.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12598

commit 1c8fc25b889b6f6b61d26669d4f7559a8b9884d6
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-16 16:03:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 13:50:29 +0900

    [rubygems/rubygems] Fix broken link in `bundle issue` output

    https://github.com/rubygems/rubygems/commit/0909f07f30

commit ee7b74799ca2de454fb708a70a0b2e30b46e8f57
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-16 00:50:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 13:50:27 +0900

    [rubygems/rubygems] Fix `--prefer-local` not respecting default gems

    https://github.com/rubygems/rubygems/commit/3df86cd9c6

commit 891ecc63ac5c232081eea9597bbf366239707b77
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-16 00:15:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 13:50:26 +0900

    [rubygems/rubygems] Consistently assert command failure

    https://github.com/rubygems/rubygems/commit/faaa594a4a

commit 976cee57b126cd0876bf3a1f1a1d58266e488643
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-03 04:29:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 13:50:25 +0900

    [rubygems/rubygems] Don't fallback to evaluating YAML gemspecs as Ruby code

    https://github.com/rubygems/rubygems/commit/ca0a7ff8cd

commit b00315e95a7154d5b8c84c61c65fa21a3424aa06
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-20 12:25:47 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 12:25:47 +0900

    win32ole is bundled gems now

commit af81011cb63564e1e146d5ce2b12c3dd8939f01c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-17 11:53:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 10:15:08 +0900

    Supply LIBCLANG_PATH for clang-14 for yjit-bindgen

    Or else it gets confused from all the different versions of LLVM in the
    image.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12589

commit d2ef8861b4c3f9e9c0b4265a6842436f46bed833
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-17 04:04:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 10:15:08 +0900

    Use clang-14 to match the libclang version bindgen finds by default

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12589

commit a41e9d8f9abac7373e3429a07584bdef2dcc3f90
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 18:02:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 10:15:08 +0900

    Use configu.guess with wasi compatible version

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12589

commit 10d129120584f1bcbbdd44bc2f07b25b41786a2c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 16:08:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 10:15:08 +0900

    sd ubuntu-20.04 ubuntu-22.04 .github/workflows/*

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12589

commit 9a4d82fb098c8451effd765436e7e3e8ca4bf096
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 16:05:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-20 10:15:08 +0900

    Ubuntu 20.04 will be EOL at Apr 2025

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12589

commit f27ed98effff9891d28edc7119d45811bcedd510
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-19 20:22:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-19 21:44:20 +0900

    [ruby/prism] Freeze `Prism::VERSION`

    Closes https://github.com/ruby/prism/pull/3422

    https://github.com/ruby/prism/commit/b488a84253

commit 65a7c691884a3f50787d5cd94575a7881a2af3f1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-17 22:00:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-18 09:19:17 +0900

    CI: Skip setup-ruby on Ubuntu arm64

    Use system default 3.2.3, until setup-ruby supports Ubuntu arm64
    runners.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12594

commit a9d37ac3e5385c7aaec64e32de3d254903f4b5c0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-17 20:21:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-18 09:19:17 +0900

    CI: Add Ubuntu arm64

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12594

commit 5fceba661469ee34de462e36c053dce20de02f82
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-18 00:44:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-18 00:44:24 +0900

    [ruby/mmtk] Add mmtk_heap_max to GC.config

    https://github.com/ruby/mmtk/commit/6a78ffaf16

commit 1574b9045144a3d7eec633e2c9daf3577896d0f7
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-01-18 00:15:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-18 00:15:39 +0900

    [ruby/psych] Bump version for release

    https://github.com/ruby/psych/commit/2af9f6ac02

commit f7059af50a31a4d27a04ace0beadb60616f3f971
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-17 22:48:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-17 22:48:10 +0900

    Use no-inline version `rb_current_ec` on Arm64

    The TLS across .so issue seems related to Arm64, but not Darwin.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12593

commit ac45edc64da65e66f03c98f67824da44f847fb22
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-01-16 20:41:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-17 08:29:54 +0900

    Bump bundled RDoc version to 6.11.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12590

commit 179899c6165a3a525a184781c9aafcd816d4f767
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-17 06:40:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-17 06:40:31 +0900

    [ruby/mmtk] Add mmtk_heap_min to GC.config

    https://github.com/ruby/mmtk/commit/5bbac70c69

commit d05f6a9b8f1b262db234110935ac5f9cba2e7516
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-17 01:19:57 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-17 01:20:06 +0900

    [ruby/mmtk] Add NoGC back to MMTK_PLAN test

    https://github.com/ruby/mmtk/commit/89f8b8be04

commit d1a30359b1aa2a9b2c2426b333ee9cf167f8f263
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-17 01:19:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-17 01:20:05 +0900

    [ruby/mmtk] Bump mmtk-core

    https://github.com/ruby/mmtk/commit/52b857ea04

commit 2538f4d521249463d4564f7bc05606eb2f7caff0
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 04:01:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-17 01:20:04 +0900

    [ruby/mmtk] Add mmtk_heap_mode to GC.config

    https://github.com/ruby/mmtk/commit/810f897603

commit d78aef5e3fed43893a58aa7c524ff4d4fe6674a4
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 23:28:34 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-17 00:31:47 +0900

    Add not null checks to rb_gc_vm_weak_table_foreach

    If the tables are null (which happens when a GC is ran at boot), it will
    segfault when trying to iterate.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12591

commit 5df20ab0b49b55c9cf858879f3e6e30cc3dcd803
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-16 20:11:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-16 22:22:43 +0900

    Un-constify `mark_current_machine_context` on wasm

    As `SET_STACK_END` updates `ec->machine.stack_end`, it cannot be
    const.

commit fe03cc22e6b7e213ff349ce1237fffbf1a9bfbe0
  Author:     kaiba <kaibadash@gmail.com>
  AuthorDate: 2025-01-16 22:02:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 22:02:45 +0900

    [ruby/reline] Fix typo: marco -> macro
    (https://github.com/ruby/reline/pull/806)

    https://github.com/ruby/reline/commit/2111172302

commit 253329343cf7c82af8b456ab741ae4d863187bf4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 13:45:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 19:41:13 +0900

    [rubygems/rubygems] Introduce Spec::Path.sinatra_dependency_paths for sinatra mock server

    https://github.com/rubygems/rubygems/commit/0a168156d5

commit e7de621b5a49a83b6ebf824fd284d24783f95988
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-14 15:41:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 19:41:12 +0900

    [rubygems/rubygems] Revert RubyGems plugins getting loaded on `Bundler.require`

    These changes were included when adding bundler plugin hooks for
    `Bundler.require`, but they seem completely unrelated to that feature,
    and have caused several issues.

    https://github.com/rubygems/rubygems/commit/8d56551dcf

commit 10e7e92badce82f25118b6c0673ea7b3ce97e54d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-16 04:59:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 19:41:11 +0900

    [rubygems/rubygems] Extract logic to manipulate RUBYLIB in specs to a helper

    https://github.com/rubygems/rubygems/commit/0057382bb1

commit 3638f67069e8186258445a66317660ecf64dc932
  Author:     Michael Rykov <mrykov@gmail.com>
  AuthorDate: 2025-01-15 19:12:45 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 19:41:11 +0900

    [rubygems/rubygems] fix `@licenses` array unmarshalling

    https://github.com/rubygems/rubygems/commit/12f3e78c95

commit 142001cd64fcb7ec6896f04b0c837857590e26ce
  Author:     Lars Kanis <lars@greiz-reinsdorf.de>
  AuthorDate: 2025-01-15 22:26:02 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-16 19:19:46 +0900

    Fix callcc on Windows on ARM64

    Otherwise using callcc fails with a segfault for instance in this test case:
      TestEnsureAndCallcc#test_bug20655_extension_using_rb_ensure

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12580

commit 0d6506170e8e990e90001cb30f0fa67176ed1710
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-16 15:35:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-16 15:35:50 +0900

    downloader.rb: Use keyword arguments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12588

commit f2c9eac887cd192f30fcd8caf165e42787b5d5ae
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-16 13:27:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-16 15:20:28 +0900

    [DOC] Follow up link to heading changes

    The section "Special global variables" has changed:
    e021754db013ca9cd6dbd68b416425b32ee81490: Special Global Variables
    2b4b513ef046c25c0a8d3d7b10a0566314b27099: Regexp Global Variables
    e50b7bf784b53ac126986dd7f9fd22ccc9b59c60: Regexp@Global+Variables

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12587

commit e65986c9bc5485d2f784bac6aadd20ee9e6420e7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-16 13:12:58 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-16 14:21:37 +0900

    [DOC] Add reference from global variables to equivalent MatchData

    c.f. #21040

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12587

commit 32cb4b204dd23db339ad567fa2cb41bb075a1f6c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-16 14:03:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-16 14:03:45 +0900

    [DOC] Link to MarkupReference directly

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12586

commit f78447c9e8de23c652322a0d5b1696a08e098825
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 10:06:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 12:35:21 +0900

    Define dummy lib_dir of win32ole

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12583

commit 8d319edf38a7e04b59ffaa74b1ac7bc4c1551abe
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 09:39:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 12:35:21 +0900

    Skip win32ole tests without Windows platform

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12583

commit 4e563d9c5134acc38eb1ebc73aadcbefb05cd992
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 09:14:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 12:35:21 +0900

    Disabled to existence test for win32ole

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12583

commit 721891688b33bf03949a1828f476850348cc6341
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 09:13:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 12:35:21 +0900

    Migrate win32ole as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12583

commit d492cfdaadf9e936217e80e0899809313ff4b3d5
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-16 12:29:57 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-16 12:29:57 +0900

    Align defined? implementations between parsers (#12584)

    Fixes [Bug #21043]

  Notes:
    Merged-By: kddnewton <kddnewton@gmail.com>

commit 931a870606f4e286a1c7bacf022940994f3c431b
  Author:     Benjamin Quorning <benjamin@quorning.net>
  AuthorDate: 2025-01-16 05:48:14 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 10:47:46 +0900

    [ruby/prism] Increase value of PRISM_DEPTH_MAXIMUM to 10000

    The previous value of 1_000 was added with a reference to the Bison
    parser[^1], but the value of YYMAXDEPTH in the Bison docs is 10_000,
    not 1_000.

    [^1]: https://www.gnu.org/software/bison/manual/html_node/Memory-Management.html

    Fixes [Bug #21044]

    https://github.com/ruby/prism/commit/e098533ab4

    Co-authored-by: Nony Dutton <nonydutton@gmail.com>

commit 91918bb01f15fc059d47b76d9753123cb9442ecb
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-16 04:30:41 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-16 09:01:11 +0900

    [ruby/json] Refactor JSONFixturesTest

    https://github.com/ruby/json/commit/c69963fbe5

commit a50d612a0cc50bfaa11913fdb1d5d48311ceb692
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2025-01-16 07:06:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 07:12:25 +0900

    [ruby/psych] Update to SnakeYAML-Engine 2.9

    Fixes ruby/psych#689

    https://github.com/ruby/psych/commit/ac887cdc76

commit 67744879a186a91bb8669c0980f78d7cd2d52f37
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 05:17:57 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-16 05:57:52 +0900

    Use existing vm variable for frozen strings in rb_gc_vm_weak_table_foreach

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12582

commit cd0abd696f9e5f5abff43f6c2aaa2ea5a68eb147
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-01-16 02:21:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 05:11:51 +0900

    [ruby/psych] remove vim settings

    https://github.com/ruby/psych/commit/2f46abf4e1

commit ab1565ebe3691d85c0cc38c895ad0b35b35abd40
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 03:07:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 03:08:03 +0900

    [ruby/mmtk] Add mmtk_plan to GC.config

    https://github.com/ruby/mmtk/commit/67da9ea5b8

commit e5ad894959c275fa8a7da7371a7dc411e67ed0a4
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-16 02:57:42 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 02:57:46 +0900

    [ruby/irb] Colorize backref token bold green like global variables
    (https://github.com/ruby/irb/pull/1065)

    https://github.com/ruby/irb/commit/0b60a5be1d

commit e02c7491e90cb9c8743da19ecad792465c11ca09
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 00:23:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 02:55:32 +0900

    [ruby/mmtk] Fix mmtk.h

    https://github.com/ruby/mmtk/commit/dbb4036be9

commit 65fa58d3aef07b09d8a2b6724ac2ea4b2d61610a
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-15 18:45:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 02:40:16 +0900

    [ruby/prism] Mark some parser translator tests as being known failures

    Without a change from `parser`, this is impossible to correctly handle.

    https://github.com/ruby/prism/commit/ca1d44e808

commit cb6476a34e62840c25db8b3c891687c22bb26bbc
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-16 00:12:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-16 00:13:36 +0900

    [ruby/mmtk] Bump mmtk-core

    https://github.com/mmtk/mmtk-core/pull/1261 fixes an issue where the following
    script causes a Rust panic:

        GC.disable
        10_000.times { Object.new }
        puts GC.stat

    https://github.com/ruby/mmtk/commit/6191ee994a

commit 6286d3858c8b609e30298b33caefda81da339748
  Author:     Lars Kanis <lars@greiz-reinsdorf.de>
  AuthorDate: 2025-01-15 22:59:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-15 23:37:20 +0900

    Fix ENV tests on Windows on ARM64

    Due to the x64 emulation of Windows 11 on ARM the environment variable PROCESSOR_ARCHITECTURE is set by the process startup code.
    It must therefore be excluded from tests.
    Otherwise tests fail like so:

    ```
    [30585/32394] TestProcess#test_execopts_unsetenv_others = 0.10 s
     16) Failure:
    TestProcess#test_execopts_unsetenv_others [C:/Users/Lars/ruby/test/ruby/test_process.rb:446]:
    <""> expected but was
    <"PROCESSOR_ARCHITECTURE=ARM64\n">.

    [30616/32394] TestProcess#test_execopts_env = 0.16 s
     17) Failure:
    TestProcess#test_execopts_env [C:/Users/Lars/ruby/test/ruby/test_process.rb:326]:
    <"PATH\n"> expected but was
    <"PATH\n" + "PROCESSOR_ARCHITECTURE\n">.
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12581

commit d399e0c2b64ac0080fae7df67e62b4fb85d53ff4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-15 22:11:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-15 22:11:47 +0900

    Move probes.h to all-incs

    It is platform dependent, should not generate by default.

commit 22feb020662405c9833902d8c72803c8f5311dbd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-15 22:10:40 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-15 22:10:40 +0900

    Do not expand empty DESTDIR

commit 2599ac38cd24669cb7afa8b08e735bd25eb1b30a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-15 20:49:18 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-15 20:49:18 +0900

    Expand `$destdir` to enable rdoc plugins for rubygems

    `Gem::InstallerUninstallerUtils#regenerate_plugins_for` assumes that
    `plugins_dir` is an absolute path as same as the target plugin files.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12579

commit fe2bc7783040a0e35477676a0cf61103ff3635a3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 17:12:17 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 17:13:16 +0900

    Update documents with the latest bundled gems

commit 21254c36e1e5208efa4847cd8a2653bf440f58dc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 16:54:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 17:13:16 +0900

    Removed sync target of rdoc

commit 39cfba0b5e4dd37d9b92916b36f0e4609e0b3fb9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 16:09:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    Disable to generate rubygems plugin

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit 667e938f1ddfc063f693bf3a06935016f1faf12f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 15:30:14 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    rdoc-srcdir can refer srcdir by itself

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit 2bfa49f28866f3d4dfecd04984ad180aff82bb7d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 12:36:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    Skip related tests with Gem::RDoc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit c6923278d81f6bac9a654d554ab1d581fd7ef372
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 12:23:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    Fixed missing kpeg issue with test-bundled-gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit 86575e243eda81a77ce2ede6a39e534eed9a5c3d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 12:09:31 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    Use rdoc provided by bundled gems for generating ruby documentation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit 86d871d29cda15810d9d60dc1b94a07e9530e0cb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-15 11:52:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-15 16:52:56 +0900

    Migrate rdoc as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12577

commit e0be1b902549f80fcdc95e801d4d533b0fdec43b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-15 15:19:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-15 15:19:05 +0900

    Link `bin` as well as `lib` so that `Gem.bin_path` works

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12578

commit 272a8c3c3f334876c2246dcf9ce4d4c71fe52a78
  Author:     wanabe <s.wanabe@gmail.com>
  AuthorDate: 2025-01-15 12:30:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 13:07:43 +0900

    [ruby/erb] Make `@scanner_map` of `ERB::Compiler::Scanner` ractor-shareable

    - Freeze on assignment
    - Recreate Hash on registration

    https://github.com/ruby/erb/commit/12d69fc2b3

commit 96b5cde28bba189b6cfddce5d507eb751dda03b3
  Author:     wanabe <s.wanabe@gmail.com>
  AuthorDate: 2025-01-15 12:29:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 13:07:43 +0900

    [ruby/erb] Make `ERB::NOT_GIVEN` ractor-shareable

    https://github.com/ruby/erb/commit/348777b5bf

commit 04ec07794657cd2444ecb001a522b9df2db1b90a
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-01-15 10:59:46 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-15 10:59:46 +0900

    Preserve `errno` in `rb_fiber_scheduler_unblock`. (#12576)

    [Bug #21038]

    Co-authored-by: Julian Scheid <julians37@gmail.com>

  Notes:
    Merged-By: ioquatix <samuel@codeotaku.com>

commit cb419e3912f0514b8151469b0a4a4b83cbbcce78
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-15 07:48:32 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-15 08:41:50 +0900

    [PRISM] Handle forwarding inside eval

    Fixes [Bug #21031]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12575

commit f1e32914eb40737de0f639146aebaf6e3ce2bf21
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-15 05:59:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 05:59:39 +0900

    [ruby/mmtk] Add mmtk_worker_count to GC.config

    https://github.com/ruby/mmtk/commit/836a9059cb

commit 56242ba495246e95dd5178f2ec101c1005c10afc
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-15 04:20:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 05:33:11 +0900

    Better handle regexp in the parser translator

    Turns out, it was already almost correct. If you disregard \c and \M style escapes, only a single character is allowed to be escaped in a regex so most tests passed already.

    There was also a mistake where the wrong value was constructed for the ast, this is now fixed.
    One test fails because of this, but I'm fairly sure it is because of a parser bug. For `/\“/`, the backslash is supposed to be removed because it is a multibyte character. But tbh,
    I don't entirely understand all the rules.

    Fixes more than half of the remaining ast differences for rubocop tests

commit 51d3d6ac8c2e3b6b6dacd80a9ddf11adc46fde08
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-15 03:10:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 05:31:38 +0900

    [ruby/prism] Support forwarding flags on scopes

    When parent scopes around an eval are forwarding parameters (like
    *, **, &, or ...) we need to know that information when we are in
    the parser. As such, we need to support passing that information
    into the scopes option. In order to do this, unfortunately we need
    a bunch of changes.

    The scopes option was previously an array of array of strings.
    These corresponded to the names of the locals in the parent scopes.
    We still support this, but now additionally support passing in a
    Prism::Scope instance at each index in the array. This Prism::Scope
    class holds both the names of the locals as well as an array of
    forwarding parameter names (symbols corresponding to the forwarding
    parameters). There is convenience function on the Prism module that
    creates a Prism::Scope object using Prism.scope.

    In JavaScript, we now additionally support an object much the same
    as the Ruby side. In Java, we now have a ParsingOptions.Scope class
    that holds that information. In the dump APIs, these objects in all
    3 languages will add an additional byte for the forwarding flags in
    the middle of the scopes serialization.

    All of this is in service of properly parsing the following code:

    ```ruby
    def foo(*) = eval("bar(*)")
    ```

    https://github.com/ruby/prism/commit/21abb6b7c4

commit f5fa1ee5f6e0e29e15063e8b62eb0ce7042bb29b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-15 02:16:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 02:17:44 +0900

    [ruby/mmtk] Exit with error message if MMTK_PLAN is invalid

    https://github.com/ruby/mmtk/commit/79ce2008a3

commit 1adcd960e2c0ef7e5debafa4245cd14420616d7b
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2025-01-15 02:08:35 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2025-01-15 02:09:22 +0900

    Add tests for Proc#parameters on `it` blocks

    [Bug #20955]

commit 2bcbc80fa26795145584af2a1cb322ac7b46f13e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-15 02:05:23 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 02:07:21 +0900

    [ruby/mmtk] Exit with error message if MMTK_HEAP_MODE is invalid

    https://github.com/ruby/mmtk/commit/c8b1f4c156

commit f627e05d14bf3482b4e864cd4ab237b0a92df0d7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-15 01:41:26 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 02:07:21 +0900

    [ruby/mmtk] Add tests for when MMTK_HEAP_MIN >= MMTK_HEAP_MAX

    https://github.com/ruby/mmtk/commit/65b34b5e86

commit e2f0769ca2993a08a849dbd8ede099a3cc327aef
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-15 01:35:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 02:07:20 +0900

    [ruby/mmtk] Also test invalid values for MMTK_HEAP_MIN and MMTK_HEAP_MAX

    https://github.com/ruby/mmtk/commit/90f1aa8d76

commit b076e9b7acae1de931eac54a1757a1b1924d68cf
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-15 00:41:11 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-15 01:46:11 +0900

    Remove incorrectly committed snapshots

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12574

commit cf4d848cad87f4ee537b79cdf0ae32684b88f165
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 05:30:30 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 01:18:52 +0900

    [ruby/mmtk] Add framework for tests

    https://github.com/ruby/mmtk/commit/6d94549fc7

commit 12fa76b3e57ea6deb89c7b28fc79eef78df9739e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-15 01:01:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 01:01:46 +0900

    [ruby/prism] Fix parse.y translation for locals test

    https://github.com/ruby/prism/commit/c8037dfaed

commit 23fc0fc22d0f066938387f3397fb8ee9358744e5
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-14 05:22:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 00:36:28 +0900

    [ruby/prism] Be a bit stricter when comparing parser translator tokens

    When there were more actual tokens than expected tokens, the test would still pass.

    Now it's possible to receive an assertion like this:
    ```
    expected: []
    actual: [:tNL, [nil, #<Parser::Source::Range comment_single.txt 8...9>]]
    <[]> expected but was
    <[:tNL, [nil, #<Parser::Source::Range comment_single.txt 8...9>]]>
    ```

    https://github.com/ruby/prism/commit/e9e9a48e43

commit d0c493df7d1bb4b32ede82422b0d08f72de025b9
  Author:     Justin Collins <justin@presidentbeef.com>
  AuthorDate: 2025-01-14 15:17:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 00:33:02 +0900

    [ruby/prism] Fix block parameters and it for RubyParser

    https://github.com/ruby/prism/commit/7a93a307ac

commit da93c9ae29d2575aa2eb3a3a0868b3ca7e489576
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-13 10:06:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 00:32:41 +0900

    [ruby/prism] Refactor serializer

    https://github.com/ruby/prism/commit/8ab2532f09

commit 713f31872a42b75924d346ce5df3e567db074cc5
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-12 11:10:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-15 00:32:39 +0900

    [ruby/prism] Freeze AST option

    To make it so that you can pass `freeze: true` to Prism parse
    methods and get back a deeply-frozen AST that is Ractor-
    shareable.

    https://github.com/ruby/prism/commit/8e6a93b2d2

commit 1758137eada3823b4f4df67e330264fa7455c46b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-14 15:33:52 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-15 00:21:57 +0900

    Simplify gc/mmtk/extconf.rb

    - Split static recipes to depend file.
    - Modify makefile configurations in the block to `create_makefile`.
    - Expand rust sources in extconf.rb instead of GNU make extension.

    TODO: pass `CARGO_TARGET_DIR` without shell syntax.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12572

commit c961d093b1501f9ce476f1e51d7774af28120407
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-14 19:11:33 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-14 21:56:14 +0900

    [Bug #21024] <cstdbool> header has been useless

    And finally deprecated at C++-17.
    Patched by jprokop (Jarek Prokop).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12573

commit 1b515d1c379367f077c57fde39e2cc4fc0269f35
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-14 20:42:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 21:38:17 +0900

    [ruby/openssl] ssl: update test_verify_hostname_on_connect for LibreSSL

    This reverts the change made to this test case in commit https://github.com/ruby/openssl/commit/a0e98d48c91f
    (Enhance TLS 1.3 support on LibreSSL 3.2/3.3, 2020-12-03).

    Part of the test case was skipped on LibreSSL because LibreSSL 3.2.2
    introduced a stricter check during creation of the extension. The check
    was then relaxed in LibreSSL 3.4.0.

    https://github.com/ruby/openssl/commit/187b176ecd

commit 318519caaa196a3257bc7a8552d33dfe9dd667a2
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-08 23:15:21 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 21:38:17 +0900

    [ruby/openssl] engine: remove mention of LibreSSL from OpenSSL::Engine

    These paths are only reachable when it is compiled against OpenSSL.
    LibreSSL 3.9 does not support ENGINE and defines OPENSSL_NO_ENGINE.

    https://github.com/ruby/openssl/commit/e153d6ab47

commit 731d3ec3012f125131d5c992394af17c5ff9e9e3
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-06-09 20:56:43 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 21:38:16 +0900

    [ruby/openssl] ossl.c: use OPENSSL_init_ssl() and OpenSSL_version() with LibreSSL

    LibreSSL 2.7.0 added support for OPENSSL_init_ssl() and
    OpenSSL_version().

    https://github.com/ruby/openssl/commit/1328415097

commit 0fb64bda9bf16c36de3c4ca5f9d3aa8da5d39ee2
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-08 01:55:56 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 21:38:16 +0900

    [ruby/openssl] Require LibreSSL 3.9 or later

    Drop support for LibreSSL 3.1-3.8. LibreSSL 3.8 has reached its EOL in
    2024-10.

    https://github.com/ruby/openssl/commit/f33d611f9f

commit 4f79485889bc9c782474c9dd32d5b916376fd0ec
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-07 19:34:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 20:54:47 +0900

    [ruby/openssl] Refactor buffer usage to only use `append_as_bytes`

    https://github.com/ruby/openssl/commit/28f2901c48

commit 2f5d31d38ad6918410da1c41936e043f47725d4f
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2024-12-21 19:27:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 20:54:47 +0900

    [ruby/openssl] Reduce OpenSSL::Buffering#do_write overhead

    [Bug #20972]

    The `rb_str_new_freeze` was added in https://github.com/ruby/openssl/issues/452
    to better handle concurrent use of a Socket, but SSL sockets can't be used
    concurrently AFAIK, so we might as well just error cleanly.

    By using `rb_str_locktmp` we can ensure attempts at concurrent write
    will raise an error, be we avoid causing a copy of the bytes.

    We also use the newer `String#append_as_bytes` method when available
    to save on some more copies.

    https://github.com/ruby/openssl/commit/0d8c17aa85

    Co-Authored-By: luke.gru@gmail.com

commit ccb4ba45ed0439764fc44a40469e396187d83a71
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-12 19:30:06 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-14 17:20:02 +0900

    Use LRAMA instead of YACC

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12556

commit eafba0d5d3c10678fae23ae35e2923c3cb70de66
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-12 19:29:04 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-14 17:20:02 +0900

    Use LRAMA instead of BISON

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12556

commit 2f0741dd3ce7511e1d0a363d0a8b91d740f31df5
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-14 16:39:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-14 17:08:02 +0900

    [ruby/json] Fix a method redefinition warning in C parser

    Ref: https://github.com/ruby/json/pull/728
    Ref: https://github.com/ruby/ruby/pull/12569

    https://github.com/ruby/json/commit/30a4a86954

commit 599fbeaffa8e029e11223c24af47a55500f23fc3
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-13 22:04:15 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-14 17:08:02 +0900

    [ruby/json] Refactor JSON::Ext::Parser to split configuration and parsing state

    Ref: https://github.com/ruby/json/pull/718

    The existing `Parser` interface is pretty bad, as it forces to
    instantiate a new instance for each document.

    Instead it's preferable to only take the config and do all the
    initialization needed, and then keep the parsing state on the
    stack on in ephemeral memory.

    This refactor makes the `JSON::Coder` pull request much easier to
    implement in a performant way.

    https://github.com/ruby/json/commit/c8d5236a92

    Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>

commit c8d11edcf556088d10f0a245139741dcab1c7d56
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-14 15:50:40 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 15:50:50 +0900

    Sync lockfile from rubygems/rubygems

commit 4daa5ebb77282b0c004ae07b0fa37a74dacdedf8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-14 15:34:17 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-14 15:34:17 +0900

    [DOC] About `create_makefile`

    Describe two features that were missing from the documentation:

    - yields configuration part if a block is given.
    - "depend" file will be included.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12571

commit 13c868ae3e1702b08daeeef01178ed5a5edbe497
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-14 14:09:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 14:52:48 +0900

    Restore lockfile for test-bundler

    In the past, bundler updated platform without normalized variable like arm64-darwin-23.
    We ignored that update. But the current bundler uses arm64-darwin for that.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12570

commit 382277f9bf4fd7b46cfe6e2e84697797c5cbf436
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-14 13:32:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 13:36:25 +0900

    [ruby/yaml] We should load rubygems for optional pstore gem

    https://github.com/ruby/yaml/commit/d32dc11205

commit 61d3f9a1a53738a8a54bbf9de9e6d1f0a410f453
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-11 05:24:11 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Remove explicit test dependency on uri

    Since we now vendor uri, it does not buy us anything to include it in
    the gemfile explicitly.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit a3882dc565b777d8d1462879a1fd290108088ba3
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 20:29:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Remove test dependency on logger

    I think logger is only used to figure out which methods need to be made
    noops in order to silence webrick during tests.

    However, it seems possible to do the same using webrick's builtin logger
    and the current method does not seem even correct since it's not
    guaranteed that the logger gem and webrick's logger will use the same
    methods.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 78cec339584195b63ed499591c4d344bc85c41f0
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 20:58:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Remove base64 as an explicit test dependency

    Tests don't use it directly, so no need to specify it in our Gemfile.

    I think it may have only been added because sinatra was not declaring
    its dependency at the time.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 434fa4f3fdd47dc7bf13699a8b81014cf6ee2ceb
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2024-12-20 22:51:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Add basic tapioca check to CI

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit f301383cdd4d8310a450931492e5cc0d532862e3
  Author:     Étienne Barrié <etienne.barrie@gmail.com>
  AuthorDate: 2025-01-13 19:28:06 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Remove Generator::State#_generate

    Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 1fae0d7256df76d091847247ec655b0b6b9c4ad9
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-03 01:48:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    Use ronn-ng again for documentation generation

    We switched to nronn because ronn-ng felt abandoned, but it seems
    it has activity again, so switch back.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit f1f81e86159221dbfce29e8e64ca8963391256fa
  Author:     Dmitrii <wrsama+github@gmail.com>
  AuthorDate: 2025-01-10 14:30:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [ruby/fiddle] add regex for bool parsing & test struct w/ bool
    parsing
    (https://github.com/ruby/fiddle/pull/169)

    GitHub: fix https://github.com/ruby/fiddle/pull/168

    Struct parsing invokes "parse_ctype" on the whole member signature,
    which fails if member type is "bool" due to plain string matching for
    it. This change updates "bool" type matching to a regexp, so TYPE_BOOL
    is correctly parsed for a whole signature like "bool toggle" as well as
    just "bool".

    ---------

    https://github.com/ruby/fiddle/commit/71607446d4

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 0b1b8bc3ec08de6944e6784de1ea5e03e90d8dba
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 05:34:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Don't remove platform specific variants from the lockfile unless necessary

    Even if they don't match the current Ruby version, they could still work
    in other rubies. So it's better to keep them.

    https://github.com/rubygems/rubygems/commit/9a3e583b0c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 5c83d09ec874db44f6a69d8f81952f31a811013d
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 21:11:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Tiny parameter rename

    Just for consistency, since all the other methods in this class that
    receive an array of dependencies use `deps`.

    https://github.com/rubygems/rubygems/commit/eca1341950

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit ae75c8877a0f9e635026ac39d52b012a0b019020
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 04:35:39 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Extract `SpecSet#version_for`

    https://github.com/rubygems/rubygems/commit/a76fd6d3bf

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit a0e2ed21011ae82cfbd1c17bffe8947375fe6c35
  Author:     Joshua.LeBlanc <jleblanc@omics.com>
  AuthorDate: 2025-01-11 02:59:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] re-add removed pre-evaluated gemspec test

    https://github.com/rubygems/rubygems/commit/b73ee4059b

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit aee0277e14d9161023b45ad1cfd74dc556c8c7c4
  Author:     Josh LeBlanc <jleblanc@hey.com>
  AuthorDate: 2025-01-11 02:52:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Serialize gemspec when caching git source

    https://github.com/rubygems/rubygems/commit/8727d44024

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit c89bcbd58eb48e39ab7e7c47a2226e876c885b07
  Author:     Vasily Fedoseyev <vasilyfedoseyev@gmail.com>
  AuthorDate: 2024-12-28 04:22:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Do not fail on start when cannot find writable user directory on ruby 3.4

    https://github.com/rubygems/rubygems/commit/027cdc750a

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit 7389ca87b3cc9800af5560aa9e7d05ad584ed0d5
  Author:     Ellen Marie Dash <me@duckie.co>
  AuthorDate: 2024-11-28 08:13:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Print message when blocking on a file lock.

    https://github.com/rubygems/rubygems/commit/3ca7ef214c

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit df534ef0fcdbe804ec08aaeef2b63be3e1bbd709
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 22:02:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-14 12:24:37 +0900

    [rubygems/rubygems] Remove no longer used spec filter

    I think we have consistent behavior regardless of the version of git
    being used, and I'd like to keep it like that so I think we can remove
    this filter.

    https://github.com/rubygems/rubygems/commit/6a708128e9

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12568

commit d74e9ef71215b4e58d735b9377bcb02a1634c73a
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-14 11:26:25 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-14 11:26:25 +0900

    CI: Make parents of PATH directories world-unwritable

commit 8891890bffb9aecae7444619479ae26d59302cf0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 21:12:42 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-14 11:26:29 +0900

    Mark `rb_path_check` as internal only

commit 5f3d1eeb55ec69591e76633346d8a4812d3cc36b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 05:10:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 05:11:06 +0900

    [ruby/mmtk] Remove accidentally committed files

    https://github.com/ruby/mmtk/commit/154a038293

commit ed4b1f9c1acac821e27d440d2bbb6837b59a7470
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 05:06:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 05:08:20 +0900

    [ruby/mmtk] Exit with error message if MMTK_HEAP_MAX is invalid

    https://github.com/ruby/mmtk/commit/4a24d55d91

commit f821a127eab4a4583f4b6336ec7ff0a1dc6d6569
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 05:03:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 05:08:20 +0900

    [ruby/mmtk] Exit with error message if MMTK_HEAP_MIN is invalid

    https://github.com/ruby/mmtk/commit/1d2f7b9cfc

commit 3b9b41d046ad032be73c253b0ebc17eb7de8b788
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-14 04:08:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 05:08:19 +0900

    [ruby/mmtk] Exit with error message if MMTK_THREADS is invalid

    https://github.com/ruby/mmtk/commit/5c5c454f65

commit 7c0b92a1c64d39d4861fb7b46db7efdff3bbcf65
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-14 00:41:29 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 03:02:28 +0900

    [ruby/prism] Fix parser translator tokens for `%x(#{})`

    It falsely considered it to be a single backtick command

    https://github.com/ruby/prism/commit/dd762be590

commit 6637aa4682ef64134e05af949a9beee260dab937
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-11 02:24:39 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-14 02:58:59 +0900

    Proc#parameters: Show anonymous optionals as `[:opt]`

    Have this for lead parameters as well as parameters after rest ("post").

    [Bug #20974]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12547

commit 85a25116ccfe509d8a3de9cd5bfc467f2d77159e
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-11 05:40:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 01:44:36 +0900

    [ruby/mmtk] Enable immix_non_moving feature

    https://github.com/ruby/mmtk/commit/63ab563e04

commit 0a26a3de8955e90ef63c238b1469981648e804de
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-14 00:31:41 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 00:43:24 +0900

    [ruby/prism] Fix parser translator heredoc dedention with leading interpolation

    ```rb
    <<~F
      foo
    #{}
      bar
    F
    ```

    has zero common whitespace.

    https://github.com/ruby/prism/commit/1f3c222a06

commit eab1f02149cdebf5caab2fd61cc1cd448b5d5497
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-11 03:46:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-14 00:25:50 +0900

    [ruby/mmtk] Unskip TestEnv#test_select_bang_in_ractor

    https://github.com/ruby/mmtk/commit/b2b83ecadb

commit f7fd42ce7444ad89080f31bea748972f1a666c61
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 13:05:45 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 19:10:26 +0900

    Move the declaration of `rb_path_check`

    Although this function is unrelated to hash, it was defined in hash.c
    to check PATH environment variable originally.  Then the definition
    was moeved to file.c but the declaration was left in the hash.c block.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12564

commit 384e6945ac64dba1c41d6ca714a6d7750d92ddb2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 11:56:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-13 12:12:28 +0900

    [ruby/date] Enclose dangling else in braces and fix -Wmisleading-indentation

    ```
    date_strptime.c:253:324: warning: misleading indentation;
          statement is not part of the previous 'if' [-Wmisleading-indentation]
      253 |   ...((VALUE)RUBY_Qtrue)); return 0; } while (0); si += l; } while (0);
          |                                                   ^
    date_strptime.c:252:7: note: previous statement is here
      252 |       else
          |       ^
    ```

    https://github.com/ruby/date/commit/41aed5b746

commit 691c895289d757664ab5265a866ba51cf6747601
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 11:41:44 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 11:41:44 +0900

    Dependency: ext/-test-/memory_status/depend

commit 2e38b3effbe2f747da4c6059ff74d59a212c3864
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-11-07 13:49:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 09:57:01 +0900

    Update probes.h by incs

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12563

commit 4180036f48160ecabf09ba7a51abda9becc93d2d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2022-12-19 22:45:10 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 09:56:22 +0900

    sync_default_gems.rb: check message_filter arguments

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12563

commit 060ae17c806f0ba955b1c5d825b890b6de6c47e3
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2022-12-19 22:42:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 09:56:21 +0900

    CPPFLAGS is needed for dtrace not only INCFLAGS

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12563

commit 84f0d2dd4135d59ff0c65370435255d2a97e574e
  Author:     yui-knk <spiketeika@gmail.com>
  AuthorDate: 2025-01-12 09:54:04 +0900
  Commit:     yui-knk <spiketeika@gmail.com>
  CommitDate: 2025-01-13 09:23:31 +0900

    Stop passing `-t` and `-v` on ripper build

    Both of them are debug option.
    Let's use `YFLAGS` for parse.y build if needed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12555

commit 566f9463c2be0010815c6521b32c5067a6fff699
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 21:49:44 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-13 03:54:16 +0900

    [ruby/prism] Fix parser translator tSPACE tokens for percent arrays

    Tests worked around this but the incompatibility is not hard to fix.
    This fixes 17 token incompatibilies in tests here that were previously passing

    https://github.com/ruby/prism/commit/101962526d

commit 14b9098459b88f94e316ccc9274693e74565739e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-21 06:52:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-13 03:41:42 +0900

    [ruby/prism] Frozen strings in the AST

    https://github.com/ruby/prism/commit/8d9d429155

commit 48749afe61fedcfd59cbd2fcc134c55f5ccef7f8
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 23:27:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-13 03:34:36 +0900

    [ruby/prism] Fix parser translator ranges for mulltiline strings with multiline bytes

    A rather silly issue with a rather simple fix.
    The ranges already use the offset cache, this effectivly double-encoded them.

    https://github.com/ruby/prism/commit/66b65634c0

commit d0deec3ef3a439374e77aad6fd90bc8f9c5bcc90
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 23:11:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-13 03:34:06 +0900

    [ruby/prism] Fix parser translator tokens for comment-only file

    In https://github.com/ruby/prism/pull/3393 I made a mistake.
    When there is no previous token, it wraps around to -1. Oops

    Additionally, if a comment has no newline then the offset should be kept as is

    https://github.com/ruby/prism/commit/3c266f1de4

commit f56f3eaae55cc6f8d9e79862ee73a9ffb53d6077
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 02:07:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-13 02:07:05 +0900

    [Bug #21030] Fix step for non-numeric range

    When the end points of an inclusive range equal, `Range#step` should
    yields the element once.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12559

commit d9e1a7cdf8a6e8327cd09a891fd45d6af357f926
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-12 23:01:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-12 23:01:07 +0900

    [Bug #21018] Fix for s390x

commit 450d9dc8bf086747c4dde03441a44873163a2b9c
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-12 21:59:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-12 21:59:35 +0900

    [ruby/irb] Group private methods together in `IRB::Context`
    (https://github.com/ruby/irb/pull/1064)

    This makes them easier to find and matches the convention of the codebase.

    https://github.com/ruby/irb/commit/ce8fa6857c

commit 9f8defe8d2f406b0170a275b5d369957075ea059
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-12 21:47:25 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-12 21:47:31 +0900

    [ruby/irb] Drop ColorPrinter's workaround for BasicObject
    (https://github.com/ruby/irb/pull/1051)

    `pp` 0.6.0+ includes https://github.com/ruby/pp/pull/26 to handle BasicObject,
    so we can drop the workaround.

    https://github.com/ruby/irb/commit/08908d43c7

commit e2f1f7c56716db469bae28309c53b74f58023579
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-11 21:44:46 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-12 19:48:01 +0900

    [Doc] Encourage use of encoding constants

    Lots of documentation examples still use encoding APIs with encoding names
    rather than encoding constants. I think it would be preferable to direct
    users toward constants as it can help with auto-completion, static analysis
    and such.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12552

commit d9d08484d283b8f9c7788cbd8cbf4b34e9e35d29
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-12 13:53:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-12 13:53:15 +0900

    [DOC] Fix the description of `rb_path_check`

    c.f. #20971

commit 723f31cf6ba307df0058426b515a2b578340b37b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 06:25:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-12 09:49:54 +0900

    [ruby/prism] Fix binary encoding for the parser translator

    Skipping detecting the encoding is almost always right, just for binary it should actually happen.

    A symbol containing escapes that are invalid
    in utf-8 would fail to parse since symbols must be valid in the script encoding.
    Additionally, the parser gem would raise an exception somewhere during string handling

    https://github.com/ruby/prism/commit/fa0154d9e4

commit 70022224b2627694cbbb30e819a6b1554e9c0a5b
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 02:48:48 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Better comment token handling for the parser translator

    There appear to be a bunch of rules, changing behaviour for
    inline comments, multiple comments after another, etc.

    This seems to line up with reality pretty closely, token differences for RuboCop tests go from 1129 to 619 which seems pretty impressive

    https://github.com/ruby/prism/commit/2e1b92670c

commit 117d6e145a0270ab8fc9134403519ef13b9ebb24
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-12 05:38:41 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix `not` receiver

    `not foo` should be `!foo`
    `not()` should be `!nil`

    Fixes [Bug #21027]

    https://github.com/ruby/prism/commit/871ed4b462

commit 9c962ea7926e06a57a738bd1e0232ccf09e32771
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-11 00:18:56 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix parser translator tokens for backslashes in single-quoted strings and word arrays

    These are not line continuations. They either should be taken literally,
    or allow the word array to contain the following whitespace (newlines in this case)

    Before:
    ```
      0...1: tSTRING_BEG     => "'"
     1...12: tSTRING_CONTENT => "foobar\\\n"
    12...16: tSTRING_CONTENT => "baz\n"
    16...17: tSTRING_END     => "'"
    17...18: tNL             => nil
    ```

    After:
    ```
      0...1: tSTRING_BEG     => "'"
      1...6: tSTRING_CONTENT => "foo\\\n"
     6...12: tSTRING_CONTENT => "bar\\\n"
    12...16: tSTRING_CONTENT => "baz\n"
    16...17: tSTRING_END     => "'"
    17...18: tNL             => nil
    ```

    https://github.com/ruby/prism/commit/b6554ad64e

commit 110461c509a3f93060cf66c82ed44baa00e182a1
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-12 05:48:57 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Implement more string token escaping in the parser translator

    This leaves `\c` and `\M` escaping but I don't understand how these should even work yet. Maybe later.

    https://github.com/ruby/prism/commit/13db3e8cb9

commit 81079ebfd8ba9f672664239d73e8d875e9eeedc8
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-06 23:20:41 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Import code samples for Ruby 3.3 from the parser gem

    Slightly tweaking the import script becaues of backtrace format changes in Ruby 3.4

    Most tests pass in all parsers, with only a handful of failures overall

    https://github.com/ruby/prism/commit/9b5b785aa4

commit ca81142eff98cccb03ff523322aefe4e7346fd0e
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-08 00:40:04 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] [Bug #21010] Reject endless method definition of `[]=`

    Fixes: https://bugs.ruby-lang.org/issues/20785

    https://github.com/ruby/prism/commit/192960ce5d

commit 283037f7e3aa54e281c098c43cea830a52b1ec2d
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-09 05:17:21 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Better handle all kinds of multiline strings in the parser translator

    This is a followup to #3373, where the implementation
    was extracted

    https://github.com/ruby/prism/commit/2637007929

commit 80fe9a1c777e4636419e84f160c7079c152696e1
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-07 23:56:39 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Better handle multiline interpolated strings in the parser translator

    Much of this logic should be shared between interpolated symbols and regexps.
    It's also incorrect when the node contains a literal `\\n` (same as for plain string nodes at the moment)

    https://github.com/ruby/prism/commit/561914f99b

commit 9f38ee11cb4554ec4e08fb22a9c804c746cce029
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-07 04:19:21 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix parser translator ast for empty regex

    In that specific case, no string node is emitted

    https://github.com/ruby/prism/commit/1166db13dd

commit a234fd516f82702f9efd67e3f67de129702a6801
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-07 04:18:03 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix parser translator ast for regex with line continuation

    Turns out, the vast majority of work was already done with handling the same for heredocs

    I'm confident this should also apply to actual string nodes (there's even a todo for it) but
    no tests change if I apply it there too, so I can't say for sure if the logic would be correct.
    The individual test files are a bit too large, maybe something else would break that currently passes.

    Leaving it for later to look more closely into that.

    https://github.com/ruby/prism/commit/6bba1c54e1

commit d1a70014f9a1ee411c41338d0929443bab004cda
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-05 21:54:38 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix parser translator ast when using anonymous forwarding in blocks/lambda

    Blocks and lambdas inherit anonymous arguments from the method they are a part of.
    They themselves don't allow to introduce new anonymous arguments.
    While you can write this:
    ```rb
    def foo(*)
      bar { |**| }
    end
    ```
    referecing the new parameter inside of the block will always be a syntax error.

    https://github.com/ruby/prism/commit/2cbd27e134

commit 7cbaa3b9298b4ab5027d75a7317ca43a9e745c16
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2024-12-22 06:00:56 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fix an incompatibility with the parser translator

    The offset cache contains an entry for each byte so it can't be accessed via the string length.

    Adds tests for all variants except for this:
    ```
    "fo
    o" "ba
    ’"
    ```

    For some reason, this still has the wrong offset.

    https://github.com/ruby/prism/commit/a651126458

commit d597118b3f1f03f56ed723aac2b3ec37b75fdb26
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-21 06:57:40 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Fallthrough fallback for unknown compilers

    https://github.com/ruby/prism/commit/cc810b1e06

commit fa1427a63e26d24b0aca37d66af705a57d2aa2e2
  Author:     Alexander Momchilov <alexandermomchilov@gmail.com>
  AuthorDate: 2024-12-19 03:37:52 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Enable implicit fall-through errors

    https://github.com/ruby/prism/commit/03797b84d3

commit b0e64fcde83cb539ded429944bdabda52472fe42
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-22 04:06:46 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Bump to v1.3.0

    https://github.com/ruby/prism/commit/a679ee0e5c

commit b79152fd22f1acb4c984ca205e2de4f5f6291e90
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-22 05:15:32 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-12 09:09:05 +0900

    [ruby/prism] Support 3.5 for version option

    https://github.com/ruby/prism/commit/6b6aa05bfb

commit 76b620b341b54eb80028f03cc828333defacc87e
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-11 23:03:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-11 23:03:59 +0900

    [ruby/irb] `IRB.conf[:SAVE_HISTORY]` should handle boolean values
    (https://github.com/ruby/irb/pull/1062)

    Although not documented, `IRB.conf[:SAVE_HISTORY]` used to accept boolean,
    which now causes `NoMethodError` when used.

    This commit changes the behavior to accept boolean values and
    adds tests for the behavior.

    https://github.com/ruby/irb/commit/8b1a07b2a8

commit 80d28785c4385f5688db90b448c99dc1dc042a6a
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-11 21:59:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-11 21:59:21 +0900

    [ruby/irb] Print more actionable message when the exception may be
    an IRB issue
    (https://github.com/ruby/irb/pull/1061)

    https://github.com/ruby/irb/commit/4d74d39261

commit 1b3037081ef9fc121b83e213d997a069acd5904b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 12:21:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-11 12:21:57 +0900

    [Bug #21024] <cstdbool> header is deprecated in C++17

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12551

commit 4d8eaa9e458d62499dc60a2af901ab8c09a75aef
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-11 07:26:11 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-11 08:03:31 +0900

    YJIT: Rename send_iseq_forwarding->send_forwarding

    It's in gen_send_general(), so nothing specifically to do with iseqs.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12550

commit cde065c32c8db34eaf2c6b8646a2d4a34e20a3ec
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-11 07:36:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-11 07:36:51 +0900

    Clarify documentation for encoding of `String.new` without arguments

    [Bug #21025]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12548

    Merged-By: XrXr

commit 50c2c4bddee5a2c5edc0d9fc0f635befdfc4bacc
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-01-10 03:21:00 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-01-11 06:39:21 +0900

    Make rb_vm_insns_count a thread local variable

    `rb_vm_insns_count` is a global variable used for reporting YJIT
    statistics. It is a counter that tallies the number of interpreter
    instructions that have been executed, this way we can approximate how
    much time we're spending in YJIT compared to the interpreter.

    Unfortunately keeping this statistic means that every instruction
    executed in the interpreter loop must increment the counter. Normally
    this isn't a problem, but in multi-threaded situations (when Ractors are
    used), incrementing this counter can become quite costly due to page
    caching issues.

    Additionally, since there is no locking when incrementing this global,
    the count can't really make sense in a multi-threaded environment.

    This commit changes `rb_vm_insns_count` to a thread local. That way each
    Ractor has it's own copy of the counter and incrementing the counter
    becomes quite cheap. Of course this means that in multi-threaded
    situations, the value doesn't really make sense (but it didn't make
    sense before because of the lack of locking).

    The counter is used for YJIT statistics, and since YJIT is basically
    disabled when Ractors are in use, I don't think we care about
    inaccuracies (for the time being). We can revisit this counter when we
    give YJIT multi-threading support, but for the time being this commit
    restores multi-threaded performance.

    To test this, I used the benchmark in [Bug #20489].

    Here is the performance on Ruby 3.2:

    ```
    $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8
    ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
    [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8]
    ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.

    ________________________________________________________
    Executed in    2.53 secs    fish           external
       usr time   19.86 secs  370.00 micros   19.86 secs
       sys time    0.02 secs  320.00 micros    0.02 secs
    ```

    We can see the regression in performance on the master branch:

    ```
    $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8
    ruby 3.5.0dev (2025-01-10T16:22:26Z master 4a2702dafb) +PRISM [x86_64-linux]
    [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8]
    ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.

    ________________________________________________________
    Executed in   24.87 secs    fish           external
       usr time  195.55 secs    0.00 micros  195.55 secs
       sys time    0.00 secs  716.00 micros    0.00 secs
    ```

    Here are the stats after this commit:

    ```
    $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8
    ruby 3.5.0dev (2025-01-10T20:37:06Z tl 3ef0432779) +PRISM [x86_64-linux]
    [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8]
    ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.

    ________________________________________________________
    Executed in    2.46 secs    fish           external
       usr time   19.34 secs  381.00 micros   19.34 secs
       sys time    0.01 secs  321.00 micros    0.01 secs
    ```

    [Bug #20489]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12549

commit 039446f601663ff7c25bbc2d46dc7de02ba640c2
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-11 06:29:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-11 06:29:34 +0900

    [ruby/irb] Gracefully handle incorrect command aliases
    (https://github.com/ruby/irb/pull/1059)

    * Gracefully handle incorrect command aliases

    Even if the aliased target is a helper method or does not exist, IRB
    should not crash.

    This commit warns users in such cases and treat the input as normal expression.

    * Streamline command parsing and introduce warnings for incorrect command aliases

    https://github.com/ruby/irb/commit/9fc14eb74b

commit 4a2702dafb0852d7a7575fd4c7717402f02ccc25
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-11 01:22:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-11 01:22:26 +0900

    Remove stale declaration for modular GC

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12546

commit eb8f29c46c3e9c9041dc0bfe133c06329f28a2e7
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2025-01-10 23:04:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-11 01:01:49 +0900

    [rubygems/rubygems] Fix test failure when running tests with ENV["EDITOR"] set

    Can be reproduced, for example, with

    ```
    bin/rspec spec/bundler/cli_spec.rb spec/other/cli_man_pages_spec.rb --order defined
    ```

    https://github.com/rubygems/rubygems/commit/f57d199225

commit 8adc96b5ca17c504d7a4afe7c6034c1d4d1984ba
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2024-11-15 19:49:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-11 00:59:25 +0900

    [ruby/date] Skip tests failing on TruffleRuby

    https://github.com/ruby/date/commit/d019ac8186

commit cfee3d9f4bc62c7a312be1a31c61f5126fec157f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-10 04:32:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-11 00:17:16 +0900

    Revert "[MMTk/CI] Skip Ractor btests with MMTk"

    This reverts commit 58b4e249ed8d33fc78528bc77516d541c04d65f2.

    The bug that it encountered was fixed in f76d40789d2c7185df26e925636827c06eda7157.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12543

commit f1049aa55d2cd41b5ddeb3ffafe157d41a0335bc
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-10 04:34:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-11 00:17:16 +0900

    Don't check for presence of `ENV['GITHUB_WORKFLOW']`

    We already check whether `ENV['GITHUB_WORKFLOW']` is equal to `Compilations`,
    so we don't need to check that it's not nil.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12543

commit c7e5dbe1d831ed5e894b6c158d06e80968291249
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-10 15:09:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 16:57:06 +0900

    Bump up logger-1.6.5 for TruffleRuby

commit 1babff98b0272d71a21b8cb47b2be62984741bb8
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-01-10 16:00:09 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 16:00:09 +0900

    Update bundled gems list as of 2025-01-10

commit be6a81c8bfccb5c05f93550a64bc25ced510566a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-10 15:02:53 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 15:02:55 +0900

    Removed benchmark, logger, ostruct and pstore from sync targets

commit e8015ce1a36a7c8b88dd66850d3df7b8881f2f1c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-10 14:32:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 14:38:39 +0900

    [ruby/syntax_suggest] Resolve to lint failure of standardrb

    https://github.com/ruby/syntax_suggest/commit/ce7b87184e

commit a450e9304db8e540977958ddb5c60a65363a4ea9
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-10 12:59:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 13:27:16 +0900

    Extract Benchmark.measure on assert_cpu_usage_low

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12544

commit 503073581915761bb8b99a8e41d0a5f3958dc00c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 16:15:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Use fixed commits for assert_in_out_err of pstore and logger

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit fcecef7752d9d6c760c8ca7f6a7ce12c82988360
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 14:25:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Added logger dependency for Bundler's example

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit 31855506232194ef15d0b8ed12370e4890f220b8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 13:27:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Make Pstore tests as optional

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit 1089282acc3d3a284b092dcaa06fc241bceb4b02
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 13:27:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Make benchmark exapmles as optional

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit 3a1414a70b33110b9bbd7e47c09dece0300eebe8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 12:41:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Rewrite Benchmark to Tempfile on bootstraptest/test_ractor.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit cda268d8e99170f73c9c0c7dd2dbe9494ba89abb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 11:08:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Make logger as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit b0d3771bce9dfcffb7467ea34971198cf4b4079e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 11:06:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Make benchmark as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit 0c3dca6266a94c951a5347d40fbd0993e2902cc6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 10:55:23 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-10 10:19:39 +0900

    Make pstore as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12537

commit f76d40789d2c7185df26e925636827c06eda7157
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-10 04:06:31 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 04:08:49 +0900

    [ruby/mmtk] Enable UNIQUE_OBJECT_ENQUEUING in MMTk

    UNIQUE_OBJECT_ENQUEUING guarantees that object marking is atomic so that
    an object cannot be marked more than once.

    https://github.com/ruby/mmtk/commit/2f97fd8207

commit 4ce82f1c338d3ea9cdf21cdb12771de22ecd0d19
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-10 04:02:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 04:08:49 +0900

    [ruby/mmtk] Bump mmtk-core to
    https://github.com/ruby/mmtk/commit/68bf1b638263

    https://github.com/ruby/mmtk/commit/ba1ec69bf6

commit d96cc52ef1857297ffd608cf6a1eef1022286ebd
  Author:     Ellen Marie Dash <me@duckie.co>
  AuthorDate: 2025-01-01 07:04:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 03:13:57 +0900

    [rubygems/rubygems] Add credentials file path to "gem env".

    There are 3 possible locations:

    - $HOME/.gem/credentials
    - $XDG_DATA_HOME/gem/credentials
    - $HOME/.local/share/gem/credentials

    https://github.com/rubygems/rubygems/commit/c51756b96e

commit 2da91080d3120057a1efd51a08f350dcba26faab
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-10 02:26:07 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-10 02:34:02 +0900

    [ruby/mmtk] Fix libmmtk_ruby.a building in extconf.rb

    Since libmmtk_ruby.a was a PHONY target, it caused the shared object to
    not be rebuilt even though libmmtk_ruby.a was updated.

    https://github.com/ruby/mmtk/commit/076f0a97a6

commit 5fab31b15e32622c4b71d1d347a41937e9f9c212
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-01-09 03:47:11 +0900
  Commit:     Jeremy Evans <code@jeremyevans.net>
  CommitDate: 2025-01-10 00:41:04 +0900

    Enable riscv64 coroutine on OpenBSD/riscv64

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12534

commit 5045c666db6dc0824376ddd270b7e0b901acdf6c
  Author:     Petrik de Heus <petrik@deheus.net>
  AuthorDate: 2025-01-10 00:21:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-10 00:21:28 +0900

    [DOC] Use Hash inspect without hash-rocket in Hash documentation (#12540)

    Co-authored-by: tomoya ishida <tomoyapenguin@gmail.com>

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit d8a21592b462aba0a66324f7444a2f6e61116d3a
  Author:     liushuyu <liushuyu011@gmail.com>
  AuthorDate: 2025-01-09 04:06:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-10 00:07:20 +0900

    coroutine/ppc64le: fix conditional registers got clobbered unexpectedly

    Now we also save the special cr registers during the fiber switching

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12535

commit 073c4e1cc712064e626914fa4a5a8061f903a637
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-09 20:21:41 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-09 20:21:41 +0900

    [Feature #6012] Extend `source_location` for end position and columns

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12539

commit dfe6b7c02efa3bc2f5426eb64107ac0ac45a66a4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-08 21:35:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-09 19:26:20 +0900

    [Bug #21018] Show invalid command line option more properly

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12538

commit d44a41d81423c2362af3dfc6d9f9f7c2f21038c1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-09 09:44:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-09 19:24:27 +0900

    Add `rb_node_get_type` for debuggers

commit 6069e8fea50f06ceb2ed88112c2818e255d357bf
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-09 14:30:36 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-09 18:24:56 +0900

    Refactor for loop handling to simplify do keyword location assignment

commit 7790aa89f930e85e9d1d679f836338c44be0814f
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-09 10:31:57 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-09 18:24:56 +0900

    Use Named Reference

commit c721301132507c58dbef4f9bab0188a79f691e3c
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-11 01:00:05 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-09 18:24:56 +0900

    Implement FOR NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e "for a in b do end"
    @ ProgramNode (location: (1,0)-(1,17))
    +-- locals: [:a]
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,17))
        +-- body: (length: 1)
            +-- @ ForNode (location: (1,0)-(1,17))
                +-- index:
                |   @ LocalVariableTargetNode (location: (1,4)-(1,5))
                |   +-- name: :a
                |   +-- depth: 0
                +-- collection:
                |   @ CallNode (location: (1,9)-(1,10))
                |   +-- CallNodeFlags: variable_call, ignore_visibility
                |   +-- receiver: nil
                |   +-- call_operator_loc: nil
                |   +-- name: :b
                |   +-- message_loc: (1,9)-(1,10) = "b"
                |   +-- opening_loc: nil
                |   +-- arguments: nil
                |   +-- closing_loc: nil
                |   +-- block: nil
                +-- statements: nil
                +-- for_keyword_loc: (1,0)-(1,3) = "for"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- in_keyword_loc: (1,6)-(1,8) = "in"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- do_keyword_loc: (1,11)-(1,13) = "do"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- end_keyword_loc: (1,14)-(1,17) = "end"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ```

commit 841555245d770df88a0c8079fc97a51ffa7ef8e9
  Author:     Shannon Skipper <shannonskipper@gmail.com>
  AuthorDate: 2025-01-09 13:53:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-09 13:53:49 +0900

    [DOC] Show `NONE` within `Measure` namespace (#12274)

    Keep `NONE` within `Measure`

  Notes:
    Merged-By: nobu <nobu@ruby-lang.org>

commit dd80d9b089e35729d585bae2f8866c845c48f3b7
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-09 09:07:07 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-09 09:47:39 +0900

    YJIT: Filter `&` calls from specialized C method codegen

    Evident with the crash reported in [Bug #20997], the C replacement
    codegen functions aren't authored to handle block arguments (nor
    should they because the extra code from the complexity defeats
    optimization). Filter sites with VM_CALL_ARGS_BLOCKARG.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12536

commit 96f23306f0a9859c2e2b2f5d22cfab6eb74a0e5e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-09 05:39:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-09 05:42:35 +0900

    [ruby/prism] Revert "Reject pattern match with unexpected double splat inside array"

    https://github.com/ruby/prism/commit/51e7c84124

commit c4534c9fe88259de9509e4b75fb6afc31a1f00a7
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-08 12:49:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-09 05:36:06 +0900

    [ruby/prism] Handle escapes in named capture names

    https://github.com/ruby/prism/commit/b4b7a69ce7

commit 36b6625ba9ccaa0ab88dd56b3f41c70e161f3df0
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-03 21:05:21 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-09 02:33:48 +0900

    Refactor `parse_isalnum` and `parse_isxdigit` to use macro

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11780

commit 500a87756f9873a320aa3a11ab2d1ac4e1b4afee
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-08 23:58:59 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-09 02:23:51 +0900

    [ruby/prism] Reject pattern match with unexpected double splat inside array

    `a => [-2**b]` should be SyntaxError

    Fixes: https://github.com/ruby/prism/issues/3381

    https://github.com/ruby/prism/commit/ae8e83b389

commit e0d600ec190c64aff76cfcbd6009cffb927da166
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-01-09 01:49:51 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-09 01:49:51 +0900

    Avoid opt_aset_with optimization inside multiple assignment

    Previously, since the opt_aset_with optimization was introduced,
    use of the opt_aset_with optimization inside multiple assignment
    would result in a segfault or incorrect instructions.

    Fixes [Bug #21012]

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12528

    Merged-By: jeremyevans <code@jeremyevans.net>

commit e728170043ab9afb0f064af2bcfcf6ca06f9573d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-09 01:17:51 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-09 01:17:57 +0900

    [ruby/rdoc] Finalize RDoc::Options before calling
    RDoc::RDoc#parse_files
    (https://github.com/ruby/rdoc/pull/1274)

    Commit https://github.com/ruby/rdoc/commit/6cf6e1647b97, which went to v6.5.0, changed `RDoc::Options#parse`
    to not call `#finish` in it. While the commit adjusted other call sites,
    it missed `lib/rdoc/rubygems_hook.rb`.

    `RDoc::Options#finish` prepares the include paths for `:include:`
    directives. This has to be done before starting to parse sources.

    I think this should fix https://github.com/ruby/net-http/issues/193 +
    https://github.com/ruby/net-http/pull/194.

    https://github.com/ruby/rdoc/commit/d62da8ca09

commit 62a1528020de16c2f60ec1aea563f7b764946c59
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-08 01:00:16 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-08 23:11:59 +0900

    Pass allocation size to rb_imemo_new

    This would allow imemo to take advantage of VWA and allocate sizes larger
    than RVALUE (40 bytes).

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12524

commit 051af9529b03c11aff8f6a09522c69983e3a9d72
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-08 17:26:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-08 17:26:08 +0900

    [Bug #21017] Fix `--with-parser` configure option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12532

commit ad5fa24e84be97212ef2d8763086020a44546dc1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 16:27:49 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Skip examples related with OpenStruct in ruby/spec

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit a4528f60e5219417d15da70771f871ed089896f0
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 16:12:25 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Omit Psych_Unit_Tests if ostruct is not available

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 599a0601f60b0a3812b9ad1b95a8870cf2921d82
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 15:56:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Switch to use ostruct to open3 with suggestion test

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 9f5ca6332b787842c7ff9878067db8be0f50f7bd
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 15:45:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Refactor to omit JSON::GenericObject tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 6bff923d2fc09217c52bb0ce909f6b7a9022b107
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 15:02:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Rewrite OpenStruct to dummy response class

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 4da545ddf3883754bd29cd3a797930fe138acb37
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 14:11:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Use erb instead of ostruct for test_frozen_loaded_features

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 574bfd284562959ff4d676231d180a7514f0abeb
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 13:28:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Update documents for ostruct

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit adb4029bc167bf9bd8ac074190e0b3944fa1ff50
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 13:21:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Removed logger from stub data

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 32fb364de8515313b38dcd7d12db56e1183700fe
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 13:15:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Replace target list with stub constants at example of bundled_gems.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 5f4be3ad7ea6d914f9d50d1da74eb801a02873a8
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 09:58:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Make ostruct as bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit d722bdcf6e6d195faf4ed03bbd8b2c07686a925b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-11-28 10:17:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 17:12:19 +0900

    Convert ostruct to openstruct

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12531

commit 3e6f5ead9e0a0cbbf4d8930d7eb31db057d053c2
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-20 01:09:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-08 14:11:15 +0900

    Reapply "Suppress WIN32OLE deprecation warnings for the time being"

    Revert the part of commit 10917c5cc026f839a3dcd072b6e274eed211d0f7,
    "Update to ruby/spec@18032a7", that discarded the previous commit.

commit b81db531b24a6824bf5b89d8460baed5d5418835
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-08 12:03:12 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-08 13:26:14 +0900

    [Bug #21011] `nd_value` is NULL in massign

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12530

commit 1a06bee027d5c5b65ed0aaee76ee0040554d4efd
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-06 11:42:23 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-08 12:30:16 +0900

    Do not intern invalid symbols in eval parse

    When the inner code cannot represent the name of the locals in the
    outer code, do not bother putting them into the constant pool as
    they will not be referenced.

    Fixes [Bug #20992]

    Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12514

commit 27c9ccb30e6f4af8f85bb837db00de5f5b6bbaae
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 11:09:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 11:55:39 +0900

    Also stub-out with directry using with test script or -e option

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12529

commit 4a02a72ca57daf4984a3b2245dbc418fe35e6295
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 11:02:00 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 11:55:39 +0900

    Dont't use stub constants like LIBDIR in bundled_gems.rb

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12529

commit aaf36f4f8eb585ef598aa9f2d973adf92a868de3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-08 10:48:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-08 11:55:39 +0900

    Use heredoc to script runner for another ruby process

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12529

commit 18f756e4af23104284fd03cee7ca6a374ea9bbb1
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-12 11:20:52 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-08 10:48:07 +0900

    Remove unnecessary semantic actions

    If you don’t specify an action for a rule, Lrama supplies a default: `$$ = $1`.

commit 76759003f5d275f8f5dbf42259ff55584fa6b387
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-08 01:14:01 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-08 10:46:23 +0900

    Introduce macro for creating child iseqs with callbacks

    Use macro like `NEW_ISEQ` and `NEW_CHILD_ISEQ`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11804

commit 63723c8d5908569918fb27e070ae5bc9de33c8bd
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-01-08 09:14:18 +0900
  Commit:     Aaron Patterson <aaron.patterson@gmail.com>
  CommitDate: 2025-01-08 10:08:43 +0900

    Correctly set node_id on iseq location

    The iseq location object has a slot for node ids.  parse.y was correctly
    populating that field but Prism was not. This commit populates the field
    with the ast node id for that iseq

    [Bug #21014]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12527

commit 4a78d74039df3fc6870800596667a7b42522b032
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-08 07:17:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-08 07:17:31 +0900

    [ruby/mmtk] Remove unused Ruby SHA reference in Cargo.toml

    https://github.com/ruby/mmtk/commit/02b9439ea6

commit ad96c5a72908042489357b73dc936c4bc38d919b
  Author:     eileencodes <eileencodes@gmail.com>
  AuthorDate: 2025-01-08 04:18:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-08 04:35:01 +0900

    [ruby/prism] Throw syntax error for endless method with `[]=`

    Prism shoudld throw a syntax error for endless methods when the method
    name uses brackets. Previously it would not. This matches the behavior
    of parse.y.

    Fixes https://bugs.ruby-lang.org/issues/21010

    https://github.com/ruby/prism/commit/43c16a89ef

commit d0f9f3e2c6eb074aa94f1460cce5a24c2415495f
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-07 06:13:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-08 01:01:08 +0900

    Remove IMEMO_DEBUG

    The code path hasn't compiled for almost a year, since 330830dd1a44b6e497250a14d93efae6fa363f82,
    so probably nobody uses it.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12519

commit b9d29912dd03d0858187cc4770c76152add0f3f8
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-01-08 00:57:40 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-08 00:57:45 +0900

    [ruby/reline] Update to Unicode 16.0.0
    (https://github.com/ruby/reline/pull/803)

    https://github.com/ruby/reline/commit/24e6128676

commit 2b713f08a321f0557f61e78165d729098af69672
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-08 00:37:28 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-08 00:37:41 +0900

    [ruby/mmtk] Bump mmtk-core version

    https://github.com/ruby/mmtk/commit/0de72c03ba

commit 60f235ab1ff436d520648fc7944fbe0d1b579b79
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-07 23:00:38 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 23:25:38 +0900

    [ruby/prism] Move a parser translator test to a known failure

    That issue is exactly about what this test file contains:
    A single-quoted heredocs with backslashes

    https://github.com/ruby/prism/commit/4820a44c7b

commit 271cdb3c1c9f76ef94f2d51bac5db80f6318c01f
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-01-07 19:40:26 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-07 20:30:52 +0900

    Quarantine failing new specs that require investigation

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12517

commit 10917c5cc026f839a3dcd072b6e274eed211d0f7
  Author:     Andrew Konchin <andry.konchin@gmail.com>
  AuthorDate: 2025-01-07 03:28:22 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-07 20:30:52 +0900

    Update to ruby/spec@18032a7

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12517

commit 36d5e2d8f72afcdbbed64ce21bc94134124d691e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-07 13:29:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-07 13:29:35 +0900

    [DOC] Fix `exclude:` as regexps

commit f756950d82dfd5049448a69f4fe4ddad5a7f7ff6
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-01-04 03:41:08 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-07 13:21:46 +0900

    Improve lookup tables for string escaping.

    Introduce a simplified table for the most common case, which is
    `script_safe: false, ascii_only: false`.

    On the `script_safe` table, now only `0xE2` does a multi-byte check.

    Merge back `convert_ASCII_to_JSON`, as it no longer help much with
    the simplified escape table.

    ```
    == Encoding mixed utf8 (5003001 bytes)
    ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after    38.000 i/100ms
    Calculating -------------------------------------
                   after    398.220 (± 3.0%) i/s    (2.51 ms/i) -      2.014k in   5.061659s

    Comparison:
                  before:      381.8 i/s
                   after:      398.2 i/s - same-ish: difference falls within error

    == Encoding mostly utf8 (5001001 bytes)
    ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after    39.000 i/100ms
    Calculating -------------------------------------
                   after    393.337 (± 2.5%) i/s    (2.54 ms/i) -      1.989k in   5.059397s

    Comparison:
                  before:      304.3 i/s
                   after:      393.3 i/s - 1.29x  faster

    == Encoding twitter.json (466906 bytes)
    ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
    Warming up --------------------------------------
                   after   244.000 i/100ms
    Calculating -------------------------------------
                   after      2.436k (± 0.9%) i/s  (410.43 μs/i) -     12.200k in   5.007702s

    Comparison:
                  before:     2125.9 i/s
                   after:     2436.5 i/s - 1.15x  faster
    ```

commit b176d4f52e4af67654814dab3e9c5f4bf9170e54
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-07 11:38:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-07 11:38:51 +0900

    [Bug #21008] Normalize before sum to float

    After switching to `Float`-mode when summing `Numeric` objects,
    normalization for `Float` is still needed.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12522

commit e9593eb96715628edb0e5b2b5accdffd1d85187d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-07 09:56:54 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-07 09:56:54 +0900

    [DOC] Fix an error example

    `%q{c}` after another string literal is parsed as RHS of modulo, `q`
    method call with a block.

commit be4567e194c7eb8571d0b43336e91c27b5eeb451
  Author:     mterada1228 <49284339+mterada1228@users.noreply.github.com>
  AuthorDate: 2025-01-07 09:53:45 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 09:53:50 +0900

    [ruby/rdoc] Add missing `RDoc::RubygemsHook` API for `gem server`
    (https://github.com/ruby/rdoc/pull/1270)

    This PR fixes https://github.com/ruby/rdoc/pull/1269.

    ## Expected Behavior

    `gem server` command is successful.

    ```console
    $ gem server
    Server started at http://[::]:8808
    Server started at http://0.0.0.0:8808
    ```

    http://127.0.0.1:8808/ works.

    ## Actual Behavior

    `gem server` command doesn't work because `Gem::RDoc.load_rdoc` raises
    `NoMethodError`.

    ```console
    $ gem server
    ERROR:  While executing gem ... (NoMethodError)
        undefined method 'load_rdoc' for class RDoc::RubygemsHook

        Gem::RDoc.load_rdoc
                 ^^^^^^^^^^
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:437:in 'Gem::Server#initialize'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:426:in 'Class#new'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/server.rb:426:in 'Gem::Server.run'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/rubygems-server-0.3.0/lib/rubygems/commands/server_command.rb:83:in 'Gem::Commands::ServerCommand#execute'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command.rb:326:in 'Gem::Command#invoke_with_build_args'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:253:in 'Gem::CommandManager#invoke_command'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:194:in 'Gem::CommandManager#process_args'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/command_manager.rb:152:in 'Gem::CommandManager#run'
            /Users/mterada/.rbenv/versions/3.4.1/lib/ruby/3.4.0/rubygems/gem_runner.rb:57:in 'Gem::GemRunner#run'
            /Users/mterada/.rbenv/versions/3.4.1/bin/gem:12:in '<main>'
    ```

    ## Versions

    ```console
    $ rdoc -v
    6.10.0
    ```

    ---------

    https://github.com/ruby/rdoc/commit/b6a82244a2

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

commit 9bbcbc3f368cbfdbfa914b276cd523cb0fc527ec
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-06 15:49:13 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-07 08:00:22 +0900

    glibc and musl didn't provide A1-A7, FP and S3-S8 constants.

    * https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
    * https://git.musl-libc.org/cgit/musl/tree/arch/loongarch64/bits/signal.h

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12515

commit 89c505dc479a081aa4cc69add29855b182d52b7d
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2024-12-13 16:43:14 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-07 07:56:48 +0900

    Move string escape sequence documention further down

    If someone looks at documention for strings,
    I don't think escape sequences is what they look
    for in majority of the cases.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12318

commit b0d291ec83dd8140f7319f94bff6566681678c59
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2024-12-13 16:42:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-07 07:56:48 +0900

    Fix link to strings in literals.rdoc

    Since https://github.com/ruby/ruby/commit/5e1001f754b34e1f0cc67563512c6036b6eb75ab, the string link is broken

    Instead of changing the anchor reference, I changed the header directly,
    to keep in line with other titles

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12318

commit b3de2c334ea6d9382626be421ce63d1f0a696f4e
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-05 10:14:03 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-07 07:18:49 +0900

    Use `ISEQ_BODY(iseq)` instead of `iseq->body`

    trivial change that unifies the format for access.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11803

commit de8deb5f9c7aef899bbad6652e86ab1031a25965
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-12-29 11:45:54 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-07 07:17:55 +0900

    Remove unused token definitions for `tRPAREN` in Ripper and parser files

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12488

commit 8fb17f86d7ef2a84f82c83a9509e311a07aa93fc
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-07 05:06:02 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-07 05:06:02 +0900

    [Bug #21006] Fix defined_expr compilation of method call with parenth… (#12518)

    [Bug #21006] Fix defined_expr compilation of method call with parenthesized receiver

commit 5698f4f2e1b8221a68989f881c03a41175736a8a
  Author:     Mari Imaizumi <mariimaizumi5@gmail.com>
  AuthorDate: 2025-01-07 04:21:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 04:21:09 +0900

    [ruby/reline] Enter newline if cursor position is middle of input
    (https://github.com/ruby/reline/pull/802)

    * Enter newline if cursor position is middle of input

    * Add ed_force_submit to allow input confirmation on non-final lines

    https://github.com/ruby/reline/commit/8ef534e904

commit 31905d9e23ec6d1fa2a52f1ef2533f2056e7c9fb
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-06 10:42:09 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-07 03:18:22 +0900

    Allow escaping from ensures through next

    Fixes [Bug #21001]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12513

commit a61c16ba4214da3eda45bdd2b168e7d7e8af30c5
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2025-01-07 00:13:16 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 02:07:57 +0900

    [ruby/openssl] pkey: simplify X25519/Ed25519 test cases

    When these test cases were written, we did not know the exact OpenSSL
    and LibreSSL version number in which they would be implemented. Now that
    we know it, we can use that information to ensure the tests are run
    whenever they should be.

     - OpenSSL 1.1.0 added X25519 support
     - OpenSSL 1.1.1 added Ed25519 support and
       EVP_PKEY_new_raw_private_key()
     - LibreSSL 3.7.0 added X25519 and Ed25519 support in EVP_PKEY and
       EVP_PKEY_new_raw_private_key()
     - LibreSSL 3.8.1 allowed ASN1_item_sign() to use Ed25519

    https://github.com/ruby/openssl/commit/6cb6663c91

commit 3da850104ea75d6ea6ac6babae3596972129f953
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-08-17 15:04:00 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 02:07:57 +0900

    [ruby/openssl] pkey: fix test case for new_raw_*key

    Method names must start with "test_" to run.

    https://github.com/ruby/openssl/commit/fed9d09b76

commit ff708f86fadd891869a96320f1de499dee1b1046
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-07-04 17:28:10 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 02:07:56 +0900

    [ruby/openssl] pkey/ec: use heredoc for invalid key example in test cases

    test/openssl/fixtures/pkey/p256_too_large.pem and p384_invalid.pem are
    invalid keys where the encoded public key doesn't match the private key.
    They are only useful for test cases for OpenSSL::PKey::EC#check_key and
    will not be reused elsewhere. Let's directly include the PEM encoding
    as a heredoc for clarity.

    p384_invalid.pem is dropped because it is redundant.

    https://github.com/ruby/openssl/commit/2f807ff30f

commit f0095413a520140d2ba54728d3e558d75dfda09d
  Author:     Kazuki Yamaguchi <k@rhe.jp>
  AuthorDate: 2024-07-04 17:05:05 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-07 02:07:56 +0900

    [ruby/openssl] x509cert: simplify test cases for Certificate.load_file

    Remove files from test/openssl/fixtures/pkey/ which are not pkeys.
    The test cases for OpenSSL::X509::Certificate.load_file can simply use
    issue_cert and Tempfile.

    https://github.com/ruby/openssl/commit/11216b8bec

commit 5412501e3611b2a344bf2d71f385bc4f8f0e02ca
  Author:     samuel40791765 <sachiang@amazon.com>
  AuthorDate: 2024-12-21 09:29:33 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 23:04:58 +0900

    [ruby/openssl] pkey: Use openssl generated pkcs8 key instead

    https://github.com/ruby/openssl/commit/6a6fac9958

commit 975461bf885b8fb791cf048ad39c79924d28e4e9
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-01-04 13:42:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-06 20:17:47 +0900

    Remove SYM2ID for Parser

    Ruby Parser not used SYM2ID.
    And sym2id property can be removed from Universal Parser.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12507

commit e0591b666f763a5adc3bad0772c214e11128d81b
  Author:     Naoto Ono <onoto1998@gmail.com>
  AuthorDate: 2025-01-06 19:49:58 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-06 19:49:58 +0900

    Launchable: Exit 0 not to stop CI pipeline (#12449)

  Notes:
    Merged-By: ono-max <onoto1998@gmail.com>

commit 54bd5e036e4ca94cd557ba09bb3e4de4e1e7f75f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-06 18:02:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-06 18:39:24 +0900

    Try to update the latest version of vcpkg

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12064

commit 49d8384e14c444d306ab3d37943a604258fa7f47
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-11-12 18:59:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-06 18:39:24 +0900

    Update vcpkg baseline with latest version

    ```
        libffi:x64-windows@3.4.6
        libyaml:x64-windows@0.2.5#5
        openssl:x64-windows@3.4.0
      * vcpkg-cmake:x64-windows@2024-04-23
      * vcpkg-cmake-config:x64-windows@2024-05-23
      * vcpkg-cmake-get-vars:x64-windows@2024-09-22
        zlib:x64-windows@1.3.1
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12064

commit 668701cb0b42f27c5f54309a358c6fcbb24b5d85
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-06 18:11:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-06 18:11:38 +0900

    Added copyright for vendored turbo_tests.

    [Bug #21002]

commit 70decc857cdaa9c5766ae39394f174bd717a2696
  Author:     License Update <license.update@rubygems.org>
  AuthorDate: 2025-01-05 09:32:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 16:19:23 +0900

    [rubygems/rubygems] Update SPDX license list as of 2024-12-30

    https://github.com/rubygems/rubygems/commit/42aaaff15c

commit 7ec233c85b684a254dbbbbd5baab56241a7db14c
  Author:     Raul Gutierrez Segales <rgs@pop-os.myfiosgateway.com>
  AuthorDate: 2025-01-04 06:33:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2025-01-06 15:41:49 +0900

    Fix typo for private constant in Socket

    Signed-off-by: Raul Gutierrez Segales <rgs@itevenworks.net>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12506

commit c8e3d745fabc2060a6e5c7342c881bb31f58f5f5
  Author:     Junichi Ito <jit@sonicgarden.jp>
  AuthorDate: 2024-12-22 12:54:35 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-06 10:50:53 +0900

    Use a single quote instead of a backtick for error messages
    Fix https://bugs.ruby-lang.org/issues/20977

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12424

commit 8a9f1e600fc151f4b01d51c43a2613fd0a71a79c
  Author:     Mark Young <mark.w.young@keyloop.com>
  AuthorDate: 2025-01-01 01:38:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 10:20:56 +0900

    [ruby/logger] Provide a 'Changelog' link on rubygems.org/gems/logger

    By providing a 'changelog_uri' in the metadata of the gemspec a
    'Changelog' link will be shown on https://rubygems.org/gems/logger
    which makes it quick and easy for someone to check on the changes
    introduced with a new version.

    Details of this functionality can be found on https://guides.rubygems.org/specification-reference/#metadata

    https://github.com/ruby/logger/commit/c6c64b02a0

commit 80b01cc567f4c347b2ec78298b2fe639ac326ac4
  Author:     Mark Young <mark.w.young@keyloop.com>
  AuthorDate: 2025-01-01 01:48:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 10:19:55 +0900

    [ruby/net-http] Provide a 'Changelog' link on rubygems.org/gems/net-http

    By providing a 'changelog_uri' in the metadata of the gemspec a
    'Changelog' link will be shown on https://rubygems.org/gems/net-http
    which makes it quick and easy for someone to check on the changes
    introduced with a new version.

    Details of this functionality can be found on https://guides.rubygems.org/specification-reference/#metadata

    https://github.com/ruby/net-http/commit/eeb728fefe

commit ce09b43aa056f8902cd99b7aee253aae725da996
  Author:     Mark Young <mark.w.young@keyloop.com>
  AuthorDate: 2025-01-01 01:53:12 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 10:19:45 +0900

    [ruby/ostruct] Provide a 'Changelog' link on rubygems.org/gems/ostruct

    By providing a 'changelog_uri' in the metadata of the gemspec a
    'Changelog' link will be shown on https://rubygems.org/gems/ostruct
    which makes it quick and easy for someone to check on the changes
    introduced with a new version.

    Details of this functionality can be found on https://guides.rubygems.org/specification-reference/#metadata

    https://github.com/ruby/ostruct/commit/47d84001eb

commit 3b659457b8095d4f6694250b6f93b028fd63010c
  Author:     Mark Young <mark.w.young@keyloop.com>
  AuthorDate: 2025-01-01 02:03:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 10:19:30 +0900

    [ruby/securerandom] Provide a 'Changelog' link on rubygems.org/gems/securerandom

    By providing a 'changelog_uri' in the metadata of the gemspec a
    'Changelog' link will be shown on https://rubygems.org/gems/securerandom
    which makes it quick and easy for someone to check on the changes
    introduced with a new version.

    Details of this functionality can be found on https://guides.rubygems.org/specification-reference/#metadata

    https://github.com/ruby/securerandom/commit/3e0249deaf

commit 2a1cff40f5e7875f69a7d0ed59eab92cc86c65ff
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-06 03:29:55 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2025-01-06 09:56:21 +0900

    Do not warn unused block when using forwarding

    Fixes [Bug #21003]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12512

commit c037f5a28c54b86139ef17db061fdbf7dc82fd32
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2025-01-04 03:14:15 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 03:12:44 +0900

    [ruby/prism] Fix parser translator ast for heredoc with written newlines

    Heredocs that contain "\\n" don't start a new string node.

    https://github.com/ruby/prism/commit/61d9d3a15e

commit 179e2cfa918c8bd418ca68b99b174f00f1ec205e
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-06 02:29:02 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-06 03:05:35 +0900

    [ruby/prism] Fix global variable read off end

    https://github.com/ruby/prism/commit/3f2c34b53d

commit 22e9fa81ca27243922ec9a32fdd96065becb35f9
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2024-12-30 19:10:51 +0900
  Commit:     Jean Boussier <jean.boussier@gmail.com>
  CommitDate: 2025-01-06 01:04:54 +0900

    gc/default/default.c: don't call `malloc_usable_size` when hint is present

    Depending on the allocator, `malloc_usable_size` may be very cheap or quite
    expensive. On `macOS` for instance, it's about as expensive as `malloc`.

    In many case we call `objspace_malloc_size` with as size we initially
    requested as `hint`. The real usable size may be a few bytes bigger,
    but since we only use that data to feed GC heuristics, I don't think
    it's very important to be perfectly accurate.

    It would make sense to call `malloc_usable_size` after growing a String
    or Array to use the extra capacity, but here we don't do that, so
    the call isn't worth its cost.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12490

commit 37361d87a6903c16d3e0662ae6a7e285f3ede68b
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2025-01-05 23:40:49 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-05 23:40:49 +0900

    [DOC] Tweaks for Hash.new (#12503)

  Notes:
    Merged-By: peterzhu2118 <peter@peterzhu.ca>

commit e45fca1372c40386d0b665432e7d4c68fcb3a522
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2025-01-05 21:41:50 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-05 21:41:53 +0900

    [ruby/rdoc] [DOC] Remove unnecessary rdoc-ref missing example
    (https://github.com/ruby/rdoc/pull/1271)

    We don't actually need to link to the missing item to show the non-linked
    result.

    https://github.com/ruby/rdoc/commit/a7b7e8fc55

commit 9552bd590c455b6501aa8233a3a1e435a315989f
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-01-05 18:42:27 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-05 18:42:27 +0900

    Sync IRB to 3e6c12b (#12486)

    Sync IRB to 3e6c12b174c0a961d8065eae22f6c4afc7b2c3e8

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit a70206c439b1f559ba5207b3027a8d6e3ec477ab
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-05 15:57:22 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-05 15:57:25 +0900

    [ruby/reline] Refactor utf-8 strings and invalid strings in test
    code
    (https://github.com/ruby/reline/pull/800)

    * Remove invalid encoding string "\M-[char]" from test code, remove unused code/arg/options

    * Omit unicode unnoralized input test in non-utf8 testcase

    * Remove helper method and constant no longer used in testcode

    * Change key binding test to use realistic bytes instead of invalid byte sequence

    * Remove invalid byte sequence input from rendering test

    yamatanooroti handles invalid byte sequence input "\M-[char]" and converts it to "\e[char]"
    We don't need to use these invalid byte sequence and rely on the hack implemented in yamatanooroti

    https://github.com/ruby/reline/commit/f09e7b154c

commit 9a15672614c772d80ecd43d41653399b0ed98d89
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-05 13:57:19 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-05 13:57:23 +0900

    [ruby/reline] Fix bracketed paste and scrolling bug
    (https://github.com/ruby/reline/pull/801)

    * Fix set_pasting_state bug with bracketed paste

    * Fix rendered cursor_y caching in case of rendering the screen without scroll_into_view

    https://github.com/ruby/reline/commit/c5d5c444df

commit dfc9e978fba886d9a9175534551b1fc7b4d22abd
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-05 07:02:24 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-05 09:06:12 +0900

    [Bug #21004] Fix memory leak with "it" in parse.y

    Parsing `-> do it end` in parse.y leaks memory. We can see this in the
    Valgrind output:

        56 bytes in 1 blocks are definitely lost in loss record 1 of 6
            at 0x484E0DC: calloc (vg_replace_malloc.c:1675)
            by 0x188970: calloc1 (default.c:1472)
            by 0x188970: rb_gc_impl_calloc (default.c:8208)
            by 0x188970: ruby_xcalloc_body (gc.c:4598)
            by 0x18B8BC: ruby_xcalloc (gc.c:4592)
            by 0x21DCCA70: new_locations_lambda_body (ripper.y:12844)
            by 0x21DCCA70: ripper_yyparse (ripper.y:5194)
            by 0x21DDA521: rb_ruby_ripper_parse0 (ripper.y:15798)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12508

commit 78d7dde21c80e97c5c3102410c961478e8979cd6
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-05 07:02:14 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-05 09:06:12 +0900

    Remove unused loc in rb_locations_lambda_body_t

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12508

commit 9d7ba7848f970012848094e07ed3c34e4fc2d57c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-05 07:17:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-05 07:53:33 +0900

    Suppress warnings for flip-flop in test_ast.rb

    There are warnings emitted from test_flip2_locations and test_flip3_locations.
    This commit changes ast_parse to suppress all warnings.

        warning: integer literal in flip-flop
        warning: string literal in flip-flop

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12509

commit c71addc5227f2f7a04db2b2fb4c14d464639f3f6
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-01-05 01:41:00 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-05 02:53:20 +0900

    YJIT: Fix crash when yielding keyword arguments

    Previously, the code for dropping surplus arguments when yielding
    into blocks erroneously attempted to drop keyword arguments when there
    is in fact no surplus arguments. Fix the condition and test that
    supplying the exact number of keyword arguments as require compiles
    without fallback.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12499

commit 37356b713ceb0d159f946269c8479854ceb2acee
  Author:     Nick Dower <nicholasdower@gmail.com>
  AuthorDate: 2025-01-03 01:24:55 +0900
  Commit:     Alan Wu <XrXr@users.noreply.github.com>
  CommitDate: 2025-01-05 02:53:20 +0900

    YJIT: Add crashing test for yielding keyword args

    Code like the following is crashing for us on 3.4.1:

    ```ruby
    def a(&) = yield(x: 0)

    1000.times { a { |x:| x } }
    ```

    Crash:

    ```
    ruby: YJIT has panicked. More info to follow...
    thread '<unnamed>' panicked at ./yjit/src/codegen.rs:8018:13:
    assertion `left == right` failed
      left: 0
     right: 1
    ```

    Co-authored-by: Dani Acherkan <dtl.117@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12499

commit c936699431477a565b9e4036bc3b1fc186ac9918
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 00:52:14 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 20:27:40 +0900

    Implement FLIP3 NODE locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11986

commit 24653430cde5f7abb895d1a009ebf4d8cfc39519
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 00:47:19 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 20:27:40 +0900

    Implement FLIP2 NODE locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11986

commit 61c4907458f00841f28feb2daeb508af8c494d51
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 00:31:29 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 20:27:40 +0900

    Implement DOT3 NODE locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11986

commit 88da6856a3f5cc6a84a8d1909f56952c605ef0dc
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-03 00:26:25 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 20:27:40 +0900

    Implement DOT2 NODE locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11986

commit a1f010b8e41f5406a728cc8a75816a0a20bf2174
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-12 11:05:01 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:59:30 +0900

    Use user defined parameterizing rules `compstmt(stmts)`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11652

commit bb66b42a7fe8bb3beb1b806330bf268867fa1e49
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-04 17:56:45 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:58:44 +0900

    Use user defined parameterizing rules `op_asgn(rhs)`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12494

commit 2efa78099cabbf40e0c974a047605ca0bfc09fc6
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-02 01:23:26 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:58:44 +0900

    Use user defined parameterizing rules `def_endless_method(bodystmt)`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12494

commit 4fa68953fbf1e2cec9b8650a5a25b4b6bfe0e331
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-02 01:11:23 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:58:44 +0900

    Use user defined parameterizing rules `asgn(lhs, rhs)`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12494

commit 1e330dd5ecddd709d9d3c2fa24a42506c52c06b3
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-04 17:22:58 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:07:27 +0900

    Use `p_primitive_value`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11889

commit f00c5102c046c8376b0c680423686ac2fcb99592
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-12 16:47:05 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:07:27 +0900

    Use `command_call_value`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11889

commit 0eb63c410ea0324412c0376e5cf2166e81e32970
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-12 16:46:05 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:07:27 +0900

    Use user defined parameterizing rules  `value_expr`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11889

commit 7124c34f516c82ee483ca9a8bf3346926c7a2a80
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-12-13 20:44:39 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 18:04:42 +0900

    Remove unused `FIXNUM_OR` macro from compile.c

    This PR remove unused FIXNUM_OR macro from compile.c

    before:
    ```
    ❯ git grep 'FIXNUM_OR'
    compile.c:#define FIXNUM_OR(n, i) ((n)|INT2FIX(i))
    ```

    after:
    ```
    ❯ git grep 'FIXNUM_OR'

    ```

commit 9ebfda07f7d51497b85961f99a00562800696de9
  Author:     git[bot] <svn-admin@ruby-lang.org>
  AuthorDate: 2025-01-04 15:58:36 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-04 15:58:36 +0900

    Update bundled gems list as of 2025-01-04

commit f2454aa2c28e15c88750c731262d23ad9e6c849d
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-03 22:59:23 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 13:55:44 +0900

    Use user defined parameterizing rules `f_kw(value)`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11674

commit 5fcc3ab534cb001a577a5c64381d3a31813344c9
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-05 14:13:29 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 13:53:13 +0900

    Implement REGX NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e '/foo/'
    @ ProgramNode (location: (1,0)-(1,5))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,5))
        +-- body: (length: 1)
            +-- @ RegularExpressionNode (location: (1,0)-(1,5))
                +-- RegularExpressionFlags: forced_us_ascii_encoding
                +-- opening_loc: (1,0)-(1,1) = "/"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- content_loc: (1,1)-(1,4) = "foo"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- closing_loc: (1,4)-(1,5) = "/"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- unescaped: "foo"
    ```

commit fa2517451ec265d5b273e864bc750a1b9ba2957f
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-02 17:21:51 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 13:52:35 +0900

    Implement LAMBDA NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e "-> (a, b) do foo end"
    @ ProgramNode (location: (1,0)-(1,20))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,20))
        +-- body: (length: 1)
            +-- @ LambdaNode (location: (1,0)-(1,20))
                +-- locals: [:a, :b]
                +-- operator_loc: (1,0)-(1,2) = "->"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- opening_loc: (1,10)-(1,12) = "do"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- closing_loc: (1,17)-(1,20) = "end"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    : (snip)
    ```

commit 607b1b3d7628b1f94f086ce1dfe67789179cf906
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-06 12:14:01 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 07:34:49 +0900

    Implement YIELD NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e 'def foo; yield end'
    @ ProgramNode (location: (1,0)-(1,18))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,18))
        +-- body: (length: 1)
            +-- @ DefNode (location: (1,0)-(1,18))
                +-- name: :foo
                +-- name_loc: (1,4)-(1,7) = "foo"
                +-- receiver: nil
                +-- parameters: nil
                +-- body:
                |   @ StatementsNode (location: (1,9)-(1,14))
                |   +-- body: (length: 1)
                |       +-- @ YieldNode (location: (1,9)-(1,14))
                |           +-- keyword_loc: (1,9)-(1,14) = "yield"
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                |           +-- lparen_loc: nil
                            ^^^^^^^^^^^^^^^^^^^
                |           +-- arguments: nil
                |           +-- rparen_loc: nil
                            ^^^^^^^^^^^^^^^^^^^
                +-- locals: []
                +-- def_keyword_loc: (1,0)-(1,3) = "def"
                +-- operator_loc: nil
                +-- lparen_loc: nil
                +-- rparen_loc: nil
                +-- equal_loc: nil
                +-- end_keyword_loc: (1,15)-(1,18) = "end"
    ```

commit 4c192011422dc04902ddf930ff22be223325a35d
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-11-04 23:32:00 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-04 07:34:25 +0900

    Implement EVSTR NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -e '"#{foo}"'
    @ ProgramNode (location: (1,0)-(1,8))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,8))
        +-- body: (length: 1)
            +-- @ InterpolatedStringNode (location: (1,0)-(1,8))
                +-- InterpolatedStringNodeFlags: nil
                +-- opening_loc: (1,0)-(1,1) = "\""
                +-- parts: (length: 1)
                |   +-- @ EmbeddedStatementsNode (location: (1,1)-(1,7))
                |       +-- opening_loc: (1,1)-(1,3) = "\#{"
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                |       +-- statements:
                |       |   @ StatementsNode (location: (1,3)-(1,6))
                |       |   +-- body: (length: 1)
                |       |       +-- @ CallNode (location: (1,3)-(1,6))
                |       |           +-- CallNodeFlags: variable_call, ignore_visibility
                |       |           +-- receiver: nil
                |       |           +-- call_operator_loc: nil
                |       |           +-- name: :foo
                |       |           +-- message_loc: (1,3)-(1,6) = "foo"
                |       |           +-- opening_loc: nil
                |       |           +-- arguments: nil
                |       |           +-- closing_loc: nil
                |       |           +-- block: nil
                |       +-- closing_loc: (1,6)-(1,7) = "}"
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- closing_loc: (1,7)-(1,8) = "\""
    ```

commit 34ee062d74ebfcbd04a0f2be2cdfda9cd8d20716
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-01-04 00:37:22 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-04 07:02:50 +0900

    Remove dead function rb_struct_const_heap_ptr

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12502

commit 6b2b537e35e5dc1c9457568969ccd78b7a5f28cf
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-01-04 04:22:29 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-04 04:56:43 +0900

    [DOC] Tweaks for Hash::[]

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12504

commit f3491042597ebdc3b93dc658f09ee6d260bc8592
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2025-01-03 04:31:05 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-04 01:42:53 +0900

    [DOC] Tweaks for Array doc

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12498

commit fa0478d35509c28c2ab3d3af9bb40a523920992e
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-03 23:27:39 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 23:27:44 +0900

    [ruby/reline] Refactor handling key in LineEditor
    (https://github.com/ruby/reline/pull/799)

    Simplify the complicated flow of waiting_proc, wrap_method_call and run_for_operation

    https://github.com/ruby/reline/commit/72c0ec0425

commit c22b0598b0dd197a49212e06cfc91e4a3f2e058c
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-27 23:55:48 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 23:03:04 +0900

    Implement SUPER NODE locations

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11712

commit 5cc4240dda72582456dc271ec580178d070197a9
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-10-03 23:02:03 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 22:13:20 +0900

    Refactor parse.y to replace `tIDENTIFIER` and `tCONSTANT` with `ident_or_const` inline rules

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11782

commit 27e61e2df749c82ea3e9d9e6d1004ed718fefeee
  Author:     Martin Dürst <duerst@it.aoyama.ac.jp>
  AuthorDate: 2025-01-03 21:14:32 +0900
  Commit:     Martin Dürst <duerst@it.aoyama.ac.jp>
  CommitDate: 2025-01-03 21:28:47 +0900

    Speed up initial test creation in test_case_comprehensive.rb:

    - Change generate_case_mapping_tests to
      generate_single_byte_case_mapping_tests
      (all encodings using this method happen to be single-byte)
    - Change precalculation of codepoints by converting from
      specific encoding, not from Unicode. This reduces creation time.
    (See https://github.com/ruby/ruby/pull/7425 for a related proposal
    and some additional comments.)

commit d4009d939c15a033a5afa91280efca4efa174929
  Author:     Yudai Takada <t.yudai92@gmail.com>
  AuthorDate: 2024-11-02 18:30:55 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:26:21 +0900

    Remove spaces

    Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11717

commit 4b02a7b794b6c565eae0ed3c8dfedc1b8daf4e49
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-30 13:48:31 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:26:21 +0900

    Change `rb_ast_compile` to a function that simply creates a parser and sets options

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11717

commit b33c1e4bb2943779b9e7a8034cb6763ef9c25e67
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-28 18:22:02 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:26:21 +0900

    Extract `rb_ast_compile`

    From duplicate code in `rb_ast_parse_str`, `rb_ast_parse_file` and `rb_ast_parse_array`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11717

commit fd2f66e3c0f7c04eb00eb41c495a0c92e094a967
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-24 22:25:31 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:21:52 +0900

    Use Named Reference for RHS of `def_name`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11677

commit aa892378a11cd763985051272f5708d86041ccd6
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-24 22:09:42 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:20:15 +0900

    Use callee side tag specification of parameterizing rules

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11676

commit 1e2ed31cc2249d76f8ac4bc39134d0fd6ea7dc93
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2024-09-20 17:25:17 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 21:19:41 +0900

    Change the reference to the RHS in the Parameterizing rules action to a Named Reference

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11651

commit 0643f081877ea19f8dd6610dd67b2606ecf4c880
  Author:     ydah <t.yudai92@gmail.com>
  AuthorDate: 2025-01-03 19:51:58 +0900
  Commit:     Yudai Takada <t.yudai92@gmail.com>
  CommitDate: 2025-01-03 20:34:19 +0900

    Implement IF NODE locations

    The following Location information has been added This is the information required for parse.y to be a universal parser:

    ```
    ❯ ruby --parser=prism --dump=parsetree -y -e "if a; elsif b; else end"
    @ ProgramNode (location: (1,0)-(1,23))
    +-- locals: []
    +-- statements:
        @ StatementsNode (location: (1,0)-(1,23))
        +-- body: (length: 1)
            +-- @ IfNode (location: (1,0)-(1,23))
                +-- if_keyword_loc: (1,0)-(1,2) = "if"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- predicate:
                |   @ CallNode (location: (1,3)-(1,4))
                |   +-- CallNodeFlags: variable_call, ignore_visibility
                |   +-- receiver: nil
                |   +-- call_operator_loc: nil
                |   +-- name: :a
                |   +-- message_loc: (1,3)-(1,4) = "a"
                |   +-- opening_loc: nil
                |   +-- arguments: nil
                |   +-- closing_loc: nil
                |   +-- block: nil
                +-- then_keyword_loc: nil
                ^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- statements: nil
                +-- subsequent:
                |   @ IfNode (location: (1,6)-(1,23))
                |   +-- if_keyword_loc: (1,6)-(1,11) = "elsif"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                |   +-- predicate:
                |   |   @ CallNode (location: (1,12)-(1,13))
                |   |   +-- CallNodeFlags: variable_call, ignore_visibility
                |   |   +-- receiver: nil
                |   |   +-- call_operator_loc: nil
                |   |   +-- name: :b
                |   |   +-- message_loc: (1,12)-(1,13) = "b"
                |   |   +-- opening_loc: nil
                |   |   +-- arguments: nil
                |   |   +-- closing_loc: nil
                |   |   +-- block: nil
                |   +-- then_keyword_loc: nil
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
                |   +-- statements: nil
                |   +-- subsequent:
                |   |   @ ElseNode (location: (1,15)-(1,23))
                |   |   +-- else_keyword_loc: (1,15)-(1,19) = "else"
                |   |   +-- statements: nil
                |   |   +-- end_keyword_loc: (1,20)-(1,23) = "end"
                |   +-- end_keyword_loc: (1,20)-(1,23) = "end"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                +-- end_keyword_loc: (1,20)-(1,23) = "end"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ```

commit 23018c2fb48ac7ada1ead79e3c896605c1b8bae6
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-03 20:13:52 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 20:13:57 +0900

    [ruby/rdoc] Fix prism_ruby superclass resolve order
    (https://github.com/ruby/rdoc/pull/1267)

    RDoc::Parser::PrismRuby wrongly resolves superclass of `class Cipher < Cipher; end` that exist in openssl.
    Superclass resolve should be done before adding class.

    https://github.com/ruby/rdoc/commit/57a4615a92

commit fb73be1f2a76cc7faaaab19ac7a818fd095bd725
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-03 11:29:29 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-03 13:43:33 +0900

    Win32: Define COROUTINE_DECL to suppress a warning

    In cont.c:

    ```
    warning C4141: 'noreturn': used more than once
    ```

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12501

commit 6bbb470dc77a671c67411a5d3a2564bd0a665a9c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-03 10:25:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-03 10:25:15 +0900

    [Bug #20504] Move dynamic regexp concatenation to iseq compiler

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12483

commit 77fe82286b24110292324007dafc436d01efd134
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-01 17:47:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-03 10:10:54 +0900

    Try all assertions in `TestM17N#test_regexp_usascii`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12483

commit c8eaad1804a1887b7d97bab2174e95eed0ad5472
  Author:     mark-young-atg <113439900+mark-young-atg@users.noreply.github.com>
  AuthorDate: 2025-01-03 08:21:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 08:21:31 +0900

    [ruby/stringio] Provide a 'Changelog' link on
    rubygems.org/gems/stringio
    (https://github.com/ruby/stringio/pull/111)

    By providing a 'changelog_uri' in the metadata of the gemspec a
    'Changelog' link will be shown on https://rubygems.org/gems/stringio
    which makes it quick and easy for someone to check on the changes
    introduced with a new version.

    Details of this functionality can be found on
    https://guides.rubygems.org/specification-reference/#metadata

    ---------

    https://github.com/ruby/stringio/commit/8c084bfcdb

    Co-authored-by: Sutou Kouhei <kou@cozmixng.org>

commit 3b519975d15d50d5a1c63d4f4d7d406b84564428
  Author:     sodacris <wjxa20152015@gmail.com>
  AuthorDate: 2024-12-04 21:41:53 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 06:02:47 +0900

    [rubygems/rubygems] remove unnecessary code

    https://github.com/rubygems/rubygems/commit/5c6ca7a58c

commit 7bf1612c87edadf880ef0f80f364d9ac1198f350
  Author:     sodacris <wjxa20152015@gmail.com>
  AuthorDate: 2024-12-04 19:25:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 06:02:46 +0900

    [rubygems/rubygems] unskip `print_args` and `fake_man` tests on Windows

    https://github.com/rubygems/rubygems/commit/c8eeb0af9d

commit a7383fc7f478942d7d465152c1202da7125573dc
  Author:     sodacris <wjxa20152015@gmail.com>
  AuthorDate: 2024-12-04 21:41:35 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 06:02:46 +0900

    [rubygems/rubygems] Replace shell specific stuff with create_file scripts

    https://github.com/rubygems/rubygems/commit/eea07ad691

commit 2f0674478bebce3828cf3128b4a27b4e67e00114
  Author:     Masataka Pocke Kuwabara <kuwabara@pocke.me>
  AuthorDate: 2025-01-01 01:02:48 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-03 01:40:14 +0900

    [ruby/prism] Fix cross-compile issue with newlib on Ubuntu 24.04

    https://github.com/ruby/prism/commit/61ebe51233

commit d67d1530a88fcc19c355ff79fccb165b623a48f1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 07:59:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Create rb_darray_realloc_mul_add

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit bd70534e97362ac8927bf01c7aafca1e051fc76a
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 07:52:32 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Change rb_darray_realloc_mul_add_without_gc to check for overflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit e596516182572457ce3a51adc246ece62a5c7823
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 07:51:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Create rb_darray_calloc_mul_add

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit 2e3b2d5eb25aff54bc97b93743b3e517096ca221
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 07:50:51 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Change rb_darray_calloc_mul_add_without_gc to check for overflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit 99ff0224a564b59df3ba8fbd7911dd41a7fdde34
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 07:46:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Move rbimpl_size_add_overflow from gc.c to memory.h

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit b8c4af24f920a973cfa1f7b671825e8a5421368c
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 05:30:48 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Use rb_darray_insert_without_gc for heap_pages darray

    rb_darray_insert could trigger a GC, which would cause problems if it
    freed pages while a new page was being inserted.

    For example, the following script fails:

        GC.stress = true
        GC.auto_compact = :empty

        10.times do
          GC.verify_compaction_references(expand_heap: true, toward: :empty)
        end

    It errors out with:

        'GC.verify_compaction_references': malloc: possible integer overflow (8*18446744073709551603) (ArgumentError)

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit f9cd9a1b5574e99c3b87cc203bba7f2c552dae53
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2024-12-25 05:13:27 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2025-01-03 01:03:04 +0900

    Revert "Remove with_gc functions in darray"

    This reverts commit 24a740796050b72aa2d35339ba2a317d4eda7b75.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12459

commit f1096c6ad4be6f93dc4f434a269389731f671ddb
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-01-02 23:32:28 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2025-01-02 23:32:28 +0900

    Remove and stop syncing IRB documentation (#12416)

    Follow-up to #12325

    Since we're not generating IRB documentation, we don't need to sync
    its `doc/` folder and keep the previous content.

  Notes:
    Merged-By: tompng <tomoyapenguin@gmail.com>

commit ba82399558dc35647280980648fd4b560b6a7fe7
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2025-01-01 15:59:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 17:11:45 +0900

    Remove rb_ary_push for parser

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12493

commit 3eebc8104147571dcbf325f98b28c707cada566e
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2024-10-28 22:22:34 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 17:11:32 +0900

    Rename to backref_with

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11865

commit 1686c6b787acfb002174fadfcde35d1768b07129
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2024-10-10 22:33:58 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 17:11:32 +0900

    Introduce backref_with_rhs parameterizing rules

  Notes:
    Merged: https://github.com/ruby/ruby/pull/11865

commit 03b37fb342249fe91a81dfbf422c54c66b6c5484
  Author:     S-H-GAMELINKS <gamelinks007@gmail.com>
  AuthorDate: 2024-05-15 16:37:30 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 17:10:31 +0900

    Introduce inline_operation rule

  Notes:
    Merged: https://github.com/ruby/ruby/pull/10773

commit 8034e9c3d001ca3dff124ab42972684eac8af2ae
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 15:50:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 15:50:20 +0900

    [Bug #20995] Protect `IO.popen` block from exiting by exception

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12497

commit 6cf11ad76eae08ba9d2bdc70c093bc67aca93864
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 02:06:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 14:37:43 +0900

    [ruby/rdoc] Stop autolinking the word "RDoc"
    (https://github.com/ruby/rdoc/pull/1266)

    https://github.com/ruby/rdoc/commit/73af94e3e3

commit e433e6515efbb31a77ab8013a7e9b2c57212264d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 12:36:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 12:36:06 +0900

    [DOC] Exclude 'Class' and 'Module' from RDoc's autolinking

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12496

commit b4ec22fe6c493a212c059cecab90de5b5f349102
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 12:06:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 12:23:49 +0900

    [DOC] Exclude 'Method' from RDoc's autolinking

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12496

commit d441d351073d6a6c49f7c12ea99e17480aa4ee5e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 11:58:15 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 11:58:15 +0900

    [DOC] Exclude 'Process' from RDoc's autolinking

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12496

commit e4fff86faf03d4804c6f34e2f1c71c0fe0c67d4d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 11:26:51 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2025-01-02 11:26:51 +0900

    [DOC] .document under lib/rdoc is split now

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12495

commit afeb17270b24681519e2981ba4a112c92830377b
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2025-01-01 01:20:42 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 11:05:33 +0900

    Link to Ruby module

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12491

commit 2dd4801e9c09cf6da00281cd04c74e001796779a
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2024-12-31 21:24:09 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 11:05:33 +0900

    Update 'Set's references in docs

    - When linking to 'Set', we should use `rdoc-ref:Set` explicitly.
    - "Set"'s normal usages don't need to be escaped anymore.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12491

commit 8e34346afeb3dcce69b128d7db2025d2318b52f4
  Author:     Stan Lo <stan.lo@shopify.com>
  AuthorDate: 2024-12-31 21:23:38 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2025-01-02 11:05:33 +0900

    Exclude 'Ruby' and 'Set' from RDoc's autolinking

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12491

commit e2081861aee51233c75ecc892ab4bbe2bfe1e2ce
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-02 09:30:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-02 09:30:14 +0900

    [ruby/rdoc] [DOC] Ignore racc-generated files
    (https://github.com/ruby/rdoc/pull/1265)

    * [DOC] Ignore racc-generated files

    Not only `.ry` sources, generated `.rb` files seem duplicate and
    unnecessary.

    * [DOC] Select files by .document files for syncing

    https://github.com/ruby/rdoc/commit/fb7041ec98

commit 3e8f0e558973aa8608e6d8da4dce33fe5dde28e1
  Author:     tomoya ishida <tomoyapenguin@gmail.com>
  AuthorDate: 2025-01-01 23:41:54 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2025-01-01 23:41:58 +0900

    [ruby/reline] Support inserting C-c C-z C-\ with quoted_insert
    (https://github.com/ruby/reline/pull/798)

    https://github.com/ruby/reline/commit/e6eb5d2d3c

commit 341503d1a3a95253ddacdd3bd1c4a7dcdbbe49f2
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2024-12-31 23:34:32 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-01 00:19:18 +0900

    Fix leak in Socket#connect spec

    * Found by https://github.com/ruby/ruby/actions/runs/12560692556/job/35018412527?pr=12492

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12492

commit e43d9cbfcbc105889ccd9e1e8b2b3a7d4c4023d9
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2024-12-31 23:27:56 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-01 00:19:18 +0900

    Update to latest setup-ruby manually since dependabot is broken

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12492

commit 180bee317711b97685d0fbf59f31243b16467021
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2024-12-31 23:15:34 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-01 00:19:18 +0900

    Run spec_guards when changing its workflow definition

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12492

commit da1c06e747f3fa64713d0dc3e579099f1e118bcc
  Author:     Benoit Daloze <eregontp@gmail.com>
  AuthorDate: 2024-12-31 23:10:20 +0900
  Commit:     Benoit Daloze <eregontp@gmail.com>
  CommitDate: 2025-01-01 00:19:18 +0900

    Add 3.4 to the spec_guards workflow

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12492

commit c0e2623966ea72b2b7781a13dab47ad50c362c98
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2024-12-31 21:17:04 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-31 21:17:07 +0900

    [ruby/rdoc] Add autolink_excluded_words option to ignore
    cross-references
    (https://github.com/ruby/rdoc/pull/1259)

    This config will be handy when the project name is the same as a class or
    module name, which is often the case for most of the projects.

    https://github.com/ruby/rdoc/commit/ce77f51f63

commit 63b141ef21497b8694e9401c934fc41c3823e3ad
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-31 21:16:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-31 21:16:50 +0900

    [ruby/rdoc] Documentation for #1240
    (https://github.com/ruby/rdoc/pull/1263)

    https://github.com/ruby/rdoc/commit/5dfccda4c0

commit 89c9a9fd03df264cb11314dd4264d79eff7be3d9
  Author:     Charles Oliver Nutter <headius@headius.com>
  AuthorDate: 2024-12-10 14:40:27 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-31 19:00:41 +0900

    [ruby/net-http] Don't double-interrupt the test HTTP server

    The shutdown process here attempted to terminate the test server
    by interrupting it with Thread#kill, and then proceeded to close
    the server and join the thread. The kill does indeed interrupt
    the accept call, but the close call could also interrupt the
    thread as part of notifying blocked threads waiting on that
    socket call.

    In JRuby, where all of this can happen at the same time, it leads
    to the following scenario:

    * The server thread enters TCPServer#accept and blocks.
    * The main thread calls Thread#kill to interrupt the accept call.
    * The server thread wakes up and starts to propagate the kill.
      There is a slight delay between this wakeup and removing the
      server thread from the TCPServer's blocked threads list.
    * The main thread calls TCPServer#close, which sees that the server
      thread is still in the blocked list, so it initiates a second
      interrupt to raise IOError "closed in another thread" on the
      server thread.
    * As the kill is bubbling out, another check for interrupts occurs,
      causing it to see the new raise interrupt and propagate that
      instead of the active kill.
    * Because the server is now closed and the rescue here is empty,
      the server loop will endlessly attempt and fail to call accept.

    I was unable to determine how CRuby avoids this race. There may be
    code that prevents an active kill interrupt from triggering
    further interrupts.

    In order to get these tests running on JRuby, I've made the
    following changes:

    * Only kill the thread; one interrupt is sufficient to break it
      out of the accept call.
    * Ensure outside the server loop that the server gets closed. This
      happens within the server thread, so triggers no new interrupts.
    * Minor cleanup for the pattern of using @ssl_server or @server.

    This change avoids the race in JRuby (and possibly other parallel-
    threaded implementations) and does not impact the behavior of the
    tests.

    https://github.com/ruby/net-http/commit/54025b3870

commit 3cd809deb5cc3a534151078166148b9ff5e1c8ef
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-31 14:53:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-31 14:53:07 +0900

    Win32: Fix rm.bat

    - `if exist` and `del` ignore directories matching the wildcard,
      remove both separately.

    - `rd /s` ignores wildcards, while `del` removes ordinary files by the
      wildcard, iterate over matching directories by `for /D`.

commit 5fec9308320e8b377681ef19b0cd46d53f94e8ac
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-30 17:04:09 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-30 17:04:09 +0900

    [Bug #20992] Test for local variable name encodings

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12489

commit 3650f2460f9f58ed188ad289cfb46a1d005d2538
  Author:     sanfrecce-osaka <yakiyaki_ikayaki@yahoo.co.jp>
  AuthorDate: 2024-12-29 20:00:08 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-29 20:00:11 +0900

    [ruby/irb] Fix broken `history` command with -g
    (https://github.com/ruby/irb/pull/1057)

    Local variable `grep` was always nil because the regular expression parsing options contained an unnecessary `\n`. `test_history_grep` did not detect this because it only asserted what was included in the output.

    https://github.com/ruby/irb/commit/a282bbc0cf

commit a33c944ba8a0580322ee77b3066755f8e2c1c9b1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-29 10:32:33 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-29 10:32:33 +0900

    [Bug #20988] [prism] Fix escaped octal character literals

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12487

commit 689bb193cc7a1b49cb241d14b84208dfff83c8ea
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2024-12-29 04:17:03 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-29 04:17:06 +0900

    [ruby/irb] Use the documentation site as the source of truth
    (https://github.com/ruby/irb/pull/1055)

    * Use the documentation site as the source of truth

    1. Remove detailed content from README.md and point links to the documentation site.
    2. Remove the content of EXTEND_IRB.md and point links to the documentation site.

    * Use GitHub pages as Rubygems' documentation target

    https://github.com/ruby/irb/commit/d2b73cb91e

commit 609a555ee00e7501d52bc4155cd2f8ee980cee2f
  Author:     Stan Lo <stan001212@gmail.com>
  AuthorDate: 2024-12-29 00:55:20 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-29 00:55:27 +0900

    [ruby/irb] Add `ri` an alias to the `show_doc` command
    (https://github.com/ruby/irb/pull/1054)

    https://github.com/ruby/irb/commit/52e77dd113

commit e4ec2128ae9c5c2a43cd599759f19db21fc0238f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-28 18:40:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-28 18:40:37 +0900

    [Bug #20990] Reject escaped multibyte char with control/meta prefix

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12485

commit 0ccc7657f3f51d973eac5f846d1594062838a2c9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-28 11:35:00 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-28 11:35:00 +0900

    Ripper: Fix duplicate regexp errors

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12482

commit fb18bb183c24ca82b8f114ed090d62bd69b5df84
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-28 11:25:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-28 11:25:57 +0900

    [Bug #20989] Ripper: Pass `compile_error`

    For the universal parser, `rb_parser_reg_fragment_check` function is
    shared between the parser and ripper.  However `parser_params` struct
    is partially different, and `compile_error` function depends on that
    part indirectly.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12482

commit 175770bb6c55cb777a5f9318334a64e767a0f9d3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-27 16:43:32 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-28 11:18:54 +0900

    BigDecimal('0.') with bigdecimal-3.1.9 returns 0.0

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12480

commit b82ad36d7cda10627ae9dc0d4d6439ff1035ed26
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-27 16:21:52 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-28 11:18:54 +0900

    Update bundled_gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12480

commit 081767656d96e78bc2bf0eb88d36927127097d60
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-28 09:00:53 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-28 09:00:53 +0900

    Abandon connection test if off line

commit 8fa1db79bd35d93140b7c1f2d7d58a946840d46f
  Author:     Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com>
  AuthorDate: 2024-12-24 22:39:11 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-28 03:54:54 +0900

    [rubygems/rubygems] Expand and comment the regex

    https://github.com/rubygems/rubygems/commit/0dd0e93bde

commit 6e46b9b8b3657822306a365d6538e20fcf764d9b
  Author:     Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com>
  AuthorDate: 2024-12-23 23:50:46 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-28 03:54:53 +0900

    [rubygems/rubygems] Add support for mise.toml file

    https://github.com/rubygems/rubygems/commit/809a2a17a7

commit adbbc9109ee71848204b5168a7c1bf604849e5fa
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 16:27:30 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 16:27:30 +0900

    Win32: Update clean commands for bundled gems

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12481

commit e109400748a62f142d0b1ca6957dab69ca411de1
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 16:26:14 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 16:26:14 +0900

    Win32: Fix sub make commands

    `cmd.exe` built-in `cd` does not recognize slashes as path separators,
    replace to backslashes.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12481

commit 3a2d1feb1e24569090061bfcab88e3a1ecc24750
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 16:25:49 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 16:25:49 +0900

    Win32: Rewrite rm.bat

    `rd` cannot remove ordinary files, use `del` or `rd` for each entry.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12481

commit 6be0ae35e8b5bfa46845e12cdd728b131398866b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 14:25:07 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 14:25:07 +0900

    Win32: Remove win32 directory if empty

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12481

commit 731a53253fa94a1a646e8e7f69cf4cf217f0ee3d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 12:33:28 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 12:33:28 +0900

    Win32: clean extra object file

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12481

commit a37a2f5fef5ee2a9dd5c5fcb8b30318e72f693a5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 11:23:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 11:23:23 +0900

    Clear failure_log by assignment like as appending by assignment

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12479

commit 7962f32b7056320c1ec44b7a8618d9788c3648b6
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 10:29:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 10:29:34 +0900

    Fix `hello` when transforming program names

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12478

commit 4cf4cad4abca43c9396ec8f736f0021b3c678f4d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-27 10:26:47 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-27 10:26:54 +0900

    [ruby/prism] Turn off unescape tests for Ruby >= 3.4.0

    https://github.com/ruby/prism/commit/f982769314

commit f226bc20f6df09eb2b988562b4ac9fdc6958c8b0
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-27 09:01:08 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-27 09:01:08 +0900

    [Bug #20986] [Prism] Allow escaped multibyte character

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12477

commit 4d8c9c131021316b854c4c8b877110d5584069d3
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-27 06:44:37 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-27 07:35:28 +0900

    [ruby/prism] Handle escaped characters after controls

    Fixes [Bug #20986]

    https://github.com/ruby/prism/commit/fd0c563e9e

commit c859e15875a8448592d6ab6d503681d454020c29
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2024-12-27 06:24:26 +0900
  Commit:     Kevin Newton <kddnewton@gmail.com>
  CommitDate: 2024-12-27 07:34:58 +0900

    Handle defined? with call chains with blocks

    Ensures we can handle expressions like `defined?(a {}.b)`.

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12475

commit 11c9e4f1ceb90d73e1eac6acbf3434a6f7216044
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2024-12-24 01:46:32 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-27 03:09:15 +0900

    [rubygems/rubygems] Fix `bundle outdated <GEM>` failing if gems not installed

    https://github.com/rubygems/rubygems/commit/694d5f444e

commit d78ff6a767ca813ac5fa178dd7611f20a993c191
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 23:48:05 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2024-12-27 00:21:41 +0900

    [Bug #20984] Fix test with locale encoding

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12474

commit f459d8dfb7720a61d3f49af71fcd6bcf28bbca3f
  Author:     Koichi ITO <koic.ito@gmail.com>
  AuthorDate: 2024-12-25 18:53:55 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-26 23:15:00 +0900

    [ruby/prism] Support Ruby 3.5 for `Prism::Translation::Parser`

    Follow up https://github.com/ruby/prism/pull/3336.

    Development for Ruby 3.5 has begun on the master branch:
    https://github.com/ruby/ruby/commit/2f064b3b4b71f9495bbc4229e7efdbfad494862f

    https://github.com/ruby/prism/commit/aa49c1bd78

commit 9a5ad1b558172d894e6dba81e5f68c3628087b28
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 18:21:05 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-26 18:21:05 +0900

    Fix -Wsign-compare warning on mingw

commit c6dbb10b7408cab17f170f0b23d1bbf0db03ad55
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 15:01:48 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-26 15:01:48 +0900

    [Bug #20982] Put spaces in `ENV.inspect` results as well as `Hash`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12472

commit 19c39e4cfaa467e69b9848c9c5496d7f50d39c7f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 13:42:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-26 13:42:56 +0900

    [Bug #20984] ENV.inspect should be encoding aware

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12471

commit 037bffec071d53bb7a147e11cb34635ea2e7abb8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 13:02:29 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-26 13:02:29 +0900

    Refine ENV tests

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12470

commit 16665c362313ef2bfc20909296e76bc4d83c3065
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 12:31:56 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-26 12:31:56 +0900

    "test" environment variable is unset in `setup`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12470

commit 5fab10999d4366576eda7954d2c1a7b96edd556e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-26 09:58:36 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    Bump up fiddle 1.1.7.dev and stringio 3.1.3.dev

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit feba2b66ff076afac8a7533e45b43364ab2531d7
  Author:     Yudai Takada <t.yudai92@gmail.com>
  AuthorDate: 2024-12-23 02:25:37 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    [ruby/reline] Fix typos in comment
    (https://github.com/ruby/reline/pull/796)

    * s/Calcualte/Calculate/

    * s/unneccesary/unnecessary/

    https://github.com/ruby/reline/commit/db86bcd2bf

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit 778e73b2b3969f600eecc3bc6ebced1700781fbb
  Author:     Ryan Bigg <me@ryanbigg.com>
  AuthorDate: 2024-12-03 08:37:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    [ruby/date] Simplify description of this library

    https://github.com/ruby/date/commit/904d4b9607

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit 0c0b739d97f5cdd39e91cce1b8868279669bcc66
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-26 09:53:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    Bump up RubyGems 3.7.0.dev and Bundler 2.7.0.dev

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit 70e90d5276a33b196e7bacfec3f6fc6249761aa2
  Author:     Ryan Davis <ryand-github@zenspider.com>
  AuthorDate: 2024-12-25 06:21:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    [ruby/erb] Fix up some doco on erb
    (https://github.com/ruby/erb/pull/56)

    * ERB#result: Dropped mention of deprecated safe_level since it is no longer documented.

    * Fixed grammar for chicken fried steak :P

    https://github.com/ruby/erb/commit/4efd3437ac

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit b7690c58b94f77e81bc1b099ca93e47160304a46
  Author:     Yudai Takada <t.yudai92@gmail.com>
  AuthorDate: 2024-12-22 17:51:09 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    [ruby/strscan] [DOC] Fix typo in documentation
    (https://github.com/ruby/strscan/pull/129)

    s/begining/beginning/

    https://github.com/ruby/strscan/commit/734b823463

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit 6406ac4d70d3288fe7bfcc75312077ace5d6ae58
  Author:     David Rodríguez <deivid.rodriguez@riseup.net>
  AuthorDate: 2024-12-24 04:27:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-26 10:27:24 +0900

    [rubygems/rubygems] Try fix flaky failures on Windows

    It seems same race condition, maybe some Ruby bug. Just hoping this
    tweak may skip it.

    https://github.com/rubygems/rubygems/commit/29eb642026

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12469

commit ece332a44df077d26c735dbdbf050dd471c4ffdd
  Author:     Sorah Fukumori <her@sorah.jp>
  AuthorDate: 2024-12-26 03:50:06 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-26 04:46:34 +0900

    [ruby/reline] test_tty_ambiguous_width: Use Reline.test_rubybin

    Same as https://github.com/ruby/reline/pull/510, 'ruby' command is not
    always available so don't rely on that specific name.

    https://github.com/ruby/reline/commit/f60199fed7

commit 67d8a97d07ecc0d626951cf702cd6aab814ee489
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 01:53:18 +0900
  Commit:     git[bot] <svn-admin@ruby-lang.org>
  CommitDate: 2024-12-26 01:53:24 +0900

    [ruby/rdoc] Separate patterns by `--exclude` option from defaults
    (https://github.com/ruby/rdoc/pull/1251)

    https://github.com/ruby/rdoc/commit/a7fdc730f3

commit 7df5d65eac86940619f87da7e70bc0911097ae2f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-25 22:21:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2024-12-25 22:21:37 +0900

    [Bug #20981] Bring back `rb_undefine_finalizer`

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12468

commit 69bb296fa61cc488769227187c95f4cf15ce463c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-25 19:15:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-25 20:10:18 +0900

    Support Ruby 3.5 for bundler platforms

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12452

commit 945fdf609166187321bee53d641957e918efb155
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-25 18:44:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-25 20:10:18 +0900

    Relax regexp for Ruby 3.5

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12452

commit a0460af920be74cefaa47264a44a8983fefb7e47
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-24 16:05:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-25 20:10:18 +0900

    Check ArgumentError and Warnings with Ruby 3.3 and 3.4

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12452

commit 9967eccc54017110845d3805143ab2e87a0e2393
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-24 15:27:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-25 20:10:18 +0900

    Removed Process::Status#& and Process::Status#>>

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12452

commit 8f11d6cbe2e86d5e6f80911024630aa0d3685332
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-13 10:47:22 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2024-12-25 19:12:31 +0900

    Show docs of constants under Ruby

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12451

commit b923a59b8e189fb1a044d13840696d0fb33621bc
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-12 20:21:41 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2024-12-25 19:12:31 +0900

    fake.rb: Override constants in Ruby module

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12451

commit e5e4db1748d09635c6b20c3b880e5b55d84f7dea
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-12 19:47:34 +0900
  Commit:     Nobuyoshi Nakada <nobu.nakada@gmail.com>
  CommitDate: 2024-12-25 19:12:31 +0900

    [Feature #20884] Define toplevel "Ruby" module with constants

  Notes:
    Merged: https://github.com/ruby/ruby/pull/12451

commit 7f738bb5d7030979469be1e28b8ddd8ef0687733
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-12-25 18:18:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2024-12-25 18:18:26 +0900

    Restore Ruby 3.4 NEWS.md again

commit 2f064b3b4b71f9495bbc4229e7efdbfad494862f
  Author:     Yukihiro "Matz" Matsumoto <matz@ruby.or.jp>
  AuthorDate: 2024-12-25 18:15:17 +0900
  Commit:     Yukihiro "Matz" Matsumoto <matz@ruby.or.jp>
  CommitDate: 2024-12-25 18:15:17 +0900

    Development of 3.5.0 started.
