From 131c31a9209c61f84d318aa18b61f468f48b8219 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 26 Oct 2022 19:43:14 +0900 Subject: [Bug #19081] Show the caller location in warning for Ractor The internal location in ractor.rb is not usefull at all. ``` $ ruby -e 'Ractor.new {}' :267: warning: Ractor is experimental, ... ``` --- ractor.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ractor.rb') diff --git a/ractor.rb b/ractor.rb index 8e229d4700..1031fe499b 100644 --- a/ractor.rb +++ b/ractor.rb @@ -262,6 +262,10 @@ class Ractor def self.new(*args, name: nil, &block) b = block # TODO: builtin bug raise ArgumentError, "must be called with a block" unless block + if __builtin_cexpr!("RBOOL(ruby_single_main_ractor)") + warn("Ractor is experimental, and the behavior may change in future versions of Ruby! " \ + "Also there are many implementation issues.", uplevel: 0, category: :experimental) + end loc = caller_locations(1, 1).first loc = "#{loc.path}:#{loc.lineno}" __builtin_ractor_create(loc, name, args, b) -- cgit v1.2.3