<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/json/simd, branch v4.0.4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/json] Fix macro arguments</title>
<updated>2025-12-03T02:19:06+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-12-03T01:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=28d9493b98c7fef39845393ea00ef5eb6947091b'/>
<id>28d9493b98c7fef39845393ea00ef5eb6947091b</id>
<content type='text'>
`ALWAYS_INLINE()` and `NOINLINE()` are defined with one argument.

https://github.com/ruby/json/commit/8fb727901e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`ALWAYS_INLINE()` and `NOINLINE()` are defined with one argument.

https://github.com/ruby/json/commit/8fb727901e
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Tentative fix for RHEL8 compiler</title>
<updated>2025-11-04T11:07:31+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-04T11:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f1776e8f176f50bd9ab16ca399d1a9c8b7d6eeb7'/>
<id>f1776e8f176f50bd9ab16ca399d1a9c8b7d6eeb7</id>
<content type='text'>
```
parser.c:87:77: error: missing binary operator before token "("
 #if JSON_CPU_LITTLE_ENDIAN_64BITS &amp;&amp; defined(__has_builtin) &amp;&amp; __has_builtin(__builtin_bswap64)
```

https://github.com/ruby/json/commit/fce1c7e84a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
```
parser.c:87:77: error: missing binary operator before token "("
 #if JSON_CPU_LITTLE_ENDIAN_64BITS &amp;&amp; defined(__has_builtin) &amp;&amp; __has_builtin(__builtin_bswap64)
```

https://github.com/ruby/json/commit/fce1c7e84a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Fix duplicate 'inline' declaration specifier</title>
<updated>2025-11-03T15:56:38+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-03T15:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2f9e0d355ef4db3157a401da8bf3b8da4c811d6b'/>
<id>2f9e0d355ef4db3157a401da8bf3b8da4c811d6b</id>
<content type='text'>
Followup: https://github.com/ruby/json/pull/889

https://github.com/ruby/json/commit/591510392a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Followup: https://github.com/ruby/json/pull/889

https://github.com/ruby/json/commit/591510392a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Centralize macro definitions</title>
<updated>2025-11-03T09:22:40+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-03T09:07:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=35a5e5513377d0d1f13c3ab15966a5c51b24066c'/>
<id>35a5e5513377d0d1f13c3ab15966a5c51b24066c</id>
<content type='text'>
https://github.com/ruby/json/commit/1576ea7d47
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/1576ea7d47
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Enable JSON_DEBUG for parser/extconf.rb</title>
<updated>2025-11-01T14:35:23+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-01T13:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5384136eb578b3a4504f744ff5623239426df8d5'/>
<id>5384136eb578b3a4504f744ff5623239426df8d5</id>
<content type='text'>
https://github.com/ruby/json/commit/82b030f294
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/82b030f294
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] parser.c: Use SWAR to skip consecutive spaces</title>
<updated>2025-11-01T12:00:01+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-01T11:15:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ed7229eac8a5678211be8f1468af778d7beebf5c'/>
<id>ed7229eac8a5678211be8f1468af778d7beebf5c</id>
<content type='text'>
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 &lt;samyron@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;samyron@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Keep indentation consistent across functions [ci skip]</title>
<updated>2025-07-27T07:35:14+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-27T06:34:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0adecf500ac91125e989462d05f4ae137c72ffb2'/>
<id>0adecf500ac91125e989462d05f4ae137c72ffb2</id>
<content type='text'>
https://github.com/ruby/json/commit/1988a3ae4c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/1988a3ae4c
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Functions defined in headers should be `static inline`</title>
<updated>2025-07-27T06:08:19+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-27T05:58:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f5aee2480a4fb2aafa4e6e50eab6d9aef1976bc5'/>
<id>f5aee2480a4fb2aafa4e6e50eab6d9aef1976bc5</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Don't assume `__builtin_cpu_supports` exists</title>
<updated>2025-07-25T02:11:23+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-07-24T11:24:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=069a24c93caaa6f8eacdb02609356bee0adf3192'/>
<id>069a24c93caaa6f8eacdb02609356bee0adf3192</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Improve consistency of code style</title>
<updated>2025-07-07T02:53:23+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-07-05T07:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0fdbef4ea7d92e3215a1fca018c93f6e0ec3f51'/>
<id>d0fdbef4ea7d92e3215a1fca018c93f6e0ec3f51</id>
<content type='text'>
https://github.com/ruby/json/commit/a497c71960
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/a497c71960
</pre>
</div>
</content>
</entry>
</feed>
