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. -
09:29 PM Revision 124321e0 (git): fix lambda's warning and tests
- There are warning condition bugs and test bugs.
b53ccb9c69abd24e3bdad66cbe4c7e7480eaef16 -
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. -
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. -
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!
-
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. - 03:29 PM Revision e795b632 (git): * 2020-12-12 [ci skip]
-
03:28 PM Revision abbc4341 (git): Remove unused link [ci skip]
-
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... -
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)... -
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.
-
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... -
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... -
02:14 PM Revision eea756ac (git): Strip trailing spaces [ci skip]
-
02:08 PM Revision 68d3952c (git): [ruby/reline] Fix breaking to input Emoji with ZWJ.
- https://github.com/ruby/reline/commit/f21dfdbb11
-
11:21 AM Revision ed343c76 (git): RDoc states that Process::Status.wait returns nil if cannot wait
-
10:40 AM Revision 1728eba4 (git): [DOC] Fixed the RDoc location of Process::Status.wait [ci skip]
-
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);
``` -
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.
-
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. -
05:36 AM Revision 4439b783 (git): Save a core file from bootstraptest
-
05:16 AM Revision a6a68bae (git): Removed needless gemspec of webrick
-
05:16 AM Revision 947a5505 (git): Bump webrick-1.7.0 for version management with ruby/webrick.
-
05:09 AM Revision bca57b91 (git): [DOC] Moved RDoc of abort [ci skip]
-
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... -
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... -
04:43 AM Revision 288e93be (git): Exclude parenthesized function declarations such as NORETURN
- Fixes https://github.com/ruby/ruby/pull/3883
-
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... -
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... -
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... -
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). -
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... -
02:13 AM Revision 56918578 (git): Remove unimplemented parameter from comment
- :resolv_timeout of TCPSocket.new is not implemented for now.
-
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... -
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... -
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.
-
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 - 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...
12/10/2020
-
10:40 PM Revision 6b1d2de6 (git): Unfortunately getinstancevariable was still not leaf
- https://github.com/ruby/ruby/runs/1533401436
-
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 } ` -
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... -
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 -
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... -
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 `... -
09:00 PM Revision 97868f16 (git): Reintroduce the fix again
-
07:48 PM Revision 4474aada (git): Fix the path properly
- :disappointed:
-
07:18 PM Revision f56ab7a4 (git): Try fixing the -I position
- https://github.com/ruby/ruby/runs/1532260149
:thinking: -
06:49 PM Bug #17385: Test failures on gcc 11
- Thanks for the patch! Let me check it tomorrow!
-
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... -
12:16 PM Bug #17385: Test failures on gcc 11
- The Ruby I tested is the commit `1cfc6e7b7a92c1a624182392ba702d3dcb2eba98` on master branch.
-
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.
... -
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. -
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... -
04:35 AM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- I agree with the change. Go ahead.
Matz.
-
06:16 PM Revision 69960848 (git): Make getinstancevariable a leaf instruction
- It can no longer issue a warning.
-
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 ... -
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 -
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
... -
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
... -
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.
-
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... -
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.
-
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... - 04:19 PM Revision 7f4c31d6 (git): * 2020-12-11 [ci skip]
-
04:17 PM Revision b72f6132 (git): Suppress a "clobbered" warning by gcc on macOS
-
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. -
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... -
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... -
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. -
03:07 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
- Maybe return nil if the object is not a Hash?
-
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... -
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... -
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 ... -
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...
-
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... -
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... -
12:48 PM Revision 673fcb7e (git): Fix a link [ci skip]
-
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. -
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... -
08:30 AM Feature #17303: Remove webrick from stdlib
- Go ahead.
Matz.
- 12:41 PM Revision 73db60bd (git): include/ruby/memory_view.h: fix the return type of rb_memory_view_prepare_item_desc
- 12:35 PM Revision 0fcd478a (git): include/ruby/memory_view.h: fix typo
-
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... -
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... -
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-... -
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.
-
12:06 PM Revision d5dfc3f2 (git): Use `abort(message)` instead of `puts` and `exit`
-
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] -
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.... -
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? -
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.
-
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` -> ... -
08:20 AM Feature #17363: Timeouts
- `Timeout::wake` you can implement it with `Thread#handle_interrupt(RuntimeError => :never){ ... }`.
-
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... -
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] -
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. -
01:49 AM Misc #17376: Reduce number of GitHub Actions
- OK to reduce tests; no idea which. Maybe we must prioritise them.
-
09:55 AM Revision 658b4ff6 (git): Fixed the test failures called WEBrick.new directly
-
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. -
09:24 AM Revision 7856da5f (git): remove bz2
-
09:23 AM Feature #16375 (Closed): Right size regular expression compile buffers for literal regexes and on Regexp#freeze
- Merged by nobu at 9a17437558e42aa1da372b515ba8bc18067d578c
-
09:16 AM Revision 142f154a (git): Unpoison freelist to chain
-
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.
-
09:15 AM Revision 9a174375 (git): Right size literal regular expression buffers on compile
-
09:13 AM Feature #9713 (Feedback): __FILE__ return unexpected encoding - breaks Dir.glob
-
09:09 AM Feature #17134 (Open): Add resolv_timeout to TCPSocket
-
09:06 AM Revision e7433a32 (git): Added help message for gem i webrick in rdoc
-
09:06 AM Revision 4ccc6626 (git): Added help message for gem i webrick in gem server command
-
09:06 AM Revision b084f8ab (git): Completely removed webrick
-
09:06 AM Revision 880727f0 (git): Added help message for gem i webrick in un.rb
-
09:06 AM Revision 05cc58c2 (git): webrick was removed from ruby repo
-
09:06 AM Revision 0e73b49b (git): Promote webrick to bundled gems
-
09:06 AM Revision 087ac34f (git): Added tool/lib into test-spec loadpath
-
09:06 AM Revision 5dc786bf (git): Move webrick library into internal test toolchain
-
09:06 AM Bug #17343 (Closed): Ractor can't clone frozen structures
- fixed 764de7566ffa3fe828abf13ec93d76515ba27dd1
-
08:55 AM Feature #7511 (Feedback): short-circuiting logical implication operator
-
08:54 AM Feature #5522 (Feedback): Numeric#finite?、Numeric#infinite?、Numeric#nan? の追加
-
08:53 AM Feature #10042 (Feedback): Deprecate postfix rescue syntax for removal in 3.0
-
08:50 AM Feature #7986 (Feedback): Custom case statement comparison method
-
08:49 AM Feature #5521 (Feedback): Numeric#rational?、Numeric#complex?、Numeric#float? の追加
-
08:49 AM Feature #5514 (Feedback): Numeric への quotient と quotrem の追加
-
08:48 AM Feature #6586 (Closed): debugger belongs to core
-
08:44 AM Bug #10417 (Closed): IO#set_encoding without int_enc doesn't keep current internal encoding
- 特に困っているって言う例を聞かないので一旦クローズします
-
08:41 AM Revision 46d3ea2c (git): .github: reduce (#3876)
- Comment out some 50-ish tests.
fix https://bugs.ruby-lang.org/issues/17376 -
08:22 AM Revision 9e8f732f (git): Revert "Revert some recent JIT changes"
- This reverts commit b7dc04e51823f9fe8b5355c30a304ecdb11fe5ed.
This should be fine, rather necessary, too. -
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. -
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.
-
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.
-
07:04 AM Feature #17351: Deprecate Random::DEFAULT
- OK, accepted.
Matz.
-
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. -
05:07 AM Feature #17384 (Feedback): shorthand of Hash#merge
- Please refer to previous discussions. Do you have some new insights around this area?
-
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
```
-
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. -
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.
-
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...
-
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... -
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). -
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. -
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...
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. -
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) # => ... -
05:41 PM Bug #17383: 3.0 recursion memory|speed issues
- Thanks for reporting this.
Hopefully this related to #17373. -
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... - 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`.
-
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. -
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. -
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?
-
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... - 03:24 PM Revision bb489aca (git): memory_view.c: Add rb_memory_view_get_item and rb_memory_view_prepare_item_desc (#3871)
- 03:17 PM Revision 549118b3 (git): * 2020-12-10 [ci skip]
-
03:16 PM Revision 3156fb0f (git): test/ruby/test_arithmetic_sequence.rb: remove a duplicated test
- There is another "test_last_bug17218"
-
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)... - 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
- 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
-
12:05 PM Bug #17381: Backport request for the old certs in RubyGems
- merged into ruby_2_7 at git:9b884df6dd918b0fdcc256d8a9febfaccd8a9042.
-
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. -
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 -
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... -
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.
-
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,... -
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.
-
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... -
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] -
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... - 09:48 AM Revision fad3023e (git): Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer sequences (#3870)
- [Bug #17218]
[ruby-core:100312] - 09:21 AM Revision cacdf268 (git): [ruby/matrix] Disable Ractor test
-
08:50 AM Feature #16604 (Closed): Set default for Encoding.default_external to UTF-8 on Windows
-
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
-
08:50 AM Feature #12650 (Closed): Use UTF-8 encoding for ENV on Windows
-
08:10 AM Feature #12650: Use UTF-8 encoding for ENV on Windows
- This issue can be closed. It's merged in commit:ca76337a00244635faa331afd04f4b75161ce6fb
-
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. - 07:15 AM Revision 150dbb65 (git): [ruby/matrix] v0.3.1
- 07:15 AM Revision a7dccd08 (git): [ruby/matrix] Make frozen matrices Ractor shareable
- 06:30 AM Revision 6b264e83 (git): [ruby/prime] Fix gemspec
-
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. -
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...
- 06:03 AM Revision 47ff8de6 (git): Update maintainers list [doc] [ci skip]
- 05:45 AM Revision b603085d (git): [ruby/prime] v0.1.2
-
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... -
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 ... - 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... -
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#... -
04:32 AM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17380] Useful `include/prepend` in `refine` (marcandre)
* yes/no?
-
04:10 AM Revision dea60004 (git): Ad-hoc fix of test-bundler
-
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. -
02:32 AM Revision 4f907a80 (git): Removed declaration of non-existent symbol
-
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...
12/08/2020
- 10:49 PM Revision 27b6df96 (git): Add test that `Ractor.make_shareable` calls user defined `#freeze`
-
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... -
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... -
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... -
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... -
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.
-
08:19 PM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
- Non-blocking `Process.wait` has been merged.
- 07:55 PM Revision 2553c5f9 (git): Add support for non-blocking `Process.wait`.
-
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
-
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... -
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
```
... - 04:41 PM Revision a4a92ae6 (git): * 2020-12-09 [ci skip]
-
04:40 PM Revision ee194af2 (git): re-layout rb_ractor_t
- separate synchronization data and ractor local data.
-
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... -
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 -
08:17 AM Bug #16809 (Closed): Fiber crashes with --with-coroutine=copy
- This was fixed in https://github.com/ruby/ruby/pull/3624
-
04:18 PM Feature #16611 (Closed): net/smtp: Add SNI support
-
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
-
03:28 PM Feature #17378: Ractor#receive with filtering like other actor langauge
- Implementation is: https://github.com/ruby/ruby/pull/3862
-
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 ... -
01:50 PM Revision 2749123e (git): Supported category option in Warning#warn
-
01:13 PM Revision d5ffa4e9 (git): [DOC] mentioned category option
- 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. -
12:42 PM Revision 30d4a7ad (git): Update rubygems.org links for publlished default gems.
-
10:38 AM Bug #16762 (Closed): Ruby is not properly fortified on armv7hl
-
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!
-
08:22 AM Bug #16762: Ruby is not properly fortified on armv7hl
- https://github.com/ruby/ruby/pull/3866
- 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.
-
09:46 AM Misc #17346: DevelopersMeeting20201210Japan
- * [Misc #17376] Reduce GitHub Actions
-
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? -
09:38 AM Revision aeeaf90b (git): Added missing dependency of fileutils
-
09:02 AM Revision d7a16670 (git): [DOC] Fixed RDoc directives [ci skip]
-
08:30 AM Revision 86332cdc (git): Bump version numbers of RubyGems and Bundler on NEWS
-
08:30 AM Revision 473f9d2d (git): Merge prepare version of Bundler 2.2.0
-
08:30 AM Revision 4aca77ed (git): Merge prepare version of RubyGems 3.2.0
-
07:53 AM Revision 6a6a24df (git): Fix links [ci skip]
-
07:46 AM Revision 4b583d49 (git): Add NEWS about UTF-8 on Windows
- * 94b6933d1c6f4c8698319fbcac9dcecc9033b4b9
* ca76337a00244635faa331afd04f4b75161ce6fb -
07:38 AM Revision 509241b3 (git): Add NEWS about Net::SMTP [ci skip]
- 06:42 AM Revision bd47a8d6 (git): test/fiddle/helper.rb: remove duplication (#3863)
-
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... -
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. -
03:57 AM Revision a8f16df6 (git): Wait for GC before unload_units
-
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 -
01:14 AM Bug #15661 (Open): Disallow concurrent Dir.chdir with block
-
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.
-
02:52 AM Bug #17220 (Open): Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
-
02:43 AM Revision ea18c8bb (git): Made method-local instance variables local variables
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... -
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...
-
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... -
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...
-
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... -
11:34 PM Revision 5c2ff88b (git): Lock the entire active_units loop
- The previous fix seems not working. Let me test if this works.
-
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... -
10:49 PM Bug #17372 (Closed): Actions Windows MinGW failures 2020-12-06
-
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... -
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.
-
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... -
10:47 PM Revision 41fafd9d (git): Remove BUNLDER_VERSION in Windows (#3859)
- [Bug #17372]
-
10:21 PM Revision 2580093d (git): Pass the flag as $TESTOPTS
- Fixing the failure of a4f292426b40f9d6c8f3d646e4b7c667313074f2 like
https://github.com/ruby/ruby/runs/1513663542 -
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.
-
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... -
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... -
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) # ... -
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 ... -
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... -
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... -
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. -
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
... -
05:25 AM Bug #17374 (Rejected): Refined methods aren't visible from a refinement's module
-
08:45 PM Revision a4f29242 (git): skip failing tests in test-all on mingw
- https://bugs.ruby-lang.org/issues/17372
-
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... - 05:10 PM Revision 146b3695 (git): ruby.c: remove needless substitution of uenc
- uenc has already been initialized the top of the function.
- 05:01 PM Revision 7e69296a (git): memory_view.c: Add rb_memory_view_extract_item_members (#3855)
- 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... - 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 -
04:44 PM Feature #13488 (Closed): Set Encoding.default_external to UTF-8 on Windows
-
04:43 PM Feature #13488 (Open): Set Encoding.default_external to UTF-8 on Windows
-
03:08 PM Revision 3bf7b999 (git): [ruby/reline] Editing to initial content is not just cursor moving
- https://github.com/ruby/reline/commit/0a4f175b0a
- 03:01 PM Revision b5ef4ad3 (git): * 2020-12-08 [ci skip]
-
02:57 PM Revision 05e1d87e (git): rbinstall.rb: do not install useless files after installed
-
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. -
01:40 PM Revision e025113d (git): rbinstall.rb: relaxed split argument
- did_you_mean splits the output by `$/`.
-
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. -
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. -
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
-
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
-
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. -
09:38 AM Revision 7817a438 (git): Removed deprecated Time#succ
-
09:35 AM Revision 20d53dad (git): Update the version guard to 3.0
-
09:35 AM Revision 547c71de (git): Hash#index: delete
- Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
-
07:47 AM Bug #17368 (Closed): `Ractor.select()` loops forever
- Merged, thanks!
-
07:08 AM Bug #17368: `Ractor.select()` loops forever
- +1
- 07:21 AM Revision 53ce71b5 (git): Ractor.select requires an argument or yield_value
-
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#... -
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
-
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...
-
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] -
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. -
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? -
04:23 AM Revision 556a7285 (git): Lock active_units references on compaction
- This might race with mjit_recompile.
-
02:57 AM Revision 4b4af40f (git): Update TypeProf to 0.9.0 (#3856)
- * Update TypeProf to 0.9.0
-
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... -
02:16 AM Feature #16827 (Closed): C API for writing custom random number generator that can be used as Random objects
- Closed by af5e87ab218c5f4e34c6cdb54ae119a7f0f9033f
-
02:10 AM Revision 8dd03e5c (git): skip assertion on multi-ractor
- This assertion is not considerred on multi-ractor mdoe.
-
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
```
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 ... -
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 ... -
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... -
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. -
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 ''). -
11:28 PM Revision 59ddb88d (git): RB_EC_NEWOBJ_OF
- NEWOBJ with current ec.
-
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... -
11:28 PM Revision 1d0bf3d8 (git): log for the beggining of vm_lock_enter
- Before this patch, there is no information to start locking.
-
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. -
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... -
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. -
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... -
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... -
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? -
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... -
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... -
02:57 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17371] Reintroduce `expr in pat` (ktsj)
* Is it OK? -
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... -
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 ... - 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 - 03:19 PM Revision f9fd99e6 (git): * 2020-12-07 [ci skip]
- 03:19 PM Revision ce707079 (git): memory_view.c: suppress uninitialized warning
-
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... -
02:48 PM Revision e427c5cc (git): Update rbs
-
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 .
- 02:24 PM Revision 1a76bb56 (git): memory_view.c: Fix the argument type of rb_memory_view_extract_item_members
- 01:46 PM Revision 51500eed (git): memory_view.c: Add rb_memory_view_extract_item_members
-
01:19 PM Revision 14580ebe (git): Update rbs
-
07:11 AM Revision 3184cd85 (git): Updated bundled gems
-
07:11 AM Revision e4e2a335 (git): update-bundled_gems: support recent format, keep the tag to test
-
07:11 AM Revision ea9f16a2 (git): update-bundled_gems: chomp ".git" suffix from the source code URI
-
07:11 AM Revision 967ed35b (git): Moved update-bundled_gems code to a tool
-
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...
-
06:36 AM Feature #16786 (Closed): Light-weight scheduler for improved concurrency.
- The core of this proposal is now implemented.
-
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.
-
06:31 AM Revision 18b2ce11 (git): Mentioned numbered parameter assignment is a SyntaxError in NEWS [ci skip]
- Requested by Junichi Ito.
-
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 ... -
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... -
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.
-
01:53 AM Revision 5d07a21c (git): RubyGems certs - remove AddTrust, add GlobalSign Root R3
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(). - 04:05 PM Revision a38d4473 (git): * 2020-12-06 [ci skip]
-
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. -
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. -
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.
... -
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... -
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 ... -
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... -
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
-
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
-
10:39 AM Revision bb3d7058 (git): Add MSpec tool to automatically wrap spec files with a guard
-
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). -
08:43 AM Revision 5e58a903 (git): Reduce timeout of test_getaddrinfo_after_fork
-
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`"
``` -
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... -
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... -
05:57 AM Revision d2b7e1e4 (git): Protoized old pre-ANSI K&R style definitions
-
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 ... - 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]