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: ohler55/oj
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.16.13
Choose a base ref
...
head repository: ohler55/oj
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.16.14
Choose a head ref
  • 13 commits
  • 13 files changed
  • 4 contributors

Commits on Dec 6, 2025

  1. Comment out head in CI

    ohler55 committed Dec 6, 2025
    Configuration menu
    Copy the full SHA
    40176f1 View commit details
    Browse the repository at this point in the history
  2. Remove windows ucrt from CI

    ohler55 committed Dec 6, 2025
    Configuration menu
    Copy the full SHA
    f30193f View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2026

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

Commits on Jan 14, 2026

  1. Remove ostruct dependency

    ohler55 committed Jan 14, 2026
    Configuration menu
    Copy the full SHA
    8da620b View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2026

  1. Remove generic tests

    ohler55 committed Jan 16, 2026
    Configuration menu
    Copy the full SHA
    ce9cf6b View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2026

  1. Fix illegal instruction error on CPUs without SSE4.2 support (#993)

    * Fix illegal instruction error on CPUs without SSE4.2 support
    
    This fixes issue #989 where oj 3.16.13 crashes with "Illegal instruction"
    on CPUs that don't support SSE4.2.
    
    The problem was that enabling -msse4.2 at compile time based on compiler
    support caused prebuilt gems to include SSE4.2 instructions even when the
    target CPU doesn't support them.
    
    Solution:
    - Use runtime CPU detection to select the appropriate SIMD implementation
    - Detection happens once during library initialization (no per-parse overhead)
    - Cross-platform support: GCC/Clang (__builtin_cpu_supports) and MSVC (__cpuid)
    - Function-level target attributes enable SIMD code without global flags
    - Portable macros (OJ_PREFETCH, OJ_CTZ, OJ_UNLIKELY) for cross-compiler support
    
    This is similar to the approach used by ruby/json for SIMD detection.
    
    Fixes #989
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
    
    * Fix clang-format style violations
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
    
    * Address review feedback: remove __builtin_cpu_init(), add cpuid.h include
    
    - Remove unnecessary __builtin_cpu_init() call since we're not using IFUNCs
    - Add #include <cpuid.h> with __has_include guard for __get_cpuid fallback
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.5 <[email protected]>
    sebyx07 and claude authored Jan 27, 2026
    Configuration menu
    Copy the full SHA
    2e92056 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2026

  1. Update changelog

    ohler55 committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    8200d69 View commit details
    Browse the repository at this point in the history
  2. merge

    ohler55 committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    8e0b8a0 View commit details
    Browse the repository at this point in the history
  3. merge

    ohler55 committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    2839e60 View commit details
    Browse the repository at this point in the history
  4. Update version

    ohler55 committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    3e7e1ec View commit details
    Browse the repository at this point in the history
  5. changelog

    ohler55 committed Feb 3, 2026
    Configuration menu
    Copy the full SHA
    5e0260c View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2026

  1. Optimize oj_dump_cstr using SSE4.2 and SSSE3. (#973)

    * Refactored and simplified the ARM Neon implementation. This optimizes the worst case synthetic benchmarks.
    
    * Move the definition of FORCE_INLINE out of the HAVE_SIMD_NEON block.
    
    * Formatting.
    
    * Renamed the expected real-world test data files.
    
    * Initial optimization of oj_dump_cstr using SSE4.2 on x86-64 platforms.
    
    * Refactor the code to reduce duplication.
    
    * SSE42 bugfixes.
    
    * Formatting.
    
    * Added SIMD_MINIMUM_THRESHOLD after accidentally removing it when merging the develop branch.
    
    * More fixes after merging develop into this branch.
    
    * clang-format
    
    * Refactor oj_dump_cstr to use runtime SIMD detection of SSE4.
    
    * Wrap SSE4.2 initialization code in an ifdef.
    
    * formatting
    samyron authored Feb 4, 2026
    Configuration menu
    Copy the full SHA
    88972f9 View commit details
    Browse the repository at this point in the history
  2. Release prep

    ohler55 committed Feb 4, 2026
    Configuration menu
    Copy the full SHA
    b0b0171 View commit details
    Browse the repository at this point in the history
Loading