Project

General

Profile

Activity

From 05/06/2021 to 05/12/2021

05/12/2021

10:18 PM Feature #17837: Add support for Regexp timeouts
nobu (Nobuyoshi Nakada) wrote in #note-22:
> I made a patch for `Regexp#backtrack_limit=`.
> ...
This is really perfect isn't it? It's much better than a wall clock timeout. If you have 2 active threads then a 1s timeout really means 0.5...
Dan0042 (Daniel DeLorme)
03:13 PM Feature #17837: Add support for Regexp timeouts
I commented on https://bugs.ruby-lang.org/issues/17849 which I would LOVE to see some movement on. I support being able to have high-level "safe" timeouts. I also support a separate effort to improve this pathological regex DoS problem t... schneems (Richard Schneeman)
10:08 PM Bug #17857: `when 0r` and `when 0i` do not match with `case 0`
I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/4496 jeremyevans0 (Jeremy Evans)
05:51 AM Bug #17857: `when 0r` and `when 0i` do not match with `case 0`
I agree. Optimisation that changes the behaviour of the program is not an optimisation. It's simply broken. shyouhei (Shyouhei Urabe)
05:05 AM Bug #17857 (Closed): `when 0r` and `when 0i` do not match with `case 0`
The following code prints `:bar` between Ruby 2.1 .. 2.5, and dumps core since Ruby 2.6.
```
case 0
when 0r
p :foo
else
p :bar #=> :bar
end
```
A Complex has the same issue.
```
case 0
when 0i
p :foo
else
p :...
mame (Yusuke Endoh)
09:40 PM Bug #14367: Wrong interpretation of backslash C in regexp literals
The behavior appears not to be intentional. This is a bug related to the fact that Ruby uses a recursive algorithm for strings (read_escape) but not for regexps (tokadd_escape). I've submitted a pull request to have control/meta handli... jeremyevans0 (Jeremy Evans)
07:51 PM Feature #17859: Start IRB when running just `ruby`
I normally use `-e` too for short code evaluation and a REPL for longer sessions.
> I can understand your intent. But could you tell us more about the context?
There's not really much context, I just noticed how python works and li...
deivid (David Rodríguez)
07:37 PM Feature #17859: Start IRB when running just `ruby`
+1 from me, I think it's convenient and to some extent becoming expected for modern dynamic languages (JS, Python, R, Scala and more do it).
TruffleRuby already does, and so does Rubinius.
I think the warning is a nice way to document t...
Eregon (Benoit Daloze)
07:13 PM Feature #17859: Start IRB when running just `ruby`
> I think firing up a console it's a good default behaviour for beginners.
I can understand your intent. But could you tell us more about the context?
In my experience, if I do not understand a command, I tend to run `[command] --h...
jaruga (Jun Aruga)
04:59 PM Feature #17859: Start IRB when running just `ruby`
A compromise could be a warning - TruffleRuby warns when standard in is a terminal, but otherwise works as normal. As TruffleRuby is often used in a polyglot context, we do find this trips people up a lot if they aren't used to Ruby. And... chrisseaton (Chris Seaton)
04:49 PM Feature #17859: Start IRB when running just `ruby`
I'm against this. I often run `ruby`, and input code on standard input to get results, without wanting to use irb. I was literally doing this minutes ago with @ko1 to debug an issue. jeremyevans0 (Jeremy Evans)
04:33 PM Feature #17859 (Open): Start IRB when running just `ruby`
Compare python:
```
$ python
Python 3.8.3 (default, Jul 8 2020, 16:49:12)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
To ruby:
```
$ ruby
# just hangs
```
I ...
deivid (David Rodríguez)
03:17 PM Feature #17398 (Closed): SyntaxError in endless method
Applied in changeset commit:git|31794d2e733e081e4e221f27aff6380393981681.
----------
parse.y: Allow "command" syntax in endless method definition
This change allows `def hello = puts "Hello"` without parentheses.
Note that `private de...
mame (Yusuke Endoh)
08:32 AM Feature #17398: SyntaxError in endless method
I have considered this issue for a while and concluded it should be merged to be consistent with the assignment statement.
Matz.
matz (Yukihiro Matsumoto)
03:17 PM Revision 9225352b (git): * 2021-05-13 [ci skip]
git[bot]
03:14 PM Revision 31794d2e (git): parse.y: Allow "command" syntax in endless method definition
This change allows `def hello = puts "Hello"` without parentheses.
Note that `private def hello = puts "Hello"` does not parse for
technical reason.
[Feature #17398]
mame (Yusuke Endoh)
03:06 PM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
I've had a conversation with Matz about this and I've been thinking about this issue for a LONG time. The blocker to doing something like this before is that due to the halting problem we can never know if an ensure block will exit or no... schneems (Richard Schneeman)
01:54 PM Bug #17858 (Closed): Trailing comma after a `&block` parameter cause a syntax error
It is intended. `&block` argument must come at the end of arguments. Nothing comes after.
Matz.
matz (Yukihiro Matsumoto)
11:40 AM Bug #17858 (Closed): Trailing comma after a `&block` parameter cause a syntax error
Something I just noticed:
```ruby
some_long_method(
1,
&block, # syntax error, unexpected ',', expecting ')'
)
```
Which seems inconsistent to me as it works for regular parameters:
```ruby
some_long_method(
1,
2...
byroot (Jean Boussier)
11:17 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
marcandre (Marc-Andre Lafortune) wrote in #note-6:
> I'd suggest an option be added to the initializer of `ObjectSpace::WeakMap`.
I think we should have a separate class if this feature is accepted.
It's already complicated enough t...
Eregon (Benoit Daloze)
08:40 AM Revision 81513c9d (git): * remove trailing spaces. [ci skip]
git[bot]
08:40 AM Revision 523a6998 (git): Use another class for the comparison.
`memsize_of(Object.new)` can be changed with past ivar creation
history for Object instances (another Object instance has 4 or
more ivars, next created Object instance has the area for the
ivars). So use antoher class for the comparison.
ko1 (Koichi Sasada)
08:24 AM Revision 81720b94 (git): Use assert_raise instead of assert_raises
hsbt (Hiroshi SHIBATA)
08:24 AM Revision cdcfe108 (git): Revert 924ce2c5ba4d1c1dc781a6a06682204d358421bb
Because test-unit didn't provide the benchmark test. And This test
is fragile with the several environments.
hsbt (Hiroshi SHIBATA)
08:24 AM Revision bef49e6e (git): [rubygems/rubygems] Added begin-end block for java platform
Because pend of test-unit raises exception.
https://github.com/rubygems/rubygems/commit/b5e2d0855a
hsbt (Hiroshi SHIBATA)
08:24 AM Revision b314885a (git): [rubygems/rubygems] Update the link of minitest code with the commit hash.
https://github.com/rubygems/rubygems/commit/e7280f8d30 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 32d25660 (git): [rubygems/rubygems] Removed the related code for minitest-bisect
https://github.com/rubygems/rubygems/commit/83ebdec27a hsbt (Hiroshi SHIBATA)
08:24 AM Revision 9620a30b (git): [rubygems/rubygems] Fixed an intentional blank-line
https://github.com/rubygems/rubygems/commit/795b572ac2 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 655727ee (git): [rubygems/rubygems] Added comment for Minitest::Mock
https://github.com/rubygems/rubygems/commit/ae44b68d57 hsbt (Hiroshi SHIBATA)
08:24 AM Revision d33888bf (git): [rubygems/rubygems] Replace skip to pend
https://github.com/rubygems/rubygems/commit/0b145135c7 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 129bc04a (git): [rubygems/rubygems] util/rubocop -a
https://github.com/rubygems/rubygems/commit/a10ff97830 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 00f5b4b5 (git): [rubygems/rubygems] Don't use Minitest::Mock
https://github.com/rubygems/rubygems/commit/d3fa893597 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 3456335a (git): [rubygems/rubygems] Removed minitest/mock from test/rubygems/test_gem_remote_fetcher.rb
https://github.com/rubygems/rubygems/commit/f1af59fe02 hsbt (Hiroshi SHIBATA)
08:24 AM Revision ff3f9904 (git): [rubygems/rubygems] Removed minitest/mock from test_gem_package_tar_writer.rb
https://github.com/rubygems/rubygems/commit/45464bfcbd hsbt (Hiroshi SHIBATA)
08:24 AM Revision 7b3b4854 (git): [rubygems/rubygems] capture_output will return empty string, not nil
https://github.com/rubygems/rubygems/commit/3fa93f6144 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 9b5e4ce6 (git): [rubygems/rubygems] Fixed variable scope at test_silent_system
https://github.com/rubygems/rubygems/commit/bfcdf79657 hsbt (Hiroshi SHIBATA)
08:24 AM Revision d5237c5d (git): [rubygems/rubygems] Import capture_subprocess_io from minitest
https://github.com/rubygems/rubygems/commit/8b2ca6df3a hsbt (Hiroshi SHIBATA)
08:24 AM Revision cd375e45 (git): [rubygems/rubygems] Rewrite with capture_output
https://github.com/rubygems/rubygems/commit/a091004ded hsbt (Hiroshi SHIBATA)
08:24 AM Revision 5ed9d3f1 (git): [rubygems/rubygems] Use capture_output instead of capture_io
https://github.com/rubygems/rubygems/commit/c46185abe3 hsbt (Hiroshi SHIBATA)
08:24 AM Revision c30594bb (git): [rubygems/rubygems] Use assert_raise instead of assert_raises
https://github.com/rubygems/rubygems/commit/769e87f011 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 2c0072de (git): [rubygems/rubygems] Use dummy assertion for assert_https
https://github.com/rubygems/rubygems/commit/64d843fe17 hsbt (Hiroshi SHIBATA)
08:24 AM Revision a1c41646 (git): [rubygems/rubygems] Use capture_output instead of assert_silent
https://github.com/rubygems/rubygems/commit/3225aab7f8 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 958f9d42 (git): [rubygems/rubygems] Use capture_output instead of capture_io for test-unit
https://github.com/rubygems/rubygems/commit/ab9c80d4cb hsbt (Hiroshi SHIBATA)
08:24 AM Revision 3948be35 (git): [rubygems/rubygems] Use assert_path_exist and assert_path_not_exist instead of assert_path_exists and refute_path_exists
https://github.com/rubygems/rubygems/commit/a7c93558c3 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 81d793a9 (git): [rubygems/rubygems] Extract assert_output to assert_empty and assert_equal with capture_output
https://github.com/rubygems/rubygems/commit/f6759440a4 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 18317447 (git): [rubygems/rubygems] Use Regexp with refute_match
https://github.com/rubygems/rubygems/commit/51fdbe53bc hsbt (Hiroshi SHIBATA)
08:24 AM Revision 3c9633ac (git): [rubygems/rubygems] Also use capture_output instead of capture_io
https://github.com/rubygems/rubygems/commit/229858ea56 hsbt (Hiroshi SHIBATA)
08:24 AM Revision 26cbda8d (git): [rubygems/rubygems] Use capture_output instead of capture_io.
https://github.com/rubygems/rubygems/commit/ad9206d4d0 hsbt (Hiroshi SHIBATA)
08:24 AM Revision cddeee21 (git): [rubygems/rubygems] Use test-unit instead of minitest
https://github.com/rubygems/rubygems/commit/a8571524ad hsbt (Hiroshi SHIBATA)
07:20 AM Feature #17047: Support parameters for MAIL FROM and RCPT TO
I would still appreciate some feedback on this :-) c960657 (Christian Schmidt)
05:46 AM Bug #17854: Crash with certain "case" expressions on FreeBSD
Any chances to be backported to each supported version? meta@vmeta.jp (Koichiro Iwao)
01:31 AM Bug #17854 (Closed): Crash with certain "case" expressions on FreeBSD
Applied in changeset commit:git|2bc293e899c9d32dcd794a73de8925c49ecf8f15.
----------
cdhash_cmp: can take rational literals
Rational literals are those integers suffixed with `r`. They tend to
be a part of more complex expressions lik...
shyouhei (Shyouhei Urabe)
03:57 AM Revision 5a6af44e (git): skip test for debug.
test_memsize_of_iseq fails on repeat tests and it seems to difficult
to solve immediately. Now this test is skipped.
It seems that the result of `memsize_of(Object.new)` are increased.
Why...?
ko1 (Koichi Sasada)
03:53 AM Revision 3df7c967 (git): suppress warnings on repeat tests.
Constant definitions are affect on outer namespace of an anonymous
module. To define constants on the anonymous module, this patch
uses Module#class_eval(str).
ko1 (Koichi Sasada)
01:30 AM Revision 6911b4bc (git): test_cdhash: refactor change class
It is now strange to test Complex in a class named Rational_Test. shyouhei (Shyouhei Urabe)
01:30 AM Revision 0ab0b86c (git): cdhash_cmp: should use ||
cf: https://github.com/ruby/ruby/pull/4469#discussion_r628386707 shyouhei (Shyouhei Urabe)
01:30 AM Revision e1eff837 (git): cdhash_cmp: recursively apply
For instance a rational's numerator can be a bignum. Comparison using
C's == can be insufficient.
shyouhei (Shyouhei Urabe)
01:30 AM Revision cc0dc67b (git): cdhash_cmp: can also take complex
There are complex literals `123i`, which can also be a case condition. shyouhei (Shyouhei Urabe)
01:30 AM Revision d0e6c6e6 (git): cdhash_cmp: rational literals with fractions
Nobu kindly pointed out that rational literals can have fractions. shyouhei (Shyouhei Urabe)
01:30 AM Revision 2bc293e8 (git): cdhash_cmp: can take rational literals
Rational literals are those integers suffixed with `r`. They tend to
be a part of more complex expressions like `123/456r`, but in theory
they can live alone. When such "bare" rational literals are passed to
case-when branch, we have t...
shyouhei (Shyouhei Urabe)
12:20 AM Revision 773c690f (git): [ruby/net-ftp] Bump version to 0.1.2
https://github.com/ruby/net-ftp/commit/895ba44b3c shugo (Shugo Maeda)

05/11/2021

10:45 PM Revision ee1725ce (git): Update keyword argument description in method syntax guide
Remove discussion of Ruby 2.7 specific handling of keyword
argument separation. Add a small example of keyword to
positional hash conversion for methods not accepting
keyword arguments.
jeremyevans (Jeremy Evans)
10:23 PM Feature #17837: Add support for Regexp timeouts
An alternative may be something like:
`Thread.safe_raise` which allows for raising in places we consider "safe" like mid-regex. Not sure...
sam.saffron (Sam Saffron)
10:22 PM Feature #17837: Add support for Regexp timeouts
@nobu I follow but unfortunately there are many ways in which `thread.raise` can corrupt internal state.
See: https://github.com/mperham/sidekiq/issues/852
Discussion goes back to 2008 on this one: http://blog.headius.com/2008/02...
sam.saffron (Sam Saffron)
12:23 PM Feature #17837: Add support for Regexp timeouts
I made a patch for `Regexp#backtrack_limit=`.
This seems no significant performance difference.
https://github.com/ruby/ruby/compare/master...nobu:Regexp.backtrack_limit?expand=1
I don't think timeout per regexp is a good idea.
T...
nobu (Nobuyoshi Nakada)
11:25 AM Feature #17837: Add support for Regexp timeouts
Interesting. I've tested your patch, but it is not so small on my machine.
'10000000.times { /(abc)+/ =~ "abcabcabc" }'
Before (min over 10 runs): 2.037 after 1.962 ~ 3.8% slower
It may depend on the performance of branch predicti...
mame (Yusuke Endoh)
07:33 AM Feature #17837: Add support for Regexp timeouts
I tested with:
```
diff --git a/thread.c b/thread.c
index 47e43ecb63..811b6e88a8 100644
--- a/thread.c
+++ b/thread.c
@@ -1573,25 +1573,29 @@ rb_thread_reg_match_time_limit_get()
void
rb_thread_reg_match_start(void)
{
- ...
sam.saffron (Sam Saffron)
10:18 PM Revision cc1ea6e0 (git): Run nmake check on Actions (#4487)
* Run nmake check on Actions
* Skip tests not working in mswin GitHub Actions
* Override TEMP
* Revert "Skip tests not working in mswin GitHub Actions"
This reverts commit 544d2575fcdf23ae63cd25aa03fce10c28b259f2.
* Revert "Revert "...
k0kubun (Takashi Kokubun)
10:05 PM Bug #17855 (Feedback): [BUG] object allocation during garbage collection phase
There's not much that we can do to debug this without a reproducible example. The most common cause is a C extension trying to allocate an object while garbage collection is running. From the backtrace, the `rb_utf8_str_new_cstr` funct... jeremyevans0 (Jeremy Evans)
08:31 PM Revision 07f055bb (git): Revert "Filling cache values on cvar write"
This reverts commit 08de37f9fa3469365e6b5c964689ae2bae0eb9f3.
This reverts commit e8ae922b62adb00a80d3d4c49f7d7b0e6026eaba.
tenderlovemaking (Aaron Patterson)
07:04 PM Revision 08de37f9 (git): Filling cache values on cvar write
Instead of on read. Once it's in the inline cache we never have to make
one again. We want to eventually put the value into the cache, and the
best opportunity to do that is when you write the value.
eileencodes (Eileen Uchitelle)
07:04 PM Revision e8ae922b (git): Add a cache for class variables
This change implements a cache for class variables. Previously there was
no cache for cvars. Cvar access is slow due to needing to travel all the
way up th ancestor tree before returning the cvar value. The deeper the
ancestor tree the s...
eileencodes (Eileen Uchitelle)
07:02 PM Bug #17631: `Numeric#real?` incorrectly returns true for `NaN` and `INFINITY`
Fair enough - If we're not worrying about following the mathematical definitions too closely then we can gloss over a lot of these details about the definition of "real numbers" and leave it as-is. Instead, how about a new method `#ratio... jtannas (Joel Tannas)
03:38 AM Bug #17631: `Numeric#real?` incorrectly returns true for `NaN` and `INFINITY`
It does not make sense to discuss the mathematical definition of real numbers in this context because digital computers cannot handle (the entire) real numbers in the first place. Hence, we are dealing with floating point numbers, which ... sawa (Tsuyoshi Sawada)
04:05 PM Bug #17806 (Closed): Bad interaction between method cache, prepend, and refinements
Applied in changeset commit:git|39a2ba5cc559900c30c3143da32446c2f20a7484.
----------
Method cache: fix refinement entry handling
To invalidate some callable method entries, we replace the entry in the
class. Most types of method entrie...
alanwu (Alan Wu)
04:05 PM Revision c9e02d89 (git): * 2021-05-12 [ci skip]
git[bot]
04:05 PM Revision 39a2ba5c (git): Method cache: fix refinement entry handling
To invalidate some callable method entries, we replace the entry in the
class. Most types of method entries are on the method table of the
origin class, but refinement entries without an orig_me are housed in
the method table of the clas...
alanwu (Alan Wu)
03:00 PM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
Seems reasonable to me.
I also wish that `WeakMap` was officially public, it can be quite useful. I wish it's interface was closer to `Hash`.
I'd suggest an option be added to the initializer of `ObjectSpace::WeakMap`.
marcandre (Marc-Andre Lafortune)
09:08 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
I'd like this to be reconsidered. I'll add it to the next developer meeting. byroot (Jean Boussier)
11:08 AM Revision 010bb088 (git): Workaround for make test-tool
hsbt (Hiroshi SHIBATA)
10:46 AM Revision bb8a759f (git): Fix a typo of c6a11b865e1f9085c88fe169a1f47680383580c2
It failed to define `refute_path_not_exist` mame (Yusuke Endoh)
10:38 AM Revision 1b61cdd5 (git): test/irb/test_raise_no_backtrace_exception.rb: Set LC_MESSAGES as UTF-8
mame (Yusuke Endoh)
10:32 AM Revision c6a11b86 (git): Alias assert/refute_path_exists for test-unit gem.
It's required at https://github.com/rubygems/rubygems/pull/3141 hsbt (Hiroshi SHIBATA)
10:12 AM Feature #17856 (Open): ary.member? is slower than ary.include?
`Array#include?` is defined as a faster version of `Enumerable#include?`, but there is no `Array#member?` defined.
```
$ time ruby -e 'a = (0..100000).to_a; 1000.times { a.member?(100000) }'
real 0m1.722s
user 0m1.721s
sys...
mame (Yusuke Endoh)
09:12 AM Misc #17811: DevelopersMeeting20210521Japan
- [Feature #17795] Around `Process.fork` callbacks API
- Was considered in the last meeting, but didn't reach any conclusion
- Since then more use cases and argument were brought.
- [Feature #16038] Provide a public WeakMap that c...
byroot (Jean Boussier)
07:17 AM Revision c45f7556 (git): [ruby/irb] Fix `Encoding::ConverterNotFoundError`
Follow https://github.com/ruby/irb/pull/237.
This PR fixes the following `Encoding::ConverterNotFoundError`.
```console
% bin/spring stop && bin/rails c
Spring stopped.
Running via Spring preloader in process 58395
Loading development ...
koic (Koichi ITO)
05:46 AM Revision 66ca6ede (git): [ruby/irb] Skip test_raise_exception_with_invalid_byte_sequence
on Windows for now. It seems like we haven't figured this out yet.
https://github.com/ruby/irb/commit/ecf5a1ace1
k0kubun (Takashi Kokubun)
04:41 AM Revision afa70d07 (git): Explicitly specify encoding for another test as well
Same as e2ccc3301e2c69533b9ef2464613781c6c964c3a
https://ci.appveyor.com/project/ruby/ruby/builds/39102539/job/k8m1yrrjesxbgvtq
k0kubun (Takashi Kokubun)
04:33 AM Revision 7c346e10 (git): Split a Choco-Install command
In https://github.com/ruby/ruby/runs/2552065052, while it failed to
install winflexbison3, it exited the retry loop because openssl was
installed successfully.
https://github.com/actions/virtual-environments/blob/a5ee51f72dcbc3879a91a74...
k0kubun (Takashi Kokubun)
04:30 AM Revision e2ccc330 (git): test/irb/test_raise_no_backtrace_exception.rb: UTF-8 is expected
... for the output of assert_in_out_err.
This will fix the following failure on many CI machines
http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20210511T030005Z.fail.html.gz
```
1) Failure:
TestIRB::TestRaiseNoBacktraceException...
mame (Yusuke Endoh)
04:17 AM Revision 3c9e30ae (git): Try running Choco-Install with powershell
https://github.com/ruby/ruby/runs/2552047430 k0kubun (Takashi Kokubun)
04:14 AM Revision 4ee72f4a (git): Retry choco install
by using a wrapper provided by GitHub Actions
https://github.com/actions/virtual-environments/pull/721
to address failures like
https://github.com/ruby/ruby/runs/2551980671
k0kubun (Takashi Kokubun)
04:01 AM Revision bb543610 (git): [ruby/irb] Skip the new IRB test on Windows for now
It's not passing from the beginning
https://github.com/ruby/ruby/runs/2550929220
https://ci.appveyor.com/project/ruby/ruby/builds/39100747
https://github.com/ruby/irb/commit/71fc180018
k0kubun (Takashi Kokubun)
03:40 AM Bug #17748 (Closed): Ruby 3.0 takes a long time to resolv DNS of nonexistent domains
Applied in changeset commit:git|9edc162583a4f685332239f6249745ad9b518cbe.
----------
[ruby/resolv] Fix confusion of received response message
This is a follow up for commit 33fb966197f1 ("Remove sender/message_id
pair after response re...
rhenium (Kazuki Yamaguchi)
03:37 AM Revision 9edc1625 (git): [ruby/resolv] Fix confusion of received response message
This is a follow up for commit 33fb966197f1 ("Remove sender/message_id
pair after response received in resolv", 2020-09-11).
As the @senders instance variable is also used for tracking transaction
ID allocation, simply removing an entry...
rhenium (Kazuki Yamaguchi)
02:29 AM Revision 5b0abba9 (git): Sync bundler & rubygems
deivid (David Rodríguez)
02:29 AM Revision 15160e9b (git): Sync bundler & rubygems at the same time
deivid (David Rodríguez)
02:29 AM Revision 7dccc4ef (git): Properly synchronize bundler gemspec too
By making the necessary modifications automatically. deivid (David Rodríguez)
02:29 AM Revision cc4d8d03 (git): Simplify syncing bundler
These files no longer exist upstream, so they don't need to be synced. deivid (David Rodríguez)
12:32 AM Revision 774cc32b (git): [ruby/irb] Treat encodings in exception correctly
https://github.com/ruby/irb/commit/4452adbe04 aycabta (aycabta .)
12:07 AM Revision 4785d608 (git): .github/compilers/workflows.yml: support GCC-11
GCC 11.1 was released. https://gcc.gnu.org/pipermail/gcc/2021-April/235922.html
See also https://github.com/ruby/ruby-ci-image/pull/1
shyouhei (Shyouhei Urabe)

05/10/2021

08:21 PM Misc #17811: DevelopersMeeting20210521Japan
* [Bug #15928] Constant declaration does not conform to JIS 3017:2013 (jeremyevans0)
* Do we want to make constant assignment evaluation similar to attribute assignment (e.g. use left-to-right evaluation)?
* We recently made a simi...
jeremyevans0 (Jeremy Evans)
07:00 PM Revision d6d38d90 (git): * 2021-05-11 [ci skip]
git[bot]
07:00 PM Revision d2d443ef (git): Enhanced RDoc for Enumerable (#4479)
Methods treated:
#count
#find
#find_index
#select
#filter_map
#reject
#map
#flat_map
burdettelamar (Burdette Lamar)
03:40 PM Bug #17855 (Closed): [BUG] object allocation during garbage collection phase
### Steps to reproduce
It happened sometimes when I'm navigating in my application, I don't really know the cause
### Expected behavior
Normal navigation
### Actual behavior
The application crashed while printing thousand of lin...
Tikroz (Tikroz .)
10:19 AM Revision 73136ebb (git): [ruby/psych] Fix some typos [ci skip]
https://github.com/ruby/psych/commit/98617e55a1 kamipo (Ryuta Kamizono)
10:19 AM Revision b7250026 (git): [ruby/psych] bump version
https://github.com/ruby/psych/commit/091cd46b1f tenderlovemaking (Aaron Patterson)
10:19 AM Revision 95497016 (git): [ruby/psych] docs: fix simple typo, expessed -> expressed
There is a small typo in ext/psych/yaml/yaml.h.
Should read `expressed` rather than `expessed`.
https://github.com/ruby/psych/commit/1150d669cb
Tim Gates
10:19 AM Revision 1563de59 (git): [ruby/psych] Update to latest SnakeYAML
Fixes jruby/jruby#6365
https://github.com/ruby/psych/commit/a88ff77f02
headius (Charles Nutter)
10:17 AM Revision c110ade0 (git): [ruby/psych] Fix custom marshalization with symbolize_names: true
https://github.com/ruby/psych/commit/ee26f26ab5 byroot (Jean Boussier)
10:17 AM Revision 155cd7fd (git): [ruby/psych] Cache dispatch cache in an instance variable
https://github.com/ruby/psych/commit/285c461cd2 byroot (Jean Boussier)
10:17 AM Revision 3ab41acd (git): [ruby/psych] Cache access to Psych.load_tags in Visitor::ToRuby
https://github.com/ruby/psych/commit/58223f0426 byroot (Jean Boussier)
10:09 AM Revision ab785b28 (git): [ruby/psych] Use assert_raise instead of assert_raises
https://github.com/ruby/psych/commit/e6ad12b4e1 hsbt (Hiroshi SHIBATA)
09:53 AM Revision bae9a21e (git): [ruby/psych] Use pend instead of skip
https://github.com/ruby/psych/commit/efd2a62c9a hsbt (Hiroshi SHIBATA)
09:53 AM Revision 53c5a4bb (git): [ruby/psych] Fixed test-case for NaN
https://github.com/ruby/psych/commit/f85a008263 hsbt (Hiroshi SHIBATA)
09:53 AM Revision 230d559f (git): [ruby/psych] Use Ractor constant for ignoreing condition
https://github.com/ruby/psych/commit/cc5f957327 hsbt (Hiroshi SHIBATA)
09:53 AM Revision ce67549c (git): [ruby/psych] Use test-unit instead of minitest
https://github.com/ruby/psych/commit/01e7310dd3 hsbt (Hiroshi SHIBATA)
07:08 AM Revision ce5779d8 (git): [ruby/set] set is also dual licenses
https://github.com/ruby/set/commit/fc24457e53 hsbt (Hiroshi SHIBATA)
07:08 AM Revision 94d858f8 (git): Add a space to separate sentences in the error message
Andrei Beliankou
07:08 AM Revision 61e44995 (git): [ruby/set] Adding section: What's Here
https://github.com/ruby/set/commit/257dc452a7 burdettelamar (Burdette Lamar)
07:08 AM Revision 0a745479 (git): [ruby/set] Adding section: What's Here
https://github.com/ruby/set/commit/8f4c62768d burdettelamar (Burdette Lamar)
07:08 AM Revision b8506eb4 (git): [ruby/set] Adding section: What's Here
https://github.com/ruby/set/commit/254d927c8c burdettelamar (Burdette Lamar)
07:08 AM Revision adc86f7a (git): [ruby/set] Adding section: What's Here
https://github.com/ruby/set/commit/ab81354de1 burdettelamar (Burdette Lamar)
06:59 AM Revision 2d670274 (git): Removed missing/dup2.c
This function should be always available, as POSIX-compliant or
Windows platform are required since 1.9. Also the code in this
file is MT-unsafe.
nobu (Nobuyoshi Nakada)
03:24 AM Revision 72ad9d27 (git): fix previous commit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e U.Nakamura
02:18 AM Revision 23f93512 (git): * 2021-05-10 [ci skip]
git[bot]
02:18 AM Revision 043ac94d (git): rb_fiber_new_kw: doesn't exist
Not against having such thing but currently we lack one. shyouhei (Shyouhei Urabe)
01:17 AM Revision 1d0e670e (git): LEGAL: Remove entries that no longer exist
lib/bundler.gemspec and man/bundle-*,gemfile.* are now under the
directory lib/bundler/.
mame (Yusuke Endoh)

05/09/2021

04:12 PM Bug #17777: 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99
(hopefully) fixed at r67942. usa (Usaku NAKAMURA)
04:11 PM Revision 5df653ca (git): fix macos build
note that this is not a security fix, but recognized as critical build problem.
[Backport #17777]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
U.Nakamura
06:57 AM Bug #16383: TracePoint does not report calls to attribute reader methods
This may be a long shot, but would it be possible to make a c extension and apply a patch [similar to this](https://bugs.ruby-lang.org/attachments/8197) from a gem?
I also think the `--debug` flag mentioned by Charles is an excellent ...
st0012 (Stan Lo)

05/08/2021

09:46 PM Bug #17804 (Closed): Math.cbrt(0.0) returns NaN
Applied in changeset commit:git|406ae7fb03640e11e200382ef61cd450b952b7aa.
----------
Fix Math.cbrt(0.0) on glibc
This should return 0, but on glibc it returned NaN.
Fixes [Bug #17804]
jeremyevans (Jeremy Evans)
09:45 PM Revision 406ae7fb (git): Fix Math.cbrt(0.0) on glibc
This should return 0, but on glibc it returned NaN.
Fixes [Bug #17804]
jeremyevans (Jeremy Evans)
07:50 PM Revision b7fec2e3 (git): * 2021-05-09 [ci skip]
git[bot]
07:50 PM Revision 43380401 (git): Enhanced RDoc for Enumerable (#4473)
Enhanced RDoc for Enumerable: #grep and #grep_v. burdettelamar (Burdette Lamar)
01:41 PM Revision e3e55967 (git): Fix example code in Array#max doc
`[0, 1, 2, 3].max(6)` actually returns `[3, 2, 1, 0]`, but the doc said
it returns `[3, 2, 1]`.
pocke (Masataka Kuwabara)
06:29 AM Revision c7601fb9 (git): [ruby/irb] Deal with different screen sizes
https://github.com/ruby/irb/commit/7118b3322f nobu (Nobuyoshi Nakada)
05:00 AM Revision de96ae9b (git): [ruby/irb] Dump ancestors' methods by ls command
https://github.com/ruby/irb/commit/73edff287c pocke (Masataka Kuwabara)
02:40 AM Revision 30d2d726 (git): Shrink timev.rb iseq size
nobu (Nobuyoshi Nakada)

05/07/2021

11:41 PM Bug #14963 (Closed): Since r64107, on Solaris, spec test of rb_io_wait_readable hangs up
r64107 (commit:708bfd21156828526fe72de2cedecfaca6647dc1) was reverted at commit:194a6a2c68e9c8a3536b24db18ceac87535a6051, and the timer thread still exists, so I think this can be closed. jeremyevans0 (Jeremy Evans)
08:14 PM Revision 86b4c2fc (git): What's Here for class Dir (#4472)
What's Here for class Dir burdettelamar (Burdette Lamar)
04:22 PM Revision 111bfc93 (git): * 2021-05-08 [ci skip]
git[bot]
04:22 PM Revision 4337da37 (git): What's Here for class File (#4460)
What's Here for class File burdettelamar (Burdette Lamar)
03:15 PM Misc #17818: Reviving Travis CI
I would share the result by communicating with Travis support.
The excellent news is now,
* arch: `arm64`, arch: `ppc64le`, arch: `s390x` have free unlimited builds without consuming credits for all the open source repositories.
...
jaruga (Jun Aruga)
01:18 PM Feature #17816 (Closed): Move C heap allocations for RVALUE object data into GC heap
Closed as PR has been merged. peterzhu2118 (Peter Zhu)
11:15 AM Revision 40612d55 (git): Fixed shorten-64-to-32 errors when USE_COMBINATION_EXPLOSION_CHECK
nobu (Nobuyoshi Nakada)
08:14 AM Feature #17837: Add support for Regexp timeouts
@mame not sure if the compiler takes care of this but maybe we can avoid calls to GET_THREAD if the static reg_match_time_limit is not set, just bypass all of this if the static is not set? sam.saffron (Sam Saffron)
07:57 AM Feature #17837: Add support for Regexp timeouts
I've created a simple prototype of `Regexp.timeout=` by a polling approach.
Conclusion first. It brings about 5% overhead in micro benchmark, unfortunately.
I guess it is unlikely to be significant in a real application, but not good...
mame (Yusuke Endoh)
06:03 AM Feature #17837: Add support for Regexp timeouts
I think that backtracking limit would be better than timeout.
nobu (Nobuyoshi Nakada)
08:02 AM Revision ff69ef27 (git): compile.c: Pass node instead of nd_line(node) to ADD_INSN* functions
... then, new_insn_core extracts nd_line(node).
Also, if a macro "EXPERIMENTAL_ISEQ_NODE_ID" is defined, this changeset
keeps nd_node_id(node) for each instruction. This is intended for
TypeProf to identify what AST::Node corresponds to...
mame (Yusuke Endoh)
04:40 AM Bug #17854: Crash with certain "case" expressions on FreeBSD
Thank you for reporting! This is my bug, clang optimizer is not guilty here.
Trying to fix at: https://github.com/ruby/ruby/pull/4469
shyouhei (Shyouhei Urabe)
02:04 AM Bug #15928: Constant declaration does not conform to JIS 3017:2013
Eregon (Benoit Daloze) wrote in #note-10:
> @mame @ko1 @yugui Are we sure we want to go ahead with the change in #4443 and this one? Or should we keep things as they are in 3.0, or as change single assignment like in MRuby?
In my opi...
mame (Yusuke Endoh)

05/06/2021

09:11 PM Feature #17831 (Third Party's Issue): add slice method to Fiddle::MemoryView
Could you file this to https://github.com/ruby/fiddle/ ? kou (Kouhei Sutou)
09:10 PM Feature #17832 (Third Party's Issue): allow IO write to write memoryview object without copying or add IO#write_memoryview
We can implement this by adding `Fiddle::MemoryView#to_s` with `rb_str_new_static()`.
Could you file this to https://github.com/ruby/fiddle/ ?
kou (Kouhei Sutou)
07:00 PM Feature #17844: Support list of methods to test with respond_to?
@byroot You're right of course, I'm so tuned in to keyword arguments. :-) Can be done in Ruby as `def respond_to?(*args)`, but you'd have to check the last args member for type. It might be more ore less ugly in C, I honestly know zilch ... svoop (Sven Schwyn)
12:23 PM Feature #17844: Support list of methods to test with respond_to?
I think `raise ArgumentError unless recipient.respond_to?(:email) && recipient.respond_to?(:name)` is good enough.
It's also likely to be significantly faster than `recipient.respond_to_all?(:email, :name)` since that has variable argume...
Eregon (Benoit Daloze)
12:17 PM Feature #17844: Support list of methods to test with respond_to?
@svoop, you seem to have missed that `include_all` is a positional parameter, not a named one. byroot (Jean Boussier)
08:18 AM Feature #17844: Support list of methods to test with respond_to?
@byroot You're right, breaking backward compatibility of the signature is out of the question. Not sure for C, but in plain Ruby, it's not a problem:
```ruby
def just_checkin(*methods, include_all: false)
puts methods.inspect, inc...
svoop (Sven Schwyn)
08:05 AM Feature #17844: Support list of methods to test with respond_to?
Currently the method signature is `respond_to?(symbol, include_all=false)`, so changing it to what you suggest might break backward compatibility. e.g.:
```ruby
>> Object.new.respond_to?(:puts, :bar)
=> true
```
Of course the ab...
byroot (Jean Boussier)
07:22 AM Feature #17844: Support list of methods to test with respond_to?
Fair point, but I don't think `respond_to_any?` is a real use case given `respond_to?` is mostly used to check whether an object implements the necessary interface: The information "it implements method1 OR method2" has little practical ... svoop (Sven Schwyn)
04:54 PM Revision 578e6416 (git): lldb: convert heap_page_obj_limit from a float to int
peterzhu2118 (Peter Zhu)
03:59 PM Bug #17854 (Assigned): Crash with certain "case" expressions on FreeBSD
Thank you for the detailed report.
I confirm the issue on Ubuntu by adding logging code before `UNREACHABLE_RETURN(-1)`.
```diff
diff --git a/compile.c b/compile.c
index 1cabb8cccd..826d9c6f4a 100644
--- a/compile.c
+++ b/compi...
mame (Yusuke Endoh)
12:30 PM Bug #17854 (Closed): Crash with certain "case" expressions on FreeBSD
## Affected version
* Ruby 2.6, 2.7, 3.0 compiled with **clang on FressBD**
No tested with other versions. Ruby compiled with GCC doesn't have this issue.
## Snippet to reproduce
```
ruby -e 'case 1; when 2r; 3; end'
```
## ...
meta@vmeta.jp (Koichiro Iwao)
03:37 PM Bug #17846: Percent mode changes the output from ERB beyond what is documented
k0kubun (Takashi Kokubun) wrote in #note-6:
> Maybe not. Now I did https://github.com/ruby/erb/commit/b58b188028fbb403f75d48d62717373fc0908f7a.
Thank you :)
graywolf (Gray Wolf)
06:14 AM Bug #17846: Percent mode changes the output from ERB beyond what is documented
Maybe not. Now I did https://github.com/ruby/erb/commit/b58b188028fbb403f75d48d62717373fc0908f7a. k0kubun (Takashi Kokubun)
03:20 PM Feature #17837: Add support for Regexp timeouts
I noticed there is a reply in [ruby-core:103730] by @normalperson that unfortunately doesn't seem to be mirrored on Redmine:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/103730
Eregon (Benoit Daloze)
01:30 PM Feature #17837: Add support for Regexp timeouts
duerst (Martin Dürst) wrote in #note-14:
> In a backtracking regular expression engine, backtracking occurs very often. There are many cases of backtracking that are still totally harmless.
Even if backtracking occurs very often, my thi...
Dan0042 (Daniel DeLorme)
03:13 PM Revision 550b02e4 (git): * 2021-05-07 [ci skip]
git[bot]
03:04 PM Revision 0bbab1e5 (git): Protoized old pre-ANSI K&R style declarations and definitions
nobu (Nobuyoshi Nakada)
02:53 PM Revision 99644514 (git): Conditionally used functions
nobu (Nobuyoshi Nakada)
01:18 PM Revision b0b7751f (git): lldb: teach rp about T_PAYLOAD
eightbitraptor (Matt V-H)
01:18 PM Revision d1bd4e23 (git): Store rb_classext_t next to RClass slots on the heap
eightbitraptor (Matt V-H)
01:18 PM Revision 8bbd3198 (git): Allow newobj_of0 and newobj_slowpath to allocate into multiple heap slots
eightbitraptor (Matt V-H)
01:04 PM Revision ddc29e29 (git): net-http no longer requires stringio
nobu (Nobuyoshi Nakada)
10:02 AM Revision f2d6fa16 (git): Use assert_ractor for separating test processes
hsbt (Hiroshi SHIBATA)
08:19 AM Feature #17853 (Closed): Add Thread#thread_id
# Abstract
New method `Thread#thread_id` to get associated native thread id (LWP.) It might return `nil` if OS doesn't support thread id or equivalent.
# Background
When I tried to investigate which Ruby thread of an application...
komamitsu (Mitsunori Komatsu)
07:51 AM Revision 120b835f (git): [ruby/timeout] Only run timeout_after hook on fiber scheduler if scheduler exists
https://github.com/ruby/timeout/commit/4893cde0ed jeremyevans (Jeremy Evans)
07:50 AM Revision 44e8575c (git): [ruby/timeout] Avoid unnecessary object allocation
Idea from nobu.
https://github.com/ruby/timeout/commit/aecdaa23b3
jeremyevans (Jeremy Evans)
07:49 AM Revision 33b5e179 (git): [ruby/timeout] Make Timeout::Error#exception with multiple arguments not ignore arguments
This makes:
raise(Timeout::Error.new("hello"), "world")
raise a TimeoutError instance with "world" as the message instead
of "hello", for consistency with other Ruby exception classes.
This required some internal changes to keep the...
jeremyevans (Jeremy Evans)
07:45 AM Bug #17756 (Closed): StringScanner#charpos makes segmentation fault when target.byteslice returns non string value
Applied in changeset commit:git|564ccd095a9d7fbe869031dbf666d61dadfdcb03.
----------
[ruby/strscan] Fix segmentation fault of `StringScanner#charpos` when `String#byteslice` returns non string value [Bug #17756] (#20)
https://github.co...
kachick (Kenichi Kamiya)
07:21 AM Revision a42b7de4 (git): [ruby/strscan] Replace "iff" with "if and only if" (#18)
iff means if and only if, but readers without that knowledge might
assume this to be a spelling mistake. To me, this seems like
exclusionary language that is unnecessary. Simply using "if and only if"
instead should suffice.
https://git...
gmcgibbon (Gannon McGibbon)
07:20 AM Revision 564ccd09 (git): [ruby/strscan] Fix segmentation fault of `StringScanner#charpos` when `String#byteslice` returns non string value [Bug #17756] (#20)
https://github.com/ruby/strscan/commit/92961cde2b kachick (Kenichi Kamiya)
07:18 AM Revision 822eb945 (git): Import from https://github.com/ruby/strscan/pull/19
* Use Gemfile instead of Gem::Specification#add_development_dependency.
* Use pend instead of skip for test-unit.
hsbt (Hiroshi SHIBATA)
06:58 AM Revision 364044e0 (git): [ruby/net-http] Do not require stringio
It is not used in net/http library code since commit 15ccd0118c13
(r36473 in ruby svn trunk, 2012).
require's in test suite are also cleaned up.
https://github.com/ruby/net-http/commit/996d18a43f
rhenium (Kazuki Yamaguchi)
06:24 AM Revision 965719f5 (git): Fixed the file path for net-imap.gemspec
hsbt (Hiroshi SHIBATA)
06:20 AM Revision 5de6f1ab (git): Move net-imap.gemspec to under the lib/net/imap directory.
hsbt (Hiroshi SHIBATA)
06:20 AM Revision 5a02281f (git): [ruby/net-imap] Many documentation improvements
* updated obsoleted RFCs to current versions
* linked most references to their RFCs
* linked extension commands to their RFCs
* removed unidiomatic `()` from instance method links
* escaped `IMAP` in a few places
* converted all response...
nevans (Nicholas Evans)
06:20 AM Revision b0de2e7f (git): [ruby/net-imap] Move send_*_data into net/imap/command_data
Partially implements #10.
https://github.com/ruby/net-imap/commit/64d1080d63
nevans (Nicholas Evans)
06:20 AM Revision deae61e9 (git): [ruby/net-imap] Move flags to net/imap/flags
Partially implements #10.
https://github.com/ruby/net-imap/commit/2a9afa83bf
nevans (Nicholas Evans)
06:20 AM Revision 337c0e31 (git): [ruby/net-imap] Move UTF7 & datetime formatting to net/imap/data_encoding
Partially implements #10.
https://github.com/ruby/net-imap/commit/0d43c5e856
nevans (Nicholas Evans)
06:20 AM Revision 4dc7b824 (git): [ruby/net-imap] move command data formatters to net/imap/command_data
Partially implements #10.
https://github.com/ruby/net-imap/commit/24e929fdd2
nevans (Nicholas Evans)
06:20 AM Revision affb5104 (git): [ruby/net-imap] move response data structs to net/imap/response_data
Partially implements #10.
https://github.com/ruby/net-imap/commit/746757b936
nevans (Nicholas Evans)
06:20 AM Revision 395a2877 (git): [ruby/net-imap] move ResponseParser to lib/net/imap/response_parser
Partially implements #10.
https://github.com/ruby/net-imap/commit/c2408aac9a
nevans (Nicholas Evans)
06:20 AM Revision 2fc91da8 (git): [ruby/net-imap] Clean up authenticators rdoc
Added RFC links to all SASL mechanism specifications.
https://github.com/ruby/net-imap/commit/53ff4b0c09
nevans (Nicholas Evans)
06:20 AM Revision 912f39b2 (git): [ruby/net-imap] Update AUTH=PLAIN to be a little closer to RFC4616
* Add authzid support
* must not contain NULL chars
* improve rdoc
https://github.com/ruby/net-imap/commit/a587fc71b7
nevans (Nicholas Evans)
06:20 AM Revision 33100581 (git): [ruby/net-imap] Move each authenticator to its own file
Also updates rdoc with SASL specifications and deprecations. Of these
four, only `PLAIN` isn't deprecated!
+@@authenticators+ was changed to a class instance var
+@authenticators+. No one should have been using the class variable
dire...
nevans (Nicholas Evans)
06:13 AM Revision a7f74798 (git): [ruby/erb] Document that `<% #` doesn't work
[Bug #17846]
https://github.com/ruby/erb/commit/b58b188028fbb403f75d48d62717373fc0908f7a
k0kubun (Takashi Kokubun)
03:10 AM Revision f941dd5a (git): Reuse sysconf result
nobu (Nobuyoshi Nakada)
02:39 AM Revision 0dd9ac77 (git): Revised PAGE_MAX_SIZE case
nobu (Nobuyoshi Nakada)
02:30 AM Revision a1fdc5f7 (git): Check only whether PAGE_SIZE is compile-time const
nobu (Nobuyoshi Nakada)
12:39 AM Revision 921d8ac9 (git): Get rid of including sys/user.h on macOS
LIST_HEAD in ccan/list conflicts with sys/queue.h.
```
./ccan/list/list.h:75:9: warning: 'LIST_HEAD' macro redefined [-Wmacro-redefined]
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/queue.h:465:9: note: ...
nobu (Nobuyoshi Nakada)
 

Also available in: Atom