| Age | Commit message (Collapse) | Author |
|
`ALWAYS_INLINE()` and `NOINLINE()` are defined with one argument.
https://github.com/ruby/json/commit/8fb727901e
|
|
```
parser.c:87:77: error: missing binary operator before token "("
#if JSON_CPU_LITTLE_ENDIAN_64BITS && defined(__has_builtin) && __has_builtin(__builtin_bswap64)
```
https://github.com/ruby/json/commit/fce1c7e84a
|
|
Followup: https://github.com/ruby/json/pull/889
https://github.com/ruby/json/commit/591510392a
|
|
https://github.com/ruby/json/commit/1576ea7d47
|
|
https://github.com/ruby/json/commit/82b030f294
|
|
Closes: https://github.com/ruby/json/pull/881
If we encounter a newline, it is likely that the document is pretty printed,
hence that the newline is followed by multiple spaces.
In such case we can use SWAR to count up to eight consecutive spaces at once.
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 1.118k i/100ms
Calculating -------------------------------------
after 11.223k (± 0.7%) i/s (89.10 μs/i) - 57.018k in 5.080522s
Comparison:
before: 10834.4 i/s
after: 11223.4 i/s - 1.04x faster
== Parsing twitter.json (567916 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 118.000 i/100ms
Calculating -------------------------------------
after 1.188k (± 1.0%) i/s (841.62 μs/i) - 6.018k in 5.065355s
Comparison:
before: 1094.8 i/s
after: 1188.2 i/s - 1.09x faster
== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 58.000 i/100ms
Calculating -------------------------------------
after 570.506 (± 3.7%) i/s (1.75 ms/i) - 2.900k in 5.091529s
Comparison:
before: 419.6 i/s
after: 570.5 i/s - 1.36x faster
== Parsing float parsing (2251051 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 22.000 i/100ms
Calculating -------------------------------------
after 212.010 (± 1.9%) i/s (4.72 ms/i) - 1.078k in 5.086885s
Comparison:
before: 189.4 i/s
after: 212.0 i/s - 1.12x faster
```
https://github.com/ruby/json/commit/b3fd7b26be
Co-Authored-By: Scott Myron <samyron@gmail.com>
|
|
https://github.com/ruby/json/commit/1988a3ae4c
|
|
If `load_uint8x16_4` has an external linkage, it is defined in
both `generator` and `parser` extension libraries. This duplicate
symbol causes a linker error when `--with-static-linked-ext` is
given, on some platforms.
https://github.com/ruby/json/commit/020693b17a
|
|
Fix: https://github.com/ruby/json/issues/827
On very old compilers it might not exist, at that point
might as well skip SIMD entirely.
https://github.com/ruby/json/commit/da878435dc
|
|
https://github.com/ruby/json/commit/a497c71960
|
|
It's only needed if using GCC `ifunc` mecanism, which
we don't.
https://github.com/ruby/json/commit/d3317b9f82
|
|
https://github.com/ruby/json/commit/94ed471814
|
|
Integrate duplicate code by extracting headers, types and
initialization code.
https://github.com/ruby/json/commit/1a768d9179
|
|
Remove `have_type` calls because the next `try_compile` calls check
those types.
https://github.com/ruby/json/commit/b08e1ca2c1
|
|
See the results of `have_type` and `try_compile` in addition to
`have_header` for NEON as well as x86_64. The former results were
just ignored, and `HAVE_TYPE_` macros are unused too.
https://github.com/ruby/json/commit/fdbb6062c2
|
|
Align code for arm and x86_64 in parallel.
https://github.com/ruby/json/commit/2211e30a59
|
|
Suppress warnings for old style function definition and unused
variable.
https://github.com/ruby/json/commit/58dc0aa938
|
|
|