<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/json/json_parser_test.rb, branch v4.0.2</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] Revert "Skip test failing with JRuby in CI"</title>
<updated>2025-12-11T15:32:48+00:00</updated>
<author>
<name>Étienne Barrié</name>
<email>etienne.barrie@gmail.com</email>
</author>
<published>2025-12-11T15:12:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3831a82d1916025f7dcdebcb9b66a0cd4fc98f00'/>
<id>3831a82d1916025f7dcdebcb9b66a0cd4fc98f00</id>
<content type='text'>
This reverts commit https://github.com/ruby/json/commit/b7e1734d9ca0.

https://github.com/ruby/json/commit/5793694ee6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit https://github.com/ruby/json/commit/b7e1734d9ca0.

https://github.com/ruby/json/commit/5793694ee6
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Add `allow_control_characters` parsing option</title>
<updated>2025-12-11T10:53:15+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-12-11T10:09:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6ad4e6a298e7b5d0f925aacecc5d375968ebde15'/>
<id>6ad4e6a298e7b5d0f925aacecc5d375968ebde15</id>
<content type='text'>
While it's not allowed by the spec, some parsers like Oj do
accept it, and it can be blocking a transition.

Having this feature can help people migrate.

https://github.com/ruby/json/commit/3459499cb3
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While it's not allowed by the spec, some parsers like Oj do
accept it, and it can be blocking a transition.

Having this feature can help people migrate.

https://github.com/ruby/json/commit/3459499cb3
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Add a specific error for unescaped newlines</title>
<updated>2025-12-10T10:14:39+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-12-10T09:54:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=023c6d808a85bd8fb711ac3986972618037f12ad'/>
<id>023c6d808a85bd8fb711ac3986972618037f12ad</id>
<content type='text'>
It's the most likely control character so it's worth
giving a better error message for it.

https://github.com/ruby/json/commit/1da3fd9233
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's the most likely control character so it's worth
giving a better error message for it.

https://github.com/ruby/json/commit/1da3fd9233
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Fix a regression in parsing of unicode surogate pairs</title>
<updated>2025-12-04T08:10:41+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-12-04T08:06:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d58a45d32ffe8afed1685e54017fb81cea898867'/>
<id>d58a45d32ffe8afed1685e54017fb81cea898867</id>
<content type='text'>
Fix: https://github.com/ruby/json/issues/912

In the case of surogate pairs we consume two backslashes, so
`json_next_backslash` need to ensure it's not sending us back in the
stream.

https://github.com/ruby/json/commit/0fce370c41
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix: https://github.com/ruby/json/issues/912

In the case of surogate pairs we consume two backslashes, so
`json_next_backslash` need to ensure it's not sending us back in the
stream.

https://github.com/ruby/json/commit/0fce370c41
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Fix the parser to not accept invalid escapes</title>
<updated>2025-11-22T13:12:16+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-22T11:59:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=735762747d818563555e13932b8e49f3801a8c7f'/>
<id>735762747d818563555e13932b8e49f3801a8c7f</id>
<content type='text'>
Only `"\/bfnrtu` are valid after a backslash.

https://github.com/ruby/json/commit/f7f8f552ed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only `"\/bfnrtu` are valid after a backslash.

https://github.com/ruby/json/commit/f7f8f552ed
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Skip test failing with JRuby in CI</title>
<updated>2025-11-21T16:12:35+00:00</updated>
<author>
<name>Étienne Barrié</name>
<email>etienne.barrie@gmail.com</email>
</author>
<published>2025-11-21T10:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=419efd5ca5064e8f492660a898be36fe4f79b84a'/>
<id>419efd5ca5064e8f492660a898be36fe4f79b84a</id>
<content type='text'>
https://github.com/ruby/json/commit/305d3832db
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/305d3832db
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] Ractor-shareable JSON::Coder</title>
<updated>2025-11-21T16:12:35+00:00</updated>
<author>
<name>Étienne Barrié</name>
<email>etienne.barrie@gmail.com</email>
</author>
<published>2025-11-18T10:44:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bdca2a9975c7859f2e1702a517d59bb6cb254acb'/>
<id>bdca2a9975c7859f2e1702a517d59bb6cb254acb</id>
<content type='text'>
https://github.com/ruby/json/commit/58d60d6b76
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/58d60d6b76
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/json] parser.c: Skip checking for escape sequences in `rstring_cache_fetch`</title>
<updated>2025-11-03T09:58:01+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-11-03T09:46:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=edebd83ea99651a47d4592f2cef12618da3a0736'/>
<id>edebd83ea99651a47d4592f2cef12618da3a0736</id>
<content type='text'>
The caller already know if the string contains escape sequences
so this check is redundant.

Also stop calling `rstring_cache_fetch` from `json_string_unescape`
as we know it won't match anyways.

```
== 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   122.000 i/100ms
Calculating -------------------------------------
               after      1.226k (± 0.3%) i/s  (815.85 μs/i) -      6.222k in   5.076282s

Comparison:
              before:     1206.2 i/s
               after:     1225.7 i/s - 1.02x  faster
```

https://github.com/ruby/json/commit/b8cdf3282d

Co-Authored-By: Scott Myron &lt;samyron@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The caller already know if the string contains escape sequences
so this check is redundant.

Also stop calling `rstring_cache_fetch` from `json_string_unescape`
as we know it won't match anyways.

```
== 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   122.000 i/100ms
Calculating -------------------------------------
               after      1.226k (± 0.3%) i/s  (815.85 μs/i) -      6.222k in   5.076282s

Comparison:
              before:     1206.2 i/s
               after:     1225.7 i/s - 1.02x  faster
```

https://github.com/ruby/json/commit/b8cdf3282d

Co-Authored-By: Scott Myron &lt;samyron@gmail.com&gt;
</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] Add test coverage for T_BIGNUM parsing</title>
<updated>2025-11-01T09:41:46+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-10-31T07:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1942cb219ab50c55b198e4a6173b4d09f3fced84'/>
<id>1942cb219ab50c55b198e4a6173b4d09f3fced84</id>
<content type='text'>
https://github.com/ruby/json/commit/f0150e2944
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/json/commit/f0150e2944
</pre>
</div>
</content>
</entry>
</feed>
