-*- coding: utf-8 -*-

commit d0b7e5b6a04bde21ca483d20a1546b28b401c2d4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:33:49 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:33:49 +0900

    v3.4.3

commit 1c23c3095325a4ade2064cc3b35ce8e678e03ebf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:29:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:29:03 +0900

    Revert "merge revision(s) 052794bfe1970e90f4f4f9e37fc362dd27903a8d: [Backport #21197]"

    This reverts commit e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f.

commit 1b6f9cd6ea5715ad33d8ba4c78382aa8aafdbcd4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:25:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:25:55 +0900

    merge revision(s) 0d6263bd416338a339651fb97fe4d62701704c4b: [Backport #21220]

            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>

commit 9abd48df705c37f69ec9fd954f84cbbbd65db624
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:21:51 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:21:51 +0900

    merge revision(s) 3a7b9ca93b91dcc086b9ac8b9957e59268f9493b: [Backport #21217]

            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]

commit 7b5e4125b9935cd78d80719de018dad446780e40
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:20:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:20:04 +0900

    merge revision(s) f27ed98effff9891d28edc7119d45811bcedd510: [Backport #21183]

            [ruby/prism] Freeze `Prism::VERSION`

            Closes https://github.com/ruby/prism/pull/3422

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

commit e630a0f7ae909dafe2e1dbc47baf90cd795b4a5f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-04-14 16:18:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-14 16:18:37 +0900

    merge revision(s) 052794bfe1970e90f4f4f9e37fc362dd27903a8d: [Backport #21197]

            [ruby/prism] Accept a newline after the defined? keyword

            [Bug #21197]

            https://github.com/ruby/prism/commit/22be955ce9

commit 86e37a9b707057922198137aab99bff5cc760317
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-15 00:36:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-10 08:02:37 +0900

    Test for the crash

commit 7e093fb43a692935823de1bb32ac4f05e46329bb
  Author:     Luke Jahnke <luke.jahnke@gmail.com>
  AuthorDate: 2025-03-14 22:38:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-10 08:02:37 +0900

    Fix crash in TCPSocket.open

    Fix segfault crash observable with TCPSocket.open(nil, nil)

commit e580145171c16d3ca31ee0732e3ed87ff7dfd774
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-09 09:19:31 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-09 09:54:29 +0900

    Merge RubyGems-3.6.7 and Bundler-2.6.7

commit db2bf9f078c21b9e0234a736214ed74642d9f795
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-09 09:19:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-09 09:54:29 +0900

    Merge RubyGems-3.6.6 and Bundler-2.6.6

commit bbf5f12331913f16b8f635626d4a438bd3ffd599
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 19:30:24 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-04 07:32:20 +0900

    Use EnvUtil.apply_timeout_scale

commit 4d6143dd18e295849d05a9e75891dc52a72a782f
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 19:07:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-04 07:32:20 +0900

    Extend open_timeout for test failure on s390x

    https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz

commit 34e990fcec828a3e555ed353780e4e94e50b70a6
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-04-03 11:54:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-03 13:45:14 +0900

    Picking test fix from https://github.com/ruby/ruby/commit/3d8a66568e8106b367665d716e0d3c8c8208aa07

    The original change is https://github.com/ruby/ruby/commit/d78ff6a767ca813ac5fa178dd7611f20a993c191

commit aa5d760fba6044594b642daee00544d59037cc83
  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 13:13:54 +0900

    Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg

commit e3fc29a9b7fd7869723d2e13185c1387c6d026db
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-04-02 19:08:39 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-04-03 01:16:27 +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`.

commit 66d133ab19726899c23db77e808674aa031a062d
  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-02 10:33:47 +0900

    [rubygems/rubygems] Bump up minimum required version for cmake 4

    https://github.com/rubygems/rubygems/commit/3e77caeddf

commit 5ab0b9143ab5a92b134c6788f893ac539825b300
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-24 15:43:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-28 08:41:51 +0900

    [Backport #21141] [DOC] Refine description of `Time#utc?`

commit bd99a2ef6ac72a43aacf8543aef19e8c1bcb354f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-15 16:15:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-28 08:41:51 +0900

    [Backport #21141] [DOC] Clarify what time is in UTC

commit 00c6e537ce46e4482c77fa8676a4a1e44cc6f623
  Author:     Aaron Patterson <tenderlove@ruby-lang.org>
  AuthorDate: 2025-03-22 01:19:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-28 07:23:56 +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 aa7380f9d8a9a37d7c4d8f827d8b119c0ffbb6f2
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2025-03-23 09:42:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-28 07:23:31 +0900

    Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)

    [Bug #21195]

commit 2efa40053917eca8f1f9ee434cef188a4486f78f
  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:24:30 +0900

    [rubygems/rubygems] Support git 2.49

    One error message that we parse is now slightly different.

    https://github.com/rubygems/rubygems/commit/758528791d

commit 5b3970f68b9108e0976b75b5d67da8c56eaa9db4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 16:55:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-21 01:41:35 +0900

    [Bug #21094] Update nested module names when setting temporary name

    [Backport #21094]

commit 8b491169c32621d4e74324eed08465448dfc54d5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-17 21:37:00 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-21 01:38:42 +0900

    [Bug #21186] multibyte char literal should be a single letter word

    [Backport #21186]

commit 6ca43e9b16ded4f884e9a54e9f8f6f6c4e5f0f73
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-11 11:37:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-15 04:04:25 +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>

commit 31502b0d8569b806d723a0e49a919921bf5d6e2c
  Author:     Alan Wu <XrXr@users.noreply.github.com>
  AuthorDate: 2025-03-12 02:14:13 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-15 04:04:25 +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>

commit 5cc439829783e83d4189e1dbaf11a239e8db8471
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-26 11:13:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-14 01:28:17 +0900

    Check LoadError first

    The message from dlerror is not our concern.

commit adc7f046ec931ea8f5e3868ecdbd1556bffebce2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 09:09:56 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-14 01:28:17 +0900

    Added assertion strings with Xcode 16.3 beta

commit ae2fcdc0f705e767045c2bd5253e8eae733d2edb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-08-20 13:04:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-13 02:51:50 +0900

    [Bug #19841] Refine error on marshaling recursive USERDEF

commit 0e416faf450159a989fba87b41f3e3874a4af129
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-11 05:18:59 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-12 01:16:22 +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'
    ```

commit 762e76cc50db059e71d1f6c13674103a488f5171
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-03-06 04:22:01 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-11 04:57:06 +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.

commit e15a9044d7a9ee5435e7a6d19ef9ac46b50bb880
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-03-04 10:22:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-11 04:04:54 +0900

    [Bug #21163] Fix hexadecimal float conversion

commit 161cffb39970b147f92d779834a393b5637d6d00
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-03-06 01:29:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-07 02:24:37 +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.

commit 698741d73a0e6c998fb47297ce7b129366b4835b
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2025-03-05 05:54:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-06 08:15:45 +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>

commit 9a7e3aab487286ba0dfeb17089d41424fa3a515b
  Author:     a5-stable <sh07e1916@gmail.com>
  AuthorDate: 2025-03-05 22:46:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-06 01:38:24 +0900

    yjit.rb: Fix parameter name in documentation

commit d40c6cf7b606edb815adf7a8e9abe98f38a8f747
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-17 21:46:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-05 06:04:27 +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.

commit 3d744a0a9436fbf7901c345055dd3d775b518361
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2025-02-28 05:53:38 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-04 08:42:16 +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 ddb73fbd115631e6dec3bdd230c1cfc13027602e
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-27 11:07:36 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-04 08:41:33 +0900

    [Bug #21159] module names should not be modifiable

commit 82e43a9cde3a876dc492d635e53f77ba2b19408f
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-29 16:55:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-04 08:41:33 +0900

    [Feature #19521] Test for `Module#set_temporary_name`

commit eb8ee7c189d051e656f781ce2775ede1157edd6a
  Author:     Jeremy Evans <code@jeremyevans.net>
  AuthorDate: 2025-02-18 10:23:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-04 07:01:09 +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]

commit 6d2c7d4304bbf8450d31b624f5dc40a92e44f00b
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-01-13 02:07:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-03-04 06:45:41 +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.

commit 7759263c5154d3c561a8488ba196205a1526bf61
  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 16:43:27 +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'
    ```

commit 5f2e0cb0c65e56b0f8008de74a563d9a084d30a2
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 18:16:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-28 02:00:25 +0900

    Merge uri-1.0.3

commit 5653eb90bb1b548f0bbe92af717da44a77eb0d55
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-26 18:15:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-28 02:00:25 +0900

    Merge cgi-0.4.2

commit 8d2be590ad567b7b03286731f9a9754d24370f00
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2025-02-24 23:20:12 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-26 02:05:34 +0900

    [Bug #21153] Add missing op-assign to top const in `command_asgn`

    It was defined in `arg` only; add that pattern to `command_asgn` as
    well.

commit 06451f0dec107625f3a7794230e90d539a55a08a
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 09:28:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-21 09:50:20 +0900

    Merge RubyGems-3.6.5 and Bundler-2.6.5

commit a0025b6e5d440139ebc16a555cddb4dc9dd45449
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 09:27:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-21 09:50:20 +0900

    Merge RubyGems-3.6.4 and Bundler-2.6.4

commit 19c69f382baa13cac3bf36b861067bdc424e1be1
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-02-21 09:27:17 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-21 09:50:20 +0900

    Merge RubyGems-3.6.3 and Bundler-2.6.3

commit 20a72bb6ec9cb27a91f00481de36fe5348296d8d
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2025-02-21 03:58:27 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-21 09:35:02 +0900

    [ruby/mmtk] Fix compatibility for Rust 1.85

    https://github.com/ruby/mmtk/commit/9da566e26a

commit f627efe8ae580d777d87c3bb8c0b350b49af62e8
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-18 02:57:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-19 02:14:05 +0900

    [ruby/prism] Fix escape unicode curly inline whitespace

    Fixes [Bug #21145]

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

commit d2930f8e7a5db8a7337fa43370940381b420cc3e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-15 06:25:54 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 06:25:54 +0900

    v3.4.2

commit d5f42a07b26d4430c4c51ec3bb5bc482c68e9aca
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-15 04:20:11 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 04:41:55 +0900

    Fix locals_test based on previous backports

commit 62f736f23e9099c5aa29975dc7fbe2fe8c40b5b2
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-15 03:15:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 03:19:25 +0900

    Backport Bug #21137

commit eaa26b8c8c8de09daddbef131837a008963399dc
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-01-16 12:29:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 03:19:25 +0900

    Backport Bug #21118 and Bug #21043

commit 45fe3c137b6cc0b2546493e37d6334d8f39e076d
  Author:     Kevin Newton <kddnewton@gmail.com>
  AuthorDate: 2025-02-15 02:51:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-15 03:19:25 +0900

    Backport Bug #21031

commit 24f48c83e7e851a6ca712fc7b498634da9a24789
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 15:01:48 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:43:19 +0900

    [Bug #20982] Put spaces in `ENV.inspect` results as well as `Hash`

commit 80f2329f76b76ce7bd4fcd9a878b2bc5b0626b26
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2024-12-26 13:02:29 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:43:19 +0900

    Refine ENV tests

commit 270129fdcb923654d9741465ec26e179507e8c96
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:29:23 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:29:23 +0900

    merge revision(s) 19c39e4cfaa467e69b9848c9c5496d7f50d39c7f, d78ff6a767ca813ac5fa178dd7611f20a993c191: [Backport #20984]

            [Bug #20984] ENV.inspect should be encoding aware

            [Bug #20984] Fix test with locale encoding

commit de7a196bd4b22f6073e6cf6c2d7d6fd8171b6baa
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:20:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:20:27 +0900

    Revert "merge revision(s) cb419e3912f0514b8151469b0a4a4b83cbbcce78: [Backport #21031]"

    This reverts commit 7adf89d7ad30552d7e57709d24eec266f601d38b.

commit d5666bbf9191bb990096faa159ee2fb8d7c86f92
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2025-02-12 20:43:05 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:19:01 +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.

commit 18daf8326a370d674b9e8aa6d124eafe1b53b847
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-16 18:02:16 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:19:01 +0900

    Use configu.guess with wasi compatible version

commit 9a0984436888a59f4914c3035c53657baf62ce2b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:17:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:17:41 +0900

    merge revision(s) b21e1aed2ed5b22b50efc658289a403eeed581df: [Backport #21114]

            [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 d3fc56dcfa7b408cc3b6788efad36fd8df3e55da
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:17:04 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:17:04 +0900

    merge revision(s) 127325a4bad409ee5da91084fac768934a8fd9e3: [Backport #21117]

            [ruby/prism] No writing to numbered parameters

            Fixes [Bug #21117]

            https://github.com/ruby/prism/commit/19d4bab5a0

commit e3b16320e6b39e81606771f507278bf14045fa13
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:14:14 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:14:14 +0900

    merge revision(s) 91a10c07579f282a94e4b5830feaeca87f9a7dd3: [Backport #21112]

            Fix a typo in WeakKeyMap argument error

            [Bug #21112]

commit 319c3c70385a63aaea3c1a68a79c70cfd533c6b6
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:13:47 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:13:47 +0900

    merge revision(s) 1683dadb19876f0a64589bdbbcf6fff8143f78ff: [Backport #21088]

            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

commit e5403bd137d57991d8788cd29bbb5916d75acb36
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:12:33 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:12:33 +0900

    merge revision(s) db02a6b3ab4cabbdf492c26dcb1929b4ef0370a1: [Backport #21103]

            [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.

commit feb4a688a24a1966c8d08962a1104001234efcae
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:12:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:12:07 +0900

    merge revision(s) 46b544c54955348ef1ea9692b837b061f59f91cd, d3abee739f4feb91bb9aaae33877d70c8c576db0: [Backport #21095]

            Prefer `uname -n` over `hostname`. (#12647)

            Add fallback for `hostname` if `uname` isn't available. (#12655)

commit 2ee25f7b47a30b7515cdb4da341d28931d8b5810
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:11:06 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:11:06 +0900

    merge revision(s) 2b6fc9ea7212543a1be26768403f59c7a759b5ea: [Backport #21092]

            [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.

commit ead3bbc2405ad1df2228c44133ee1c6574ef5973
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:09:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:09:41 +0900

    merge revision(s) d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47: [Backport #21032]

            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`.

commit 2108ab2cb68e9d975e4dcf035a11243e1173336f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:09:15 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:09:15 +0900

    merge revision(s) 04ec07794657cd2444ecb001a522b9df2db1b90a: [Backport #21038]

            Preserve `errno` in `rb_fiber_scheduler_unblock`. (#12576)

            [Bug #21038]

            Co-authored-by: Julian Scheid <julians37@gmail.com>

commit 3fdf7279a0b1ac35fdf233464a93b3d268133d5a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:08:44 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:08:44 +0900

    merge revision(s) e0d600ec190c64aff76cfcbd6009cffb927da166: [Backport #21012]

            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>

commit 3db440f5a19ca8d46c2c5d5ec029dbae73cc34f9
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:08:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:08:20 +0900

    merge revision(s) f7059af50a31a4d27a04ace0beadb60616f3f971: [Backport #21046]

            Use no-inline version `rb_current_ec` on Arm64

            The TLS across .so issue seems related to Arm64, but not Darwin.

commit 04298f2d158fa860293d2ed2779cba69bc47f404
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:07:57 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:07:57 +0900

    merge revision(s) c2908613368b2ae404d094a15df61d830fc46dc9: [Backport #21048]

            [ruby/prism] Fix rescue modifier precedence

            Fixes [Bug #21048]

            https://github.com/ruby/prism/commit/07202005cb

commit cd395232b0491f9c4463c5889bab8d2c050e75e2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:07:25 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:07:25 +0900

    merge revision(s) 241ada7b1ca4fd71dc47a83d912ee25162a555d9: [Backport #21085]

            [ruby/prism] Do not put empty statements in while because of -n

            Fixes [Bug #21085]

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

commit 7adf89d7ad30552d7e57709d24eec266f601d38b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:06:50 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:06:50 +0900

    merge revision(s) cb419e3912f0514b8151469b0a4a4b83cbbcce78: [Backport #21031]

            [PRISM] Handle forwarding inside eval

            Fixes [Bug #21031]

commit 579b94ae61d123dfb06caa2499be4ef6879cbf1f
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 14:06:07 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 14:06:07 +0900

    merge revision(s) 931a870606f4e286a1c7bacf022940994f3c431b: [Backport #21044]

            [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 bc359b9971088ff921e26346f395c70640654e9e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 11:01:42 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 11:01:42 +0900

    merge revision(s) b176d4f52e4af67654814dab3e9c5f4bf9170e54: [Backport #21008]

            [Bug #21008] Normalize before sum to float

            After switching to `Float`-mode when summing `Numeric` objects,
            normalization for `Float` is still needed.

commit b65cea74295358265dfabc9e1f4d107b21e58e58
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 11:01:20 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 11:01:20 +0900

    merge revision(s) 8034e9c3d001ca3dff124ab42972684eac8af2ae: [Backport #20995]

            [Bug #20995] Protect `IO.popen` block from exiting by exception

commit c989d90754edeefa4e692d2cd8c351394cb217e7
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 10:54:41 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 10:54:41 +0900

    merge revision(s) 117d6e145a0270ab8fc9134403519ef13b9ebb24: [Backport #21027]

            [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 9240f01b1fbe5ea4f6a2017d35f8f605f84f0039
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2025-02-14 10:54:21 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2025-02-14 10:54:21 +0900

    merge revision(s) 63723c8d5908569918fb27e070ae5bc9de33c8bd: [Backport #21014]

            Correctly set node_id on iseq location

            The iseq location object has a slot for node ids.  parse.y was correctly
