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: github/ruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7913aff
Choose a base ref
...
head repository: ruby/ruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 46d106f
Choose a head ref
  • 18 commits
  • 44 files changed
  • 12 contributors

Commits on Jul 28, 2025

  1. Avoid GC while operands in inconsistent state

    compile_data_calloc2 may run GC (though because it allocates from an
    arena this is rare in practice). When this happened when resizing
    operands there was a risk of seeing the insn in an inconsistent state.
    
    To solve this we need to make any allocations before we start modifying
    the instrucitons. This refactors the code to use a new
    insn_replace_with_operands() function that allocates the new operands
    array before modifying the instruction object.
    
    Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
    jhawthorn and tenderlove committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    5ca7136 View commit details
    Browse the repository at this point in the history
  2. ZJIT: Keep a frame pointer and use it for memory params

    Previously, ZJIT miscompiled the following because of native SP
    interference.
    
        def a(n1,n2,n3,n4,n5,n6,n7,n8) = [n8]
        a(0,0,0,0,0,0,0, :ok)
    
    Commented problematic disassembly:
    
        ; call rb_ary_new_capa
        mov x0, #1
        mov x16, #0x1278
        movk x16, #0x4bc, lsl #16
        movk x16, #1, lsl #32
        blr x16
        ; call rb_ary_push
        mov x1, x0
        str x1, [sp, #-0x10]! ; c_push() from alloc_regs()
        mov x0, x1            ; arg0, the array
        ldur x1, [sp]         ; meant to be arg1=n8, but sp just moved!
        mov x16, #0x3968
        movk x16, #0x4bc, lsl #16
        movk x16, #1, lsl #32
        blr x16
    
    Since the frame pointer stays constant in the body of the function,
    static offsets based on it don't run the risk of being invalidated by SP
    movements.
    
    Pass the registers to preserve through Insn::FrameSetup. This allows ARM
    to use STP and waste no gaps between EC, SP, and CFP.
    
    x86 now preserves and restores RBP since we use it as the frame pointer.
    Since all arches now have a frame pointer, remove offset based SP
    movement in the epilogue and restore registers using the frame pointer.
    XrXr committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    ff428b4 View commit details
    Browse the repository at this point in the history
  3. ZJIT: Inline guard type checks for some built-in types (ruby#14017)

    This implements similar fast-path guard type checks as YJIT.
    st0012 authored Jul 28, 2025
    Configuration menu
    Copy the full SHA
    043489a View commit details
    Browse the repository at this point in the history
  4. ZJIT: Remove Integer subclasses from lattice

    While Integer can technically be subclassed, instances of subclasses
    cannot be created. Remove it from the type lattice.
    tekknolagi committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    f6dccdb View commit details
    Browse the repository at this point in the history
  5. ZJIT: Mark Symbol, Float, NilClass, TrueClass, FalseClass as final

    They can be subclassed but new instances cannot be created.
    tekknolagi committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    b2b2aff View commit details
    Browse the repository at this point in the history
  6. ZJIT: Fix land race

    tekknolagi committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    3f22434 View commit details
    Browse the repository at this point in the history
  7. [ruby/tsort] Add changelog_uri to gemspec metadata

    Adds a link to the GitHub Releases page for this gem consistent with other gems in the Ruby organization. Existing examples include:
    
    - [json](https://github.com/ruby/json/blob/master/json.gemspec)
    - [ostruct](https://github.com/ruby/ostruct/blob/master/ostruct.gemspec)
    
    ruby/tsort@8086bb33bc
    jgarber623 authored and matzbot committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    e15f1a7 View commit details
    Browse the repository at this point in the history
  8. Remove unnecessary internal/gc.h include in hash.c

    hash.c compiles just fine on HASH_DEBUG without including internal/gc.h.
    peterzhu2118 committed Jul 28, 2025
    Configuration menu
    Copy the full SHA
    23000e7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a0d0b84 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f1acf47 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2025

  1. [ruby/json] Release 2.13.2

    byroot authored and hsbt committed Jul 29, 2025
    Configuration menu
    Copy the full SHA
    8e426a3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2a6b469 View commit details
    Browse the repository at this point in the history
  3. Fix ext/-test-/namespace/yay{1,2} for mswin

    Visual C:
    ```
    compiling ../../../../../src/ext/-test-/namespace/yay1/yay1.c
    yay1.c
    ../../../../../src/ext/-test-/namespace/yay1/yay1.c(4): warning C4273: 'yay_value': inconsistent dll linkage
    C:\a\ruby\ruby\src\ext\-test-\namespace\yay1\yay1.h(4): note: see previous definition of 'yay_value'
    linking shared-object -test-/namespace/yay1.so
       Creating library yay1-arm64-mswin64_140.lib and object yay1-arm64-mswin64_140.exp
    yay1-arm64-mswin64_140.exp : warning LNK4070: /OUT:yay1.dll directive in .EXP differs from output filename '..\..\..\..\.ext\arm64-mswin64_140\-test-\namespace\yay1.so'; ignoring directive
    compiling ../../../../../src/ext/-test-/namespace/yay2/yay2.c
    yay2.c
    ../../../../../src/ext/-test-/namespace/yay2/yay2.c(4): warning C4273: 'yay_value': inconsistent dll linkage
    C:\a\ruby\ruby\src\ext\-test-\namespace\yay2\yay2.h(4): note: see previous definition of 'yay_value'
    linking shared-object -test-/namespace/yay2.so
       Creating library yay2-arm64-mswin64_140.lib and object yay2-arm64-mswin64_140.exp
    yay2-arm64-mswin64_140.exp : warning LNK4070: /OUT:yay2.dll directive in .EXP differs from output filename '..\..\..\..\.ext\arm64-mswin64_140\-test-\namespace\yay2.so'; ignoring directive
    ```
    
    From MinGW gcc:
    ```
    ../../../../../src/ext/-test-/namespace/yay1/yay1.c:4:1: warning: 'yay_value' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
        4 | yay_value(void)
          | ^~~~~~~~~
    ../../../../../src/ext/-test-/namespace/yay2/yay2.c:4:1: warning: 'yay_value' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
        4 | yay_value(void)
          | ^~~~~~~~~
    ```
    nobu committed Jul 29, 2025
    Configuration menu
    Copy the full SHA
    d9a14c2 View commit details
    Browse the repository at this point in the history
  4. [Bug #21513] Raise on converting endless range to set

    ref: https://bugs.ruby-lang.org/issues/21513
    
    Before this patch, trying to convert endless range (e.g. `(1..)`) to set
    (using `to_set`) would hang
    viralpraxis authored and knu committed Jul 29, 2025
    Configuration menu
    Copy the full SHA
    d4020dd View commit details
    Browse the repository at this point in the history
  5. Get rid of imemo_ast

    It has been marked as obsolete for a while and I see no reason
    to keep it.
    byroot committed Jul 29, 2025
    Configuration menu
    Copy the full SHA
    7ee127d View commit details
    Browse the repository at this point in the history
  6. Fix the current parser detection

    Since `RUBY_DESCRIPTION` contains the branch name, `/prism/i` can
    match unexpectedly.  Extract the feature lists between revision
    and platform infos.
    nobu committed Jul 29, 2025
    Configuration menu
    Copy the full SHA
    a6914c0 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e0818ac View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    46d106f View commit details
    Browse the repository at this point in the history
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy