Project

General

Profile

Activity

From 09/24/2020 to 09/30/2020

09/30/2020

11:55 PM Revision bc23216e (git): stop Ractor test in test-all
Ractor changes the interpreter's running mode so now it should
not use in test-all process which running with many other tests.
Test with a separating process is one idea, but I'm not sure
the ruby/ostruct can use this trick.
ko1 (Koichi Sasada)
11:23 PM Feature #16786: Light-weight scheduler for improved concurrency.
@matz has said that he is happy with the current implementation, which is great news. However, there is still some discussion around naming, mostly that @ko1 said that `Thread#scheduler` is not meaningful enough.
So, I wanted to give so...
ioquatix (Samuel Williams)
10:56 PM Bug #17202: Backport for Apple Silicon
... and backported d732bc51bdbfe7d66038731d42e01a511d13b5f8,633a1f15d8228236094ddee12e4e169d655ec49e,95f387f61a4a4ea92635da760b7de5b1e09bb84e,528a3a17977aa1843a26630c96635c3cb161e729,261569d4aac440f25de588cca365163ecf1124a2,e4a9e926f0fe0... nagachika (Tomoyuki Chikanaga)
10:25 AM Bug #17202: Backport for Apple Silicon
... and f96216df8dfd2d1e206150572912289f4dda7386, 0091fac1d8de07e86fef8315ba77609bed9dd7f5, 04c704c5c967ea9bded6bf645439fe59c7d9f7d6 too. nagachika (Tomoyuki Chikanaga)
10:24 AM Bug #17202: Backport for Apple Silicon
ruby_2_7 f46929833923d96e4dc706945fd537a1caaebe66 merged revision(s) f96216df8dfd2d1e206150572912289f4dda7386,0091fac1d8de07e86fef8315ba77609bed9dd7f5,04c704c5c967ea9bded6bf645439fe59c7d9f7d6,23655e6de5ee989feb8c65c7061fe9a71579dc54,7cb8... nagachika (Tomoyuki Chikanaga)
09:57 AM Bug #17202: Backport for Apple Silicon
I will try to backport the commits shown below.
https://github.com/ruby/ruby/commit/23655e6de5ee989feb8c65c7061fe9a71579dc54
https://github.com/ruby/ruby/commit/7cb8904a12c850ee30dcd67817fa2f9dc3fee813
https://github.com/ruby/ruby/c...
nagachika (Tomoyuki Chikanaga)
10:53 PM Revision 229c041f (git): merge revision(s) d732bc51bdbfe7d66038731d42e01a511d13b5f8,633a1f15d8228236094ddee12e4e169d655ec49e,95f387f61a4a4ea92635da760b7de5b1e09bb84e,528a3a17977aa1843a26630c96635c3cb161e729,261569d4aac440f25de588cca365163ecf1124a2,e4a9e926f0fe0acf2fbe61da6e075a95d34be066,318be1cb2f9c6f04403c063a5618c6267012ee51,e1855100e46040e73630b378974c17764e0cccee,9cfa811b0f209d714f89fe0de6778c71f77556c7,b68dab866724aacc1cbc6b7d5e1f555dec092346: [Backport #17202]
Revert "Revert "Revert "[ruby/fiddle] Use ffi_closure_free by
default. (#20)"""
This reverts commit 87f6154bb4c67ca77ee353bb1fe25a922036c0e5.
It turned out that the change fails to build on macOS
https...
nagachika (Tomoyuki Chikanaga)
10:11 PM Revision bb2ba72c (git): [ruby/ostruct] Tweak doc
Marc-Andre Lafortune
10:11 PM Revision 152ba86b (git): [ruby/ostruct] Remove unused condition
Marc-Andre Lafortune
10:11 PM Revision b36a45c0 (git): [ruby/ostruct] Improved YAML serialization.
Patch adapted from Pietro Monteiro [Fixes bug#8382] Marc-Andre Lafortune
10:11 PM Revision 0e93118c (git): [ruby/ostruct] Update NEWS
Marc-Andre Lafortune
10:11 PM Revision 09770401 (git): [ruby/ostruct] Add test that frozen OpenStructs are Ractor-shareable
Marc-Andre Lafortune
10:11 PM Revision 083fa6e5 (git): [ruby/ostruct] Protect subclass' methods and our bang methods.
Internally, use only bang methods Marc-Andre Lafortune
10:11 PM Revision df4d08c4 (git): [ruby/ostruct] Avoid calling initialize
Marc-Andre Lafortune
10:11 PM Revision fb16c3dc (git): Remove trailing whitespace [doc]
Marc-Andre Lafortune
07:58 PM Revision f4733b2c (git): * 2020-10-01 [ci skip]
git[bot]
07:58 PM Revision 4bc6190a (git): Enhanced RDoc for String#[] (#3607)
* Enhanced RDoc for String#[] burdettelamar (Burdette Lamar)
07:57 PM Misc #16483: How about stopping new *.tar.bz2 releases?
Not sure what to conclude from this article, but at least .xz should not be the only format: https://www.nongnu.org/lzip/xz_inadequate.html
Given the various issues, maybe it should not even be used for distribution?
Eregon (Benoit Daloze)
06:18 PM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
IMHO hardcoding such knowledge in the pattern feels wrong (vs in the matching method like `Regexp#match?` which is fine).
It seems to me that it could cause confusing bugs, e.g. when using `/f` in the `case` above if a `when` clause sta...
Eregon (Benoit Daloze)
04:22 PM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
znz (Kazuhiro NISHIYAMA) wrote in #note-1:
> What does `regexp_without_matchdata.match(string)` return when matched?
Thats what `when not explicitly needed by the method.` part was about: it returns `MatchData` in this case, as reque...
fatkodima (Dima Fatko)
03:58 PM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
What does `regexp_without_matchdata.match(string)` return when matched? znz (Kazuhiro NISHIYAMA)
03:42 PM Feature #17206 (Open): Introduce new Regexp option to avoid global MatchData allocations
Originates from https://bugs.ruby-lang.org/issues/17030
When this option is specified, ruby will not create global `MatchData` objects, when not explicitly needed by the method.
If the new option is named `f`, we can write as `/o/f...
fatkodima (Dima Fatko)
03:12 PM Feature #17143: Improve support for warning categories
I submitted the first pull request to add the `:deprecated` category to additional warnings, and to add warning categories for `:uninitialized_ivar` and `:redefine`: https://github.com/ruby/ruby/pull/3601
@matz Do you want to approve ...
jeremyevans0 (Jeremy Evans)
01:17 PM Bug #17205: Misleading error message when comparing NaN with numbers in array
The closest issue I could find is this: https://bugs.ruby-lang.org/issues/10424
There is quite a lot of inconsistency when dealing with arrays containing `NaN`, dependent on 1) if comparing against an integer or a float, 2) order of c...
timhwang21 (Tim Hwang)
01:14 PM Bug #17205 (Closed): Misleading error message when comparing NaN with numbers in array
The closest issue I could find is this: https://bugs.ruby-lang.org/issues/10424
There is quite a lot of inconsistency when dealing with arrays containing `NaN`, dependent on 1) if comparing against an integer or a float, 2) order of c...
timhwang21 (Tim Hwang)
01:15 PM Revision 7b2bea42 (git): Unfreeze string-literal-only interpolated string-literal
[Feature #17104] nobu (Nobuyoshi Nakada)
01:08 PM Feature #16986: Anonymous Struct literal
mame (Yusuke Endoh) wrote in #note-36:
> Because method-name symbols are never GC'ed, so converting arbitrary external input to anonymous Struct is vulnerable against Symbol DoS.
Could that be solved?
In TruffleRuby methods don't ho...
Eregon (Benoit Daloze)
01:47 AM Feature #16986: Anonymous Struct literal
mame (Yusuke Endoh) wrote in #note-51:
> As I said above, this is a bit dangerous API. Some users will write `Struct[**untrusted_user_input_hash]`, which is vulnerable against Symbol DoS.
Right, in the same way users can already do `Op...
marcandre (Marc-Andre Lafortune)
01:36 AM Feature #16986: Anonymous Struct literal
tenderlovemaking (Aaron Patterson) wrote in #note-50:
> marcandre (Marc-Andre Lafortune) wrote in #note-49:
> ...
As I said above, this is a bit dangerous API. Some users will write `Struct[**untrusted_user_input_hash]`, which is vuln...
mame (Yusuke Endoh)
11:43 AM Revision 65e8a293 (git): Update to ruby/spec@bfd843a
Eregon (Benoit Daloze)
11:43 AM Revision bbecf1eb (git): Update to ruby/mspec@e154fa1
Eregon (Benoit Daloze)
10:40 AM Revision 9501b34d (git): strip trailing spaces [ci skip]
nobu (Nobuyoshi Nakada)
10:39 AM Revision 8dab56ea (git): Update to ruby/spec@681e8cf
Eregon (Benoit Daloze)
10:39 AM Revision 31636bbd (git): Update to ruby/mspec@4120a62
Eregon (Benoit Daloze)
10:24 AM Revision f4692983 (git): merge revision(s) f96216df8dfd2d1e206150572912289f4dda7386,0091fac1d8de07e86fef8315ba77609bed9dd7f5,04c704c5c967ea9bded6bf645439fe59c7d9f7d6,23655e6de5ee989feb8c65c7061fe9a71579dc54,7cb8904a12c850ee30dcd67817fa2f9dc3fee813,41168f69fbeb32cfc88210911d62e419b8116589,87f6154bb4c67ca77ee353bb1fe25a922036c0e5: [Backport #17202]
Remove "All Rights Reserved." from Copyright statement.
Patch assembly so that it aligns properly
Removed trailing spaces [ci skip]
Fix build error on Apple silicon macOS
This patch will fix following ...
nagachika (Tomoyuki Chikanaga)
10:21 AM Revision 201d5016 (git): Update to ruby/spec@9277d27
Eregon (Benoit Daloze)
10:19 AM Feature #17177: Include the current file name and the line number in the output of `p`
What about extending `pp` to include the location when `$DEBUG` is true? nobu (Nobuyoshi Nakada)
08:55 AM Bug #17204 (Closed): Segmentation fault in 2.7.1p83
Got this in buildkite, re-built, it worked.
Thank you very much for your outstanding work!
```
-- Machine register context ------------------------------------------------
RIP: 0x00007f2b5105caa8 RBP: 0x0000561bd7600fa8 RS...
ecoologic (erik ecoologic)
07:21 AM Bug #17203: Logger::Formatter won't work with non main Ractor
Eregon (Benoit Daloze) wrote in #note-1:
> Since `$$` returns a (read-only) Integer, it seems harmless to let Ractors read it.
I agree. it should be read from any ractors.
ko1 (Koichi Sasada)
06:55 AM Revision ce986b41 (git): Remove unneeded `begin` and `end`
znz (Kazuhiro NISHIYAMA)
06:41 AM Revision 30bb040e (git): Fix `Leaked tempfile`s
http://rubyci.s3.amazonaws.com/debian10/ruby-master/log/20200930T033004Z.diff.html.gz
```
[n/n] JSONCommonInterfaceTest#test_load = <elapsed> s
[n/n] JSONCommonInterfaceTest#test_load_file = <elapsed> s
+Leaked tempfile: JSONCommonInte...
znz (Kazuhiro NISHIYAMA)
04:37 AM Revision 1484b786 (git): Suppress warnings
```
compiling ../mjit.c
In file included from ../mjit.c:28:
../mjit_worker.c:1270:33: warning: incompatible pointer to integer conversion passing 'const struct rb_callcache *' to parameter of type 'VALUE' (aka 'unsigned long') [-Wint-con...
znz (Kazuhiro NISHIYAMA)
03:34 AM Revision 388281c5 (git): Fix order of operations during `rb_ec_finalize`.
Samuel Williams
02:24 AM Bug #17169: Bad value for range using infinity for Time
Probably, since ruby 2.7, you can use begin-less/end-less ranges instead.
nobu (Nobuyoshi Nakada)
12:15 AM Revision 48b94b79 (git): Enhanced RDoc for String#upto (#3603)
* Enhanced RDoc for String#upto burdettelamar (Burdette Lamar)

09/29/2020

10:50 PM Revision ea347990 (git): merge revision(s) 07786edd66f59a529d6febb2e0fe901782991755,1917afa34bca55ba1ea578234132b7e4479ea3c9,0c611d7f4fce67c64bee4815f263c55ef15561c4:
test/net/http/test_https.rb: Stop the error due to openssl 1.1.1h
On some environments that uses OpenSSL 1.1.1h, the two tests now fail.
http://rubyci.s3.amazonaws.com/android29-x86_64/ruby-master/log/20200924T062352Z.f...
nagachika (Tomoyuki Chikanaga)
08:27 PM Feature #16986: Anonymous Struct literal
marcandre (Marc-Andre Lafortune) wrote in #note-49:
> We could settle for `Struct.[]`:
> ...
I think that's pretty reasonable. `Struct.new.new` is not something I would do in a hot path. But maybe that's why we don't see more of it in...
tenderlovemaking (Aaron Patterson)
05:15 PM Feature #16986: Anonymous Struct literal
tenderlovemaking (Aaron Patterson) wrote in #note-48:
> I frequently use `Struct.new().new()` in test cases where I need fakes.
> ...
Thanks for your reply and looking into the Rails codebase.
I actually think these examples might actua...
marcandre (Marc-Andre Lafortune)
04:15 PM Feature #16986: Anonymous Struct literal
marcandre (Marc-Andre Lafortune) wrote in #note-47:
> esquinas (Enrique Esquinas) wrote in #note-46:
> ...
I frequently use `Struct.new().new()` in test cases where I need fakes. Here is some real code that I think `%struct{...}` woul...
tenderlovemaking (Aaron Patterson)
03:56 PM Feature #16986: Anonymous Struct literal
esquinas (Enrique Esquinas) wrote in #note-46:
> Here `calculationOn3D` expects the `point` variable to implement the 3D interface and be accessed like `point.x`,`point.y`,`point.z` so it just works.
> ...
I don't find this example con...
marcandre (Marc-Andre Lafortune)
02:35 PM Feature #16986: Anonymous Struct literal
duerst (Martin Dürst) wrote in #note-43:
> One more point: I haven't seen much examples of similar features in other languages. The only suggestion I saw was that of a similarity to Python tuples. But tuples are much closer to Arrays th...
esquinas (Enrique Esquinas)
07:59 PM Bug #17186: Integer overflow in "chr" error message (out of char range)
Looks great, thanks! semaperepelitsa (Simon Perepelitsa)
06:50 PM Revision 0fb1a67b (git): Reference process PID using the Process#pid
This change will allow formatter to run from Ractors other than main. maciej.mensfeld (Maciej Mensfeld)
05:27 PM Bug #17203: Logger::Formatter won't work with non main Ractor
I tried to make an example why sharing a mutable object is problematic, but I think I just got more confused :D
```
ruby -e '$stdout.instance_variable_set(:@private, Object.new); p $stdout.object_id; p $stdout.instance_variables; Rac...
Eregon (Benoit Daloze)
05:10 PM Bug #17203: Logger::Formatter won't work with non main Ractor
Since `$$` returns a (read-only) Integer, it seems harmless to let Ractors read it.
Although I think `Process.pid` is nicer than `$$` :)
`$stdout` OTOH should not be possible to access from non-main Ractor, no matter the access pat...
Eregon (Benoit Daloze)
03:17 PM Bug #17203 (Closed): Logger::Formatter won't work with non main Ractor
``` ruby
class Rogger < Ractor
def self.new
super do
# STDOUT cannot be referenced but $stdout can
logger = ::Logger.new($stdout)

# Run the requested operations on our logger instance
while data = ...
maciej.mensfeld (Maciej Mensfeld)
05:08 PM Feature #17171: Why is the visibility of constants not affected by `private`?
I am not quite as active on the bug-tracker as I used to be in the past, but I will comment on this particular issue since the reasoning given makes sense to me.
I will not comment on the backwards-incompatibility issue much at all, but...
shevegen (Robert A. Heiler)
03:32 PM Revision c38605de (git): * 2020-09-30 [ci skip]
git[bot]
03:31 PM Revision f7bd9f07 (git): Fix unsigned int overflow in error message for chr
The error message has an integer overflow because it treats an unsigned int as a signed int.
Before:
```
> 3_000_000_000.chr
-1294967296 out of char range (RangeError)
```
After:
```
> ...
3000000000 out of char range (RangeError)
```
...
peterzhu2118 (Peter Zhu)
03:30 PM Feature #13153: Inconsistent sprintf formatting for 0 value
This behavior comes from ANSI-C, and same as printf(1).
I don't think this is a bug.
nobu (Nobuyoshi Nakada)
02:04 PM Bug #15993: 'require' doesn't work if there are Cyrillic chars in the path to Ruby dir
I think I have a similar problem originally reported at GitHub already:
https://github.com/rubygems/rubygems/issues/3853
I have a Ruby-based shell application which needs to require a library during startup. I'm using the followin...
tschoening (Thorsten Schöning)
01:49 PM Revision cece71b4 (git): Add call-seq of [Feature #16274]
znz (Kazuhiro NISHIYAMA)
01:46 PM Revision 828c34e5 (git): merge revision(s) d23d2f3f6fbb5d787b0dd80675c489a692be23e2:
[ruby/webrick] Make it more strict to interpret some headers
Some regexps were too tolerant.
https://github.com/ruby/webrick/commit/8946bb38b4
nagachika (Tomoyuki Chikanaga)
01:43 PM Feature #17000 (Closed): 2.7.2 turns off deprecation warnings by default
Applied in changeset commit:git|df3f52a6331f1a47af9933b77311a8650727d8d1.
----------
merge revision(s) 996af2ce086249e904b2ce95ab2fcd1de7d757be: [Backport #16345] [Backport #17000]
Disable deprecation warning by the default [Fe...
nagachika (Tomoyuki Chikanaga)
01:43 PM Revision df3f52a6 (git): merge revision(s) 996af2ce086249e904b2ce95ab2fcd1de7d757be: [Backport #16345] [Backport #17000]
Disable deprecation warning by the default [Feature #16345]
And `-w` option turns it on.
nagachika (Tomoyuki Chikanaga)
12:57 PM Bug #17175: Ruby 2.5: OpenSSL related test failures
> And I am still seeing DRbSSL related errors after applying the patches. Do you know any idea to fix it?
I found the patch to fix the DRbSSL issue on ruby_2_6 branch.
lib/drb/ssl.rb
https://github.com/ruby/ruby/commit/fb0009cfdc2...
jaruga (Jun Aruga)
11:44 AM Bug #17175: Ruby 2.5: OpenSSL related test failures
Comparing ruby_2_5 branch not passing the tests with ruby_2_6 branch passing the tests, I found the differences, and if the following commits in ruby_2_6 are backported, the tests passes.
test/openssl/test_ssl.rb
https://github.com/r...
jaruga (Jun Aruga)
12:36 PM Bug #17202: Backport for Apple Silicon
I also confirmed to build the following patch and https://github.com/ruby/ruby/commit/87f6154bb4c67ca77ee353bb1fe25a922036c0e5 on ruby_2_6 branch.
```
diff --git a/configure.ac b/configure.ac
index 2c4d2888d2..e9bf833668 100644
---...
hsbt (Hiroshi SHIBATA)
12:23 PM Bug #17202 (Closed): Backport for Apple Silicon
I confirmed to build with the following patch on ruby_2_7 branch for macOS Big Sur and ARM mac mini.
https://github.com/ruby/ruby/commit/23655e6de5ee989feb8c65c7061fe9a71579dc54
https://github.com/ruby/ruby/commit/87f6154bb4c67ca77ee...
hsbt (Hiroshi SHIBATA)
11:34 AM Bug #17181: Hash with default block breaks after transforming values
ruby_2_7 665589cbdf7bf652067113dd1c0bc49012b990e0 merged revision(s) df14c758fc705c49c2aaf4c9276a8f7229438fbf. nagachika (Tomoyuki Chikanaga)
11:33 AM Revision 665589cb (git): merge revision(s) df14c758fc705c49c2aaf4c9276a8f7229438fbf: [Backport #17181]
Make hash returned by Hash#transform_values not have a default
This sets an explicit default of nil. There is probably a better
approach of removing the default.
Fixes [Bug #17181]
nagachika (Tomoyuki Chikanaga)
09:18 AM Feature #16937 (Assigned): Add DNS over HTTP to Resolv
@akr How about this patch? hsbt (Hiroshi SHIBATA)
09:08 AM Bug #17201 (Closed): Backport webrick patch for CVE-2020-25613
I created the patch sets for Ruby 2.5, 2.6 and 2.7 for CVE-2020-25613 hsbt (Hiroshi SHIBATA)
07:40 AM Revision d23d2f3f (git): [ruby/webrick] Make it more strict to interpret some headers
Some regexps were too tolerant.
https://github.com/ruby/webrick/commit/8946bb38b4
mame (Yusuke Endoh)
06:28 AM Revision dcb705ac (git): doc/syntax/literals.rdoc: explain `#@@foo` too [ci skip]
nobu (Nobuyoshi Nakada)
05:39 AM Revision 2e947bc1 (git): doc/syntax/literals.rdoc: explain `#@foo` and `#$foo`
mame (Yusuke Endoh)
04:47 AM Bug #17191 (Closed): 3.0.0-preview1 fails to install using BSD make
Applied in changeset commit:git|a9ff39087092b21059fca046ace9ca87770692a4.
----------
Fixed installation failure [Bug #17191]
Try update and extract bundled gems only when baseruby is
available. It should be done only when installing f...
nobu (Nobuyoshi Nakada)
04:41 AM Revision a9ff3908 (git): Fixed installation failure [Bug #17191]
Try update and extract bundled gems only when baseruby is
available. It should be done only when installing from
developemental build and not from the tarball, but it is not
obvious to differentiate them.
nobu (Nobuyoshi Nakada)
04:14 AM Revision b971f141 (git): Fix up dependencies on internal/sanitizers.h
nobu (Nobuyoshi Nakada)
02:58 AM Revision 40a499db (git): test/racc/test_racc_command.rb: prevent a warning
http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200929T003003Z.log.html.gz
```
warning: ambiguous first argument; put parentheses or a space even after `/' operator
```
mame (Yusuke Endoh)
12:57 AM Revision 06099e4e (git): fix typo [ci skip]
Reported by Mau Magnaguagno See: https://github.com/ruby/ruby/pull/3570#discussion_r495465903 shyouhei (Shyouhei Urabe)

09/28/2020

11:45 PM Revision 0a3099ae (git): bit table information when printing an object
tenderlovemaking (Aaron Patterson)
11:24 PM Misc #17200 (Closed): DevelopersMeeting20201026Japan
# The next dev meeting
**Date: 2020/10/26 13:00-17:00**
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20201026Japan.md
- Dev meeting *IS NOT* a decision-making place. All decisions ...
mame (Yusuke Endoh)
11:24 PM Misc #17138 (Closed): DevelopersMeeting20200925Japan
mame (Yusuke Endoh)
09:59 PM Bug #17186: Integer overflow in "chr" error message (out of char range)
Hey Semyon. Thanks for reporting the bug. I PR'd a patch that should fix the issue: https://github.com/ruby/ruby/pull/3602. Let me know how it looks! peterzhu2118 (Peter Zhu)
08:57 PM Feature #16986: Anonymous Struct literal
chrisseaton (Chris Seaton) wrote in #note-44:
> This will be very useful for pattern matching - I don't think you can usefully destructure a struct at the moment can you?
You can, like a hash...
```ruby
X = Struct.new(:foo, :bar, keywo...
marcandre (Marc-Andre Lafortune)
07:37 PM Feature #16986: Anonymous Struct literal
This will be very useful for pattern matching - I don't think you can usefully destructure a struct at the moment can you? This leads me to do all my pattern matching code using Hash and Array which isn't ideal. chrisseaton (Chris Seaton)
05:18 PM Revision 85e9cc2c (git): Unpoison THEAP header before reading
Another ASAN fix. THEAP header is poisoned, so we need to un-poison
before reading
tenderlovemaking (Aaron Patterson)
04:58 PM Revision 0555bd84 (git): Enhanced RDoc for String#succ! (#3596)
* Enhanced RDoc for String#succ! burdettelamar (Burdette Lamar)
04:45 PM Revision d598654c (git): Fix ASAN and don't check SPECIAL_CONST_P
Heap allocated objects are never special constants. Since we're walking
the heap, we know none of these objects can be special. Also, adding
the object to the freelist will poison the object, so we can't check
that the type is T_NONE a...
tenderlovemaking (Aaron Patterson)
04:45 PM Revision 664eeda6 (git): Fix ASAN errors when updating call cache
Invalidating call cache walks the heap, so we need to take care to
un-poison objects when examining them
tenderlovemaking (Aaron Patterson)
04:45 PM Revision 0767d387 (git): Pass ASAN options to child environments
I want to work with ASAN, but some child environments are not inheriting
the ASAN options I'm using. This commit passes them to child
environments if specified
tenderlovemaking (Aaron Patterson)
03:53 PM Bug #17191: 3.0.0-preview1 fails to install using BSD make
nobu (Nobuyoshi Nakada) wrote in #note-1:
> That is just a workaround; `update-gems` should be skipped when building from tarballs, even if gem files are not downloaded.
> ...
I tested this and it works. Thank you! Can you please com...
jeremyevans0 (Jeremy Evans)
07:10 AM Bug #17191: 3.0.0-preview1 fails to install using BSD make
jeremyevans0 (Jeremy Evans) wrote:
> There's obviously no need to update gems when installing 3.0.0-preview1 from the tarball as the gems are already included in the tarball.
This is the point.
> ...
That is just a workaround; `update-...
nobu (Nobuyoshi Nakada)
03:38 PM Revision 346301e2 (git): Add rb_category_warn{,ing} for warning messages with categories
This adds the following C-API functions that can be used to emit
warnings with categories included:
```c
void rb_category_warn(const char *, const char*, ...)
void rb_category_warning(const char*, const char*, ...)
```
Internally in er...
jeremyevans (Jeremy Evans)
03:38 PM Revision 92c3ad9c (git): Make Warning.warn accept only category keyword
In general accepting arbitrary keywords is a bad idea unless you are
delegating keywords or acting on arbitrary keywords. In this case,
the category keyword is ignored, and it's less error prone to not
ignore all keywords.
jeremyevans (Jeremy Evans)
03:34 PM Bug #15661 (Closed): Disallow concurrent Dir.chdir with block
Applied in changeset commit:git|5d7953f86b7ae164017e2292dfb3c108e0e02527.
----------
Switch conflicting chdir warning to RuntimeError
The documentation already stated this was an error in one case
(when it was previously a warning). D...
jeremyevans (Jeremy Evans)
09:39 AM Bug #15661: Disallow concurrent Dir.chdir with block
It's always been like that, there is no portable and fully reliable way to make cwd thread-local.
(using *at() functions are not enough, C extensions don't use them).
I guess Dir.chdir is even more problematic with Ractor where one m...
Eregon (Benoit Daloze)
12:07 AM Bug #15661: Disallow concurrent Dir.chdir with block
I guess my bigger point here is that even with this fix the block form remains unsafe under concurrent use. At best this catches a few multithreading bugs. The construct is incompatible with multithreaded programming cause state leaks.
...
sam.saffron (Sam Saffron)
03:34 PM Revision 5d7953f8 (git): Switch conflicting chdir warning to RuntimeError
The documentation already stated this was an error in one case
(when it was previously a warning). Describe the other case,
where chdir without block is called inside block passed to chdir.
Fixes [Bug #15661]
jeremyevans (Jeremy Evans)
03:20 PM Revision 0164ac70 (git): * 2020-09-29 [ci skip]
git[bot]
03:20 PM Revision 0b0e2d88 (git): Refactor common heap iteration code
We have code common to all heap iteration paths in this file. Refactor
such that we keep ASAN checks and flags checks in one place
tenderlovemaking (Aaron Patterson)
03:20 PM Revision b9488acc (git): Fix ASAN support when invalidating CCs
Again, this code is walking the heap. Empty slots can be poisoned, so
we need to unpoison before checking the type
tenderlovemaking (Aaron Patterson)
03:20 PM Revision b328b830 (git): make ext/coverage ASAN friendly
tenderlovemaking (Aaron Patterson)
03:20 PM Revision 18b3f0f5 (git): Make ext/objspace ASAN friendly
ext/objspace iterates over the heap, but some slots in the heap are
poisoned, so we need to take care of that when running with ASAN
tenderlovemaking (Aaron Patterson)
02:45 PM Bug #17198: DateTime.parse with CAT timezone converts to -10:00 instead of +02:00
You filed a pull request to change this in the date library: https://github.com/ruby/date/pull/25. In general, for default gems, you should only file the issues/pull requests in their GitHub repository, you don't need to also create a R... jeremyevans0 (Jeremy Evans)
10:37 AM Bug #17198 (Closed): DateTime.parse with CAT timezone converts to -10:00 instead of +02:00
DateTime.parse with CAT timezone is incorrect
``` ruby
require 'date'
DateTime.parse("10:00AM CAT").zone
```
Expected: **+02:00**
Actual: **-10:00**
Reference: https://www.timeanddate.com/time/zones/cat
geophilus (Geophilus Durairaj)
02:07 PM Revision ac414139 (git): Remove unnecessary executable bit [ci skip]
znz (Kazuhiro NISHIYAMA)
11:40 AM Misc #17199 (Open): id outputed by inspect and to_s output does not allow to find actual object_id and vice-versa
Hello, here is my first ruby issue sorry in advance if it is incorrectly filled.
# Issue
The value returned by `#object_id` is not aligned anymore with displayed info in `#inspect` and `#to_s` methods.
## with ruby < 2.7
``` ...
Annih (Baptiste Courtois)
09:53 AM Revision 4de32b35 (git): Removed unused option on racc
hsbt (Hiroshi SHIBATA)
09:53 AM Revision 87726143 (git): Fixed the wrong variable for --executable flag
hsbt (Hiroshi SHIBATA)
09:29 AM Revision f2c6a351 (git): Clarify spec description for Hash#{each,each_pair}
Eregon (Benoit Daloze)
09:28 AM Bug #17197: Some Hash methods still have arity 2 instead of 1
`#map` is defined on Enumerable.
So this seems an unintended interaction between
Hash#each using `rb_block_pair_yield_optimizable()`:
https://github.com/ruby/ruby/blob/245ed57ddc93901e90388cf479968392299d1067/hash.c#L3158-L3159
and...
Eregon (Benoit Daloze)
09:13 AM Bug #17197: Some Hash methods still have arity 2 instead of 1
marcandre (Marc-Andre Lafortune) wrote in #note-1:
> Also, as noted by @boblail, `Hash#map` accepts both arity 1 and 2; shouldn't it accept only arity 1?
Agreed, especially since Hash#each changed to always yield a single argument.
...
Eregon (Benoit Daloze)
02:30 AM Bug #17197: Some Hash methods still have arity 2 instead of 1
Also, as noted by @boblail, `Hash#map` accepts both arity 1 and 2; shouldn't it accept only arity 1? marcandre (Marc-Andre Lafortune)
02:13 AM Bug #17197 (Rejected): Some Hash methods still have arity 2 instead of 1
`Hash#each` was changed recently to have arity of 1.
All other methods of `Hash` should behave the same.
Much has been fixed since #14015, but some remains:
```ruby
# Some methods consistently have arity 2:
{a: 1}.select( &->(_kvp...
marcandre (Marc-Andre Lafortune)
09:08 AM Revision 245ed57d (git): [ruby/racc] Turn debugging off
https://github.com/ruby/racc/commit/872f75cfa7 Marc-Andre Lafortune
09:07 AM Revision 97d1a381 (git): [Fixes #137] Improve reporting
Marc-Andre Lafortune
08:55 AM Revision 3da3c274 (git): fixup d6a94a0c4b416d4e4a5b25ab8d5482bad00f9765
hsbt (Hiroshi SHIBATA)
08:39 AM Revision d6a94a0c (git): Removed useless RCS revisions
hsbt (Hiroshi SHIBATA)
05:54 AM Revision 8863bfb1 (git): [rubygems/rubygems] Move comment below shebang in bin/console template
In an executable script, the shebang line should be the first line (the
file needs to start with the bytes 0x23 0x21). Putting a comment above
it will break the script.
(Regression test included per @deivid-rodriguez)
https://github.c...
Steven Peckins
05:54 AM Revision 18c642da (git): [rubygems/rubygems] Fix ls-files matching regexp
As splitting by NUL means to allow the file names to contain
newlines, path names should match at beginning-of-string instead
of beginning-of-line.
https://github.com/rubygems/rubygems/commit/8a81183236
nobu (Nobuyoshi Nakada)
05:54 AM Revision ac3f80a5 (git): [rubygems/rubygems] Add writable check for cache dir
Sometimes "install_dir/cache" directory is not writable although "install_dir" is writable.
https://github.com/rubygems/rubygems/commit/665221cb69
xndcn
05:54 AM Revision c55b5f10 (git): [rubygems/rubygems] Avoid duplicated generation of APISpecification objects
As far as I could see, `Gem::Resolver::APISpecification` objects are
supposed to be immutable. If my guessing is correct, then we can cache
and reuse its instances for performance.
At least, `rake` passes on my machine.
Before this cha...
mame (Yusuke Endoh)
05:54 AM Revision 91865230 (git): [rubygems/rubygems] Eval defaults with frozen_string_literal: true
https://github.com/rubygems/rubygems/commit/d498ae3d62 byroot (Jean Boussier)
05:54 AM Revision 9bbca93a (git): [rubygems/rubygems] Remove last remaining line of output from `gem update --system --silent`
https://github.com/rubygems/rubygems/commit/038203aaf8 Ellen Marie Dash
05:54 AM Revision e8274a76 (git): [rubygems/rubygems] Add test for "gem update --system --silent"
https://github.com/rubygems/rubygems/commit/c3fb0db930 Ellen Marie Dash
05:54 AM Revision 7fc8f83e (git): [rubygems/rubygems] Have "gem update --system" pass through the --silent flag.
https://github.com/rubygems/rubygems/commit/5a1e56e892 Ellen Marie Dash
05:54 AM Revision ab5e9516 (git): [rubygems/rubygems] Added Ruby version for oldest supported version of rubygems
https://github.com/rubygems/rubygems/commit/dd87d70f51 hsbt (Hiroshi SHIBATA)
05:54 AM Revision c6bdf750 (git): Disallow downgrades to too old versions
Consider the version original included with each ruby as the minimum
supported version.
deivid (David Rodríguez)
05:54 AM Revision 828cefd6 (git): [rubygems/rubygems] Add --dryrun to the deprecated options when showing the help message
https://github.com/rubygems/rubygems/commit/38230a77c1 bronzdoc
05:54 AM Revision 777840a1 (git): [rubygems/rubygems] We don't need shortucts for a deprecated flag
https://github.com/rubygems/rubygems/commit/087a1f9720 bronzdoc
05:54 AM Revision be980dd9 (git): [rubygems/rubygems] Deprecate --dryrun
https://github.com/rubygems/rubygems/commit/1715610648 bronzdoc
05:54 AM Revision b83787b1 (git): [rubygems/rubygems] Make --dry-run flag consistent across rubygems commands
https://github.com/rubygems/rubygems/commit/addc644cad bronzdoc
05:54 AM Revision 0629e695 (git): Added `--platform` option to `build` command
nobu (Nobuyoshi Nakada)
04:42 AM Revision 67ae1d44 (git): Do not use clang on cygwin
Its `__has_declspec_attribute()` is not reliable. For instance,
while `__has_declspec_attribute(noalias)` is true but 'noalias'
attribute is warned as unknown.
nobu (Nobuyoshi Nakada)
03:51 AM Revision 36d1bb72 (git): sprintf.c: Removed conflicting definition
nobu (Nobuyoshi Nakada)
03:51 AM Revision ee7c260b (git): thread_win32.c: native_mutex_trylock is not used right now
nobu (Nobuyoshi Nakada)
02:28 AM Bug #14015 (Closed): Enumerable & Hash yielding arity
Now that `Hash#each` has arity 1, I'll close this and open an update in #17197 marcandre (Marc-Andre Lafortune)
02:11 AM Feature #15815: Add option to raise NoMethodError for OpenStruct
Cool.
It's much better API to integrate with `JSON.parse`.
mtsmfm (Fumiaki Matsushima)
12:17 AM Bug #17190: Not working multiple assignment by rightward assignment statement
You need parens.
```ruby
[42, 42] => a, b
```
shyouhei (Shyouhei Urabe)

09/27/2020

07:33 PM Revision 1c954366 (git): * 2020-09-28 [ci skip]
git[bot]
07:32 PM Revision 41eba959 (git): Revert the first diff of "Use Tempfile.create instead of Tempfile.open in test_io.rb"
* This partially reverts commit dead7478748a828c45e16134fca812bc7771344e.
* Windows will not allow a file to be unlinked if any file handles exist,
see https://github.com/ruby/ruby/pull/3597
Eregon (Benoit Daloze)
10:15 AM Feature #16786: Light-weight scheduler for improved concurrency.
That sounds very similar to `Thread#name=`.
I think it would be worth having its own feature request if you'd like it in core.
Eregon (Benoit Daloze)
10:12 AM Feature #13767: add something like python's buffer protocol to share memory between different narray like classes
@mrkn Is the native memory layout introduced in Ruby compatible with Python?
If it is/was it might be useful to e.g. be able to access a NumPy array from Ruby without copying (e.g. in PyCall.rb)
Eregon (Benoit Daloze)
10:05 AM Feature #17195: Freeze Enumerator::ArithmeticSequence objects
I just realized, this is problematic because `Enumerator::ArithmeticSequence` is a subclass of `Enumerator` and not of `Range`.
If it was a subclass of Range then I think it would be fine to freeze it.
But since it subclasses Enumerator...
Eregon (Benoit Daloze)
10:01 AM Bug #15661: Disallow concurrent Dir.chdir with block
Maybe concurrent Dir.chdir(&block) could take a global lock.
It might create unexpected contention though.
So I think the exception is better if it's not too incompatible.
Eregon (Benoit Daloze)
07:52 AM Feature #15831: Add `Array#extract`, `Hash#extract`, and `ENV.extract`
I'm not exactly at ease with the fact that the proposed methods both change the receiver and return a result. But if the names have an '!' at the end, it might be okay. duerst (Martin Dürst)
05:26 AM Revision 9a951c09 (git): Remove outdated comment [ci skip]
znz (Kazuhiro NISHIYAMA)
12:49 AM Revision 5e91b4bd (git): fix typo [ci skip]
ko1 (Koichi Sasada)

09/26/2020

09:35 PM Bug #15661: Disallow concurrent Dir.chdir with block
merch-redmine@jeremyevans.net wrote:
> Removing the block form breaks useful cases in single threaded
> code.

Agreed.

> Fixing it "properly" (by which I assume you mean
> separate pwd per thread) is impossible, as pwd is per-pr...
normalperson (Eric Wong)
09:20 PM Bug #15661: Disallow concurrent Dir.chdir with block
sam.saffron (Sam Saffron) wrote in #note-6:
> I am not sure about this, we are already misleading people a lot with the block form. I wonder if the correct long term solution here is either to remove this misleading construct or do a br...
jeremyevans0 (Jeremy Evans)
11:27 AM Bug #15661: Disallow concurrent Dir.chdir with block
I am not sure about this, we are already misleading people a lot with the block form. I wonder if the correct long term solution here is either to remove this misleading construct or do a breaking change and fix it properly.
```
T...
sam.saffron (Sam Saffron)
09:18 PM Bug #17196 (Closed): Segmentation Fault with Socket#close in Ractors
While messing around with 3.0.0-preview1, I thought it would be fun to write a really, really simple webserver that used Ractor creation instead of forking or spawning threads. I was right, it was fun! Unfortunately it also caused a segf... asuper (Anthony Super)
09:07 PM Feature #17184: No stdlib function to perform simple string replacement
> There is already String#replace
Oh wow, I somehow missed that...
byroot (Jean Boussier)
06:23 PM Feature #17184: No stdlib function to perform simple string replacement
There is already String#replace (consistent with {Array,Hash,Set,...}#replace), so I don't think it's a good fit:
https://docs.ruby-lang.org/en/master/String.html#method-i-replace
Eregon (Benoit Daloze)
06:18 PM Feature #17184: No stdlib function to perform simple string replacement
> But then we need to clarify if that replaces the first or all occurrences
As far as I know, String `replace` commonly means replace all occurrences.
- Python: replaces all occurrences, but has a `maxreplace` optional parameters. ...
byroot (Jean Boussier)
01:40 PM Feature #17184: No stdlib function to perform simple string replacement
Dan0042 (Daniel DeLorme) wrote in #note-12:
> Instead you get just `f`, and after a lot of searching and debugging you end up with `"foo".gsub("o", '\\\\+')` which produces the correct result. If we were to change the behavior.
Are t...
Eregon (Benoit Daloze)
06:44 PM Feature #17195: Freeze Enumerator::ArithmeticSequence objects
Seems clear to me marcandre (Marc-Andre Lafortune)
01:20 PM Feature #17195 (Rejected): Freeze Enumerator::ArithmeticSequence objects
Now, all Ranges are frozen (#15504).
Enumerator::ArithmeticSequence is very similar to Range, just with an extra `step`.
They're essentially already immutable, except that one could use set instance variables, but it seems of little ...
Eregon (Benoit Daloze)
05:38 PM Revision 950614b0 (git): ext/socket/ipsocket.c: prevent "warning: unused variable 'resolv_timeout'"
mame (Yusuke Endoh)
04:16 PM Revision 70d7e4c3 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
04:13 PM Revision 48b53190 (git): Add links to the tickets [ci skip]
znz (Kazuhiro NISHIYAMA)
04:02 PM Revision 089b7698 (git): * 2020-09-27 [ci skip]
git[bot]
04:02 PM Revision cdb5258b (git): Fix `ENV.except`'s docs
bogdanvlviv (Bogdan Denkovych)
01:21 PM Feature #15504: Freeze all Range objects
ko1 (Koichi Sasada) wrote in #note-11:
> Eregon (Benoit Daloze) wrote in #note-10:
> ...
I filed #17195
Eregon (Benoit Daloze)
11:18 AM Feature #15831: Add `Array#extract`, `Hash#extract`, and `ENV.extract`
I'm wondering to know whether use-cases, mentioned in https://bugs.ruby-lang.org/issues/15831#note-9, are good enough to reconsider the decision to add these methods to Ruby? bogdanvlviv (Bogdan Denkovych)
10:36 AM Revision dead7478 (git): Use Tempfile.create instead of Tempfile.open in test_io.rb
Eregon (Benoit Daloze)
10:30 AM Bug #16695: Stack consistency error when using the return value
I rewrited the patch https://github.com/ruby/ruby/pull/3445 on 2020-08-22.
I would appreciate it if someone could review this.
wanabe (_ wanabe)
09:59 AM Bug #17194: Unable to build ruby 3.0-preview1 on centos 6
Just FYI: Ruby 3 will not support CentOS 6 because the EOL date of the distribution is Nov 30 2020 and Ruby 3 will be released after that. We've already removed CentOS 6 from [our CI](https://rubyci.org/). mame (Yusuke Endoh)
09:25 AM Bug #17194 (Closed): Unable to build ruby 3.0-preview1 on centos 6
Applied in changeset commit:git|ce92d15596aab337b5e8b806603eb07ad6528ff2.
----------
fix typo [Bug #17194]
naruse (Yui NARUSE)
08:51 AM Bug #17194 (Closed): Unable to build ruby 3.0-preview1 on centos 6
Tried to build ruby using rvm:
```
[root@e6655f0fcbcd /]# rvm install ruby-3
Searching for binary rubies, this might take some time.
No binary rubies available for: centos/6/x86_64/ruby-3.0.0-preview1.
Continuing with compilation. P...
hurricup (Alexandr Evstigneev)
09:55 AM Revision 4e31cbc0 (git): update-deps
https://github.com/ruby/ruby/runs/1169621878 naruse (Yui NARUSE)
09:24 AM Revision ce92d155 (git): fix typo [Bug #17194]
naruse (Yui NARUSE)
07:40 AM Bug #17193: Endless method definition doesn't work with lambdas in IRB
wanabe (_ wanabe) wrote in #note-1:
> I think this is an irb problem, not a ruby problem.
> ...
I can confirm that this works indeed.
```
$ ruby -e 'def bar() = ->(x) { x * x }; puts bar.(3)'
9
```
kodnin (David Boot)
07:30 AM Bug #17193: Endless method definition doesn't work with lambdas in IRB
I think this is an irb problem, not a ruby problem.
```
$ ruby -ve 'def bar() = lambda { |x| x * x };p bar'
ruby 3.0.0dev (2020-09-25T22:52:04Z master 137fa5b27e) [x86_64-linux]
#<Proc:0x00005582978039e0 -e:1 (lambda)>
```
wanabe (_ wanabe)
07:22 AM Bug #17193 (Closed): Endless method definition doesn't work with lambdas in IRB
Endless method definition doesn't work with lambdas. Please check the attached screenshot.
``` ruby
def foo() = 123
# => :foo
foo
# => 123
def bar() = lambda { |x| x * x }
# I expected the method to be defined.
def bar() ...
kodnin (David Boot)
07:18 AM Bug #17192 (Closed): ISeq.load_from_binary can cause BUG if binary is a rbinc-derived
The following command can cause BUG.
```
$ ruby -e 'print RubyVM::InstructionSequence.of(1.method(:abs)).to_binary'|ruby -e 'RubyVM::InstructionSequence.load_from_binary(ARGF.read)'
-e:1: [BUG] ibf_load_builtin: table is not provided....
wanabe (_ wanabe)
06:56 AM Feature #15815: Add option to raise NoMethodError for OpenStruct
I'm proposing to add `OpenStruct::Strict`, that will not return `nil` for unknown attributes and instead raise a `NotMethodError`. See PR https://github.com/ruby/ruby/pull/3594 (last commit)
Usage with `JSON` is easy:
```ruby
JSON...
marcandre (Marc-Andre Lafortune)

09/25/2020

11:11 PM Bug #17191 (Closed): 3.0.0-preview1 fails to install using BSD make
On OpenBSD (which doesn't use GNU make by default), `./configure` and `make` work correctly for 3.0.0-preview1, but `make install` fails with:
```
Downloading bundled gem files...
executable host ruby is required. use --with-baserub...
jeremyevans0 (Jeremy Evans)
10:52 PM Revision 137fa5b2 (git): Fibers should update themselves on compaction
We should let fibers update their own references on compaction. I don't
think we need the thread to update the associated fiber because there
will be a fiber object on the heap that knows how to update itself.
tenderlovemaking (Aaron Patterson)
10:06 PM Feature #17143: Improve support for warning categories
I've updated my pull request to only allow specific categories, and limit the currently allowed categories to `:deprecated`. Assuming it passes CI, I'll merge it, and then work on pull requests for additional categories. jeremyevans0 (Jeremy Evans)
07:43 PM Feature #17143: Improve support for warning categories
matz (Yukihiro Matsumoto) wrote in #note-5:
> Adding category to the warning seems a good idea. But I have the following concerns:
> ...
OK, this change has already been made.
> * Category symbols must be among predefined set (to av...
jeremyevans0 (Jeremy Evans)
05:04 AM Feature #17143: Improve support for warning categories
- I'm not against adding the category keyword. However,
- I guess it is quite hard for us to +1 the "Add categories for all core warnings" commit at once.
- It might contain OK changes, but might also contain questionable ones.
...
shyouhei (Shyouhei Urabe)
04:58 AM Feature #17143: Improve support for warning categories
Adding category to the warning seems a good idea. But I have the following concerns:
* Category should be specified only by symbols
* Category symbols must be among predefined set (to avoid typos and confusions)
Matz.
matz (Yukihiro Matsumoto)
08:36 PM Bug #15661: Disallow concurrent Dir.chdir with block
I've added a pull request for this: https://github.com/ruby/ruby/pull/3591 jeremyevans0 (Jeremy Evans)
05:30 AM Bug #15661: Disallow concurrent Dir.chdir with block
It's hard to estimate how big the incompatibility is. But I'd like to try it.
I hope we don't see any big problem.
Matz.
matz (Yukihiro Matsumoto)
08:15 PM Feature #16994: Sets: shorthand for frozen sets of symbols / strings
matz@ruby.or.jp wrote:
> Remaining issues:
>
> * Name? `%ws` would be the first two character specifier after `%`. Is it reasonable? Or should we seek another name?
> * Frozen? `%w` returns non frozen array of non frozen strings. H...
normalperson (Eric Wong)
04:26 AM Feature #16994 (Feedback): Sets: shorthand for frozen sets of symbols / strings
We are going to introduce built-in set, but not in 3.0 (too little time to implement it before 3.0 release).
After merging built-in set, we will seriously consider this proposal.
Remaining issues:
* Name? `%ws` would be the first ...
matz (Yukihiro Matsumoto)
08:13 PM Revision 8b42474a (git): Enhanced RDoc for String#succ (#3590)
* Enhanced RDoc for String#succ burdettelamar (Burdette Lamar)
07:55 PM Bug #15712 (Closed): DateTime#=== should be defined and compare date and time instead of just the date
DateTime deprecation documentation was added to date: https://github.com/ruby/date/commit/58ca6e6a3ee20c72a77266e0f74920b12a06ee9d
`Date#===` is describes the current behavior as only considering the date, and uses examples with `Date...
jeremyevans0 (Jeremy Evans)
05:21 AM Bug #15712: DateTime#=== should be defined and compare date and time instead of just the date
I admit it is a bug. But we consider use of `DateTime` should be discouraged. So we keep this **bug** behavior for compatibility's sake.
We are going to describe obsoletion in the document.
Matz.
matz (Yukihiro Matsumoto)
07:41 PM Bug #17190 (Closed): Not working multiple assignment by rightward assignment statement
For example. It is foo.rb
```rb
42, 42 => a, b
p a
p b
```
I expected it.
```sh
42
42
```
But, Real result.
```sh
hoge.rb:1: syntax error, unexpected ',', expecting end-of-input
42, 42 => a, b
```
Is this inte...
yancya (Shinta Koyanagi)
07:13 PM Bug #17189: test_thread.rb in testsuite deadlocks with musl libc 1.2.1
From my reading of the test source, it seems to be testing the ability to do various async-signal-unsafe things after fork (but without execve) from a multithreaded parent, which has undefined behavior. Does Ruby (and Ruby programs) actu... dalias (Rich Felker)
05:56 PM Bug #17189 (Closed): test_thread.rb in testsuite deadlocks with musl libc 1.2.1
When we build ruby-2.7.1 in alpine linux the test suite deadlocks in `test_thread.rb`.
There are multiple processes:
```
$ ps xa | grep ruby
12401 ncopa 0:01 /home/ncopa/aports/main/ruby/src/ruby-2.7.1/ruby --disable-gems ./boo...
ncopa (Natanael Copa)
06:13 PM Feature #14394: Class.descendants
While I needed `Class#descendants` many times, I never had a need for `Module#descendants`. But I can think of its usefulness.
For example, when inheritance is implemented through modules, but not classes, for example -
a quick searc...
fatkodima (Dima Fatko)
04:57 PM Feature #14394: Class.descendants
> Is there a use-case for mod.descendants where mod is a module and not a class?
Not that I know of. Active Support implementations only list `Class`, not `Module`.
> ...
Agreed.
byroot (Jean Boussier)
02:01 PM Feature #14394: Class.descendants
byroot (Jean Boussier) wrote in #note-20:
> I'm not sure `Module#descendants` is really useful, but I don't see any reason not to have it either.
I think tracking subclasses (of classes) is quite simpler than also having to track "wh...
Eregon (Benoit Daloze)
11:19 AM Feature #14394: Class.descendants
> (and Kernel.descendants is the same but with Kernel extra).
I'm not sure `Module#descendants` is really useful, but I don't see any reason not to have it either.
byroot (Jean Boussier)
10:41 AM Feature #14394: Class.descendants
byroot (Jean Boussier) wrote in #note-18:
> I don't think modules are a concern. At least in the Active Support implementation only `Class` instances are considered. It's true that if `descendants` is seen as the mirror of `ancestors` th...
Eregon (Benoit Daloze)
10:27 AM Feature #14394: Class.descendants
> `self < self # => self`
I made a mistake meant `=> false`.
> ...
There isn't much use case for it though. But yes, that one just can't be fast no matter the implementation.
> Also we probably need to avoid recursion for module...
byroot (Jean Boussier)
10:22 AM Feature #14394: Class.descendants
byroot (Jean Boussier) wrote in #note-16:
> > self should be is contained or not?
> ...
`Module#ancestors` includes `self`.
`#descendants` is kind of the opposite/complement of `mod.ancestors` (finds all modules for which `mod` is in the...
Eregon (Benoit Daloze)
10:08 AM Feature #14394: Class.descendants
> self should be is contained or not?
I don't think it should no. `self < self # => self`.
> ...
Absolutely.
> order is random
Agreed.
> ...
As long as it has reasonable performance, and that it's not affected by the size ...
byroot (Jean Boussier)
06:12 AM Feature #14394: Class.descendants
let's clear:
* `self` should be is contained or not? AS's method doesn't contain.
* singleton classes should be excluded.
* order is random (not specified).
* performance of this method is not important, or important (calls it many...
ko1 (Koichi Sasada)
06:07 AM Feature #14394 (Feedback): Class.descendants
Accepted.
Although on some implementation, `#descendants` can be slow since it may be implemented by scanning whole object heaps (as ActiveSupport currently does).
Matz.
matz (Yukihiro Matsumoto)
04:27 PM Revision 24820d50 (git): Return nil when argument to ObjectSpace.internal_class_of is T_IMEMO
The added test case crashes the interpreter because it makes
ObjectSpace.internal_class_of return the second VALUE slot of an AST
imemo object. The second VALUE slot of `struct rb_ast_struct` is
not a VALUE and not a pointer to a Ruby ob...
alanwu (Alan Wu)
04:24 PM Bug #17144: Tempfile.open { ... } does not unlink the file
Tempfile.open would be useful when an user want to remove the file by GC.
Tempfile.create doesn't provide the feature, intentionally.
So, as far as an user needs temporary file removal by GC, we should not deprecate Tempfile.open
(u...
akr (Akira Tanaka)
09:30 AM Bug #17144: Tempfile.open { ... } does not unlink the file
OK, https://github.com/ruby/tempfile/pull/4 is the PR that reverts it and already applied to ruby master.
I will try to improve the documentation further, something like
"Tempfile.open is basically deprecated but kept for compatibili...
Eregon (Benoit Daloze)
04:45 AM Bug #17144 (Closed): Tempfile.open { ... } does not unlink the file
To keep compatibility, we are not going to change the behavior of `Tempfile.open`. But to reduce the confusion, documentation was updated.
In the future, maybe something like `RuboCop` warning will be convienient.
Matz.

matz (Yukihiro Matsumoto)
03:50 PM Feature #8948: Frozen regex
I think at least interpolated regexp (`/a#{i}b/`) should be frozen though, like Range objects. ko1 (Koichi Sasada)
03:44 PM Feature #8948 (Assigned): Frozen regex
> If so this should be postponed on introducing parallelization.
Reconsider about it? (freeze all regexp)
ko1 (Koichi Sasada)
03:34 PM Revision 3a00f2a0 (git): ext/readline/depend: update-deps --fix
Kenta Murata
03:30 PM Revision 722a1e47 (git): RBIMPL_ALIGNAS: reorder #ifdef blocks
Since r63443, `-std=gnu99 -D_XOPEN_SOUCE=x00` is added to Solaris'
`CPPFLAGS`. `CPPFLAGS` is shared among `CC` / `CXX`. This results in
both `__STDC_VERSION__` and `__cplusplus` to be defined at the same time
for a C++ compilation, onl...
shyouhei (Shyouhei Urabe)
03:27 PM Revision f7c41182 (git): * 2020-09-26 [ci skip]
git[bot]
03:20 PM Revision b271bd73 (git): test/net/smtp/test_smtp.rb: Stop io leaks
`make test-all` was very noisy by warnings like
```
Leaked file descriptor: Net::TestSMTP#test_start_with_position_argument: 6 : #<TCPSocket:fd 6, AF_INET, 127.0.0.1, 43770>
```
mame (Yusuke Endoh)
03:09 PM Feature #15504: Freeze all Range objects
Eregon (Benoit Daloze) wrote in #note-10:
> Related, should Enumerator::ArithmeticSequence be frozen too?
new ticket?
ko1 (Koichi Sasada)
01:58 PM Feature #15504: Freeze all Range objects
Great!
Related, should Enumerator::ArithmeticSequence be frozen too?
Eregon (Benoit Daloze)
01:17 PM Feature #15504 (Closed): Freeze all Range objects
Applied in changeset commit:git|0096d2b895395df5ab8696d3b6d444dc1b7730b6.
----------
freeze all Range objects.
Matz want to try to freeze all Range objects.
[Feature #15504]
ko1 (Koichi Sasada)
11:53 AM Feature #15504: Freeze all Range objects
Ok, I freeze all Ranges except sub-classes.
https://github.com/ruby/ruby/pull/3583
ko1 (Koichi Sasada)
08:49 AM Feature #15504: Freeze all Range objects
I agree with making ranges frozen. I don't see any particular case that could be broken by frozen ranges.
Since there's possiblity of breakage, I'd like to experiment it.
Matz.
matz (Yukihiro Matsumoto)
02:56 PM Revision 8119e5b0 (git): memory_view.c: prevent "warning: instance variable __memory_view__ not initialized"
Kenta Murata
02:45 PM Revision abdd3c56 (git): test/ruby/test_enumerator.rb: check the deprecation warning
by explicitly setting `Warning[:deprecated] = true`.
I removed "capture_io" at 79063d8cbfb7ce4740774289252a2a20dc9a5dc1, but
it printed the warning when `RUBYOPT=-w`.
This change makes the warnings enabled explicitly, capture and check ...
mame (Yusuke Endoh)
02:39 PM Revision 0db5324e (git): test/ruby/test_memory_view.rb: prevent "assigned but unused variable - members"
mame (Yusuke Endoh)
02:38 PM Revision 79063d8c (git): test/ruby/test_enumerator.rb: remove capture_io that is no longer needed
The deprecation warning was disabled, and the code to check the warning
was removed at 996af2ce086249e904b2ce95ab2fcd1de7d757be, thus capture_io
is no longer needed.
mame (Yusuke Endoh)
02:37 PM Revision e4b2c4fc (git): t/json/json_common_interface_test.rb: fix wrong indentation
to prevent:
```
test/json/json_common_interface_test.rb:182: warning: mismatched indentations at 'end' with 'def' at 169
```
mame (Yusuke Endoh)
02:31 PM Bug #17188 (Closed): Freeze Encoding objects for Ractor
Currently Encoding objects are not frozen:
```
$ ruby -ve 'p Encoding::US_ASCII.frozen?'
ruby 3.0.0dev (2020-09-25T08:28:42Z master 81dc37b1b4) [x86_64-linux]
false
```
That means they cannot be accessed in a Ractor:
```ruby
ir...
Eregon (Benoit Daloze)
01:41 PM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
Hi,
fatkodima (Dima Fatko) wrote in #note-8:
> to avoid updating all of them, I would prefer just add start index argument to `Array#index`, for consistency with `String#index`,
I agree with your approach. However, your PR change...
mame (Yusuke Endoh)
11:07 AM Feature #17056: Array#index: Allow specifying the position to start search as in String#index

Eregon (Benoit Daloze) wrote in #note-7:
> What if a block is given, and one want to use a start index? (for efficiency and not run the block for the first `start` elements).
> ...
ary.index(from: start) { |i| ... } or ary.index(star...
fatkodima (Dima Fatko)
10:11 AM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
What if a block is given, and one want to use a start index? (for efficiency and not run the block for the first `start` elements).
`ary.index(start) { |i| ... }` seems confusing.
Probably keyword arguments are better:
`ary.index(...
Eregon (Benoit Daloze)
06:23 AM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
Accepted.
How do you think about end index? Do we need it? If so, should we add end index to `String#index` as well?
Matz.
matz (Yukihiro Matsumoto)
01:16 PM Revision 0096d2b8 (git): freeze all Range objects.
Matz want to try to freeze all Range objects.
[Feature #15504]
ko1 (Koichi Sasada)
12:34 PM Revision f4328d7f (git): [ruby/readline-ext] Remove unnecessary header files from depend
https://github.com/ruby/readline-ext/commit/f9783c0739 aycabta (aycabta .)
12:32 PM Revision c04c34df (git): memory_view.h: brush up the description in the comment
Kenta Murata
12:16 PM Revision 56012d2f (git): NEWS.md: Add memory view entry
The memory view interface added at 890bc2cdde is experimental new C-API
set. This feature permits extension libraries to share a memory area
that contains such a numerical array and a bitmap image. This is
designed by referring to Pyth...
Kenta Murata
12:06 PM Feature #13767 (Closed): add something like python's buffer protocol to share memory between different narray like classes
Fixed by https://github.com/ruby/ruby/commit/890bc2cdde4097390f3b71dfeaa36dd92ee0afe2 mrkn (Kenta Murata)
12:06 PM Feature #14722 (Closed): python's buffer protocol clone
Fixed by https://github.com/ruby/ruby/commit/890bc2cdde4097390f3b71dfeaa36dd92ee0afe2 mrkn (Kenta Murata)
11:37 AM Revision caaa36b4 (git): prohibi method call by defined_method in other racotrs
We can not call a non-isolated Proc in multiple ractors. ko1 (Koichi Sasada)
11:32 AM Revision 890bc2cd (git): Buffer protocol proposal (#3261)
* Add buffer protocol
* Modify for some review comments
* Per-object buffer availability
* Rename to MemoryView from Buffer and make compilable
* Support integral repeat count in memory view format
* Support 'x' for padding bytes
*...
Kenta Murata
11:28 AM Revision 6eeacbbc (git): Extract assert assertion to assert_include and assert_not_include.
hsbt (Hiroshi SHIBATA)
11:21 AM Feature #17187: Add connect_timeout to TCPSocket
Pull Request: https://github.com/ruby/ruby/pull/3585 Glass_saga (Masaki Matsushita)
11:17 AM Feature #17187 (Closed): Add connect_timeout to TCPSocket
Add connect_timeout to TCPSocket.new in the same way as Socket.tcp.
```ruby
TCPSocket.new("192.0.2.1", 1234, connect_timeout: 1) #=> raise Errno::ETIMEDOUT
```
Glass_saga (Masaki Matsushita)
10:21 AM Revision 8705dba1 (git): Update dependencies
znz (Kazuhiro NISHIYAMA)
10:21 AM Revision cd44febc (git): Add check_dependencies workflow
znz (Kazuhiro NISHIYAMA)
10:03 AM Feature #17184: No stdlib function to perform simple string replacement
IMHO, rather than change the behavior of `gsub`, introducing a much simpler `String#replace(search, replace)` would make more sense, and would be more discoverable. byroot (Jean Boussier)
01:54 AM Feature #17184: No stdlib function to perform simple string replacement
> I think we should remove special treatment of `\+`, etc in the replacement string for `sub/gsub(String, String)`.
> ...
I agree that would be the sensible behavior, but I'm not sure the incompatibility is worth it. Imagine you try `"f...
Dan0042 (Daniel DeLorme)
09:17 AM Feature #17173: open-uri で ciphers を設定したい
net/http の ciphers を設定する ssl_ciphers キーワード引数を open-uri に加えるのはあり得ると思います。
akr (Akira Tanaka)
08:28 AM Revision 81dc37b1 (git): assert_true is not provided by test-unit
hsbt (Hiroshi SHIBATA)
08:28 AM Revision e30d1b09 (git): Fix pure parser with unclosed arrays / objects [Fix #314]
Marc-Andre Lafortune
08:28 AM Revision 927a377a (git): [flori/json] Fix JSON.load_file doc
https://github.com/flori/json/commit/cb61a00ba8 byroot (Jean Boussier)
08:28 AM Revision 038252fe (git): [flori/json] Partial compliance with doc/method_documentation.rdoc
https://github.com/flori/json/commit/6dfa885134 burdettelamar (Burdette Lamar)
08:28 AM Revision 71f64e15 (git): [flori/json] Enhanced RDoc for JSON.dump (#443)
* Enhanced RDoc for JSON.dump
https://github.com/flori/json/commit/03f1699ec4
burdettelamar (Burdette Lamar)
08:28 AM Revision 3d5e8339 (git): bundle the LICENSE file in the gem
Julien Feltesse
08:28 AM Revision de0e0ffa (git): [flori/json] Nodoc for recurse_proc
https://github.com/flori/json/commit/f8c0fe2408 burdettelamar (Burdette Lamar)
08:28 AM Revision e9096f79 (git): [flori/json] RDoc for JSON.load with proc
https://github.com/flori/json/commit/a55c91934e burdettelamar (Burdette Lamar)
08:28 AM Revision 0089854f (git): [test] properly 'skip' test on JRuby
an early return still caused ensure to execute,
setting JSON constant to `nil` for later tests!
kares (Karol Bucek)
08:28 AM Revision f8d43e53 (git): unify json-java gemspec with the baseline
kares (Karol Bucek)
08:28 AM Revision 8c057bb8 (git): [flori/json] RDoc example for JSON.load
https://github.com/flori/json/commit/e4eead665c burdettelamar (Burdette Lamar)
08:28 AM Revision 36b2177e (git): [flori/json] Enhance RDoc for JSON.parse
https://github.com/flori/json/commit/33e64ef255 burdettelamar (Burdette Lamar)
08:28 AM Revision 71b1bbad (git): [flori/json] Move options from #generate and #parse to common area
https://github.com/flori/json/commit/20d7be605a burdettelamar (Burdette Lamar)
08:28 AM Revision c3614877 (git): [flori/json] Add `load_file` and `load_file!` methods, with tests. Fixes issue #386.
https://github.com/flori/json/commit/0be363c99b keithrbennett (Keith Bennett)
08:28 AM Revision e1659af3 (git): Add an option to escape forward slash character
Squashed commit of the following:
commit 26d181059989279a79c433cedcd893b4f52e42ee
Author: Francois Chagnon <francois.chagnon@jadedpixel.com>
Date: Tue Sep 15 21:17:34 2015 +0000
add config options for escape_slash
commit fa28233...
byroot (Jean Boussier)
08:08 AM Revision c5ea060e (git): Update NEWS about RBS (#3579)
soutaro (Soutaro Matsumoto)
07:14 AM Feature #13683: Add strict Enumerable#single
A practical use case: When scraping a HTML document or something, sometimes we assume that an array length is 1.
```
nodes = html_node.children.select {|node| node.name == "table" }
raise if nodes.size == 1
the_node_i_want = nodes....
mame (Yusuke Endoh)
07:12 AM Feature #13683: Add strict Enumerable#single
Dan0042 (Daniel DeLorme) wrote in #note-25:
> > If collection is empty and a block was given, returns the block's return value:
> ...
It looks close to `Enumerable#one?` which counts truthy values only, but has a different semantics.
nobu (Nobuyoshi Nakada)
07:00 AM Revision 25cfb0c0 (git): Range is based on Struct.
Range can be shareable because it is implemented by Struct. ko1 (Koichi Sasada)
07:00 AM Revision 96739c42 (git): Frozen Struct can be shareable.
A frozen Struct object which refers to shareable objects should be
shareable.
ko1 (Koichi Sasada)
06:53 AM Bug #17030: Enumerable#grep{_v} should be optimized for Regexp
As far as we measured, there are still plenty of room for the optimization (for example, we don't need to allocate `MatchObject` for `grep_v`). We will investigate to improve the performance for those methods.
Besides that, `/f` flag ...
matz (Yukihiro Matsumoto)
06:47 AM Revision 97416ae5 (git): Describe resolv_timeout in NEWS
Glass_saga (Masaki Matsushita)
06:39 AM Revision f2d1808e (git): Add comments for resolv_timeout
Glass_saga (Masaki Matsushita)
06:19 AM Feature #17134 (Closed): Add resolv_timeout to TCPSocket
Applied in changeset commit:git|511fe23fa2bdf1f17faa91e0558be47b5bb62b2a.
----------
Add resolve_timeout to TCPSocket [Feature #17134]
Glass_saga (Masaki Matsushita)
06:19 AM Revision 511fe23f (git): Add resolve_timeout to TCPSocket [Feature #17134]
Glass_saga (Masaki Matsushita)
05:42 AM Feature #15628 (Assigned): init_inetsock_internal should fallback to IPv4 if IPv6 is unreachable
Glass_saga (Masaki Matsushita)
04:11 AM Revision b72f9200 (git): [ruby/psych] Forward keyword arguments in load_file and load_stream
https://github.com/ruby/psych/commit/4e1dd37f09 byroot (Jean Boussier)
04:11 AM Revision 8ea1021f (git): [ruby/psych] Bump version to 3.2.0
https://github.com/ruby/psych/commit/181a727c90 hsbt (Hiroshi SHIBATA)
04:11 AM Revision 263c4348 (git): [ruby/psych] Revert psych version
https://github.com/ruby/psych/commit/55a294fcd0 SzymonKowalczyk
04:11 AM Revision f794c928 (git): [ruby/psych] Update SNAKEYAML CVE-2017-18640
to version 1.26
https://github.com/ruby/psych/commit/b2802135e7
SzymonKowalczyk
04:11 AM Revision 33641e00 (git): Remove private_iv_get
The only remaining use of this function was to get the internal
message object from an exception's hidden `mesg` instance
variable to allow it to be dumped wiithout converting to a string.
As discussed in #103, this exposes internal imp...
headius (Charles Nutter)
04:07 AM Revision 6081ba4a (git): refactoring a test code.
make a test more clear. ko1 (Koichi Sasada)
03:53 AM Revision d247deda (git): Ractor.yield should raise if out-port is closed
Ractor.yield should raise Ractor::ClosedError if current Ractor's
outgoing-port is closed.
ko1 (Koichi Sasada)
03:52 AM Revision 52865263 (git): frozen T_OBJECT can be shareable.
If an T_OBJECT object is frozen and all ivars are shareable,
the object should be shareable.
ko1 (Koichi Sasada)
03:52 AM Revision fde13615 (git): should not check taint flag on rubyspec.
Now taint flag is obsolete and it is used fro shareaable flag.
So we should not check this flag.
ko1 (Koichi Sasada)
02:38 AM Revision c6c241e4 (git): enrich comment
Added description and URL about nested flexible array member. shyouhei (Shyouhei Urabe)
02:38 AM Revision 4cc501bc (git): ext/-test-/RUBY_ALIGNOF: skip C++ when no compiler
C++ compilers are optional. Skip C++ tests when they are absent. shyouhei (Shyouhei Urabe)
02:38 AM Revision e75aed7a (git): RBIMPL_ALIGNOF: do not use constexpr
Was definitely a bad idea to use constexpr. It is not ubiquitous. shyouhei (Shyouhei Urabe)
02:38 AM Revision 0b77a86d (git): ext/-test-/RUBY_ALIGNOF: add minimalistic test
Check if RUBY_ALIGNOF(double) is the alignment to store a double inside
of a struct.
shyouhei (Shyouhei Urabe)
02:38 AM Revision 873fb1aa (git): ALLOCA_N: do not use RUBY_ALIGNOF
Now that RUBY_ALIGNOF behaves like C11's _Alignof. This is not
necessarily the best stack arrangement. We can just give up using
__builtin_alloca_with_align(), and let alloca choose what is optimal.
shyouhei (Shyouhei Urabe)
02:38 AM Revision e9fb2bc8 (git): RBIMPL_ALIGNOF: do not use __alignof__
It is reported that on a system of i386 System V ABI, GCC returns 8 for
__alignof__(double). OTOH the ABI defines alignments of double to be 4,
and ISO/IEC 9899:2011 reads that _Alignof(double) shall return 4 on such
machine. What we w...
shyouhei (Shyouhei Urabe)
02:38 AM Revision fe875be0 (git): rb_cv_have_alignas: not used any longer
Availability of `alignas` is checked in include/ruby/internal/stdalign.h
now. That does not need this configure check. Also as commented in the
header, we see `_Alignas` being inadequate for our purpose.
shyouhei (Shyouhei Urabe)
01:53 AM Feature #16786: Light-weight scheduler for improved concurrency.
Eregon (Benoit Daloze) wrote in #note-56:
> What's `Fiber#annotate`?
It's a way to add a description to what a fiber is doing, it's incredibly useful for debugging. Actually, I don't mind if we don't do this, but it has been discussed a...
ioquatix (Samuel Williams)
01:01 AM Feature #13381: [PATCH] Expose rb_fstring and its family to C extensions
Any of the earlier suggestions were good, such as "pool" or "deduped". But while "interned" is technically correct, it will lead to confusion with symbols. It's better to keep a separate terminology imho. Dan0042 (Daniel DeLorme)
12:50 AM Revision 996af2ce (git): Disable deprecation warning by the default [Feature #16345]
And `-w` option turns it on. nobu (Nobuyoshi Nakada)

09/24/2020

11:38 PM Revision 83ff0f74 (git): Enhanced RDoc for String#match? (#3576)
* Enhanced RDoc for String#match? burdettelamar (Burdette Lamar)
10:54 PM Revision 53acf668 (git): Revert "[ruby/webrick] Add test for shutdown_pipe"
This reverts commit c06eab13290757fc326bb2a6e3ac25cd53e00894. hsbt (Hiroshi SHIBATA)
10:33 PM Revision c5960d51 (git): Revert "[ruby/webrick] Fix shutdown_pipe test issue"
This reverts commit b8fdd38b2e01abcfd4cc8d007a3b3afb285f5ddb. hsbt (Hiroshi SHIBATA)
10:11 PM Bug #17186 (Closed): Integer overflow in "chr" error message (out of char range)
Example:
```
irb(main):001:0> 300_000_000.chr
RangeError (300000000 out of char range)
irb(main):002:0> 3_000_000_000.chr
RangeError (-1294967296 out of char range)
irb(main):003:0> 30_000_000_000.chr
RangeError (30000000000 out...
semaperepelitsa (Simon Perepelitsa)
06:23 PM Revision 38385d28 (git): Enhanced RDoc for String (#3574)
Methods:
=~
match
burdettelamar (Burdette Lamar)
05:09 PM Bug #17185 (Closed): OpenSSL 1.1.1h failures
Eregon (Benoit Daloze)
05:05 PM Bug #17185: OpenSSL 1.1.1h failures
With the commits by @mame, both mingw & mswin are passing with 1.1.1h.
Thanks, Please close whenever.
MSP-Greg (Greg L)
03:00 PM Bug #17185 (Closed): OpenSSL 1.1.1h failures
Both mswin and mingw are currently failing, with the only obvious change being a change to OpenSSL 1.1.1h. Note that test-all isn't run on mswin here, but the failure appeared in both ruby-loco builds.
See https://github.com/ruby/ope...
MSP-Greg (Greg L)
04:48 PM Feature #17184: No stdlib function to perform simple string replacement
znz (Kazuhiro NISHIYAMA) wrote in #note-8:
> You can use `gsub("SCRIPT") { "replacement" }`.
I forgot about this form for this purpose. I find it really not intuitive for replacing strings.
A block is typically useful for more custo...
Eregon (Benoit Daloze)
04:46 PM Feature #17184: No stdlib function to perform simple string replacement
sheerun (Adam Stankiewicz) wrote in #note-7:
> String doesn't have dup method
What do you mean? `"foo".dup # => "foo"`.
Eregon (Benoit Daloze)
03:45 PM Feature #17184: No stdlib function to perform simple string replacement
Nice, it actually suits me.
I'll leave this issue open though, because I agree with what Benoit said above
sheerun (Adam Stankiewicz)
02:35 PM Feature #17184: No stdlib function to perform simple string replacement
You can use `gsub("SCRIPT") { script }`.
If you do not want the special treatment of replacement, you should use `gsub` with block instead of `gsub(pat, replacement)`.
znz (Kazuhiro NISHIYAMA)
01:33 PM Feature #17184: No stdlib function to perform simple string replacement
String doesn't have dup method sheerun (Adam Stankiewicz)
12:50 PM Feature #17184: No stdlib function to perform simple string replacement
@chrisseaton noticed the same issue a while ago.
`String#[]=` only replaces the first occurrence (and mutates the receiver).
I think we should remove special treatment of `\+`, etc in the replacement string for `sub/gsub(String, St...
Eregon (Benoit Daloze)
12:24 PM Feature #17184: No stdlib function to perform simple string replacement
Little more advanced, but common usecase, which also doesn't have built-in function is replacing all strings in simple way (i.e. gsub replacement, not sub replacement). sheerun (Adam Stankiewicz)
12:20 PM Feature #17184: No stdlib function to perform simple string replacement

For now I'm using self-implemented function, but I wish there was something built-in:
```rb
class String
# Simple substitution, ignores backreferences in sub
# https://bugs.ruby-lang.org/issues/17184
def ssub(str, sub)
...
sheerun (Adam Stankiewicz)
12:02 PM Feature #17184: No stdlib function to perform simple string replacement
byroot (Jean Boussier) wrote in #note-2:
> The intended API for that is `String[]=`, e.g.
Is there a non-mutable version of this?
sheerun (Adam Stankiewicz)
11:59 AM Feature #17184: No stdlib function to perform simple string replacement
The intended API for that is `String[]=`, e.g.
```ruby
string["search"] = "replace"
```
byroot (Jean Boussier)
11:56 AM Feature #17184: No stdlib function to perform simple string replacement
The hash replacement form of gsub doesn't have this problem, strangely enough:
``` ruby
'mislocated cat, vindicating'.gsub('cat', 'dog\+')
#=> "mislodoged dog, vindidoging"
'mislocated cat, vindicating'.gsub('cat', 'cat' => 'dog\+')
#=>...
briankung (Brian Kung)
11:37 AM Feature #17184 (Assigned): No stdlib function to perform simple string replacement
I have following simple `build.rb`:
```rb
template = File.read('template.vim')
script = File.read('script.vim')
File.write('app.vim', template.gsub("SCRIPT", script))
```
And then following `template.vim`:
```vim
" some hea...
sheerun (Adam Stankiewicz)
03:55 PM Revision 6fe2a9fc (git): Enhanced RDoc for String (#3569)
Makes some methods doc compliant with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc. Also, other minor revisions to make more consistent.
Methods:
==
===
eql?
<=>
casecmp
casecmp?
ind...
burdettelamar (Burdette Lamar)
03:26 PM Revision b30af31c (git): * 2020-09-25 [ci skip]
git[bot]
03:25 PM Revision 7ad3aff4 (git): Ractor#close_outgoping cancel Ractor.yield
Ractor#close_outgoing should cancel waiting Ractor.yield. However,
yield a value by the Ractor's block should not cancel (to recognize
terminating Ractor, introduce rb_ractor_t::yield_atexit flag).
ko1 (Koichi Sasada)
01:20 PM Revision 757e185c (git): Revert "[ruby/webrick] Allow empty POST and PUT requests without content length"
This reverts commit ed12019ce6abe87aac87ec77ac081d37b25180a2.
https://github.com/ruby/ruby/runs/1160423667?check_suite_focus=true#step:14:752
hsbt (Hiroshi SHIBATA)
12:41 PM Revision 588ac990 (git): [ruby/webrick] Manually pick commit from upstream repo
Fix test when run with US-ASCII encoding
https://github.com/ruby/webrick/commit/f402aafb36bbd43be54621405da550643a1a1a4c
hsbt (Hiroshi SHIBATA)
12:37 PM Revision f64bea6d (git): [ruby/webrick] Allow shutdown_pipe to be passed in via @config
https://github.com/ruby/webrick/commit/30152b4bf9 wishdev (John Higgins)
12:34 PM Revision c12c7fea (git): [ruby/webrick] Only run test_big_bodies test on Ruby 2.5+
It was added after Ruby 2.5, and it looks like it never ran correctly
on Ruby <2.5.
https://github.com/ruby/webrick/commit/65fb03cb6a
jeremyevans (Jeremy Evans)
12:34 PM Revision ed12019c (git): [ruby/webrick] Allow empty POST and PUT requests without content length
RFC 7230 section 3.3.3 allows for this.
Fixes #30
https://github.com/ruby/webrick/commit/069e9b1908
jeremyevans (Jeremy Evans)
12:33 PM Revision 0fe64611 (git): [ruby/webrick] Allow EPROTOTYPE error when writing junk to a socket
MacOS seems to raise this error in some cases.
https://github.com/ruby/webrick/commit/0f0c9f1e61
jeremyevans (Jeremy Evans)
12:32 PM Revision b8fdd38b (git): [ruby/webrick] Fix shutdown_pipe test issue
https://github.com/ruby/webrick/commit/9676704c60 wishdev (John Higgins)
12:31 PM Revision 4715a24d (git): [ruby/webrick] Ensure server port numbers are numeric and ensure they are stored as integers
https://github.com/ruby/webrick/commit/86ed621e11 wishdev (John Higgins)
12:31 PM Revision c06eab13 (git): [ruby/webrick] Add test for shutdown_pipe
https://github.com/ruby/webrick/commit/1daacc1849 wishdev (John Higgins)
12:30 PM Revision d969cf60 (git): [ruby/webrick] Do not use ensure in a block without begin
This syntax is not supported until Ruby 2.5, and Webrick still
targets Ruby 2.3+.
https://github.com/ruby/webrick/commit/fbe85b885f
jeremyevans (Jeremy Evans)
12:22 PM Revision 96da24f2 (git): [ruby/webrick] Make readpartial limit chunk to appropriate size
https://github.com/ruby/webrick/commit/e693f501bd wishdev (John Higgins)
12:21 PM Revision 46ba416a (git): [ruby/webrick] Skip env-locale-sensitive CGI test on the "java" platform
JRuby's environment variables are provided by the Java Development
Kit's (JDK's) classes, which present them as a map from string to
string. In order to do this, those environment variable names and
values must be decoded into characters...
headius (Charles Nutter)
10:39 AM Revision 0c611d7f (git): test/net/http/test_https.rb: The test logic was buggy
The expected certs must be `[CA_CERT, SERVER_CERT]` before 1.1.1g and
`[SERVER_CERT]` after 1.1.1h.
mame (Yusuke Endoh)
10:34 AM Revision 1917afa3 (git): test/net/http/test_https.rb: the order of verify_callback seems to vary
... depending upon the environment. mame (Yusuke Endoh)
10:30 AM Revision 4405423c (git): test/ostruct/test_ostruct.rb: Prevent "method redefined; discarding old foo"
mame (Yusuke Endoh)
10:29 AM Revision 416bb11a (git): test/fiber/scheduler.rb: Prevent "instance variable @urgent not initialized"
mame (Yusuke Endoh)
10:20 AM Revision 07786edd (git): test/net/http/test_https.rb: Stop the error due to openssl 1.1.1h
On some environments that uses OpenSSL 1.1.1h, the two tests now fail.
http://rubyci.s3.amazonaws.com/android29-x86_64/ruby-master/log/20200924T062352Z.fail.html.gz
https://github.com/ruby/ruby/runs/1159288773?check_suite_focus=true
``...
mame (Yusuke Endoh)
09:39 AM Feature #10561: Improve function of Thread::Backtrace::Location #path and #absolute_path
There is an extra difference that #absolute_path will also try to canonicalize the path and resolve symlinks, so then even if #path is absolute, #absolute_path can be different.
See https://github.com/ruby/spec/blob/e829fb0bcb667013f352...
Eregon (Benoit Daloze)
08:09 AM Revision 29ed16ff (git): add GC_GUARD
We observed mark miss on this point so we add RB_GC_GUARD() to
avoid wrong free.
ko1 (Koichi Sasada)
08:09 AM Revision 4a588e70 (git): sync rb_gc_register_mark_object()
rb_vm_t::mark_object_ary is global resource so we need to
synchronize to access it.
ko1 (Koichi Sasada)
01:32 AM Bug #17183: Float round working weirdly
Agreed to @marcandre . This sounds like a real bug. shyouhei (Shyouhei Urabe)
12:56 AM Revision e06f4a3b (git): Remove test for putiseq insn
putiseq was removed from instruction set in 2b5bb8a0 Michael Lindley
12:17 AM Bug #16809: Fiber crashes with --with-coroutine=copy
It looks like sometimes the copy coroutine implementation can segfault even on x86_64: https://travis-ci.org/github/ruby/ruby/jobs/729643639 jeremyevans0 (Jeremy Evans)
 

Also available in: Atom