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/json
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.18.0
Choose a base ref
...
head repository: ruby/json
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.18.1
Choose a head ref
  • 17 commits
  • 12 files changed
  • 6 contributors

Commits on Dec 11, 2025

  1. Revert "Skip test failing with JRuby in CI"

    This reverts commit b7e1734.
    etiennebarrie authored and byroot committed Dec 11, 2025
    Configuration menu
    Copy the full SHA
    5793694 View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2025

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

Commits on Dec 22, 2025

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

Commits on Dec 31, 2025

  1. Keep track of the the number of additional backslashes to avoid an ex…

    …tra memchr searching the remaining characters when no more backslashes exist.
    samyron authored and byroot committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    d21d936 View commit details
    Browse the repository at this point in the history
  2. Simplify unescape_unicode

    Co-Authored-By: Jean Boussier <[email protected]>
    samyron and byroot committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    976ba36 View commit details
    Browse the repository at this point in the history
  3. Fix non-portable code

    A plain `char` may be `signed` or `unsigned` depending on the
    implementation.  Also, bitwise ORing of `signed` values ​​is not
    guaranteed to be `signed`.  To ensure portability, should logical-OR
    each comparison, but casting to `signed char` is usually sufficient.
    nobu committed Dec 31, 2025
    Configuration menu
    Copy the full SHA
    8ad744c View commit details
    Browse the repository at this point in the history
  4. Merge pull request #921 from nobu/nonportable-code

    Fix non-portable code
    nobu authored Dec 31, 2025
    Configuration menu
    Copy the full SHA
    3e23e57 View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2026

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

Commits on Jan 14, 2026

  1. Configuration menu
    Copy the full SHA
    86a5cce View commit details
    Browse the repository at this point in the history
  2. initialize search.chunk_end to silence a warning about it being poten…

    …tially uninitialized
    samyron authored and byroot committed Jan 14, 2026
    Configuration menu
    Copy the full SHA
    73818b8 View commit details
    Browse the repository at this point in the history
  3. Remove trailing spaces [ci skip]

    nobu committed Jan 14, 2026
    Configuration menu
    Copy the full SHA
    15eb40d View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2026

  1. Use __builtin_memcpy, if available, to copy overlapping byte ranges i…

    …n copy_remaining_bytes to avoid a branch to MEMCPY. Additionally use a space as padding byte instead of an 'X' so it can be represented diretly on AArch64 with a single instruction.
    samyron authored and byroot committed Jan 16, 2026
    Configuration menu
    Copy the full SHA
    643ee11 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1b276c8 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2026

  1. Improve class JSON intro

    BurdetteLamar authored and byroot committed Jan 22, 2026
    Configuration menu
    Copy the full SHA
    062fcdd View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2026

  1. Ensure Generator::State is kept on the stack

    Fix: #929
    
    When calling `cState_partial_generate` from `mHash_to_json` or other
    `to_json` funcs, `VState` becomes unreachable very quickly, hence the
    compiler may optimize it out of the stack, and make it invisible to
    the GC stack scanning. This is particularly liekly given how aggressively
    we inline.
    
    Repro:
    
    ```ruby
    require 'json'
    
    test_data = {
      "flag" => true,
      "data" => 10000.times.map { [1.0] },
      :flag => false,
    }
    
    10.times do
      test_data.to_json
    end
    ```
    
    But in practice the cause was just that the issued warning calls
    Hash#inspect on a big hash, which triggers GC.
    
    So it can be triggered even more reliably with:
    
    ```ruby
    require 'json'
    
    module JSON
      module Common
        def self.on_mixed_keys_hash(...)
          GC.start
        end
      end
    end
    
    test_data = {
      "flag" => true,
      "data" => 10000.times.map { [1.0] },
      :flag => false,
    }
    
    test_data.to_json
    ```
    byroot committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    79b6e16 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fff25c9 View commit details
    Browse the repository at this point in the history
  3. Release 2.18.1

    byroot committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    6ec6e7b View commit details
    Browse the repository at this point in the history
Loading