Project

General

Profile

Activity

From 12/12/2020 to 12/18/2020

12/18/2020

11:32 PM Bug #17408 (Closed): Fiber.backtrace returns [] when unavailable, unlike Thread
```ruby
t = Thread.new{}
p t.backtrace
# => nil
f = Fiber.new{}
p f.backtrace
# => []
```
It seems inconsistent, is this intentional?
Ping @ioquatix
zverok (Victor Shepelev)
11:08 PM Feature #17407 (Closed): Fiber.current and require 'fiber'
Maybe it is not the right time to ask, but why one need to do `require 'fiber'` before using `Fiber.current`?
For what I can see,
* it is this way since [their introduction](https://docs.ruby-lang.org/en/2.0.0/Fiber.html#method-c-cu...
zverok (Victor Shepelev)
09:49 PM Feature #17378: Ractor#receive with filtering like other actor langauge
ko1 (Koichi Sasada) wrote in #note-8:
> I have several concern about `Ractor#receive` proposed at #note-6.
> ...
I agree that is an issue. It would be much better if we had `NoMatchingPatternError#depth` #17406. We could intercept only...
marcandre (Marc-Andre Lafortune)
07:48 PM Feature #17378: Ractor#receive with filtering like other actor langauge
I have several concern about `Ractor#receive` proposed at #note-6.
* `NoMatchingPatternError` can be raised in tasks unexpectedly (maybe by bug) and it can cause something strange behavior (like falsy on `receive_if`).
* 2nd paramete...
ko1 (Koichi Sasada)
09:45 PM Feature #17406 (Open): Add `NoMatchingPatternError#depth`
Could we have `NoMatchingPatternError#depth`, returning the number of `case...in...end` an exception has traversed?
```ruby
def show_depth
yield
rescue NoMatchingPatternError => e
puts "Depth: #{e.depth}"
raise
end
show...
marcandre (Marc-Andre Lafortune)
09:17 PM Feature #17404: Ractor `move:` API to allow shareability check
Oh, sorry, I didn't see the `_ref` part. So you are proposing a different method. In my mind, they are all ways of sending a message, it's just a question of method to cross the Ractor frontier. move/copy/has-cross-border-visa 😅
Otherwi...
marcandre (Marc-Andre Lafortune)
09:10 PM Feature #17404: Ractor `move:` API to allow shareability check
marcandre (Marc-Andre Lafortune) wrote in #note-2:
> ko1 (Koichi Sasada) wrote in #note-1:
> ...
not sure what you mean. I mean:
```ruby
def send_ref(obj)
raise unless Ractor.shareable?(obj)
send(obj)
end
```
> We have t...
ko1 (Koichi Sasada)
06:40 AM Feature #17404: Ractor `move:` API to allow shareability check
ko1 (Koichi Sasada) wrote in #note-1:
> `#send_ref(message)` and raise an error if message is not a sharable?
There would be an easy way to deep-copy or deep-move an object, right? If you mean that the default should be `pass: :share`, ...
marcandre (Marc-Andre Lafortune)
05:18 AM Feature #17404: Ractor `move:` API to allow shareability check
`#send_ref(message)` and raise an error if message is not a sharable?
ko1 (Koichi Sasada)
09:11 PM Feature #17393: `Ractor::Moved#inspect`
Yes, that looks good, that is what I was proposing in note 1 too 👍 marcandre (Marc-Andre Lafortune)
09:03 PM Feature #17393: `Ractor::Moved#inspect`
I don't think providing `#inspect` is good idea because any methods should respond to the moved object.
Otherwise there is possibility to ignore the accessing moved objects.
I prefer to show the moved location in the error message.
...
ko1 (Koichi Sasada)
09:10 PM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
Great, thank you for the update.
One last concern with `experimental_everything`/`experimental_shareable` is for Ruby 3.1... If no longer experimental, we then accept `everything`. But if someone want to write code also compatible wit...
marcandre (Marc-Andre Lafortune)
08:37 PM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
By seeing the list, about `experimental_everything`, `experimental_shareable` seems better naming... ko1 (Koichi Sasada)
08:35 PM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
By discussion with Matz and Nobu, we choose "(2) raises an error for unshareable non-literals on runtime (my proposal)".
* on compile time: for `FOO = expr`
* case `FOO = literal_only`
* compile to => `FOO = Ruby...
ko1 (Koichi Sasada)
03:45 AM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
marcandre (Marc-Andre Lafortune) wrote:
> I think `shareable_constant_value: literal` is too strict because it has too crude checks at parse time.
This is true. Current restriction is very conservative not to break things (See #1727...
shyouhei (Shyouhei Urabe)
08:59 PM Feature #17401 (Closed): The class `Ractor::MovedObject` should not be frozen
Applied in changeset commit:git|76e88480371469400346fca609efe67096813915.
----------
unfreeze Ractor::MovedObject
Matz prefers to unfreeze the class.
[Feature #17401]
ko1 (Koichi Sasada)
08:56 PM Feature #17401: The class `Ractor::MovedObject` should not be frozen
Matz prefers to provide a free to shoot the foot.
ko1 (Koichi Sasada)
08:57 PM Revision 76e88480 (git): unfreeze Ractor::MovedObject
Matz prefers to unfreeze the class.
[Feature #17401]
ko1 (Koichi Sasada)
08:52 PM Revision 80cb9165 (git): add "copy: true" option for Ractor.make_shareable
Ractor.make_shareable(obj) tries to make obj a shareable object
by changing the attribute of obj and traversable objects from obj
(mainly freeze them).
"copy: true" option is more conservative approach by make deep
copied object and mak...
ko1 (Koichi Sasada)
08:25 PM Bug #17366 (Closed): Ractor odd issue with timeout + receive + sleep + take
commit:c2fa024e0220aca6e2437e56df2abf1a2368cbdf ko1 (Koichi Sasada)
08:25 PM Feature #17365 (Closed): Can not respond (well) to a Ractor
https://bugs.ruby-lang.org/issues/17378 ko1 (Koichi Sasada)
07:33 PM Misc #17399: Are endless methods experimental?
I think the warning would be helpful if we change what is allowed after `=`, especially if we would forbid something that was previously allowed (e.g., to make the rule clearer).
If there is no warning, people will assume it's a stable ...
Eregon (Benoit Daloze)
06:35 AM Misc #17399: Are endless methods experimental?
Additional note:
* I am not going to remove endless-def
* I don't think the warning is necessary. Since we are not going to remove it.
Matz.
matz (Yukihiro Matsumoto)
12:57 AM Misc #17399: Are endless methods experimental?
I agree with @eregon. We still need more investigation for issues like #17398
Matz.
matz (Yukihiro Matsumoto)
07:33 PM Bug #17386 (Closed): Refinements break prepend
Applied in changeset commit:git|cee02d754d76563635c1db90d2ab6c01f8492470.
----------
fix refinements/prepend bug
replaced method entry should be invalidated.
[Bug #17386]
ko1 (Koichi Sasada)
07:33 PM Revision cee02d75 (git): fix refinements/prepend bug
replaced method entry should be invalidated.
[Bug #17386]
ko1 (Koichi Sasada)
07:33 PM Revision 04d62e6f (git): fix method cache debug tool
ko1 (Koichi Sasada)
06:40 PM Feature #17307: A way to mark C extensions as thread-safe, Ractor-safe, or unsafe
I've missed this was committed (https://github.com/ruby/ruby/pull/3824), the API seems fine.
Example usage:
```c
#ifdef HAVE_RB_EXT_RACTOR_SAFE
rb_ext_ractor_safe(true);
#endif
```
https://github.com/ruby/ruby/commit/3d31944129180
I ...
Eregon (Benoit Daloze)
06:25 PM Revision 0e79d4cd (git): Added tests for [Feature #17314]
Partially reintroduce 34f06062174882a98ebef998c50ad8d4f7fc0f2e mame (Yusuke Endoh)
06:20 PM Revision aa7a0207 (git): Revert "Revert "Use rb_id_attrset without intermediate strings""
This reverts commit 41c208d4a463183fddca250026e5f1cd759d2604.
Reintroduce 66090b9d10cdaed917b525225e59d1c19e399248.
mame (Yusuke Endoh)
06:16 PM Revision 346bf0f5 (git): spec/ruby/core/module/attr_*: Add version guards
mame (Yusuke Endoh)
06:11 PM Revision 5944c4b3 (git): attr_reader, attr_writer, attr_accessor and attr methods returns array of symbols (#3935)
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org> radarek (Radosław Bułat)
06:06 PM Revision f6641d73 (git): NEWS: Add an entry of StringScanner 3.0.0 [ci skip]
Kenta Murata
06:05 PM Revision b3b7f1e5 (git): NEWS: Add an entry of StringIO 3.0.0 [ci skip]
Kenta Murata
06:02 PM Revision f213a271 (git): NEWS: fiddle 1.0.4 [ci skip]
Kenta Murata
05:59 PM Bug #17405 (Closed): irb ---nomultiline gets exception when output contains some non-ascii characters
When irb is called with the --nomultiline option (for example, when called from emacs), then if the output contains some special characters (such as the square root sign, or a single quotation mark), then irb gets an exception.
Withou...
rsharman (Richard Sharman)
05:54 PM Revision 7e2dbbda (git): Use category: :experimental in warnings that are related to experimental features
This adds rb_category_compile_warn in order to emit compiler warnings
with categories. Note that Ripper currently ignores the category
for these warnings, but by default it ignores the warnings completely,
so this shouldn't matter.
jeremyevans (Jeremy Evans)
05:54 PM Revision 05313c91 (git): Use category: :deprecated in warnings that are related to deprecation
Also document that both :deprecated and :experimental are supported
:category option values.
The locations where warnings were marked as deprecation warnings
was previously reviewed by shyouhei.
Comment a couple locations where depreca...
jeremyevans (Jeremy Evans)
05:54 PM Revision 6ced55b0 (git): Make warning_categories a map of category symbols to category numbers
Use this to simplify rb_warning_category_from_name.
This also adds support for using the :experimental category in
Kernel#warn and Warning.warn.
jeremyevans (Jeremy Evans)
05:54 PM Revision 52fb696e (git): Switch rb_category_warn{,ing} to accept an rb_warning_category_t
Since we decided to only allowing specific warning categories,
there is no reason to have an API that accepts a general string,
as it is more error-prone. Switch to only allowing the specific
warning categories.
As rb_category_warn{,in...
jeremyevans (Jeremy Evans)
05:44 PM Revision 7b06085c (git): [bigdecimal] Fix test for d5ab8e8562
Kenta Murata
05:29 PM Revision d5ab8e85 (git): [bigdecimal] Use rb_undef_alloc_func to undefine allocate
Kenta Murata
05:12 PM Revision c2a5594e (git): [ruby/reline] Use cached prompt list when just moved the cursor
https://github.com/ruby/reline/commit/cfe619460b aycabta (aycabta .)
05:12 PM Revision d4257c61 (git): [ruby/reline] Yank by em-kill-region correctly
This closes ruby/reline#106.
https://github.com/ruby/reline/commit/2549a52e15
aycabta (aycabta .)
05:12 PM Revision af2c81e1 (git): [ruby/reline] Bind yank-pop correctly
https://github.com/ruby/reline/commit/3c74beac65 aycabta (aycabta .)
05:12 PM Revision 671f2762 (git): [ruby/reline] Add Enumerable to KillRing for debugging
https://github.com/ruby/reline/commit/d208874152 aycabta (aycabta .)
05:12 PM Revision dc61affd (git): [ruby/reline] [ruby/irb] Call ripper only once when generating dynamic prompt
https://github.com/ruby/irb/commit/babb122a48
https://github.com/ruby/reline/commit/e6dbcb3b42
aycabta (aycabta .)
05:05 PM Bug #17345: ripper: nothing raised when assigning to keyword variables
> Now, the '#tok' on some error events are `Elem` instead of string.
pull request: https://github.com/ruby/ruby/pull/3936
no6v (Nobuhiro IMAI)
05:05 PM Revision e76b56f5 (git): support Ruby 2.x for openssl
ko1 (Koichi Sasada)
03:53 PM Revision ad76c8fb (git): Update TypeProf to 0.10.0
mame (Yusuke Endoh)
03:34 PM Revision 19a98a87 (git): Fixed not to make non-literal expression shareable [Feature #17273]
Non-literal expression which is not a part of a literal expression
is not a subject of `shareable_literal_value: literal`.
nobu (Nobuyoshi Nakada)
03:04 PM Revision 6945597f (git): * 2020-12-19 [ci skip]
git[bot]
03:04 PM Revision ed5c09f3 (git): Remove unused variable
radarek (Radosław Bułat)
02:37 PM Feature #17339 (Assigned): Semantic grouping with BigDecimal#to_s
mrkn (Kenta Murata)
02:31 PM Bug #9246 (Closed): NoMemoryError is occurred by simple addition of BigDecimal
This no longer occurs with the latest version of bigdecimal. mrkn (Kenta Murata)
01:00 PM Revision c71934f8 (git): [stringio] Version 3.0.0
https://github.com/ruby/stringio/commit/831be01071 Kenta Murata
01:00 PM Revision e1b5289a (git): [stringio] Add test-unit in the development dependencies
https://github.com/ruby/stringio/commit/de010fc0e9 Kenta Murata
01:00 PM Revision 3d319441 (git): [stringio] Make stringio Ractor safe
https://github.com/ruby/stringio/commit/ee3fec7512
https://github.com/ruby/stringio/commit/18dcd045ef
https://github.com/ruby/stringio/commit/18dcd045ef
Kenta Murata
12:58 PM Revision 14ca7f63 (git): [openssl] Fix dependencies
Kenta Murata
10:17 AM Bug #17402 (Closed): Remove deprecated GC-related features
nobu (Nobuyoshi Nakada)
09:19 AM Revision b5588edc (git): openssl is ractor-safe
ossl_bn_ctx is C's global variable and it should be ractor-local
to make it ractor-safe.
ko1 (Koichi Sasada)
08:59 AM Revision 74ab2c3b (git): finalizing should be checked before VM lock
ko1 (Koichi Sasada)
08:56 AM Revision 7d32bf78 (git): Removed a moved local variable
nobu (Nobuyoshi Nakada)
08:50 AM Revision 61236770 (git): need to sync gc_finalize_deferred
gc_finalize_deferred() runs finalizers and it accesses objspace,
so it need to sync.
ko1 (Koichi Sasada)
07:27 AM Revision 75416b86 (git): Removed old GC.stat keys deprecated since 2.2
nobu (Nobuyoshi Nakada)
07:27 AM Revision 763d5f9c (git): Removed old GC tuning environment variables deprecated since 2.1
nobu (Nobuyoshi Nakada)
07:08 AM Revision 982443e6 (git): Revert "Better cooperation between public/protected/private with attr* and alias_method"
This reverts commit 81739ad4fdfcc86a769056fec352f27c686fba1b. mame (Yusuke Endoh)
07:08 AM Revision 41c208d4 (git): Revert "Use rb_id_attrset without intermediate strings"
This reverts commit 66090b9d10cdaed917b525225e59d1c19e399248. mame (Yusuke Endoh)
07:08 AM Revision c4e50b58 (git): Revert "Added missing tests for public, private, protected and alias_method"
This reverts commit e042e8460bb9a63c05f938d51e8c7c5345a6f3a4. mame (Yusuke Endoh)
07:08 AM Revision 0a60ba92 (git): Revert "Added tests for [Feature #17314]"
This reverts commit 34f06062174882a98ebef998c50ad8d4f7fc0f2e. mame (Yusuke Endoh)
06:44 AM Feature #16274: Transform hash keys by a hash
solnic (Piotr Solnica) wrote in #note-18:
> marcandre (Marc-Andre Lafortune) wrote in #note-17:
> ...
It looks like you are replying to me, but of course this is Matz' decision. That said I feel that the current name is good, especiall...
marcandre (Marc-Andre Lafortune)
06:25 AM Feature #16274: Transform hash keys by a hash
marcandre (Marc-Andre Lafortune) wrote in #note-17:
> Closing, since this has been committed by Nobu 🎉 (in b25e27277dc39)
> ...
This is a wonderful addition but is there a chance you'd reconsider it? Instead of making `transform_keys` ...
solnic (Peter Solnica)
06:16 AM Revision 8e03e3b0 (git): Drop token info also for endless singleton method definition
nobu (Nobuyoshi Nakada)
05:59 AM Revision ffc8a72f (git): Sort URLs by issue numbers [ci skip]
znz (Kazuhiro NISHIYAMA)
05:36 AM Revision f0ec923c (git): Remove --jit-save-temps from MJIT
It's probably not helping the backtrace. k0kubun (Takashi Kokubun)
05:25 AM Revision b5de66e1 (git): [strscan] Fix license comment and files
https://github.com/ruby/strscan/commit/a999f2c6d1 Kenta Murata
05:25 AM Revision 53709639 (git): [strscan] Version 3.0.0
https://github.com/ruby/strscan/commit/08645e4e77 Kenta Murata
05:25 AM Revision 985f0af2 (git): [strscan] Make strscan Ractor safe (#17)
* Make strscan Ractor safe
* Add test-unit in the development dependencies
https://github.com/ruby/strscan/commit/3c93c2bebe
Kenta Murata
05:16 AM Revision cfa124ef (git): acquire VM lock on gc_verify_internal_consistency()
There is a case to call this function without VM lock acquiring. ko1 (Koichi Sasada)
05:11 AM Revision 8cba3b35 (git): Bump version RubyGems and Bundler in NEWS
hsbt (Hiroshi SHIBATA)
05:09 AM Revision b44f7151 (git): zlib is ractor-safe
ko1 (Koichi Sasada)
04:33 AM Revision 0e40cc9b (git): Merge RubyGems 3.2.2 and Bundler 2.2.2
hsbt (Hiroshi SHIBATA)
04:15 AM Feature #17099: Remove boolean argument and warning from Module#attr
It has not been warned unless `$VERBOSE` yet.
We may need wait one more release if we obey the previous rule.
But deprecations aren't warned even if `$VERBOSE` since 2.7.2, I think we can reconsider that rule.
nobu (Nobuyoshi Nakada)
04:04 AM Feature #17314 (Closed): Provide a way to declare visibility of attributes defined by attr* methods in a single expression
Applied in changeset commit:git|34f06062174882a98ebef998c50ad8d4f7fc0f2e.
----------
Added tests for [Feature #17314]
nobu (Nobuyoshi Nakada)
04:03 AM Revision 34f06062 (git): Added tests for [Feature #17314]
nobu (Nobuyoshi Nakada)
03:59 AM Revision e042e846 (git): Added missing tests for public, private, protected and alias_method
nobu (Nobuyoshi Nakada)
03:10 AM Revision 66090b9d (git): Use rb_id_attrset without intermediate strings
nobu (Nobuyoshi Nakada)
02:23 AM Revision a07f2498 (git): socket is ractor-safe.
ko1 (Koichi Sasada)
02:18 AM Revision aa82b067 (git): ruby_set_stack_size: no longer exists
Deleted since fc3c60f6081d85f6274986a7a08b59db1515fcb5 shyouhei (Shyouhei Urabe)
01:58 AM Feature #17398: SyntaxError in endless method
The following patch allows `def foo() = puts "bar"`. It brings no parser conflict.
https://gist.github.com/mame/0773bf3938e046e2b608de5fb2a826c8
However, it is not perfect. `private def foo() = puts "foo"` does not parse.
`private...
mame (Yusuke Endoh)
12:12 AM Revision 51c2725d (git): use eval to create different Regexp objects
Only one warning is shown for the same Regexp object, so create
different objects to support repeating tests.
http://ci.rvm.jp/results/trunk-repeat20@phosphorus-docker/3290658
ko1 (Koichi Sasada)

12/17/2020

11:26 PM Revision 29e42b8b (git): add explicit check
To debug this issue:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20201217T220004Z.fail.html.gz
ko1 (Koichi Sasada)
09:28 PM Misc #16443 (Closed): GC.compact is not documented
Applied in changeset commit:git|895b10ad020a788566c6e35431d07e6121e38c87.
----------
Add documentation about GC.compact
[Misc #16443][ruby-core:96395]
tenderlovemaking (Aaron Patterson)
09:27 PM Misc #16443: GC.compact is not documented
Hi Victor. I added some documentation in 895b10ad020a788566c6e35431d07e6121e38c87. Please feel free to add more details, but I don't want to describe how the internals work since they may change.
Thanks.
tenderlovemaking (Aaron Patterson)
09:26 PM Revision 895b10ad (git): Add documentation about GC.compact
[Misc #16443][ruby-core:96395] tenderlovemaking (Aaron Patterson)
07:47 PM Feature #15822: Add Hash#except
I think `except` should always return a Hash, since Matz prefers returning [the base class instead of subclass](https://bugs.ruby-lang.org/issues/6087#note-12) and we're changing a bunch of String methods too.
I will merge https://git...
marcandre (Marc-Andre Lafortune)
06:29 PM Feature #17404 (Assigned): Ractor `move:` API to allow shareability check
I'd like to `ractor.send(message)` and express that `message` should be shareable. Currently I'm given two choices: `move: true` and `move: false` / nothing, neither of which have an effect if my `message` is shareable, and neither of wh... marcandre (Marc-Andre Lafortune)
05:46 PM Revision 81739ad4 (git): Better cooperation between public/protected/private with attr* and alias_method
radarek (Radosław Bułat)
04:20 PM Revision f7a6b460 (git): * 2020-12-18 [ci skip]
git[bot]
04:20 PM Revision 6538c89f (git): gc_verify_internal_consistency() needs barrier
gc_verify_internal_consistency() accesses all slots (objects) so
all ractors should stop before starting this function.
ko1 (Koichi Sasada)
04:16 PM Feature #17398: SyntaxError in endless method
Eregon (Benoit Daloze) wrote in #note-3:
> So it's probably going to be very difficult to explain the actual condition, other than showing specific examples.
Endless methods definitions don’t support poetry mode?
austin (Austin Ziegler)
01:52 PM Feature #17398: SyntaxError in endless method
Conceptually, according to the typical definition in computer science, both `puts("bar")` and `puts "bar"` are expressions (i.e., they return a value, and if it was some other method than `puts` it would also not always be `nil`).
It mi...
Eregon (Benoit Daloze)
09:39 AM Feature #17398: SyntaxError in endless method
@mame Hmm, haven't thought about it from this perspective... Can you please explain a bit? As far as I can see, in, say, assignment context it behaves like an expression:
```ruby
result = puts 'foo'
# prints "foo", result = nil
```...
zverok (Victor Shepelev)
12:49 AM Feature #17398: SyntaxError in endless method
The body of an endless method must be an expression (called "arg" in the syntax rules of parse.y). `puts("bar")` is an expression, but `puts "bar"` is a statement (called "command" in the syntax rules).
I think it could be a bit confu...
mame (Yusuke Endoh)
01:54 PM Misc #17399: Are endless methods experimental?
I think a warning would better, especially since there were quite a few changes regarding what was accepted after the `=`.
Also, they purely seem redundant to me and I guess to others, so maybe they might be removed one day like the p...
Eregon (Benoit Daloze)
01:39 PM Revision caef364c (git): test/ruby: suppress some warnings
follow up to 9908177857a28633d6279c43a1ad4dfedcb98596 mame (Yusuke Endoh)
01:24 PM Feature #17403 (Closed): Remove Fixnum and Bignum
They are warned as deprecated since 2.4.
As deprecated warnings are not shown by default since 2.7.2, I think we should clean up longstanding warnings.
https://github.com/ruby/ruby/pull/3927
nobu (Nobuyoshi Nakada)
11:24 AM Revision 980f994b (git): [ruby/irb] Change context-mode's default to new mode 4.
This new mode uses a copy of the TOPLEVEL_BINDING. This is compatible with refinements (contrary to mode 3), while keeping nested IRB sessions separate
https://github.com/ruby/irb/commit/25c731cb2f
Marc-Andre Lafortune
11:23 AM Revision 753222d7 (git): [ruby/irb] Enable deprecation warnings when using -W or -w
Requested in Ruby Bug 17377
https://github.com/ruby/irb/commit/698f6eb34a
jeremyevans (Jeremy Evans)
11:23 AM Revision 336fe648 (git): [ruby/irb] Skip the few failing tests on TruffleRuby
https://github.com/ruby/irb/commit/22717844c0 Eregon (Benoit Daloze)
11:22 AM Revision b5effe07 (git): [ruby/irb] Fixed a typo in a comment [ci skip]
https://github.com/ruby/irb/commit/ce373417f3 nobu (Nobuyoshi Nakada)
11:22 AM Revision cbf6a7f9 (git): [ruby/irb] workaround for lack of tokens from `Ripper.lex`
* Fixes #38
https://github.com/ruby/irb/commit/905fb8e52e
no6v (Nobuhiro IMAI)
11:20 AM Revision 422e2c72 (git): [ruby/reline] Use plus operator to create unfrozen string
https://github.com/ruby/reline/commit/ca274b0d37 Robert Schulze
11:17 AM Revision cdf2790a (git): [ruby/reline] Support longer than screen height on Windows
https://github.com/ruby/reline/commit/2a97ca9362 aycabta (aycabta .)
11:17 AM Revision 0158ba7e (git): [ruby/reline] Make a log file on windows if debug env is set
https://github.com/ruby/reline/commit/dff30a2d44 aycabta (aycabta .)
11:14 AM Revision 2b8fa781 (git): [ruby/reline] Support longer than screen height
https://github.com/ruby/reline/commit/e83a3de9ed aycabta (aycabta .)
11:06 AM Revision 99081778 (git): test/ruby: Check warning messages at a finer granularity
Instead of suppressing all warnings wholly in each test scripts by
setting `$VERBOSE` to `nil` in `setup` methods.
nobu (Nobuyoshi Nakada)
11:04 AM Revision d597d7a8 (git): Fixing glitchy kill ring behavior in irb
See https://github.com/ruby/irb/issues/85 for details Yale Kozinski
09:13 AM Revision da3438a5 (git): sync obj_to_id_tbl
objspace->obj_to_id_tbl is a shared table so we need to synchronize
it to access.
ko1 (Koichi Sasada)
09:13 AM Revision 7f11c808 (git): reduce barrier counts for GC events
mark needs barrier (stop other ractors), but other GC events don't need
barriers (maybe...).
ko1 (Koichi Sasada)
08:37 AM Revision 99b91453 (git): relax synchronization on WB
Current synchronization is too much on write barriers. ko1 (Koichi Sasada)
08:24 AM Revision 44fba194 (git): ruby/pathname separated .rb file to top-level directory.
hsbt (Hiroshi SHIBATA)
08:03 AM Revision c42948d7 (git): add debug counters for gc start events
ko1 (Koichi Sasada)
07:53 AM Revision 92137718 (git): encourage inlining for vm_sendish()
Some tunings.
* add `inline` for vm_sendish()
* pass enum instead of func ptr to vm_sendish()
* reorder initial order of `calling` struct.
* add ALWAYS_INLINE for vm_search_method_fastpath()
* call vm_search_method_fastpath() from vm_sen...
ko1 (Koichi Sasada)
07:06 AM Revision 5d74894f (git): Lazily move PC with RUBY_VM_CHECK_INTS
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-17T06:17:46Z master 3b4d698e0b) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (20...
k0kubun (Takashi Kokubun)
06:56 AM Bug #17400: Incorrect character downcase for Greek Sigma
I have to acknowledge that I 'cut some corners'. It's essentially table 3.17 on p. 151/2 of the Unicode Standard (see https://www.unicode.org/versions/Unicode13.0.0/ch03.pdf).
The problem from the implementation side is that it requir...
duerst (Martin Dürst)
04:26 AM Bug #17400: Incorrect character downcase for Greek Sigma
Java has complicated opinions as well:
```
class Main {
public static void main(String args[]) {

System.out.println("Σ".toLowerCase());
System.out.println("ΣΣs".toLowerCase());
System.out.println("ΣΣ".toLowerCase...
sam.saffron (Sam Saffron)
03:35 AM Bug #17400: Incorrect character downcase for Greek Sigma
If the word has a single letter (i.e., `"Σ"`), toLowerCase returns `"σ"` instead of `"ς"` even though the letter is at the end of the word. The condition seems more complex.
```
$ node
> "Σ".toLowerCase()
'σ'
```
mame (Yusuke Endoh)
03:14 AM Bug #17400: Incorrect character downcase for Greek Sigma
Yes everybody wants ruby to handle it "correctly". The problem right now is the lack of concrete definition of "correct" here; especially we need a definition of a word boundary. shyouhei (Shyouhei Urabe)
03:07 AM Bug #17400: Incorrect character downcase for Greek Sigma
Oops, my understanding seemed to be wrong. Please forget my previous comment. When the next letter is an apostrophe, the further next letter seems to determine, but I don't understand this behavior from the code of v8. I leave it to an e... mame (Yusuke Endoh)
02:40 AM Bug #17400: Incorrect character downcase for Greek Sigma
Prior art here is:
https://github.com/elixir-lang/elixir/issues/6437
https://github.com/elixir-lang/elixir/pull/6990/files
Rust
https://github.com/rust-lang/rust/issues/26035
Golang
https://github.com/golang/text/blob/master/cases...
sam.saffron (Sam Saffron)
02:39 AM Bug #17400: Incorrect character downcase for Greek Sigma
Just FYI: I found the special handling code of Greek Sigma in v8. Looks like that it checks if the next character (if any) is a letter or not.
https://github.com/v8/v8/blob/4b9b23521e6fd42373ebbcb20ebe03bf445494f9/src/unicode.cc#L177-...
mame (Yusuke Endoh)
01:11 AM Bug #17400: Incorrect character downcase for Greek Sigma
I guess the ultimate reason why this is not implemented in ruby is the corresponding case mapping is commented out in https://unicode.org/Public/UNIDATA/SpecialCasing.txt
So strictly speaking we just follow what Unicode says but well,...
shyouhei (Shyouhei Urabe)
06:17 AM Revision 3b4d698e (git): Ignore catch_except_p for PC motion
We probably don't need to move it when an insn is leaf... k0kubun (Takashi Kokubun)
05:37 AM Revision a09c3c6f (git): expand VERSION path for ruby repository.
hsbt (Hiroshi SHIBATA)
05:28 AM Feature #17342: Hash#fetch_set
MaxLap (Maxime Lapointe) wrote in #note-19:
> matz (Yukihiro Matsumoto) wrote in #note-16:
> ...
Matz says it's rare.
I'm not sure if that is true, but so far nobody shows any evidence about its rarity.
shyouhei (Shyouhei Urabe)
05:20 AM Revision 46ea7429 (git): Bump version to json-2.4.1 and use VERSION file for json version same as upstream
hsbt (Hiroshi SHIBATA)
05:04 AM Bug #17402 (Closed): Remove deprecated GC-related features
Are these backward compatibilities still needed?
I think no.
```
$ RUBY_FREE_MIN=1 RUBY_HEAP_MIN_SLOTS=1 ruby2.1 -e0
ruby2.1: warning: RUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead.
ruby2.1: warning: RUBY_HEAP_MIN...
nobu (Nobuyoshi Nakada)
04:22 AM Revision ccf9da07 (git): fix doc typo
s/it's/its d-m-u
03:59 AM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
nobu (Nobuyoshi Nakada) wrote in #note-5:
> Your proposal seems `shareable_constant_value: everything` (it's prefixed with `experimental_` now though).
No, that value deep-freezes implicitly all constants. Non-literals are not frozen...
marcandre (Marc-Andre Lafortune)
03:42 AM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
Your proposal seems `shareable_constant_value: everything` (it's prefixed with `experimental_` now though). nobu (Nobuyoshi Nakada)
03:43 AM Revision d07183ec (git): Do not access jit_unit if NULL
k0kubun (Takashi Kokubun)
12:59 AM Feature #17401 (Closed): The class `Ractor::MovedObject` should not be frozen
If `Ractor::MovedObject` can be not frozen that would be more helpful than currently. For example, to implement a helpful `inspect` in pure Ruby 3.0 like in #17393
It is currently possible to go around the fact that it is frozen with ...
marcandre (Marc-Andre Lafortune)
12:30 AM Misc #17337 (Open): Don't embed Ruby build-time configuration in Ruby
vo.x (Vit Ondruch) wrote in #note-15:
> Should I open separate ticket for the revert and keep this ticket open for continuing the "whole principle" discussion?
Don’t worry, I have reverted that part already. Use this ticket for the ...
shyouhei (Shyouhei Urabe)

12/16/2020

11:47 PM Bug #17400 (Assigned): Incorrect character downcase for Greek Sigma
An issue caused by this bug was first reported at Discourse support community at https://meta.discourse.org/t/unicode-username-results-in-error-loading-profile-page/173182?u=falco.
The issue is that in Greek, there are two ways to dow...
xfalcox (Rafael Silva)
09:48 PM Misc #16443: GC.compact is not documented
@tenderlovemaking? @ko1? Anybody? It is still this way a week before 3.0?
Can somebody at least provide some draft explanations, or should I dig the sources more?..
zverok (Victor Shepelev)
08:55 PM Feature #17393: `Ractor::Moved#inspect`
Discussed with ko1, who said he is afraid that unfreezing the class might create issues, as implementation is quite special. Possible implementation of `#inspect` for Ruby 3.1
Two things to keep in mind:
- usecase for unfreezing the ...
marcandre (Marc-Andre Lafortune)
07:57 PM Misc #17399 (Closed): Are endless methods experimental?
They are marked as such in NEWS, but an attempt to define one doesn't produce a warning (unlike other features marked this way, like one-line pattern-matching or find patterns) zverok (Victor Shepelev)
07:54 PM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
After discussion with ko1, the following options came up:
(1) raises an error for non-literals on parse time (current)
(2) raises an error for unshareable non-literals on runtime (my proposal)
(3) just ignore non-literals
(4) = (3)...
marcandre (Marc-Andre Lafortune)
06:58 PM Feature #17397: `shareable_constant_value: literal` should check at runtime, not at parse time
Ideally, the following would also be accepted:
```ruby
# shareable_constant_value: literal
Map = {
int: Integer,
str: String,
# ...
}
Map.frozen # => true
```
Literals that are arguments to method calls should not b...
marcandre (Marc-Andre Lafortune)
06:25 PM Feature #17397 (Closed): `shareable_constant_value: literal` should check at runtime, not at parse time
I think `shareable_constant_value: literal` is too strict because it has too crude checks at parse time.
I wish the following code would parse and run:
```ruby
# shareable_constant_value: literal
class Foo < RuntimeError
end
...
marcandre (Marc-Andre Lafortune)
07:52 PM Feature #17398 (Closed): SyntaxError in endless method
This works:
```ruby
def foo() = puts("bar")
```
This does not:
```ruby
def foo() = puts "bar"
# ^ syntax error, unexpected string literal, expecting `do' or '{' or '('
```
Is this intentional or accidental? No...
zverok (Victor Shepelev)
06:46 PM Revision 93ba3ac0 (git): RGENGC_PROFILE=0
Enabled this flag, maybe accidentally. ko1 (Koichi Sasada)
06:44 PM Revision 2a3324fc (git): No sync on ASCII/US_ASCCII/UTF-8
rb_enc_from_index(index) doesn't need locking if index specify
ASCII/US_ASCCII/UTF-8.
rb_enc_from_index() is called frequently so it has impact.
user system total real
r_parallel/miniruby ...
ko1 (Koichi Sasada)
06:43 PM Revision c5814213 (git): make RB_DEBUG_COUNTER_INC()_thread-safe
ko1 (Koichi Sasada)
06:36 PM Feature #17273 (Closed): shareable_constant_value pragma
Closing, this has been implemented by Nobu marcandre (Marc-Andre Lafortune)
05:33 PM Misc #16047 (Closed): Reconsider impact of frozen_string_literal on dynamic strings
Thanks for opening this issue.
Ruby 3.0 no longer freezes dynamic strings.
marcandre (Marc-Andre Lafortune)
04:18 PM Bug #17396 (Closed): Missing .gemspec files
I am missing every .gemspec file, which used to be installed by bundled gems. IOW previously there were installed files such as rexml.gemspec and rss.gemspec. This is presumably caused by commit:91f831ac17c8ff58d536ce1fa320294bb477d2ae. ... vo.x (Vit Ondruch)
03:57 PM Feature #10445 (Rejected): [PATCH 3/3] Extend Matrix#[]
Closing this, mainly for performance reason; best use `Matrix#minor`. marcandre (Marc-Andre Lafortune)
03:49 PM Feature #8382 (Closed): Format OpenStruct YAML dump and create getters and setters after load.
This has (finally) been fixed, thanks for opening the issue. marcandre (Marc-Andre Lafortune)
03:47 PM Feature #17277 (Closed): Make Enumerator#with_index yield row and col indices for Matrix
Closing for lack of a viable solution marcandre (Marc-Andre Lafortune)
03:42 PM Revision d5929b39 (git): Make Ractor#receive_if private
Marc-Andre Lafortune
03:34 PM Revision 24f01897 (git): fix timing bug
ractor_sleep() can remain wait.status by interrupt, so that this
patch handles more correctly.
This patch fixed this kind of assertion failures:
Assertion Failed: ../src/ractor.c:1332:ractor_yield_atexit:cr->sync.wait.status == wait...
ko1 (Koichi Sasada)
03:31 PM Revision 84c9ebd6 (git): * 2020-12-17 [ci skip]
git[bot]
03:29 PM Revision b29c0fad (git): add HAVE_RB_EXT_RACTOR_SAFE macro
define HAVE_RB_EXT_RACTOR_SAFE to check rb_ext_ractor_safe() is
available or not.
ko1 (Koichi Sasada)
02:24 PM Revision 53babf35 (git): Inline getconstant on JIT (#3906)
* Inline getconstant on JIT
* Support USE_MJIT=0
k0kubun (Takashi Kokubun)
02:03 PM Revision bfb374be (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
01:53 PM Revision 9c859f4b (git): Ripper: Pass callback result to alias_error as well as other errors
[Bug #17345] nobu (Nobuyoshi Nakada)
12:12 PM Bug #17345 (Closed): ripper: nothing raised when assigning to keyword variables
Applied in changeset commit:git|47328ad217ecaf240f0faedac89723dcd6a917ac.
----------
Ripper: Fixed erred token on wrong alias [Bug #17345]
nobu (Nobuyoshi Nakada)
12:02 PM Bug #17345 (Open): ripper: nothing raised when assigning to keyword variables
nobu (Nobuyoshi Nakada)
10:02 AM Bug #17345: ripper: nothing raised when assigning to keyword variables
Sharing error messages between ruby core and ripper is fine, thank you!
Now, the '#tok' on some error events are `Elem` instead of string.
```
$ ./ruby -rripper -ve 'pp Ripper::Lexer.new("alias $x $1").scan'
ruby 3.0.0dev (2020-12-...
no6v (Nobuhiro IMAI)
12:08 PM Revision 47328ad2 (git): Ripper: Fixed erred token on wrong alias [Bug #17345]
nobu (Nobuyoshi Nakada)
11:33 AM Revision 359ad442 (git): strip trailing spaces [ci skip]
nobu (Nobuyoshi Nakada)
10:13 AM Feature #17378 (Closed): Ractor#receive with filtering like other actor langauge
Applied in changeset commit:git|a9a7f4d8b8ec30abc7a47ce700edc7209ae12279.
----------
Ractor#receive_if to receive only matched messages
Instead of Ractor.receive, Ractor.receive_if can provide a pattern
by a block and you can choose th...
ko1 (Koichi Sasada)
10:12 AM Revision a9a7f4d8 (git): Ractor#receive_if to receive only matched messages
Instead of Ractor.receive, Ractor.receive_if can provide a pattern
by a block and you can choose the receiving message.
[Feature #17378]
ko1 (Koichi Sasada)
10:10 AM Revision ddb93c3d (git): Made LARGEFILE_SUPPORT mandatory
nobu (Nobuyoshi Nakada)
10:10 AM Revision 5193fbb6 (git): Removed stale declaration
rb_w32_pipe_exec was removed in 1.9.3, at
commit:7ac32d7a16734ea66de15319bcff2fd429abae7f.
nobu (Nobuyoshi Nakada)
08:54 AM Revision 8b32191a (git): Ignore failure on unsupported fcntl to drop non-blocking mode
nobu (Nobuyoshi Nakada)
08:39 AM Revision 4fe7f270 (git): Different names instead of `ulimit`
nobu (Nobuyoshi Nakada)
08:22 AM Revision 5d8f227d (git): Lazily move units from active_units to stale_units
to avoid SEGV like
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3289588
by a race condition between mjit_recompile and compation around active_units
k0kubun (Takashi Kokubun)
08:18 AM Revision 0a521618 (git): fix Ractor#receive by other ractors
Ractor#receive can be called by the another Ractors using send,
so making this method completely same as `Ractor.receive` even if
the ractor is specified by the receiver (OO term :p).
ko1 (Koichi Sasada)
07:17 AM Revision c668772b (git): test/ruby/test_enum.rb: Avoid "warning: assigned but unused variable"
mame (Yusuke Endoh)
06:32 AM Revision 19157a3c (git): vm debug: dump registers on ARM too. (#3900)
* vm debug: dump registers on ARM too. David CARLIER
05:20 AM Revision 98dca855 (git): tuning vm_setivar_slowpath() more.
specify inline/noinline code for is_attr condition. ko1 (Koichi Sasada)
04:43 AM Revision 1bafb3cb (git): [memory_view] Make MemoryView API Ractor-safe (#3911)
* memory_view.c: make Ractor-safe
* test/ruby/test_memory_view.rb: Add test_ractor
* memory_view: fix typo
* memory_view.c: Use st_update in unregster_exported_object
* memory_view: update dependency
Kenta Murata
04:30 AM Revision 1e11c12a (git): remove unused function
ko1 (Koichi Sasada)
04:06 AM Revision 5499651e (git): tuning ivar set
* make rb_init_iv_list() simple
* introduce vm_setivar_slowpath() for cache miss cases
../clean/miniruby is 647ee6f091.
Calculating -------------------------------------
./miniruby ../clean/miniruby ../ruby_2_7/...
ko1 (Koichi Sasada)
03:31 AM Revision ad8e82f7 (git): Fixed marshal compatibility of Process::Status
nobu (Nobuyoshi Nakada)
03:14 AM Revision b30d7fea (git): Removed leading spaces [ci skip]
nobu (Nobuyoshi Nakada)
02:26 AM Revision cfefd1e5 (git): Added entry for webrick changes at Ruby 3.0 to NEWS
hsbt (Hiroshi SHIBATA)
01:38 AM Revision 0b678cc9 (git): add vm_sync debug counters
* vm_sync_lock
* vm_sync_lock_enter
* vm_sync_lock_enter_nb
* vm_sync_lock_enter_cr
* vm_sync_barrier
ko1 (Koichi Sasada)
01:36 AM Revision 171f0431 (git): fix typo
ko1 (Koichi Sasada)
01:29 AM Revision dff67c80 (git): fix duplicated name
ko1 (Koichi Sasada)

12/15/2020

11:48 PM Misc #17337 (Closed): Don't embed Ruby build-time configuration in Ruby
Applied in changeset commit:git|ccc828f49956424b2548e32cb3bc3a78e16e207b.
----------
configure.ac: avoid squashing CXX=g++
We are discussing this issue at [Bug #17337] but in the meantime, leave
this questionable autoconf glitch as-is ...
shyouhei (Shyouhei Urabe)
11:47 PM Revision ccc828f4 (git): configure.ac: avoid squashing CXX=g++
We are discussing this issue at [Bug #17337] but in the meantime, leave
this questionable autoconf glitch as-is to save sassc and eventmachine.
shyouhei (Shyouhei Urabe)
10:10 PM Feature #16274: Transform hash keys by a hash
Closing, since this has been committed by Nobu 🎉 (in b25e27277dc39)
I just added doc (in 8558d5e48)
marcandre (Marc-Andre Lafortune)
10:09 PM Revision 8558d5e4 (git): Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip]
Marc-Andre Lafortune
05:55 PM Bug #17030 (Closed): Enumerable#grep{_v} should be optimized for Regexp
Applied in changeset commit:git|d5f0d338c7b5d3d64929b51d29061d369550e8c4.
----------
Optimize `Enumerable#grep{_v}`
[Bug #17030]
Anonymous
05:54 PM Revision d5f0d338 (git): Optimize `Enumerable#grep{_v}`
[Bug #17030] Marc-Andre Lafortune
03:12 PM Bug #17395 (Closed): Kernel::Integer does not raise ArgumentError for strings with whitespace padding
Applied in changeset commit:git|a039dc018ccf34e217f767eac500b9400c58f069.
----------
[DOC] Described "numeric representation" more precisely [ci skip]
[Bug #17395]
nobu (Nobuyoshi Nakada)
02:22 PM Bug #17395 (Closed): Kernel::Integer does not raise ArgumentError for strings with whitespace padding
According to the Kernel::Integer docs, ArgumentError should be raised if the argument is a String and doesn't conform with numerical representation. However, it appears that Kernel::Integer does not raise ArgumentError when a string cont... mikelikesbikes (Mike Busch)
03:07 PM Revision a039dc01 (git): [DOC] Described "numeric representation" more precisely [ci skip]
[Bug #17395] nobu (Nobuyoshi Nakada)
03:04 PM Revision efc6a4e5 (git): * 2020-12-16 [ci skip]
git[bot]
02:43 PM Revision 289d42c9 (git): Removed unneeded cast and use the real name
nobu (Nobuyoshi Nakada)
02:13 PM Revision 8f6cb5b7 (git): TEST: multiarch support for Haiku
extrowerk (Zoltán Mizsei)
02:12 PM Revision 95423215 (git): Haiku: disable stack-protector
extrowerk (Zoltán Mizsei)
02:12 PM Revision 4d43ac2f (git): Add Haiku to the context support list
extrowerk (Zoltán Mizsei)
12:36 PM Revision e0bdd543 (git): Ripper: Refined error callbacks [Bug #17345]
nobu (Nobuyoshi Nakada)
12:00 PM Revision 2e436982 (git): Fix typo in NEWS.md
Junichi Ito
11:06 AM Revision 151ff609 (git): Added updated versions of the default gems on NEWS
hsbt (Hiroshi SHIBATA)
10:54 AM Revision ad3e3bd6 (git): Bump version to json-2.4.0
hsbt (Hiroshi SHIBATA)
07:35 AM Revision 5463eff5 (git): Lock only active_units references
556a7285080c1344c75bb93a333c9bfc5d631c61 was not good maybe because it
wasn't using list_for_each_safe. If list_for_each_safe is safe for
list_del for any nodes (is that true?), this should be fine.
k0kubun (Takashi Kokubun)
07:32 AM Bug #17388: Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
BTW, `rb_category_warn` and `rb_category_warning` take the category as a string instead of `rb_warning_category_t`?
I was going to move it under "include/" when exposing functions that use it...
nobu (Nobuyoshi Nakada)
12:58 AM Bug #17388: Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> 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 emitt...
jnchito (Junichi Ito)
06:19 AM Revision ce6fafb8 (git): Cache warning category IDs
nobu (Nobuyoshi Nakada)
06:17 AM Bug #17264 (Closed): BigDecimal exponentiation cannot be used with #** method
Applied in changeset commit:git|a86c147579745859ea064ec22b2901a7ac7e4abf.
----------
Import bigdecimal 2.0.2 (#3905)
* remove duplicated include
* Make BigDecimal#round with argument < 1 return Integer
Fixes [Bug #12780]
* Use a hig...
Anonymous
06:17 AM Revision a86c1475 (git): Import bigdecimal 2.0.2 (#3905)
* remove duplicated include
* Make BigDecimal#round with argument < 1 return Integer
Fixes [Bug #12780]
* Use a higher default precision for BigDecimal#power and #**
When a fractional power is given, increase the precision if the
pre...
Kenta Murata
05:07 AM Revision 9d85ed6c (git): Simplify positioning of '{' and '}'
and fix inconsistent indentation in mjit_compile.inc.erb k0kubun (Takashi Kokubun)
04:29 AM Revision 72a73691 (git): add several debug counters
add cc_found_in_ccs (renamed from cc_found_ccs), cc_not_found_in_ccs,
call0_public, call0_other debug counters to measure more details.
also it contains several modification.
ko1 (Koichi Sasada)
04:29 AM Revision aa6287cd (git): fix inline method cache sync bug
`cd` is passed to method call functions to method invocation
functions, but `cd` can be manipulated by other ractors simultaneously
so it contains thread-safety issue.
To solve this issue, this patch stores `ci` and found `cc` to `calli...
ko1 (Koichi Sasada)
03:38 AM Revision 40b7358e (git): Skip defined check in NODE_OP_ASGN_OR with ivar
Previously we would add code to check if an ivar was defined when using
`@foo ||= 123`, which was slower than `@foo || (@foo = 123)` when `@foo`
was already defined.
Recently 01b7d5acc702df22d306ae95f1a9c3096e63e624 made it so that
acce...
jhawthorn (John Hawthorn)
01:54 AM Revision 2fa9f3c0 (git): Prepare to release rubygems-3.2.1 and bundler-2.2.1
hsbt (Hiroshi SHIBATA)
01:26 AM Revision 7898f424 (git): ripper: return pushed new token instead of the token list
nobu (Nobuyoshi Nakada)
01:17 AM Feature #17392 (Rejected): Is there any plan to unify the namespace after ruby3
I disagree with the proposal for a few reasons:
* It would introduce a huge compatibility breakage. We cannot accept that.
* I believe Lisp-2 behavior is more natural for OOP (not much for FP, I admit)
* It wouldn't improve performa...
matz (Yukihiro Matsumoto)
01:01 AM Revision c59b9a8c (git): Move docs for Integer#bit_length [ci skip]
alanwu (Alan Wu)
01:01 AM Revision befa2448 (git): Help RDoc find Exception [ci skip]
This was on top of `Init_Exception()`. alanwu (Alan Wu)

12/14/2020

11:41 PM Revision 928cb6ee (git): NEWS: make links to label [ci skip]
nobu (Nobuyoshi Nakada)
11:41 PM Revision 78fad67c (git): NEWS: make links to other document files [ci skip]
nobu (Nobuyoshi Nakada)
11:26 PM Revision a5fd6515 (git): Reword docs for Fiddle::Function#call [ci skip]
I'm using ` alanwu (Alan Wu)
11:04 PM Bug #17394: TCPServer is not thread safe on win32
I've added a screenshot from windows virtual machine on mingw64 env. puchuu (Andrew Aladjev)
11:02 PM Bug #17394: TCPServer is not thread safe on win32
PS This issue is not 100% reproducible, please try to run script several times, thank you. puchuu (Andrew Aladjev)
10:59 PM Bug #17394 (Closed): TCPServer is not thread safe on win32
Hello, it looks like win32 version of TCPServer is not thread safe. I've extracted the following code from project:
``` ruby
require "socket"
require "parallel"
::Parallel.each(1..2, :in_threads => 2) do
::TCPServer.open 0 do ...
puchuu (Andrew Aladjev)
10:56 PM Revision 25a48b70 (git): Update dependencies
alanwu (Alan Wu)
09:35 PM Feature #17393: `Ractor::Moved#inspect`
Maybe refining the message from `method_missing` is the best and simplest. (giving info that object was moved, and where).
I would also unfreeze the class unless there's a good reason not to.
marcandre (Marc-Andre Lafortune)
08:48 PM Feature #17393 (Assigned): `Ractor::Moved#inspect`
It could be helpful to define `Ractor::Moved#inspect` and output the source location of when the data was moved. If preferred, it could raise an error with this information:
```
x = []
Ractor.new{ receive }.send(x, move: true)
p x ...
marcandre (Marc-Andre Lafortune)
08:47 PM Feature #17392: Is there any plan to unify the namespace after ruby3
> but few people define variables and methods as the same name, right?
I don't know - do you? Maybe we should measure it?
> ...
I don't know if it's better and does lead to less confusion - does it? Again maybe we should measure it...
chrisseaton (Chris Seaton)
08:30 PM Feature #17392 (Rejected): Is there any plan to unify the namespace after ruby3

Hello.Currently, methods and variables in ruby are separated (lisp-2 semantics), but few people define variables and methods as the same name, right?
Although some people may do this, should we unify the namespace for the better devel...
jackmaple (maple jack)
08:45 PM Bug #17388: Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
zverok (Victor Shepelev) wrote in #note-1:
> In addition:
> ...
`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 support...
jeremyevans0 (Jeremy Evans)
07:07 PM Bug #17388: Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
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/ru...
zverok (Victor Shepelev)
08:19 PM Feature #16986: Anonymous Struct literal
A slick syntax like `${a: 0, b: 0}` would encourage many to use it when they otherwise might turn to a Hash literal. Performance aside, a dollar sign Struct literal looks relatively lovely. shan (Shannon Skipper)
07:31 PM Feature #17351 (Closed): Deprecate Random::DEFAULT
Applied in changeset commit:git|c183288754fdad17e627c4182de599d965e99405.
----------
Remove references to Random::DEFAULT in the documentation
* Random::DEFAULT is no longer a Random instance, and referencing it is
more confusing tha...
Eregon (Benoit Daloze)
07:29 PM Revision f5c89c16 (git): Deprecate Random::DEFAULT
* Closes [Feature #17351]. Eregon (Benoit Daloze)
07:13 PM Revision c1832887 (git): Remove references to Random::DEFAULT in the documentation
* Random::DEFAULT is no longer a Random instance, and referencing it is
more confusing than helpful. Related to [Feature #17351]
Eregon (Benoit Daloze)
05:18 PM Bug #17345: ripper: nothing raised when assigning to keyword variables
no6v (Nobuhiro IMAI) wrote in #note-2:
> Thanks for the quick fix, however `*_error` parser events except `parse_error` seem not to set an error message properly.
> ...
Won't to fix this?
This breaks `irb --colorize` which uses `Rippe...
no6v (Nobuhiro IMAI)
03:06 PM Revision f7850bbe (git): NEWS: get rid of unintended link [ci skip]
nobu (Nobuyoshi Nakada)
03:05 PM Revision 7ca82ff8 (git): * 2020-12-15 [ci skip]
git[bot]
03:03 PM Revision 6b3a808b (git): Fix code block indents [ci skip]
RDoc::Markdown requires all block elements nested under bullet
list to be indended deeper than the first column of the list.
nobu (Nobuyoshi Nakada)
02:53 PM Revision b3e99b36 (git): Fix indent for rdoc's markdown
It seems that nested points need four spaces mame (Yusuke Endoh)
02:41 PM Misc #17337: Don't embed Ruby build-time configuration in Ruby
shyouhei (Shyouhei Urabe) wrote in #note-14:
> But in the meamtine we could revert this particular C++ compiler detection business to help eventmachine & sassc. Thoughts?
+1
Should I open separate ticket for the revert and keep t...
vo.x (Vit Ondruch)
02:02 AM Misc #17337: Don't embed Ruby build-time configuration in Ruby
We need to discuss the "whole principle" part. But in the meamtine we could revert this particular C++ compiler detection business to help eventmachine & sassc. Thoughts? shyouhei (Shyouhei Urabe)
02:30 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
@mame Thanks for clarifying! Ok let's see :) jbeschi (jacopo beschi)
02:17 PM Bug #17385: Test failures on gcc 11
> > Applied in changeset git|68af5235292f82145c599038b4bff7d9225e62d7.
> ...
I confirmed the commit `68af5235292f82145c599038b4bff7d9225e62d7` worked with gcc-11 on Fedora 34 now! Thanks.
jaruga (Jun Aruga)
02:15 PM Bug #17385: Test failures on gcc 11
> JFYI tests for various compiles in our CI suite currently stick to Ubuntu bionic (18.04) because this was the last release which shipped gcc 4.x. OTOH gcc 11 on Ubuntu seems hirsute (21.04) exclusive for now.
I see. Thanks for the i...
jaruga (Jun Aruga)
04:06 AM Bug #17385: Test failures on gcc 11
jeremyevans0 (Jeremy Evans) wrote in #note-17:
> nobu (Nobuyoshi Nakada) wrote in #note-16:
> ...
I don't claim we should switch to 2.70 (at least now), but we'll need to be 2.70-ready.
It may be necessary when the platform used by re...
nobu (Nobuyoshi Nakada)
01:41 AM Bug #17385: Test failures on gcc 11
nobu (Nobuyoshi Nakada) wrote in #note-16:
> shyouhei (Shyouhei Urabe) wrote in #note-15:
> ...
What are the advantages of switching to autoconf 2.70 compared to sticking with 2.69? OpenBSD uses gcc 4.2 on many older platforms where c...
jeremyevans0 (Jeremy Evans)
01:23 AM Bug #17385: Test failures on gcc 11
shyouhei (Shyouhei Urabe) wrote in #note-15:
> JFYI tests for various compiles in our CI suite currently stick to Ubuntu bionic (18.04) because this was the last release which shipped gcc 4.x. OTOH gcc 11 on Ubuntu seems hirsute (21.04...
nobu (Nobuyoshi Nakada)
12:54 AM Bug #17385: Test failures on gcc 11
jaruga (Jun Aruga) wrote in #note-14:
> By the way, if you want to try gcc-11 on Ubuntu, I found gcc-11 on ubuntu-toolchain-r repo.
> ...
JFYI tests for various compiles in our CI suite currently stick to Ubuntu bionic (18.04) because ...
shyouhei (Shyouhei Urabe)
11:13 AM Revision c2a60fec (git): Merge Psych-3.2.1 from ruby/psych
hsbt (Hiroshi SHIBATA)
10:39 AM Revision 27520a1e (git): Fixed dst name for digest gem
hsbt (Hiroshi SHIBATA)
10:19 AM Revision 33231747 (git): Support shareable_constant_value: literal
nobu (Nobuyoshi Nakada)
10:19 AM Revision 89e489d5 (git): Make shareable_constant_value tri-state
nobu (Nobuyoshi Nakada)
10:19 AM Revision 7060aeed (git): shareable_constant_value: is effective only in comment-only line
nobu (Nobuyoshi Nakada)
10:19 AM Revision 25cf1aca (git): Added continued line case
nobu (Nobuyoshi Nakada)
10:19 AM Revision 78cb9b62 (git): Added false case
nobu (Nobuyoshi Nakada)
10:19 AM Revision d19601fb (git): Test by Ractor.shareable?
nobu (Nobuyoshi Nakada)
10:19 AM Revision 11d9983b (git): Make the value shareable deeply
nobu (Nobuyoshi Nakada)
10:19 AM Revision 070a990b (git): Save and pass lex_context wholely
nobu (Nobuyoshi Nakada)
10:19 AM Revision dc1cc33d (git): Determine shareable-ness after assignment operator
nobu (Nobuyoshi Nakada)
10:19 AM Revision 60f0c376 (git): Implemented shareable_constant_value op_asgn
nobu (Nobuyoshi Nakada)
10:19 AM Revision 65450e8f (git): Call FrozenCore.make_shareable
nobu (Nobuyoshi Nakada)
10:19 AM Revision f43c71ab (git): Implemented shareable_constant_value
It does shallow freeze only for now. nobu (Nobuyoshi Nakada)
10:19 AM Revision b1bd2230 (git): Support shareable_constant_value pragma
nobu (Nobuyoshi Nakada)
09:38 AM Revision 7060d6b7 (git): fix condition and add another debug counter
mc_inline_miss_same_def is added to check same method or not.
Also the mc_inline_miss_same_cc calculation was fixed.
ko1 (Koichi Sasada)
09:26 AM Revision e889c025 (git): Add information to Caveats section in NEWS.md
Junichi Ito
09:17 AM Revision c37ba2c5 (git): add ccs_not_found debug counter
ccs_not_found to count not found in ccs table. ko1 (Koichi Sasada)
08:56 AM Revision da3be76c (git): add debug counters to survey the IMC miss
ko1 (Koichi Sasada)
07:35 AM Revision aacd2295 (git): Debug the command used for gdb dump
It's not working
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3288206. I'm
debugging why.
k0kubun (Takashi Kokubun)
07:33 AM Revision 8d83334a (git): @ruby is the target Ruby in bootstraptest
k0kubun (Takashi Kokubun)
06:56 AM Revision ab869d6b (git): test/ruby/test_method_cache.rb: suppress "assigned but unused variable"
mame (Yusuke Endoh)
06:28 AM Revision 53edb27b (git): use method cache on Object#respond_to?
rb_method_boundp (method_boundp) searches method_entry, but this
search did not use pCMC, so change to use it.
ko1 (Koichi Sasada)
02:57 AM Revision 0362b4c6 (git): add tests for method cache.
ko1 (Koichi Sasada)
02:57 AM Revision a8aa169b (git): add cc_invalidate_negative debug counter
counts for invalidating negative cache. ko1 (Koichi Sasada)
02:57 AM Revision 967040ba (git): Introduce negative method cache
pCMC doesn't have negative method cache so this patch implements it. ko1 (Koichi Sasada)
02:57 AM Revision fa63052b (git): create ccs with 0 capa
ccs is created with default 4 capa, but it is too much, so start
with 0 and extend to 1, 2, 4, 8, ...
ko1 (Koichi Sasada)
01:26 AM Revision 85a7f723 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)

12/13/2020

11:17 PM Revision 66756c6d (git): * 2020-12-14 [ci skip]
git[bot]
11:17 PM Revision ea6856dc (git): Remove "2.8" from NEWS.md
Junichi Ito
08:09 PM Feature #17391 (Closed): How about removing File.exists?
`File.exists?` has been deprecated since Ruby 2.1.0. I think the release of Ruby 3.0.0 might be a good time to remove it.
jnchito (Junichi Ito)
06:33 PM Misc #17390 (Closed): Class and method-level docs for Ractor
**GitHub PR: https://github.com/ruby/ruby/pull/3895**
Copying from PR descriptioin:
Currently, ractors documented only by [doc/ractor.md](https://docs.ruby-lang.org/en/master/doc/ractor_md.html), which has a flavor of a design/disc...
zverok (Victor Shepelev)
01:58 PM Feature #14912 (Closed): Introduce pattern matching syntax
ktsj (Kazuki Tsujimoto)
12:30 PM Feature #17363: Timeouts
So another option would be to move the `timeout` stdlib to core, which could be interesting (can be better optimized, avoid an extra Ruby thread, etc). Eregon (Benoit Daloze)
12:29 PM Feature #17363: Timeouts
nobu (Nobuyoshi Nakada) wrote in #note-11:
> It is just one line to built-in `Timeout::Error`.
> ...
I think that would be confusing, if `Timeout::Error` is in core, and so a `Timeout` module is always defined, and yet `Timeout.timeout...
Eregon (Benoit Daloze)
12:16 PM Bug #17331 (Closed): Let Fiber#raise work with transferring fibers
https://github.com/ruby/ruby/pull/3795 is merged, closing.
IMHO this is not a bug but additional behavior, I don't think it makes sense to backport.
Eregon (Benoit Daloze)
11:26 AM Revision 6e84af2f (git): `ulimit` does not affect another shell
znz (Kazuhiro NISHIYAMA)
10:26 AM Revision 12eb5734 (git): Sorted links by URLs and issue numbers [ci skip]
```
ruby -e 'puts readlines.sort_by {[_1[%r[(https?://.*?)(?:/\d+)?$],1], _1[/\d+$/].to_i]}'
```
nobu (Nobuyoshi Nakada)
09:18 AM Revision a3adb10a (git): Add NEWS about open-uri and Kernel#open
There might be a lot of codes using redefined Kernel#open via open-uri, so it's worth mentioning that. Junichi Ito
04:39 AM Revision c7530f0d (git): Wait testing/helper threads to terminate
nobu (Nobuyoshi Nakada)
04:12 AM Revision 416e402c (git): Fixed a suspicious comparison
nobu (Nobuyoshi Nakada)
03:11 AM Feature #17355 (Assigned): Using same set of names in or-patterns (pattern matching with Foo(x) | Bar(x))
I am pretty positive. I will discuss it with Matz after I finish to implement. ktsj (Kazuki Tsujimoto)
02:57 AM Revision 97e6c28d (git): Narrowed down unaligned member access region in RB_OBJ_WRITE
Since UNALIGNED_MEMBER_ACCESS assigns to an intermediate variable,
it can cause unused-value warnings.
nobu (Nobuyoshi Nakada)
02:52 AM Feature #17371 (Closed): Reintroduce `expr in pat`
Applied in changeset commit:git|88f3ce12d32ffbef983b0950743c20253ea2d0c6.
----------
Reintroduce `expr in pat` [Feature #17371]
ktsj (Kazuki Tsujimoto)
02:51 AM Revision 88f3ce12 (git): Reintroduce `expr in pat` [Feature #17371]
ktsj (Kazuki Tsujimoto)
02:51 AM Revision a8cf526a (git): Don't emit warning when the pattern of one-line pattern matching is just a variable pattern
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20201210Japan.md#feature-17371-reintroduce-expr-in-pat-ktsj ktsj (Kazuki Tsujimoto)
02:47 AM Revision 1b45174a (git): Allow dumping a core file on Actions
to see a C backtrace. k0kubun (Takashi Kokubun)
02:46 AM Revision 246d7e4f (git): Dump a backtrace with gdb
Because Ruby often fails to dump a C backtrace. k0kubun (Takashi Kokubun)
01:30 AM Bug #17387: About Warning.warn compatibility in Ruby 3.0.0
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> jnchito (Junichi Ito) wrote in #note-3:
> ...
Thank you for your comment. As for this issue, I should fix the Japanese document, so I submitted PR: https://github.com/rurema/doctree/pull/...
jnchito (Junichi Ito)
12:26 AM Bug #17387: About Warning.warn compatibility in Ruby 3.0.0
jnchito (Junichi Ito) wrote in #note-3:
> Therefore, the compatibility is broken (the parameter `message` should be `["my warning\n"]`). Is it a bug or not?
It is only a bug in the Japanese documentation. Unlike `Kernel#warn`, `Warn...
jeremyevans0 (Jeremy Evans)

12/12/2020

09:51 PM Bug #17387: About Warning.warn compatibility in Ruby 3.0.0
Eregon (Benoit Daloze) wrote in #note-2:
> The English documentation seems fine:
> ...
Thank you for information. I noticed the first parameter can be string and array according to the method signature.
```ruby
module Warning
de...
jnchito (Junichi Ito)
12:49 PM Bug #17387: About Warning.warn compatibility in Ruby 3.0.0
The English documentation seems fine:
https://docs.ruby-lang.org/en/master/Warning.html#method-i-warn
So I guess the Japanese docs should be updated.
Eregon (Benoit Daloze)
07:29 AM Bug #17387 (Closed): About Warning.warn compatibility in Ruby 3.0.0
The sample code in https://docs.ruby-lang.org/ja/latest/method/Warning/s/warn.html does not work in Ruby 3.0.0. Is it intended behavior? I'm worrying about its compatibility.
``` ruby
warn "hoge"
module Warning
def self.warn(*m...
jnchito (Junichi Ito)
07:08 PM Bug #17389 (Closed): New docs for non-blocking Fibers and scheduler
**GitHub PR: https://github.com/ruby/ruby/pull/3891**
Copying from its description:
I propose new documentation approach for new features in Ruby 3.0: non-blocking Fiber and the scheduler.
Right now, the documentation is in a co...
zverok (Victor Shepelev)
04:30 PM Revision 92dfe9ae (git): * 2020-12-13 [ci skip]
git[bot]
04:16 PM Revision 3b7c05ef (git): Fixed RUBY_RM_RECURSIVE when autoconf met the required version
Before 9189cf5793cd527a86b711d15d5fd0633ec082e1 the result of
`m4_version_compare` was compared to -1, however the `$2` of
`m4_version_prereq` has different meaning and is expanded when
the required version met.
nobu (Nobuyoshi Nakada)
04:15 PM Bug #17385: Test failures on gcc 11
> Applied in changeset git|68af5235292f82145c599038b4bff7d9225e62d7.
Thanks! I will try the patch on Monday.
By the way, if you want to try gcc-11 on Ubuntu, I found gcc-11 on ubuntu-toolchain-r repo.
https://launchpad.net/~ubuntu...
jaruga (Jun Aruga)
05:27 AM Bug #17385 (Closed): Test failures on gcc 11
Applied in changeset commit:git|68af5235292f82145c599038b4bff7d9225e62d7.
----------
Added parentheses to silence sizeof-array-div warnings [Bug #17385]
As well as 2366c681166a1dab95de6b9ca8ffcaae18aadd39.
nobu (Nobuyoshi Nakada)
05:23 AM Bug #17385: Test failures on gcc 11
jaruga (Jun Aruga) wrote:
> ```
> ...
I've missed the same note.
nobu (Nobuyoshi Nakada)
05:06 AM Bug #17385: Test failures on gcc 11
jaruga (Jun Aruga) wrote in #note-9:
> ```
> ...
As this call trace is same as the before, the patch doesn't seem to be applied.
nobu (Nobuyoshi Nakada)
02:25 PM Revision 7ef52265 (git): spec: suppress deprecations of "lambda(&proc_block)" pattern
mame (Yusuke Endoh)
02:11 PM Revision efbef729 (git): test/ruby/test_lambda.rb: prevent lambda(&proc_block) warnings
mame (Yusuke Endoh)
02:09 PM Revision 248f1ef2 (git): tool/mk_builtin_loader.rb: prevent "assigned but unused variable"
mame (Yusuke Endoh)
11:08 AM Bug #17388 (Closed): Doesn't Warning.warn support `category: :experimental` in Ruby 3.0.0?
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 ~/Desk...
jnchito (Junichi Ito)
08:23 AM Revision 4d2ad8d7 (git): Removed obsolete autoconf checks
Use regular `AC_CHECK_MEMBERS` instead of:
* `AC_STRUCT_ST_BLKSIZE`
* `AC_STRUCT_ST_BLOCKS`
* `AC_STRUCT_ST_RDEV`
nobu (Nobuyoshi Nakada)
08:02 AM Revision 0df67a46 (git): Signal handler type should be void
nobu (Nobuyoshi Nakada)
08:02 AM Revision 21c57264 (git): Omit checks for C89 standard or later
Now we require C99, these features available of course.
* prototypes
* stdarg prototypes
* token pasting
* stringization
* string literal concatenation
nobu (Nobuyoshi Nakada)
06:52 AM Revision e53c0bc9 (git): Add some JIT options to MJIT Actions
hoping to improve C backtrace outputs k0kubun (Takashi Kokubun)
05:25 AM Revision 68af5235 (git): Added parentheses to silence sizeof-array-div warnings [Bug #17385]
As well as 2366c681166a1dab95de6b9ca8ffcaae18aadd39. nobu (Nobuyoshi Nakada)
05:12 AM Revision 52bca75c (git): Remove unused function declarations
S_H_ (Shun Hiraoka)
04:18 AM Feature #5607 (Closed): Inconsistent reaction in Range of String
The almost same issue #13663 has been closed. mame (Yusuke Endoh)
04:17 AM Feature #2323 (Closed): "Z".."Z".succが空
#13663 でほぼ同様のチケットが close されたのでこちらも閉じます。 mame (Yusuke Endoh)
03:58 AM Revision 3e239913 (git): Lock GC while searching the best iseq
To fix
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3286265
k0kubun (Takashi Kokubun)
02:44 AM Revision 4e515662 (git): [DOC] Process::Status.wait return nil if no child processes [ci skip]
nobu (Nobuyoshi Nakada)
02:38 AM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
jbeschi (jacopo beschi) wrote in #note-9:
> Anyways I'd wait for the devs meeting outcome and see if we can move this forward.
My comment #7 is the meeting outcome. Some committers including matz discussed this issue, but we were not...
mame (Yusuke Endoh)
02:33 AM Bug #13663 (Closed): `String#upto` doesn't work as expected
At the December 2020 development meeting, @matz agreed the current behavior is expected and this is not a bug. jeremyevans0 (Jeremy Evans)
 

Also available in: Atom