[ruby-core:118414] [Ruby master Bug#20573] Warning.warn shouldn't be called for disabled warnings
From:
"Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Date:
2024-07-02 11:24:09 UTC
List:
ruby-core #118414
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/