-*- coding: utf-8 -*-

commit 5124f9ac7513eb590c37717337c430cb93caa151
  Author:     NARUSE, Yui <naruse@airemix.jp>
  AuthorDate: 2023-12-25 14:59:38 +0900
  Commit:     NARUSE, Yui <naruse@airemix.jp>
  CommitDate: 2023-12-25 14:59:38 +0900

    v3.3.0

commit a44a59dbaf1b5c930c9f476077b0be9b1653ad9c
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-25 14:52:06 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-25 14:52:06 +0900

    [DOC] Add NEWS for [Feature #19370]

commit a9f096183170810ac6ce32b20d7810d11a51b5f5
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 18:07:37 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-25 14:44:04 +0900

    [Feature #19370] Prohibit nesting anonymous parameter forwarding

commit b641b7e640b90292e8091348ca05def0a16904a8
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-25 14:08:21 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-25 14:11:49 +0900

    Move non-portable pragmas to rubyspec.h

    In the extension libraries in spec/ruby/optional/capi, do not care
    about deprecated declarations.

commit 863ded45a18773742cf3adab0f6deb4ba6b47c6e
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-25 13:48:26 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-25 13:50:23 +0900

    Typofix under bootstraptest, spec and yjit directories

commit 2cdbeb29e6e06d3492e2d4a388558ab883b07150
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-25 11:13:27 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-25 13:01:55 +0900

    Do not leave test file

    Run this test separately because something seems remained unreleased
    on Windows.

commit b4efa4b7005efee484e61fbc6af9c652fee36db2
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-25 11:26:37 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 12:13:49 +0900

    Don't copy RUBY_FL_PROMOTED flag in rb_obj_setup

    RUBY_FL_PROMOTED is used by the garbage collector to track when an
    object becomes promoted to the old generation. rb_obj_setup must not
    copy that flag over because then it may become out-of-sync with the age
    of the object.

    This fixes a bug in Method#clone where the cloned Method object may get
    RUBY_FL_PROMOTED incorrectly set.

commit 1b5f3dd6a1a5d054e3fd5af10b5dc2f49e1046fc
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-25 12:04:28 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-25 12:04:28 +0900

    Removed empty sections

commit 27ead9907db12a6ff955cd86a15a62ff1f064392
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-25 11:32:03 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-25 11:32:42 +0900

    Typofix under lib and test, tool directories

commit 7002e776944ddfd362cea253d18d02bc250fe9f7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-25 09:22:13 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 11:29:40 +0900

    Fix Symbol#inspect for GC compaction

    The test fails when RGENGC_CHECK_MODE is turned on:

        1) Failure:
        TestSymbol#test_inspect_under_gc_compact_stress [test/ruby/test_symbol.rb:123]:
        <":testing"> expected but was
        <":\x00\x00\x00\x00\x00\x00\x00">.

commit e233730846fd2634208c3c568c49b76bf3b29a0b
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-25 11:22:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-25 11:22:12 +0900

    Partly reverted c903cddf55af1505a0779e1a131f2fe47b838260

      These are intentional words

commit c903cddf55af1505a0779e1a131f2fe47b838260
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-25 11:17:51 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-25 11:17:51 +0900

    Typofix under doc directory

commit 70618a48f7f9f12943e963bf121b56af4153f394
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-25 06:23:10 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 10:37:59 +0900

    Fix off-by-one error for declarative marking

    The for loops for marking and reference updating declaratively marked
    TypedData objects did not mark/reference update the very last element.

    When RGENGC_CHECK_MODE is turned on, this caused the test in Enumerator
    to fail with:

        tool/lib/test/unit/testcase.rb:173:in `rescue in run': failed to allocate memory (NoMemoryError)

commit 260bf60e52ffdfa625be1153624b0d123fc305f8
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2023-12-25 10:20:53 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-25 10:20:53 +0900

    Correctly release the underlying file mapping. (#9340)

    * Avoiding using `Tempfile` which was retaining the file preventing it from unlinking.

commit 5af64ff7db3d636201db68b9ba995131a04a8f7b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-25 02:10:10 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 06:22:34 +0900

    Fix Enumerator#with_index for GC compaction

    enumerator_block_call was not safe for compaction because the Array
    backing the argv was not pinned, so it could get moved during compaction
    which would make argv point to somewhere else.

    The test crashes when RGENGC_CHECK_MODE is turned on:

        TestEnumerator#test_with_index_under_gc_compact_stress
        check_rvalue_consistency: 0x55db0b399450 is not a Ruby object.
        test/ruby/test_enumerator.rb:133: [BUG] check_rvalue_consistency_force: there is 1 errors.
        ruby 3.3.0dev (2023-12-23T23:00:27Z master 50bf437341) [x86_64-linux]
        -- Control frame information -----------------------------------------------
        c:0034 p:---- s:0192 e:000187 CFUNC  :with_index
        c:0033 p:---- s:0185 e:000184 CFUNC  :each
        c:0032 p:---- s:0182 e:000181 CFUNC  :to_a
        c:0031 p:0055 s:0178 e:000175 BLOCK  test/ruby/test_enumerator.rb:133
        c:0030 p:0024 s:0172 e:000171 METHOD tool/lib/envutil.rb:242
        c:0029 p:0024 s:0167 e:000166 METHOD tool/lib/envutil.rb:251
        c:0028 p:0005 s:0160 e:000159 METHOD test/ruby/test_enumerator.rb:131
        ...
        -- C level backtrace information -------------------------------------------
        build/ruby(rb_print_backtrace+0x14) [0x55db0b1deb21] vm_dump.c:820
        build/ruby(rb_vm_bugreport) vm_dump.c:1151
        build/ruby(bug_report_end+0x0) [0x55db0b3a53a6] error.c:1042
        build/ruby(rb_bug_without_die) error.c:1042
        build/ruby(die+0x0) [0x55db0afc77c2] error.c:1050
        build/ruby(rb_bug) error.c:1052
        build/ruby(gc_move+0x0) [0x55db0afbada0] gc.c:1714
        build/ruby(check_rvalue_consistency+0xa) [0x55db0afef0c3] gc.c:1729
        build/ruby(is_markable_object) gc.c:4769
        build/ruby(gc_mark_stack_values) gc.c:6595
        build/ruby(rb_gc_mark_vm_stack_values) gc.c:6605
        build/ruby(rb_execution_context_mark+0x39) [0x55db0b1d8589] vm.c:3309
        build/ruby(thread_mark+0x15) [0x55db0b1a9805] vm.c:3381
        build/ruby(gc_mark_stacked_objects+0x6d) [0x55db0aff2c3d] gc.c:7564
        build/ruby(gc_mark_stacked_objects_all) gc.c:7602
        build/ruby(gc_marks_rest) gc.c:8797
        build/ruby(gc_marks+0xd) [0x55db0aff43d5] gc.c:8855
        build/ruby(gc_start) gc.c:9608
        build/ruby(rb_multi_ractor_p+0x0) [0x55db0aff5463] gc.c:9489
        build/ruby(rb_vm_lock_leave) vm_sync.h:92
        build/ruby(garbage_collect) gc.c:9491
        build/ruby(newobj_slowpath+0xcb) [0x55db0aff57ab] gc.c:2871
        build/ruby(newobj_slowpath_wb_protected) gc.c:2895
        build/ruby(newobj_of0+0x24) [0x55db0aff59e4] gc.c:2937
        build/ruby(newobj_of) gc.c:2947
        build/ruby(rb_wb_protected_newobj_of) gc.c:2962
        build/ruby(ary_alloc_embed+0x10) [0x55db0b2f3e40] array.c:668
        build/ruby(ary_new) array.c:709
        build/ruby(rb_ary_tmp_new_from_values) array.c:759
        build/ruby(rb_ary_new_from_values) array.c:771
        build/ruby(args_copy+0x18) [0x55db0b1bbb88] vm_args.c:158

commit 86ef38194bf2f5c854cab0adf29984594ee4a6ec
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2023-12-25 04:26:07 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 04:56:06 +0900

    RDoc for complex.c

commit f0efeddd41f96d3afae9af73a3dc594d86614f4b
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-24 23:08:01 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 01:04:41 +0900

    Fix Regexp#inspect for GC compaction

    rb_reg_desc was not safe for GC compaction because it took in the C
    string and length but not the backing String object so it get moved
    during compaction. This commit changes rb_reg_desc to use the string
    from the Regexp object.

    The test fails when RGENGC_CHECK_MODE is turned on:

        TestRegexp#test_inspect_under_gc_compact_stress [test/ruby/test_regexp.rb:474]:
        <"(?-mix:\\/)|"> expected but was
        <"/\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00/">.

commit 8ad8803bb4aed01dfe56e42dc7c131b6bf307655
  Author:     BurdetteLamar <burdettelamar@yahoo.com>
  AuthorDate: 2023-12-25 00:26:20 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-25 01:00:30 +0900

    RDoc for Complex

commit 42442ed7891b1c721b4a306f21ce9548a69e7be3
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-24 10:24:15 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-24 23:03:55 +0900

    Fix Regexp#match for GC compaction

    The test fails when RGENGC_CHECK_MODE is turned on:

        TestRegexp#test_match_under_gc_compact_stress:
        NoMethodError: undefined method `match' for nil
            test_regexp.rb:878:in `block in test_match_under_gc_compact_stress'

commit 37753f163e461e157e6e224d9d3e5626427a50cc
  Author:     Samuel Williams <samuel.williams@oriontransfer.co.nz>
  AuthorDate: 2023-12-24 22:03:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-24 22:03:36 +0900

    IO::Buffer improvements and documentation. (#9329)

    * Restore experimental warnings.

    * Documentation and code structure improvements.

    * Improved validation of flags, clarified documentation of argument handling.

    * Remove inconsistent use of `Example:` and add example to `null?`.

    * Expose `IO::Buffer#private?` and add test.

commit 61289d940597efb76bd7bcdd0501801733d9c9dd
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-24 15:47:20 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-24 19:34:25 +0900

    Initialize loop variable of `ccan_list_for_each`

    On platforms where `typeof` is unsupported, `ccan_container_off_var`
    calculates the offset of member by pointer subtraction.  Although this
    will result in the compile-time invariant value regardless the pointer
    value, the loop variable will be used before assignment and may cause
    an using uninitialized variable warning.

commit 86893b28f7ac7cc522d628577564d49a8f558d70
  Author:     git <svn-admin@ruby-lang.org>
  AuthorDate: 2023-12-24 15:58:23 +0900
  Commit:     git <svn-admin@ruby-lang.org>
  CommitDate: 2023-12-24 15:58:23 +0900

    Update bundled gems list as of 2023-12-24

commit a87ae242bb460c7643d0f974b96489b5f73a2d45
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-24 14:33:14 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-24 15:13:33 +0900

    Use noinline version of accessing current ec

    On universal.arm64e-darwin22 with clang 15.0.0 (I didn't check
    details yet) accessing `ruby_current_ec` directly causes
    assertion violation `VM_ASSERT(ec == rb_current_ec_noinline())`
    on `rb_current_execution_context()`, maybe because TLS accessing
    issue.

commit 541371e286d2f139c49e7805f6f229618eb63144
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-24 14:20:35 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-24 14:53:46 +0900

    accept `RB_WAITFD_IN | RB_WAITFD_OUT` for waiting events

    Assrsion was `events == RB_WAITFD_IN || events == RB_WAITFD_OUT`
    but it should accept `RB_WAITFD_IN | RB_WAITFD_OUT`.

commit 0fef890b4fbe64a319247fee9d2cb13f45b76844
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-24 13:59:34 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-24 13:59:34 +0900

    [DOC] Fix markup in HTML

    Inside HTML is not markdown.

commit 82015496b924744ae3999987ba679978beb153c7
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-24 10:30:03 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-24 10:57:27 +0900

    MN: access `timer_th.waiting` with lock

    `timer_th.waiting` should be protected by `timer_th.waiting_lock`

commit daefbf8fbfa1bd2109315bab7658f52460f7ed59
  Author:     Daisuke Fujimura (fd0) <booleanlabel@gmail.com>
  AuthorDate: 2023-12-17 00:02:57 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-24 08:06:03 +0900

    Use native_thread_init_stack on cygwin

commit 50bf4373411a8780270c7ba1cc983d5756a4fde1
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-24 06:22:14 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-24 08:00:27 +0900

    Fix String#sub for GC compaction

    The test fails when RGENGC_CHECK_MODE is turned on:

        TestString#test_sub_gc_compact_stress = 9.42 s
        1) Failure:
        TestString#test_sub_gc_compact_stress [test/ruby/test_string.rb:2089]:
        <"aaa [amp] yyy"> expected but was
        <"aaa [] yyy">.

commit a2ebf9cc63f0805bc7dd9a92e66bf589a869447e
  Author:     JP Camara <jp@jpcamara.com>
  AuthorDate: 2023-12-23 10:28:55 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-24 07:07:11 +0900

    Replicate EEXIST epoll_ctl behavior in kqueue

    * In the epoll implementation, you get an EEXIST if you try to register the same event for the same fd more than once for a particular epoll instance

    * Otherwise kevent will just override the previous event registration, and if multiple threads listen on the same fd only the last one to register will ever finish, the others are stuck

    * This approach will lead to native threads getting created, similar to the epoll implementation. This is not ideal, but it fixes certain test cases for now, like test/socket/test_tcp.rb#test_accept_multithread

commit fadda88903d9fe764ae53eca07aaf85f08e162a7
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-24 04:51:43 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-24 06:52:05 +0900

    Fix Regexp#to_s for GC compaction

    The test fails when RGENGC_CHECK_MODE is turned on:

        TestRegexp#test_to_s_under_gc_compact_stress = 13.46 s
        1) Failure:
        TestRegexp#test_to_s_under_gc_compact_stress [test/ruby/test_regexp.rb:81]:
        <"(?-mix:abcd\u3042)"> expected but was
        <"(?-mix:\u5C78\u3030\u5C78\u3030\u5C78\u3030\u5C78\u3030\u5C78\u3030)">.

commit 688a1314e60b0e58d5325f50c02552e3018c5025
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2023-12-24 06:08:26 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-24 06:08:26 +0900

    [DOC] Clean up doc for File#flock (#9332)

commit 47f33c38481d79563271f042946d0f3165d8b638
  Author:     Peter Zhu <peter@peterzhu.ca>
  AuthorDate: 2023-12-23 23:51:30 +0900
  Commit:     Peter Zhu <peter@peterzhu.ca>
  CommitDate: 2023-12-23 23:51:30 +0900

    Remove useless `#if 1` in array.c

commit fe9e57bac8ec73ad822c1b245376a6cd96139ccb
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 19:36:21 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-23 19:36:21 +0900

    Adjust indent [ci skip]

commit fd3dede7f4bad52d7ab383eeb9ee29f20b045cb7
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 18:57:47 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-23 18:57:47 +0900

    Fix for older set versions

    `Set::VERSION` was not defined in old set.rb bundled with ruby 3.2 or
    earlier.
    Also add comment for spec/mspec/tool/remove_old_guards.rb.

commit dc7785e16ba54039d7341bba570ff551f146cf62
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 18:15:26 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-23 18:15:26 +0900

    Set 1.1 now checks subclass-ness stricter

commit f6e9899e8a84fc98d47d9c0faf59ff3f0684e1b4
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 01:54:35 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-23 18:03:31 +0900

    Make rbconfig.rb loadable from exe/ruby

    So that it can run without `--disable=gems` option.

commit 8c03bdacd180cc40b9dac2e6ab52ceb96b34bb18
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-23 01:51:23 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-23 18:03:30 +0900

    Control the precheck for test-all by `PRECHECK_TEST_ALL`

commit 40bc7ede38f87bfdd768ed277631b240bd0632b4
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2023-12-23 16:51:41 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2023-12-23 16:51:41 +0900

    Set 1.1.0 has been imported

commit c66ff6facedc693622132a343425ff878a163262
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2023-12-23 16:43:37 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2023-12-23 16:50:33 +0900

    [ruby/set] Bump version to 1.1.0

    https://github.com/ruby/set/commit/d6cab5bcc8

commit 67882d7695552202c47a62bae12e8a774f9e64ea
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2023-12-08 22:20:14 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2023-12-23 16:50:31 +0900

    [ruby/set] Use the pattern argument instead of a block

    https://github.com/ruby/set/commit/c63047c2ce

commit 6fc3171e8af966c680664791b05fa9d505c95d19
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2023-12-08 22:18:25 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2023-12-23 16:50:30 +0900

    [ruby/set] The arity of initialize_clone is -1 in Ruby >= 3

    https://github.com/ruby/set/commit/32a9689696

commit 271c74a473b4fa2cdd754865882ba9912b58541c
  Author:     Akinori MUSHA <knu@idaemons.org>
  AuthorDate: 2023-12-08 22:09:22 +0900
  Commit:     Akinori MUSHA <knu@idaemons.org>
  CommitDate: 2023-12-23 16:50:29 +0900

    [ruby/set] Drop support for Ruby 2

    https://github.com/ruby/set/commit/64dad673d8

commit da02d08f2793c1c5d2ce084d6ceb6fa58ed641f2
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-23 15:17:58 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-23 15:18:14 +0900

    RJIT: Rewind $! after compilation

commit ef065102653378956f579985d10d3d4816dc87cf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-23 14:47:35 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-23 14:48:26 +0900

    RJIT: Prefer STDERR over $stderr

    When $stderr is redirected, you'll have no way to see why RJIT got
    broken. This reference must always be the actual stderr.

commit c25705c2670ab34a2d4c993436edcf7d77e5cd92
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-23 13:20:03 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-23 13:20:42 +0900

    Get rid of obsoleted RJITFirst

    It was renamed from test_mjit, but we did not maintain it as test_rjit.
    We test RJIT very differently.

commit 9b289d58f78e80362984ffb2920e859beeaec2ce
  Author:     Burdette Lamar <BurdetteLamar@Yahoo.com>
  AuthorDate: 2023-12-23 12:31:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-23 12:31:18 +0900

    [DOC] RDoc for Complex (#9307)

commit f1b7424cbed00a27532a053949f524eaaf4be1ba
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-23 05:15:22 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-23 11:07:22 +0900

    FREE_AT_EXIT: Don't free main stack post-fork

    When a forked process was started in a thread, this would result in a
    double-free during the child process exit.

        RUBY_FREE_AT_EXIT=1 ./miniruby -e 'Thread.new { fork { } }.join; Process.waitpid'

    This is because the main thread in the forked process was not the
    initial VM thread, and the new thread's stack was freed as part of
    objectspace iteration.

    This change also allows rb_threadptr_root_fiber_release to run without
    EC being available.

commit 339978ef3869acb2ff877451381a80ee4b548bfb
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-23 05:15:07 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-23 11:07:22 +0900

    Free default_rand_key after freeing Ractors

    Ractor's free iterates through its TLS keys so we need to keep this
    memory available until after Ractors are freed.

    Minimal reproduction:

        RUBY_FREE_AT_EXIT=1 ./miniruby -e rand

commit 697a096c9b0d8c153cb5d99affb6b5673b7c4210
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-16 18:34:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-23 11:07:22 +0900

    Remove EC argument from clean_hooks_check

    This argument doesn't seem used anymore. Since we want to free these
    objects during VM destruction when RUBY_FREE_AT_EXIT is set they must
    work without an EC.

    This avoids a use-after-free running `RUBY_FREE_AT_EXIT=1 ./miniruby -e ''`

commit 24ff13d8da711f8004b92e81e95c051feb8a5ce0
  Author:     git <svn-admin@ruby-lang.org>
  AuthorDate: 2023-12-23 09:35:43 +0900
  Commit:     git <svn-admin@ruby-lang.org>
  CommitDate: 2023-12-23 09:35:43 +0900

    Update default gems list at 7d7a84e99fca816ec352c95965687d [ci skip]

commit 7d7a84e99fca816ec352c95965687db240fb56d3
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-23 09:08:54 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-23 09:34:26 +0900

    Merge RubyGems-3.5.3 and Bundler-2.5.3

commit fa5de8f68d51e4fbc91190061e3ce3817bd68964
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 07:46:56 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 08:10:41 +0900

    MN: skip waiting on fiber schedulers

    If the Fiber is nonblocking mode, fiber scheduler needs to handle
    IO events.

commit beec3d07c907ec875e05fe2d22cea2263857b499
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 07:45:08 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 08:10:41 +0900

    MN: skip waiting on `read_nonblock'

    if the IO for `IO#read_nonblock` is not ready, it needs
    to return (or raise) immediately.

commit 2fe9e08578689adec0be8a36d0ae49541551d357
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 07:44:36 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 08:10:41 +0900

    MN: skip RUBY_DESCRIPTION spec on MN enabled

commit a4b737213eb1d8f352f1f148c27e96a3f09f5d08
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 05:23:53 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 05:56:02 +0900

    MN: ceil timeout milli seconds

    `hrrel / RB_HRTIME_PER_MSEC` floor the timeout value and it can
    return wrong value by `Mutex#sleep` (return Integer even if
    it should return nil (timeout'ed)).

    This patch ceil the value and the issue was solved.

commit c974ee1abe5df5a4bb97264e608afbd134c77652
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 05:22:52 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 05:56:02 +0900

    ensure to restart antoher thread

commit bbfc262c994f84801abfb1302cf6142dfee50adf
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-23 03:57:53 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-23 05:56:02 +0900

    MN: fix "raise on close"

    Introduce `thread_io_wait_events()` to make 1 function to call
    `thread_sched_wait_events()`.

    In ``thread_io_wait_events()`, manipulate `waiting_fd` to raise
    an exception when closing the IO correctly.

commit 19d082dcfa393e8a5d0282b872ace587ca5cd49a
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-23 04:20:45 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-23 04:24:04 +0900

    RJIT: Distinguish Pointer with Array

    This is more convenient for accessing those fields.

commit 40e3f782dd92749a1fa593ef905d1b75fdd61904
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-22 21:50:38 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-22 23:08:10 +0900

    Extract `forwarding_arg_check` function

commit 11c2aa035b0639a2b3550cd8e0b9ef72315f0c2d
  Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  AuthorDate: 2023-12-22 16:30:46 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-22 23:08:10 +0900

    Extract `arg_splat` nonterminal symbol

commit 426f2334dd4a926782ffac32ad9c6c01abf220b8
  Author:     Jun Aruga <jaruga@redhat.com>
  AuthorDate: 2023-12-22 22:26:22 +0900
  Commit:     Jun Aruga <junaruga@users.noreply.github.com>
  CommitDate: 2023-12-22 23:06:47 +0900

    .travis.yml: Try another way to be notified.

    I <jaruga@ruby-lang.org> haven't received the notifications since August 2022.
    So, try another way to be notified written on the document below.

    https://docs.travis-ci.com/user/notifications/#configuring-email-notifications

commit e8639098ed78f8f8f7c263d8b6f2d68822945a78
  Author:     Kouhei Yanagita <yanagi@shakenbu.org>
  AuthorDate: 2023-10-29 14:57:50 +0900
  Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
  CommitDate: 2023-12-22 16:15:33 +0900

    [Bug #19977] Fix (nil..nil) === x not to raise TypeError

commit f263e447460eb952738f0318ca4e8dee4f4139a5
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 15:57:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 16:00:18 +0900

    RJIT: Avoid retaining unrelated local variables in memory

commit ef4797bb0338aa35dd74290dcfef83cbc288ad58
  Author:     Kouhei Yanagita <yanagi@shakenbu.org>
  AuthorDate: 2023-12-22 15:44:57 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-22 15:53:41 +0900

    [DOC] Fix NEWS markup

commit 17e351057ea39acbc19fa3f17ba668a3ba31421e
  Author:     TSUYUSATO Kitsune <make.just.on@gmail.com>
  AuthorDate: 2023-12-22 15:03:18 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-22 15:28:33 +0900

    Add Regexp updates to NEWS.md

commit e364436c5f89fc4ee51706634637893771175d02
  Author:     yui-knk <spiketeika@gmail.com>
  AuthorDate: 2023-12-22 09:32:32 +0900
  Commit:     Yuichiro Kaneko <spiketeika@gmail.com>
  CommitDate: 2023-12-22 15:15:05 +0900

    [DOC] NEWS entries for Parser

commit f3c82df944603a590771c83e1e58c51f83eb63cf
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 14:59:32 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 14:59:33 +0900

    RJIT: Minimize string allocations in InsnCompiler

commit 2e0277b133b9040808f45d0ec9930a0fd7422c3b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 14:25:08 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 14:46:19 +0900

    RJIT: Make --rjit-trace actually work

commit 4c6f07eeca54df45cbdd1ab83eafc5a9343482d4
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 14:10:19 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 14:10:19 +0900

    RJIT: Update bindgen

commit 64c52cd1c2df840a021dd952b42bddde09534b1b
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 13:57:34 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 14:05:13 +0900

    RJIT: Add --rjit-trace to allow TracePoint during JIT

commit c18edc5b5d03b9abf355038a17956d69e0552228
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-22 09:01:16 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-22 13:43:01 +0900

    Avoid underflow of rb_yjit_live_iseq_count

    This value is only incremented when rb_iseq_translate_threaded_code is
    called, which doesn't happen for iseqs which result in a syntax error.

    This is easy to hit by running a debug build with RUBY_FREE_AT_EXIT=1,
    but any build and options could underflow this value by running enough
    evals.

commit cae11dd8576d9ddb9bead2e5340677c5d05b03f5
  Author:     Koichi Sasada <ko1@atdot.net>
  AuthorDate: 2023-12-22 12:15:44 +0900
  Commit:     Koichi Sasada <ko1@atdot.net>
  CommitDate: 2023-12-22 12:45:31 +0900

    debug.gem v1.9.1

commit fa0f7522c41bd2a71117b2428bc6fbb0bbcc9699
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2023-12-22 08:52:20 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2023-12-22 11:30:00 +0900

    coroutine/arm64: Skip saving/restoring x30 twice and use `autiasp`

    We don't need to save/restore x30 twice, and we can just use `ret`,
    which uses x30 as return address register instead of explicit `ret <reg>`
    instruction. This also allows us to use `autiasp` instead of `autia1716`
    and we can skip setting SP/LR to x16/x17.

    Also the size of register save area is shrunk by 16 bytes due to the
    removal of extra x30 save/restore.

commit 2d004decde80566c5b004c5b832e8a1ab007965f
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2023-12-21 15:21:37 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2023-12-22 11:30:00 +0900

    coroutine/arm64/Context.S: Append PAC/BTI note section if needed

    Fixes https://bugs.ruby-lang.org/issues/20029

commit 35587150e21175b6a63cd02d406beff5c76f1149
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2023-12-21 15:19:25 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2023-12-22 11:30:00 +0900

    coroutine/arm64/Context.S: Insert `bti c` as BTI landing pad

commit d9e5564ccd0e460b7685b786d21cf386b229e2a9
  Author:     Yuta Saito <kateinoigakukun@gmail.com>
  AuthorDate: 2023-12-21 14:42:39 +0900
  Commit:     Yuta Saito <kateinoigakukun@gmail.com>
  CommitDate: 2023-12-22 11:30:00 +0900

    coroutine/arm64: Sign return address if PAC enabled

commit 9a3c49ee5d6dd3770c21ed8193e7efd64cd81a6e
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 10:45:43 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 10:47:36 +0900

    RJIT: Convert opt_case_dispatch keys with #to_value

    comptime_key is a Ruby object and the value is not valid in machine code.

    This PR also implements `CMP r/m64, imm32 (Mod 01: [reg]+disp8)` that is
    now needed for running mail.gem benchmark.

commit 0c05551f5812f29c24a30cfbcaa60beab22569d0
  Author:     Alan Wu <alanwu@ruby-lang.org>
  AuthorDate: 2023-12-22 10:34:49 +0900
  Commit:     Alan Wu <alanwu@ruby-lang.org>
  CommitDate: 2023-12-22 10:34:49 +0900

    Typo fixes for public headers [ci skip]

commit 009968a700209336eb592ccb83bddcf7b2c17984
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 10:12:40 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 10:12:40 +0900

    RJIT: Avoid incrementing vm_insns_count

    during compilation

commit 3c182776292ecd2a28fea4f7de87a89e64459f9c
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 09:18:30 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 09:47:13 +0900

    RJIT: Clean up unnecessary documentation

commit 18a97affa349b5edbc4829063b752aab1911fa55
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 09:45:37 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 09:45:37 +0900

    RJIT: Fix a wrong comparison in set_local_type

commit 68bcca4c2bfa716b965554057b098cefcba00f66
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 08:45:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 08:48:37 +0900

    RJIT: Fix unwanted shadowing in set_local_type

    local_idx should not be overwritten.

commit ffa5f16273f46c97bfca56e4549b0b38b9322d63
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-21 06:54:32 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-22 08:23:19 +0900

    Make rb_profile_frames return 0 for NULL ec

    When using M:N threads, EC is set to NULL in the shared native thread
    when nothing is scheduled. This previously caused a segfault when we try
    to examine the EC.

    Returning 0 instead means we may miss profiling information, but a
    profiler relying on this isn't thread aware anyways, and observing that
    "nothing" is running is probably correct.

    Fixes [Bug #20017]

    Co-authored-by: Dustin Brown <dbrown9@gmail.com>

commit 78b27ce62a7d6f28c73d6fb4f97b0948859be8e0
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 07:30:55 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 07:32:03 +0900

    RJIT: Streamline RJIT enablement check

    in bootstrap tests so that `make btest-bruby` skips the right tests.

commit c73959cff40ba0f1d71ea6e3fce19b5f287e8494
  Author:     Takashi Kokubun <takashikkbn@gmail.com>
  AuthorDate: 2023-12-22 07:24:10 +0900
  Commit:     Takashi Kokubun <takashikkbn@gmail.com>
  CommitDate: 2023-12-22 07:25:41 +0900

    RJIT: Rename pause/resume to disable/enable

    like YJIT. They don't work in the same way yet, but it's nice to make
    the naming consistent first so that we will not need to rename them
    later.

commit 69bed94cea6fce659c32cb59a1bfccd59f8196c7
  Author:     git <svn-admin@ruby-lang.org>
  AuthorDate: 2023-12-22 07:24:52 +0900
  Commit:     git <svn-admin@ruby-lang.org>
  CommitDate: 2023-12-22 07:24:52 +0900

    Update default gems list at 82496f2b389278a569fa7680ee6faa [ci skip]

commit 82496f2b389278a569fa7680ee6faa55a97410d7
  Author:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  AuthorDate: 2023-12-22 07:01:12 +0900
  Commit:     Hiroshi SHIBATA <hsbt@ruby-lang.org>
  CommitDate: 2023-12-22 07:24:04 +0900

    Merge RubyGems-3.5.2 and Bundler-2.5.2

commit fc549b2b3a65a95a734ee8679293a30284f84622
  Author:     Victor Shepelev <zverok.offline@gmail.com>
  AuthorDate: 2023-12-22 06:12:36 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-22 06:12:36 +0900

    [DOC] Improve NEWS.md rendering and add missing features (#9308)

    * Fix rendering of the file on docs.ruby-lang.org:
      * More indentation for code;
      * Properly qualified methods to link to docs;
    * Add two minor yet notable changes:
      * Time.new stricter parsing of strings;
      * NoMethodError rendering logic change.

commit e04197aba74e62aae163f0cdc7058861047045a2
  Author:     Victor Shepelev <zverok.offline@gmail.com>
  AuthorDate: 2023-12-22 05:27:18 +0900
  Commit:     GitHub <noreply@github.com>
  CommitDate: 2023-12-22 05:27:18 +0900

    [DOC] Fix NoMethodError example of rendering (#9309)

    Fix NoMethodError example of rendering

commit 1f0304218cf00e05a4a126196676ba221ebf91f6
  Author:     John Hawthorn <john@hawthorn.email>
  AuthorDate: 2023-12-21 08:29:03 +0900
  Commit:     John Hawthorn <john@hawthorn.email>
  CommitDate: 2023-12-22 02:17:22 +0900

    Use main_thread->ec from rb_vm_main_ractor_ec

    rb_vm_main_ractor_ec was introduced to allow rb_postponed_job_* to work
    when fired on non-Ruby threads, which have no EC set, and that is its
