| Age | Commit message (Collapse) | Author |
|
The dir_config was introduced by Ruby trunk r4181. Since support for
Kerberos cipher suites has been removed in OpenSSL 1.1.0, it is no
longer necessary.
Although ruby/openssl did not directly depend on the MIT Kerberos
library, it was an optional transitive dependency. Unless it was
disabled by a compile-time option, the OpenSSL headers would try to
include <krb5.h>.
https://github.com/ruby/openssl/commit/78d028c332
|
|
Drop support for OpenSSL 1.0.2. It has reached upstream EOL in 2019-12.
Most distributions that shipped with OpenSSL 1.0.2 have also reached
EOL, or provide a newer version in the package repository:
- RHEL 7 (EOL 2024-06)
- Ubuntu 16.04 LTS (EOL 2021-04)
- Amazon Linux 2 (EOL 2026-06, but OpenSSL 1.1.1 can be installed via
the openssl11{,-devel} package)
https://github.com/ruby/openssl/commit/38ec6fd50e
|
|
PKCS7_encrypt() and PKCS7_SIGNER_INFO_set() take const EVP_CIPHER and
EVP_MD at least since OpenSSL 0.9.7.
https://github.com/ruby/openssl/commit/9db621a5c0
|
|
These macros do not exist in OpenSSL 0.9.7 or later, which was released
in 2002.
https://github.com/ruby/openssl/commit/938a1e6aab
|
|
https://github.com/ruby/json/commit/b9bfeecfa9
Notes:
Merged: https://github.com/ruby/ruby/pull/12602
|
|
https://github.com/ruby/json/commit/2f57f40467
Notes:
Merged: https://github.com/ruby/ruby/pull/12602
|
|
https://github.com/ruby/json/commit/86c0d4eb7e
Notes:
Merged: https://github.com/ruby/ruby/pull/12602
|
|
https://github.com/ruby/json/commit/f8817fe56c
Notes:
Merged: https://github.com/ruby/ruby/pull/12602
|
|
https://github.com/ruby/json/commit/9e3500f345
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/12602
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12599
|
|
Ref: https://github.com/ruby/ruby/pull/12598
This could lead to an infinite loop.
https://github.com/ruby/json/commit/f8cfa2696a
Notes:
Merged: https://github.com/ruby/ruby/pull/12600
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
https://github.com/ruby/json/commit/5e6cfcf724
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
Move all the decimal_class option parsing in the constructor.
https://github.com/ruby/json/commit/e9adefdc38
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
Doesn't make a measurable performance difference but is a
bit clearer.
https://github.com/ruby/json/commit/314d117c61
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
https://github.com/ruby/json/commit/dd9c46c805
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
We only use that buffer for parsing integer and floats, these
are unlikely to be very big, and if so we can just use RB_ALLOCV as it will
almost always end in a small `alloca`.
This allow to no longer need `rb_protect` around the parser.
https://github.com/ruby/json/commit/994859916a
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
https://github.com/ruby/json/commit/591056a526
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
And get rid of the Ragel parser.
This is 7% faster on activitypub, 15% after on twitter and 11% faster
on citm_catalog.
There might be some more optimization opportunities, I did a quick
optimization pass to fix a regression in string parsing, but other
than that I haven't dug much in performance.
Notes:
Merged: https://github.com/ruby/ruby/pull/12598
|
|
https://github.com/ruby/psych/commit/2af9f6ac02
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12583
|
|
Fixes ruby/psych#689
https://github.com/ruby/psych/commit/ac887cdc76
|
|
https://github.com/ruby/psych/commit/2f46abf4e1
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12578
|
|
These paths are only reachable when it is compiled against OpenSSL.
LibreSSL 3.9 does not support ENGINE and defines OPENSSL_NO_ENGINE.
https://github.com/ruby/openssl/commit/e153d6ab47
|
|
LibreSSL
LibreSSL 2.7.0 added support for OPENSSL_init_ssl() and
OpenSSL_version().
https://github.com/ruby/openssl/commit/1328415097
|
|
Drop support for LibreSSL 3.1-3.8. LibreSSL 3.8 has reached its EOL in
2024-10.
https://github.com/ruby/openssl/commit/f33d611f9f
|
|
https://github.com/ruby/openssl/commit/28f2901c48
|
|
[Bug #20972]
The `rb_str_new_freeze` was added in https://github.com/ruby/openssl/issues/452
to better handle concurrent use of a Socket, but SSL sockets can't be used
concurrently AFAIK, so we might as well just error cleanly.
By using `rb_str_locktmp` we can ensure attempts at concurrent write
will raise an error, be we avoid causing a copy of the bytes.
We also use the newer `String#append_as_bytes` method when available
to save on some more copies.
https://github.com/ruby/openssl/commit/0d8c17aa85
Co-Authored-By: luke.gru@gmail.com
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12556
|
|
Ref: https://github.com/ruby/json/pull/728
Ref: https://github.com/ruby/ruby/pull/12569
https://github.com/ruby/json/commit/30a4a86954
|
|
Ref: https://github.com/ruby/json/pull/718
The existing `Parser` interface is pretty bad, as it forces to
instantiate a new instance for each document.
Instead it's preferable to only take the config and do all the
initialization needed, and then keep the parsing state on the
stack on in ephemeral memory.
This refactor makes the `JSON::Coder` pull request much easier to
implement in a performant way.
https://github.com/ruby/json/commit/c8d5236a92
Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>
|
|
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/12568
|
|
parsing
(https://github.com/ruby/fiddle/pull/169)
GitHub: fix https://github.com/ruby/fiddle/pull/168
Struct parsing invokes "parse_ctype" on the whole member signature,
which fails if member type is "bool" due to plain string matching for
it. This change updates "bool" type matching to a regexp, so TYPE_BOOL
is correctly parsed for a whole signature like "bool toggle" as well as
just "bool".
---------
https://github.com/ruby/fiddle/commit/71607446d4
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/12568
|
|
```
date_strptime.c:253:324: warning: misleading indentation;
statement is not part of the previous 'if' [-Wmisleading-indentation]
253 | ...((VALUE)RUBY_Qtrue)); return 0; } while (0); si += l; } while (0);
| ^
date_strptime.c:252:7: note: previous statement is here
252 | else
| ^
```
https://github.com/ruby/date/commit/41aed5b746
|
|
|
|
Both of them are debug option.
Let's use `YFLAGS` for parse.y build if needed.
Notes:
Merged: https://github.com/ruby/ruby/pull/12555
|
|
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
```
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12488
|
|
Signed-off-by: Raul Gutierrez Segales <rgs@itevenworks.net>
Notes:
Merged: https://github.com/ruby/ruby/pull/12506
|
|
rubygems.org/gems/stringio
(https://github.com/ruby/stringio/pull/111)
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/stringio
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details of this functionality can be found on
https://guides.rubygems.org/specification-reference/#metadata
---------
https://github.com/ruby/stringio/commit/8c084bfcdb
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
|
|
`cmd.exe` built-in `cd` does not recognize slashes as path separators,
replace to backslashes.
Notes:
Merged: https://github.com/ruby/ruby/pull/12481
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12481
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12469
|
|
https://github.com/ruby/date/commit/904d4b9607
Notes:
Merged: https://github.com/ruby/ruby/pull/12469
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12467
|
|
`:nodoc:` seems not working for inner classes.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12460
|
|
write(2) failure (#12457)
Rarely, there are cases where a write(2) call from a child thread
to notify the main thread of the completion of name resolution fails.
If this happens while the main thread is waiting in `rb_thread_fd_select`,
rb_thread_fd_select may not notice that the name resolution has completed and end up hanging.
This issue becomes a problem when there are no sockets currently being connected,
no addresses ready for immediate connection attempts,
and name resolution has already completed for one address family
while the main thread is waiting for the name resolution of the other address family.
(If name resolution is not completed for either address family,
the chances of write(2) failing in both child threads are likely low.)
To avoid this issue, a timeout is introduced to rb_thread_fd_select under the above conditions.
This way, even if the issue occurs,
the completion of name resolution should still be detected
in the subsequent `if (!resolution_store.is_all_finished) ...` block.
Notes:
Merged-By: shioimm <shioi.mm@gmail.com>
|
|
Also, a topic about Socket::ResolutionError is added to NEWS
Notes:
Merged-By: shioimm <shioi.mm@gmail.com>
|