-
Notifications
You must be signed in to change notification settings - Fork 344
Comparing changes
Open a pull request
base repository: ruby/json
base: 84443e8
head repository: ruby/json
compare: 0bfe7cc
- 20 commits
- 10 files changed
- 2 contributors
Commits on Apr 24, 2025
-
Bring back JSON::PRETTY_STATE_PROTOTYPE with a deprecation
Fix: #788 `multi_json` rely on it, even though it was never documented as public API. Bringing it back as a method so it can emit a deprecation warning.
Configuration menu - View commit details
-
Copy full SHA for 123121b - Browse repository at this point
Copy the full SHA 123121bView commit details -
Merge pull request #789 from byroot/deprecated-pretty-prototype
Bring back JSON::PRETTY_STATE_PROTOTYPE with a deprecation
Configuration menu - View commit details
-
Copy full SHA for c8ae2c5 - Browse repository at this point
Copy the full SHA c8ae2c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for c985e8c - Browse repository at this point
Copy the full SHA c985e8cView commit details
Commits on Apr 25, 2025
-
Stop caching the generator state pointer
Fix: #790 If we end up calling something that spills the state on the heap, the pointer we received is outdated and may be out of sync.
Configuration menu - View commit details
-
Copy full SHA for 2ffa4ea - Browse repository at this point
Copy the full SHA 2ffa4eaView commit details -
Merge pull request #791 from byroot/fix-pretty-generate
Stop caching the generator state pointer
Configuration menu - View commit details
-
Copy full SHA for d316f93 - Browse repository at this point
Copy the full SHA d316f93View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e025f7 - Browse repository at this point
Copy the full SHA 3e025f7View commit details
Commits on Apr 27, 2025
-
Handle non-string keys returning immediate values via
to_s
We can't directly call `RBASIC_CLASS` as the return value of `to_s` may be an immediate.
Configuration menu - View commit details
-
Copy full SHA for 12dc394 - Browse repository at this point
Copy the full SHA 12dc394View commit details -
Merge pull request #792 from byroot/handle-to-s-immediate
Handle non-string keys returning immediate values via `to_s`
Configuration menu - View commit details
-
Copy full SHA for 05cc998 - Browse repository at this point
Copy the full SHA 05cc998View commit details -
Configuration menu - View commit details
-
Copy full SHA for b14250f - Browse repository at this point
Copy the full SHA b14250fView commit details
Commits on Apr 28, 2025
-
Introduce ARM Neon and SSE2 SIMD. (#743)
See the pull request for the long development history: #743 ``` == Encoding activitypub.json (52595 bytes) ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +YJIT +PRISM [arm64-darwin24] Warming up -------------------------------------- after 2.913k i/100ms Calculating ------------------------------------- after 29.377k (± 2.0%) i/s (34.04 μs/i) - 148.563k in 5.059169s Comparison: before: 23314.1 i/s after: 29377.3 i/s - 1.26x faster == Encoding citm_catalog.json (500298 bytes) ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +YJIT +PRISM [arm64-darwin24] Warming up -------------------------------------- after 152.000 i/100ms Calculating ------------------------------------- after 1.569k (± 0.8%) i/s (637.49 μs/i) - 7.904k in 5.039001s Comparison: before: 1485.6 i/s after: 1568.7 i/s - 1.06x faster == Encoding twitter.json (466906 bytes) ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +YJIT +PRISM [arm64-darwin24] Warming up -------------------------------------- after 309.000 i/100ms Calculating ------------------------------------- after 3.115k (± 3.1%) i/s (321.01 μs/i) - 15.759k in 5.063776s Comparison: before: 2508.3 i/s after: 3115.2 i/s - 1.24x faster ```
Configuration menu - View commit details
-
Copy full SHA for 4900352 - Browse repository at this point
Copy the full SHA 4900352View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2739de4 - Browse repository at this point
Copy the full SHA 2739de4View commit details -
SIMD: Match control char and double quote in one pass
`c < 32 || c == 34` is equivalent to `c ^ 2 < 33`. Found in: https://lemire.me/blog/2025/04/13/detect-control-characters-quotes-and-backslashes-efficiently-using-swar/ The gain seem mostly present on micro-benchmark, and even there aren't very consistent, but it's never slower. ``` == Encoding long string (124001 bytes) ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +YJIT +PRISM [arm64-darwin24] Warming up -------------------------------------- after 5.295k i/100ms Calculating ------------------------------------- after 55.796k (± 3.4%) i/s (17.92 μs/i) - 280.635k in 5.035690s Comparison: before: 49840.7 i/s after: 55795.8 i/s - 1.12x faster ```
Configuration menu - View commit details
-
Copy full SHA for 034c5de - Browse repository at this point
Copy the full SHA 034c5deView commit details -
SIMD: Match control char and double quote in one pass (#793)
`c < 32 || c == 34` is equivalent to `c ^ 2 < 33`. Found in: https://lemire.me/blog/2025/04/13/detect-control-characters-quotes-and-backslashes-efficiently-using-swar/ The gain seem mostly present on micro-benchmark, and even there aren't very consistent, but it's never slower. ``` == Encoding long string (124001 bytes) ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +YJIT +PRISM [arm64-darwin24] Warming up -------------------------------------- after 5.295k i/100ms Calculating ------------------------------------- after 55.796k (± 3.4%) i/s (17.92 μs/i) - 280.635k in 5.035690s Comparison: before: 49840.7 i/s after: 55795.8 i/s - 1.12x faster ```
Configuration menu - View commit details
-
Copy full SHA for 0ae5465 - Browse repository at this point
Copy the full SHA 0ae5465View commit details -
We should test compilation with `-msse2` because we need to test with whatever arguments Ruby will be compiled with.
Configuration menu - View commit details
-
Copy full SHA for 0a87136 - Browse repository at this point
Copy the full SHA 0a87136View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f7f0e4 - Browse repository at this point
Copy the full SHA 3f7f0e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for d7d60cc - Browse repository at this point
Copy the full SHA d7d60ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b05990 - Browse repository at this point
Copy the full SHA 6b05990View commit details
Commits on Apr 29, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 410d3ed - Browse repository at this point
Copy the full SHA 410d3edView commit details -
Configuration menu - View commit details
-
Copy full SHA for d9a42c2 - Browse repository at this point
Copy the full SHA d9a42c2View commit details -
Merge pull request #795 from samyron/sm/remove-unnecessary-conditional
Remove unnecessary conditional in escape_UTF8_char_basic.
Configuration menu - View commit details
-
Copy full SHA for 0bfe7cc - Browse repository at this point
Copy the full SHA 0bfe7ccView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 84443e8...0bfe7cc