summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-10[ruby/psych] v5.3.0Hiroshi SHIBATA
https://github.com/ruby/psych/commit/d8053b0d16
2025-12-10Add `NUM2PTR` and `PTR2NUM` macrosNobuyoshi Nakada
These macros have been defined here and there, so collect them.
2025-12-10`_RUBY_DEBUG_LOG` usable anywhereKoichi Sasada
even if `USE_RUBY_DEBUG_LOG=0`. It becomes `fprintf(stderr, ...)`.
2025-12-10Use `ruby_version_is`Nobuyoshi Nakada
As the markers for spec/mspec/tool/remove_old_guards.rb.
2025-12-10Fix typo in thread_pthread.c [ci skip] (#15465)Yuji Teshima
Fix typo in thread_pthread.c: threre -> there
2025-12-09ZJIT: Add dump to file for --zjit-stats (#15414)Aiden Fox Ivey
* ZJIT: Add dump to file for --zjit-stats * ZJIT: Rename --zjit-stats=quiet to --zjit-stats-quiet
2025-12-10Use rb_error_frozen_object in rb_class_modify_checkJeremy Evans
This provides information on the class of the frozen object. It also results in a much simpler implementation. Fixes [Bug #21374]
2025-12-10Use actual class instead of singleton class in frozen error messageJeremy Evans
With the following code: ```ruby object = [] object.singleton_class object.freeze object.instance_variable_set(:@a, 42) ``` The previous error message was: ``` can't modify frozen #<Class:#<Array:0x00000631d1308f78>>: [] ``` With this change, the error message is: ``` can't modify frozen Array: [] ``` Since we show the inspect value of the affected object, I think including the singleton class instead of the actual class if it exists makes the error message harder to understand.
2025-12-10Fix refinement modification of method visibility in superclassJeremy Evans
Previously, this didn't work correctly, resulting in a SystemStackError. This fixes the issue by finding the related superclass method entry, and updating the orig_me in the refinement method to point to the superclass method. Fixes [Bug #21446]
2025-12-10Fix allocationless anonymous splat keyword argument checkJeremy Evans
Previously, if an argument splat and keywords are provided by the caller, it did not check whether the method/proc accepted keywords before avoiding the allocation. This is incorrect, because if the method/proc does not accept keywords, the keywords passed by the caller are added as a positional argument, so there must be an allocation to avoid mutating the positional splat argument. Add a check that if the caller passes keywords, the method/proc must accept keywords in order to optimize. If the caller passes a keyword splat, either the method/proc must accept keywords, or the keyword splat must be empty in order to optimize. If keywords are explicitly disallowed via `**nil`, the optimization should be skipped, because the array is mutated before the ArgumentError exception is raised. In addition to a test for the correct behavior, add an allocation test for a method that accepts an anonymous splat without keywords. Fixes [Bug #21757]
2025-12-09ZJIT: Show send fallback reason in HIR dump (#15454)Randy Stauner
This adds comments to the hir dump output like this: v13:BasicObject = SendWithoutBlock v6, :test, v11 # SendFallbackReason: Complex argument passing
2025-12-09Don't declare `rbimpl_check_typeddata` as pureJean Boussier
[Bug #21771] It may raise so it's incorrect and can lead to the compiler optimizing the call out.
2025-12-09ZJIT: Put keyword bits in callee frame rather than c_argsRandy Stauner
2025-12-09ZJIT: Handle caller_kwarg in direct send when all keyword params are requiredRandy Stauner
2025-12-09ZJIT: Test additional arg passing scenariosRandy Stauner
2025-12-09[ruby/resolv] use domain suffix from 'Domain' instead of 'NV Domain'YO4
'NV Domain' does not change results of `powershell -command Get-DnsClientGlobalSetting`. 'Domain' do this. https://github.com/ruby/resolv/commit/d49e3d5b84
2025-12-09[DOC] Clear one of known issues of Ruby BoxNobuyoshi Nakada
2025-12-09Box: relax the condition of clean upNobuyoshi Nakada
It is impossible to delete DLLs being loaded on Windows. I guess that unnamed (no accessible path on the filesystem) files are not allowed essentially. The only way is to relax the condition, such as no files are left after the process terminated, probably.
2025-12-09Box: add a test case about deleting .so/.dll filesSatoshi Tagomori
2025-12-09Box: remove copied extension filesNobuyoshi Nakada
2025-12-09[DOC] Update Ruby Box documents (known issues)Satoshi Tagomori
2025-12-09ZJIT: Support opt_newarray_send with PACK_BUFFERMax Bernstein
2025-12-09ZJIT: Clean up opt_newarray_sendMax Bernstein
2025-12-09ZJIT: Add codegen for FixnumDiv (#15452)Abrar Habib
Fixes https://github.com/Shopify/ruby/issues/902 This pull request adds code generation for dividing fixnums. Testing confirms the normal case, flooring, and side-exiting on division by zero.
2025-12-09[DOC] Add Ruby::Box on NEWSSatoshi Tagomori
2025-12-09Update default gems list at 0da74e0aa0189b1d2ec9dadf7b580f [ci skip]git
2025-12-09[ruby/rubygems] Bump Rubygems version to 4.0.1Hiroshi SHIBATA
(cherry picked from commit https://github.com/ruby/rubygems/commit/f3e5ebf5afe7) https://github.com/ruby/rubygems/commit/583b0222ad
2025-12-09[ruby/rubygems] Bump Bundler version to 4.0.1Hiroshi SHIBATA
(cherry picked from commit https://github.com/ruby/rubygems/commit/26c1db5a65a8) https://github.com/ruby/rubygems/commit/bbb5b767d0
2025-12-09Remove duplicate path names in error messageNobuyoshi Nakada
2025-12-09Refine `copy_ext_file`Nobuyoshi Nakada
- Define the error constants. - Use system calls to copy files if available. - Simplify fallback copying. - Copy without stdio buffering.
2025-12-09[ruby/net-http] Check whether TCPSocket#initialize supports open_timeout ↵Benoit Daloze
once and without exceptions * See discussion in https://github.com/ruby/net-http/pull/224 * This check is known to work on at least CRuby, TruffleRuby and JRuby. * Exceptions show up with `ruby -d`/`$DEBUG == true` and would show for every Net::HTTP instance. https://github.com/ruby/net-http/commit/8c76f92779
2025-12-09Fixed by `misspell -w -error -source=text`Hiroshi SHIBATA
2025-12-09Fix typos in gc.c and gc.rbhi
2025-12-09[ruby/prism] Nested heredoc with newline terminatorKevin Newton
When you have a heredoc interpolated into another heredoc where the inner heredoc is terminated by a newline, you need to avoid adding the newline character a second time. https://github.com/ruby/prism/commit/8eeb5f358b
2025-12-09[ruby/prism] Fully handle unreferencing a block exitKevin Newton
If a block exit has a further block exit in its subtree, we need to keep recursing. https://github.com/ruby/prism/commit/855d81a4a8
2025-12-09[ruby/prism] Fix up call target node when invalidKevin Newton
When there is an invalid syntax tree, we need to make sure to fill in the required call operator location. https://github.com/ruby/prism/commit/937313d7f0
2025-12-09[ruby/prism] Fix hash pattern location when missing nodesKevin Newton
https://github.com/ruby/prism/commit/0ad30561e2
2025-12-09[ruby/rubygems] Fix Bundler removing executables after creating themEdouard CHIN
When running a fresh `bundle install` with gems that contains executables, Bundler will generate binstubs but soon after will remove them. This is a regression introduced in https://github.com/ruby/rubygems/commit/573ffad3ea4a. This results in doing `bundle install && bundle exec foo` to raise an error saying `foo` couldn't be found. This issue only appears if `BUNDLE_CLEAN` is set. At the end of the installation process, when Bundler has installed gems and generated binstubs, it runs the cleanup. 1. It [detects](https://github.com/ruby/rubygems/blob/4f8aa3b40cded3465bb2cd761e9ce7f8673b7fcb/bundler/lib/bundler/runtime.rb#L182) the executable for the current specs 2. Any existing executables not detected is then removed https://github.com/ruby/rubygems/blob/4f8aa3b40cded3465bb2cd761e9ce7f8673b7fcb/bundler/lib/bundler/runtime.rb#L194. The issue being that 1. now returns an empty array where as it should return the executables of the gems from the current bundle. The problem is in https://github.com/ruby/rubygems/commit/573ffad3ea4a where we removed the `executables` method from the `EndpointSpecification`. When Bundler reads the lockfile, it creates a `EndpointSpecification` object for each spec. At this point, the EndpointSpecification doesn't know about the `executables` of a gem. Once Bundler fetches the `gemspec` from the remote, it swaps the the "spec" with the real one and from here knows what executables the gem has. Reintroduce the `executables` method and the `bindir` in the EndpointSpecification class. From what I'm seeing, the removal of those wasn't needed to resolve the issue where Bundler remembers CLI flags. This is probably an oversight. https://github.com/ruby/rubygems/commit/b47f6b0247
2025-12-09[ruby/rubygems] Fix indentation of the info message for default_cli_commandBenoit Daloze
* It looked like: In a future version of Bundler, running `bundle` without argument will no longer run `bundle install`. Instead, the `cli_help` command will be displayed. Please use `bundle install` explicitly for scripts like CI/CD. You can use the future behavior now with `bundle config set default_cli_command cli_help --global`, or you can continue to use the current behavior with `bundle config set default_cli_command install --global`. This message will be removed after a default_cli_command value is set. Bundler version 4.0.0 (2025-12-08 commit https://github.com/ruby/rubygems/commit/9b4819ae18) * And now looks like: In a future version of Bundler, running `bundle` without argument will no longer run `bundle install`. Instead, the `cli_help` command will be displayed. Please use `bundle install` explicitly for scripts like CI/CD. You can use the future behavior now with `bundle config set default_cli_command cli_help --global`, or you can continue to use the current behavior with `bundle config set default_cli_command install --global`. This message will be removed after a default_cli_command value is set. Bundler version 4.0.0 (2025-12-08 commit https://github.com/ruby/rubygems/commit/9b4819ae18) https://github.com/ruby/rubygems/commit/979dada8f3
2025-12-09[ruby/rubygems] Fix the config suggestion in the warning for `$ bundle`Benoit Daloze
* `install_or_cli_help` does not exist for older Bundler like Bundler 2 and so results in a confusing error on Bundler 2: ``` $ bundle Could not find command "". ``` * See https://github.com/ruby/rubygems/pull/9136/files#r2592366837 * Merge the behavior of `install_or_cli_help` in `install`. https://github.com/ruby/rubygems/commit/9b4819ae18
2025-12-09Remove needless `ruby2_keywords` field from `struct rb_args_info`yui-knk
`ruby2_keywords` is set only to be `0` in parse.y. However `args->ruby2_keywords` is initialized with `0` by `MEMZERO` in `rb_node_args_new` function and `body->param.flags.ruby2_keywords` is initialized with `0` by `ZALLOC` in `rb_iseq_constant_body_alloc` function, so `args->ruby2_keywords` does nothing for `body->param.flags.ruby2_keywords`.
2025-12-09Remove `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` checkyui-knk
Because `FORWARD_ARGS_WITH_RUBY2_KEYWORDS` definition was removed by 4f77d8d3289ece0e3537d9273a5c745120bff59a.
2025-12-08Register internal tracepoints globallyJohn Hawthorn
Internal tracepoints only make sense to run globally, and they already took completely different paths.
2025-12-08Only globally clear the flag being clearedJohn Hawthorn
This solution is not quite correct because it doesn't solve multiple Ractors subscribing to the same event, but this will avoid unrelated events clobbering the flags for other events. This however will work corretly for subscribing to global ObjectSpace GC events.
2025-12-09Test that Ractor.make_shareable mutates the original ProcBenoit Daloze
2025-12-09Fix Ractor test to not depend on the previous testBenoit Daloze
2025-12-09Fix some descriptions in bootstraptest/test_ractor.rbBenoit Daloze
2025-12-09Test that Ractor.shareable_proc keeps the original Proc intactBenoit Daloze
2025-12-08[ruby/rubygems] Extract and generate only bundler bin files instead of full ↵Hiroshi SHIBATA
installation. https://github.com/ruby/rubygems/commit/a70e573973
2025-12-08Fix strict aliasing warning in rb_int128_to_numericPeter Zhu
If we don't have uint128, then rb_int128_to_numeric emits a strict aliasing warning: numeric.c:3641:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3641 | return rb_uint128_to_numeric(*(rb_uint128_t*)&n); | ^~~~~~~~~~~~~~~~~