Project

General

Profile

Activity

From 11/03/2021 to 11/09/2021

11/09/2021

04:55 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
I think it'd be good to understand the slow down here.
Is it due to having the method in Ruby and using `Primitive.`?
It seems unexpectedly high for that.
Or maybe the fact there is a declared keyword argument is slow if the kwarg is n...
Eregon (Benoit Daloze)
09:04 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
It's quite a hotspot in our cache serializers:
- https://github.com/Shopify/paquito/blob/aabd8740175f37b382d425da004636266d546901/lib/paquito/types.rb#L88
- https://github.com/Shopify/paquito/blob/aabd8740175f37b382d425da00463626...
byroot (Jean Boussier)
04:38 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
Could anybody share use cases (preferably a link to a particular code calling it) where `Time.at`'s performance matters? k0kubun (Takashi Kokubun)
04:47 PM Feature #18035: Introduce general model/semantic for immutability.
@Dan0042 I think you can experiment with that in a gem if you'd like.
I wouldn't call the module `Immutable` to avoid mixing the two concepts.
I think concretely it would be hard and not necessarily useful to use that refinement for ...
Eregon (Benoit Daloze)
04:42 PM Feature #18035: Introduce general model/semantic for immutability.
Re flags, can we just remove the highest FL_USER flags and use it to mark immutable instead?
Those FL_USER flags are actually not meant to be used by gems BTW (#18059).
Eregon (Benoit Daloze)
04:33 PM Feature #18035: Introduce general model/semantic for immutability.
Question for the immutability-minded folks here. What would you think of an `Immutable` refinement like:
```ruby
module Immutable
refine String do
def +(other)
super.freeze
end
def <<(other)
raise Immu...
Dan0042 (Daniel DeLorme)
04:32 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
@zverok No, that can't work because then in your example the actual place where the stack is queried is e.g. inside `#find` which e.g. adds an extra entry on the stack.
Also in general we can't use Enumerable/Enumerator here, the passed...
Eregon (Benoit Daloze)
01:28 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
Can't the specialized Enumerator be used for that? The downside is it probably would be inconsistent with the existing protocol of `caller`, so maybe the new method would be necessary, but, roughly speaking:
```ruby
lazy_caller.find { ...
zverok (Victor Shepelev)
12:36 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
The non-local return like `return frame` is likely to be rather costly in this case unfortunately.
Stack walking typically can't be JITed since it accesses a lot of VM stuff, and so the exception/jump for the `return` (or `break`) is qu...
Eregon (Benoit Daloze)
12:27 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
:+1: this seems a great idea.
I was initially thinking this might be tricky to implement, but it seems most APIs to walk the stack out there already allow to do arbitrary calls from inside a callback (e.g., Java 9's `StackWalker`, `Tr...
Eregon (Benoit Daloze)
02:45 PM Feature #18127: Ractor-local version of Singleton
ioquatix (Samuel Williams) wrote in #note-4:
> 1. Existing Ruby code is incompatible with Ractor.
> ...
That's a really good summary of the current situation with Ractor. Too many things need to be modified, frozen, restricted, even fo...
Dan0042 (Daniel DeLorme)
01:19 AM Feature #18127: Ractor-local version of Singleton
I appreciate the work that is being done here. However I am against introducing this feature as currently proposed and think that more discussion is required.
This change does not address the fact that `Singleton` remains broken when us...
ioquatix (Samuel Williams)
12:43 PM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
No need to say sorry. Thanks for providing fixes. https://github.com/ruby/ruby/pull/5097 resolves segmentation fault at Rails test. yahonda (Yasuo Honda)
12:23 PM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
Could you please try this PR? https://github.com/ruby/ruby/pull/5097
I knew that the fix was incomplete but I couldn't fix it before preview1. I'm sorry.
mame (Yusuke Endoh)
11:02 AM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
Thanks for the update.
I have attempt to validate the fix, actually it still raises segmentation fault with `ruby 3.1.0preview1` including 428227472fc6563046d8138aab17f07bef6af753 .
```
$ bundle exec rake test
/home/yahonda/.rben...
yahonda (Yasuo Honda)
07:15 AM Bug #18282 (Closed): Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
Applied in changeset commit:git|428227472fc6563046d8138aab17f07bef6af753.
----------
class.c: calculate the length of Class.descendants in advance
GC must not be triggered during callback of rb_class_foreach_subclass.
To prevent GC, we...
mame (Yusuke Endoh)
12:21 PM Revision 0d3898ec (git): [rubygems/rubygems] Remove more unused stuff from make command parsing
https://github.com/rubygems/rubygems/commit/eba7d173d4 deivid (David Rodríguez)
12:21 PM Revision ba3dfe6e (git): [rubygems/rubygems] This method is never passed a block
https://github.com/rubygems/rubygems/commit/d79ade274b deivid (David Rodríguez)
12:21 PM Revision d713b602 (git): [rubygems/rubygems] Fix assert_contains_make_command on make defined by environment variable.
The `parse_make_command_line` in `assert_contains_make_command` fails to get
the make targets correctly, when the make command is set with make options by
environment variable such as `export make='make -j2'` at
lib/rubygems/ext/builder....
Jun Aruga
12:21 PM Revision ec6352c1 (git): [rubygems/rubygems] Improve error message when make command doesn't match
https://github.com/rubygems/rubygems/commit/8c2725e9a6 deivid (David Rodríguez)
08:31 AM Revision 54bda176 (git): test/ruby/test_iseq.rb: Prevent a warning
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20211109T063003Z.log.html.gz
```
[ 9898/21145] TestISeq#test_super_with_block_and_kwrest/home/chkbuild/chkbuild/tmp/build/20211109T063003Z/ruby/test/ruby/test_iseq.rb:1: warning: meth...
mame (Yusuke Endoh)
08:30 AM Revision cf50f948 (git): test/ruby/test_enum.rb: Prevent a warning
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20211109T063003Z.log.html.gz
```
[ 1960/21145] TestEnumerable#test_to_a_keywords/home/chkbuild/chkbuild/tmp/build/20211109T063003Z/ruby/test/ruby/test_enum.rb:138: warning: method red...
mame (Yusuke Endoh)
08:10 AM Revision d5ae8925 (git): Add doc for `a_call` and `a_return` events of TracePoint
pocke (Masataka Kuwabara)
08:09 AM Revision 75aae66c (git): Some codes replace to `RBOOL` macro (#5023)
* Some code replace and using RBOOL macro
* Fix indent
* Using RBOOL in syserr_eqq function
S_H_ (Shun Hiraoka)
07:56 AM Revision c1c13c58 (git): Add one more test example for swap instruction
Nikita Vasilevsky
07:21 AM Revision 5a3b2e61 (git): Needs `$` in `make` command line to be escaped
nobu (Nobuyoshi Nakada)
07:21 AM Revision 5680c38c (git): Use valid `ec` for postponed job.
Postponed job can be registered from non-Ruby thread, which means
`ec` in TLS can be NULL. In this case, use main thread's `ec` instead.
See https://github.com/ruby/ruby/pull/4108
and https://github.com/ruby/ruby/pull/4336
ko1 (Koichi Sasada)
07:11 AM Revision 3628616d (git): Remove a redundant condition
mame (Yusuke Endoh)
07:11 AM Revision 64007fc5 (git): class.c (Class#descendants): Ingore subclasses created after estimation
It is theoretically possible if a finalizer creates a subclass. mame (Yusuke Endoh)
07:11 AM Revision 037da506 (git): class.c: Use ALLOC_N instead of ALLOCA_N
mame (Yusuke Endoh)
07:11 AM Revision 42822747 (git): class.c: calculate the length of Class.descendants in advance
GC must not be triggered during callback of rb_class_foreach_subclass.
To prevent GC, we can not use rb_ary_push. Instead, this changeset calls
rb_class_foreach_subclass twice: first counts the subclasses, then
allocates a buffer (which ...
mame (Yusuke Endoh)
06:20 AM Revision 3ff0a0b4 (git): Filter method names only if filtering method name only
If sole `filter` option doesn't seem including test case name,
match with method name only.
And if the filter is a Regexp or String, it never matches method
name symbols.
nobu (Nobuyoshi Nakada)
05:52 AM Revision 6cf7c0a4 (git): test/readline/test_readline.rb: skip a test on i686-linux
... because readline library (or libtinfo) seems to cause SEGV
internally even with Readline 8.1.
This SEGV is caught as SystemStackError, which leads to a test failure.
http://rubyci.s3.amazonaws.com/debian-i386/ruby-master/log/2021110...
mame (Yusuke Endoh)
05:39 AM Revision 1290bdf1 (git): test/ruby/test_fiber.rb: Extend timeout on Solaris
The test usually takes 200 sec. on Solaris, so the timeout of 300 sec.
looks too short.
mame (Yusuke Endoh)
02:30 AM Revision 1d609707 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
02:09 AM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
Eregon (Benoit Daloze) wrote in #note-22:
> @mame How do you explain the test I linked above fails (still does with latest CRuby) then?
The exception is raised immediately after the block returns, and before `handle_interrupt` return...
mame (Yusuke Endoh)
01:56 AM Revision d7432fde (git): [rubygems/rubygems] Use `shellsplit` instead of array of strings
Previously, the command string to be used for the shell command
was first generated and then split using shellsplit. This change
reverts the current behavior as it breaks if the value of remote
contains a space.
https://github.com/rubyg...
Nicholas Lee

11/08/2021

09:41 PM Revision e014c9d6 (git): [ci skip] Update NEWS.md for [Feature #18290]
peterzhu2118 (Peter Zhu)
09:27 PM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
@matz thanks, I will rebase and merge it with experimental warning. ioquatix (Samuel Williams)
02:35 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
I am not fully satisfied with the quality of the code (at the last time I checked a while ago), but basically, I agree with the merging.
So let us experiment with it.
Matz.
matz (Yukihiro Matsumoto)
09:25 PM Bug #18295 (Third Party's Issue): gtk2 won't work with newest versions of its dependencies
This looks like an issue with your setup. You'll need to install version 3.4.3 of the atk, pango, and gdk_pixbuf2 gems (see https://rubygems.org/gems/gtk2/versions/3.4.3). Looks like the ruby-gnome maintainers stopped supporting gtk2 s... jeremyevans0 (Jeremy Evans)
09:13 PM Bug #18295 (Third Party's Issue): gtk2 won't work with newest versions of its dependencies
I am running an up-to-date version of Artix, which installs ruby-atk 3.4.5-1 ruby-pango 3.4.5-1 and ruby-gdk_pixbuf2 3.4.5-1.
But it would seem that ruby-gtk2 3.4.3 wants specifically that version of the above three packages (at least, ...
zsd (Jim D)
08:39 PM Revision 39d3d24a (git): [Feature #18290] Remove tests that test use of rb_gc_force_recycle
Remove tests that assume objects get force recycled. peterzhu2118 (Peter Zhu)
07:24 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
I have been hoping to do the same operation here for my org, as a way to distribute a universal Ruby binary that would be usable on both Intel and Apple Silicon machines, and to be able to build it on Intel. I seem to run into the same p... timsutton (Tim Sutton)
07:16 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
I was able to repro this on Ubuntu 20.04 on an AMD CPU. Looks like moving these functions from `time.c` to `timev.rb` is the reason.
77e7082e824af8523c1e7c3bfc111c2e52e7e3b3 (Moved Time.at to builtin)
```
Time.at ...
peterzhu2118 (Peter Zhu)
02:27 PM Bug #18293 (Closed): Time.at in master branch was 25% slower then Ruby 3.0
− | Ruby 3.0.2 | Ruby 3.1.0-dev | result
-- | -- | -- | --
Time.at | 8.223M | 6.190M | 0.753x
### Environment
- MacBook Pro (14inch, 2021)
- macOS 12.0
- Apple M1 Max
- Apple clang ve...
watson1978 (Shizuo Fujita)
07:06 PM Feature #18290 (Closed): Deprecate rb_gc_force_recycle
Applied in changeset commit:git|aeae6e2842e1702dfb89b8ae69b48c4f5f64c662.
----------
[Feature #18290] Remove all usages of rb_gc_force_recycle
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes...
peterzhu2118 (Peter Zhu)
07:05 PM Revision 30940648 (git): [Feature #18290] Deprecate rb_gc_force_recycle and remove invalidate_mark_stack_chunk
This commit deprecates rb_gc_force_recycle and coverts it to a no-op
function. Also removes invalidate_mark_stack_chunk since only
rb_gc_force_recycle uses it.
peterzhu2118 (Peter Zhu)
07:05 PM Revision aeae6e28 (git): [Feature #18290] Remove all usages of rb_gc_force_recycle
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes changes to the GC difficult.
peterzhu2118 (Peter Zhu)
06:38 PM Revision aa5bccfc (git): NEWS.md: Mention Process._fork [[Feature #17795]]
mame (Yusuke Endoh)
06:33 PM Bug #18294 (Closed): error when parsing regexp comment
The following code generates the error "too short escaped multibyte character"
``` ruby
_re = /
foo # \M-ca
/x
```
Removing the \ or doubling it makes the error disappear.
Since this is in comment text, I would expect to be abl...
thyresias (Thierry Lambert)
06:33 PM Revision 83749338 (git): * 2021-11-09 [ci skip]
git[bot]
06:32 PM Revision efe7e6e9 (git): Bundle rbs 1.7.0.beta.5
mame (Yusuke Endoh)
06:13 PM Feature #12125: Proposal: Shorthand operator for Object#method
Hello,
I cannot help myself to see than all proposal are of the form:
` (expression) (shorthand_operator) (method_name)`
while I had seen some interesting option, to me, that format seem to add an obsure behaviour rater than a shorthan...
Azuma-01 (Azuma Eleth)
06:01 PM Misc #18266: DevelopersMeeting20211118Japan
* [Feature #6210] load should provide a way to specify the top-level module (jeremyevans0)
* This is fairly easy to implement in a backwards compatible manner, and seems useful.
* Are we OK adding this feature? If so, is the pull ...
jeremyevans0 (Jeremy Evans)
05:33 PM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
@mame How do you explain the test I linked above fails (still does with latest CRuby) then?
https://bugs.ruby-lang.org/issues/17849#note-16
Anyway, we all agree nobody should rely on that, and it's also unrealistic to ask people to e...
Eregon (Benoit Daloze)
08:58 AM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
@headius
headius (Charles Nutter) wrote in #note-18:
> This is incorrect code.
I believe that my code is correct under the current implementation of MRI. You may think that the method invocation itself `Thread.handle_interrupt(.....
mame (Yusuke Endoh)
03:45 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
Eregon (Benoit Daloze) wrote in #note-10:
> I'd assume on that object's singleton class like `instance_exec`, but I guess it's not the only possibility.
I would assume the same thing; it would be pretty strange if this defined a `foo...
Dan0042 (Daniel DeLorme)
01:27 PM Bug #18292 (Closed): 3.1.0-dev `include` cause Module to be marked as initialized
Some subtle change I found while testing our app compatibility with Ruby head:
```ruby
class Mod1 < Module
def initialize(...)
super
end
end
p Mod1.new
class Mod2 < Module
def initialize(...)
include Enumerabl...
byroot (Jean Boussier)
01:15 PM Revision bd2674ad (git): [rubygems/rubygems] Use bundler-graph instead of bundler-viz
https://github.com/rubygems/rubygems/commit/a54cca13db hsbt (Hiroshi SHIBATA)
11:43 AM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
Another suggestion from our internal discussion:
```
SHA1 should work for you, though it would be better if you could switch to EVP API from old SHA* API, if you by chance still use it.
```
pvalena (Pavel Valena)
09:35 AM Revision 7cc4e147 (git): Get rid of implicit expansion to `long double` on ix86
nobu (Nobuyoshi Nakada)
09:33 AM Revision 395738e8 (git): Separate TestReadline#test_interrupt_in_other_thread
This method is already known to fail on Travis-CI arm32-linux. nobu (Nobuyoshi Nakada)
09:04 AM Revision a64f7e9c (git): Try 32bit environment
nobu (Nobuyoshi Nakada)
08:08 AM Revision 2772f856 (git): Prefer ANSI-style prototypes over old K&R-style definitions
nobu (Nobuyoshi Nakada)
08:08 AM Revision b47f7afb (git): Fix filename typo [Bug #18140]
nobu (Nobuyoshi Nakada)
07:07 AM Revision b5ca8ebc (git): Update bundled_gems at 2021-11-08
git[bot]
06:14 AM Revision 833c69ee (git): Convert IDs to Integers
As the ID serial is 32bit value and internal IDs created in the
parser are assigned from its maximum value, Symbol converted from
it will exceed 32bit and overflow on 32bit platforms.
nobu (Nobuyoshi Nakada)
03:52 AM Revision f3bae1a2 (git): * 2021-11-08 [ci skip]
git[bot]
03:52 AM Revision 3501e0cb (git): memory_view.c: Add _memory_view_entry member in rb_memory_view_t (#5088)
Kenta Murata

11/07/2021

11:46 AM Revision e0a5c3d2 (git): [MinGW] Set job names
nobu (Nobuyoshi Nakada)
11:46 AM Revision 8dc2fce2 (git): [MinGW] Highlight where groups
nobu (Nobuyoshi Nakada)
11:46 AM Revision 7068255b (git): [MinGW] Run in sh
nobu (Nobuyoshi Nakada)
11:46 AM Revision acd82cc3 (git): [MinGW] Run test-spec
nobu (Nobuyoshi Nakada)
11:46 AM Revision 5ebda74a (git): [MinGW] Pass -j option via environment variables
nobu (Nobuyoshi Nakada)
11:46 AM Revision 6295e348 (git): [MinGW] Clear BUNDLER_VERSION unconditinally
nobu (Nobuyoshi Nakada)
11:46 AM Revision dc4dd96b (git): [MinGW] Remove unnecessary encoding settings
nobu (Nobuyoshi Nakada)
11:46 AM Revision 8acb2a9b (git): [MinGW] Use autogen
nobu (Nobuyoshi Nakada)
11:46 AM Revision ec032e86 (git): [MinGW] Clear prefix and move the directory to DESTDIR
Also the destination will be created at the installation. nobu (Nobuyoshi Nakada)
11:46 AM Revision ba0e3ea1 (git): [MSWin] Pass TESTOPTS via RUBY_TESTOPTS
nobu (Nobuyoshi Nakada)
11:46 AM Revision 30583bc9 (git): [MSWin] Split nmake step
The workflow output grouping seems effective even in the middle of
lines.
nobu (Nobuyoshi Nakada)
11:39 AM Revision 5eb54c49 (git): [MinGW] Set job env vars at once
nobu (Nobuyoshi Nakada)
04:13 AM Revision ac642df2 (git): Revert "Fix typo in ChangeLog-2.0.0 [ci skip]"
This reverts commit e5792e7d552235e17a93d50a26c375db1974148f.
Because this is correct ChangeLog of
https://github.com/ruby/ruby/commit/89fef02f1305887d97ddcf96cc4df9109ce414e2
and reverted commit makes inconsistency with
https://github....
znz (Kazuhiro NISHIYAMA)
03:40 AM Revision 45db04ee (git): * 2021-11-07 [ci skip]
git[bot]
03:40 AM Revision ec657f44 (git): Refine the error message for hidden variables
nobu (Nobuyoshi Nakada)
03:40 AM Revision 334b69e5 (git): rb_id_serial_to_id: return unregistered ID as an internal ID
```ruby
def foo(*); ->{ super }; end
```
This code makes anonymous parameters which is not registered as an
ID. The problem is that when Ractors try to scan `getlocal`
instructions, it puts the Symbol corresponding to the parameter
in ...
nobu (Nobuyoshi Nakada)

11/06/2021

01:25 PM Feature #18287: Support nil value for sort in Dir.glob
Eregon (Benoit Daloze) wrote in #note-8:
> ```ruby
> ...
I would love to see that explicit behavior in `Dir.glob`, which in my opinion would be less surprising and more straightforward.
Strech (Sergey Fedorov)
12:19 PM Feature #18287: Support nil value for sort in Dir.glob
nobu (Nobuyoshi Nakada) wrote in #note-7:
> For instance,
> ...
`base` is not a boolean argument ("do this or do not this behavior"), it doesn't apply.
BTW it seems Kernel#Integer ignores the second argument if not an Integer which I ...
Eregon (Benoit Daloze)
01:24 AM Feature #18287: Support nil value for sort in Dir.glob
Eregon (Benoit Daloze) wrote in #note-5:
> @jeremyevans0 Do you know any other core method with this behavior?
There are so many methods that it's hard to name them all.
For instance,
```ruby
Integer("010", nil) #=> 8
```
nobu (Nobuyoshi Nakada)
12:36 PM Feature #18291: When use =~ with named group, if regex is on the right side, variable not defined.
jeremyevans0 (Jeremy Evans) wrote in #note-1:
> `regexp.rdoc` documents that the literal regexp must be on the left hand side in order to assign to local variables, so this is not a bug. Switching to feature request.
Hi, Jeremy, tha...
zw963 (Wei Zheng)
12:03 PM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
Another way would be to default to `Thread.handle_interrupt(Exception => :on_blocking) do` for all threads, which is more or less what happens with the Fiber scheduler.
Then `Thread#raise` would only affect blocking calls.
OTOH it mean...
Eregon (Benoit Daloze)
08:39 AM Revision 66b08476 (git): Check the reading size range
nobu (Nobuyoshi Nakada)
08:37 AM Revision 6d540c1b (git): merge revision(s) d0a05fd4b40ff0f88728c4897e67b68185128f54:
Fixed FD leaks
---
test/socket/test_tcp.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
07:57 AM Bug #18264: TracePoint leaks memory
ruby_3_0 75e74993916e9abda1a74164fed5b59fc3d9b7ce merged revision(s) a4d5ee4f31bf3ff36c1a8c8fe3cda16aa1016b12. nagachika (Tomoyuki Chikanaga)
07:47 AM Revision 75e74993 (git): merge revision(s) a4d5ee4f31bf3ff36c1a8c8fe3cda16aa1016b12: [Backport #18264]
[Bug #18264] Fix memory leak in TracePoint
TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with `RUBY_TYPED_NEVER_FREE`).
---
test/ruby/test_settrac...
nagachika (Tomoyuki Chikanaga)
07:45 AM Bug #18252: Backport openssl 2.2.1 to ruby_3_0
Merged at 00e89fe36b57e2d7c4ea269bc827d9806edef5ed. nagachika (Tomoyuki Chikanaga)
05:33 AM Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
`grep` doesn't appear to have the same issue as `to_a`, since it explicitly calls `each` with no arguments (unlike `to_a`, which delegates arguments to `each`). Same thing with `count`. So I'm not sure what the issue is in the `grep` o... jeremyevans0 (Jeremy Evans)
05:00 AM Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
jeremyevans0 (Jeremy Evans) wrote in #note-5:
> nobu (Nobuyoshi Nakada) wrote in #note-4:
> ...
Same as this issue.
> > And `IO#each` has the separator and limit arguments, I wonder how to pass them.
> ...
As the number of argument...
nobu (Nobuyoshi Nakada)
02:26 AM Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
nobu (Nobuyoshi Nakada) wrote in #note-4:
> Recently I've encountered similar issue with `grep(regexp, chomp: true)`.
What's the issue with `grep`? If it is a keyword issue, we can probably fix it.
> ...
`IO#each` doesn't use key...
jeremyevans0 (Jeremy Evans)
02:06 AM Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
Recently I've encountered similar issue with `grep(regexp, chomp: true)`.
And `IO#each` has the separator and limit arguments, I wonder how to pass them.
nobu (Nobuyoshi Nakada)
01:46 AM Revision e5792e7d (git): Fix typo in ChangeLog-2.0.0 [ci skip]
180909 (佳华 王)
12:06 AM Revision 666a9185 (git): [rubygems/rubygems] GNU Make needs DESTDIR on Windows environment like msys or mingw
https://github.com/rubygems/rubygems/commit/7fd987d30d hsbt (Hiroshi SHIBATA)

11/05/2021

09:01 PM Revision fbd6cc58 (git): YJIT: Support iseq sends with mixed kwargs (#5082)
* YJIT: Support iseq sends with mixed kwargs
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
* Add additional comments to iseq sends
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
jhawthorn (John Hawthorn)
08:54 PM Revision 9cc2c74b (git): YJIT: Implement checkkeyword (#5083)
Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
jhawthorn (John Hawthorn)
07:44 PM Revision 91a90626 (git): YJIT: use shorter encoding for mov(r64,imm) when unambiguous (#5081)
* YJIT: use shorter encoding for mov(r64,imm) when unambiguous
Previously, for small constants such as `mov(RAX, imm_opnd(Qundef))`,
we emit an instruction with an 8-byte immediate. This form commonly
gets the `movabs` mnemonic.
In 64-...
alanwu (Alan Wu)
07:06 PM Feature #18287: Support nil value for sort in Dir.glob
Eregon (Benoit Daloze) wrote in #note-5:
> @jeremyevans0 Do you know any other core method with this behavior?
I don't, but I didn't do an audit.
> ...
That changes the behavior if the option is not passed, which is very much not ...
jeremyevans0 (Jeremy Evans)
06:38 PM Feature #18287: Support nil value for sort in Dir.glob
@jeremyevans0 Do you know any other core method with this behavior?
I am sure they are many dozens that meet my criteria above (in fact, all core methods except this one AFAIK).
And BTW I think the code is better without the `== false`...
Eregon (Benoit Daloze)
06:42 PM Misc #18266: DevelopersMeeting20211118Japan
* [Feature #18287] Support nil value for sort in Dir.glob (eregon)
* Let's be consistent for core methods and treat `nil` as `false`, or raise if not boolean.
Eregon (Benoit Daloze)
08:55 AM Misc #18266: DevelopersMeeting20211118Japan
- [Feature #18273] `Class#subclasses`
- Something we forgot to discuss as part of [Feature #14394].
- There are cases where you only want direct subclasses, not the whole tree.
- Can either be `Class#subclasses` like in Active ...
byroot (Jean Boussier)
04:39 PM Revision 82ae9b09 (git): [rubygems/rubygems] Fix url
https://github.com/rubygems/rubygems/commit/6a5a80eff7 haruuzion
03:22 PM Bug #18289 (Closed): Enumerable#to_a should delegate keyword arguments to #each
Applied in changeset commit:git|e83c02a768af61cd0890a75e90bcae1119d8bd93.
----------
Delegate keywords from Enumerable#to_a to #each
Fixes [Bug #18289]
jeremyevans (Jeremy Evans)
02:10 PM Bug #18289: Enumerable#to_a should delegate keyword arguments to #each
I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/5086 jeremyevans0 (Jeremy Evans)
11:11 AM Bug #18289 (Closed): Enumerable#to_a should delegate keyword arguments to #each
`Enumerable#to_a` has always delegated its arguments to `#each`, but it does not handle keyword arguments. This seems like an oversight.
My project uses keyword arguments to an #each method, and this has broken Enumerable#to_a as of r...
Ethan (Ethan -)
03:22 PM Revision f1ca64ed (git): * 2021-11-06 [ci skip]
git[bot]
03:22 PM Revision e83c02a7 (git): Delegate keywords from Enumerable#to_a to #each
Fixes [Bug #18289] jeremyevans (Jeremy Evans)
03:21 PM Feature #18291: When use =~ with named group, if regex is on the right side, variable not defined.
`regexp.rdoc` documents that the literal regexp must be on the left hand side in order to assign to local variables, so this is not a bug. Switching to feature request. jeremyevans0 (Jeremy Evans)
03:12 PM Feature #18291 (Open): When use =~ with named group, if regex is on the right side, variable not defined.
Following code not work.
```rb
if "Billy Zheng" =~ /(?<first_name>\w+)\s+(?<last_name>\w+)/
p first_name
p last_name
end
# NameError: undefined local variable or method `first_name' for main:Object
```
But, if we switch...
zw963 (Wei Zheng)
02:20 PM Revision 907aa475 (git): [rubygems/rubygems] Fix `ruby setup.rb` command when `--prefix` is passed
https://github.com/rubygems/rubygems/commit/8d04092f6e deivid (David Rodríguez)
02:20 PM Revision d47831d5 (git): [rubygems/rubygems] Bin dir should fall inside destdir
Since that's what happens in real life when `--destdir` is passed.
https://github.com/rubygems/rubygems/commit/55637bdc8a
deivid (David Rodríguez)
02:20 PM Revision ef6752c6 (git): [rubygems/rubygems] Remove unnecessary test setup
The method being unit tested here doesn't use
`RbConfig::CONFIG["bindir"]`.
https://github.com/rubygems/rubygems/commit/d3f092ad14
deivid (David Rodríguez)
02:20 PM Revision f5a4fdae (git): [rubygems/rubygems] Remove unnecessarily changing GEM_HOME
At this point gem paths are already loaded and memoize. Changing
`GEM_HOME` has no effect.
https://github.com/rubygems/rubygems/commit/a1f62f0939
deivid (David Rodríguez)
02:20 PM Revision 87a8b224 (git): [rubygems/rubygems] Simplify `--destdir` test
https://github.com/rubygems/rubygems/commit/0571fd1ec6 deivid (David Rodríguez)
02:20 PM Revision e60c1f75 (git): [rubygems/rubygems] Refactor setup tests to not always pass `--prefix`
Standard usage should be tested by default. I will add a test for
`--prefix` once I fix that option since it's not working correctly at
the moment.
https://github.com/rubygems/rubygems/commit/50a7e34586
deivid (David Rodríguez)
02:20 PM Revision 5b941ec9 (git): [rubygems/rubygems] Remove unnecessary loop
Rubygems installs a single executable. Make that explicit.
https://github.com/rubygems/rubygems/commit/2839d15521
deivid (David Rodríguez)
02:01 PM Feature #18290 (Closed): Deprecate rb_gc_force_recycle
# GitHub PR: https://github.com/ruby/ruby/pull/4363
I'm proposing to deprecate `rb_gc_force_recycle` and make it a no-op function because it is a burden to maintain and makes changes to the GC difficult. It is also easy to incorrectly...
peterzhu2118 (Peter Zhu)
11:03 AM Revision 56119c52 (git): Skip TestIRB::TestInit#test_recovery_sigint on Solaris
The test randomly gets stuck on Solaris:
http://rubyci.s3.amazonaws.com/solaris11-sunc/ruby-master/log/20211105T060014Z.fail.html.gz
```
1) Error:
TestIRB::TestInit#test_recovery_sigint:
Timeout::Error: execution of assert_in_out_err ...
mame (Yusuke Endoh)
07:00 AM Bug #18288 (Third Party's Issue): Getting error while installing Pod
I think this is the same issue as #17862, #17922, #17988, and #18071. See also https://github.com/typhoeus/ethon/issues/193. mame (Yusuke Endoh)
06:34 AM Bug #18288 (Third Party's Issue): Getting error while installing Pod
Getting below error while installing Pod.
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
Ritesh8313 (Ritesh Deopa)
01:32 AM Revision bfc0a71a (git): Suppress unused-function warnings
nobu (Nobuyoshi Nakada)
01:20 AM Revision f62f020f (git): Add the test of `Dir.glob` when `sort: true` is given explicitly
nobu (Nobuyoshi Nakada)
12:58 AM Revision 1ce3706c (git): [DOC] Fix indent as single paragraph [ci skip]
nobu (Nobuyoshi Nakada)
12:58 AM Revision f3812e6c (git): [DOC] Needs `call-seq` directives [ci skip]
nobu (Nobuyoshi Nakada)
12:58 AM Revision 53e2bba0 (git): [DOC] Markup the literal false, and constant [ci skip]
nobu (Nobuyoshi Nakada)
12:34 AM Revision 30886be9 (git): Skip bundled gem with an extension library under with-static-linked-ext
.. mainly to fix emscripten CI
http://rubyci.s3.amazonaws.com/crossruby/crossruby-master-wasm64_emscripten/log/20211104T024621Z.fail.html.gz
mame (Yusuke Endoh)

11/04/2021

10:35 PM Revision 16331d9a (git): [rubygems/rubygems] Explicitly ignored empty value for DESTDIR
https://github.com/rubygems/rubygems/commit/69dcc02553 hsbt (Hiroshi SHIBATA)
10:35 PM Revision 33d01b73 (git): [rubygems/rubygems] Skip to set DESTDIR option when it's not provided for mswin platform
https://github.com/rubygems/rubygems/commit/b93546c8d8 hsbt (Hiroshi SHIBATA)
10:23 PM Revision 1506c822 (git): [rubygems/rubygems] Don't apply `--destdir` twice when running `setup.rb`
Prior to this patch, if I ran:
ruby setup.rb --destdir /foo
Then Bundler files would be written into /foo/foo, because destdir was
being prepended, even though `bundler_spec.bin_dir` already included
destdir.
https://github.com/ru...
qyliss (Alyssa Ross)
10:23 PM Revision 9503dd91 (git): [rubygems/rubygems] Fix `--destdir` handling on Windows
Driver letters were not accounted for in one place.
https://github.com/rubygems/rubygems/commit/fbe42460d7
deivid (David Rodríguez)
10:23 PM Revision 5e855be8 (git): [rubygems/rubygems] More refactoring of `--destdir` handling
https://github.com/rubygems/rubygems/commit/f42c2025ed deivid (David Rodríguez)
10:23 PM Revision 70cbca48 (git): [rubygems/rubygems] Refactor `--destdir` handling
https://github.com/rubygems/rubygems/commit/8aab3d11b0 deivid (David Rodríguez)
08:05 PM Revision 2421527d (git): YJIT code pages refactoring for code GC (#5073)
* New code page allocation logic
* Fix leaked globals
* Fix leaked symbols, yjit asm tests
* Make COUNTED_EXIT take a jit argument, so we can eliminate global ocb
* Remove extra whitespace
* Change block start_pos/end_pos to be poin...
maximecb (Maxime Chevalier-Boisvert)
04:22 PM Bug #17106: Build ruby 2.6.6 from git source
> I still see this build error on the latest ruby_2_6 branch (commit: 95ba9053e20ad8d113af37b3f1f4cbfff1f6a8f1).
```
$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
$ which ruby
/usr/local/ruby-3.0.2/bin...
jaruga (Jun Aruga)
03:33 PM Bug #17106: Build ruby 2.6.6 from git source
I still see this build error on the latest ruby_2_6 branch (commit: `95ba9053e20ad8d113af37b3f1f4cbfff1f6a8f1`).
I needed to apply the commit `47720e2255f34ecad49763c66a7ea02a55a3f60a` to pass the `make` on Fedora 34.
```
$ bison --...
jaruga (Jun Aruga)
03:54 PM Revision 85b4cf16 (git): * 2021-11-05 [ci skip]
git[bot]
03:54 PM Revision 0c69f240 (git): test/ruby/test_gc_compact.rb: Backpatch the URL to the PR
mame (Yusuke Endoh)
03:54 PM Revision 8821a0de (git): test/ruby/test_gc_compact.rb: Do not run on s390x
The compaction tests get stuck randomly on s390x for unknown reason.
http://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20211104T030003Z.fail.html.gz
```
[13715/21145] TestGCCompact#test_gc_compact_statstimeout: output interval exceed...
mame (Yusuke Endoh)
02:36 PM Feature #18287: Support nil value for sort in Dir.glob
Eregon (Benoit Daloze) wrote in #note-3:
> This is inconsistent with basically every Ruby method out there.
I disagree. It's not uncommon for me to do:
```ruby
def m(opts={})
do_something unless opts[:something] == false
#...
jeremyevans0 (Jeremy Evans)
11:32 AM Feature #18287: Support nil value for sort in Dir.glob
This is inconsistent with basically every +core+ Ruby method out there +taking a boolean/boolean-like argument+.
For all core methods, either:
* the value is converted to a boolean, and then nil/false mean the same
* the value can only ...
Eregon (Benoit Daloze)
09:22 AM Feature #18287: Support nil value for sort in Dir.glob
This is intentional and documented as:
```ruby
# The results which matched single wildcard or character set are sorted in
# binary ascending order, unless false is given as the optional +sort+
# keyword argument. The order of ...
nobu (Nobuyoshi Nakada)
09:17 AM Feature #18287: Support nil value for sort in Dir.glob
`nil` means the default behavior, that is `sort: true`. nobu (Nobuyoshi Nakada)
08:47 AM Feature #18287 (Closed): Support nil value for sort in Dir.glob
Good day, everyone.
I would like to suggest (or question) the support of a `nil` value for `sort` argument in `Dir.glob`.
I find this behaviour a bit surprising, here is an example:
```
irb(main):001:0> Dir.glob("brace/a{.js,*}",...
Strech (Sergey Fedorov)
02:06 PM Revision 539c42ed (git): [rubygems/rubygems] Fix typos
https://github.com/rubygems/rubygems/commit/f328ef6f77 nobu (Nobuyoshi Nakada)
02:00 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
nobu (Nobuyoshi Nakada) wrote in #note-1:
> Could you try with the master, and show more backtraces?
Sure. Similar error, though this time running the universal `ruby` on Apple Silicon just results in a `Killed: 9` message. I'm unabl...
ccaviness (Clay Caviness)
07:14 AM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
Could you try with the master, and show more backtraces? nobu (Nobuyoshi Nakada)
01:19 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
Ah, maybe Koichi meant that `bind_call` doesn't change the default definee like `instance_exec` does?
i.e., does
```ruby
class C
-> {
def foo
end
}.bind_call(Object.new)
end
```
define `foo` on that object's singlet...
Eregon (Benoit Daloze)
01:13 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
byroot (Jean Boussier) wrote in #note-8:
> Assuming I correctly understand how it would work, then yes it would be great to have it to replace lots of costly `instance_exec`.
I don't think it would change anything performance-wise. T...
Eregon (Benoit Daloze)
11:39 AM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
> only as a replacement for instance_exec(&proc).
Assuming I correctly understand how it would work, then yes it would be great to have it to replace lots of costly `instance_exec`.
byroot (Jean Boussier)
01:16 PM Misc #18266: DevelopersMeeting20211118Japan
* [Misc #18285] NoMethodError#message uses a lot of CPU/is really expensive to call (eregon)
* OK to do https://bugs.ruby-lang.org/issues/18285#note-11 and no longer call custom #inspect for NoMethodError?
* Same for NameError?
* ...
Eregon (Benoit Daloze)
11:51 AM Revision 3d8e1ee4 (git): [ruby/net-http] Warn deprecated old constants
https://github.com/ruby/net-http/commit/2a97b4729b nobu (Nobuyoshi Nakada)
11:51 AM Revision b49dbe02 (git): [ruby/net-http] Fix the typo in a constant name
https://github.com/ruby/net-http/commit/dada6007bf nobu (Nobuyoshi Nakada)
11:44 AM Revision 5f2c4e34 (git): [ruby/net-http] Reset keep_alive timer on new connection
The last_communicated timestamp is for HTTP persistent connection, to
decide whether the current TCP connection may be reused for the
subsequent requests or not. Naturally, the timer must be reset if the
connection is recreated since it ...
rhenium (Kazuki Yamaguchi)
09:34 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
Thanks Benoit for stating in very clear and exact terms what I was trying to express :) ivoanjo (Ivo Anjo)
03:58 AM Revision a53aab12 (git): Fix typos [ci skip]
znz (Kazuhiro NISHIYAMA)
03:08 AM Revision ee9f7fc2 (git): fix typo in ChangeLog-1.9.3
180909 (佳华 王)

11/03/2021

11:58 PM Revision e1ae889c (git): [ruby/racc] Fix a private method name
https://github.com/ruby/racc/commit/1f52571225 nobu (Nobuyoshi Nakada)
11:58 PM Revision acf5ccd1 (git): [ruby/racc] Fix typo in a local variable name
https://github.com/ruby/racc/commit/03d0b86b90 nobu (Nobuyoshi Nakada)
11:57 PM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
From #18276,
I think the best solution by far is `Ractor.make_shareable(proc.bind(nil))` (concise, clear, clean as it does not pass unshared object to other Ractor), and raise on `Ractor.make_shareable(proc)` if the Proc's `self` is not ...
Eregon (Benoit Daloze)
11:56 PM Revision 481aa61c (git): * 2021-11-04 [ci skip]
git[bot]
11:56 PM Revision f6330a45 (git): [ruby/rdoc] Fix typos in test method names [ci skip]
https://github.com/ruby/rdoc/commit/8386333323 nobu (Nobuyoshi Nakada)
11:54 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
Dan0042 (Daniel DeLorme) wrote in #note-6:
> Why not `proc.bind(obj).call` ? It seems a more "proper" API, more composable. You can bind once and then call multiple times. Maybe `Ractor.make_shareable(proc.bind(nil))`. I understand the ...
Eregon (Benoit Daloze)
11:46 PM Feature #12745: String#(g)sub(!) should pass a MatchData to the block, not a String
The fix for #12689 seems clear, such variables need to be Thread-local (or even Fiber-local).
That's already what TruffleRuby does (mentioned in that issue) and it seems JRuby is doing the same (https://github.com/jruby/jruby/issues/303...
Eregon (Benoit Daloze)
02:03 PM Feature #12745: String#(g)sub(!) should pass a MatchData to the block, not a String
I would love to see this resurrected.
If you want the MatchData in a gsub block, at first it looks like you can just use `Regexp.last_match`.
But I think this, along with variables like `$1`, may not be thread-safe? See for insta...
jrochkind (jonathan rochkind)
11:39 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
Re special casing, true/false/nil are typically already special-cased for exception messages (because `#<TrueClass:0x0000000000000014>` is too confusing, everyone expects `true` or `true:TrueClass`, which is BTW the current formatting: `... Eregon (Benoit Daloze)
04:33 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
My suggestion is indeed to only include the class + perhaps the pointer id or the object id for regular user classes, and then special case true/false/nil and perhaps String and symbols. ivoanjo (Ivo Anjo)
04:16 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
> I was trying to use that to make a case that perhaps the default should not be to use #inspect, not to use the inspect always :)
Not sure if I got you right, but in my opinion the old behavior of only using it if it was smaller than...
byroot (Jean Boussier)
12:06 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
> Well I for one complained about that limit, hence why I opened the ticket.
Right! Thanks for pointing it out.
> ...
Good point. What I meant was that for a long time it seemed OK to not get the `#inspect` information some of the ...
ivoanjo (Ivo Anjo)
11:22 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
> I'm actually talking about NoMethodError, not NameError, so I don't think this issue is caused by the did you mean gem behavior
No the confusion is mine, I assumed it was a `did_you_mean` perf issue without fully digging into your r...
byroot (Jean Boussier)
09:15 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
#### Important note! I'm actually talking about **`NoMethodError`**, not **`NameError`**, so I don't think this issue is caused by the did you mean gem behavior (which I really like).
This may have been confusing because both of them ...
ivoanjo (Ivo Anjo)
09:52 PM Bug #18284: Macosx M1
I'm not sure it's related, but a `pod` related error came up on the #ruby IRC channel today, and the user solved their problem by using this command:
```
sudo arch -x86_64 gem install ffi
```
Which they found here: https://stacko...
adam12 (Adam Daniels)
04:21 PM Bug #18286 (Closed): Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
A universal arm64/x86_84 ruby binary for macOS built on a x86_64 machine segfaults/is killed when executed on an arm64 machine.
To reproduce:
* On an Intel Mac: `git clone https://github.com/ruby/ruby && cd ruby && git checkout v3_0_...
ccaviness (Clay Caviness)
02:43 PM Revision 5b8d22eb (git): [ruby/openssl] Fix typos [ci skip]
https://github.com/ruby/openssl/commit/708ebf2f7a nobu (Nobuyoshi Nakada)
10:55 AM Revision b5d9c442 (git): [ruby/optparse] Fix typo [ci skip]
https://github.com/ruby/optparse/commit/0aa18752cf nobu (Nobuyoshi Nakada)
10:11 AM Revision e9a13332 (git): Fix typos [ci skip]
nobu (Nobuyoshi Nakada)
08:42 AM Revision c5224c71 (git): [rubygems/rubygems] Fix `gem install` vs `gem fetch` inconsistency
https://github.com/rubygems/rubygems/commit/b3e985799e deivid (David Rodríguez)
05:00 AM Revision 9fc7ea64 (git): configure.ac: don't use shutdown on emscripten
... to absorb a change on Ubuntu 21.10 mame (Yusuke Endoh)
 

Also available in: Atom