summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-18[DOC] Fix double-word typos in commentsv4.0.0-preview3Augustin Gottlieb
Found via `grep` for repeated words. * set.c: Fix "or or" * include/ruby/internal/symbol.h: Fix "is is" * include/ruby/internal/ctype.h: Fix "in in"
2025-12-17JITs: Pass down GNU make jobserver resources when appropriateAlan Wu
To fix warnings from rustc on e.g. Make 4.3, which is in Ubuntu 24.04: > warning: failed to connect to jobserver from environment variable
2025-12-17Adjust Set documentation (#15547)Victor Shepelev
2025-12-17Fix heap dump with ractor barrierLuke Gruber
When a ractor was being initialized and it would join the heap dump barrier when allocating its queue or its ports, the heap dump code calls `rb_obj_memsize` on the ractor and this function assumed `ports` was never NULL. We need to check for the NULL case in case the ractor is still being initialized. Hopefully other T_DATA objects don't suffer from the same issue, otherwise we could revert the ractor barrier during heap dump or not use `rb_obj_memsize` on T_DATA during the heap dump.
2025-12-17[DOC] Small changes to docs for ObjectSpace#each_object (#15564)Luke Gruber
Change example to use user-defined class instead of `Numeric`.
2025-12-17test_sync_default_gems.rb: Omit if git is v2.43 or olderTakashi Kokubun
2025-12-17test_commit_email.rb: Ensure #teardown doesn't failTakashi Kokubun
if test is omitted. Follow up c4e090def134f9b109991b74c027648564963763
2025-12-17Update bundled gems list as of 2025-12-17git
2025-12-18Update bundled bigdecimal and rbs (#15611)tomoya ishida
* Bundle rbs-3.10.0.pre.1 * Update rbs gem entry with commit hash Updated rbs entry to include commit hash. * Fix rbs entry in bundled_gems * Update rbs gem to version 3.10.0.pre.2 Updated rbs gem version from 3.10.0.pre.1 to 3.10.0.pre.2. * Update bundled bigdecimal to v4.0.1 --------- Co-authored-by: Soutaro Matsumoto <matsumoto@soutaro.com>
2025-12-17ObjectSpace.{dump,dump_all,dump_shapes} needs vm barrier. (#15569)Luke Gruber
This allows these methods to be called from ractors. Add new exported function `rb_vm_lock_with_barrier()` that requires users to include "vm_sync.h"
2025-12-17Improve NEWS.md for Socket (#15610)Misaki Shioi
2025-12-17[ruby/error_highlight] Show no message when failing to get caller/callee ↵Yusuke Endoh
snippets Even with Ruby 4.0, snippets is not always available, such as in irb by default. It would be better to just say nothing than to show a confusing message. https://github.com/ruby/error_highlight/commit/ef80ce73a1
2025-12-17Revert the default size of Enumerator::Producer to infinityAkinori Musha
[Bug #21780]
2025-12-17Update NEWS.md for Socket (#15608)Misaki Shioi
2025-12-17CI: Assume all C source files are UTF-8 nowNobuyoshi Nakada
2025-12-17win32: Set the source code charset to UTF-8Nobuyoshi Nakada
2025-12-17Rename to `struct rbimpl_size_overflow_tag`Nobuyoshi Nakada
This struct is used for addition not only for multiplication, so remove the word `mul`, and make the member names more descriptive.
2025-12-17Revert the override of Enumerator#to_set that performed size checksAkinori Musha
[Bug #21780]
2025-12-17Add host information to timeout error messages in `TCPSocket.new` and ↵Misaki Shioi
`Socket.tcp` (#15582) This change adds host information to the error messages shown when a timeout occurs while passing timeout options to `TCPSocket.new` or `Socket.tcp`, for improved usability. (When the `fast_fallback option` is enabled, there may be multiple possible destinations, so the host name is shown instead of an IP address.) As part of this change, the error messages in `Addrinfo.getaddrinfo` and `Addrinfo#connect_internal`, both of which are used by `Socket.tcp`, have also been improved in the same way.
2025-12-17Update NEWS.md for improvements of error backtraceYusuke Endoh
2025-12-17Update default gems list at 26447b3597ab95af7cc220c641a1bd [ci skip]git
2025-12-17[ruby/net-http] v0.9.1Hiroshi SHIBATA
https://github.com/ruby/net-http/commit/8cee86e939
2025-12-17[ruby/net-http] Freeze more constants for Ractor compatibilityKazuki Yamaguchi
Freeze Net::HTTP::SSL_ATTRIBUTES and IDEMPOTENT_METHODS_. Both constants have been marked as :nodoc:. Together with https://github.com/ruby/openssl/issues/521, this enables HTTPS clients in non-main Ractors on Ruby 4.0. https://github.com/ruby/net-http/commit/f24b3b358b
2025-12-17[ruby/net-http] v0.9.0Hiroshi SHIBATA
https://github.com/ruby/net-http/commit/3ccf0c8e6a
2025-12-17Bundle strscan-3.1.6Hiroshi SHIBATA
2025-12-17Bundle stringio-3.2.0Hiroshi SHIBATA
2025-12-17[ruby/timeout] v0.6.0Hiroshi SHIBATA
https://github.com/ruby/timeout/commit/ab79dfff47
2025-12-17[ruby/time] v0.4.2Hiroshi SHIBATA
https://github.com/ruby/time/commit/387292f5d2
2025-12-17[ruby/psych] v5.3.1Hiroshi SHIBATA
https://github.com/ruby/psych/commit/8345af9ffb
2025-12-17`Socket.tcp` and `TCPSocket.new` raises `IO::TiemoutError` with user ↵Misaki Shioi
specified timeout (#15602) * `Socket.tcp` and `TCPSocket.new` raises `IO::TiemoutError` with user specified timeout In https://github.com/ruby/ruby/pull/11880, `rsock_connect()` was changed to raise `IO::TimeoutError` when a user-specified timeout occurs. However, when `TCPSocket.new` attempts to connect to multiple destinations, it does not use `rsock_connect()`, and instead raises `Errno::ETIMEDOUT` on timeout. As a result, the exception class raised on timeout could differ depending on whether there were multiple destinations or not. To align this behavior with the implementation of `rsock_connect()`, this change makes `TCPSocket.new` raise `IO::TimeoutError` when a user-specified timeout occurs. Similarly, `Socket.tcp` is updated to raise `IO::TimeoutError` when a timeout occurs within the method. (Note that the existing behavior of `Addrinfo#connect_internal`, which Socket.tcp depends on internally and which raises `Errno::ETIMEDOUT` on timeout, is not changed.) * [ruby/net-http] Raise `Net::OpenTimeout` when `TCPSocket.open` raises `IO::TimeoutError`. With the changes in https://github.com/ruby/ruby/pull/15602, `TCPSocket.open` now raises `IO::TimeoutError` when a user-specified timeout occurs. This change updates #connect to handle this case accordingly. https://github.com/ruby/net-http/commit/f64109e1cf
2025-12-17Update default gems list at 0e2962f917db1b20a6d34b6105b376 [ci skip]git
2025-12-17[ruby/io-wait] bump up to 0.4.0Nobuyoshi Nakada
https://github.com/ruby/io-wait/commit/ae676c9d6d
2025-12-17refactor: utilize a predefined macroYusuke Endoh
2025-12-17IO::Buffer: Warn as experimental at allocationNobuyoshi Nakada
Previously, warned only in `new` and `map`, but not `for` and `string`.
2025-12-17[Bug #21787] IO::Buffer: Check addition overflowsNobuyoshi Nakada
https://hackerone.com/reports/3437743
2025-12-17IO::Buffer: Guard arguments from GCNobuyoshi Nakada
At least, `string` in `io_buffer_set_string` can be different from `argv[0]` after `rb_str_to_str` call. The other cases may not be necessary.
2025-12-17IO::Buffer: Fill the test for `IO::Buffer#clear`Nobuyoshi Nakada
2025-12-17Update default gems list at 3b66efda523fc33070aee6097898db [ci skip]git
2025-12-17Bundle RubyGems 4.0.2 and Bundler 4.0.2Hiroshi SHIBATA
2025-12-17Disabled gem sync for Ruby 4.0 releaseHiroshi SHIBATA
2025-12-17Fix: Recalculate the timeout duration considering `open_timeout` (#15596)Misaki Shioi
This change updates the behavior so that, when there is only a single destination and `open_timeout` is specified, the remaining `open_timeout` duration is used as the connection timeout.
2025-12-16[DOC] Fix call-seq of Method#boxPeter Zhu
2025-12-16Respect encoding of ID in exception messagesDaisuke Aritomo
2025-12-16Let Ractor::IsolationError report correct constant pathDaisuke Aritomo
Before this patch, Ractor::IsolationError reported an incorrect constant path when constant was found through `rb_const_get_0()`. In this code, Ractor::IsolationError reported illegal access against `M::TOPLEVEL`, where it should be `Object::TOPLEVEL`. ```ruby TOPLEVEL = [1] module M def self.f TOPLEVEL end end Ractor.new { M.f }.value ``` This was because `rb_const_get_0()` built the "path" part referring to the module/class passed to it in the first place. When a constant was found through recursive search upwards, the module/class which the constant was found should be reported. This patch fixes this issue by modifying rb_const_search() to take a VALUE pointer to be filled with the module/class where the constant was found. [Bug #21782]
2025-12-16[DOC] Harmonize rb_div methodsBurdetteLamar
2025-12-16ZJIT: Use rb_zjit_writebarrier_check_immediate() instead of ↵Benoit Daloze
rb_gc_writebarrier() in gen_write_barrier() * To avoid calling rb_gc_writebarrier() with an immediate value in gen_write_barrier(), and avoid the LIR jump issue.
2025-12-16Revert "ZJIT: Do not call rb_gc_writebarrier() with an immediate value in ↵Benoit Daloze
gen_write_barrier()" * This reverts commit 623559faa3dd0927b4034a752226a30ae8821604. * There is an issue with the jump in LIR, see https://github.com/ruby/ruby/pull/15542.
2025-12-16ZJIT: Add a VALUE#write_barrier helper method to deduplicate logicBenoit Daloze
2025-12-16ZJIT: Guard other calls to rb_gc_writebarrier() with a !special_const_p() checkBenoit Daloze
2025-12-16ZJIT: Do not call rb_gc_writebarrier() with an immediate value in ↵Benoit Daloze
gen_write_barrier()