ruby/ext
Jean Boussier f756950d82
Improve lookup tables for string escaping.
Introduce a simplified table for the most common case, which is
`script_safe: false, ascii_only: false`.

On the `script_safe` table, now only `0xE2` does a multi-byte check.

Merge back `convert_ASCII_to_JSON`, as it no longer help much with
the simplified escape table.

```
== Encoding mixed utf8 (5003001 bytes)
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
               after    38.000 i/100ms
Calculating -------------------------------------
               after    398.220 (± 3.0%) i/s    (2.51 ms/i) -      2.014k in   5.061659s

Comparison:
              before:      381.8 i/s
               after:      398.2 i/s - same-ish: difference falls within error

== Encoding mostly utf8 (5001001 bytes)
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
               after    39.000 i/100ms
Calculating -------------------------------------
               after    393.337 (± 2.5%) i/s    (2.54 ms/i) -      1.989k in   5.059397s

Comparison:
              before:      304.3 i/s
               after:      393.3 i/s - 1.29x  faster

== Encoding twitter.json (466906 bytes)
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
               after   244.000 i/100ms
Calculating -------------------------------------
               after      2.436k (± 0.9%) i/s  (410.43 μs/i) -     12.200k in   5.007702s

Comparison:
              before:     2125.9 i/s
               after:     2436.5 i/s - 1.15x  faster
```
2025-01-07 13:21:46 +09:00
..
-test- Win32: clean extra object file 2024-12-27 12:33:28 +09:00
cgi/escape ruby tool/update-deps --fix 2024-04-27 21:55:28 +09:00
continuation ruby tool/update-deps --fix 2024-04-27 21:55:28 +09:00
coverage Prefix asan_poison_object with rb 2024-12-19 09:14:34 -05:00
date [ruby/date] Simplify description of this library 2024-12-26 10:27:24 +09:00
digest [ruby/digest] Bump up v3.2.0 2024-12-16 03:31:55 +00:00
erb/escape [ruby/erb] Skip building a native extension for JRuby 2024-01-04 22:33:16 +00:00
etc [ruby/etc] Bump up 1.4.5 2024-12-09 14:06:05 +09:00
fcntl [ruby/fcntl] Fixup gemspec files 2024-11-07 18:45:05 +09:00
fiddle Bump up fiddle 1.1.7.dev and stringio 3.1.3.dev 2024-12-26 10:27:24 +09:00
io [ruby/io-console] Bump up 0.8.0 2024-12-03 05:05:14 +00:00
json Improve lookup tables for string escaping. 2025-01-07 13:21:46 +09:00
monitor [DOC] Monitor 2024-12-25 13:16:14 +09:00
objspace use st_update to prevent table extension 2024-12-23 11:05:34 +09:00
openssl [ruby/openssl] Ruby/OpenSSL 3.3.0 2024-12-22 03:33:03 +09:00
pathname [ruby/pathname] Bump up v0.4.0 2024-11-06 07:09:08 +00:00
psych [ruby/psych] Bump up v5.2.2 2024-12-18 10:27:03 +09:00
pty Remove a useless check if fd is negative 2024-11-29 12:38:20 +09:00
rbconfig/sizeof ruby tool/update-deps --fix 2024-04-27 21:55:28 +09:00
ripper Remove unused token definitions for tRPAREN in Ripper and parser files 2025-01-07 07:17:55 +09:00
rubyvm
socket Fix typo for private constant in Socket 2025-01-06 15:41:49 +09:00
stringio [ruby/stringio] Provide a 'Changelog' link on 2025-01-02 23:21:31 +00:00
strscan [ruby/strscan] [DOC] Add syntax highlighting to MarkDown code blocks 2024-12-16 10:10:34 +09:00
win32 [ruby/resolv] Build the extension library only when CRuby (Fix 2024-12-10 09:29:38 +00:00
win32ole [ruby/win32ole] Bump up v1.9.1 2024-12-17 06:48:33 +00:00
zlib [ruby/zlib] Bump up v3.2.1 2024-12-13 00:33:58 +00:00
.document [ruby/io-console] [DOC] Split .document files to sync with ruby/ruby 2023-10-22 11:09:06 +09:00
extmk.rb Win32: Fix sub make commands 2024-12-27 16:26:14 +09:00
Setup Clean up removed directories in ext/Setup* [ci skip] 2023-01-18 12:02:27 +09:00
Setup.atheos racc/cparse is extracted from ruby/ruby repository 2023-06-08 18:05:07 +09:00
Setup.nt racc/cparse is extracted from ruby/ruby repository 2023-06-08 18:05:07 +09:00