-*- coding: utf-8 -*-

base-url = https://github.com/ruby/ruby

commit 1f2d15125a2dc701e1822ed2900eb17899500ec7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-26 09:04:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 09:05:04 +0900

    Bump up to 3.3.11

commit 8da08ddbe7257f16d24d5ee75a7bc70ac92643e8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2026-02-16 13:51:56 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:42:04 +0900

    [ruby/pstore] Bump up

    https://github.com/ruby/pstore/commit/d93352e365

commit 2fd366a144767be278bd70b9ce23c9cbc4c3e790
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2026-02-16 13:25:15 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:42:03 +0900

    [ruby/pstore] [DOC] Complete RDoc coverage

    https://github.com/ruby/pstore/commit/bbb1e239f0

commit b802103f6444e54c2bf8e6c92101cb88b4d05cb9
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2026-02-16 12:40:04 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:42:03 +0900

    [ruby/pstore] Make the internal constants private

    https://github.com/ruby/pstore/commit/74fe0e516b

commit 59a72538b6aa26a5fcfa09b213097d74f5f567c8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2026-02-16 12:37:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:42:02 +0900

    [ruby/pstore] Define the platform constant

    Rather than overwriting the predicate method dynamically.

    Fix [Bug #21880](https://bugs.ruby-lang.org/issues/21880).

    https://github.com/ruby/pstore/commit/b2e474e619

commit c26c0e3824811666a18cb5c21a3c690161b35930
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-03-12 09:41:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:41:57 +0900

    [ruby/pstore] Bump up v0.2.0

    https://github.com/ruby/pstore/commit/aab62bf4cf

commit 6809c69f62f382fb969a2da9cee228496ea9fb8e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 15:47:59 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:41:55 +0900

    [ruby/pstore] Added lib path to  in assert_in_out_err

    https://github.com/ruby/pstore/commit/b563c4d354

commit 79fe6fcb5c85f65e146b3d0d52d7a41f1a578e39
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2024-11-08 13:05:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:41:53 +0900

    [ruby/pstore] Bump up v0.1.4

    https://github.com/ruby/pstore/commit/a63a70a830

commit f589793531b9b8c87a20bc73d8698d804ec7b531
  Author:     Yusuke Endoh <mame@ruby-lang.org>
  AuthorDate: 2024-01-19 16:03:38 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:41:51 +0900

    [ruby/pstore] Do not include a backtick in error messages and backtraces

    [Feature #16495]

    https://github.com/ruby/pstore/commit/6be4e72a66

commit 6a7e3cb5fac3137ad212db8ab3388656937a4451
  Author:     rm155 <rohitmenon@verizon.net>
  AuthorDate: 2021-07-23 02:19:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:41:51 +0900

    [ruby/pstore] Improve Ractor-compliance

    https://github.com/ruby/pstore/commit/fa564a6965

commit acfdc0ac885ea4641f2e7d9d966fbb2acca7c883
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-26 08:34:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-26 08:34:22 +0900

    merge revision(s) 54c4694994cc3bcfea9058b22ba3e68af6aaf740: [Backport #21961]

            [PATCH] marshal.c: properly freeze linked strings

            [Bug #21961]

commit fecabc31458dc5ec6880550ee094476ce0f8044c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 15:39:44 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 15:39:44 +0900

    Revert "merge revision(s) 190b017fc6c21ff7b61c2b5ece0294785e4a4ca2: [Backport #21703]"

    This reverts commit 83637aea6ea726f7fc4c17e56ac60c289e2d98db.

commit 3cd6323fbb2e054ee2cef28b2c1abef40db36354
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:27:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) d7a6ff8224519005d2deeb3f4e98689a8a0835ad: [Backport #21819]

            [Bug #21819] Data objects without members should also be frozen

commit 930edc12d75ff8f496751e2e33416b259d1deafc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:26:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) 19e539c9ee1701b34189fa0c1feb942adeb0e326: [Backport #21814]

            [Bug #21814] Fix negative bignum modulo

            If modulo is zero, do not  apply bias even if the divisor is zero.
            `BIGNUM_POSITIVE_P` is true even on bignum zero.

commit 3b32c93e570903336a59509f2d6c5686da8d1e3c
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:26:30 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) 4e0bb58a0a374b40b7691e7b7aa88e759a0fc9f2: [Backport #21811]

            fix underflow

commit 7cb33b6a88beda081c9fd56302ee403333ba4427
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:24:24 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e, c26057ebafb23b063190d31d5b4d19a0e0a1306c: [Backport #21779]

            [Bug #21779] Uniquify `InitVM` functions as well as `Init`

            Avoid possible name conflict when `--with-static-linked-ext`.

            [Bug #21779] Do not export InitVM functions

            Fix ruby/io-console#105.

commit c675ec66e912b3000e05d65bba473e8bf6e18c96
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:13:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) 1e7cf7b2bc1f9b356b2e980e1e18548618da6363: [Backport #21446]

            [PATCH] Fix refinement modification of method visibility in superclass

            Previously, this didn't work correctly, resulting in a
            SystemStackError. This fixes the issue by finding the related
            superclass method entry, and updating the orig_me in the
            refinement method to point to the superclass method.

            Fixes [Bug #21446]

commit 83637aea6ea726f7fc4c17e56ac60c289e2d98db
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:13:07 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) 190b017fc6c21ff7b61c2b5ece0294785e4a4ca2: [Backport #21703]

            [PATCH] Don't use non blocking pipes for RUBY_CRASH_REPORT

            [Bug #21703]

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

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

            And we see it fails like this:

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

commit 75de62b79bb1af97a905b2dce0a8cf6ffd64b083
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:06:16 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    merge revision(s) c8155822c460a5734d700cd468d306ca03b44ce4: [Backport #21959]

            [PATCH] reinit rb_internal_thread_event_hooks_rw_lock at fork

            [Bug #21959]

commit 167e8d47bedfbc98dcf71607d1ab2000a696b2ae
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-24 14:48:05 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-24 14:49:12 +0900

    Sync the latest version of backport tools

commit 27721631b39b941b1ced49fea50b9356eb3e1d71
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2026-01-22 02:41:10 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    Manually apply https://github.com/ruby/syntax_suggest/commit/b782897560d7749c183eb2ce4286455b4c680090

    This commit didn't apply for some reason

commit 14dbb22badc0c57c52e8ae84aa2f99e0e568d5b3
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2026-01-22 00:58:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] v2.0.3

    https://github.com/ruby/syntax_suggest/commit/a81b92fcf2

    [Bug #21847]

commit 2256196e2d57146813db61188ab87893bac9817a
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2026-01-21 06:32:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Refactor multi-prism version logic

    The reason this logic for different methods branches in the class instead of internally was to be eagerly aggressive about runtime performance. This code is currently only used once for the document where it's invoked ~N times (where N is number of lines):

    ```ruby
    module SyntaxSuggest
      class CleanDocument
        # ...
        def join_trailing_slash!
          trailing_groups = @document.select(&:trailing_slash?).map do |code_line|
            take_while_including(code_line.index..) { |x| x.trailing_slash? }
          end
          join_groups(trailing_groups)
          self
        end
    ```

    Since this is not currently a hot-spot I think merging the branches and using a case statement is a reasonable tradeoff and avoids the need to do specific version testing.

    An alternative idea was presented in #241 of behavior-based testing for branch logic (which I would prefer), however, calling the code triggered requiring a `DelegateClass` when the `syntax_suggest/api` is being required.

    https://github.com/ruby/syntax_suggest/commit/ab122c455f

commit fd784dc7626dbd5cd2e5b5c2e85b07fa1d2fb2f1
  Author:     Earlopain <14981592+Earlopain@users.noreply.github.com>
  AuthorDate: 2026-01-20 21:38:50 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Handle `on_sp` when using prism

    It used to not emit this token type, but now it does.
    So when a newer version of prism is present, we can fall back
    to the same code that ripper uses.

    Ref:
    * https://github.com/ruby/ruby/pull/15914
    * https://github.com/ruby/prism/pull/3859

    https://github.com/ruby/syntax_suggest/commit/42a3b8f6cb

commit df9f221e2c1bf867c1135c86ff3731b94fc09074
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-08-19 10:43:29 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] bundle exec standardrb --fix

    https://github.com/ruby/syntax_suggest/commit/54bb8ab330

commit 46194e291c956a082a4a4778648c9f81a457c029
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-10 14:32:02 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Resolve to lint failure of standardrb

    https://github.com/ruby/syntax_suggest/commit/ce7b87184e

commit 847413d15e81351cdce0eaad0180cb51173f3cd3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2025-01-09 13:27:43 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Make benchmark exapmles as optional

    https://github.com/ruby/syntax_suggest/commit/ea73ed586a

commit 854df872e916f7aaa4e1116a9812b547c8b96942
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2024-11-16 01:07:34 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] v2.0.2

    https://github.com/ruby/syntax_suggest/commit/e99b5ba287

commit 8136b4e5a8a53574dfe74c9766a37250b4f3f298
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2024-11-16 01:02:58 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Explain why class exists

    https://github.com/ruby/syntax_suggest/commit/8c36b0cb35

commit 400d94dcdf75bba7b3f95b0033671181a2fc2c0c
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2024-11-16 01:01:22 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Fix spelling

    https://github.com/ruby/syntax_suggest/commit/9c78283363

commit 28edc65f455395280e1027ee818ae4e2b208155e
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2024-11-16 01:00:33 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Freeze strings

    https://github.com/ruby/syntax_suggest/commit/b17bf0baca

commit a0fd8328b7bd16abd8d41c01334f26d646353e14
  Author:     Schneems <richard.schneeman+foo@gmail.com>
  AuthorDate: 2024-11-15 09:54:46 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-23 11:00:31 +0900

    [ruby/syntax_suggest] Fix missing line break due to puts logic

    In #225 it was reported that the output looks incorrect:

    ```
    $ cat /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb
    def x.y.z
    end
    $ ruby /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb
    /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb: --> /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb
    expected a delimiter to close the parametersunexpected '.', ignoring it
    > 1  def x.y.z
    > 2  end
    ```

    Specifically:

    ```
    expected a delimiter to close the parametersunexpected '.', ignoring it
    ```

    However this does not show up when executing the debug executable:

    ```
    $ bin/bundle exec exe/syntax_suggest /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb
    --> /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb

    expected a delimiter to close the parameters
    unexpected '.', ignoring it

    > 1  def x.y.z
    > 2  end
    ```

    This is because `exe/syntax_suggest` uses STDOUT.puts while calling `ruby` with the filename uses a fake IO object represented by MiniStringIO. This class was incorrectly not adding a newline to the end of the print.

    The fix was to move the class to it's own file where it can be tested and then fix the behavior.

    close https://github.com/ruby/syntax_suggest/pull/225

    https://github.com/ruby/syntax_suggest/commit/d2ecd94a3b

    Co-authored-by: Andy Yong <andyywz@gmail.com>

commit 513ee91b3886724f8d73482c69a08f6ff7f03c3d
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-03-09 16:46:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-10 15:58:44 +0900

    Merge zlib-3.1.2

commit 0cba8cf414dfd8ab30edc3081645405c165a81d5
  Author:     Randy Stauner <randy@r4s6.net>
  AuthorDate: 2025-12-20 03:19:21 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-04 15:45:16 +0900

    YJIT: Bail out if proc would be stored above stack top

    Fixes [Bug #21266].

    Backport of 9168cad4d63a5d281d443bde4edea6be213b0b25 to 3.3

commit 669f9ad7f48c5ee4b8a12796e5652571c7ac2b3e
  Author:     Jörmungandrk <github@zerodaysec.org>
  AuthorDate: 2026-01-09 12:22:01 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-04 15:44:14 +0900

    Fix integer overflow checks in enumerator

commit 6cd7b1a1e9e45dd4c43c5cefc421b4c0709cdbd7
  Author:     ZHIJIE XIE <40601688+dummyx@users.noreply.github.com>
  AuthorDate: 2026-03-03 02:40:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-03-04 15:43:44 +0900

    string.c: guard tmp in rb_str_format_m (GH-16280)

    [Bug #21931]

    Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.

    [alan: sunk the guard below usage]
    Reviewed-by: Alan Wu <XrXr@users.noreply.github.com>

commit b952b6f099af08a14b57afc0a069597646f3161a
  Author:     Mike Dalessio <mike@37signals.com>
  AuthorDate: 2026-02-11 02:19:35 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-02-12 15:05:36 +0900

    Fix UnboundMethod#== for methods from included/extended modules [Backport #21873]

    Method#unbind clones the method entry, preserving its defined_class.
    For methods mixed in via include/extend, defined_class is an ICLASS,
    causing UnboundMethod#== to return false when comparing against the
    same method obtained via Module#instance_method.

    Resolve ICLASS defined_class in method_eq.

    [Bug #21873]

commit 91f0a5a11006d7d6ba72c4d9128ae909c3adaaf8
  Author:     Jean Boussier <jean.boussier@gmail.com>
  AuthorDate: 2026-02-04 21:12:42 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-02-05 15:48:56 +0900

    [3.3] Fix deadlock on th->interrupt_lock after fork

    [Bug #21860]

    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: John Hawthorn <john@hawthorn.email>
    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

commit d8c21d0780e0fc061a396e66d25b7b87de3108a4
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2026-01-16 14:26:48 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2026-01-16 14:26:48 +0900

    merge revision(s) d209e6f1c0a93ad3ce1cc64dd165a6b67672614d: [Backport #21715]

            search_nonascii(): Replace UB pointer cast with memcpy

            Casting a pointer to create an unaligned one is undefined behavior in C
            standards. Use memcpy to express the unaligned load instead to play by
            the rules.

            Practically, this yields the same binary output in many situations
            while fixing the crash in [Bug #21715].
