summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
107 min.[ruby/json] Remove explicit include of extconf.hJean Boussier
https://github.com/ruby/json/commit/6b059900de .
107 min.[ruby/json] Fix --with-static-linked-ext buildsJean Boussier
https://github.com/ruby/json/commit/d7d60cccb0
107 min.[ruby/json] Fix i686 buildsJean Boussier
We should test compilation with `-msse2` because we need to test with whatever arguments Ruby will be compiled with. https://github.com/ruby/json/commit/0a871365db
107 min.[ruby/json] SIMD: Match control char and double quote in one passJean Boussier
`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 https://github.com/ruby/json/commit/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 ``` https://github.com/ruby/json/commit/034c5debd8
107 min.Update ext/json/generator/dependJean Boussier
107 min.[ruby/json] Introduce ARM Neon and SSE2 SIMD.Scott Myron
(https://github.com/ruby/json/pull/743) See the pull request for the long development history: https://github.com/ruby/json/pull/743 ``` == Encoding activitypub.json (52595 bytes) ruby 3.4.2 (2025-02-15 revision https://github.com/ruby/json/commit/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 https://github.com/ruby/json/commit/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 https://github.com/ruby/json/commit/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 ``` https://github.com/ruby/json/commit/49003523da
107 min.[ruby/json] Use RB_TYPE_PJean Boussier
https://github.com/ruby/json/commit/b14250f1da
107 min.[ruby/json] Handle non-string keys returning immediate values via `to_s`Jean Boussier
We can't directly call `RBASIC_CLASS` as the return value of `to_s` may be an immediate. https://github.com/ruby/json/commit/12dc394d11
107 min.[ruby/json] Release 2.11.3Jean Boussier
https://github.com/ruby/json/commit/3e025f76d7
107 min.[ruby/json] Stop caching the generator state pointerJean Boussier
Fix: https://github.com/ruby/json/issues/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. https://github.com/ruby/json/commit/2ffa4ea46b
3 daysUse a `set_table` for `rb_vm_struct.unused_block_warning_table`Jean Boussier
Now that we have a hash-set implementation we can use that instead of a hash-table with a static value.
5 days[ruby/json] Release 2.11.2Jean Boussier
https://github.com/ruby/json/commit/c985e8c6ea
5 days[ruby/json] Bring back JSON::PRETTY_STATE_PROTOTYPE with a deprecationJean Boussier
Fix: https://github.com/ruby/json/issues/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. https://github.com/ruby/json/commit/123121bba2
5 days[ruby/json] Release 2.11.1Jean Boussier
https://github.com/ruby/json/commit/84443e881d
5 days[ruby/json] Bring back the numerous deprecated aliasJean Boussier
This time with explicit deprecation warnings. https://github.com/ruby/json/commit/0dee9bdad9
5 days[ruby/json] Release 2.11.0Jean Boussier
https://github.com/ruby/json/commit/a6949f8656
8 daysMark development version for unreleased gemsHiroshi SHIBATA
8 days[ruby/strscan] Bump versionSutou Kouhei
https://github.com/ruby/strscan/commit/8ff80150c4
8 days[ruby/json] Get rid of unused CircularDatastructure classJean Boussier
https://github.com/ruby/json/commit/92beca8032
9 days[ruby/stringio] Development of 3.1.8 started.Sutou Kouhei
https://github.com/ruby/stringio/commit/14fbdcc02c
9 days[ruby/stringio] Development of 3.1.7 started.Sutou Kouhei
https://github.com/ruby/stringio/commit/ee3ee1df31
10 days[ruby/openssl] asn1: check for missing EOC in indefinite length encodingKazuki Yamaguchi
EOC octets are required at the end of contents of a constructed encoding that uses the indefinite length form. This cannot be assumed from the end of the input. Raise an exception when necessary. https://github.com/ruby/openssl/commit/bc20c13a7c
12 days[ruby/resolv] quote registry value name properlyYO4
'NV Domain' needs to be quoted. https://github.com/ruby/resolv/commit/332a16dcc0
13 daysOnly test on known good platforms. (#13123)Samuel Williams
Notes: Merged-By: ioquatix <[email protected]>
13 daysPrefer `th->ec` for stack base/size. (#13101)Samuel Williams
Notes: Merged-By: ioquatix <[email protected]>
14 days[ruby/openssl] ssl: fix SSLSocket#syswrite with String-convertible objectsKazuki Yamaguchi
Correctly pass the new object assigned by StringValue() to ossl_ssl_write_internal_safe(). This is a follow-up to commit https://github.com/ruby/openssl/commit/0d8c17aa855d (Reduce OpenSSL::Buffering#do_write overhead, 2024-12-21). https://github.com/ruby/openssl/commit/3ff096196a
2025-04-15[ruby/stringio] Support for `rb_io_mode_t`Samuel Williams
(https://github.com/ruby/stringio/pull/129) Companion PR to <https://github.com/ruby/ruby/pull/7894>. https://github.com/ruby/stringio/commit/2d3988e12f
2025-04-15[ruby/json] Cleanup Kernel#JSONJean Boussier
https://github.com/ruby/json/commit/573ebdca89
2025-04-15[ruby/json] Deprecate Kernel#j and Kernel#jjJean Boussier
https://github.com/ruby/json/commit/27155b6500
2025-04-15[ruby/json] Get rid of JSONError.wrapJean Boussier
https://github.com/ruby/json/commit/3e7e661ef5
2025-04-15[ruby/json] Don't create custom NaN and Infinity objects.Jean Boussier
https://github.com/ruby/json/commit/ff8e18392d
2025-04-14[ruby/strscan] Bump versionSutou Kouhei
https://github.com/ruby/strscan/commit/7b1eb1e4ed
2025-04-14[ruby/strscan] Allow parsing strings larger than 2GiBJean byroot Boussier
(https://github.com/ruby/strscan/pull/147) For a reason unknown, even though `pos` is stored as a `long`, the `#pos` and `#pos=` treat it as an `int`, which prevent seeking into strings larger than 2GiB. https://github.com/ruby/strscan/commit/b76368416e Co-authored-by: Jean Boussier <[email protected]>
2025-04-13[ruby/etc] Suppress unused function warningNobuyoshi Nakada
https://github.com/ruby/etc/commit/410c8dd4ae
2025-04-13[ruby/etc] Check members only for defined structsNobuyoshi Nakada
https://github.com/ruby/etc/commit/15c2696794
2025-04-13Fix typos `finised` -> `finished` (#13104)Haruna Tsujita
Notes: Merged-By: ioquatix <[email protected]>
2025-04-09[ruby/json] Cleanup jeaiii-ltoa to not need pragmasJean Boussier
https://github.com/ruby/json/commit/97f2924d0a
2025-04-09[ruby/json] Suppress -Wunknown-pragmas warningsNobuyoshi Nakada
https://github.com/ruby/json/commit/97f47d1cfd
2025-04-03Fix timeline_value not being marked in testJohn Hawthorn
T_DATA with a NULL pointer are not marked. Let's wrap 1 instead to ensure that our mark function is actually run. Notes: Merged: https://github.com/ruby/ruby/pull/13047
2025-04-02Improve backtrace of errors raised by `Socket.tcp_with_fast_fallback`Jean Boussier
[Bug #21211] Socket errors raised from background threads are hard to track down because their backtrace starts from the spawned thread. To solve this we can raise a new error with the old one as `cause`. Notes: Merged: https://github.com/ruby/ruby/pull/13041
2025-03-31stringio-3.1.6 has been releasedHiroshi SHIBATA
2025-03-28[ruby/json] Move `create_addtions` logic in Ruby.Jean Boussier
By leveraging the `on_load` callback we can move all this logic out of the parser. Which mean we no longer have to duplicate that logic in both parser and that we'll later be able to extract it entirely from the gem. https://github.com/ruby/json/commit/f411ddf1ce Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] JSON.load invoke the proc callback directly from the parser.Jean Boussier
And substitute the return value like `Marshal.load` doesm which I can only assume was the intent. This also open the door to re-implement all the `create_addition` logic in `json/common.rb`. https://github.com/ruby/json/commit/73d2137fd3 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Remove more dead codeJean Boussier
https://github.com/ruby/json/commit/eda239ad34 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Remove `Class#json_creatable?` monkey patch.Jean Boussier
https://github.com/ruby/json/commit/1ca7efed1f Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Get rid of JSON::NOT_SETJean Boussier
https://github.com/ruby/json/commit/760d922265 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Remove outdated JSON.iconvJean Boussier
https://github.com/ruby/json/commit/3de8702354 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Cleanup JSON.pretty_generateJean Boussier
https://github.com/ruby/json/commit/01c47a0555 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-28[ruby/json] Deprecate `JSON.fast_generate`Jean Boussier
https://github.com/ruby/json/commit/6508455d82 Notes: Merged: https://github.com/ruby/ruby/pull/13004
2025-03-27[ruby/psych] Format Date in ISO-8601 explicitlyNobuyoshi Nakada
Fix https://github.com/ruby/psych/pull/644 https://github.com/ruby/psych/commit/b1ade765ba