summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2025-10-27[ruby/openssl] Update link to OpenSSL configuration file docsTobias Haar
https://github.com/ruby/openssl/commit/02ff964114
2025-10-27[ruby/stringio] [DOC] Doc for StringIO#eachBurdette Lamar
(https://github.com/ruby/stringio/pull/154) https://github.com/ruby/stringio/commit/eca2588274
2025-10-27[ruby/stringio] [DOC] Tweaks for StringIO#close_writeBurdette Lamar
(https://github.com/ruby/stringio/pull/150) https://github.com/ruby/stringio/commit/ea6e36f797 Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
2025-10-27[ruby/win32-registry] Use pathspecs to select needed files in the gem fileNobuyoshi Nakada
Exclude other git management files too. https://github.com/ruby/win32-registry/commit/3be0188111
2025-10-27[ruby/resolv] win32/resolv: fix loading of `NV Domain`fukunori03
https://github.com/ruby/resolv/commit/da14f1f2fc
2025-10-27[ruby/stringio] [DOC] Tweaks for StringIO#close_readBurdette Lamar
(https://github.com/ruby/stringio/pull/149) https://github.com/ruby/stringio/commit/11995db341
2025-10-27[ruby/stringio] [DOC] Tweaks for StringIO.closed_read?Burdette Lamar
(https://github.com/ruby/stringio/pull/152) https://github.com/ruby/stringio/commit/7ded426718
2025-10-27[ruby/stringio] [DOC] Tweaks for StringIO.closed_write?Burdette Lamar
(https://github.com/ruby/stringio/pull/153) https://github.com/ruby/stringio/commit/3e9d576441 Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
2025-10-26[ruby/stringio] [DOC] Tweaks for StringIO#closed?Burdette Lamar
(https://github.com/ruby/stringio/pull/151) https://github.com/ruby/stringio/commit/94bd4a3d87
2025-10-25[ruby/json] Release 2.15.2Jean Boussier
https://github.com/ruby/json/commit/5e61cd7dce
2025-10-25[ruby/json] Fix concurrent usage of JSON::Coder#dumpJean Boussier
Fix: https://github.com/rails/rails/commit/90616277e3d8fc46c9cf35d6a7470ff1ea0092f7#r168784389 Because the `depth` counter is inside `JSON::State` it can't be used concurrently, and in case of a circular reference the counter may be left at the max value. The depth counter should be moved outside `JSON_Generator_State` and into `struct generate_json_data`, but it's a larger refactor. In the meantime, `JSON::Coder` calls `State#generate_new` so I changed that method so that it first copy the state on the stack. https://github.com/ruby/json/commit/aefa671eca
2025-10-24[ruby/stringio] [DOC] Tweaks for StringIO#closeBurdette Lamar
(https://github.com/ruby/stringio/pull/148) Make examples do more work (instead of text). https://github.com/ruby/stringio/commit/7f4662438f
2025-10-23[ruby/stringio] [DOC] Tweaks for StringIO.newBurdette Lamar
(https://github.com/ruby/stringio/pull/144) https://github.com/ruby/stringio/commit/d33ac815c1
2025-10-23[DOC] Tweaks for StringIO#binmode (#147)Burdette Lamar
2025-10-23[ruby/stringio] [DOC] Tweaks for StringIO.openBurdette Lamar
(https://github.com/ruby/stringio/pull/146) https://github.com/ruby/stringio/commit/141c6c0edf
2025-10-23[DOC] Tweaks for TCPSocket.newniku
2025-10-18[ruby/zlib] Initialize const memberNobuyoshi Nakada
``` /github/workspace/src/ext/zlib/zlib.c:2608:25: warning: default initialization of an object of type 'struct read_raw_arg' with const member leaves the object uninitialized [-Wdefault-const-init-field-unsafe] 2608 | struct read_raw_arg ra; | ^ /github/workspace/src/ext/zlib/zlib.c:2450:14: note: member 'argv' declared 'const' here 2450 | const VALUE argv[2]; /* for rb_funcallv */ | ^ ``` https://github.com/ruby/zlib/commit/dfa1fcbd37
2025-10-13[ruby/erb] html_escape: refactor redundant ifSharon Rosner
(https://github.com/ruby/erb/pull/88) https://github.com/ruby/erb/commit/c231ced3f4
2025-10-12[ruby/erb] Fix integer overflowNobuyoshi Nakada
Fix https://github.com/ruby/erb/pull/87 https://github.com/ruby/erb/commit/75764f022b
2025-10-11[ruby/erb] html_escape: Avoid buffer allocation for strings with noSharon Rosner
escapable character (https://github.com/ruby/erb/pull/87) This change improves reduces allocations and makes `html_escape` ~35% faster in a benchmark with escaped strings taken from the `test_html_escape` test in `test/test_erb.rb`. - Perform buffer allocation on first instance of escapable character. - Instead of copying characters one at a time, copy unescaped segments using `memcpy`. https://github.com/ruby/erb/commit/aa482890fe
2025-10-09Add Test::Sanitizers.lsan_enabled?Peter Zhu
2025-10-09Rename Test::Sanitizers.enabled? to Test::Sanitizers.asan_enabled?Peter Zhu
2025-10-09Rename ext/-test-/asan to ext/-test-/sanitizersPeter Zhu
2025-10-08[ruby/openssl] ssl: allow SSLContext#set_params to be used from non-main RactorsKazuki Yamaguchi
Freeze OpenSSL::SSL::SSLContext::DEFAULT_PARAMS so that it becomes Ractor-shareable. Also, prepare a new OpenSSL::X509::Store in Ractor-local storage, if called from a non-main Ractor. OpenSSL::X509::Store currently is not a shareable object. https://github.com/ruby/openssl/commit/3d5271327c
2025-10-08[ruby/openssl] ssl: refactor tmp_dh_callback handlingKazuki Yamaguchi
tmp_dh_callback no longer has a default value. It also no longer has to share code with tmp_ecdh_callback, which has been removed in v3.0.0. https://github.com/ruby/openssl/commit/b7cde6df2a
2025-10-08[ruby/openssl] ssl: use SSL_CTX_set_dh_auto() by defaultKazuki Yamaguchi
Rely on OpenSSL's builtin DH parameters for TLS 1.2 and earlier instead of providing a default SSLContext#tmp_dh_callback proc. SSL_CTX_set_dh_auto() has been available since OpenSSL 1.1.0. The parameters can still be overridden by specifying SSLContext#tmp_dh_callback or #tmp_dh, as confirmed by existing tests. SSLContext#tmp_dh_callback depends on a deprecated OpenSSL feature. We also prefer not to hard-code parameters, which is a maintenance burden. This change also improves Ractor compatibility by removing the unshareable proc. https://github.com/ruby/openssl/commit/9cfec9bf5e
2025-10-08[ruby/openssl] ssl: fix extconf.rb check for SSL_CTX_set0_tmp_dh_pkey()Kazuki Yamaguchi
Check for the function we actually use. Both SSL_set0_tmp_dh_pkey() and SSL_CTX_set0_tmp_dh_pkey() were added in OpenSSL 3.0. https://github.com/ruby/openssl/commit/a9b6a64e5f
2025-10-08[Bug #21629] Initialize `struct RString`Nobuyoshi Nakada
2025-10-07[ruby/json] Release 2.15.1Jean Boussier
https://github.com/ruby/json/commit/9e6067bb55
2025-10-06[ruby/openssl] Bump version number to 4.0.0.preKazuki Yamaguchi
https://github.com/ruby/openssl/commit/64f4aae6bd
2025-10-06[ruby/openssl] Ruby/OpenSSL 3.3.1Kazuki Yamaguchi
https://github.com/ruby/openssl/commit/2b88a6d444
2025-10-06[ruby/openssl] ssl: remove OpenSSL::X509::V_FLAG_CRL_CHECK_ALL from the ↵Kazuki Yamaguchi
default store With OpenSSL 3.6.0, it causes nearly every certificate verification to fail with the message "certificate verify failed (unable to get certificate CRL)" because the CRLs are typically unavailable in the default store used by OpenSSL::SSL::SSLContext#set_params. OpenSSL::X509::V_FLAG_CRL_CHECK_ALL is a flag that extends the CRL checking to all certificates in the chain. In OpenSSL < 3.6.0, the flag alone has no effect, and OpenSSL::X509::V_FLAG_CRL_CHECK must also be set to enable CRL checking. In OpenSSL 3.6.0, OpenSSL::X509::V_FLAG_CRL_CHECK_ALL now implies OpenSSL::X509::V_FLAG_CRL_CHECK. This is inconsistent with the man page and may be fixed in a future OpenSSL 3.6.x release, but this flag is not needed and should not be set by default. Fixes https://github.com/ruby/openssl/issues/949 https://github.com/ruby/openssl/commit/e8481cd687
2025-10-06[ruby/date] `Date._parse` does not accept `nil`Nobuyoshi Nakada
https://github.com/ruby/date/commit/545066ca28
2025-10-06[ruby/date] Do not repeat conversions to stringNobuyoshi Nakada
https://github.com/ruby/date/commit/159e1ebb7f https://github.com/ruby/date/commit/4f7b6c9b42
2025-10-02[ruby/json] Release 2.15.0Jean Boussier
https://github.com/ruby/json/commit/4abfad090d
2025-09-30[ruby/openssl] pkey: disallow {DH,DSA,EC,RSA}.new without arguments with ↵Kazuki Yamaguchi
OpenSSL 3.0 Raise ArgumentError if this is attempted when the extension is compiled with OpenSSL 3.0 or later. The form will be fully removed when we drop support for OpenSSL 1.1.1. When OpenSSL::PKey::{DH,DSA,EC,RSA}.new is called without any arguments, it sets up an empty corresponding low-level struct and wraps it in an EVP_PKEY. This is useful when the user later fills the missing fields using low-level setter methods such as OpenSSL::PKey::RSA#set_key. Such setter methods are not compatible with OpenSSL 3.0 or later, where EVP_PKEY is immutable once created. This means that the ability to create an empty instance is useless. https://github.com/ruby/openssl/commit/affd569f78
2025-09-30[ruby/openssl] pkey: define and use OSSL_HAVE_IMMUTABLE_PKEY macroKazuki Yamaguchi
Introduce a useful macro indicating that the low-level struct wrapped in an EVP_PKEY cannot be modified. Currently, the macro is defined for OpenSSL 3.0 or later only. LibreSSL and AWS-LC can follow suit in the future. https://github.com/ruby/openssl/commit/032ed63096
2025-09-24[ruby/psych] Remove warning by not calling find_library after pkg_configÉtienne Barrié
If pkg_config returns a truthy value, it found the library and added it to the global values for the Makefile. Calling `find_library` after a successful `pkg_config` causes -lyaml to appear twice in the LIBS variable in the resulting Makefile, and causes ld on macOS to emit a warning: $ bundle exec rake compile 2>&1 | grep warning ld: warning: ignoring duplicate libraries: '-lyaml' https://github.com/ruby/psych/commit/cb5e3d465c
2025-09-19`JSON::Coder` callback now recieve a second argument to mark object keysJean Boussier
e.g. ```ruby { 1 => 2 } ``` The callback will be invoked for `1` as while it has a native JSON equivalent, it's not legal as an object name.
2025-09-19[ruby/json] Avoid scientific notation before exponent 15Jean Boussier
Fix: https://github.com/ruby/json/issues/861 It's not incorrect to use scientific notation, but it tend to throw people off a bit, so it's best to keep it for very large numbers. https://github.com/ruby/json/commit/1566cd01a6
2025-09-19[ruby/json] Release 2.14.1Jean Boussier
https://github.com/ruby/json/commit/51ce76ea66
2025-09-19[ruby/json] Release 2.14.0Jean Boussier
https://github.com/ruby/json/commit/55552cafe2
2025-09-19[ruby/json] parser: Reject invalid surogate pairs more consistently.Jean Boussier
https://github.com/ruby/json/commit/5855f4f603
2025-09-17[ruby/openssl] Add AuthTagError exception for AEAD authenticationSamuel Williams
failures (https://github.com/ruby/openssl/pull/939) * Add AuthTagError exception for AEAD authentication failures - Add OpenSSL::Cipher::AuthTagError as a subclass of CipherError - Raise AuthTagError specifically for AEAD cipher authentication tag verification failures - Enhanced error messages: 'AEAD authentication tag verification failed' for auth failures - Precise detection: Only EVP_CipherFinal_ex failures in AEAD ciphers raise AuthTagError - All other errors (key setup, IV setup, update failures, etc.) still raise CipherError - Comprehensive test coverage for GCM/CCM modes and error inheritance - Fully backwards compatible: AuthTagError < CipherError https://github.com/ruby/openssl/commit/9663b09040
2025-09-17[ruby/openssl] Revert "pkey: stop retrying after non-retryable error from ↵Kazuki Yamaguchi
OSSL_DECODER" This reverts commit https://github.com/ruby/openssl/commit/5347880c6eb0 and https://github.com/ruby/openssl/commit/985ba27d6339. These commits attempted to stop processing after the first relevant PEM block, whether it is successful or not, when the input contains multiple keys. It turned out that it cannot be reliably determined using the OSSL_DECODER API. There is an edge case where OSSL_DECODER_from_bio() reports "unsupported" even though the input actually contains an error: https://redirect.github.com/ruby/openssl/pull/931#discussion_r2347813807 Revert the changes for now and keep the existing behavior, as partial support does not seem worth the added complexity. https://github.com/ruby/openssl/commit/319cd4952a
2025-09-15[ruby/date] Suppress maybe-uninitialized warning by gcc-13Nobuyoshi Nakada
https://github.com/ruby/date/commit/afaa4a997b
2025-09-15Set `$extmk` in extmk.rbNobuyoshi Nakada
Get rid of `File.identical?` on a WebDAV-mounted drive.
2025-09-13Remove an unused expressionNobuyoshi Nakada
2025-09-13Get rid of `strcpy`Nobuyoshi Nakada
On OpenBSD: ``` ld: warning: namespace.c:731(namespace.o:(rb_namespace_local_extension)): warning: strcpy() is almost always misused, please use strlcpy() ```
2025-09-12[ruby/openssl] pkey: fix loading public keys with early OpenSSL 3.0.x releasesKazuki Yamaguchi
Treat an empty error queue after calling OSSL_DECODER_from_bio() as a retryable error. This is a follow-up to the previous commit https://github.com/ruby/openssl/commit/985ba27d6339 (pkey: stop retrying after non-retryable error from OSSL_DECODER). The commit broke loading public keys on Ubuntu 22.04 LTS, which ships OpenSSL 3.0.2. https://github.com/ruby/openssl/commit/5347880c6e