[#101179] Spectre Mitigations — Amel <amel.smajic@...>
Hi there!
5 messages
2020/12/01
[#101180] Re: Spectre Mitigations
— Chris Seaton <chris@...>
2020/12/01
I wouldn’t recommend using Ruby to run in-process untrusted code in the first place. Are people doing that?
[#101694] Ruby 3.0.0 Released — "NARUSE, Yui" <naruse@...>
We are pleased to announce the release of Ruby 3.0.0. From 2015 we
4 messages
2020/12/25
[ruby-core:101453] [Ruby master Bug#17388] Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
From:
merch-redmine@...
Date:
2020-12-14 20:45:35 UTC
List:
ruby-core #101453
Issue #17388 has been updated by jeremyevans0 (Jeremy Evans).
File experimental.diff added
zverok (Victor Shepelev) wrote in #note-1:
> In addition:
>
> ```ruby
> warn('foo', category: :deprecated) # works
> warn('foo', category: :experimental)
> # ArgumentError (invalid warning category used: experimental)
> ```
>
> It all comes down to this commit: https://github.com/ruby/ruby/commit/346301e2329c46362a6089311d0a64b8734b35ec
> Stating
> > The only currently defined warning category is `:deprecated`, since that is what is already used. More categories can be added in later commits.
>
> TBH, I am not sure why this method needs to use a [separate hash](https://github.com/ruby/ruby/commit/346301e2329c46362a6089311d0a64b8734b35ec#diff-f2e6c18de8171e389aeff0b8d25b2755253108a59a13baf7167c2ffa0af36a58R2797), instead of supporting all the categories `Warning[]` supports?..
>
> @jeremyevans0, can you please explain?
`Warning.[]` does not use a hash, it uses an if/else construction. So there wasn't an existing hash I could use, I had to create a new hash.
I'm not opposed to supporting an :experimental category. It's not used internally though. There are only three internal callers that respect the `Warning[:experimental] = false`, and none of them call the warning method in that case. When they do call the warning method, they don't use a category. If we are going to add support for an :experimental category, we should probably change the cases that respect `Warning[:experimental] = false` to use the :experimental category when emitting the warning. That's more complex than you probably expect, see the attached patch (no tests yet, and not sure about the ripper support).
Considering the current state of category support in Warning.warn, I would be in favor of removing category support completely in Ruby 3.0 and not adding similar support back until we have a better idea. @nobu mentioned that warnings should probably support multiple tags instead of a single category, and that sounds better to me. I feel that a :category keyword that only supports 1 or 2 categories is of so little practical use that it isn't worth supporting.
----------------------------------------
Bug #17388: Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
https://bugs.ruby-lang.org/issues/17388#change-89224
* Author: jnchito (Junichi Ito)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.0preview2 (2020-12-08 master d7a16670c3) [x86_64-darwin20]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I wrote the following script:
```ruby
module Warning
def self.warn(message, category: nil)
puts "category=#{category}"
super
end
end
lambda(&:foo).lambda?
Ractor.new{}
```
Then, run it:
```
$ ruby -w ~/Desktop/test.rb
category=deprecated
/Users/jnito/Desktop/test.rb:7: warning: lambda without a literal block is deprecated; use the proc without lambda instead
category=
<internal:ractor>:38: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.
```
I got `category=deprecated` as I expected, but got `nil` instead of `:experimental`. I feel it should be `:experimental`.
This issue is related to https://bugs.ruby-lang.org/issues/17122
---Files--------------------------------
experimental.diff (5.2 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>