Project

General

Profile

Activity

From 12/05/2020 to 12/11/2020

12/11/2020

11:36 PM Revision 70a311fd (git): trap on non-main ractor
trap can accept blopck/Proc and it can violate Rator isolation,
so the Proc should be isolatable when trap is used on non-main ractor.
ko1 (Koichi Sasada)
09:29 PM Revision 124321e0 (git): fix lambda's warning and tests
There are warning condition bugs and test bugs.
b53ccb9c69abd24e3bdad66cbe4c7e7480eaef16
ko1 (Koichi Sasada)
09:19 PM Revision d741c77b (git): fix ivar with shareable objects issue
Instance variables of sharable objects are accessible only from
main ractor, so we need to check it correctly.
ko1 (Koichi Sasada)
09:18 PM Revision 31e8de29 (git): Let Fiber#raise work with transferring fibers
This automatically choosess whether to use transfer on a transferring
fiber or resume on a yielding fiber. If the fiber is resuming, it
raises a FiberError.
nevans (Nicholas Evans)
05:59 PM Bug #17377 (Closed): A warning message doesn't display using -W option on irb
Thank you for reporting and the Pull Request! aycabta (aycabta .)
05:18 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
Honestly, I don't think returning `nil` would be an improvement: using `nil` as a type check looks a bit hacky to me.
Anyways I'd wait for the devs meeting outcome and see if we can move this forward.
jbeschi (jacopo beschi)
03:29 PM Revision e795b632 (git): * 2020-12-12 [ci skip]
git[bot]
03:28 PM Revision abbc4341 (git): Remove unused link [ci skip]
znz (Kazuhiro NISHIYAMA)
02:22 PM Bug #17385: Test failures on gcc 11
> Does this work?
I tested with the patch. But no it does not work. Here is the log. Sorry for the long long.
I noticed the warnings appear at the timing of the `make`.
In the log the `1) Failure` I see today might be not related to...
jaruga (Jun Aruga)
04:46 AM Bug #17385: Test failures on gcc 11
clang warns on this one, not sure why though.
https://gcc.godbolt.org/z/c7baPr
```C
#include <stddef.h>
#include <setjmp.h>
struct foo_tag {
jmp_buf foo;
} foo;
size_t
bar()
{
return sizeof(foo.foo) / sizeof(int)...
shyouhei (Shyouhei Urabe)
03:47 AM Bug #17385: Test failures on gcc 11
Anyway, if no warning against the line in vm.c, the same will work against `RBIMPL_EMBED_LEN_MAX_OF` macro. nobu (Nobuyoshi Nakada)
03:42 AM Bug #17385: Test failures on gcc 11
shyouhei (Shyouhei Urabe) wrote in #note-5:
> Hello, I have encountered similar warnings in clang and had some fix at this commit https://github.com/ruby/ruby/commit/2366c681166a1dab95de6b9ca8ffcaae18aadd39
Interesting, but I can't r...
nobu (Nobuyoshi Nakada)
12:41 AM Bug #17385: Test failures on gcc 11
Hello, I have encountered similar warnings in clang and had some fix at this commit https://github.com/ruby/ruby/commit/2366c681166a1dab95de6b9ca8ffcaae18aadd39
In case of clang adding parens suppress the warning. Doesn't this work f...
shyouhei (Shyouhei Urabe)
02:14 PM Revision eea756ac (git): Strip trailing spaces [ci skip]
nobu (Nobuyoshi Nakada)
02:08 PM Revision 68d3952c (git): [ruby/reline] Fix breaking to input Emoji with ZWJ.
https://github.com/ruby/reline/commit/f21dfdbb11 ima1zumi (Mari Imaizumi)
11:21 AM Revision ed343c76 (git): RDoc states that Process::Status.wait returns nil if cannot wait
nobu (Nobuyoshi Nakada)
10:40 AM Revision 1728eba4 (git): [DOC] Fixed the RDoc location of Process::Status.wait [ci skip]
nobu (Nobuyoshi Nakada)
10:35 AM Feature #17363: Timeouts
It is just one line to built-in `Timeout::Error`.
```c
rb_define_class_under(rb_define_module("Timeout"), "Error", rb_eRuntimeError);
```
nobu (Nobuyoshi Nakada)
05:48 AM Feature #17363: Timeouts
We could also define `::TimeoutError` as base class, and modify `timeout` lib so that `Timeout::Error < ::TimeoutError` instead of `==` as it is currently. marcandre (Marc-Andre Lafortune)
05:56 AM Revision 885135f8 (git): Allow an MJIT worker to show a backtrace on SEGV
An MJIT worker thread doesn't have ec, and it's required for SDR() and
rb_backtrace_print_as_bugreport(). Therefore it must be checked.
k0kubun (Takashi Kokubun)
05:36 AM Revision 4439b783 (git): Save a core file from bootstraptest
k0kubun (Takashi Kokubun)
05:16 AM Revision a6a68bae (git): Removed needless gemspec of webrick
hsbt (Hiroshi SHIBATA)
05:16 AM Revision 947a5505 (git): Bump webrick-1.7.0 for version management with ruby/webrick.
hsbt (Hiroshi SHIBATA)
05:09 AM Revision bca57b91 (git): [DOC] Moved RDoc of abort [ci skip]
nobu (Nobuyoshi Nakada)
05:08 AM Revision c718c300 (git): addr2line.c: support debuglink by build_id
Currently, addr2line.c supports only one path format of debuglink:
"/usr/lib/debug/usr/bin/ruby.debug".
However, recent debian packages seem to use another format by build_id:
"/usr/lib/debug/.build-id/ab/cdef1234.debug".
https://githu...
mame (Yusuke Endoh)
05:08 AM Revision 8c5ec100 (git): Link zlib always if available
Major Linux distribution packages including Debian, Ubuntu, and Fedora
use `--compress-debug-sections=no` to build ruby, and then extract and
compress debug symbols as separate files. However, the configure option
makes ruby not link zli...
mame (Yusuke Endoh)
04:43 AM Revision 288e93be (git): Exclude parenthesized function declarations such as NORETURN
Fixes https://github.com/ruby/ruby/pull/3883 nobu (Nobuyoshi Nakada)
03:53 AM Feature #17342: Hash#fetch_set
My emails appear not to be making it through the mailing list gateway into the tickets, so…
#note-15
I’m mostly doing Elixir these days, and one of the caching modules I use has as its main interface `fetch_or_set`, so I think that...
austin (Austin Ziegler)
03:38 AM Feature #17333: Enumerable#many?
Like Daniel in #note-10 and Sawa in #note-6, I don’t think that this is a great choice, although `many?` is surprisingly complex to implement efficiently. The simplest Ruby implementation I could come up with is this:
```ruby
def m...
austin (Austin Ziegler)
02:58 AM Feature #17361 (Closed): lambda(&block) does not warn with lazy proc allocation
Applied in changeset commit:git|b53ccb9c69abd24e3bdad66cbe4c7e7480eaef16.
----------
show deprecation warning correctly for lambda(&b)
lambda(&b) where b is given block of method (like: def foo(&b))
should warn correctly.
[Feature #173...
ko1 (Koichi Sasada)
02:57 AM Revision b53ccb9c (git): show deprecation warning correctly for lambda(&b)
lambda(&b) where b is given block of method (like: def foo(&b))
should warn correctly.
[Feature #17361]
Also labmda(&labmda_block) or lambda(&:to_s) (Symbol#to_proc)
should not warn (but I'm not sure who cares about it).
ko1 (Koichi Sasada)
02:57 AM Revision ad657316 (git): add RUNOPT and RUNOPT0 for dev rules.
run, runruby, ... accept RUNOPT and RUNOPT0 configuration to pass
some commandline argument like that:
$(BTESTRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)
RUNOPT0 is options for ruby interpreter (-w, -v, ...)
RUNOPT is options for th...
ko1 (Koichi Sasada)
02:13 AM Revision 56918578 (git): Remove unimplemented parameter from comment
:resolv_timeout of TCPSocket.new is not implemented for now. Glass_saga (Masaki Matsushita)
01:30 AM Bug #17386 (Assigned): Refinements break prepend
@ko1
It seems that the following commit changed the behavior.
Could you check it?
```
b9007b6c548f91e88fd3f2ffa23de740431fa969 is the first bad commit
commit b9007b6c548f91e88fd3f2ffa23de740431fa969
Author: Koichi Sasada <ko1@atd...
shugo (Shugo Maeda)
12:54 AM Bug #17386 (Closed): Refinements break prepend
Reported in https://bugs.ruby-lang.org/issues/17379#note-5, but it seems a different issue from #17379 because Ruby 2.7.2 or earlier is not affected.
```
excelsior:/tmp$ cat t.rb
class Foo
def foo
p :hello
end
end
mod...
shugo (Shugo Maeda)
12:55 AM Bug #17379: Refinement with modules redefinition bug
marcandre (Marc-Andre Lafortune) wrote in #note-5:
> Probably same bug, without `using`, found by Daniel DeLorme:
It seems a different issue, so I've filed #17386.
shugo (Shugo Maeda)
12:54 AM Revision 974e89ae (git): revert da3bca513f437b05b3953c3712ff48621fc5e008
It seems introduce critical problems. Now I could not find
out the issue.
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3286048
ko1 (Koichi Sasada)
12:41 AM Revision 9b0c36b3 (git): Import fiddle-1.0.4 (#3860)
I don't use tool/sync_default_gem.rb because the last sync was incomplete.
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: sinisterchipmunk <sinisterchipmunk@g...
Kenta Murata

12/10/2020

10:40 PM Revision 6b1d2de6 (git): Unfortunately getinstancevariable was still not leaf
https://github.com/ruby/ruby/runs/1533401436 k0kubun (Takashi Kokubun)
10:34 PM Feature #17342: Hash#fetch_set
Elixir has put_new and put_new_lazy:
https://hexdocs.pm/elixir/Map.html#put_new_lazy/3
Maybe store_if_new or store_new ?
`cache.store_new(key) { calculation } `
p8 (Petrik de Heus)
06:17 PM Feature #17342: Hash#fetch_set
matz (Yukihiro Matsumoto) wrote in #note-16:
> Most of the case, `hash[:key] ||= init` works. The exception is that `init` value being false. But it should be rare.
The problem is not only with `false`, but with `nil` too.
Anytime...
MaxLap (Maxime Lapointe)
03:51 PM Feature #17342: Hash#fetch_set
marcandre (Marc-Andre Lafortune) wrote in #note-17:
> One additional use-case would be a *thread-safe equivalent* to `Ractor.current[:my_key] ||= init`.
+1
Dan0042 (Daniel DeLorme)
07:40 AM Feature #17342: Hash#fetch_set
matz (Yukihiro Matsumoto) wrote in #note-16:
> Most of the case, `hash[:key] ||= init` works. The exception is that `init` value being false. But it should be rare.
We could look into public codebases for better numbers; it is not th...
marcandre (Marc-Andre Lafortune)
07:32 AM Feature #17342 (Feedback): Hash#fetch_set
Most of the case, `hash[:key] ||= init` works. The exception is that `init` value being false. But it should be rare.
So could you explain the concrete use-case for `fetch_set()`?
Besides that I am not fully satisfied with the name `...
matz (Yukihiro Matsumoto)
09:00 PM Revision 97868f16 (git): Reintroduce the fix again
k0kubun (Takashi Kokubun)
07:48 PM Revision 4474aada (git): Fix the path properly
:disappointed: k0kubun (Takashi Kokubun)
07:18 PM Revision f56ab7a4 (git): Try fixing the -I position
https://github.com/ruby/ruby/runs/1532260149
:thinking:
k0kubun (Takashi Kokubun)
06:49 PM Bug #17385: Test failures on gcc 11
Thanks for the patch! Let me check it tomorrow! jaruga (Jun Aruga)
01:45 PM Bug #17385: Test failures on gcc 11
Does this work?
```diff
diff --git a/include/ruby/internal/core/rbasic.h b/include/ruby/internal/core/rbasic.h
index 2b578b663c8..603ebacdffb 100644
--- a/include/ruby/internal/core/rbasic.h
+++ b/include/ruby/internal/core/rbasic...
nobu (Nobuyoshi Nakada)
12:16 PM Bug #17385: Test failures on gcc 11
The Ruby I tested is the commit `1cfc6e7b7a92c1a624182392ba702d3dcb2eba98` on master branch.
jaruga (Jun Aruga)
11:30 AM Bug #17385 (Closed): Test failures on gcc 11
There is gcc 11 (development version) [1].
On Fedora rawhide (Fedora 34), the gcc version is 11.0.0-0.7.fc34. I got 2 test failures on Fedora 34. The failures come from a warning `-Wsizeof-array-div` that is a new feature on gcc 11.
...
jaruga (Jun Aruga)
06:16 PM Revision dca13e2b (git): Make ruby -We the same as ruby -W -e
This changes the behavior, which I'm not sure is acceptable.
However, it's odd to allow an option to be combined, but change
the behavior of the option when combined.
jeremyevans (Jeremy Evans)
06:16 PM Feature #17055 (Closed): Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
Applied in changeset commit:git|01b7d5acc702df22d306ae95f1a9c3096e63e624.
----------
Remove the uninitialized instance variable verbose mode warning
This speeds up all instance variable access, even when not in
verbose mode. Uninitial...
jeremyevans (Jeremy Evans)
04:35 AM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
I agree with the change. Go ahead.
Matz.
matz (Yukihiro Matsumoto)
06:16 PM Revision 69960848 (git): Make getinstancevariable a leaf instruction
It can no longer issue a warning. jeremyevans (Jeremy Evans)
06:16 PM Revision 01b7d5ac (git): Remove the uninitialized instance variable verbose mode warning
This speeds up all instance variable access, even when not in
verbose mode. Uninitialized instance variable warnings were
rarely helpful, and resulted in slower code if you wanted to
avoid warnings when run in verbose mode.
Implements ...
jeremyevans (Jeremy Evans)
05:36 PM Bug #17374: Refined methods aren't visible from a refinement's module
Yup, that's a bug, good catch.
I believe is the same as #17379 because if you comment the first `Foo.new.foo` then it works as expected. I added a simplified version to that issue
marcandre (Marc-Andre Lafortune)
03:03 PM Bug #17374: Refined methods aren't visible from a refinement's module
I tried testing this and immediately ran into this issue: (in latest master)
```ruby
class Foo
module Extension
module Implementation
def foo
super(bar)
end
def bar
42
end
...
Dan0042 (Daniel DeLorme)
05:35 PM Bug #17379: Refinement with modules redefinition bug
Probably same bug, without `using`, found by Daniel DeLorme:
```ruby
class Foo
def foo
p :hello
end
end
module Code
def foo
p :A
end
end
module Extension
refine Foo do
prepend Code
end
end
...
marcandre (Marc-Andre Lafortune)
05:27 PM Revision 4a559aa2 (git): Actions mingw - add tool/test for WEBrick in spec tests (#3882)
Some spec tests require WEBrick, and the spec tests are run from install with the MinGW CI. MSP-Greg (Greg L)
05:16 PM Feature #17378: Ractor#receive with filtering like other actor langauge
When discussing with @ko1 and @eregon, I had an idea for a better API.
I'd like to be able to call `Ractor.receive` this way:
```ruby
def example
loop do
Ractor.receive do |message|
case message
in [:cmd1, ar...
marcandre (Marc-Andre Lafortune)
06:39 AM Feature #17378: Ractor#receive with filtering like other actor langauge
The `receive` method with a block suggest the block takes an incoming message as a block parameter. So I agree with the proposal if the name is `receive_if`.
Matz.
matz (Yukihiro Matsumoto)
04:32 PM Revision f3c19ddf (git): Show C backtrace appropriately at core dump for GCC 8 or later
When ruby is compiled by GCC 8 or later, some frames of C level
backtrace information lacks.
```
$ ./miniruby -e '1.times { Process.kill(:SEGV, $$) }'
...
-- C level backtrace information
-------------------------------------------
/h...
mame (Yusuke Endoh)
04:19 PM Revision 7f4c31d6 (git): * 2020-12-11 [ci skip]
git[bot]
04:17 PM Revision b72f6132 (git): Suppress a "clobbered" warning by gcc on macOS
nobu (Nobuyoshi Nakada)
03:35 PM Feature #17357: `Queue#pop` should have a block form for closed queues
~~If this is accepted I think it would be good to have the same API as Hash#fetch, with both argument and block forms. For consistency.~~
edit: oops, I didn't realize that `Queue#pop` already has a `non_block` optional argument.
Dan0042 (Daniel DeLorme)
09:46 AM Feature #17357: `Queue#pop` should have a block form for closed queues
Final note:
- no particular justification was given for choosing not to differentiate `nil` and closed result at the time.
- many APIs were proposed (raising, or keyword parameters). Keyword parameters were a "no" because they were slo...
marcandre (Marc-Andre Lafortune)
09:35 AM Feature #17357 (Open): `Queue#pop` should have a block form for closed queues
General use case: using `Queue` for objects that might be `nil`.
Why *I* opened this issue? I am writing a pure-Ruby backport of Ractor (using `Thread`). I am using `Queue` for messaging queues. `nil` can be value sent / received by Rac...
marcandre (Marc-Andre Lafortune)
08:36 AM Feature #17357 (Feedback): `Queue#pop` should have a block form for closed queues
Do you have a use case?
The issue is well discussed in [Feature #10600] and concluded as current spec.
To discuss again we need new materials.
naruse (Yui NARUSE)
03:07 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
Maybe return nil if the object is not a Hash? Dan0042 (Daniel DeLorme)
04:44 AM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
I'm a bit afraid if changing the behavior would bring confusion rather than trivial usability. It is easy to workaround the issue.
Anyway, if it is changed, we need to backport the patch to ruby_2_7. If ruby_2_7 and master are incons...
mame (Yusuke Endoh)
02:58 PM Feature #17380: Useful `include/prepend` in `refine`
marcandre (Marc-Andre Lafortune) wrote in #note-4:
> It isn't a no-op, as it does bring each method in the refinement, but those methods "live" outside of said refinement. See my example above where `:x.recurse(:y) # => :y (ok)`.
Yes...
Dan0042 (Daniel DeLorme)
01:58 PM Feature #17380: Useful `include/prepend` in `refine`
Dan0042 (Daniel DeLorme) wrote in #note-3:
> including a module is effectively a no-op
It isn't a no-op, as it does bring each method in the refinement, but those methods "live" outside of said refinement. See my example above where ...
marcandre (Marc-Andre Lafortune)
01:45 PM Feature #17380: Useful `include/prepend` in `refine`
It would be nice if `prepend`/`include` worked within a `refine` block, but if they don't then at least it should raise an error. In that respect I disagree with closing #17374; even if the result is "expected", the fact that including a... Dan0042 (Daniel DeLorme)
01:21 PM Bug #17162: Dir['**/*'] : stack smashing detected when listing big amount of directories
Mistaken.
```diff
diff --git a/dir.c b/dir.c
index 49e6818d25c..50749b8d01c 100644
--- a/dir.c
+++ b/dir.c
@@ -2251,2 +2251,4 @@ glob_getent(ruby_glob_entries_t *ent, int flags, rb_encoding *enc)

+void rb_check_stack_overflow...
nobu (Nobuyoshi Nakada)
10:55 AM Bug #17162: Dir['**/*'] : stack smashing detected when listing big amount of directories
Although I couldn't reproduce this issue even with 68 levels (exceeded the NTFS limit at that time), does this help?
```diff
diff --git a/dir.c b/dir.c
index 49e6818d25c..399913e82d0 100644
--- a/dir.c
+++ b/dir.c
@@ -2271,6 +227...
nobu (Nobuyoshi Nakada)
12:48 PM Revision 673fcb7e (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
12:45 PM Feature #17303 (Closed): Remove webrick from stdlib
Removed at https://github.com/ruby/ruby/pull/3729
I'm going to resolve the issues related this until the final release of Ruby 3.0.
hsbt (Hiroshi SHIBATA)
08:39 AM Feature #17303: Remove webrick from stdlib
Recently vulnerability handling for webrick is heavy load for CRuby development.
Reports related to webrick is low S/N rate though the importance of bundling webrick with ruby tarball is decreasing.
We remove webrick in ruby repo and...
naruse (Yui NARUSE)
08:30 AM Feature #17303: Remove webrick from stdlib
Go ahead.
Matz.
matz (Yukihiro Matsumoto)
12:41 PM Revision 73db60bd (git): include/ruby/memory_view.h: fix the return type of rb_memory_view_prepare_item_desc
Kenta Murata
12:35 PM Revision 0fcd478a (git): include/ruby/memory_view.h: fix typo
Kenta Murata
12:20 PM Feature #17323: Ractor::LVar to provide ractor-local storage
Eregon (Benoit Daloze) wrote in #note-11:
> For a library, the `Ractor.current[key]` form seems inconvenient as it would need to generate some key, instead of referencing an Ractor::LVar.new object.
I agree using a key does not sound th...
marcandre (Marc-Andre Lafortune)
11:43 AM Feature #17323: Ractor::LVar to provide ractor-local storage
marcandre (Marc-Andre Lafortune) wrote in #note-10:
> Will there be a thread-safe way to initialize this storage (other then from the Ractor block)?
One possibility, when using `Ractor::LVar.new` would be:
```ruby
LV1 = Ractor::LVa...
Eregon (Benoit Daloze)
10:50 AM Feature #17323: Ractor::LVar to provide ractor-local storage
Will there be a thread-safe way to initialize this storage (other then from the Ractor block)?
Because we can't use a `Mutex` to synchronize as there is no way to initialize the `Mutex` safely either...
Example: A gem needs Ractor-...
marcandre (Marc-Andre Lafortune)
07:06 AM Feature #17323: Ractor::LVar to provide ractor-local storage
I prefer Thread-like Ractor local storage, e.g. `Ractor.current[key]`.
Matz.
matz (Yukihiro Matsumoto)
12:06 PM Revision d5dfc3f2 (git): Use `abort(message)` instead of `puts` and `exit`
znz (Kazuhiro NISHIYAMA)
11:55 AM Feature #17187 (Closed): Add connect_timeout to TCPSocket
Applied in changeset commit:git|78f188524f551c97b1a7a44ae13514729f1a21c7.
----------
Add connect_timeout to TCPSocket
Add connect_timeout to TCPSocket.new in the same way as Socket.tcp.
Closes [Feature #17187]
Glass_saga (Masaki Matsushita)
11:53 AM Feature #17363: Timeouts
marcandre (Marc-Andre Lafortune) wrote in #note-8:
> Good point. We could create `Thread::Timeout` as a common base class for all 3?
`Thread::TimeoutError` then maybe?
Sounds OK, but not sure timeouts are always related to threads (e.g....
Eregon (Benoit Daloze)
11:48 AM Feature #17363: Timeouts
Eregon (Benoit Daloze) wrote in #note-7:
> marcandre (Marc-Andre Lafortune) wrote in #note-6:
> ...
Good point. We could create `Thread::Timeout` as a common base class for all 3?
marcandre (Marc-Andre Lafortune)
11:45 AM Feature #17363: Timeouts
marcandre (Marc-Andre Lafortune) wrote in #note-6:
> How about subclassing `Timeout::Error` to create `Queue::Timeout` and `Ractor::Timeout`?
`Timeout` is stdlib, unlike the other 2 which are in core, so that's an issue.
Eregon (Benoit Daloze)
10:37 AM Feature #17363: Timeouts
ko1 (Koichi Sasada) wrote in #note-4:
> I also positive to introduce `timeout` but not sure what happens on timeout.
> ...
How about subclassing `Timeout::Error` to create `Queue::Timeout` and `Ractor::Timeout`?
> * return `nil` -> ...
marcandre (Marc-Andre Lafortune)
08:20 AM Feature #17363: Timeouts
`Timeout::wake` you can implement it with `Thread#handle_interrupt(RuntimeError => :never){ ... }`. ko1 (Koichi Sasada)
08:19 AM Feature #17363: Timeouts
I also positive to introduce `timeout` but not sure what happens on timeout.
* raise an exception -> which exception?
* return `nil` -> can't recognize returned value
I think `timeout: nil` is same as no `timeout:` given. Is it sa...
ko1 (Koichi Sasada)
11:52 AM Revision 78f18852 (git): Add connect_timeout to TCPSocket
Add connect_timeout to TCPSocket.new in the same way as Socket.tcp.
Closes [Feature #17187]
Glass_saga (Masaki Matsushita)
11:50 AM Misc #17376: Reduce number of GitHub Actions
https://github.com/ruby/ruby/pull/3876 seems enough, right?
I think there were too many compiler variants before, that addresses it.
Eregon (Benoit Daloze)
01:49 AM Misc #17376: Reduce number of GitHub Actions
OK to reduce tests; no idea which. Maybe we must prioritise them. shyouhei (Shyouhei Urabe)
09:55 AM Revision 658b4ff6 (git): Fixed the test failures called WEBrick.new directly
hsbt (Hiroshi SHIBATA)
09:27 AM Revision 72f1c435 (git): ObjectSpace._id2ref should not support unshareable
ObjectSpace._id2ref(id) can return any objects even if they are
unshareable, so this patch raises RangeError if it runs on multi-ractor
mode and the found object is unshareable.
ko1 (Koichi Sasada)
09:24 AM Revision 7856da5f (git): remove bz2
naruse (Yui NARUSE)
09:23 AM Feature #16375 (Closed): Right size regular expression compile buffers for literal regexes and on Regexp#freeze
Merged by nobu at 9a17437558e42aa1da372b515ba8bc18067d578c mame (Yusuke Endoh)
09:16 AM Revision 142f154a (git): Unpoison freelist to chain
nobu (Nobuyoshi Nakada)
09:15 AM Feature #16937: Add DNS over HTTP to Resolv
akr, I don't track this for Ruby 3.0 but if you want to merge, please handle this soon. naruse (Yui NARUSE)
09:15 AM Revision 9a174375 (git): Right size literal regular expression buffers on compile
methodmissing (Lourens Naudé)
09:13 AM Feature #9713 (Feedback): __FILE__ return unexpected encoding - breaks Dir.glob
naruse (Yui NARUSE)
09:09 AM Feature #17134 (Open): Add resolv_timeout to TCPSocket
naruse (Yui NARUSE)
09:06 AM Revision e7433a32 (git): Added help message for gem i webrick in rdoc
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 4ccc6626 (git): Added help message for gem i webrick in gem server command
hsbt (Hiroshi SHIBATA)
09:06 AM Revision b084f8ab (git): Completely removed webrick
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 880727f0 (git): Added help message for gem i webrick in un.rb
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 05cc58c2 (git): webrick was removed from ruby repo
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 0e73b49b (git): Promote webrick to bundled gems
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 087ac34f (git): Added tool/lib into test-spec loadpath
hsbt (Hiroshi SHIBATA)
09:06 AM Revision 5dc786bf (git): Move webrick library into internal test toolchain
hsbt (Hiroshi SHIBATA)
09:06 AM Bug #17343 (Closed): Ractor can't clone frozen structures
fixed 764de7566ffa3fe828abf13ec93d76515ba27dd1 ko1 (Koichi Sasada)
08:55 AM Feature #7511 (Feedback): short-circuiting logical implication operator
naruse (Yui NARUSE)
08:54 AM Feature #5522 (Feedback): Numeric#finite?、Numeric#infinite?、Numeric#nan? の追加
naruse (Yui NARUSE)
08:53 AM Feature #10042 (Feedback): Deprecate postfix rescue syntax for removal in 3.0
naruse (Yui NARUSE)
08:50 AM Feature #7986 (Feedback): Custom case statement comparison method
naruse (Yui NARUSE)
08:49 AM Feature #5521 (Feedback): Numeric#rational?、Numeric#complex?、Numeric#float? の追加
naruse (Yui NARUSE)
08:49 AM Feature #5514 (Feedback): Numeric への quotient と quotrem の追加
naruse (Yui NARUSE)
08:48 AM Feature #6586 (Closed): debugger belongs to core
naruse (Yui NARUSE)
08:44 AM Bug #10417 (Closed): IO#set_encoding without int_enc doesn't keep current internal encoding
特に困っているって言う例を聞かないので一旦クローズします naruse (Yui NARUSE)
08:41 AM Revision 46d3ea2c (git): .github: reduce (#3876)
Comment out some 50-ish tests.
fix https://bugs.ruby-lang.org/issues/17376
shyouhei (Shyouhei Urabe)
08:22 AM Revision 9e8f732f (git): Revert "Revert some recent JIT changes"
This reverts commit b7dc04e51823f9fe8b5355c30a304ecdb11fe5ed.
This should be fine, rather necessary, too.
k0kubun (Takashi Kokubun)
08:21 AM Revision 12a1a251 (git): Revert "Revert "Have list_node at the top of rb_mjit_unit""
This reverts commit 73b07c437e24711c23dd2dd01d3ffc5f1012e046.
This was, of course, innocent.
k0kubun (Takashi Kokubun)
08:18 AM Revision 16c76599 (git): Use list_for_each_safe when list_del is used inside
list_for_each seems to cause all the SEGVs we've seen. k0kubun (Takashi Kokubun)
07:58 AM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
I have a small concern about compatibility. But basically agree. Go ahead.
Matz.
matz (Yukihiro Matsumoto)
07:04 AM Feature #17351: Deprecate Random::DEFAULT
OK, accepted.
Matz.
matz (Yukihiro Matsumoto)
06:14 AM Feature #17384: shorthand of Hash#merge
Thanks,
I didn't know the issue has been argued.
From now on, I search issues first before write.
tjdgnsqn133 (Kim Seonghoon)
05:07 AM Feature #17384 (Feedback): shorthand of Hash#merge
Please refer to previous discussions. Do you have some new insights around this area? shyouhei (Shyouhei Urabe)
04:51 AM Feature #17384: shorthand of Hash#merge
``` ruby
a = {k: 1}
b = {j: 2}
c = a.merge(b)
d = a + b # same as c
```
tjdgnsqn133 (Kim Seonghoon)
04:49 AM Feature #17384 (Feedback): shorthand of Hash#merge
Hi, all.
When I used Hash#merge, I thought it is uncomfortable.
``` ruby
a = {k: 1}
b = {j: 2}
c = a.merge(b)
```
If hash provides + like array, so useful.
tjdgnsqn133 (Kim Seonghoon)
06:08 AM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
I am OK with `Process::Status.wait`. As far as I've heard the code quality needs upgrade.
Matz.
matz (Yukihiro Matsumoto)
04:13 AM Feature #17333: Enumerable#many?
That `artifacts.count` code was a bad example; since this is error checking, in the normal case you will check all elements and pass. Only in the failure case would you avoid checking all elements, and at that point this kind of performa... Dan0042 (Daniel DeLorme)
04:05 AM Revision da3bca51 (git): cache free pages per ractor
Per ractor method cache (GH-#3842) only cached 1 page and this patch
caches several pages to keep at least 512 free slots if available.
If you increase the number of cached free slots, all cached slots
will be collected when the GC is in...
ko1 (Koichi Sasada)
04:05 AM Revision 554c0949 (git): set min/maximum free slots relative to ractor cnt
A program with multiple ractors can consume more objects per
unit time, so this patch set minimum/maximum free_slots to
relative to ractors count (upto 8).
ko1 (Koichi Sasada)
04:05 AM Revision eafe000a (git): lazy sweep tries to collect 2048 slots
Lazy sweep tries to collect free (unused) slots incrementally, and
it only collect a few pages. This patch makes lazy sweep collects
more objects (at least 2048 objects) and GC overhead of multi-ractor
execution will be reduced.
ko1 (Koichi Sasada)
12:26 AM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
@xrxr and I made a patch that implements a *negative* lookup cache. We also changed `respond_to?` to use the per class method cache.
This PR has the "respond_to" patch: https://github.com/ruby/ruby/pull/3873
This PR has the negat...
tenderlovemaking (Aaron Patterson)

12/09/2020

06:43 PM Feature #17380: Useful `include/prepend` in `refine`
Maybe we should allow `include RefinedImplementation` from https://bugs.ruby-lang.org/issues/17374#note-8 ?
Copying methods manually seems to have a very similar effect, but it would be more convenient.
Eregon (Benoit Daloze)
04:31 AM Feature #17380 (Closed): Useful `include/prepend` in `refine`
Currently, `prepend/include` within a `refine` block leads to a method not being to see itself, or others defined in the same module:
```ruby
module Code
def recurse(value = nil)
return value if value
recurse(42) # => ...
marcandre (Marc-Andre Lafortune)
05:41 PM Bug #17383: 3.0 recursion memory|speed issues
Thanks for reporting this.
Hopefully this related to #17373.
marcandre (Marc-Andre Lafortune)
04:11 PM Bug #17383 (Closed): 3.0 recursion memory|speed issues
Testing 3.0.0-preview2 against 2.7.2 I see it's still not as performant to 2.7.2 for the following code.
Below is code from Rosettacode.org
https://rosettacode.org/wiki/Palindromic_gapful_numbers#Orders_of_Magnitude_Faster:_Direct_Ge...
jzakiya (Jabari Zakiya)
03:59 PM Revision 2544f719 (git): test/ruby/test_arithmetic_sequence.rb: restore test_last_bug17218
And rename the existing `test_last_bug17218` to `test_to_a_bug17218`. Kenta Murata
03:52 PM Bug #17362: Thread core dump
npic1 (Nat Pic1) wrote in #note-6:
> Sorry, for policy reasons, I can't share the core dump.
I see, thank you for your consideration.
mame (Yusuke Endoh)
02:48 PM Bug #17362: Thread core dump
mame (Yusuke Endoh) wrote in #note-5:
> > Using v2.6.6 the code works without issues.
> ...
Sorry, for policy reasons, I can't share the core dump.
npic1 (Nat Pic1)
03:51 PM Bug #17382: Segfault in String#inspect
Thank you for the report. I think that this is the same issue as #17289 and #17362. Unfortunately, the core team has no reproducible code, so we haven't investigated the issue yet. Can you provide your code, or at least, the core dump file? mame (Yusuke Endoh)
03:34 PM Bug #17382 (Closed): Segfault in String#inspect
Hello,
We experienced a segfault in our application. It seems that it happened right after we've upgraded from ruby 2.6 to ruby 2.7.2.
The faulting ruby code is actionpack-6.0.3.4/lib/action_controller/log_subscriber.rb:16:
``` ruby...
lionelperrin (Lionel Perrin)
03:24 PM Revision bb489aca (git): memory_view.c: Add rb_memory_view_get_item and rb_memory_view_prepare_item_desc (#3871)
Kenta Murata
03:17 PM Revision 549118b3 (git): * 2020-12-10 [ci skip]
git[bot]
03:16 PM Revision 3156fb0f (git): test/ruby/test_arithmetic_sequence.rb: remove a duplicated test
There is another "test_last_bug17218" mame (Yusuke Endoh)
01:56 PM Feature #17333: Enumerable#many?
Here are a usecase where we could use `many?` over `count` for better performance.
https://github.com/Homebrew/brew/blob/master/Library/Homebrew/cask/audit.rb#L188
This code, `cask.artifacts.count { |k| k.is_a?(Artifact::Uninstall)...
okuramasafumi (Masafumi OKURA)
01:55 PM Revision eb91b22e (git): [Backport #17381] repalce the old certs in RubyGems
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@67889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
01:53 PM Revision da5d6f31 (git): [Backport #17381] replace the old certs in RubyGems
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
12:05 PM Bug #17381: Backport request for the old certs in RubyGems
merged into ruby_2_7 at git:9b884df6dd918b0fdcc256d8a9febfaccd8a9042. nagachika (Tomoyuki Chikanaga)
07:17 AM Bug #17381 (Closed): Backport request for the old certs in RubyGems
I created the replacement of the old certs in RubyGems for Ruby 2.5-2.7.
See details:
* https://github.com/rubygems/rubygems/pull/4100
* https://github.com/rubygems/rubygems/pull/4105
I attached the patch for them.
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 9b884df6 (git): Update rubygems to 3.1.5. [Bug #17381]
Add GlobalSign Root CA.
https://github.com/rubygems/rubygems/pull/4100
https://github.com/rubygems/rubygems/pull/4105
nagachika (Tomoyuki Chikanaga)
11:04 AM Feature #17327: The Queue constructor should take an initial set of items
I updated to take a single array rather than a variable number of arguments.
I had two choices for how to do this - `Set` takes an `Enumerable`, using `each` to access items, and `Array` takes another `Array`, using `#to_ary` if neede...
chrisseaton (Chris Seaton)
10:14 AM Bug #17379: Refinement with modules redefinition bug
shugo (Shugo Maeda) wrote in #note-2:
> It's an inline method cache issue and hard to solve without performance regression.
I might be wrong, and will investigate it further.
shugo (Shugo Maeda)
09:02 AM Bug #17379: Refinement with modules redefinition bug
shugo (Shugo Maeda) wrote in #note-2:
> If the behavior is not acceptable as a limitation of Refinements, it may be better to prohibit module inclusion in Refinements.
I think there is no need to prohibit inclusion of frozen modules,...
shugo (Shugo Maeda)
08:54 AM Bug #17379: Refinement with modules redefinition bug
It's an inline method cache issue and hard to solve without performance regression.
If the behavior is not acceptable as a limitation of Refinements, it may be better to prohibit module inclusion in Refinements.
shugo (Shugo Maeda)
04:21 AM Bug #17379 (Closed): Refinement with modules redefinition bug
Depending on the circumstance, a refinement can be modified even after being used:
```ruby
def foo
[:base]
end
module M
def foo
super << :M
end
end
module Ext
refine Object do
include M
end
end
us...
marcandre (Marc-Andre Lafortune)
09:49 AM Bug #17218 (Closed): Range#step sometimes behaves unexpectedly with Rational endpoints and increment
Applied in changeset commit:git|fad3023e94c45e7f03478732f7641b6f39ba9d12.
----------
Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer sequences (#3870)
[Bug #17218]
[ruby-core:100312]
Anonymous
06:37 AM Bug #17218: Range#step sometimes behaves unexpectedly with Rational endpoints and increment
@jeremyevans0 Thank you for making a candidate patch. I have reviewed it, I noticed that it resolves only an issue of `last` method, but does not of `to_a` method.
I made another patch to resolve both issues: https://github.com/ruby/ru...
mrkn (Kenta Murata)
09:48 AM Revision fad3023e (git): Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer sequences (#3870)
[Bug #17218]
[ruby-core:100312]
Kenta Murata
09:21 AM Revision cacdf268 (git): [ruby/matrix] Disable Ractor test
Marc-Andre Lafortune
08:50 AM Feature #16604 (Closed): Set default for Encoding.default_external to UTF-8 on Windows
duerst (Martin Dürst)
08:08 AM Feature #16604: Set default for Encoding.default_external to UTF-8 on Windows
This issue can be closed. It's merged in commit:94b6933d1c6f4c8698319fbcac9dcecc9033b4b9 larskanis (Lars Kanis)
08:50 AM Feature #12650 (Closed): Use UTF-8 encoding for ENV on Windows
duerst (Martin Dürst)
08:10 AM Feature #12650: Use UTF-8 encoding for ENV on Windows
This issue can be closed. It's merged in commit:ca76337a00244635faa331afd04f4b75161ce6fb larskanis (Lars Kanis)
08:40 AM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
Is this feature discussed with ko1 and nobu?
Also I suspect Matz's approval is required for this change.
naruse (Yui NARUSE)
07:15 AM Revision 150dbb65 (git): [ruby/matrix] v0.3.1
Marc-Andre Lafortune
07:15 AM Revision a7dccd08 (git): [ruby/matrix] Make frozen matrices Ractor shareable
Marc-Andre Lafortune
06:30 AM Revision 6b264e83 (git): [ruby/prime] Fix gemspec
Marc-Andre Lafortune
06:15 AM Revision 45b29754 (git): need the lock for debug checking.
Checking code (RGENGC_CHECK_MODE > 0) need a VM lock because it
refers objspace.
ko1 (Koichi Sasada)
06:15 AM Misc #17376: Reduce number of GitHub Actions
Specifying [`max-parallel`](https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymax-parallel) to a job with a large matrix might also be an option if our goal is to avoid... k0kubun (Takashi Kokubun)
06:03 AM Revision 47ff8de6 (git): Update maintainers list [doc] [ci skip]
Marc-Andre Lafortune
05:45 AM Revision b603085d (git): [ruby/prime] v0.1.2
Marc-Andre Lafortune
05:41 AM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
I made this tiny script, which you can use to test (in the branch in the first post)
```
#!/usr/bin/env ruby
# frozen_string_literal: true
ENV['RAILS_ENV'] = 'profile'
require File.expand_path("../../config/environment", __FIL...
sam.saffron (Sam Saffron)
05:40 AM Feature #16468 (Closed): Switch to Miller-Rabin for Prime.prime?
Applied in changeset commit:git|1866d483dce614a02c5186bd0588b48a5041e55e.
----------
[ruby/prime] Optimize `Integer#prime?`
Miller Rabin algorithm can be used to test primality for integers smaller than a max value "MaxMR" (~3e24)
It ...
Anonymous
05:40 AM Revision 1866d483 (git): [ruby/prime] Optimize `Integer#prime?`
Miller Rabin algorithm can be used to test primality for integers smaller than a max value "MaxMR" (~3e24)
It can be much faster than previous implementation: ~100x faster for numbers with 13 digits, at least 5 orders of magnitude for e...
Marc-Andre Lafortune
05:37 AM Misc #17346: DevelopersMeeting20201210Japan
* [Feature #16806] Struct#initialize accepts keyword arguments too by default (k0kubun)
* Is there any update on kwargs since [the last discussion](https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20200514Japan.md#...
k0kubun (Takashi Kokubun)
04:32 AM Misc #17346: DevelopersMeeting20201210Japan
* [Feature #17380] Useful `include/prepend` in `refine` (marcandre)
* yes/no?
marcandre (Marc-Andre Lafortune)
04:10 AM Revision dea60004 (git): Ad-hoc fix of test-bundler
nobu (Nobuyoshi Nakada)
02:51 AM Revision b419f90a (git): Tweaked `Process::Status.wait`
* revert `rb_last_status_set`
* renamed the new function as `rb_process_status_new`
* `rb_process_status_new` always freezes the return value
* marked `Process::Status.wait` as EXPERIMENTAL, as it has not
been discussed totally yet.
nobu (Nobuyoshi Nakada)
02:32 AM Revision 4f907a80 (git): Removed declaration of non-existent symbol
nobu (Nobuyoshi Nakada)
01:33 AM Bug #17374: Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune) wrote in #note-11:
> shugo (Shugo Maeda) wrote in #note-9:
> ...
In addition to implementation issues described by eregon, it may be confusing because it changes the semantics of include/prepend to code...
shugo (Shugo Maeda)

12/08/2020

10:49 PM Revision 27b6df96 (git): Add test that `Ractor.make_shareable` calls user defined `#freeze`
Marc-Andre Lafortune
08:37 PM Bug #17374 (Rejected): Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune) wrote in #note-11:
> The question remains: if it's a bad idea to `include/prepend` modules inside a `refine` block, could we not make it a good idea? Would it be technically difficult to duplicate the me...
Eregon (Benoit Daloze)
04:39 AM Bug #17374: Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune) wrote in #note-10:
> jeremyevans0 (Jeremy Evans) wrote in #note-8:
> ...
As commonly used, you are correct. However, one possibility is:
```ruby
path = File.expand_path('implementation.rb', __dir...
jeremyevans0 (Jeremy Evans)
04:04 AM Bug #17374: Refined methods aren't visible from a refinement's module
shugo (Shugo Maeda) wrote in #note-9:
> I don't recommend module inclusion to define refined methods.
Indeed!
The question remains: if it's a bad idea to `include/prepend` modules inside a `refine` block, could we not make it a go...
marcandre (Marc-Andre Lafortune)
04:01 AM Bug #17374: Refined methods aren't visible from a refinement's module
jeremyevans0 (Jeremy Evans) wrote in #note-8:
> After playing around with it, I found a way to get it to work without duplicating the literal method definitions.
Ah! I had tried the other way (doesn't work), but from refinement modul...
marcandre (Marc-Andre Lafortune)
01:05 AM Bug #17374: Refined methods aren't visible from a refinement's module
It's intended behavior.
Refinements are activated either in scope where using is called or in blocks given to refine.
I don't recommend module inclusion to define refined methods.
shugo (Shugo Maeda)
08:19 PM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
Non-blocking `Process.wait` has been merged. ioquatix (Samuel Williams)
07:55 PM Revision 2553c5f9 (git): Add support for non-blocking `Process.wait`.
Samuel Williams
04:58 PM Bug #17377: A warning message doesn't display using -W option on irb
`irb -W` only sets `$VERBOSE = true`, it doesn't enable deprecation warnings, unlike `ruby -W`. Similar issue with `irb -w`. I've submitted a pull request to irb: https://github.com/ruby/irb/pull/145 jeremyevans0 (Jeremy Evans)
02:09 PM Bug #17377: A warning message doesn't display using -W option on irb
Thanks issues :)
There was no warning message in Ruby 3.0.0.0dev either.
```ruby
~ $ irb -W
irb(main):001:0> RUBY_DESCRIPTION
=> "ruby 3.0.0dev (2020-12-08T10:37:42Z master 09229c71bc) [x86_64-linux]"
irb(main):002:0> IRB::VERSIO...
osyo (manga osyo)
01:53 PM Bug #17377 (Closed): A warning message doesn't display using -W option on irb
## Expected
Using -W option, a warning statement display when deprecated method call.
```
$ irb -W
irb(main):001:0> Object.tainted?
(irb):1: warning: Object#tainted? is deprecated and will be removed in Ruby 3.2
=> false
```
...
ima1zumi (Mari Imaizumi)
04:41 PM Revision a4a92ae6 (git): * 2020-12-09 [ci skip]
git[bot]
04:40 PM Revision ee194af2 (git): re-layout rb_ractor_t
separate synchronization data and ractor local data. ko1 (Koichi Sasada)
04:25 PM Bug #16809: Fiber crashes with --with-coroutine=copy
ioquatix (Samuel Williams) wrote in #note-8:
> @jeremyevans0 can you manage the backport? Or who is responsible?
The branch maintainer is responsible. For 2.7, that is currently @nagachika .
I updated the backport flag to indicat...
jeremyevans0 (Jeremy Evans)
08:18 AM Bug #16809: Fiber crashes with --with-coroutine=copy
@jeremyevans0 can you manage the backport? Or who is responsible?
This commit (and only this commit) should be backported: https://github.com/ruby/ruby/pull/3624/commits/440983fa9e7695d83def190e9701b5a22e076495
ioquatix (Samuel Williams)
08:17 AM Bug #16809 (Closed): Fiber crashes with --with-coroutine=copy
This was fixed in https://github.com/ruby/ruby/pull/3624 ioquatix (Samuel Williams)
04:18 PM Feature #16611 (Closed): net/smtp: Add SNI support
jeremyevans0 (Jeremy Evans)
07:34 AM Feature #16611: net/smtp: Add SNI support
FYI: This ticket can be closed. It was merged with https://github.com/ruby/net-smtp/pull/4 nevans (Nicholas Evans)
03:28 PM Feature #17378: Ractor#receive with filtering like other actor langauge
Implementation is: https://github.com/ruby/ruby/pull/3862 ko1 (Koichi Sasada)
03:27 PM Feature #17378 (Closed): Ractor#receive with filtering like other actor langauge
With discussion with @marcandre, we found good extension for `Ractor.receive` with block.
```ruby
Ractor.receive do |msg|
if msg is match to condition?
true
else
false
end
end
```
This block iterates incoming ...
ko1 (Koichi Sasada)
01:50 PM Revision 2749123e (git): Supported category option in Warning#warn
nobu (Nobuyoshi Nakada)
01:13 PM Revision d5ffa4e9 (git): [DOC] mentioned category option
nobu (Nobuyoshi Nakada)
12:58 PM Revision 2427393b (git): Revert "test/fiddle/helper.rb: remove duplication (#3863)" (#3865)
This reverts commit bd47a8d660ab33a20c5e28d0effcc29105c434e4.
`libc_so` and `libm_so` are `nil` at line 124 because Big Sur doesn't have `/usr/lib/libSystem.B.dylib`.
The reassignment at line 127 is necessary in this case.
Kenta Murata
12:42 PM Revision 30d4a7ad (git): Update rubygems.org links for publlished default gems.
hsbt (Hiroshi SHIBATA)
10:38 AM Bug #16762 (Closed): Ruby is not properly fortified on armv7hl
ioquatix (Samuel Williams)
10:38 AM Bug #16762: Ruby is not properly fortified on armv7hl
It passed arm32 on travis (as expected), so I merged it. Thanks everyone! ioquatix (Samuel Williams)
08:22 AM Bug #16762: Ruby is not properly fortified on armv7hl
https://github.com/ruby/ruby/pull/3866 ioquatix (Samuel Williams)
10:37 AM Revision 09229c71 (git): Fix "Ruby is not properly fortified on armv7hl".
See <https://bugs.ruby-lang.org/issues/16762> for more details. Samuel Williams
09:46 AM Misc #17346: DevelopersMeeting20201210Japan
* [Misc #17376] Reduce GitHub Actions naruse (Yui NARUSE)
09:45 AM Misc #17376 (Assigned): Reduce number of GitHub Actions
At this time we have 127 checks for GitHub commits, but unfortunately GitHub UI only shows 100 checks.
It sometimes makes we don't see a failed check.
Could you reduce number of GitHub actions at least less than 100?
naruse (Yui NARUSE)
09:38 AM Revision aeeaf90b (git): Added missing dependency of fileutils
hsbt (Hiroshi SHIBATA)
09:02 AM Revision d7a16670 (git): [DOC] Fixed RDoc directives [ci skip]
nobu (Nobuyoshi Nakada)
08:30 AM Revision 86332cdc (git): Bump version numbers of RubyGems and Bundler on NEWS
hsbt (Hiroshi SHIBATA)
08:30 AM Revision 473f9d2d (git): Merge prepare version of Bundler 2.2.0
hsbt (Hiroshi SHIBATA)
08:30 AM Revision 4aca77ed (git): Merge prepare version of RubyGems 3.2.0
hsbt (Hiroshi SHIBATA)
07:53 AM Revision 6a6a24df (git): Fix links [ci skip]
znz (Kazuhiro NISHIYAMA)
07:46 AM Revision 4b583d49 (git): Add NEWS about UTF-8 on Windows
* 94b6933d1c6f4c8698319fbcac9dcecc9033b4b9
* ca76337a00244635faa331afd04f4b75161ce6fb
naruse (Yui NARUSE)
07:38 AM Revision 509241b3 (git): Add NEWS about Net::SMTP [ci skip]
znz (Kazuhiro NISHIYAMA)
06:42 AM Revision bd47a8d6 (git): test/fiddle/helper.rb: remove duplication (#3863)
Kenta Murata
05:12 AM Revision b7dc04e5 (git): Revert some recent JIT changes
Revert "Lock the entire active_units loop"
This reverts commit 5c2ff88be2e515613dfe54823e8429656f688e9f.
Revert "Lock active_units references on compaction"
This reverts commit 556a7285080c1344c75bb93a333c9bfc5d631c61.
Revert "Wait f...
k0kubun (Takashi Kokubun)
05:02 AM Revision 73b07c43 (git): Revert "Have list_node at the top of rb_mjit_unit"
This reverts commit 3319ce37651aa7e50c31b5fba14871938318b37a.
I still haven't figured out why, but this seems to have increased the
failure rate.
k0kubun (Takashi Kokubun)
03:57 AM Revision a8f16df6 (git): Wait for GC before unload_units
k0kubun (Takashi Kokubun)
03:50 AM Bug #15661: Disallow concurrent Dir.chdir with block
I think the current condition of exception is wrong.
It should be only when another thread tries `chdir`.
https://github.com/ruby/ruby/pull/3861
nobu (Nobuyoshi Nakada)
01:14 AM Bug #15661 (Open): Disallow concurrent Dir.chdir with block
mame (Yusuke Endoh)
03:21 AM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
https://github.com/ruby/ruby/pull/2583 was an attempt to reduce method cache misses on Discourse, and IIRC https://github.com/ruby/ruby/pull/2888 removed it. It might be related at least for some extent. k0kubun (Takashi Kokubun)
02:52 AM Bug #17220 (Open): Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
nobu (Nobuyoshi Nakada)
02:43 AM Revision ea18c8bb (git): Made method-local instance variables local variables
nobu (Nobuyoshi Nakada)

12/07/2020

11:39 PM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
It looks like [the global method cache was removed](https://github.com/ruby/ruby/commit/b9007b6c548f91e88fd3f2ffa23de740431fa969#diff-884a5a8a369ef1b4c7597e00aa65974cec8c5f54f25f03ad5d24848f64892869L9-L27).
On f2286925f0 the debug cou...
tenderlovemaking (Aaron Patterson)
09:58 PM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
I backported the `mc_search` debug counter. On Ruby master, `search_method` is called 2,480,052 times, but on f2286925f08406bc857f7b03ad6779a5d61443ae it's only called 501,903 times. I think this is the source of our performance degrad... tenderlovemaking (Aaron Patterson)
09:28 PM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
Here is what I've found so far:
I've been testing with [RailsBench](https://github.com/k0kubun/railsbench). I ran this command:
```
RAILS_ENV=production INTERVAL=100 WARMUP=1 BENCHMARK=10000 perf record -F 99 --call-graph dwarf (which...
tenderlovemaking (Aaron Patterson)
05:25 PM Bug #17373: Ruby 3.0 is slower at Discourse bench than Ruby 2.7
Could you, or anybody reading this ticket, use the benchmark to find revisions which seem to have contributed to the performance decrease? Detecting which change was bad has been the most time-consuming part even while we have a good ben... k0kubun (Takashi Kokubun)
04:44 AM Bug #17373 (Closed): Ruby 3.0 is slower at Discourse bench than Ruby 2.7
We have a continuous effort to keep https://rubybench.org/ up to date. Unfortunately we have lapsed a bit on updates so I decided to run Discourse bench by hand.
On my local system I am noticing the timing are much slower on Discourse...
sam.saffron (Sam Saffron)
11:34 PM Revision 5c2ff88b (git): Lock the entire active_units loop
The previous fix seems not working. Let me test if this works. k0kubun (Takashi Kokubun)
11:31 PM Feature #17375 (Open): Add scheduler callbacks for transferring fibers
When working on #17325 (`Fiber#cancel`) and #17331 (`Fiber#raise` on transferring fibers), two very reasonable questions keep coming up:
* "how and when should control pass back to the current fiber?" and
* "is it expected that termina...
nevans (Nicholas Evans)
10:49 PM Bug #17372 (Closed): Actions Windows MinGW failures 2020-12-06
k0kubun (Takashi Kokubun)
08:31 PM Bug #17372: Actions Windows MinGW failures 2020-12-06
@Eregon
Thanks. I checked MinGW in my ruby fork, so I haven't done PR. Will you add a release in setup-ruby? Not sure when RubyGems would be patched, probably better if the patch comes from RubyGems? I did open a (passing) PR ther...
MSP-Greg (Greg L)
05:53 PM Bug #17372: Actions Windows MinGW failures 2020-12-06
Sorry about that. Yes, it would be useful to handle this better in RubyGems' test suite, either raise an error if it's set or make sure it's unset while running the tests. Eregon (Benoit Daloze)
04:10 PM Bug #17372: Actions Windows MinGW failures 2020-12-06
@Eregon
@hsbt
The cause of the failure in the MinGW CI is the setting of `ENV['BUNDLER_VERSION']` by ruby/setup-ruby, and also the fact that the RubyGems test suite (maybe TestCase?) is not accounting for that ENV variable in its set...
MSP-Greg (Greg L)
10:47 PM Revision 41fafd9d (git): Remove BUNLDER_VERSION in Windows (#3859)
[Bug #17372] MSP-Greg (Greg L)
10:21 PM Revision 2580093d (git): Pass the flag as $TESTOPTS
Fixing the failure of a4f292426b40f9d6c8f3d646e4b7c667313074f2 like
https://github.com/ruby/ruby/runs/1513663542
k0kubun (Takashi Kokubun)
09:54 PM Revision 3319ce37 (git): Have list_node at the top of rb_mjit_unit
to convert list_node to rb_mjit_unit easily in gdb. k0kubun (Takashi Kokubun)
09:44 PM Bug #17374: Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune) wrote in #note-7:
> jeremyevans0 (Jeremy Evans) wrote in #note-6:
> ...
Ah, thank you for clarifying. I still think the behavior is expected, even if my fix was bad, because the refinement is not activ...
jeremyevans0 (Jeremy Evans)
09:06 PM Bug #17374: Refined methods aren't visible from a refinement's module
jeremyevans0 (Jeremy Evans) wrote in #note-6:
> This is because `refine` implicitly activates the refinement, so the refinement is active at the point `bar` is called. This approach works back to Ruby 2.0, with output:
> ...
Thanks for...
marcandre (Marc-Andre Lafortune)
08:31 PM Bug #17374: Refined methods aren't visible from a refinement's module
I do not think this is a bug. The question to ask yourself is, at the point of call, is the refinement active?. So in method `Implementation#foo`, we are talking about the call to `bar`:
```ruby
def foo
super(bar) # ...
jeremyevans0 (Jeremy Evans)
08:19 PM Bug #17374: Refined methods aren't visible from a refinement's module
Eregon (Benoit Daloze) wrote in #note-4:
> In the original example, there is no way to know that Implementation will be followed by `refine`, and that the methods declared there should be affected.
> ...
I might be confused as to what ...
marcandre (Marc-Andre Lafortune)
06:58 PM Bug #17374: Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune) wrote in #note-3:
> They can be defined in different `refine` blocks and it still works:
Yes, because they are `refine` under the same "refinement namespace" module.
And each `refine` is basically `u...
Eregon (Benoit Daloze)
06:22 PM Bug #17374: Refined methods aren't visible from a refinement's module
Eregon (Benoit Daloze) wrote in #note-2:
> I think so. Refined methods only see each other if they are directly defined in the `refine`.
They can be defined in different `refine` blocks and it still works:
```ruby
class Foo
module Ex...
marcandre (Marc-Andre Lafortune)
10:25 AM Bug #17374: Refined methods aren't visible from a refinement's module
I think so. Refined methods only see each other if they are directly defined in the `refine`.
Using `prepend`/`include` is probably not recommended anyway, it leads to many complications in the semantics.
Eregon (Benoit Daloze)
05:26 AM Bug #17374: Refined methods aren't visible from a refinement's module
Is this intentional?
```
class Foo
module Extension
module Implementation
def foo
super(bar) # << Can not see bar
end
def bar # << Bar is in the same module!
42
end
end
...
marcandre (Marc-Andre Lafortune)
05:25 AM Bug #17374 (Rejected): Refined methods aren't visible from a refinement's module
marcandre (Marc-Andre Lafortune)
08:45 PM Revision a4f29242 (git): skip failing tests in test-all on mingw
https://bugs.ruby-lang.org/issues/17372 naruse (Yui NARUSE)
06:41 PM Misc #17346: DevelopersMeeting20201210Japan
* [Bug #15661] Disallow concurrent Dir.chdir with block (jonathanhefner)
* This change is causing some issues in Rails (e.g. https://github.com/rails/rails/commit/ae5ecfe26c8 and https://github.com/rails/rails/issues/40756).
* I ha...
jonathanhefner (Jonathan Hefner)
05:10 PM Revision 146b3695 (git): ruby.c: remove needless substitution of uenc
uenc has already been initialized the top of the function. Kenta Murata
05:01 PM Revision 7e69296a (git): memory_view.c: Add rb_memory_view_extract_item_members (#3855)
Kenta Murata
05:00 PM Revision ca76337a (git): Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)
* Windows: Read ENV names and values as UTF-8 encoded Strings
Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650
This also removes the special encoding for ENV['PATH'] and some
complexity in the code that is unnecessa...
Lars Kanis
04:48 PM Revision 94b6933d (git): Set default for Encoding.default_external to UTF-8 on Windows (#2877)
* Use UTF-8 as default for Encoding.default_external on Windows
* Document UTF-8 change on Windows to Encoding.default_external
fix https://bugs.ruby-lang.org/issues/16604
Lars Kanis
04:44 PM Feature #13488 (Closed): Set Encoding.default_external to UTF-8 on Windows
naruse (Yui NARUSE)
04:43 PM Feature #13488 (Open): Set Encoding.default_external to UTF-8 on Windows
naruse (Yui NARUSE)
03:08 PM Revision 3bf7b999 (git): [ruby/reline] Editing to initial content is not just cursor moving
https://github.com/ruby/reline/commit/0a4f175b0a aycabta (aycabta .)
03:01 PM Revision b5ef4ad3 (git): * 2020-12-08 [ci skip]
git[bot]
02:57 PM Revision 05e1d87e (git): rbinstall.rb: do not install useless files after installed
nobu (Nobuyoshi Nakada)
02:47 PM Revision 91f831ac (git): Extract gemspec to versioned file
Not to be overwritten by test-bundler-prepare. gem files often
contain useless gemspec files which have not been processed.
nobu (Nobuyoshi Nakada)
01:40 PM Revision e025113d (git): rbinstall.rb: relaxed split argument
did_you_mean splits the output by `$/`. nobu (Nobuyoshi Nakada)
01:38 PM Revision 5894ea59 (git): rbinstall.rb: fix the position to expand files
As `spec.files` is used for `executables` and so on, the expanded
list needs to be located at the same place.
nobu (Nobuyoshi Nakada)
12:37 PM Revision c6b37cb1 (git): Remove resolv_timeout of TCPSocket.new from NEWS
We couldn't support it for now, because getaddrinfo_a(3)
was reverted in 5d8bcc4870. `resolv_timeout` will be just ignored.
Glass_saga (Masaki Matsushita)
10:36 AM Feature #17365: Can not respond (well) to a Ractor
Something quite related was discussed a while ago, how to pattern match and not dequeue a message: https://bugs.ruby-lang.org/issues/14912#change-78398 Eregon (Benoit Daloze)
06:12 AM Feature #17365: Can not respond (well) to a Ractor
I wrote a proof of concept (in Ruby) of the proposed API:
https://github.com/ractor-tools/ractor-channel
marcandre (Marc-Andre Lafortune)
10:09 AM Revision 29dee10a (git): rbinstall.rb: install files expanded from bundled gems
Although gemspec file (e.g., power_assert and rake) often uses
`git ls-files`, as it does not make sense in other than its own
repository, it has been ignored now. Gather all files expanded
from the bundled gem to install, instead.
nobu (Nobuyoshi Nakada)
09:38 AM Revision 7817a438 (git): Removed deprecated Time#succ
nobu (Nobuyoshi Nakada)
09:35 AM Revision 20d53dad (git): Update the version guard to 3.0
nobu (Nobuyoshi Nakada)
09:35 AM Revision 547c71de (git): Hash#index: delete
Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7. shyouhei (Shyouhei Urabe)
07:47 AM Bug #17368 (Closed): `Ractor.select()` loops forever
Merged, thanks! marcandre (Marc-Andre Lafortune)
07:08 AM Bug #17368: `Ractor.select()` loops forever
+1 ko1 (Koichi Sasada)
07:21 AM Revision 53ce71b5 (git): Ractor.select requires an argument or yield_value
Marc-Andre Lafortune
07:01 AM Revision c2fa024e (git): fix Thread's interrupt and Ractor#take issue
Thread's interrupt set Ractor's wakeup_status as interrupted, but
the status remains next Ractor communication API. This patch makes
to ignore the previous interrupt state.
[Bug #17366]
Also this patch solves the Thread#kill and Ractor#...
ko1 (Koichi Sasada)
05:20 AM Revision cc36e499 (git): Doxygen terminology update [ci skip]
Follow N2328 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2328.pdf shyouhei (Shyouhei Urabe)
05:19 AM Feature #17156: Refinements per directory tree
I believe a good solution would be a configurable RuboCop cop that could add it for you. It should be easily more customizable than any solution in core, while maintaining Matz' idea to avoid too much magic "hey where did this method com... marcandre (Marc-Andre Lafortune)
04:33 AM Revision 5d8bcc48 (git): Revert getaddrinfo_a()
getaddrinfo_a() gets stuck after fork().
To avoid this, we need 1 second sleep to wait for internal
worker threads of getaddrinfo_a() to be finished, but that is unacceptable.
[Bug #17220] [Feature #17134] [Feature #17187]
Glass_saga (Masaki Matsushita)
04:32 AM Revision 1ba05f5b (git): need more lock in finalize_list()
Some data should be accessed in parallel so they should be protected
by the lock.
ko1 (Koichi Sasada)
04:26 AM Feature #17323: Ractor::LVar to provide ractor-local storage
In the meantime, I create the gem `ractor-local_variable`.
Code here: https://github.com/ractor-tools/ractor-local_variable/
Of course, `Mutex` is Ractor local... I used a `Ractor` as a basic mutex, there's no other way, right?
marcandre (Marc-Andre Lafortune)
04:23 AM Revision 556a7285 (git): Lock active_units references on compaction
This might race with mjit_recompile. k0kubun (Takashi Kokubun)
02:57 AM Revision 4b4af40f (git): Update TypeProf to 0.9.0 (#3856)
* Update TypeProf to 0.9.0 mame (Yusuke Endoh)
02:27 AM Revision 0ebf6bd0 (git): RB_VM_LOCK_ENTER_NO_BARRIER
Write barrier requires VM lock because it accesses VM global bitmap
but RB_VM_LOCK_ENTER() can invoke GC because another ractor can wait
to invoke GC and RB_VM_LOCK_ENTER() is barrier point. This means that
before protecting by a write b...
ko1 (Koichi Sasada)
02:16 AM Feature #16827 (Closed): C API for writing custom random number generator that can be used as Random objects
Closed by af5e87ab218c5f4e34c6cdb54ae119a7f0f9033f mrkn (Kenta Murata)
02:10 AM Revision 8dd03e5c (git): skip assertion on multi-ractor
This assertion is not considerred on multi-ractor mdoe. ko1 (Koichi Sasada)
12:22 AM Bug #17366: Ractor odd issue with timeout + receive + sleep + take
I can confirm with it:
```ruby
r = Ractor.new {
begin
pth = Thread.current
Thread.new{ pth.kill }.join
rescue => e
p e
end
}
p r.take
```
ko1 (Koichi Sasada)

12/06/2020

11:53 PM Feature #15975: Add Array#pluck
Apologies for posting to a closed ticket, but here's a thought in case it helps someone propose something else in future: partial application in `#to_proc`, e.g. `games.map(&(:[], :steam_id))`
I hate the syntax I just invented, but the ...
phluid61 (Matthew Kerwin)
06:01 PM Feature #15975 (Rejected): Add Array#pluck
Matz has already stated that it's a no, so I will close this.
I'll add that the issue should not be about a shorthand to `map` and calling `[]` or `dig`, but how to write concisely `{|game| game[:steam_id]}`. As @inopinatus said, maybe ...
marcandre (Marc-Andre Lafortune)
05:18 PM Feature #15975: Add Array#pluck
I was going to suggest the same thing because I think it's a very useful shorthand! Here's an example I run into a lot when manipulating data in my Ruby scripts.
``` ruby
# Lets say I have an array of hashes representing video games (th...
connorshea (Connor Shea)
11:28 PM Revision bef3eb54 (git): fix decl of ruby_single_main_ractor
On windows, MJIT doesn't work without this patch because of
the declaration of ruby_single_main_ractor. This patch fix this
issue and move the definition of it from ractor.c to vm.c to locate
near place of ruby_current_vm_ptr.
ko1 (Koichi Sasada)
11:28 PM Revision 344ec26a (git): tuning trial: newobj with current ec
Passing current ec can improve performance of newobj. This patch
tries it for Array and String literals ([] and '').
ko1 (Koichi Sasada)
11:28 PM Revision 59ddb88d (git): RB_EC_NEWOBJ_OF
NEWOBJ with current ec. ko1 (Koichi Sasada)
11:28 PM Revision 91d99025 (git): per-ractor object allocation
Now object allocation requires VM global lock to synchronize objspace.
However, of course, it introduces huge overhead.
This patch caches some slots (in a page) by each ractor and use cached
slots for object allocation. If there is no ca...
ko1 (Koichi Sasada)
11:28 PM Revision 1d0bf3d8 (git): log for the beggining of vm_lock_enter
Before this patch, there is no information to start locking. ko1 (Koichi Sasada)
11:28 PM Revision 554a7180 (git): RB_VM_LOCK_ENTER_CR_LEV
This is variant of RB_VM_LOCK_ENTER_LEV, but accept current racotr's
pointer.
ko1 (Koichi Sasada)
11:28 PM Revision 23f94474 (git): show ractor info on non-single ractor mode
Without this patch, Ruby doesn't show ractor's information when
there is only 1 ractor. However it is hard to read the log when
some ractors are created and terminated. This patch makes to keep
showing ractor's information on multi-racto...
ko1 (Koichi Sasada)
11:28 PM Revision 307732cc (git): cancel theap on multi-ractors
accessing theap needs complicating synchronization but it reduce
performance on multi-ractor mode. So simply stop using theap
on multi-ractor mode. In future, theap should be replaced with
more cleaver memory strategy.
ko1 (Koichi Sasada)
11:28 PM Revision b67b24d0 (git): ruby_single_main_ractor for single ractor mode
ruby_multi_ractor was a flag that indicates the interpreter doesn't
make any additional ractors (single ractor mode).
Instead of boolean flag, ruby_single_main_ractor pointer is introduced
which keeps main ractor's pointer if single ract...
ko1 (Koichi Sasada)
11:20 PM Feature #17323: Ractor::LVar to provide ractor-local storage
I'm having difficulties because we don't have Ractor-local storage...
I'd like to implement a Ractor compatible `SharedQueue`.
I'd like to do it without going through a bridge Ractor, so I'm trying to refine `Ractor` to add `channe...
marcandre (Marc-Andre Lafortune)
10:06 PM Misc #17346: DevelopersMeeting20201210Japan
* [Feature #17365] Adding `channel` to Ractor push api (marcandre)
* yes/no?
* [Feature #17323] Ractor-local storage (marcandre)
* What API to use?
marcandre (Marc-Andre Lafortune)
05:54 PM Misc #17346: DevelopersMeeting20201210Japan
* [Feature #12650] Use UTF-8 encoding for ENV on Windows (larskanis)
* See this with the next topic together
* [Feature #16604] Set default for Encoding.default_external to UTF-8 on Windows (larskanis)
* Both have been postponed to r...
larskanis (Lars Kanis)
05:24 PM Misc #17346: DevelopersMeeting20201210Japan
- [Feature #15975] Add `Array#pluck`/`Enumerable#pluck` method
- It pulls values out of an array of hashes (e.g. array of user hashes, `users.pluck(:username)` gets all their usernames)
- Please reconsider adding the method. I've add...
connorshea (Connor Shea)
02:57 PM Misc #17346: DevelopersMeeting20201210Japan
* [Feature #17371] Reintroduce `expr in pat` (ktsj)
* Is it OK?
ktsj (Kazuki Tsujimoto)
10:03 PM Feature #17365: Can not respond (well) to a Ractor
A keyword `channel` seems more appropriate:
```
my_channel = :return_channel
server.send(:retrieve, :key, Ractor.current, my_channel)
Ractor.receive channel: my_channel
# on the server
case Ractor.receive
in [:retrieve, key, c...
marcandre (Marc-Andre Lafortune)
04:29 PM Bug #17372 (Closed): Actions Windows MinGW failures 2020-12-06
JFYI, I'm trying to sort out the recent failures in Windows mingw.
ruby-loco Actions builds (both mingw & mswin) are failing, same tests failing as mingw CI here.
ruby-loco AppVeyor build (only mingw) is passing.
Both ruby-loco ...
MSP-Greg (Greg L)
03:38 PM Revision 60eabb1a (git): Revert "memory_view.c: Add rb_memory_view_extract_item_members"
This reverts the following three commits.
- ce707079c153f389d861c91a8dccc510fab0e245
- 1a76bb56b0ba99a19d1373c4c8ebac42e7b6f27c
- 51500eedefa492699668ced3e07e330a9a4d53ee
Kenta Murata
03:19 PM Revision f9fd99e6 (git): * 2020-12-07 [ci skip]
git[bot]
03:19 PM Revision ce707079 (git): memory_view.c: suppress uninitialized warning
Kenta Murata
02:54 PM Feature #17371 (Closed): Reintroduce `expr in pat`
How about reintroducing `expr in pat`, as akr-san proposed in DevelopersMeeting20201026Japan.
The difference between `expr => pat` and new `expr in pat` is the return value of the expression.
```
# expr => pat
0 => a #=> void (su...
ktsj (Kazuki Tsujimoto)
02:48 PM Revision e427c5cc (git): Update rbs
nobu (Nobuyoshi Nakada)
02:33 PM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
Thanks for providing the fix. I have opened a pull request to revert 'sleep 1' workarounds https://github.com/rails/rails/pull/40754 . yahonda (Yasuo Honda)
02:24 PM Revision 1a76bb56 (git): memory_view.c: Fix the argument type of rb_memory_view_extract_item_members
Kenta Murata
01:46 PM Revision 51500eed (git): memory_view.c: Add rb_memory_view_extract_item_members
Kenta Murata
01:19 PM Revision 14580ebe (git): Update rbs
nobu (Nobuyoshi Nakada)
07:11 AM Revision 3184cd85 (git): Updated bundled gems
nobu (Nobuyoshi Nakada)
07:11 AM Revision e4e2a335 (git): update-bundled_gems: support recent format, keep the tag to test
nobu (Nobuyoshi Nakada)
07:11 AM Revision ea9f16a2 (git): update-bundled_gems: chomp ".git" suffix from the source code URI
nobu (Nobuyoshi Nakada)
07:11 AM Revision 967ed35b (git): Moved update-bundled_gems code to a tool
nobu (Nobuyoshi Nakada)
06:38 AM Bug #14968: [PATCH] io.c: make all pipes nonblocking by default
Eric, we implemented the vast majority of this PR but our current implementation makes all I/O non-blocking by default. You laid the ground work for this and made my job much easier. Given that Windows has limited support/performance iss... ioquatix (Samuel Williams)
06:36 AM Feature #16786 (Closed): Light-weight scheduler for improved concurrency.
The core of this proposal is now implemented. ioquatix (Samuel Williams)
06:35 AM Feature #13618 (Closed): [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
Eric thank you for your ideas, effort and inspiration. We have adopted something very similar to this proposal in many ways, except that the implementation of the underlying scheduler is provided by a gem. ioquatix (Samuel Williams)
06:31 AM Revision 18b2ce11 (git): Mentioned numbered parameter assignment is a SyntaxError in NEWS [ci skip]
Requested by Junichi Ito. jeremyevans (Jeremy Evans)
05:16 AM Feature #16476: Socket.getaddrinfo cannot be interrupted by Timeout.timeout
ioquatix (Samuel Williams) wrote in #note-12:
> Adding timeouts as arguments is not particularly useful either. It's not particularly easy to compose timeouts or use a single timeout for multiple operations, and it makes the underlying ...
jeremyevans0 (Jeremy Evans)
02:08 AM Feature #16476: Socket.getaddrinfo cannot be interrupted by Timeout.timeout
I have some feedback:
- I wish we don't use strange abbreviations like "resolv_timeout" and use correct English like "resolve_timeout".
- I'm not convinced that `getaddrinfo_a` is a good idea, it has a user-space thread pool and the imp...
ioquatix (Samuel Williams)
02:02 AM Bug #17331: Let Fiber#raise work with transferring fibers
I consider this a bug fix rather than an interface change. I'll review it and consider merging it today. ioquatix (Samuel Williams)
01:53 AM Revision 5d07a21c (git): RubyGems certs - remove AddTrust, add GlobalSign Root R3
MSP-Greg (Greg L)

12/05/2020

04:32 PM Revision 76439eee (git): Call cleanup function for getaddrinfo_a(3) only before fork()
Previously, rb_getaddrinfo_a_before_exec() is called from before_exec().
However, the function needs to be called only before fork().
The change moves it to before_fork().
Glass_saga (Masaki Matsushita)
04:05 PM Revision a38d4473 (git): * 2020-12-06 [ci skip]
git[bot]
04:01 PM Revision c56a1c19 (git): Extend sleep time to 1.5 second in rb_getaddrinfo_a_before_exec()
After 94d49ed31c, TestSocket#test_getaddrinfo_after_fork fails in some
platforms. To avoid this, the change extends sleep time to 1.5 second.
Glass_saga (Masaki Matsushita)
01:22 PM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
I clarified with @ioquatix, the code above should be ` end.value` so it returns the Process::Status and `system` still sets it.
Then the change sounds good to me.
Eregon (Benoit Daloze)
12:57 PM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
> Does such code still work, with a scheduler?
Yes.
> ...
Nope, it's handled by `Process.wait` and so on.
> Otherwise, just switching between Fibers (e.g., on IO) would expose the $? of other Fibers, which will lead to bugs.
...
ioquatix (Samuel Williams)
12:53 PM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
Does such code still work, with a scheduler?
```ruby
`echo foo`
p $? # => #<Process::Status: pid 43525 exit 0>
```
If not, it seems a significant problem, as existing code would break with a scheduler.
Given the implementation in the t...
Eregon (Benoit Daloze)
12:10 PM Feature #17369 (Closed): Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
https://github.com/ruby/ruby/pull/3853
This PR introduces optional hooks to the scheduler interface for handling `Process.wait`, `Kernel.system` and other related methods (`waitpid`, `wait2`, etc).
It funnels all methods through a ...
ioquatix (Samuel Williams)
12:18 PM Feature #17370 (Closed): Introduce non-blocking `Addrinfo.getaddrinfo` and related methods.
We would like to introduce a new scheduler hook for non-blocking `getaddrinfo`.
```
class Scheduler
def address_resolve(...)
[array of addrinfo objects]
end
```
https://github.com/bruno-/ruby/pull/1
This is a work i...
ioquatix (Samuel Williams)
11:44 AM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
PR for `#compact`: https://github.com/ruby/ruby/pull/3851 zverok (Victor Shepelev)
10:40 AM Revision 9dbb2bfd (git): Wrap SortedSet with `ruby_version_is ""..."3.0"`
* Using $ spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.0"' spec/ruby/library/set/sortedset/**/*_spec.rb Eregon (Benoit Daloze)
10:39 AM Revision bb3d7058 (git): Add MSpec tool to automatically wrap spec files with a guard
Eregon (Benoit Daloze)
10:17 AM Revision d0bd43c3 (git): Revert "SortedSet was removed at a3db08d7b6ff119223f77e3df00b4f6deac971e2"
* This reverts commit b06ffce4aef002dc47c3c5968181230e7ab8d7cc.
* Do not revert specs, wrap them with `ruby_version_is` (tool for that in next commit).
Eregon (Benoit Daloze)
08:43 AM Revision 5e58a903 (git): Reduce timeout of test_getaddrinfo_after_fork
Glass_saga (Masaki Matsushita)
07:41 AM Bug #17368 (Closed): `Ractor.select()` loops forever
I propose it raises an error in https://github.com/ruby/ruby/pull/3848
```ruby
Ractor.select # => loops
# after
Ractor.select # => ArgumentError, "specify at least one ractor or `yield_value`"
```
marcandre (Marc-Andre Lafortune)
07:35 AM Misc #17367 (Closed): CI: Env variable for Ractor compatibility tests?
It will become important to test that some features are Ractor compatible.
For some builtin libs for example: that a frozen `Matrix`/`OpenStruct` is `Ractor.shareable?`, or that `Integer#prime?` works at all.
Could we have an offic...
marcandre (Marc-Andre Lafortune)
06:58 AM Bug #17366 (Closed): Ractor odd issue with timeout + receive + sleep + take
I believe the following behavior is incorrect:
```
ruby -r timeout -e 'r = Ractor.new { Timeout.timeout(0.1) { sleep(1) } rescue :timeout }; p r.take'
# => :timeout (ok)
ruby -r timeout -e 'r = Ractor.new { Time...
marcandre (Marc-Andre Lafortune)
05:57 AM Revision d2b7e1e4 (git): Protoized old pre-ANSI K&R style definitions
nobu (Nobuyoshi Nakada)
05:57 AM Feature #15233 (Closed): Speeding Up Matrix Powers
Applied in changeset commit:git|a83a51932dbc31b549e11b9da8967f2f52a8b07c.
----------
[ruby/matrix] Optimize **
Avoiding recursive call would imply iterating bits starting from
most significant, which is not easy to do efficiently.
Any ...
Anonymous
05:56 AM Revision a83a5193 (git): [ruby/matrix] Optimize **
Avoiding recursive call would imply iterating bits starting from
most significant, which is not easy to do efficiently.
Any saving would be dwarfed by the multiplications anyways.
[Feature #15233]
Marc-Andre Lafortune
 

Also available in: Atom