Project

General

Profile

Activity

From 01/10/2021 to 01/16/2021

01/16/2021

11:45 PM Bug #17543: Ractor isolation broken by `self` in shareable proc
Eregon (Benoit Daloze) wrote in #note-5:
> If it's needed to e.g. `Ractor.make_shareable(self); o = Ractor.make_shareable(Object.new); Ractor.make_shareable(-> { p o; ... })`, it feels so redundant.
I may be wrong, but I believe that...
marcandre (Marc-Andre Lafortune)
06:00 PM Bug #17543: Ractor isolation broken by `self` in shareable proc
marcandre (Marc-Andre Lafortune) wrote in #note-4:
> Note that they are *not* treated the same way. `Ractor.new{}` forbids any reference to outside variables, while `make_shareable(proc)` allows it as long as the values are themselves s...
Eregon (Benoit Daloze)
04:41 PM Bug #17543: Ractor isolation broken by `self` in shareable proc
Eregon (Benoit Daloze) wrote in #note-3:
> Not preserving `self` would be confusing, e.g., when calling other methods like:
> ...
In my proposal, calling that block would result in a `NoMethodError` on `<#DetachedSelf>`. Is it that con...
marcandre (Marc-Andre Lafortune)
02:40 PM Bug #17543: Ractor isolation broken by `self` in shareable proc
Not preserving `self` would be confusing, e.g., when calling other methods like:
```ruby
class Foo
def bar
...
end
def foo
test { bar }
end
end
```
It does mean the `Foo` instance would be (deeply) frozen.
...
Eregon (Benoit Daloze)
12:55 AM Bug #17543: Ractor isolation broken by `self` in shareable proc
> Probably the self of the Proc should be made Ractor.make_shareable too.
Would that always be the case? would all the following freeze the `self`?
```ruby
class Foo
def test(&block)
Ractor.make_shareable(block)
end
...
marcandre (Marc-Andre Lafortune)
11:14 PM Revision 19902e2e (git): Update the maintainer of net-smtp
hsbt (Hiroshi SHIBATA)
09:09 PM Revision fd42d334 (git): * 2021-01-17 [ci skip]
git[bot]
09:08 PM Revision a4a6cb03 (git): Remove samples for test-unit
They are no longer needed. Sutou Kouhei
09:07 PM Revision f2767cf0 (git): Move rss samples to ruby/rss
Sutou Kouhei
08:13 PM Bug #17547 (Closed): Fix `Ripper.lex("a <<b")`
`Ripper.lex("a <<b")` was not parsed correctly.
```ruby
require "ripper"
p Ripper.lex("a <<b")
# Expected behavior => [[[1, 0], :on_ident, "a", CMDARG], [[1, 1], :on_sp, " ", CMDARG], [[1, 2], :on_heredoc_beg, "<<b", CMDARG]]
# ...
osyo (manga osyo)
03:19 PM Bug #17536: Segfault in `CFUNC :define_method`
Wow, thx for the effort to reduce the reproducer. I have applied this patch in Fedora and it fixes the segfault. Thx. vo.x (Vit Ondruch)
10:42 AM Revision 35a04730 (git): [ruby/io-console] Rubygems 3.2 supports `--platform` option
https://github.com/ruby/io-console/commit/c8046fde84 nobu (Nobuyoshi Nakada)
10:42 AM Revision 6ab5504f (git): [ruby/io-console] Moved JRuby version files into particular path
https://github.com/ruby/io-console/commit/b0691d2c20 nobu (Nobuyoshi Nakada)
10:42 AM Revision 92da224d (git): [ruby/io-console] Delegate to JRuby version
Add `--platform` option tentatively.
https://github.com/ruby/io-console/commit/3bf1a7b753
nobu (Nobuyoshi Nakada)
10:42 AM Revision c143a2f9 (git): [ruby/io-console] bump up to 0.5.7
https://github.com/ruby/io-console/commit/f55d7ebff6 nobu (Nobuyoshi Nakada)
01:06 AM Feature #17546 (Assigned): Native coroutine implementation for riscv64 Linux
mame (Yusuke Endoh)

01/15/2021

11:48 PM Feature #17546 (Closed): Native coroutine implementation for riscv64 Linux
The RISC-V architecture is getting more and more importance in the world. The first affordable RISC-V single board computer debuted last Wednesday.
A patch is attached which contains a native coroutine implementation for riscv64 Linux...
xtkoba (Tee KOBAYASHI)
11:23 PM Bug #17536 (Closed): Segfault in `CFUNC :define_method`
Applied in changeset commit:git|0ed71b37fa9af134fdd5a7fd1cebd171eba83541.
----------
Don't try to clear cache on garbage objects
Method cache can be cleared during lazy sweeping. An object that will
be collected during lazy sweep *sho...
tenderlovemaking (Aaron Patterson)
10:21 PM Bug #17536: Segfault in `CFUNC :define_method`
I was able to reproduce this, but it's hard to make a small script to reproduce the issue.
Here is the program I used to reproduce the issue:
```ruby
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem '...
tenderlovemaking (Aaron Patterson)
11:23 PM Revision 0ed71b37 (git): Don't try to clear cache on garbage objects
Method cache can be cleared during lazy sweeping. An object that will
be collected during lazy sweep *should not* have it's method cache
cleared. Soon-to-be-collected objects can be in an inconsistent state and
this can lead to a crash...
tenderlovemaking (Aaron Patterson)
09:26 PM Bug #17545 (Closed): Calling dup on a subclass of Proc returns a Proc and not the subclass
Trivial example:
``` ruby
[1] pry(main)> class Test < Proc; end
=> nil
[3] pry(main)> Test.new { puts "foo" }.dup
=> #<Proc:0x00007f91a78913c8 (pry):3>
```
Also fairly trivial workaround:
```ruby
[4] pry(main)> class Tes...
lamont (Lamont Granquist)
08:25 PM Revision e7f1afbc (git): Additions to method_documentation.rdoc (#4065)
* Additions to method_documentation.rdoc burdettelamar (Burdette Lamar)
06:54 PM Bug #17543: Ractor isolation broken by `self` in shareable proc
Probably the self of the Proc should be made ` Ractor.make_shareable` too.
Changing the `self` of an arbitrary Proc would be very surprising I think.
Eregon (Benoit Daloze)
07:39 AM Bug #17543 (Closed): Ractor isolation broken by `self` in shareable proc
Discussing with @MaxLap we realized that the `self` in a shareable proc is not properly isolated:
```
class Foo
attr_accessor :x
def pr
Ractor.make_shareable(Proc.new { self })
end
end
f = Foo.new
f.x = [1, 2, 3]...
marcandre (Marc-Andre Lafortune)
06:08 PM Revision a2941d71 (git): Add What's Here to Array RDoc (#4062)
* Add What's Here to Array RDoc burdettelamar (Burdette Lamar)
03:15 PM Revision 4c4f873f (git): * 2021-01-16 [ci skip]
git[bot]
03:09 PM Revision b1306445 (git): [ruby/bigdecimal] Fix for the coerce cases in divide and DoDivmod
https://github.com/ruby/bigdecimal/commit/1cb92487f7 Kenta Murata
03:08 PM Revision 9d0c5e27 (git): [ruby/bigdecimal] Use pre-allocated special values in BigDecimal_DoDivmod
https://github.com/ruby/bigdecimal/commit/d2746121cf Kenta Murata
03:07 PM Revision f95f85b2 (git): [ruby/bigdecimal] Use new conversion functions in BigDecimal_DoDivmod
https://github.com/ruby/bigdecimal/commit/68c20200d5 Kenta Murata
02:44 PM Feature #17479: Enable to get "--backtrace-limit" value by "$-B"
I agree with `Thread::Backtrace.limit` because I think it's easy to understand. neg_hide (Hidenori Negishi)
10:04 AM Revision 5307fab6 (git): [ruby/time] Use Time#strftime to format
https://github.com/ruby/time/commit/6b8cc4799e nobu (Nobuyoshi Nakada)
09:04 AM Misc #17535: DevelopersMeeting20210216Japan
* [Feature #12194] `File.dirname` optional parameter
* `File.dirname(path, 2)` instead of `File.dirname(File.dirname(path))` or `File.expand_path("../..", path)`.
* [Feature #17544] Support RFC 3339 UTC for unknown offset local time
...
nobu (Nobuyoshi Nakada)
08:54 AM Feature #17544 (Closed): `Time#strftime` supports RFC 3339 UTC for unknown offset local time
In RFC 3339, -00:00 is used for the time in UTC is known, but the offset to local time is unknown.
Support that representation by `-` flag for `z` at `Time#strftime`.
[patch](https://github.com/ruby/ruby/pull/4075)
nobu (Nobuyoshi Nakada)
08:47 AM Bug #17517 (Closed): File.expand_path returns us-ascii when both arguments are ascii compat
Applied in changeset commit:git|0d57d59933fb7b826bd0e20d84ed7f6d6636ac90.
----------
Keep encoding in the result of File.expand_path [Bug #17517]
nobu (Nobuyoshi Nakada)
08:46 AM Revision 0d57d599 (git): Keep encoding in the result of File.expand_path [Bug #17517]
nobu (Nobuyoshi Nakada)
04:44 AM Bug #17423 (Closed): `Prepend` should prepend a module before the class
Applied in changeset commit:git|e09094546a19d6b62b3e21d0b061b103cf21f760.
----------
Make Module#prepend affect ancestor chain even if argument already included in receiver
Previously, if a class included a module and then prepended th...
jeremyevans (Jeremy Evans)
04:43 AM Revision e0909454 (git): Make Module#prepend affect ancestor chain even if argument already included in receiver
Previously, if a class included a module and then prepended the
same module, the prepend had no effect. This changes the behavior
so that the prepend has an effect unless the module is already
prepended the receiver.
While here, rename...
jeremyevans (Jeremy Evans)
03:43 AM Revision 1cb0c5ac (git): [ruby/time] No document for private methods
https://github.com/ruby/time/commit/44a55daa70 nobu (Nobuyoshi Nakada)
03:29 AM Revision 69ea2701 (git): Sort filenames [ci skip]
znz (Kazuhiro NISHIYAMA)
02:48 AM Revision 9c018958 (git): Add timev.rb to .document
znz (Kazuhiro NISHIYAMA)
12:37 AM Revision eb4319be (git): extlibs.rb: make patch command selectable [ci skip]
Some Windows ports fail an assertion on patch files with LF EOL
code. MSys2 patch.exe 2.7.6 seems fine, at least.
nobu (Nobuyoshi Nakada)

01/14/2021

11:30 PM Bug #17536: Segfault in `CFUNC :define_method`
I should also mention that there is currently Rails 6.0.3.4. vo.x (Vit Ondruch)
11:28 PM Bug #17536: Segfault in `CFUNC :define_method`
It is reproducible on every platform.
We had to hack the test suite a bit to make it work on Fedora. The full script is here [1], but the relevant part should be this:
~~~
# It is easier to recreate the Gemfile to use local versions of...
vo.x (Vit Ondruch)
09:58 PM Bug #17536: Segfault in `CFUNC :define_method`
vo.x (Vit Ondruch) wrote in #note-5:
> Just FTR, the reproducer I have is trying to execute shoulda-matchers [1] test suite such as:
> ...
When I try to run the command, this happens on Linux:
```
aaron@whiteclaw ~/g/shoulda-matche...
tenderlovemaking (Aaron Patterson)
09:52 PM Bug #17536: Segfault in `CFUNC :define_method`
vo.x (Vit Ondruch) wrote in #note-5:
> Just FTR, the reproducer I have is trying to execute shoulda-matchers [1] test suite such as:
> ...
Does this reproduce on any platform besides s390x?
tenderlovemaking (Aaron Patterson)
01:53 PM Bug #17536: Segfault in `CFUNC :define_method`
Just FTR, the reproducer I have is trying to execute shoulda-matchers [1] test suite such as:
~~~
$ bundle exec rspec spec/unit/shoulda/matchers/action_controller/set_flash_matcher_spec.rb
~~~
I guess the reproducer should be pos...
vo.x (Vit Ondruch)
12:55 PM Bug #17536: Segfault in `CFUNC :define_method`
Yes, I can hit it every time. And I am testing the patch commit:efcdf68e6443ab70fbff1703b9dabbfc5090df31 and it does not fix the issue. vo.x (Vit Ondruch)
09:24 AM Bug #17536: Segfault in `CFUNC :define_method`
> This looks like the segvs we were observing
I'm not certain. Ours was failing inside the GC code. Here it fails in `vm_method`.
@vo.x are you able to trigger this bug consistently?
byroot (Jean Boussier)
01:09 AM Bug #17536: Segfault in `CFUNC :define_method`
This looks like the segvs we were observing, which was fixed by https://bugs.ruby-lang.org/issues/17539 (and PR https://github.com/ruby/ruby/pull/4066).
@tenderlovemaking can you confirm?
ufuk (Ufuk Kayserilioglu)
09:42 PM Revision 0a039c5f (git): [ruby/bigdecimal] Use new conversion functions in BigDecimal_divide
https://github.com/ruby/bigdecimal/commit/3b55ad1c42 Kenta Murata
09:42 PM Revision 500fc63c (git): [ruby/bigdecimal] Reorder the arguments of BigDecimal_divide
https://github.com/ruby/bigdecimal/commit/1e03da7076 Kenta Murata
08:48 PM Bug #17423: `Prepend` should prepend a module before the class
Based on the decision made at the developer meeting (https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210113Japan.md#bug-17423-prepend-should-prepend-a-module-before-the-class-jeremyevans0), I've added a pull reques... jeremyevans0 (Jeremy Evans)
08:37 PM Bug #17539: Guard callinfo during compilation (backport)
Also please add 5e26619660f20272a53c7f839dde36cce034bb35 (it fixes a write barrier issue)
Thanks!
tenderlovemaking (Aaron Patterson)
12:17 AM Bug #17539 (Closed): Guard callinfo during compilation (backport)
Hi,
Please backport efcdf68e6443ab70fbff1703b9dabbfc5090df31 to ruby_3_0. We're seeing segvs, and efcdf68e6443ab70fbff1703b9dabbfc5090df31 fixes it.
Thanks!
tenderlovemaking (Aaron Patterson)
05:57 PM Revision 48589f34 (git): * 2021-01-15 [ci skip]
git[bot]
05:55 PM Revision 5e266196 (git): Fix WB for callinfo
The WB for callinfo needs to be executed *after* the reference is
written. Otherwise we get a WB miss.
tenderlovemaking (Aaron Patterson)
02:43 PM Feature #12607: Ruby needs an atomic integer
Eregon (Benoit Daloze) wrote in #note-34:
> And how do you implement that efficiently, and in a way that's thread-safe?
> ...
By "a generator" I did not mean the `Enumerator::Generator` class. I meant a new generator-type class (say, `...
Dan0042 (Daniel DeLorme)
01:06 PM Feature #12607: Ruby needs an atomic integer
There is also the well-known example of metrics in Sidekiq, and all these:
https://github.com/search?l=Ruby&q=AtomicFixnum&type=Code
> I really think a generator (like the above MyCounter.next) is a more appropriate tool than an atom...
Eregon (Benoit Daloze)
03:41 AM Feature #12607: Ruby needs an atomic integer
chrisseaton (Chris Seaton) wrote in #note-32:
> An use-case I was working on earlier today was profiling operations like coverage and sampling tools.
Ah yes, beautiful example! Accumulating metrics require both atomicity and performa...
Dan0042 (Daniel DeLorme)
02:34 AM Feature #12607: Ruby needs an atomic integer
> In my experience financial transactions will be handled at the DB level.
So imagine you're implementing the DB then.
> ...
If you want to perform an arbitrary operation on a counter you can do that atomically, without a lock, by ...
chrisseaton (Chris Seaton)
02:25 AM Feature #12607: Ruby needs an atomic integer
chrisseaton (Chris Seaton) wrote in #note-28:
> For example for issuing unique IDs across multiple Ractors.
That's the "monotonically increasing counter" case I was talking about, and for that I really think a generator (like the abo...
Dan0042 (Daniel DeLorme)
01:34 PM Bug #17429: Prohibit include/prepend in refinement modules
shugo (Shugo Maeda) wrote in #note-11:
> The behavior is similar to Module#mix proposed by Matz before.
Visually it's a more pleasing API than the `import` keyword, but would it be available in any module or just refinements?
If any...
Dan0042 (Daniel DeLorme)
03:15 AM Bug #17429: Prohibit include/prepend in refinement modules
marcandre (Marc-Andre Lafortune) wrote in #note-3:
> Is there a proposal to import modules in refinements?
> ...
I prefer the following way, but I'm not sure about the name import.
```
refine Object do
import Code
end
```
...
shugo (Shugo Maeda)
01:20 PM Feature #17479: Enable to get "--backtrace-limit" value by "$-B"
neg_hide (Hidenori Negishi) wrote in #note-3:
> I am making a library that makes error messages easier to read. Therefore, instead of using `Exception#full_message`, I need to analyze the Exception and output the error message myself.
...
Eregon (Benoit Daloze)
12:35 PM Revision 834b404b (git): [DOC] Fixed indent [ci skip]
nobu (Nobuyoshi Nakada)
12:30 PM Bug #17542 (Closed): Username and password are not decoded if retrieved from env
If someone sets an env variable defining a http_proxy (ENV['http_proxy']), containing a
username / password with percent-encoded characters, then the resulting
base64 encoded auth header will be wrong.
For example, suppose a usernam...
leipert (Lukas Eipert)
10:21 AM Bug #17537: === on ranges of strings is not consistant with include?
> ranges of strings have inconsistent semantics
That's an inherent property of string ranges, and of Range in general.
Range in Ruby represents TWO things:
* sequence (enumeration) from begin to end (based on the notion of the "ne...
zverok (Victor Shepelev)
04:55 AM Bug #17537: === on ranges of strings is not consistant with include?
Ok. Well, my personal opinion is that just to have some fancy way to handle version strings, ranges of strings have inconsistent semantics. With to_a, they behave like their natural order is shortlex on some imaginary alphabet:
```
...
akim (Akim Demaille)
09:50 AM Bug #17540: A segfault due to Clang/LLVM optimization on 32-bit ARM Linux
Mmm… That sounds like an LLVM issue. At least in the latest C++, `volatile` is deprecated. I don’t think that fix works for extension libraries written in that language.
cf: http://wg21.link/P1152
shyouhei (Shyouhei Urabe)
04:34 AM Bug #17540 (Closed): A segfault due to Clang/LLVM optimization on 32-bit ARM Linux
When built with `optflags=-O3` (which is the default), `ruby -e "pp Thread.main"` causes a segfault, which seems to be worked around by the following change:
```
--- a/include/ruby/internal/fl_type.h
+++ b/include/ruby/internal/fl_typ...
xtkoba (Tee KOBAYASHI)
08:54 AM Bug #17541 (Closed): shareable constant literals in a large script might be recycled
Please backport commit:6bcc4664bdaebbf9b28a762ae63f476a1ec6cfb2.
These are optional.
commit:bb40c5cbe977de9f36a2a739e94e9b2fd4496b6e
commit:c060bdc2b4ab8eeef5374f4174f5de48ab936d74
nobu (Nobuyoshi Nakada)
07:44 AM Revision 29777cb3 (git): Merge RubyGems-3.2.5
hsbt (Hiroshi SHIBATA)
07:44 AM Revision 93dcf082 (git): Merge Bundler-2.2.5
hsbt (Hiroshi SHIBATA)
07:44 AM Revision c721e36c (git): Merge RubyGems-3.2.4
hsbt (Hiroshi SHIBATA)
07:44 AM Revision d4f5827a (git): Merge Bundler-2.2.4
hsbt (Hiroshi SHIBATA)
07:15 AM Revision 6bcc4664 (git): Return new NODE_LIT
As NODE_ZLIST/NODE_LIST are not markable, cannot be reused as
NODE_LIT.
nobu (Nobuyoshi Nakada)
07:13 AM Revision bb40c5cb (git): Ensure symbol list node is either NODE_STR or NODE_DSTR
nobu (Nobuyoshi Nakada)
07:12 AM Revision c060bdc2 (git): NODE markability should not change by nd_set_type
nobu (Nobuyoshi Nakada)
06:50 AM Feature #17490 (Closed): Rename RubyVM::MJIT to RubyVM::JIT
Applied in changeset commit:git|e1fee7f949cb6719122672fa1081c60984a5339f.
----------
Rename RubyVM::MJIT to RubyVM::JIT
because the name "MJIT" is an internal code name, it's inconsistent with
--jit while they are related to each other...
k0kubun (Takashi Kokubun)
06:46 AM Revision e1fee7f9 (git): Rename RubyVM::MJIT to RubyVM::JIT
because the name "MJIT" is an internal code name, it's inconsistent with
--jit while they are related to each other, and I want to discourage future
JIT implementation-specific (e.g. MJIT-specific) APIs by this rename.
[Feature #17490]
k0kubun (Takashi Kokubun)
02:22 AM Revision 1824df40 (git): * 2021-01-14 [ci skip]
git[bot]
01:21 AM Revision 4d13f3e9 (git): [ruby/bigdecimal] Explicitly cast size_t to int
https://github.com/ruby/bigdecimal/commit/b1f1ed26c9 Kenta Murata
01:20 AM Revision b4ade739 (git): [ruby/bigdecimal] Explicitly cast uint64_t to double
https://github.com/ruby/bigdecimal/commit/f0d94e6843 Kenta Murata
01:20 AM Revision e129be75 (git): [ruby/bigdecimal] Suppress warning at NO_SANITIZE on gcc
https://github.com/ruby/bigdecimal/commit/f6765b8071 Kenta Murata
12:13 AM Revision efcdf68e (git): Guard callinfo
Callinfo was being written in to an array and the GC would not see the
reference on the stack. `new_insn_send` creates a new callinfo object,
then it calls `new_insn_core`. `new_insn_core` allocates a new INSN
linked list item, which c...
tenderlovemaking (Aaron Patterson)
12:06 AM Revision f4ce78d5 (git): delete negative cache from the table correctly
negative cache entry should be removed from
vm->negative_cme_table even if the redefined class has no
subclasses.
ko1 (Koichi Sasada)

01/13/2021

11:45 PM Feature #12607: Ruby needs an atomic integer
> You can achieve something similar with Object.new.object_id
You may want them to be consecutive.
> ...
A Ractor send has relatively high synchronisation overhead - an atomic integer is conventionally implemented at the cache-cohe...
chrisseaton (Chris Seaton)
10:40 PM Feature #12607: Ruby needs an atomic integer
chrisseaton (Chris Seaton) wrote in #note-28:
> > What is the use case for this atomic integer?
> ...
You can achieve something similar with `Object.new.object_id`
> > or in fact any integer atomic operations other than += 1
> ...
...
marcandre (Marc-Andre Lafortune)
09:45 PM Feature #12607: Ruby needs an atomic integer
> What is the use case for this atomic integer?
For example for issuing unique IDs across multiple Ractors.
> ...
For example a CAS to update a bank balance is a common requirement.
chrisseaton (Chris Seaton)
06:05 PM Feature #12607: Ruby needs an atomic integer
What is the use case for this atomic integer? I sometimes have a use for an atomic monotonically increasing counter, but that could be satisfied with a very simple API like `n = MyCounter.next`
On the other hand I've never felt the need...
Dan0042 (Daniel DeLorme)
07:32 AM Feature #12607: Ruby needs an atomic integer
Eregon (Benoit Daloze) wrote in #note-25:
> True, but an atomic integer remains useful even if there is an STM.
> ...
TVar proposed in https://bugs.ruby-lang.org/issues/17261 has `#increment` method and it is enough fast.
ko1 (Koichi Sasada)
10:56 PM Revision c8b47eb7 (git): only add the trailing nop if the catch table is not break / next / redo
We don't need nop padding when the catch tables are only for break /
next / redo, so lets avoid them. This eliminates nop padding in
many lambdas.
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
tenderlovemaking (Aaron Patterson)
10:53 PM Revision 589a8026 (git): fix ASAN errors
tenderlovemaking (Aaron Patterson)
09:37 PM Misc #17535: DevelopersMeeting20210216Japan
* [Feature #17291] Optimize `__send__` call (mrkn)
* [rspec-mocks](https://github.com/rspec/rspec-mocks) depends on redefining `__send__` to detect the form of the method call in a mock object.
* The mock object raises NoMethodErro...
mrkn (Kenta Murata)
04:26 PM Misc #17535 (Closed): DevelopersMeeting20210216Japan
# The next dev meeting
**Date: 2021/02/16 13:00-17:00**
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md
- Dev meeting *IS NOT* a decision-making place. All decisions ...
mame (Yusuke Endoh)
08:50 PM Feature #17528: Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
I was just doing a similar test actually, I think you're correct! I'll close this issue and re-submit a patch to Net::HTTP to replace `Timeout::timeout` there, since it's not doing anything for DNS lookups anyway. Thank you! mohamedhafez (Mohamed Hafez)
05:50 PM Feature #17528: Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
How to test:
```
% vi /etc/resolv.conf # specify non-existing nameserver
% time ./ruby -rtimeout -rsocket -e 'Timeout.timeout(2) { Addrinfo.getaddrinfo("www.ruby-lang.org",nil) }'
-e:1:in `getaddrinfo': execution expired (Time...
akr (Akira Tanaka)
04:05 PM Feature #17528: Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
According to https://bugs.ruby-lang.org/issues/12435, the only reason we are using `Timeout.timeout` in `Net::HTTP#connect` instead of using nonblocking io and `IO.select` is so that we can place a timeout on the getaddrinfo function, @n... mohamedhafez (Mohamed Hafez)
07:06 PM Bug #17538 (Closed): Assertion failure when rincgc is turned off
[Pull request on GitHub](https://github.com/ruby/ruby/pull/4064).
When compiling with `-DUSE_RINCGC=0` (turn off rincgc) and `-DRGENGC_CHECK_MODE=1` (turn on assertions), there is an assertion error when running multiple ractors.
R...
peterzhu2118 (Peter Zhu)
05:35 PM Bug #17537: === on ranges of strings is not consistant with include?
It was intentional.
Before 2.6, `===` was using `include?` underneath, which had some undesirable consequences:
```ruby
case '2.5.2'
when '2.5'..'2.6'
puts "It is between 2.5 and 2.6"
else
puts "It is not"
end
```
This pr...
zverok (Victor Shepelev)
05:12 PM Bug #17537 (Closed): === on ranges of strings is not consistant with include?
Hi,
In Ruby up to 2.6 both `("1".."12").include?("6")` and `("1".."12") === "6"` were true. In 2.7 and 3.0, `include?` accepts `"6"`, but `===` does not. This was very handy in `case`s. Reading the documentation it is unclear to m...
akim (Akim Demaille)
04:47 PM Bug #17536: Segfault in `CFUNC :define_method`
This is part of the backtrace:
~~~
#0 lookup_method_table (id=349648, klass=93825096550280) at vm_method.c:690
#1 search_method (defined_class_ptr=<optimized out>, id=<optimized out>, klass=93825096550280) at vm_method.c:970
#2 ...
vo.x (Vit Ondruch)
04:41 PM Bug #17536 (Closed): Segfault in `CFUNC :define_method`
Trying to run test suite of `shoulda-matchers`, I observe the following issue:
~~~
... snip ...
if the given value is present in the store
/usr/share/gems/gems/actionpack-6.0.3.4/lib/action_dispatch/routing/route_set.rb...
vo.x (Vit Ondruch)
04:26 PM Misc #17480 (Closed): DevelopersMeeting20210113Japan
mame (Yusuke Endoh)
03:19 PM Bug #17517: File.expand_path returns us-ascii when both arguments are ascii compat
https://github.com/ruby/ruby/pull/4061 nobu (Nobuyoshi Nakada)
03:18 PM Feature #17407 (Closed): Fiber.current and require 'fiber'
Applied in changeset commit:git|521ad9a13aef1e1dae4eaff70d3e6b2e358aa095.
----------
Moved Fiber methods into core [Feature #17407]
nobu (Nobuyoshi Nakada)
06:52 AM Feature #17407: Fiber.current and require 'fiber'
I still think `Fiber.current` is not needed because `Fiber#transfer` is not easy feature to use.
However, Fiber scheduler is introduced and they can be utilize.
So I'm okay for nobu's PR.
ko1 (Koichi Sasada)
03:18 PM Revision 70cd351c (git): * 2021-01-14 [ci skip]
git[bot]
03:17 PM Revision 7f3c5e65 (git): mkmf.rb: remove exts.mk at distclean
nobu (Nobuyoshi Nakada)
02:46 PM Bug #17534 (Closed): Pattern-matching is broken with find pattern
The minimal reproduction code:
```ruby
case [1, 2, 3]
in y
puts "branch1"
in [*, x, *]
puts "branch2"
else
puts "branch3"
end
```
This outputs long "raw disasm" sequence, and then
```
---------------------
break_pm....
zverok (Victor Shepelev)
02:20 PM Revision 521ad9a1 (git): Moved Fiber methods into core [Feature #17407]
nobu (Nobuyoshi Nakada)
01:11 PM Bug #17533 (Closed): Named capture is not assigned to the same variable as reserved words.
Applied in changeset commit:git|0036648a420f945624898568bb82bc5f83195d12.
----------
Capture to reserved name variables if already defined [Bug #17533]
nobu (Nobuyoshi Nakada)
12:14 PM Bug #17533 (Closed): Named capture is not assigned to the same variable as reserved words.
It is expected that named captures don't add new variables same as reserved words, and such variables couldn't be made usually at the time when named capture was implemented.
Keyword arguments since 2.0 can be the same as reserved wor...
nobu (Nobuyoshi Nakada)
12:16 PM Revision 0036648a (git): Capture to reserved name variables if already defined [Bug #17533]
nobu (Nobuyoshi Nakada)
11:49 AM Bug #17429: Prohibit include/prepend in refinement modules
With https://bugs.ruby-lang.org/issues/17429#note-3 it would.
I think it makes sense adding such functionality at the same time as no longer allowing `include` for refinement modules.
Eregon (Benoit Daloze)
08:08 AM Bug #17429: Prohibit include/prepend in refinement modules
Calling include in refinement modules has certin use cases.
Here's an actual example.
https://github.com/tomykaira/rspec-parameterized/blob/v0.4.2/lib/rspec/parameterized/table_syntax.rb#L27-L61
This gem uses Module#include to avo...
matsuda (Akira Matsuda)
11:41 AM Feature #17485 (Closed): Keyword argument for timezone in Time.new
Applied in changeset commit:git|4b15caee8fe7a5aaa52ed5a3ab2a3517c9206fd7.
----------
Added `in:` timezone option to `Time.new` [Feature #17485]
nobu (Nobuyoshi Nakada)
09:37 AM Revision e9b93d67 (git): Positional and keyword arguments for timezone are exclusive
[Feature #17485] nobu (Nobuyoshi Nakada)
09:15 AM Revision 4b15caee (git): Added `in:` timezone option to `Time.new` [Feature #17485]
nobu (Nobuyoshi Nakada)
09:13 AM Bug #17523 (Closed): Inconsistent Warning[] values in scripts loaded by -r option
Applied in changeset commit:git|6f6dfdcc685077f0f85dcdd63843ecfc0f6fbfb6.
----------
Make warning values consistent [Bug #17523]
They should be affected, as well as `$VERBOSE`, by `-w`/`-W`
options, not only in the main script but in s...
nobu (Nobuyoshi Nakada)
09:13 AM Bug #17509 (Closed): Custom respond_to? methods in modules break defined?(super)
Applied in changeset commit:git|85b5d4c8bf4cdcba4f1af65f2bc0c8ac716cb795.
----------
Revert "[Bug #11213] let defined?(super) call respond_to_missing?"
This reverts commit fac2498e0299f13dffe4f09a7dd7657fb49bf643 for
now, due to [Bug #...
nobu (Nobuyoshi Nakada)
09:12 AM Revision 6f6dfdcc (git): Make warning values consistent [Bug #17523]
They should be affected, as well as `$VERBOSE`, by `-w`/`-W`
options, not only in the main script but in scripts loaded by `-r`
option too.
nobu (Nobuyoshi Nakada)
09:11 AM Revision 85b5d4c8 (git): Revert "[Bug #11213] let defined?(super) call respond_to_missing?"
This reverts commit fac2498e0299f13dffe4f09a7dd7657fb49bf643 for
now, due to [Bug #17509], the breakage in the case `super` is
called in `respond_to?`.
nobu (Nobuyoshi Nakada)
08:07 AM Revision 303533d2 (git): Avoid re-entering opt_invokebuiltin_delegate_leave
on interruption.
The cancellation code was originally written for leave insn, but re-entering
opt_invokebuiltin_delegate_leave insn on a cancellation is not safe, because
a builtin function is executed twice.
k0kubun (Takashi Kokubun)
08:07 AM Revision 98ca667b (git): Fixed a typo [Bug #17522]
xtkoba (Tee KOBAYASHI)
08:07 AM Revision 5b2a0fc6 (git): Fixed dangling imemo_tmpbuf
The count of rb_alloc_tmp_buffer_with_count is the allocation size
counted in VALUE size but not in the requested element size.
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
nobu (Nobuyoshi Nakada)
08:07 AM Revision 1614dd9f (git): expose some C-APIs for ractor
expose some C-APIs to try to make ractor utilities on external gems.
* add
* rb_ractor_local_storage_value_lookup() to check availability
* expose
* rb_ractor_make_shareable()
* rb_ractor_make_shareable_copy()
* rb_proc_isolate(...
ko1 (Koichi Sasada)
08:06 AM Revision b2beb858 (git): Make any hash values fixable [Bug #17488]
As hnum is an unsigned st_index_t, the result of RSHIFT may not be
in the fixable range.
Co-authored-by: NeoCat <neocat@neocat.jp>
nobu (Nobuyoshi Nakada)
08:06 AM Revision b93e16dc (git): enable constant cache on ractors
constant cache `IC` is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.
This patch enables it by introducing `imemo_constcache` and allocates
it by every re-f...
ko1 (Koichi Sasada)
07:38 AM Bug #17504 (Closed): Allow UTC offset without colons per ISO-8601
Applied in changeset commit:git|9441f3f97087a4325ee80911859d37da41fa5050.
----------
Allow UTC offset without colons per ISO-8601 [Bug #17504]
nobu (Nobuyoshi Nakada)
07:37 AM Bug #17504: Allow UTC offset without colons per ISO-8601
Accepted.
Matz.
matz (Yukihiro Matsumoto)
07:37 AM Revision 9441f3f9 (git): Allow UTC offset without colons per ISO-8601 [Bug #17504]
nobu (Nobuyoshi Nakada)
07:10 AM Feature #17479: Enable to get "--backtrace-limit" value by "$-B"
matz (Yukihiro Matsumoto) wrote in #note-4:
> I am OK with introducing a way to get the limit. But I am strongly opposed to `$-B`. Any other idea?
If we are OK with this being a constant and not a variable, `RUBY_BACKTRACE_LIMIT`.
From...
jeremyevans0 (Jeremy Evans)
05:50 AM Feature #17479: Enable to get "--backtrace-limit" value by "$-B"
I am OK with introducing a way to get the limit. But I am strongly opposed to `$-B`. Any other idea?
Matz.
matz (Yukihiro Matsumoto)
07:07 AM Feature #17330: Object#non
I don't see the `non` method make code more readable by glancing at the examples.
Can you elaborate on the benefit of the proposal?
Matz.
matz (Yukihiro Matsumoto)
06:30 AM Feature #16806: Struct#initialize accepts keyword arguments too by default
I am OK with 3.1 to warn, 3.2 to change.
Matz.
matz (Yukihiro Matsumoto)
06:29 AM Feature #17490: Rename RubyVM::MJIT to RubyVM::JIT
As of #15743, it was made clear that `RubyVM` means CRuby specific module (OK? @eregon). I am OK with renaming it `JIT` (or not).
So it's totally up to @k0kubun.
In addition, I don't think we need a migration path for this internal f...
matz (Yukihiro Matsumoto)
06:09 AM Revision 30a35420 (git): [ruby/ostruct] Bump version
Marc-Andre Lafortune
06:05 AM Feature #17327: The Queue constructor should take an initial set of items
I accept the idea. Take `Enumerable` as initial values.
Matz.
matz (Yukihiro Matsumoto)
05:47 AM Feature #17496: Add constant Math::TAU
universato (Yoshimine Sato) wrote in #note-31:
> FYI
> ...
Thank you! This is the first time I actually see the practical use of this constant.
shyouhei (Shyouhei Urabe)
05:42 AM Feature #16989: Sets: need ♥️
I agree with adding `Set` by default. But no set literals nor `SortedSet` at the moment.
Matz.
matz (Yukihiro Matsumoto)
03:31 AM Feature #16989: Sets: need ♥️
I'm sorry, I am completely confused by this discussion, I can't make sense of it.
From what I read:
```ruby
set = {:a, :b, :c} # or whatever notation is used
set.class # => Hash ???
set[:a] # => Hash::SetDummy ???
set[:elem] = ...
marcandre (Marc-Andre Lafortune)
01:48 AM Feature #16989: Sets: need ♥️
knu (Akinori MUSHA) wrote in #note-29:
> For example, a program that goes `hash = {}; hash << 1; hash[:key] = :value` would likely be a mistake, but that couldn't be easily detected without explicit type annotation.
Well, even with t...
knu (Akinori MUSHA)
01:26 AM Feature #16989: Sets: need ♥️
I don't like the idea of making `array & hash` possible, as that would go against the trends of making Ruby type-friendly and error-prone.
akr (Akira Tanaka) wrote in #note-25:
> - define a special constant (Hash::DummyValue = Object...
knu (Akinori MUSHA)
01:26 AM Feature #16989: Sets: need ♥️
akr (Akira Tanaka) wrote in #note-25:
> - Hash#each doesn't work well as Set but we can use Hash#each_key.
To be fair, "Hash#each doesn't work well" means Enumerable methods doesn't work well.
`enum_for(:each_key)` can be used as ...
akr (Akira Tanaka)
12:13 AM Feature #16989: Sets: need ♥️
marcandre (Marc-Andre Lafortune) wrote in #note-26:
> I still don't see the benefit of not simply having `Set` in core.
One direction that distinguishes Ruby from some other programming languages is big classes. A typical example is ...
duerst (Martin Dürst)
04:30 AM Revision 65787f18 (git): Typo fixes [doc]
Marc-Andre Lafortune
04:29 AM Revision f48edc28 (git): Fix method protection for modules in the ancestry chain.
[Fixes ruby/ostruct#23] Marc-Andre Lafortune
04:28 AM Revision 75212f2f (git): Update wording in ractor.md (#4056) [doc]
adampog (Adam Pogwizd)
03:50 AM Bug #17532 (Closed): Remove `"` from `regstr` arguments in `vm_dump.c`
Applied in changeset commit:git|d8fb0bca5475d62731ba871adf344fef88f62bbf.
----------
Removed excess stringizations on regstr [Bug #17532]
nobu (Nobuyoshi Nakada)
02:17 AM Bug #17532 (Closed): Remove `"` from `regstr` arguments in `vm_dump.c`
On AArch64 Linux, a machine register dump is printed as follows:
```
-- Machine register context ------------------------------------------------
"x0: 0x0000000000000000 "x1: 0x000000000000000b "x2: 0x0000000000000000
"x3: 0x534547...
xtkoba (Tee KOBAYASHI)
03:47 AM Revision d8fb0bca (git): Removed excess stringizations on regstr [Bug #17532]
nobu (Nobuyoshi Nakada)
03:16 AM Bug #17162 (Closed): Dir['**/*'] : stack smashing detected when listing big amount of directories
Applied in changeset commit:git|083c5f08ec4e95c9b75810d46f933928327a5ab3.
----------
Check stack overflow in recursive glob_helper [Bug #17162]
nobu (Nobuyoshi Nakada)
03:16 AM Revision 083c5f08 (git): Check stack overflow in recursive glob_helper [Bug #17162]
nobu (Nobuyoshi Nakada)
02:49 AM Revision a5b4b806 (git): [ruby/bigdecimal] Allow digits=0 in BigDecimal(flt) and Float#to_d
Using dtoa of mode=0, we can determine the number of digits in decimal that is
necessary to represent the given Float number without errors.
This change permits digits=0 in BigDecimal(flt) and Float#to_d, and these
methods use dtoa of m...
Kenta Murata
02:27 AM Revision 30f13164 (git): Skip test when UDP server is no response.
hsbt (Hiroshi SHIBATA)
01:24 AM Feature #17097: `map_min`, `map_max`
https://github.com/crystal-lang/crystal/pull/365
In Crystal language, these proposed methods are called `max_of`, `min_of`.
Note: Crystal has `max`, `max_by`, `max_of`.
This feature may not be innovative, but I think many Ruby users...
universato (Yoshimine Sato)
12:36 AM Revision 0a4f719a (git): Update ext/bigdecimal/depend
Kenta Murata
12:08 AM Revision 28321e40 (git): Update ext/bigdecimal/depend
Kenta Murata

01/12/2021

10:38 PM Feature #17496: Add constant Math::TAU
FYI
https://processing.org/reference/TAU.html
Processing may not be a general purpose language, but it has `TAU` and `TWO_PI` on its core.
Processing has `TAU` since 2013.
DOI: 10.14736/kyb-2016-6-0943
http://www.kybernetika.cz...
universato (Yoshimine Sato)
10:10 AM Feature #17496: Add constant Math::TAU
akr (Akira Tanaka) wrote in #note-25:
>However I like another name, `Math::PI2`.
akr (Akira Tanaka) wrote in #note-28:
> ...
Either one halfway nullifies the original proposal. The whole point of this issue is that $\tau$ is the...
sawa (Tsuyoshi Sawada)
06:14 AM Feature #17496: Add constant Math::TAU
akr (Akira Tanaka) wrote in #note-28:
> shyouhei (Shyouhei Urabe) wrote in #note-26:
> ...
`Math::TWOPI` is yet another idea.
akr (Akira Tanaka)
06:02 AM Feature #17496: Add constant Math::TAU
shyouhei (Shyouhei Urabe) wrote in #note-26:
> `M_PI_2` is π/2 rather than 2π. I guess `Math::PI2` is too confusing.
I hope that it does not cause big confusion because Ruby has no PI_2.
akr (Akira Tanaka)
05:56 AM Feature #17496: Add constant Math::TAU
jzakiya (Jabari Zakiya) wrote in #note-23:
> **Why**
> ...
Can you tell us more about this area? A few references of research papers (preferably with an URL of doi.org) would be much appreciated. As I wrote in https://bugs.ruby-lang....
shyouhei (Shyouhei Urabe)
05:45 AM Feature #17496: Add constant Math::TAU
`M_PI_2` is π/2 rather than 2π. I guess `Math::PI2` is too confusing. shyouhei (Shyouhei Urabe)
05:19 AM Feature #17496: Add constant Math::TAU
I feel a constant of Math::PI * 2 is useful especially for
`x * 360 / (Math::PI * 2)`.
We need not only `*` but also parenthesis.
`x * 360 / Math::TAU` is shorter than above.
However I like another name, Math::PI2.
akr (Akira Tanaka)
10:19 PM Bug #17531: `did_you_mean` not Ractor friendly
Typo: I meant a class variable, not a class instance variable. marcandre (Marc-Andre Lafortune)
07:30 PM Bug #17531 (Closed): `did_you_mean` not Ractor friendly
The gem `did_you_mean` uses a class instance variable that does not work with Ractor.
```
$ RUBYOPT='--disable-did_you_mean' ruby -W0 -e 'Ractor.new{ begin ; nil + 42; rescue Exception => e; e.to_s end}.take'
# => prints nothing (ok...
marcandre (Marc-Andre Lafortune)
06:18 PM Bug #17530 (Closed): irb handles << incorrectly with variable as identifier
If you attempt to start a here-document with an identifier that is also a variable, it is interpreted as an append, which makes sense.
That is,
> s1 = 'testing'
> ...
Gets an expected error:
> testcase.rb:4: syntax error, unexpec...
danfranklin (Dan Franklin)
05:11 PM Revision 4ba3a449 (git): [ruby/bigdecimal] Optimize rb_float_convert_to_BigDecimal by using dtoa
This improve the conversion speed several times faster than before.
```
RUBYLIB= BUNDLER_ORIG_RUBYLIB= /home/mrkn/.rbenv/versions/3.0.0/bin/ruby -v -S benchmark-driver /home/mrkn/src/github.com/ruby/bigdecimal/benchmark/from_float.yml
r...
Kenta Murata
04:58 PM Revision 2175c2c9 (git): [ruby/bigdecimal] Use pre-allocated objects for special values
https://github.com/ruby/bigdecimal/commit/95c201f2d3 Kenta Murata
04:42 PM Feature #16989: Sets: need ♥️
I still don't see the benefit of not simply having `Set` in core.
Moreover, does this make `ary & set` possible? efficient?
marcandre (Marc-Andre Lafortune)
04:26 PM Feature #16989: Sets: need ♥️
knu (Akinori MUSHA) wrote in #note-23:
> akr (Akira Tanaka) wrote in #note-22:
> ...
- define a special constant (Hash::DummyValue = Object.new)
- Hash#inspect doesn't show the value: {1 => Hash::DummyValue}.inspect #=> "{1}"
- `{}` ...
akr (Akira Tanaka)
04:05 PM Feature #16989: Sets: need ♥️
akr (Akira Tanaka) wrote in #note-22:
> I like extending Hash instead of incorporating Set.
I don't understand the impacts
One question thing that having builtin set would change:
```ruby
# shareable_constant_value: literal
X...
marcandre (Marc-Andre Lafortune)
04:57 AM Feature #16989: Sets: need ♥️
akr (Akira Tanaka) wrote in #note-22:
> I like extending Hash instead of incorporating Set.
> ...
How would you implement methods and operators of Set in Hash? Would they only work for hashes that meet special conditions?
knu (Akinori MUSHA)
04:46 AM Feature #16989: Sets: need ♥️
I like extending Hash instead of incorporating Set.
For example, #inspect omit hash values.
(Of course, modifying Hash#inspect is clearly not acceptable, I think some compromise is possible)
akr (Akira Tanaka)
04:27 PM Revision 6670de82 (git): [ruby/bigdecimal] Fix exception message raised in Kernel.BigDecimal
https://github.com/ruby/bigdecimal/commit/d163f170a4
https://github.com/ruby/bigdecimal/commit/ff8eeeb064
Kenta Murata
04:13 PM Revision 79d236a9 (git): * 2021-01-13 [ci skip]
git[bot]
04:12 PM Revision 0e442475 (git): [ruby/reline] Version 0.2.1
https://github.com/ruby/reline/commit/a3b3c6ee60 aycabta (aycabta .)
04:12 PM Revision eb5a094f (git): [ruby/reline] Move the cursor correctly when deleting at eol
This fixes ruby/reline#246.
https://github.com/ruby/reline/commit/07a73ba601
aycabta (aycabta .)
04:12 PM Revision 44817db2 (git): [ruby/reline] Handle ed_search_{prev,next}_history in multiline correctly
The current line was being handled incorrectly when displaying the hit
history, so it has been fixed to be correct.
https://github.com/ruby/reline/commit/a3df4343b3
aycabta (aycabta .)
04:12 PM Revision 9fa478e3 (git): [ruby/irb] Version 1.3.1
https://github.com/ruby/irb/commit/c230d08911 aycabta (aycabta .)
01:12 PM Revision 344a824e (git): [DOC] Use URI#read instead of URI.open for better compatibility
- URI.open is available since 2.5.0, but URI#read is available since 1.8.0.
- Fix `open` without `close`.
- ref https://github.com/rurema/doctree/pull/2433
znz (Kazuhiro NISHIYAMA)
11:15 AM Revision 0dc95266 (git): Fix the failing test with XDG_CONFIG_HOME
hsbt (Hiroshi SHIBATA)
11:15 AM Bug #17529: Ractor Segfaults with GC enabled
Just confirmed that it only segfaults when ruby is configured with the `--enable-shared` option (which `rbenv` does by default).
Even more info:
```
glibc 2.32-5
```
prajjwal (Prajjwal Singh)
10:21 AM Bug #17529: Ractor Segfaults with GC enabled
@ko1
It crashes for any value of ARGV[0] between 1 and 25 (that I tested).
The fact that its happening so consistently for me and not for you makes me wonder if the problem stems from my version of Linux or GCC? Some other compile ...
prajjwal (Prajjwal Singh)
08:04 AM Bug #17529: Ractor Segfaults with GC enabled
I couldn't reproduce it. Could you tell me `ARGV[0]`?
BTW please fill "ruby -v:" filed with your environment (even if it is in crash log)
> ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
ko1 (Koichi Sasada)
01:42 AM Bug #17529: Ractor Segfaults with GC enabled
Thanks for the report.
Probably the same bug as #17489
marcandre (Marc-Andre Lafortune)
01:06 AM Bug #17529 (Closed): Ractor Segfaults with GC enabled
I've been benchmarking `Ractor` on my machine with the following naive prime number generator:
```ruby
# frozen_string_literal: true
def prime?(n)
2.upto(n - 1).none? { |i| n % i == 0 }
end
NUM_WORKERS = ARGV[0].to_i
pro...
prajjwal (Prajjwal Singh)
11:13 AM Feature #12607: Ruby needs an atomic integer
ko1 (Koichi Sasada) wrote in #note-24:
> I believe introducing STM https://bugs.ruby-lang.org/issues/17261 is more general for this purpose.
True, but an atomic integer remains useful even if there is an STM.
An STM is overkill and ...
Eregon (Benoit Daloze)
07:54 AM Feature #12607: Ruby needs an atomic integer
I believe introducing STM https://bugs.ruby-lang.org/issues/17261 is more general for this purpose. ko1 (Koichi Sasada)
11:03 AM Bug #17280 (Closed): Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
Applied in changeset commit:git|7dc0511ea4be210f82abb1c82a31aec3a4fe5736.
----------
Remove "." and ".." from Dir.glob with FNM_DOTMATCH [Bug #17280]
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
nobu (Nobuyoshi Nakada)
07:38 AM Bug #17280: Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20201210Japan.md#bug-17280-dirglob-with-fnm_dotmatch-matches--and--and-results-in-duplicated-entries-jeremyevans0
> matz: try to remove "." and ".." on 3.1 (early ti...
mame (Yusuke Endoh)
11:02 AM Revision 7dc0511e (git): Remove "." and ".." from Dir.glob with FNM_DOTMATCH [Bug #17280]
Co-authored-by: Jeremy Evans <code@jeremyevans.net> nobu (Nobuyoshi Nakada)
09:02 AM Misc #17480: DevelopersMeeting20210113Japan
marcandre (Marc-Andre Lafortune) wrote in #note-8:
> * [Misc #0] Comment Deadline (marcandre)
> ...
Okay. In the next ticket, I will change it to 3 days and rephrase "deadline" to "recommendation".
The reason of the deadline is that a f...
mame (Yusuke Endoh)
12:52 AM Misc #17480: DevelopersMeeting20210113Japan
* [Bug #17517] `File.expand_path` returns us-ascii when both arguments are ascii compat (znz)
* `require_relative` use `expand_path`, and it returns us-ascii
znz (Kazuhiro NISHIYAMA)
08:38 AM Revision ccabf496 (git): [ruby/bigdecimal] Fix length calculation in rb_uint64_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/14e53ed7f6 Kenta Murata
08:24 AM Revision 1eb8eb55 (git): Convert time component strings to integers more strictly
https://bugs.ruby-lang.org/issues/17485#change-89871 nobu (Nobuyoshi Nakada)
08:00 AM Revision b017848f (git): Show seconds of utc_offset if not zero
nobu (Nobuyoshi Nakada)
07:31 AM Feature #17363 (Assigned): Timeouts
ko1 (Koichi Sasada)
06:30 AM Feature #17485: Keyword argument for timezone in Time.new
I think `Time.new(2021, 1, 1, "+09:99")` should raise an error instead of `2021-01-01 09:00:00 +0900`. akr (Akira Tanaka)
05:47 AM Feature #17291: Optimize __send__ call
mrkn (Kenta Murata) wrote in #note-3:
> I found that rspec-core redefines `__send__`.
> ...
This redefinition is used to distinguish the form of the method call in a mock object.
rspec-mocks recognizes that the form of `recv.__send__(...
mrkn (Kenta Murata)
05:40 AM Feature #17330: Object#non
I prefer "not" method than this "non" method.
`x.empty?.not`
Although `x.empty?.!` is possible now, `!` method is not very readable.
akr (Akira Tanaka)
04:57 AM Feature #17528: Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
I think Timeout.timeout doesn't work for Addrinfo.getaddrinfo
because Timeout.timeout cannot interrupt getaddrinfo function in C.
akr (Akira Tanaka)
04:43 AM Feature #17473: Make Pathname to embedded class of Ruby
shyouhei (Shyouhei Urabe) wrote in #note-7:
> JFYI pathname was born as a pure-ruby library, then was eventually translated into C (in commit:4bf3cb5ba9c0242bd5a6d0d55b7db9f837c09edf). Don't know the reason behind that move though. @a...
akr (Akira Tanaka)
04:10 AM Bug #17350: mongo-ruby-driver causes the segfault at program's exit
Thank you for your investigation, mame-san!
mongo-ruby-driver has been fixed as below.
https://jira.mongodb.org/browse/RUBY-2453
So if you think this ticket is duplicated with https://bugs.ruby-lang.org/issues/16288,
There is no ...
ttokutake (Tadatoshi Tokutake)
02:45 AM Bug #17527: rb_io_wait_readable/writable with scheduler don't check errno
Yet another solution is to check if in schedulers? nobu (Nobuyoshi Nakada)
12:57 AM Revision f7dc4d5c (git): tool/sync_default_gems.rb: Prevent infinite loop due to unknown options
Kenta Murata
12:50 AM Bug #17517: File.expand_path returns us-ascii when both arguments are ascii compat
Original question is `__FILE__` and `__dir__` are us-ascii only when loaded by `relative_require`.
```
% cat hoge.rb
p __FILE__.encoding
p __dir__.encoding
% cat require_relative.rb
require_relative 'hoge'
% ruby require_relative.rb
#<E...
znz (Kazuhiro NISHIYAMA)
12:49 AM Revision 71b17c41 (git): * 2021-01-12 [ci skip]
git[bot]
12:22 AM Revision 1d04faee (git): [ruby/bigdecimal] Use rb_cstr_convert_to_BigDecimal in GetVpValueWithPrec
https://github.com/ruby/bigdecimal/commit/381ddf5ff6 Kenta Murata
12:21 AM Revision 78d3813c (git): [ruby/bigdecimal] Add rb_cstr_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/ac230a996e Kenta Murata

01/11/2021

08:53 PM Feature #17528 (Open): Make Addrinfo.getaddrinfo fall back to Timeout.timeout for :resolv_timeout
Currently, `Addrinfo.getaddrinfo` ignores the `:resolv_timeout` option if we are on a system without `getaddrinfo_a`. It would be great if instead it would fall back to using `Timeout.timeout`.
That way, we could get rid of a lot of t...
mohamedhafez (Mohamed Hafez)
07:01 PM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
although the title makes it sound obscure, this bug is actually fairly easy to trigger when using rspec and rails:
* activesupport >= 5 prepends a module onto Hash
* i18n >= 1.3 refines several methods on Hash
* power_assert (used b...
fledman (David Feldman)
05:59 PM Bug #17527 (Closed): rb_io_wait_readable/writable with scheduler don't check errno
## Problem
Playing with the new Fiber Scheduler, I noticed that `TCPServer#accept` would hung forever after closing the server from another Fiber. I expected it to be resumed and fail with IOError, as it happens with threads.
## An...
ysbaddaden (Julien Portalier)
12:13 PM Revision 66a844fd (git): Define printf qualifier prefix fallbacks
nobu (Nobuyoshi Nakada)
10:46 AM Revision 72549cfe (git): Removed ENABLE_PATH_CHECK condition [ci skip]
This condition is useless on Ubuntu, as this macro is defined by
default on other than Windows.
nobu (Nobuyoshi Nakada)
07:49 AM Bug #17526 (Closed): Avoid re-entering opt_invokebuiltin_delegate_leave
Please backport commit:2a1c68c91efeba93c413d0736bc513179d784c50 to Ruby 3.0. According to my quick investigation, it probably doesn't cause serious issues in 3.0 implementation, but for future safety this is nice to have. k0kubun (Takashi Kokubun)
07:40 AM Revision 2a1c68c9 (git): Avoid re-entering opt_invokebuiltin_delegate_leave
on interruption.
The cancellation code was originally written for leave insn, but re-entering
opt_invokebuiltin_delegate_leave insn on a cancellation is not safe, because
a builtin function is executed twice.
k0kubun (Takashi Kokubun)
05:00 AM Revision 5e00eeb4 (git): [ruby/matrix] use an exclusive range [Bug #17521]
nobu (Nobuyoshi Nakada)
02:39 AM Revision d2aaf865 (git): [ruby/etc] Added fallback definition of RUBY_ATOMIC_EXCHANGE
https://github.com/ruby/etc/commit/0c5900bd21 nobu (Nobuyoshi Nakada)
02:39 AM Revision f6e2c41d (git): [ruby/etc] Check blocking variables at release
https://github.com/ruby/etc/commit/f017bdfedf nobu (Nobuyoshi Nakada)

01/10/2021

09:21 PM Bug #17521 (Closed): [Matrix stdlib] Zero matrix to the power of zero
Applied in changeset commit:git|d8c8b79d24bf0f3177535501ad9b801e552fb2ad.
----------
[ruby/matrix] Fix 0-th power [Bug #17521] (#4047)
Anonymous
09:21 PM Revision d8c8b79d (git): [ruby/matrix] Fix 0-th power [Bug #17521] (#4047)
Marc-Andre Lafortune
08:39 PM Revision 8187228d (git): Fix ractor docs (#4048) [doc]
Tom Chen
08:13 PM Revision 0e015f93 (git): Adds RDoc summary of Hash methods (#4045)
* Adds RDoc summary of Hash methods burdettelamar (Burdette Lamar)
03:47 PM Revision 52257640 (git): * 2021-01-11 [ci skip]
git[bot]
03:33 PM Revision 480f436d (git): Suppress constant redefinition warnings
nobu (Nobuyoshi Nakada)
01:17 PM Feature #17525 (Closed): Implement Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
https://github.com/ruby/ruby/pull/4038
This change implements Happy Eyeballs Version 2 (RFC8305) in Socket.tcp.
It enables fallback from IPv6 to IPv4 without a long waiting time.
Glass_saga (Masaki Matsushita)
12:29 PM Revision c63552ea (git): Remove possibility of using same seeds
nobu (Nobuyoshi Nakada)
11:42 AM Revision 1e827d4c (git): Moved to ruby/actions workflow [ci skip]
nobu (Nobuyoshi Nakada)
09:31 AM Feature #17524: resolv: add some more characters in IPv6 link local zone id
Thanks for your comment and pull request. That is what I expected.
I'm looking forward it to be merged.
no6v (Nobuhiro IMAI)
09:19 AM Revision 2adbf01a (git): dtoa.c: make thread-safe by using atomic CAS
nobu (Nobuyoshi Nakada)
07:42 AM Revision 34d02631 (git): dtoa.c: constified
clang seems to locate never modified local data in the const
segment implicitly.
nobu (Nobuyoshi Nakada)
07:28 AM Revision 63abb5c2 (git): dtoa.c: make compilable independently
Except for `-Dxmalloc=malloc -Dxfree=free`. nobu (Nobuyoshi Nakada)
 

Also available in: Atom