Project

General

Profile

Activity

From 02/01/2022 to 02/07/2022

02/07/2022

11:40 PM Bug #18575: [BUG] unsupported: T_NONE
tenderlovemaking (Aaron Patterson) wrote in #note-2:
> Hi,
> ...
Thank you for the response!
~~I think it is possible that `csv` version is responsible for this? I updated my test script to pull in `csv` tag 3.2.2 and it no longer error...
PhilCoggins (Phil Coggins)
11:19 PM Bug #18575: [BUG] unsupported: T_NONE
Hi,
Thanks for the short repro script! I think this might have been fixed, but I'm not sure what revision. Ruby 3.1.0 doesn't crash with your test script, so maybe there's a commit that needs to be backported.
tenderlovemaking (Aaron Patterson)
10:45 PM Bug #18575: [BUG] unsupported: T_NONE
I think i have managed to produce a relatively simply repro script:
```ruby
require 'csv'
parsed = CSV.parse("Foo,bAr,baZ\nfoo,bar,baz", headers: true)
while true
parsed.map do |row|
obj = row.to_h
obj.transform_keys! { |k| k...
PhilCoggins (Phil Coggins)
09:28 PM Bug #18575 (Closed): [BUG] unsupported: T_NONE
I am seeing this error cropping up in my application, particularly when processing large CSV files. It seems to be semi-related to https://bugs.ruby-lang.org/issues/16689 (Hash#transform_values!, but this particular issue is with Hash#tr... PhilCoggins (Phil Coggins)
10:52 PM Misc #18557: DevMeeting-2022-02-17
* [Feature #16989] Sets: need ♥️
* matz has already accepted adding Sets as default. However, there hasn’t been any updates on the progress
greggzst (Grzegorz Jakubiak)
10:31 PM Misc #18557: DevMeeting-2022-02-17
* [Bug #18487] Kernel#binding behaves differently depending on implementation language of items on the stack (jeremyevans0)
* Is it OK to limit Kernel#binding to only look at the preceding frame, instead of the closest Ruby-level fram...
jeremyevans0 (Jeremy Evans)
06:22 PM Misc #18557: DevMeeting-2022-02-17
"byroot (Jean Boussier)" <noreply@ruby-lang.org> wrote:
> Issue #18557 has been updated by byroot (Jean Boussier).
>
>
> [Feature #18566] Merge `io-wait` gem into core `IO` class. (byroot)
> - It's very small and any non-trivia...
normalperson (Eric Wong)
08:45 AM Misc #18557: DevMeeting-2022-02-17
[Feature #18566] Merge `io-wait` gem into core `IO` class. (byroot)
- It's very small and any non-trivial IO code will require it.
- Merge io-wait into io.c for Ruby 3.2
- Remove io-wait as a dependency of all gems maintained by...
byroot (Jean Boussier)
09:54 PM Bug #16689: [BUG] try to mark T_NONE object
Would it be possible to share the repro script that was deleted at https://github.com/Shopify/ruby-repro? I have encountered a similar issue with `Hash#transform_keys` (see https://bugs.ruby-lang.org/issues/18575) and it would be helpful... PhilCoggins (Phil Coggins)
04:41 PM Revision 546730b7 (git): * 2022-02-08 [ci skip]
git[bot]
04:39 PM Revision 8ca7b0b6 (git): [DOC] Fix broken links to operator methods
Once https://github.com/ruby/rdoc/pull/865 is merged, these hacks
are no longer needed.
nobu (Nobuyoshi Nakada)
04:28 PM Revision 07bf6585 (git): [DOC] Fix broken links to case_mapping.rdoc
nobu (Nobuyoshi Nakada)
04:27 PM Revision 16fdc1ff (git): [DOC] Fix broken links to literals.rdoc
nobu (Nobuyoshi Nakada)
04:18 PM Revision bc5662d9 (git): [DOC] Simplify links to global methods
nobu (Nobuyoshi Nakada)
03:14 PM Bug #18570: Please Backport 77fe1fca0abb56f7f07725c0a3803d53a315c853 from the ipaddr gem to Ruby 3.1
ruby_3_1 73159727ed88a8f739038984c847bb7313336450. naruse (Yui NARUSE)
07:54 AM Bug #18570: Please Backport 77fe1fca0abb56f7f07725c0a3803d53a315c853 from the ipaddr gem to Ruby 3.1
I got the owner grant of ipaddr gem and released ipaddr-1.2.4.
@naruse Please merge https://github.com/ruby/ruby/pull/5526 to `ruby_3_1` branch.
hsbt (Hiroshi SHIBATA)
03:14 PM Revision bb4d9f82 (git): * 2022-02-08 [ci skip]
git[bot]
03:14 PM Revision 73159727 (git): Merge ipaddr-1.2.4 (#5526)
[Bug #18570] hsbt (Hiroshi SHIBATA)
02:52 PM Revision f53f4919 (git): [DOC] Replace with IO@Modes
peterzhu2118 (Peter Zhu)
02:52 PM Revision 9b3115ff (git): [DOC] Remove extra period
peterzhu2118 (Peter Zhu)
02:52 PM Revision a12e2f9a (git): [DOC] Remove extra closing curly bracket
peterzhu2118 (Peter Zhu)
02:52 PM Revision a32e5e1b (git): [DOC] Use RDoc link style for links in the same class/module
I used this regex:
(?<=\[)#(?:class|module)-([A-Za-z]+)-label-([A-Za-z0-9\-\+]+)
And performed a global find & replace for this:
rdoc-ref:$1@$2
peterzhu2118 (Peter Zhu)
02:52 PM Revision f9a2802b (git): [DOC] Use RDoc link style for links to other classes/modules
I used this regex:
([A-Za-z]+)\.html#(?:class|module)-[A-Za-z]+-label-([A-Za-z0-9\-\+]+)
And performed a global find & replace for this:
rdoc-ref:$1@$2
peterzhu2118 (Peter Zhu)
02:52 PM Revision ecd469fa (git): [DOC] Fix links in documentation for File and IO
Fixes some typos and dead links. peterzhu2118 (Peter Zhu)
02:06 PM Revision 981a75db (git): [rubygems/rubygems] Fix missing rdoc for Gem::Version
The rdoc for Gem::Version is available here:
* https://docs.ruby-lang.org/en/3.0/Gem/Version.html
However it is currently missing from:
* https://ruby-doc.org/stdlib-3.1.0/libdoc/rubygems/rdoc/Gem/Version.html
* https://docs.ruby-lang.o...
nevans (Nicholas Evans)
01:46 PM Bug #18574 (Closed): Backport Get `ruby_nonempty_memcpy` to have C linkage to to ruby_3_0
Would it be possible to backport https://github.com/ruby/ruby/pull/4429 to ruby_3_0?
I did check out the `ruby_3_0` branch, applied the patch. It builds successfully, now I'm running `make check` to verify if it's working.
Quintasan (Michał Zając)
11:08 AM Bug #18562: throw_data passed to rescue through require
ruby_3_1 807dd0479267a067e8208a2053b446fa13a2e66f merged revision(s) c79d2e54748f52c5023b0a1ee441561df9826c17. naruse (Yui NARUSE)
11:08 AM Revision 807dd047 (git): merge revision(s) c79d2e54748f52c5023b0a1ee441561df9826c17: [Backport #18562]
Fix TAG_THROW through require [Bug #18562]
Previously this was being incorrectly swapped with TAG_RAISE in the next
line. This would end up checking the T_IMEMO throw_data to the exception
handling (which calls M...
naruse (Yui NARUSE)
10:58 AM Bug #18501: [BUG] try to mark T_NONE object in RubyVM::InstructionSequence. load_from_binary
ruby_3_1 86c8e15170484fe23b311e567717053f147ffd9c merged revision(s) 2a76440fac62b. naruse (Yui NARUSE)
10:58 AM Revision 86c8e151 (git): merge revision(s) 2a76440fac62b: [Backport #18501]
[Bug #18501] Fire write barrier after hash has been written
Before this change the write barrier was executed before the key and
value were actually reachable via the Hash. This could cause
inconsistencies in ob...
naruse (Yui NARUSE)
10:55 AM Bug #18556: error: use of undeclared identifier 'MAP_ANONYMOUS'
ruby_3_1 e54289bb632047b750f9c9371410d1adff2a740a merged revision(s) 67f4729. naruse (Yui NARUSE)
10:55 AM Revision e54289bb (git): merge revision(s) 67f4729: [Backport #18556]
[Bug#18556] Fallback `MAP_ ANONYMOUS`
Define `MAP_ANONYMOUS` to `MAP_ANON` if undefined on old systems.
---
gc.c | 4 ++++
1 file changed, 4 insertions(+)
naruse (Yui NARUSE)
10:02 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
A concrete issue caused by adding `digest` as a needless dependency for net-*: https://github.com/oracle/truffleruby/issues/2577
It's also a particularly obscure error because TruffleRuby does define these classes but the default gem wi...
Eregon (Benoit Daloze)
06:30 AM Revision 01693807 (git): Appveyor: Link vcpkg DLLs except for readline
nobu (Nobuyoshi Nakada)
04:40 AM Revision 8fe2ce83 (git): [MSWin] Link all vcpkg DLLs except for readline
nobu (Nobuyoshi Nakada)
04:40 AM Revision 65ccae5b (git): [MSWin] Install libyaml using vcpkg
nobu (Nobuyoshi Nakada)
03:19 AM Feature #18573: Object#pack1
今日のOffice Hourで話したんですが、レシーバごとにそれにふさわしい書式って限定されるはずなので、何でも屋のpackではなく、たとえばIntegerならビット幅とエンディアンを指定してバイナリ表現を得るメソッド、StringならNUL-terminatedなバイナリを得るメソッド、などをそれぞれ用意すべきかも、と思いました。 knu (Akinori MUSHA)
03:02 AM Feature #18573: Object#pack1
String#format / String#% のような感じで書式の方をレシーバにする方がよさそうですが、unpackとの対称性を考えると名前が難しいかも。 knu (Akinori MUSHA)
02:49 AM Feature #18573: Object#pack1
packしたいもの(のclass)はすごく限定的なので、Objectに生やすのはどうかなあと思いました。 knu (Akinori MUSHA)
02:55 AM Feature #18438: Add `Exception#additional_message` to show additional error information
I talked with @matz. He decided to go ahead with it as is, as it is not a serious problem.
If you want an exact compatibility with the traditional `Exception#message`, please remove a class name from detailed_message.
```
exc = Ru...
mame (Yusuke Endoh)
12:52 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
> I agree this would make a lot of sense, also for `io-nonblock` which is also just a couple IO methods.

Agree, please remove tiny .so since they're frequently needed.

Ulrich Drepper (former glibc maintainer) states:

Every DSO ...
normalperson (Eric Wong)

02/06/2022

06:43 PM Bug #18562: throw_data passed to rescue through require
byroot (Jean Boussier) wrote in #note-2:
> @jhawthorn that was a master only issue right? I could repo it with any released version.
Thanks for checking. I didn't realize this before, but it seems that this needs `--disable-gems` to ...
jhawthorn (John Hawthorn)
10:55 AM Bug #18562: throw_data passed to rescue through require
@jhawthorn that was a master only issue right? I could repo it with any released version. byroot (Jean Boussier)
02:10 AM Bug #18562 (Closed): throw_data passed to rescue through require
Applied in changeset commit:git|c79d2e54748f52c5023b0a1ee441561df9826c17.
----------
Fix TAG_THROW through require [Bug #18562]
Previously this was being incorrectly swapped with TAG_RAISE in the next
line. This would end up checking t...
jhawthorn (John Hawthorn)
04:33 PM Feature #18573 (Open): Object#pack1
# 概要
String#unpack1 の逆の Object#pack1 が欲しい。
# 背景
Array#pack というメソッドがありますが、レシーバーの Array の要素数が 1 つしかないことが良くあります。
``` ruby
[codepoint].pack('U')
[digest].pack('m0')
[mail_body].pack('M')
[ip_address].pack('N')
```
標準添付ライブ...
os (Shigeki OHARA)
03:44 PM Revision a07fa198 (git): Improve links to labels in string.c and struct.c (#5531)
burdettelamar (Burdette Lamar)
03:03 PM Revision 893b0fd7 (git): * 2022-02-07 [ci skip]
git[bot]
01:23 PM Revision 402d7648 (git): [MSWin] Install libffi using vcpkg
nobu (Nobuyoshi Nakada)
01:22 PM Revision b9083c20 (git): [MSWin] Cache installed vcpkg packages
nobu (Nobuyoshi Nakada)
10:24 AM Revision 90a540e9 (git): Appveyor: Try readline extension
nobu (Nobuyoshi Nakada)
10:23 AM Revision 2cf687fe (git): Appveyor: DBM extensions have not been bundled already
nobu (Nobuyoshi Nakada)
10:22 AM Revision 7ce3a100 (git): Fold command line items
nobu (Nobuyoshi Nakada)
02:10 AM Revision c79d2e54 (git): Fix TAG_THROW through require [Bug #18562]
Previously this was being incorrectly swapped with TAG_RAISE in the next
line. This would end up checking the T_IMEMO throw_data to the exception
handling (which calls Module#===). This happened to not break existing
tests because Module...
jhawthorn (John Hawthorn)

02/05/2022

08:05 PM Revision 3e6c6c74 (git): {DOC] Enhanced RDoc for io.c (#5529)
Changes parameter name from simple opts to open_opts or enc_opts when appropriate; leaves the name unchanged when more than one kind of option is allowed. burdettelamar (Burdette Lamar)
06:06 PM Revision 3ec2ffed (git): * 2022-02-06 [ci skip]
git[bot]
06:05 PM Revision 603ab709 (git): support concurrent btest execution
* `-j` option for concurrent test with threads
* `-jN` uses N threads
* `-j` uses nproc/2 threads
* Introduce `BT` struct to manage configurations
* Introduce `Assertion` to manage all assertions
* Remove all toplevel instance variab...
ko1 (Koichi Sasada)
11:01 AM Bug #18572 (Closed): Performance regression when invoking refined methods
Since Ruby 3.0, defining a refinement for a method slows down its execution even if we do not activate the refinement:
```ruby
require "benchmark_driver"
source = <<~RUBY
class Hash
def symbolize_keys
transform_keys { |ke...
palkan (Vladimir Dementyev)

02/04/2022

10:41 PM Bug #18501: [BUG] try to mark T_NONE object in RubyVM::InstructionSequence. load_from_binary
> I'd like to let it run for a few more days to be fully certain though.
We ran it quite enough and saw no more crashes, so we're quite confident the patches work.
I'm marking 3.0 and older as DONTNEED because ne never noticed that...
byroot (Jean Boussier)
10:36 PM Bug #18501 (Closed): [BUG] try to mark T_NONE object in RubyVM::InstructionSequence. load_from_binary
Applied in changeset commit:git|2a76440fac62bb0f6e53ccada07caf4b47b78cf9.
----------
[Bug #18501] Fire write barrier after hash has been written
Before this change the write barrier was executed before the key and
value were actually r...
tenderlovemaking (Aaron Patterson)
09:07 AM Bug #18501: [BUG] try to mark T_NONE object in RubyVM::InstructionSequence. load_from_binary
@tenderlovemaking implemented a patch for this: https://github.com/ruby/ruby/pull/5525, we deployed it on our infra and so far the bug is gone. I'd like to let it run for a few more days to be fully certain though.
@tenderlovemaking, ...
byroot (Jean Boussier)
10:36 PM Revision 2a76440f (git): [Bug #18501] Fire write barrier after hash has been written
Before this change the write barrier was executed before the key and
value were actually reachable via the Hash. This could cause
inconsistencies in object coloration which would lead to accidental
collection of dup'd keys.
Example:
1...
tenderlovemaking (Aaron Patterson)
10:27 PM Revision 06e96b92 (git): * 2022-02-05 [ci skip]
git[bot]
10:26 PM Revision 06a28ec4 (git): [DOC] Enhanced RDoc for io.c (#5527)
Treats:
IO.binread (abbreviated to be like IO.binwrite).
IO.write
IO.binwrite
IO.copystream
IO#external_encoding
IO#internal_encoding
IO#set_encoding
burdettelamar (Burdette Lamar)
09:12 PM Bug #18570 (Closed): Please Backport 77fe1fca0abb56f7f07725c0a3803d53a315c853 from the ipaddr gem to Ruby 3.1
jeremyevans0 (Jeremy Evans)
09:15 AM Bug #18570 (Assigned): Please Backport 77fe1fca0abb56f7f07725c0a3803d53a315c853 from the ipaddr gem to Ruby 3.1
I've prepared to merge ipaddr-1.2.4 at https://github.com/ruby/ruby/pull/5526
But I have no grant for releasing ipaddr-1.2.4 gem.
@knu Can you release ipaddr-1.2.4 from the v1.2.4 tag of ruby/ipaddr or add me to ipaddr gem owners?...
hsbt (Hiroshi SHIBATA)
08:15 AM Bug #18570 (Closed): Please Backport 77fe1fca0abb56f7f07725c0a3803d53a315c853 from the ipaddr gem to Ruby 3.1
For some reason the following code causes an exception with Ruby 3.1:
``` ruby
require "ipaddr"
([IPAddr.new("192.168.56.0/21").freeze].freeze).any?{ |range| range.include?(IPAddr.new("192.168.1.0")) }
```
which breaks vagrant with ...
dcermak (Dan Čermák)
09:12 PM Bug #18569 (Rejected): RubyVM::InstructionSequence#disasm returns nil for composed functions
I agree, this is expected behavior, since there is no instruction sequence for a composed proc. If you would like an instruction sequence, you need to manually compose the proc in Ruby. jeremyevans0 (Jeremy Evans)
09:04 PM Bug #18556 (Closed): error: use of undeclared identifier 'MAP_ANONYMOUS'
jeremyevans0 (Jeremy Evans)
05:54 PM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
So the TracePoint API must use similar paths. Therefore, looking at vm_trace.c, I have noticed this [1] line:
~~~
trace_arg->self != rb_mRubyVMFrozenCore /* skip special methods. TODO: remove it. */) {
~~~
I have traced their ori...
vo.x (Vit Ondruch)
01:26 PM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
It is actually reproducible everywhere. I was able to reproduce it on x86_64 although it fails less frequently. vo.x (Vit Ondruch)
04:10 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
byroot (Jean Boussier) wrote in #note-12:
> It's not a "one or the other" scenario. We can perfectly explore both.
Yes, but if we manage to slim RubyGems boot like lazy-rubygems does, it loads so little Ruby code that I think there i...
Eregon (Benoit Daloze)
12:10 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
> That would only work on CRuby, so as such would be unusable on anything but CRuby.
> ...
It's not a "one or the other" scenario. We can perfectly explore both.
byroot (Jean Boussier)
11:49 AM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
> Over 80% of CRuby's base startup is due to eagerly booting RubyGems. We can do better!
It's not the main point here, but perhaps still worth noting: `--disable-gems` implies `--disable=error_highlight,did_you_mean`.
In my own brief l...
matthewd (Matthew Draper)
11:33 AM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
byroot (Jean Boussier) wrote in #note-9:
> Another thing that could be explored would be to leverage `RubyVM::InstructionSequence.compile_file(path)`. If we indeed have a mapping of the gems content, we could define `load_iseq`, at leas...
Eregon (Benoit Daloze)
07:42 AM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
Another thing that could be explored would be to leverage `RubyVM::InstructionSequence.compile_file(path)`. If we indeed have a mapping of the gems content, we could define `load_iseq`, at least for the duration of rubygems's "boot". byroot (Jean Boussier)
12:55 PM Revision 46f65751 (git): [DOC] Enhanced RDoc for io.c (#5511)
Treats:
IO.foreach
IO.readlines
IO.read
IO.binread
burdettelamar (Burdette Lamar)
11:46 AM Misc #18557: DevMeeting-2022-02-17
* [Feature #18571] Removed the bundled sources from release package after Ruby 3.2
* (dummy comment)
hsbt (Hiroshi SHIBATA)
11:45 AM Feature #18571 (Closed): Removed the bundled sources from release package after Ruby 3.2
We shipped release package with the 3rd party source for mswin environment especially.
The current status is here:
* libyaml: psych gem, ruby repo and package always bundled it.
* libffi: only ruby package bundled it. fiddle ge...
hsbt (Hiroshi SHIBATA)

02/03/2022

11:26 PM Revision 203b1fc7 (git): Add documentation for regexp emoji named character property
Max Leopold
08:55 PM Feature #18438: Add `Exception#additional_message` to show additional error information
> Now Exception#detailed_message has a responsibility to highlight the message, so it need to insert the class name
I see. Thanks for the explanation!
> ...
I don't think adding another option just for that is necessary. I'll first...
st0012 (Stan Lo)
02:06 PM Feature #18438: Add `Exception#additional_message` to show additional error information
mame (Yusuke Endoh) wrote in #note-25:
> But I agree that this is not a big deal.
Exactly. At this point it's kind of a bikeshed, it's just that according to #note-1 Sentry displays the exception class above the message, so it would be ...
Dan0042 (Daniel DeLorme)
10:38 AM Feature #18438: Add `Exception#additional_message` to show additional error information
Thank you for your comment!
st0012 (Stan Lo) wrote in #note-24:
> I think it'll be fine but I'm not sure why the class name needs to be added as well?
The current error printer inserts the exception class name.
```
$ ruby -e '...
mame (Yusuke Endoh)
09:59 AM Feature #18438: Add `Exception#additional_message` to show additional error information
> My concern was that Sentry will now use #detailed_message instead of #message, but it will now include the exception class, unlike before. But if Sentry is ok with that there's no problem.
I think it'll be fine but I'm not sure why ...
st0012 (Stan Lo)
01:28 AM Feature #18438: Add `Exception#additional_message` to show additional error information
Dan0042 (Daniel DeLorme) wrote in #note-22:
> My concern was that Sentry will now use #detailed_message instead of #message, but it will now include the exception class, unlike before. But if Sentry is ok with that there's no problem.
...
mame (Yusuke Endoh)
08:07 PM Revision 9fab2c1a (git): Add the size pool slot size to the output of ObjectSpace.dump/dump_all
eightbitraptor (Matt V-H)
08:07 PM Revision a3caf196 (git): * 2022-02-04 [ci skip]
git[bot]
08:06 PM Revision af321ea7 (git): Move total_freed_pages to size pool
peterzhu2118 (Peter Zhu)
08:06 PM Revision a9221406 (git): Move total_allocated_pages to size pool
peterzhu2118 (Peter Zhu)
06:46 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
> https://github.com/rubygems/rubygems/pull/4199
Interesting, that seems a helpful step, although I suspect there would still be a significant overhead over `--disable-gems`, as long as we load so much Ruby code during startup.
I t...
Eregon (Benoit Daloze)
04:17 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
> I think a faster boot time while still having RubyGems enabled by default would be good for all Rubies.
Thank you for providing those links... I knew I had seen that code but could not remember where it was located.
Making these ...
headius (Charles Nutter)
02:21 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
I worked on https://github.com/rubygems/rubygems/pull/4199 a while ago which avoided all gemspec evaluation during boot if I recall correct, and made things faster. But I never wrapped it up, I'll try to make it happen and re-measure its... deivid (David Rodríguez)
12:48 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
I think a faster boot time while still having RubyGems enabled by default would be good for all Rubies.
https://github.com/oracle/truffleruby/blob/14ec2c2673188d47374a0570cf036864fcafe0b3/src/main/ruby/truffleruby/core/truffle/gem_util....
Eregon (Benoit Daloze)
06:05 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
@deivid That is a good point.
For io-wait/io-nonblock it just seems very unlikely to have security vulnerabilities in them, but for `digest`/`strscan` that is less clear.
Eregon (Benoit Daloze)
02:18 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
> Being a default gem is already enough to fix a security issue without a CRuby release.
This is currently enough to be able to _release_ security fixes independently, but only if dependencies are explicitly recorded in lockfiles the...
deivid (David Rodríguez)
01:34 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
vo.x (Vit Ondruch) wrote in #note-19:
> Unlikely? How about openssl in Ruby 3.1?
By "those parts of stdlib" I meant the 4 gems listed above.
io-wait & io-nonblock have < 5 methods each. Digest and strscan APIs are very stable and ne...
Eregon (Benoit Daloze)
01:22 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Eregon (Benoit Daloze) wrote in #note-14:
> vo.x (Vit Ondruch) wrote in #note-11:
> ...
Unlikely? How about openssl in Ruby 3.1?
> , and even if they do feature checking is always better to support more Ruby versions (e.g., `respond...
vo.x (Vit Ondruch)
11:51 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
deivid (David Rodríguez) wrote in #note-15:
> Just to be clear, if in this particular case, for pragmatism, it is considered best that these dependencies should be removed, that's fine with me, but I don't think that warrants making this...
Eregon (Benoit Daloze)
11:36 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Also I recall issues with the `spring` gem that were fixed by correctly specifying their dependency on default gems like `tmpdir`. I could probably find more.
And again, I do understand the argument made that some stuff is not worth g...
deivid (David Rodríguez)
11:32 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
As an example of 1), I run into trouble with bigdecimal 1.x vs 2.x due to missing proper dependency specifications.
Just to be clear, if in this particular case, for pragmatism, it is considered best that these dependencies should be ...
deivid (David Rodríguez)
11:02 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
vo.x (Vit Ondruch) wrote in #note-11:
> 1) Not specifying dependencies prevents major changes. If there is default gem A of version 1.5.2 and there should be major update in future version of Ruby, lets say to the version 2.0.0. If some ...
Eregon (Benoit Daloze)
10:21 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
I said it in other places too but It's also my opinion that dependencies on default gems should be explicit, for the reasons stated by others. deivid (David Rodríguez)
04:24 PM Misc #18557: DevMeeting-2022-02-17
* [Feature #18568] Explore lazy RubyGems boot to reduce need for --disable-gems
* With more and more default gems, RubyGems has become a major part of Ruby's startup time.
* On CRuby, the base boot time is reduced by 80% using `--dis...
headius (Charles Nutter)
02:22 PM Revision 424374d3 (git): Fix case when gc_marks_continue does not yield slots
gc_marks_continue will start sweeping when it finishes marking. However,
if the heap we are trying to allocate into is full, then the sweeping
may not yield any free slots. If we don't call gc_sweep_continue
immediate after this, then an...
peterzhu2118 (Peter Zhu)
12:58 PM Bug #18569: RubyVM::InstructionSequence#disasm returns nil for composed functions
Don't take my word as definitive, but I'd say it's expected. `Proc#<<` return has no "source code":
```ruby
>> proc{}.source_location
=> ["(irb)", 4]
> ...
=> nil
```
Think of it as a "delegator", it has no InstructionSequence ...
byroot (Jean Boussier)
10:46 AM Bug #18569 (Rejected): RubyVM::InstructionSequence#disasm returns nil for composed functions
I was testing function composition Proc#>> (https://ruby-doc.org/core-2.6/Proc.html#method-i-3E-3E) and noticed that when disassembling composed functions it always returns nil.
``` ruby
first_proc = proc { |x| x + 2 }
puts RubyVM::...
GabrielMalakias (Gabriel Malaquias)
06:54 AM Feature #13110: Byte-based operations for String
Personally I prefer byterindex because it's a C-like name (I guess String#rindex came from rindex(3)).
However, I follow Matz's decision.
shugo (Shugo Maeda)
02:21 AM Revision 8f3a36fb (git): Fix indents [ci skip]
nobu (Nobuyoshi Nakada)

02/02/2022

11:14 PM Feature #13110: Byte-based operations for String
Eregon (Benoit Daloze) wrote in #note-21:
> I think it should be `byte_index`, `byte_rindex` and `byte_offset`.
> ...
Yes, byterindex may be hard to read.
If we choose byte_*, it may be good to introduce aliases like byte_slice for ex...
shugo (Shugo Maeda)
05:58 PM Feature #13110: Byte-based operations for String
I think it should be `byte_index`, `byte_rindex` and `byte_offset`.
I know there is `String#byteslice`/`getbyte`/`setbyte`, but `byterindex` starts to be really hard to read to the point it doesn't look like a proper Ruby method name to...
Eregon (Benoit Daloze)
07:10 AM Feature #13110 (Assigned): Byte-based operations for String
I've created a pull request which adds String#byteindex, String#byterindex, and MatchData#byteoffset:
https://github.com/ruby/ruby/pull/5518
shugo (Shugo Maeda)
11:05 PM Revision 6728f692 (git): * 2022-02-03 [ci skip]
git[bot]
11:05 PM Bug #18516: Memory leak on aliasing method to itself
ruby_3_1 42c9ef769f210d88241a114395dd5ffc27b2fb87 merged revision(s) 7ff1bf317887c0d7b21e91ad548d07b9f05c540c,e89d80702bd98a8276243a7fcaa2a158b3bfb659. naruse (Yui NARUSE)
11:04 PM Revision 42c9ef76 (git): merge revision(s) 7ff1bf317887c0d7b21e91ad548d07b9f05c540c,e89d80702bd98a8276243a7fcaa2a158b3bfb659: [Backport #18516]
An alias can suppress method redefinition warning
---
test/ruby/test_alias.rb | 11 +++++++++++
1 file changed, 11 insertions(+)
Fix memory leak at the same named alias [Bug #18516]
When aliasi...
naruse (Yui NARUSE)
10:07 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
I agree that io-wait at a minimum should not be gemified. Perhaps digest. I think this is a different argument than the overall issue you raised.
I disagree that gems made default should not listed. My main scenario is you have a...
enebo (Thomas Enebo)
09:31 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Eregon (Benoit Daloze) wrote in #note-9:
> These gems are default gems and so available by default, and for the foreseeable future they will always be shipped with Ruby, so there is no risk to not being super explicit about these depend...
vo.x (Vit Ondruch)
09:24 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
There are stdlib gems of dubious value, like io-wait or digest, but I'm not sure where to draw the line. My rule of thumb would be that if a stdlib exists as a gem, other gems that need it should explicitly depend upon it, because that's... headius (Charles Nutter)
07:33 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
These gems are default gems and so available by default, and for the foreseeable future they will always be shipped with Ruby, so there is no risk to not being super explicit about these dependencies (and most code out there using them d... Eregon (Benoit Daloze)
07:23 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
While I understand the issue, I believe the correct approach is to actually specify the dependencies and specify them always and everywhere. Yes, that will break something somewhere, but once everything is gemifie and all dependencies ar... vo.x (Vit Ondruch)
12:06 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Another issue with upstreaming code to default gems is some default gems need many internals and those should not be gems, they should be core or stdlib.
For TruffleRuby for instance, I don't want to expose many internals to support `st...
Eregon (Benoit Daloze)
11:58 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Here is a set of PR to solve the issue for JRuby and TruffleRuby for net-* gems:
https://github.com/ruby/net-protocol/pull/6
https://github.com/ruby/net-imap/pull/56
https://github.com/ruby/net-pop/pull/10
https://github.com/ruby/net...
Eregon (Benoit Daloze)
11:48 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Here is a practical example of needless dependencies on default gems causing JRuby to not be able to install e.g. `net-imap`, even though JRuby has the needed stdlibs:
https://gist.github.com/eregon/5ea86a9625fc32844c81c5f1448d02d0
Eregon (Benoit Daloze)
11:22 AM Bug #18567 (Closed): Depending on default gems in stdlib gems when not needed considered harmful
CRuby over time moves more and more code to default gems, to bundled gems and or even stops shipping some gems which used to be stdlibs (#5481).
I believe the main motivation for that is being to fix security issues without needing to m...
Eregon (Benoit Daloze)
08:10 PM Revision 7529c538 (git): [ruby/net-http] Do not set SNI hostname if connecting to IP address
RFC 6066, section 3, explicitly disallows the use of an IP address
as an SNI server name. So check if the connection is being made
to an IP address using the resolv regexps, and do not set an SNI
hostname in that case.
Recent changes t...
jeremyevans (Jeremy Evans)
07:24 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
@eregon I remember seeing code in TruffleRuby that built up an index of default gem files, so it would know which ones might need to trigger a gem load. I cannot find that now.
Could you provide some links to show how this is handled,...
headius (Charles Nutter)
07:19 PM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
Another comparison: in JRuby, RubyGems booting accounts for around 1/3 of JRuby's startup time in our "fastest" mode. Given how poor our startup time is already, we are understandably interested in ways to speed it up. headius (Charles Nutter)
07:13 PM Feature #18568 (Feedback): Explore lazy RubyGems boot to reduce need for --disable-gems
In https://bugs.ruby-lang.org/issues/17684 there was debate about whether the `--disable-gems` flag should be removed. Several folks were in favor, since Ruby without RubyGems is fairly limited, but others wanted to keep the flag for sma... headius (Charles Nutter)
06:04 PM Feature #13653: Bundled zlib helper
And for macOS: try to not mess up your system by installing random stuff in /usr/local, that's the source of many issues reported to `ruby-build`.
Using Homebrew is fine (or MacPorts), but manually installing stuff in /usr/local is aski...
Eregon (Benoit Daloze)
01:42 AM Feature #13653 (Closed): Bundled zlib helper
After 4 years, We should remove the bundled source code like zlib, libyaml, libffi.
for mswin users: use vcpkg, other platforms: use the official package manager like apt, dnf.
hsbt (Hiroshi SHIBATA)
05:21 PM Revision 3ca244a2 (git): * 2022-02-03 [ci skip]
git[bot]
05:20 PM Revision 2913a2f5 (git): Treat TS_ICVARC cache as separate from TS_IVC cache
jemmai (Jemma Issroff)
03:42 PM Feature #18368: Range#step semantics for non-Numeric ranges
"Dead-on-arrival" hyberbole aside, it does seem that using `+` semantics would allow Range#step to work "for free" with many existing classes.
More importantly, I realized there is no need to introduce any backward incompatibility: if b...
Dan0042 (Daniel DeLorme)
02:52 PM Revision 7b77d466 (git): Decouple GC slot sizes from RVALUE
Add a new macro BASE_SLOT_SIZE that determines the slot size.
For Variable Width Allocation (compiled with USE_RVARGC=1), all slot
sizes are powers-of-2 multiples of BASE_SLOT_SIZE.
For USE_RVARGC=0, BASE_SLOT_SIZE is set to sizeof(RVA...
peterzhu2118 (Peter Zhu)
02:51 PM Feature #18438: Add `Exception#additional_message` to show additional error information
My concern was that Sentry will now use #detailed_message instead of #message, but it will now include the exception class, unlike before. But if Sentry is ok with that there's no problem. Dan0042 (Daniel DeLorme)
06:23 AM Feature #18438: Add `Exception#additional_message` to show additional error information
@Dan0042 I think your last comment is a different topic. I'd like to keep one proposal as small as I can. mame (Yusuke Endoh)
01:52 PM Revision af107710 (git): Add `econv_get_encoding` function
S_H_ (Shun Hiraoka)
01:39 PM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
I agree this would make a lot of sense, also for `io-nonblock` which is also just a couple IO methods. Eregon (Benoit Daloze)
08:55 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
It makes sense to me. retro (Josef Šimánek)
08:52 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
I am happy to do the initial implementation. ioquatix (Samuel Williams)
08:17 AM Feature #18566 (Closed): Merge `io-wait` and `io-nonblock` gems into core IO
I think we should reconsider status of `io-wait`, and consider simply merging it into core's `IO`.
According to @nobu it's only a gem for "historical" reasons.
Any non trivial IO code will likely make use of it, and it's just 400 l...
byroot (Jean Boussier)
12:21 PM Revision d8c54bac (git): [ruby/net-protocol] Fix typo in gem description [ci skip]
https://github.com/ruby/net-protocol/commit/35d7b08a54 olleolleolle (Olle Jonsson)
12:17 PM Revision 94687a68 (git): [ruby/net-protocol] Drop unused gemspec directives
This gem exposes no executables.
https://github.com/ruby/net-protocol/commit/3c4def2a64
olleolleolle (Olle Jonsson)
08:53 AM Revision 7bef8ed1 (git): Update bundled gems list at 2022-02-02
git[bot]
08:32 AM Misc #18557: DevMeeting-2022-02-17
- [Feature #18498] Introduce a public `WeakKeysMap` that compares by equality (byroot)
- Ruby's current weak reference constructs are not very usable.
- The most useful weak collection that is offered by most platform is `WeakKeysMap...
byroot (Jean Boussier)
01:43 AM Misc #18557: DevMeeting-2022-02-17
* [Feature #18513] Hide patchlevel from `ruby -v`
* There is no reason to display it now.
hsbt (Hiroshi SHIBATA)
07:57 AM Revision 6794f8cf (git): Merge pull request #5482 from hsbt/rubygems-3-3-bundler-2-3
Merge RubyGems 3.3.x and Bundler 2.3.x hsbt (Hiroshi SHIBATA)
04:30 AM Revision 69463805 (git): * 2022-02-02 [ci skip]
git[bot]
04:29 AM Revision 27046210 (git): Remove "Miscellaneous checks" from CI
It is expected to use on master branch naruse (Yui NARUSE)
04:26 AM Revision ea6b6f1a (git): Update bundled gems list at d4a8c04dc7bb1c9aa48eaf50dc6b18 [ci skip]
git[bot]
04:25 AM Revision d4a8c04d (git): Update RBS (#5515)
* Bundle RBS 2.1.0 soutaro (Soutaro Matsumoto)
02:22 AM Bug #18565 (Rejected): strptime reports invalid date when string is "130AM" and format string is '%I:%M%p'
I don't think this is a bug. `strptime` is supposed to be the inverse of `strftime`:
```ruby
DateTime.now.strftime('%I%M%p')
# => "0617PM"
DateTime.now.strftime('%l%M%p')
# => " 617PM"
```
If you pass the same formats to `st...
jeremyevans0 (Jeremy Evans)
02:06 AM Bug #18565 (Rejected): strptime reports invalid date when string is "130AM" and format string is '%I:%M%p'
`DateTime.strptime("1:30PM", '%I:%M%p')` and `DateTime.strptime("1:30PM", '%l:%M%p')` both return
`#<DateTime: 2022-02-01T13:30:00+00:00 ((2459612j,48600s,0n),+0s,2299161j)>`
`DateTime.strptime("130PM", '%I%M%p')` and `DateTime.strpt...
CaryInVictoria (Cary Swoveland)
12:08 AM Revision bb845fb9 (git): * 2022-02-02 [ci skip]
git[bot]
12:08 AM Revision aff4b219 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)

02/01/2022

11:11 PM Bug #18436: Fix Pathname dot directory globbing
I noticed this change just now. We have some programs which depended on the previous behavior. It loses backward compatibility, so I think it should have been noted in NEWS.md in Ruby 3.1.0. I understand it's too late to say that, though. jnchito (Junichi Ito)
09:27 PM Bug #18560: "Compaction isn't available on this platform" error running PG test suite on ppc64le
FWIW, TruffleRuby has `Primitive.method_unimplement` specifically to achieve to achieve the same as `rb_f_notimplement` but in Ruby code.
Example usage: https://github.com/oracle/truffleruby/blob/4eddae9d18137567beb25e6e4ef2c932fa9de7ab...
Eregon (Benoit Daloze)
05:27 PM Bug #18560: "Compaction isn't available on this platform" error running PG test suite on ppc64le
Thx for the clarification. For now, I have reported the original issue to the PG upstream [1]. Keeping this open should there be a chance to follow the `fork` example.
[1] https://github.com/ged/ruby-pg/issues/423
vo.x (Vit Ondruch)
08:47 PM Misc #18557: DevMeeting-2022-02-17
- [Feature #18249] The ABI version of dev builds of CRuby does not correspond to the ABI
- ABI checking for development Ruby.
- Calculates the MD5 hash of header files during compilation of Ruby, stores this MD5 in native exten...
peterzhu2118 (Peter Zhu)
08:37 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
Hello, I’d like to summarize the motivation for this feature and the implementation I proposed.
# Motivation for this feature
At Shopify, we run Ruby head on CI daily against several services. We also run Ruby head on a small porti...
peterzhu2118 (Peter Zhu)
08:27 PM Feature #18563: Add "graphemes" and "each_grapheme" aliases
(I have added to the description an url to matz's original statement) mame (Yusuke Endoh)
07:44 PM Feature #18563 (Closed): Add "graphemes" and "each_grapheme" aliases
https://bugs.ruby-lang.org/issues/13780#note-10
> grapheme sounds like an element in the grapheme cluster. How about each_grapheme_cluster?
> ...
Languages that have added grapheme cluster support seem to be almost exclusively opting...
shan (Shannon Skipper)
07:50 PM Feature #18438: Add `Exception#additional_message` to show additional error information
I have created another ticket to summarize the final spec of this proposal: #18564. mame (Yusuke Endoh)
07:49 PM Feature #18564 (Closed): Add Exception#detailed_message
(This ticket is for recording the final spec of #18438)
## Proposal
I would introduce a method `Exception#detailed_message`, and let the default error printer use it instead of `Exception#message` to create a error output.
```
...
mame (Yusuke Endoh)
02:19 PM Feature #17873: Update of default gems in Ruby 3.1
Eregon (Benoit Daloze) wrote in #note-38:
> Note: Whenever a gem is extracted from stdlib, we should be careful the gem can be installed on older Ruby versions, otherwise it's not possible for a library to depend on this newer gem via R...
retro (Josef Šimánek)
02:17 PM Feature #17873: Update of default gems in Ruby 3.1
Note: Whenever a gem is extracted from stdlib, we should be careful the gem can be installed on older Ruby versions, otherwise it's not possible for a library to depend on this newer gem via RubyGems (and it has to, otherwise `require` f... Eregon (Benoit Daloze)
12:56 PM Bug #18443: IO read/write/wait hook bug fixes.
ruby_3_1 cd4aae430da8303dac9f1be2d1e1b7ce1bc8a458 merged revision(s) f27eb8148f5a72bbacfebfecc7de9305471bb5c9,d75f7078c831d45ab5ba2fae4fbb308d01a21e46,d5836db1b398a7936b0461b3011db66f6cc8c490. naruse (Yui NARUSE)
12:56 PM Revision cd4aae43 (git): merge revision(s) f27eb8148f5a72bbacfebfecc7de9305471bb5c9,d75f7078c831d45ab5ba2fae4fbb308d01a21e46,d5836db1b398a7936b0461b3011db66f6cc8c490: [Backport #18443]
Sync io-console gem.
---
ext/io/console/console.c | 8 ++++++--
test/io/console/test_io_console.rb | 8 ++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
[ruby/io-console] bum...
naruse (Yui NARUSE)
12:53 PM Revision 8177e3b8 (git): Revert "Fix console.c usage of `rb_io_wait`."
This reverts commit aa3b2c81c8de2e70bd100e92436f15c03523eaf7. naruse (Yui NARUSE)
12:42 PM Bug #18517: 0 << (2**40) is NoMemoryError but 0 << (2**80) is 0
ruby_3_1 1f17463dec2ab1535096cb56005a840eae4fea5b merged revision(s) 6a6227e0168b059c3ed34c9f0ace2e5dc2364221. naruse (Yui NARUSE)
12:41 PM Revision 1f17463d (git): merge revision(s) 6a6227e0168b059c3ed34c9f0ace2e5dc2364221: [Backport #18517]
Shifting zero always results in zero [Bug #18517]
---
numeric.c | 2 ++
1 file changed, 2 insertions(+)
naruse (Yui NARUSE)
12:28 PM Misc #16512: Improving `www.ruby-lang.org` reference by merging with `rubyreferences.github.io`
@hsbt I am up to the task!
There would be a few questions of what's the best way of handling it, I'll prepare the plan/list this week. Basically, there should be made a decision on the process of synchronization of the docs, and updat...
zverok (Victor Shepelev)
12:15 PM Misc #16512: Improving `www.ruby-lang.org` reference by merging with `rubyreferences.github.io`
@zverok Can you handle this? I'll support to migrate your documentation to www.ruby-lang.org or docs.ruby-lang.org. hsbt (Hiroshi SHIBATA)
11:07 AM Revision 0b2f6b94 (git): [rubygems/rubygems] Skip "seller shipped" notification after delivery
If a Shipment has been delivered, there is no point in notifying the
buyer that the seller shipped. Instead, we should simply notify the
buyer that the shipment was delivered. This is relevant in cases where
the seller is late to mark a ...
Dan Jensen
11:04 AM Revision f6894711 (git): [ruby/io-wait] Exclude rake files from packages
https://github.com/ruby/io-wait/commit/7be58cd7f4 nobu (Nobuyoshi Nakada)
05:38 AM Feature #18462: Proposal to merge WASI based WebAssembly support
mame (Yusuke Endoh) wrote in #note-4:
> Feel free to ask me if you have a question.
Wow, thanks for putting this together! I did in fact have a question, but I figure we can move the conversation somewhere else to keep this Ruby tick...
jez (Jake Zimmerman)
01:59 AM Feature #18462: Proposal to merge WASI based WebAssembly support
Hi @jez
Here you are: https://github.com/mame/emruby/
In short, please setup emsdk and then try `./configure --host wasm32-unknown-emscripten --with-static-linked-ext --with-ext=(an extension names that you want to statically link)...
mame (Yusuke Endoh)
05:11 AM Revision ddb9d60f (git): [ruby/io-wait] Make the gem a noop on Rubies older than 2.6
Ref: https://github.com/mikel/mail/pull/1439
Some gems depend on io-wait, but still support older rubies,
so they have to chose between droping support or not listing io-wait.
But io-wait could act a a noop on older rubies.
https://gi...
byroot (Jean Boussier)
04:22 AM Revision 804dca7b (git): Update default gems list at fc4fbeef28b1d243e45d7fc8d60778 [ci skip]
git[bot]
04:22 AM Revision fc4fbeef (git): [ruby/io-wait] bump up to 0.2.2
https://github.com/ruby/io-wait/commit/e15a2486b2 nobu (Nobuyoshi Nakada)
03:21 AM Revision ec906191 (git): Restore workaround for test_rubygems.rb, It still fails with chkbuild encironment
hsbt (Hiroshi SHIBATA)
01:39 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
headius (Charles Nutter) wrote in #note-25:
> Is there a way to prohibit the `to_enum` form? I don't think it will be useful to support since it may vary greatly across implementations (depending on what the stack looks like and what ge...
jeremyevans0 (Jeremy Evans)
12:45 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
Is there a way to prohibit the `to_enum` form? I don't think it will be useful to support since it may vary greatly across implementations (depending on what the stack looks like and what gets included).
It does raise a question for m...
headius (Charles Nutter)
 

Also available in: Atom