Project

General

Profile

Activity

From 05/28/2020 to 06/03/2020

06/03/2020

11:53 PM Revision e2d76478 (git): Enhanced Rdoc for Hash (#3178)
* Enhanced Rdoc for Hash
* Fix typo in Hash Rdoc
* Enhanced Rdoc for Hash
burdettelamar (Burdette Lamar)
07:19 PM Bug #9573: descendants of a module don't gain its future ancestors, but descendants of a class, do
With my recent changes to fix the bugs in the object model related to prepend and refinements, adding support for Module#prepend is now straightforward and breaks no tests or specs. I've added a pull request for it: https://github.com/r... jeremyevans0 (Jeremy Evans)
05:13 PM Bug #16932 (Closed): `defined?` on refined method call returns non-nil even before `using`
Applied in changeset commit:git|8340c773e54feb399c9fab322e3ff6dd578ac04d.
----------
Properly resolve refinements in defined? on method call [Bug #16932]
nobu (Nobuyoshi Nakada)
01:55 PM Bug #16932 (Closed): `defined?` on refined method call returns non-nil even before `using`
From 2.0 to master (ee35a4dad3), the second `defined?(a.x)` before `using` returns truthy value.
``` ruby
class A
end
a = A.new
p defined?(a.x) #=> nil (OK)
m = Module.new do
refine(A) do
def x
end
end
end
...
nobu (Nobuyoshi Nakada)
05:12 PM Revision 184f7831 (git): Properly resolve refinements in defined? on private call [Bug #16932]
nobu (Nobuyoshi Nakada)
05:12 PM Revision 8340c773 (git): Properly resolve refinements in defined? on method call [Bug #16932]
nobu (Nobuyoshi Nakada)
04:51 PM Bug #16852 (Closed): Refining Enumerable fails with ruby 2.7
Applied in changeset commit:git|98286e9850936e27e8ae5e4f20858cc9c13d2dde.
----------
Ensure origins for all included, prepended, and refined modules
This fixes various issues when a module is included in or prepended
to a module or cla...
jeremyevans (Jeremy Evans)
04:51 PM Revision 3ced77a8 (git): * 2020-06-04 [ci skip]
git[bot]
04:50 PM Revision 98286e98 (git): Ensure origins for all included, prepended, and refined modules
This fixes various issues when a module is included in or prepended
to a module or class, and then refined, or refined and then included
or prepended to a module or class.
Implement by renaming ensure_origin to rb_ensure_origin, making ...
jeremyevans (Jeremy Evans)
11:37 AM Feature #16897: General purpose memoizer in Ruby 3 with Ruby 2 performance
FWIW this works :
```ruby
H = Hash.new { |h,k| h[k] = k ** 2 }
def sq(...); H.[](...); end
sq(44) # => 1936
sq(42) # => 1764
H # => {44=>1936, 42=>1764}
```
Can such an approach be used for your case?
Eregon (Benoit Daloze)
10:26 AM Feature #16897: General purpose memoizer in Ruby 3 with Ruby 2 performance
Could you clarify which of the numbers above you think is too expensive for performance?
Looking at the numbers I don't see a big difference but it's also hard to compare because they are not in the same order.
Eregon (Benoit Daloze)
10:13 AM Revision ee35a4da (git): Append subsec part instead of creating new string
nobu (Nobuyoshi Nakada)
10:11 AM Revision 160511d8 (git): Quarantine specs which fail frequently with CHECK_LEAKS=true
Eregon (Benoit Daloze)
08:28 AM Revision eb2b7fca (git): Fixed up 56ca006784d
Run lldb just before sending ABRT or KILL signal. Some tests
terminate child processes by TERM signal intentionally.
nobu (Nobuyoshi Nakada)
08:21 AM Bug #16917: "ruby -run -e httpd . " did not work
2020-06-03_15-04.png is running it with port 8081, and 2020-06-03_15-00.png is running it with port 8080. Just to be clear, `ruby -run -e httpd . -p 8081` with Ruby 2.7 also reproduces the same problem, right? k0kubun (Takashi Kokubun)
08:13 AM Bug #16917: "ruby -run -e httpd . " did not work
I suspect that the directory has index.html. Do you run Ruby 2.5 in the same directory as 2.7? mame (Yusuke Endoh)
07:05 AM Bug #16917: "ruby -run -e httpd . " did not work

![](2020-06-03_15-04.png)
Ruby 2.5 is OK
sevk (kk kk)
07:01 AM Bug #16917: "ruby -run -e httpd . " did not work
mame (Yusuke Endoh) wrote in #note-1:
> It works for me. Could you show us the terminal log and the html result (if you can connect to the server)?
only show hello world .
sevk (kk kk)
07:28 AM Feature #16352: Modify Marshal to dump objects larger than 2 GiB
jeremyevans0 (Jeremy Evans) wrote in #note-3:
> Supporting the dumping of larger objects does seem like a useful feature, but as @shyouhei mentioned, it requires a format change, which would break backwards compatibility as a marshal du...
duerst (Martin Dürst)
07:13 AM Revision de5e0f7c (git): vm_invoke_proc_block: reduce recursion
According to nobu recursion can be longer than my expectation. Limit
them here.
shyouhei (Shyouhei Urabe)
07:13 AM Revision b61e82ea (git): vm_call_symbol: check stack overflow
VM stack could overflow here. The condition is when a symbol is passed
to a block-taking method via &variable, and that symbol has never been
used for actual method names (thus yielding that results in calling
method_missing), and the V...
shyouhei (Shyouhei Urabe)
07:13 AM Revision ba20e608 (git): vm_invoke_block: remove auto qualifier
Was (harmless but) redundant. shyouhei (Shyouhei Urabe)
07:13 AM Revision d4015cfe (git): add benchmark for different block handlers
shyouhei (Shyouhei Urabe)
07:13 AM Revision 6302b963 (git): vm_insnhelper.c: add space [ci skip]
Just cosmetic change to improve readability. shyouhei (Shyouhei Urabe)
07:13 AM Revision 054c2fdf (git): vm_invoke_symbol_block: reduce MEMCPY
This commit changes the number of calls of MEMCPY from...
| send | &:sym
-------------------------|-------|-------
Symbol already interned | once | twice
Symbol not pinned yet | none | once
to:
...
shyouhei (Shyouhei Urabe)
07:13 AM Revision 36322942 (git): vm_invoke_symbol_block: call vm_call_opt_send
Symbol#to_proc and Object#send are closely related each other. Why not
share their implementations. By doing so we can skip recursive call of
vm_exec(), which could benefit for speed.
shyouhei (Shyouhei Urabe)
07:13 AM Revision 973883aa (git): vm_invoke_block: force indirect jump
This changeset slightly speeds up on my machine.
Calculating -------------------------------------
before after
Optcarrot Lan_Master.nes 38.33488426546287 40.89825082589147 f...
shyouhei (Shyouhei Urabe)
07:13 AM Revision 796f9eda (git): vm_invoke_block: insertion of unused args
This makes it possible for vm_invoke_block to pass its passed arguments
verbatimly to calling functions. Because they are tail-called the
function calls can be strength-recuced into indirect jumps, which is a
huge win.
shyouhei (Shyouhei Urabe)
07:13 AM Revision ec87a58d (git): vm_invoke_block: eliminate goto
Use recursion for better readability. shyouhei (Shyouhei Urabe)
07:13 AM Revision 11c70b31 (git): vm_invoke_block: move logics around
Moved block handler -> captured block conversion from vm_invokeblock to
each vm_invoke_*_block functions.
shyouhei (Shyouhei Urabe)

06/02/2020

11:24 PM Bug #15711: Remove use of _id2ref from DRb
tenderlovemaking (Aaron Patterson) wrote in #note-16:
> We maintain two maps, an "id to address" and an "address to id" map. When compaction runs it just updates both of those maps. In terms of time and space, it's certainly not free,...
tenderlovemaking (Aaron Patterson)
11:23 PM Bug #15711: Remove use of _id2ref from DRb
> Doesn't it cause a large overhead to maintain the $id_to_obj map? (#15626)
I don't know if it's "large" exactly. But we only need to maintain the map if someone ever accesses "id", and that is rare. Maybe not "never", but it's not ...
tenderlovemaking (Aaron Patterson)
10:05 PM Bug #15711: Remove use of _id2ref from DRb
Doesn't it cause a large overhead to maintain the `$id_to_obj` map? (#15626)
If there was no `_id2ref`, we'd just need an atomic increment for object_id, right?
TruffleRuby implements `_id2ref` but it's very inefficient (basically se...
Eregon (Benoit Daloze)
09:39 PM Bug #15711: Remove use of _id2ref from DRb
Now that MRI has monotonic object ids, does it really matter that we still use id2ref? The id no longer refers to an address, so I'm not sure that this method is so dangerous anymore. tenderlovemaking (Aaron Patterson)
09:37 PM Bug #15711: Remove use of _id2ref from DRb
The commit 8980b53a48b1f55e09c5223008225e6bfa765405 added a new class WeakIdConv, but _id2ref is still used in `lib/drb/drb.rb`. Eregon (Benoit Daloze)
07:51 PM Feature #14267: Lazy proc allocation introduced in #14045 creates regression
In my pull request, I propose the following definition of proc equivalence:
* The procs have the same class
* The procs either are both lambdas or both non-lambdas
* The procs either are both created from a method or both not create...
jeremyevans0 (Jeremy Evans)
05:39 PM Bug #16922: single quote should be escaped in xml
I've added a pull request to escape `'` as `'`: https://github.com/ruby/ruby/pull/3177
@akr, can you let me know if this is correct?
jeremyevans0 (Jeremy Evans)
05:13 PM Feature #10911: IPAddr.new should ignore zone identifiers
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> Dan0042 (Daniel DeLorme) wrote:
> ...
It turns out that the socket library already supports this, at least on my operating system (and I would guess other operating systems supporting IPv...
jeremyevans0 (Jeremy Evans)
04:41 PM Bug #7840: -Wdeclaration-after-statement is valid for C/ObjC but not for C++
declaration-after-statement warnings were removed in commit:ec336fb40e4df0c8615e584fbefb5e9e572cb9ec. implicit-function-declaration warnings are still present, though.
jeremyevans0 (Jeremy Evans)
04:17 PM Bug #9790: Zlib::GzipReader only decompressed the first of concatenated files
ko1 (Koichi Sasada) wrote in #note-10:
> * mame: can each_file return an Enumerator? Seems difficult to implement it
> ...
I'm not sure, but it seems the proposal here would be to make all Zlib::GzipReader methods transparently handle...
jeremyevans0 (Jeremy Evans)
03:53 PM Revision 87bc95e7 (git): * 2020-06-03 [ci skip]
git[bot]
03:53 PM Revision afefcade (git): [ci skip] Enhanced Rdoc for Hash (#3162)
* Enhanced Rdoc for Hash
* Enhanced Rdoc for Hash
burdettelamar (Burdette Lamar)
02:57 PM Revision ae8362fd (git): Add a spec for the new NoMethodError display of the receiver
byroot (Jean Boussier)
10:06 AM Bug #16931 (Closed): `defined?` against a protected method call on an inherited instance returns wrong `nil`
Applied in changeset commit:git|d05f04d27dd86c67e4a8dfff4392f806cf577bdf.
----------
Fixed `defined?` against protected method call
Protected methods are restricted to be called according to the
class/module in where it is defined, not...
nobu (Nobuyoshi Nakada)
10:01 AM Bug #16931 (Closed): `defined?` against a protected method call on an inherited instance returns wrong `nil`
The following code shows `:callable` first, but `nil` next, since 1.9.
If the method is callable, `defined?` expression has to return truthy value.
``` ruby
class A
def foo
:callable
end
protected :foo
def t(x)
...
nobu (Nobuyoshi Nakada)
10:01 AM Revision d05f04d2 (git): Fixed `defined?` against protected method call
Protected methods are restricted to be called according to the
class/module in where it is defined, not the actual receiver's
class. [Bug #16931]
nobu (Nobuyoshi Nakada)
09:58 AM Revision c53aebb1 (git): Split test_defined_method
nobu (Nobuyoshi Nakada)
08:21 AM Revision 56ca0067 (git): run lldb to investigate the stuck process.
Before sending signals (ABRT, KILL), use lldb to show the
backtrace of a stuck process.
This commit also reverts recent changes for terminate().
ko1 (Koichi Sasada)
04:42 AM Feature #16897: General purpose memoizer in Ruby 3 with Ruby 2 performance
I know this is a bit of a hack but... it's possible to get some kind of key from `...` args:
```ruby
KEY = ->(*arguments, **options) {[arguments, options]}
CACHE = {}
def memoize(name)
method = self.method(name)
self.define_method(n...
ioquatix (Samuel Williams)
03:38 AM Revision 40ced763 (git): vm_insnhelper.c: merge opt_eq_func / opt_eql_func
These two function were almost identical, except in case of
T_STRING/T_FLOAT. Why not merge them into one, and let the difference be
handled in normal method calls (slowpath). This does not improve
runtime performance for me, but at lea...
shyouhei (Shyouhei Urabe)
12:06 AM Revision 27bef648 (git): Include the entire lambda expression in lambda rule
nobu (Nobuyoshi Nakada)

06/01/2020

10:57 PM Bug #11669: inconsitent behavior of refining frozen class
Here's the backtrace showing why the frozen error is raised:
```
#0 rb_class_modify_check (klass=7782713867440) at eval.c:495
#1 0x00000713a3570c14 in rb_method_entry_make (klass=7782713867440, mid=51041, defined_class=77827138674...
jeremyevans0 (Jeremy Evans)
10:23 PM Bug #12594 (Closed): The class does not inherit from a module the modules that were included after the inclusion
This was implemented in commit:3556a834a2847e52162d1d3302d4c64390df1694. jeremyevans0 (Jeremy Evans)
10:21 PM Revision 79a8ed07 (git): * 2020-06-02 [ci skip]
git[bot]
10:18 PM Revision d2c48705 (git): Update extension.rdoc for Ruby 3 keyword argument separation [ci skip]
This removes the discussion of behavior removed in Ruby 3. jeremyevans (Jeremy Evans)
09:57 PM Bug #13397 (Closed): #object_id should not be signed
With the change to use an incrementing object_id in Ruby 2.7, I don't think this is an issue anymore. The object_id counter is stored as a Ruby value, so at some point it probably goes from Fixnum to Bignum, but it should not go negative. jeremyevans0 (Jeremy Evans)
09:39 PM Bug #13758 (Closed): TestRubyOptions#test_segv_setproctitle segfaults on AARCH64
jeremyevans0 (Jeremy Evans)
09:27 PM Feature #16928: Array#include_all? & Array#include_any?
I am glad others have reported too. This confirms what I said about this being "very handy".
In response to Marc-Andre Lafortune saying "FYI, you can already do these with sets:"
Please note what I said about being: "more readable than...
AndyMaleh (Andy Maleh)
06:54 PM Feature #16928: Array#include_all? & Array#include_any?
The first case (#include_all?) has also been requested before: #16039 Dan0042 (Daniel DeLorme)
04:46 PM Feature #16928: Array#include_all? & Array#include_any?
FYI, you can already do these with sets:
```ruby
Set[1, 2] == Set[2, 1] # => true
Set[1,2].intersect?(Set[2]) # => true
```
The second case has been requested a few times already: #15198, ...
marcandre (Marc-Andre Lafortune)
03:40 PM Feature #16928 (Open): Array#include_all? & Array#include_any?
Hi,
The Ruby Array class is currently missing #include_all? and #include_any? to check if current Array includes all elements of another Array or any.
I implemented in this Ruby Gem:
https://github.com/AndyObtiva/array_include_met...
AndyMaleh (Andy Maleh)
08:38 PM Bug #14004 (Closed): ri confused by method aliases and by Queue versus Thread::Queue
Both `ri Queue#push` and `ri Array#append` should work now. jeremyevans0 (Jeremy Evans)
07:33 PM Feature #14267: Lazy proc allocation introduced in #14045 creates regression
I don't think this is a bug, just a detail of the implementation that changed when the optimization was applied. The Proc objects created are distinct. As Proc#== and #eql? are not defined, Object#== and #eql? are used, and as the obje... jeremyevans0 (Jeremy Evans)
05:57 PM Bug #14271 (Closed): Random TestIO_Console#test_oflush failure
jeremyevans0 (Jeremy Evans)
05:39 PM Bug #16930 (Third Party's Issue): Excessive deprecation warnings for c++ compile units
According to @shyouhei, it is apparently a bug of GCC 10. He has already reported: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302. They are just warnings, so please ignore. mame (Yusuke Endoh)
05:26 PM Bug #16930 (Closed): Excessive deprecation warnings for c++ compile units
I am using Arch Linux with the latest Ruby 2.7.1.
I am compiling a simple C++ program like this
``` cpp
#include <ruby.h>
int main() {
return 0;
}
```
And then compile as `g++ -c main.cxx -I/usr/include/ruby-2.7.0 -I/...
anatolik (Anatol Pomozov)
05:35 PM Bug #14671 (Rejected): Refining Module#refine itself introduces strange state
This is because Class undefs `refine`, and the refinement for Module is after the lookup chain for Class. Your code works fine if you call `refine` on a Module and not a Class, or if you remove the `undef` from Class. Ruby does not supp... jeremyevans0 (Jeremy Evans)
05:08 PM Bug #14558 (Closed): "Backtrace in reverse order" always upsets my brain!
The backtrace order was switched back in commit:487d0c99d53208594702bb3ce1c657130fb8d65f. jeremyevans0 (Jeremy Evans)
03:47 PM Bug #14732 (Closed): CGI.unescape returns different instance between Ruby 2.3 and 2.4
I'm not sure if this behavior change between Ruby 2.3 and 2.4 was originally expected. However, I don't see why we would want to revert to the previous, and the current behavior doesn't seem to be a bug. Please submit a feature request... jeremyevans0 (Jeremy Evans)
03:42 PM Feature #16929 (Open): Add GC.start(compact: true)
I have been working on integrating compaction in to the normal GC process (in other words, making compaction automatic). I was thinking about adding `GC.start(compact: true)` (actually I put it in master without filing a ticket first, a... tenderlovemaking (Aaron Patterson)
03:37 PM Bug #14755 (Closed): Aborted (core dumped)
jeremyevans0 (Jeremy Evans)
03:35 PM Bug #14843 (Closed): [BUG] Illegal instruction at 0x000000010c7acc0a
jeremyevans0 (Jeremy Evans)
03:35 PM Bug #14874 (Closed): Segmentation fault under Cygwin
jeremyevans0 (Jeremy Evans)
03:21 PM Bug #15795 (Closed): Some test fails on Haiku
jeremyevans0 (Jeremy Evans)
03:06 PM Bug #16179 (Closed): ruby binaries generate "already initialized constant" warnings on AIX 6.1
jeremyevans0 (Jeremy Evans)
10:20 AM Feature #16476: Socket.getaddrinfo cannot be interrupted by Timeout.timeout
mame (Yusuke Endoh) wrote in #note-7:
> We discussed this issue at the dev-meeting, and it requires @Glass_saga's review.
> ...
Thanks for feedback!
I've opened https://github.com/ruby/ruby/pull/3171 with the approach you've described. P...
kirs (Kir Shatrov)
09:26 AM Revision cadd2245 (git): Extracted `excessed_comma` to unify ripper and make the order stable
nobu (Nobuyoshi Nakada)
08:03 AM Revision 7b9527ce (git): add more 2 sec.
After sending SEGV signal, but no response. Try to add 2 more
seconds. If we can not have a detailed log, we need to use
gdb/lldb to show the backtrace.
ko1 (Koichi Sasada)
01:15 AM Revision 3591703b (git): send SEGV to show backtrace.
send SEGV to terminate the remaining process before sending
ABRT and KILL to show the backtrace.
ko1 (Koichi Sasada)
12:36 AM Bug #16927: String#tr won't return the expected result for some sign with diacritics
This is because `String#tr` translates each codepoint, not each grapheme cluster, for now. nobu (Nobuyoshi Nakada)
12:20 AM Revision 4cb8b49d (git): [DOC] relative filename `Kernel#.require` and `Kernel#.load` [ci skip]
MSP-Greg (Greg L)

05/31/2020

11:11 PM Revision 6a0405de (git): fix typo in Hash#delete docs
S_H_ (Shun Hiraoka)
10:30 PM Revision b7e1de11 (git): Make sure rb_enc_str_new_static() is used when enc is NULL
* The definition of the rb_enc_str_new_cstr macro depends on
HAVE_BUILTIN___BUILTIN_CONSTANT_P.
* It SEGV on mswin otherwise.
Eregon (Benoit Daloze)
04:23 PM Revision bb966b5d (git): * 2020-06-01 [ci skip]
git[bot]
04:22 PM Revision 34776105 (git): Update to ruby/spec@4e486fa
Eregon (Benoit Daloze)
04:22 PM Revision f4502b00 (git): Update to ruby/mspec@e3abf6b
Eregon (Benoit Daloze)
04:21 PM Bug #16759: MinGW 2.5 - SEGV bug with Binding#local_variable_set
Could someone take a look at this please?
It seems a pretty serious bug to segfault/abort when using `Binding#local_variable_set`.
cc @nobu @usa
Eregon (Benoit Daloze)
04:17 PM Bug #16925: Backport request: net/http raises in ensure and replaces the original error
Note that it's OK to backport just the fix in lib/net/http/response.rb
Non-master Ruby versions tests against latest ruby/spec, and I'll just change the [ruby_version_is guard](https://github.com/ruby/ruby/pull/3164/files#diff-e0a90a2...
Eregon (Benoit Daloze)
10:52 AM Bug #16925 (Closed): Backport request: net/http raises in ensure and replaces the original error
Closing to trigger backport Eregon (Benoit Daloze)
10:52 AM Bug #16925 (Closed): Backport request: net/http raises in ensure and replaces the original error
Could we backport https://github.com/ruby/ruby/pull/3164, part of [Bug #13882] ?
(Details in https://bugs.ruby-lang.org/issues/13882#note-6)
I think it would be worthwhile.
Eregon (Benoit Daloze)
04:00 PM Bug #16927 (Rejected): String#tr won't return the expected result for some sign with diacritics
# Context
Not much interest for the bug here, but I always appreciate to be given more context. So, as part of a larger project, I needed to utter every number from zero to 255 with a single syllable written as a consonant-vowel-conso...
psychoslave (mathieu lovato stumpf guntz)
03:55 PM Bug #16926 (Closed): Kernel#require does not load a feature twice when $LOAD_PATH has been modified spec fails only on 2.7
This spec:
https://github.com/ruby/spec/blob/03f9a0e2f9c23a12614ffb603f32cd971d79616e/core/kernel/shared/require.rb#L246-L251
fails in 2.7.1, but not on Ruby <= 2.6 and not on master.
Could someone investigate why that is and if t...
Eregon (Benoit Daloze)
10:52 AM Bug #13882: Exception in `ensure` stops threads from exiting
I merged that PR and requested a backport in #16925. Eregon (Benoit Daloze)
10:48 AM Revision 5a79d8e0 (git): Fix error raised by Net::HTTPResponse#inflater if the block raises
* See https://bugs.ruby-lang.org/issues/13882#note-6 Eregon (Benoit Daloze)
10:48 AM Revision 5b4b82b7 (git): Fix spec description for Net::HTTP.get
Eregon (Benoit Daloze)
09:59 AM Feature #16828 (Assigned): Introduce find patterns
> Accepted.
Thank you. I'll commit it.
> ...
Yes. This is exactly what I intend.
ktsj (Kazuki Tsujimoto)
08:21 AM Bug #16814: Segmentation fault in GC while running test/ruby/test_fiber.rb on s390x
@ReiOdaira thanks for your careful analysis. It is very useful! I will review the code and get back to you. ioquatix (Samuel Williams)
07:42 AM Bug #16814: Segmentation fault in GC while running test/ruby/test_fiber.rb on s390x
On s390x, `FIBER_POOL_ALLOCATION_FREE` is enabled. The doubly linked list of `fiber_pool->vacancies` assumes that the head `fiber_pool_vacancy` has `NULL` in its `previous` field. However, when a fiber is released, `fiber_pool_vacancy_... ReiOdaira (Rei Odaira)

05/30/2020

06:19 PM Revision d6f8bdc0 (git): * 2020-05-31 [ci skip]
git[bot]
06:07 PM Revision 6dcd10ce (git): compile.c: Mark cursor in debug list
nobu (Nobuyoshi Nakada)
06:05 PM Revision 2c711273 (git): compile.c: Removed wrong conversion
nobu (Nobuyoshi Nakada)
03:49 PM Feature #16924 (Open): instance_eval equivalent for RubyVM::InstructionSequence
# Abstract
Proposal to expose the ability to evaluate precompiled ISEQs in non-toplevel contexts.
# Background
A common pattern used for certain kinds of DSL is to instance_eval entire files, like this:
```ruby
___dsl_object.instanc...
Wuerfel21 (Ada Gottensträter)
01:04 PM Revision e10798b3 (git): [DOC] refined `Kernel#.require` and `Kernel#.load` [ci skip]
nobu (Nobuyoshi Nakada)
12:20 PM Revision 57fd44d3 (git): Adjusted an indent
nobu (Nobuyoshi Nakada)
08:35 AM Bug #13882: Exception in `ensure` stops threads from exiting
PR to fix the Net::HTTP/gzip case with specs to verify the fix: https://github.com/ruby/ruby/pull/3164 Eregon (Benoit Daloze)
07:36 AM Bug #13882: Exception in `ensure` stops threads from exiting
Regarding the http/gzip example, it seems unfortunate but it's probably the same for any exception raised in `ensure`: that exception might replace a more "critical" exception such as "kill Thread" exception/NoMemoryError/SignalException... Eregon (Benoit Daloze)
07:10 AM Bug #13882: Exception in `ensure` stops threads from exiting
In the original example, it gets stuck on the second call to `sleep`.
Basically the "kill Thread" exception (which cannot be rescue-d directly) was thrown after Ctrl+C to the Thread.
However, that `ensure` raises another (RuntimeError)...
Eregon (Benoit Daloze)

05/29/2020

11:42 PM Bug #13882: Exception in `ensure` stops threads from exiting
This bug still seems to be affecting all more recent versions of Ruby up to and including 2.7.1.
I encountered this in the `newrelic_rpm` gem which was intermittently hanging on shutdown in a short-lived script. It turns out that if R...
wjordan (Will Jordan)
10:59 PM Bug #16439 (Closed): Resolv::DNS: timeouts if multiple IPv6 name servers are given and address contains leading zero
Applied in changeset commit:git|04b5203a031d372b725e407519f10da6deda0e78.
----------
Convert ip addresses to canonical form in Resolv::DNS::Requester::UnconnectedUDP#sender
Otherwise, if the IP address given is not in canonical form, i...
jeremyevans (Jeremy Evans)
09:19 PM Bug #16439: Resolv::DNS: timeouts if multiple IPv6 name servers are given and address contains leading zero
This isn't just a problem for IPv6, it happens for IPv4 as well (e.g. 127.0.0.01). It will happen in any case where the input is not in canonical form, where canonical form is the form that `Addrinfo#ip_address` gives you. I've added a... jeremyevans0 (Jeremy Evans)
10:59 PM Revision 9b8825b6 (git): Update NEWS / documentation with GC.start(compact:true)
tenderlovemaking (Aaron Patterson)
10:59 PM Revision 04b5203a (git): Convert ip addresses to canonical form in Resolv::DNS::Requester::UnconnectedUDP#sender
Otherwise, if the IP address given is not in canonical form, it
won't match, and Resolv will ignore it.
Fixes [Bug #16439]
jeremyevans (Jeremy Evans)
10:59 PM Feature #16923 (Closed): Switch reserved for numbered parameter warning to SyntaxError
I propose to make `_1 = 1` a SyntaxError, instead of emitting a warning (it emits a warning in 2.7). I've implemented this proposal in a pull request: https://github.com/ruby/ruby/pull/3163 jeremyevans0 (Jeremy Evans)
10:39 PM Bug #16344 (Closed): Can be assigned to numbered parameter when after used _1
Assigning to the numbered parameter is now a SyntaxError even if it is a local variable in scope, so current master has your expected behavior.
Related to this, accessing the numbered parameter inside a block in master accesses the nu...
jeremyevans0 (Jeremy Evans)
10:25 PM Feature #16352: Modify Marshal to dump objects larger than 2 GiB
It's currently expected that Marshal cannot dump objects larger than 2GiB, so this isn't a bug, though arguably RangeError would be more appropriate than TypeError if the data is too large. Supporting the dumping of larger objects does ... jeremyevans0 (Jeremy Evans)
10:24 PM Revision 02b216e5 (git): Combine sweeping and moving
This commit combines the sweep step with moving objects. With this
commit, we can do:
```ruby
GC.start(compact: true)
```
This code will do the following 3 steps:
1. Fully mark the heap
2. Sweep + Move objects
3. Update references
B...
tenderlovemaking (Aaron Patterson)
10:15 PM Bug #16357 (Closed): `Segmentation fault (core dumped)` or `[BUG] object allocation during garbage collection phase`
jeremyevans0 (Jeremy Evans)
10:10 PM Bug #16369 (Third Party's Issue): Segfault : crashed on child side of fork pre-exec thread_pool.rb
This crashes inside the pg gem: `https://github.com/ged/ruby-pg/blob/v1.1.4/ext/pg_connection.c#L3221-L3240`. My guess is you are not disconnecting before forking and you end up sharing connections between processes, which can easily ca... jeremyevans0 (Jeremy Evans)
09:29 PM Feature #16373: RDoc for some of the Kernel methods cannot be found in Kernel module
The current RDoc behavior is by design, so this isn't a bug, it's a feature request.
I agree it would be best for RDoc to reflect the reality that Kernel methods are defined in Kernel and not object, because if they were defined in Ob...
jeremyevans0 (Jeremy Evans)
09:21 PM Bug #16398 (Closed): Active Support unit test error since caac5f777ae288b5982708b8690e712e1cae0cf6
jeremyevans0 (Jeremy Evans)
09:20 PM Bug #16410 (Closed): Spec failure - "File.utime allows Time instances in the far future to set mtime and atime"
jeremyevans0 (Jeremy Evans)
08:52 PM Bug #16416 (Closed): Suspicious include directories.
Looking at my include directories, I see directories such as:
```
/path/to/include/ruby-2.7/ruby-2.6/x86_64-openbsd
/path/to/include/ruby-2.7/ruby-2.7/x86_64-openbsd
```
but nothing similar for 2.8 even though 2.8 is also instal...
jeremyevans0 (Jeremy Evans)
08:20 PM Feature #16470: Issue with nanoseconds in Time#inspect
Even though this appears to be a bug, it's actually intentional behavior, introduced in commit:5208c431bef3240eb251f5da23723b324431a98e, and there are tests and specs for it. So changing this behavior would be a feature request.
I th...
jeremyevans0 (Jeremy Evans)
08:17 PM Misc #16911: Travis: unstable non-x86_64 jobs
Related to the unstable non-x86_64 jobs in Travis, I am asking Drone CI to support ppc64le/s390x here.
https://discourse.drone.io/t/supporting-ppc64le-and-s390x/7385/
I understand Ruby project does not use Drone CI, as we need to use...
jaruga (Jun Aruga)
08:00 PM Bug #16921: s390x: random test failures for timeout or segmentation fault
Thanks for the info! I will try the environment variable, and will let you know here.
jaruga (Jun Aruga)
12:22 PM Bug #16921: s390x: random test failures for timeout or segmentation fault
Try an environment variable `RUBY_TEST_TIMEOUT_SCALE`. If you set `RUBY_TEST_TIMEOUT_SCALE=10`, all timeout tests wait 10 times longer. mame (Yusuke Endoh)
12:06 PM Bug #16921 (Closed): s390x: random test failures for timeout or segmentation fault
I observed the following error related to timeout or segmentation fault on Ruby 2.7.1 s390x in Fedora builds. The tests somtimes fail. It seems the s390x machine used in CI is slow. It's great if we can change the timeout casually if it ... jaruga (Jun Aruga)
06:53 PM Revision c1f6552b (git): [ci skip] Enhanced Rdoc for Hash (#3155)
* Enhanced Rdoc for Hash
* Respond to review
burdettelamar (Burdette Lamar)
06:19 PM Bug #16922 (Closed): single quote should be escaped in xml
This is Lisbeth from Taiwan. I'm trying to convert a string to xml by using 'string'.encode(xml: :attr) but single quote doesn't escape as expected
Here's the spec shows which character needs to be escaped: https://www.w3.org/TR/xml/#dt...
lisbethw1130 (Lisbeth Wu)
05:52 PM Feature #16597: missing poll()
rebased michals (Michal Suchánek)
05:03 PM Bug #16919 (Assigned): IRB でマジックコメントの : の後に任意の文字を入力するとエラーが発生する
znz (Kazuhiro NISHIYAMA)
09:12 AM Bug #16919 (Closed): IRB でマジックコメントの : の後に任意の文字を入力するとエラーが発生する
# 再現手順
``` ruby
irb(main):001:0> #coding:u
```
# 実際に起きた結果
```
irb(main):001:0> #coding:Traceback (most recent call last):
38: from /usr/local/opt/ruby/bin/irb:23:in `<main>'
37: from /usr/local/opt/ruby/bin/irb:23:in `load'
3...
Anonymous
04:57 PM Bug #16522 (Closed): Ruby 2.7 logs deprecation warning when Warning[:deprecated] is set to false.
I took another look at this and I think we can silence the deprecation warnings with `-W:no-deprecated` even if we can't deduplicate the warnings. Attached is a patch that implements this. I'm not sure if the approach in ruby.h is acce... jeremyevans0 (Jeremy Evans)
04:54 PM Bug #16920: TestThread#test_signal_at_join fails on aarch64
> I have never seen the test fail on Debian/Ubuntu aarch64. So use Ubuntu! (joke)
I love Debian. :) It's my pleasure when I spend time with people in Debian community.

> ...
Yeah, it makes sense.
> Can you reproduce the issue w...
jaruga (Jun Aruga)
12:32 PM Bug #16920: TestThread#test_signal_at_join fails on aarch64
I have never seen the test fail on Debian/Ubuntu aarch64. So use Ubuntu! (joke)
It is difficult to investigate the issue with no access to the machine...
Can you reproduce the issue with ruby master? Can you try another Fedora+a...
mame (Yusuke Endoh)
11:53 AM Bug #16920 (Closed): TestThread#test_signal_at_join fails on aarch64
I observed the following error on Ruby 2.7.1 building in Fedora aarch64 CI. It was just one time error. It does not always happen.
```
1) Error:
TestThread#test_signal_at_join:
Timeout::Error: execution of assert_separately expir...
jaruga (Jun Aruga)
04:52 PM Revision e73e504e (git): spec: add wsl guard
WSL 2 is officially released. It uses Linux kernel, so almost all specs
for Linux work on WSL, except one: gethostbyaddr. I guess network
resolution in WSL is based on Windows, so the behavior seems a bit
different from normal Linux.
...
mame (Yusuke Endoh)
04:15 PM Revision 0d1f0cd9 (git): runnable.rb: ignore broken symlink error on Windows [ci skip]
nobu (Nobuyoshi Nakada)
04:09 PM Revision 0d30f428 (git): [DOC] mentioned "explicit relative path" [ci skip]
`Kernel#.require` and `Kernel#.load` do not search also "explicit
relative path" files, not only absolute paths, in the load path.
nobu (Nobuyoshi Nakada)
03:27 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
@Eregon good catch, I'll submit a PR with extra specs early next week and tag you. byroot (Jean Boussier)
10:13 AM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
FWIW it also applies to missing methods and other NameError, which sounds nice but would deserve a spec in `spec/ruby/core/exception/name_error_spec.rb`:
```
$ ruby -e 'c=Class.new { def self.name; "MyClass"; end }; c.foo'
master:
-...
Eregon (Benoit Daloze)
03:17 PM Revision 2c8821c0 (git): * 2020-05-30 [ci skip]
git[bot]
03:16 PM Revision 58bc9762 (git): test/ruby/test_process.rb: GID.from_name may raise Errno:ESRCH
getgrnam(3) says:
```
ERRORS
0 or ENOENT or ESRCH or EBADF or EPERM or ...
The given name or gid was not found.
```
Process::GID.from_name raises an ArgumentError for 0, but Errno::ESRCH
for ESRCH. Actually, WSL 2 ...
mame (Yusuke Endoh)
02:49 PM Revision 3ed79a97 (git): doc/contributing.rdoc: Removed obsolete platforms [ci skip]
nobu (Nobuyoshi Nakada)
02:07 PM Bug #16918 (Closed): Dir.mktmpdir should yield a copy of the dir to protect cleanup
Applied in changeset commit:git|2ecfb88ee50510955acd3ae9fc94a5f109e7f109.
----------
Correctly remove temporary directory if path yielded is mutated
Another approach would be to freeze the string, but that could
cause backwards compati...
jeremyevans (Jeremy Evans)
04:59 AM Bug #16918: Dir.mktmpdir should yield a copy of the dir to protect cleanup
Makes sense to me what headius wrote, so if there are no side effects (I have too
little experience with Dir.mktmpdir myself) +1 to the suggestion from me.
shevegen (Robert A. Heiler)
02:52 AM Bug #16918: Dir.mktmpdir should yield a copy of the dir to protect cleanup
I agree this is a bug and have added a pull request to fix it: https://github.com/ruby/ruby/pull/3159 jeremyevans0 (Jeremy Evans)
01:14 AM Bug #16918 (Closed): Dir.mktmpdir should yield a copy of the dir to protect cleanup
If you modify the dir string passed into the block from `Dir.mktmpdir`, the logic to clean up the temporary directory may fail:
```
$ rvm ruby-2.6.5 do ruby -rtmpdir -e "Dir.mktmpdir('foo') {|dir| dir << 'bar'}"
Traceback (most rece...
headius (Charles Nutter)
02:06 PM Revision 2ecfb88e (git): Correctly remove temporary directory if path yielded is mutated
Another approach would be to freeze the string, but that could
cause backwards compatibility issues.
Fixes [Bug #16918]
jeremyevans (Jeremy Evans)
05:45 AM Revision 0bd025ad (git): Add a debug_counter for JIT cancel on leave
k0kubun (Takashi Kokubun)
04:50 AM Revision d300a734 (git): RUBY_ASSERT_NOASSUME
If __builtin_assume() is enables and RUBY_DEBUG=0, RUBY_ASSERT(expr)
will be compiled to __builtin_assume(expr) and compiler can assume
expr is true and apply aggressive optimizations. However we observed
doubtful behavior because of com...
ko1 (Koichi Sasada)
03:39 AM Feature #16786: Light-weight scheduler for improved concurrency.
What about borrowing a little from Crystal? The non-blocking API could be:
``` ruby
spawn do
# non-blocking fiber
end
```
I like how it has a completely different interface without introducing a new term.
mgomes (Mauricio Gomes)
02:25 AM Revision 03d7f3cd (git): add indent for debug disasm output
ko1 (Koichi Sasada)
02:25 AM Revision 6ba2d3e4 (git): export debug utility functions
ko1 (Koichi Sasada)
12:41 AM Revision d32e2bb0 (git): Allow references to $$ in Ripper DSL
nobu (Nobuyoshi Nakada)

05/28/2020

10:04 PM Bug #16504: `foo(*args, &args.pop)` should pass all elements of args
I've added a pull request that fixes this issue: https://github.com/ruby/ruby/pull/3157
It's not a perfect fix, but a perfect fix would require disabling a commonly used optimization, resulting in additional array allocations in commo...
jeremyevans0 (Jeremy Evans)
10:01 PM Revision c7ceaa6d (git): Extract "free moved list" function
Extract a function to free the moved list. We'll use this function
later on to compact at the same time as sweep.
tenderlovemaking (Aaron Patterson)
07:38 PM Bug #16558 (Closed): What is special about GB2312
jeremyevans0 (Jeremy Evans)
07:37 PM Feature #16559: Net::HTTP#request injects "Connection: close" header if #started? is false, wasting HTTP server resources
I don't think this is a bug fix, this just makes a different tradeoff. This can help cases where the computer you are connecting to is overloaded by TIME_WAIT sockets. However, by the same token, it causes TIME_WAIT sockets to accumula... jeremyevans0 (Jeremy Evans)
06:11 PM Feature #16378: Support leading arguments together with ...
Eregon (Benoit Daloze) wrote in #note-10:
> @jeremyevans0 or @nobu Could you implement it on `master`?
I've implemented basic support, which passes make check: https://github.com/jeremyevans/ruby/commit/672901facca6f88ae40b4ea8ef59ef...
jeremyevans0 (Jeremy Evans)
11:44 AM Feature #16378: Support leading arguments together with ...
Interesting, I never saw the reply above from matz.
Looking at my email I received one but it wasn't attached to the rest of the conversation for this issue for some reason.
Great to hear it's now accepted.
I think we should have ...
Eregon (Benoit Daloze)
05:45 PM Revision fd7849ce (git): * 2020-05-29 [ci skip]
git[bot]
05:43 PM Revision b8fadf3a (git): Respect BIGNUM_DEBUG defined by command line option
And fixed typo in compilers.yml. nobu (Nobuyoshi Nakada)
02:57 PM Bug #16668 (Closed): Syntax error in tool/vcs.rb
Applied in changeset commit:git|9a3371be8f5274d1dca64b93c7b9a379e32ea2f5.
----------
Check that BASERUBY is at least Ruby 2.2 in configure
BASERUBY needs to be at least Ruby 2.2 since
46acd0075d80c2f886498f089fde1e9d795d50c4.
I think ...
jeremyevans (Jeremy Evans)
02:57 PM Revision 07b2102a (git): Remove Ruby <2.2 support from tool/lib/vcs.rb
BASERUBY now requires at least Ruby 2.2, so there is no point
trying to support older ruby versions here.
jeremyevans (Jeremy Evans)
02:57 PM Revision 9a3371be (git): Check that BASERUBY is at least Ruby 2.2 in configure
BASERUBY needs to be at least Ruby 2.2 since
46acd0075d80c2f886498f089fde1e9d795d50c4.
I think it's better to explicitly fail early as soon as BASERUBY
is used in this case, versus trying to debug later failures.
This modifies things t...
jeremyevans (Jeremy Evans)
11:47 AM Feature #16891: Restore Positional Argument to Keyword Conversion
Regarding delegation, I agree we need to support at least leading arguments together with `...`.
I filed #16378 6 months ago (before the 2.7 release), it was rejected and then later accepted.
I think we should backport that to 2.7 as i...
Eregon (Benoit Daloze)
11:06 AM Feature #16891: Restore Positional Argument to Keyword Conversion
I like the current plan for keyword argument separation. Promotion of hash to keywords is very confusing and cause many problems designing clean interfaces in Ruby. Kudos to @jeremyevans0 and everyone else here for providing calm and rat... ioquatix (Samuel Williams)
11:21 AM Revision 28ce7582 (git): Enhanced Rdoc for Hash (#3151)
burdettelamar (Burdette Lamar)
09:47 AM Bug #16917: "ruby -run -e httpd . " did not work
works for me as well on fresh 2.7.1 installation (compiled locally) retro (Josef Šimánek)
09:32 AM Bug #16917 (Feedback): "ruby -run -e httpd . " did not work
It works for me. Could you show us the terminal log and the html result (if you can connect to the server)? mame (Yusuke Endoh)
03:05 AM Bug #16917 (Third Party's Issue): "ruby -run -e httpd . " did not work

ruby -run -e httpd . -p 8080
no file list show
only show HelloWorld .
sevk (kk kk)
05:41 AM Revision 7473b4c1 (git): Explicitly loading with envutil.rb
hsbt (Hiroshi SHIBATA)
05:39 AM Revision f186f2d0 (git): Use Module#name instead of #inspect
Coverage measurement had failed since 7d5da30c9e9c572f6ef0aaccc1ca0e724966e2ee
https://github.com/ruby/actions/runs/708557030?check_suite_focus=true
mame (Yusuke Endoh)
 

Also available in: Atom