Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ruby/ruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3_4_6
Choose a base ref
...
head repository: ruby/ruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3_4_7
Choose a head ref
  • 15 commits
  • 18 files changed
  • 8 contributors

Commits on Sep 16, 2025

  1. [Bug #21313] Handle it in rescue and ensure blocks.

    The following is crashing for me:
    
    ```shell
    ruby --yjit --yjit-call-threshold=1 -e '1.tap { raise rescue p it }'
    
    ruby: YJIT has panicked. More info to follow...
    thread '<unnamed>' panicked at ./yjit/src/codegen.rs:2402:14:
    ...
    ```
    
    It seems `it` sometimes points to the wrong value:
    
    ```shell
    ruby -e '1.tap { raise rescue p it }'
    false
    
    ruby -e '1.tap { begin; raise; ensure; p it; end } rescue nil'
    false
    ```
    
    But only when `$!` is set:
    
    ```shell
    ruby -e '1.tap { begin; nil; ensure; p it; end }'
    1
    
    ruby -e '1.tap { begin; nil; rescue; ensure; p it; end }'
    1
    
    ruby -e '1.tap { begin; raise; rescue; ensure; p it; end }'
    1
    ```
    nicholasdower authored and k0kubun committed Sep 16, 2025
    Configuration menu
    Copy the full SHA
    1f6d845 View commit details
    Browse the repository at this point in the history
  2. Add a test case for it in a regex.

    Co-authored-by: Alan Wu <[email protected]>
    2 people authored and k0kubun committed Sep 16, 2025
    Configuration menu
    Copy the full SHA
    b5346f2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6882012 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2025

  1. Use ec->interrupt_mask to prevent interrupts. [Backport #21610]

    Disallow pending interrupts to be checked during `FiberScheduler#unblock`.
    
    Ractors can send signals at any time, so the previous debug assertion can fail if a Ractor sends a signal.
    
    Co-authored-by: Luke Gruber <[email protected]>
    ioquatix and luke-gruber authored Sep 18, 2025
    Configuration menu
    Copy the full SHA
    e900e9f View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2025

  1. merge revision(s) ef2b26c: [Backport #21611]

    	`struct iseq_catch_table` is packed
    k0kubun committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    88a9614 View commit details
    Browse the repository at this point in the history
  2. merge revision(s) 62430c1: [Backport #21342]

    	Properly unlock locked mutexes on thread cleanup.
    
    	Mutexes were being improperly unlocked on thread cleanup. This bug was
    	introduced in 050a895.
    
    	We must keep a reference from the mutex to the thread, because if the fiber
    	is collected before the mutex is, then we cannot unlink it from the thread in
    	`mutex_free`. If it's not unlinked from the the thread when it's freed, it
    	causes bugs in `rb_thread_unlock_all_locking_mutexes`.
    
    	We now mark the fiber when a mutex is locked, and the thread is marked
    	as well. However, a fiber can still be freed in the same GC cycle as the
    	mutex, so the reference to the thread is still needed.
    
    	The reason we need to mark the fiber is that `mutex_owned_p()` has an ABA
    	issue where if the fiber is collected while it's locked, a new fiber could be
    	allocated at the same memory address and we could get false positives.
    
    	Fixes [Bug #21342]
    
    	Co-authored-by: John Hawthorn <[email protected]>
    k0kubun committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    4306c90 View commit details
    Browse the repository at this point in the history
  3. merge revision(s) 354d47a: [Backport #21569]

    	IBF: Avoid unaligned load on 32 bit platforms
    
    	[Bug #21569]
    k0kubun committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    22c2262 View commit details
    Browse the repository at this point in the history
  4. Revert "merge revision(s) 62430c1: [Backport #21342]"

    This reverts commit 4306c90.
    k0kubun committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    c414b98 View commit details
    Browse the repository at this point in the history
  5. Reapply "merge revision(s) 62430c1: [Backport #21342]"

    This reverts commit c414b98.
    k0kubun committed Sep 29, 2025
    Configuration menu
    Copy the full SHA
    264b2d7 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2025

  1. Configuration menu
    Copy the full SHA
    49d7295 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2025

  1. Merge URI-1.0.4

    hsbt authored and k0kubun committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    7146266 View commit details
    Browse the repository at this point in the history
  2. Update rubyspec as of CVE-2025-27221

    nobu authored and k0kubun committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    d2cd7ea View commit details
    Browse the repository at this point in the history
  3. tool/merger.rb: Fetch diff from GitHub instead of cgit

    Our cgit server has been shut down.
    
    tool/merger.rb: Fetch a diff in the patch format
    
    It expects "Subject:", so it needs to be a patch file.
    k0kubun committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    a7eb7e7 View commit details
    Browse the repository at this point in the history
  4. merge revision(s) 7ae67e8: [Backport #21568]

    	[PATCH] load.c: Fix dest and src of MEMMOVE
    
    	When multiple files with the same name are required, the features_index
    	hash stores the indexes in `$LOADED_FEATURES` array into a darray.
    	The dest and src arguments for `MEMMOVE` were wrongly reversed when
    	inserting a new index in the darray.
    
    	[Bug #21568]
    k0kubun committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    ef3ce71 View commit details
    Browse the repository at this point in the history
  5. v3.4.7

    k0kubun committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    7a5688e View commit details
    Browse the repository at this point in the history
Loading