From: "Eregon (Benoit Daloze) via ruby-core" Date: 2024-07-02T11:24:09+00:00 Subject: [ruby-core:118414] [Ruby master Bug#20573] Warning.warn shouldn't be called for disabled warnings Issue #20573 has been updated by Eregon (Benoit Daloze). As a small note on this, it's typically better to check `$VERBOSE` level and if the category is enabled before even generating/formatting the message String, for performance reasons. So if that's always done the check in Warning.warn would be basically redundant. But I agree it makes sense conceptually to check and also in some cases where e.g. the message String is static + frozen and then there is no cost for that message String. ---------------------------------------- Bug #20573: Warning.warn shouldn't be called for disabled warnings https://bugs.ruby-lang.org/issues/20573#change-108930 * Author: tenderlovemaking (Aaron Patterson) * Status: Closed * Backport: 3.1: WONTFIX, 3.2: REQUIRED, 3.3: REQUIRED ---------------------------------------- Currently `Warning.warn` will be called for all warnings, even if that particular category is disabled. For example ```ruby module Warning def warn(message, category:) p message => category end end def get_var $= end p Warning[:deprecated] get_var ``` I think that internally we should _not_ call `Warning.warn` unless the category is enabled. I've sent a PR here: https://github.com/ruby/ruby/pull/10960 -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/