From 45fcb9d590d36c469e7fa18790fafd51809943ee Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 24 Nov 2025 17:30:47 +0900 Subject: [PATCH 1/2] Adjust indent [ci skip] --- process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/process.c b/process.c index 8d6953282aaa41..e2ca6612d2d674 100644 --- a/process.c +++ b/process.c @@ -4012,8 +4012,8 @@ retry_fork_async_signal_safe(struct rb_process_status *status, int *ep, prefork(); disable_child_handler_before_fork(&old); - // Older versions of ASAN does not work with vfork - // See https://github.com/google/sanitizers/issues/925 + // Older versions of ASAN does not work with vfork + // See https://github.com/google/sanitizers/issues/925 #if defined(HAVE_WORKING_VFORK) && !defined(RUBY_ASAN_ENABLED) if (!has_privilege()) pid = vfork(); From aeb7689e696540f3f96bad87efc91ba2b4187c99 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Mon, 19 Aug 2024 15:03:43 -0700 Subject: [PATCH 2/2] [ruby/forwardable] Use generic argument forwarding (...) instead of ruby2_keywords on Ruby 2.7+ On Ruby 3.4+, generic argument forwarding is significantly faster as it does not allocate. https://github.com/ruby/forwardable/commit/b606c3bf0a --- lib/forwardable.rb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/forwardable.rb b/lib/forwardable.rb index 5652e728642906..76267c2cd18c57 100644 --- a/lib/forwardable.rb +++ b/lib/forwardable.rb @@ -192,9 +192,7 @@ def def_instance_delegator(accessor, method, ali = method) # If it's not a class or module, it's an instance mod = Module === self ? self : singleton_class - ret = mod.module_eval(&gen) - mod.__send__(:ruby2_keywords, ali) if RUBY_VERSION >= '2.7' - ret + mod.module_eval(&gen) end alias delegate instance_delegate @@ -211,7 +209,8 @@ def self._delegator_method(obj, accessor, method, ali) accessor = "#{accessor}()" end - method_call = ".__send__(:#{method}, *args, &block)" + args = RUBY_VERSION >= '2.7' ? '...' : '*args, &block' + method_call = ".__send__(:#{method}, #{args})" if _valid_method?(method) loc, = caller_locations(2,1) pre = "_ =" @@ -222,7 +221,7 @@ def self._delegator_method(obj, accessor, method, ali) ::Kernel.warn #{mesg.dump}"\#{_.class}"'##{method}', uplevel: 1 _#{method_call} else - _.#{method}(*args, &block) + _.#{method}(#{args}) end end; end @@ -230,7 +229,7 @@ def self._delegator_method(obj, accessor, method, ali) _compile_method("#{<<-"begin;"}\n#{<<-"end;"}", __FILE__, __LINE__+1) begin; proc do - def #{ali}(*args, &block) + def #{ali}(#{args}) #{pre} begin #{accessor} @@ -312,9 +311,7 @@ def def_single_delegators(accessor, *methods) def def_single_delegator(accessor, method, ali = method) gen = Forwardable._delegator_method(self, accessor, method, ali) - ret = instance_eval(&gen) - singleton_class.__send__(:ruby2_keywords, ali) if RUBY_VERSION >= '2.7' - ret + instance_eval(&gen) end alias delegate single_delegate