Project

General

Profile

Activity

From 03/14/2021 to 03/20/2021

03/20/2021

10:56 PM Bug #17740 (Closed): Segmentation Fault on const_get when running `srb init` (sorbet gem)
Duplicate with https://bugs.ruby-lang.org/issues/17622 hsbt (Hiroshi SHIBATA)
10:37 PM Bug #17740: Segmentation Fault on const_get when running `srb init` (sorbet gem)
Apparently it's fixed in https://github.com/ruby/ruby/pull/4175 dorianmariefr (Dorian Marié)
10:33 PM Bug #17740: Segmentation Fault on const_get when running `srb init` (sorbet gem)
It's from an ActiveAdmin gem.
Also removed Bootsnap and it didn't fix it.
dorianmariefr (Dorian Marié)
10:29 PM Bug #17740: Segmentation Fault on const_get when running `srb init` (sorbet gem)
Added a puts debugging, and I get:
```
puts "CONSTANT #{constant.inspect} CONST_GET NAME #{name.inspect}"
(other constants)
...
CONSTANT InheritedResources CONST_GET NAME "BaseHelper"
```
dorianmariefr (Dorian Marié)
10:26 PM Bug #17740 (Closed): Segmentation Fault on const_get when running `srb init` (sorbet gem)
Here is the full logs of the segfault: https://gist.github.com/dorianmariefr/c414a7c2d48671be12fbf0fe6769882b
The issue I raised on the sorbet gem: https://github.com/sorbet/sorbet/issues/4104
dorianmariefr (Dorian Marié)
09:57 PM Revision 54bfa057 (git): Add ins_methods_type_i function
S_H_ (Shun Hiraoka)
08:04 PM Bug #17739: Array#sort! changes the order even if the receiver raises FrozenError in given block
Is there a usecase for this? marcandre (Marc-Andre Lafortune)
07:37 PM Bug #17739: Array#sort! changes the order even if the receiver raises FrozenError in given block
I think the point of `#sort!` is that it sorts in-place - so not creating a copy. If we want to be able to restore the unsorted array after an exception happens half-way through sorting, we'd need to create a copy to either swap back in ... chrisseaton (Chris Seaton)
07:06 PM Bug #17739 (Closed): Array#sort! changes the order even if the receiver raises FrozenError in given block
I think this is a similar issue of https://bugs.ruby-lang.org/issues/17736
```ruby
array = [1, 2, 3, 4, 5]
begin
array.sort! do |a, b|
array.freeze if a == 3
1
end
rescue => err
p err #=> #<FrozenError: can't mod...
kachick (Kenichi Kamiya)
05:11 PM Bug #17738: Ruby can still freeze ENV
I believe so, yes. marcandre (Marc-Andre Lafortune)
09:11 AM Bug #17738 (Rejected): Ruby can still freeze ENV
After https://bugs.ruby-lang.org/issues/15920 and https://github.com/ruby/ruby/commit/f53d7e4bfd604be6f8131c5460c29f4af16da117, `ENV.freeze` raises TypeError.
But we can still freeze ENV as below.
```ruby
Kernel.instance_method(:fre...
kachick (Kenichi Kamiya)
03:23 PM Revision 2d66f8e0 (git): * 2021-03-21 [ci skip]
git[bot]
03:11 PM Revision 298edfa4 (git): Refactor hash aset callback
nobu (Nobuyoshi Nakada)
02:53 PM Revision cfadbf2f (git): Add write-barrier in tally
nobu (Nobuyoshi Nakada)
02:42 PM Revision 0b6554e6 (git): Refactor hash update callbacks
nobu (Nobuyoshi Nakada)
12:00 PM Revision 71ba0963 (git): Remove unneeded declarations
S_H_ (Shun Hiraoka)
11:55 AM Revision 178a2a1a (git): Remove unneeded declarations in bignum.c
S_H_ (Shun Hiraoka)
11:46 AM Revision 7954bb05 (git): Some Hash destructive methods ensure the receiver modifiable [Bug #17736]
refs:
* https://bugs.ruby-lang.org/issues/17736
* https://github.com/ruby/ruby/pull/4296
This commit aims to cover following methods
* Hash#select!
* Hash#filter!
* Hash#keep_if
* Hash#reject!
* Hash#delete_if
I think these are not a...
kachick (Kenichi Kamiya)
11:25 AM Revision 278522f0 (git): [ruby/irb] Don't call Ruby 2.4+'s String#pretty_print
https://github.com/ruby/irb/commit/89bcf107be k0kubun (Takashi Kokubun)
10:16 AM Bug #17736 (Closed): Destructive methods inconsistently handle `receiver frozen state` in given block
Applied in changeset commit:git|e019dd24df4ed7063ad80d4c2e4070141793f598.
----------
Ensure the receiver is modifiable before shrinking [Bug #17736]
* Ensure the receiver is modifiable before shinking [Bug #17736]
* Assert the receive...
nobu (Nobuyoshi Nakada)
07:12 AM Bug #17736 (Closed): Destructive methods inconsistently handle `receiver frozen state` in given block
When I interested around https://bugs.ruby-lang.org/issues/17735, I found following behaviors.
```ruby
array = [1, 2, 3, 42]
array.select! do
array.freeze
false
end
p array #=> []
```
```ruby
array = [1, 2, 3, 42, 2, 3]...
kachick (Kenichi Kamiya)
10:15 AM Revision e019dd24 (git): Ensure the receiver is modifiable before shrinking [Bug #17736]
* Ensure the receiver is modifiable before shinking [Bug #17736]
* Assert the receivers are not modified
nobu (Nobuyoshi Nakada)
09:07 AM Revision bf3eaf39 (git): Remove unused rb_ast_parse_array declaration
S_H_ (Shun Hiraoka)
08:52 AM Bug #17735: `Hash#transform_keys!` drops non evaluated keys
These are just a bug, not a spec.
```ruby
ruby_version_is ""..."2.5.1" do
it "partially modifies the contents if we broke from the block" do
@hash.transform_keys! do |v|
break if v == :c
v.succ
...
nobu (Nobuyoshi Nakada)
06:33 AM Bug #17735 (Closed): `Hash#transform_keys!` drops non evaluated keys
```ruby
hash = {a: 1, b: 2, c: 3}
hash.transform_values!(){ raise } rescue
p hash #=> {:a=>1, :b=>2, :c=>3}
```
```ruby
hash = {a: 1, b: 2, c: 3}
hash.transform_keys!(){ raise } rescue
p hash #=> {}
```
Is this an intention...
kachick (Kenichi Kamiya)
08:01 AM Bug #17737 (Rejected): `Array#permutation` does not immediately check the arity when no block is given
```ruby
p [].permutation(1) #=> #<Enumerator: []:permutation(1)>
p [].permutation(1, 3) #=> #<Enumerator: []:permutation(1, 3)>
p [].permutation(1, 3).to_a #=> `permutation': wrong number of arguments (given 2, expected 0..1) (Argumen...
kachick (Kenichi Kamiya)
07:41 AM Revision 16f3ebd7 (git): merge revision(s) 737da8d383e116c83fb356386322626f039deb06:
Add another missing cast
---
iseq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
07:38 AM Revision 23bb717d (git): Partially merged 79df14c04b452411b9d17e26a398e491bca1a811 to suppress compiler warning.
nagachika (Tomoyuki Chikanaga)
07:31 AM Bug #17731: Integer downflow with inject/reduce
ruby_2_7 364c8595884808315aaec9605bf2423963ed81c0 merged revision(s) a85ed626f18d1014d09fb37eb0a703976c3d2b53. nagachika (Tomoyuki Chikanaga)
07:30 AM Bug #17729: Fix infinite loop when parsing RUBYLIB with locale-invalid bytes
ruby_2_7 ec779aa56f4d6df465e721818d73d0d48fdf03f2 merged revision(s) f748b911c9157a0bb86f38280ddfba72a55049b6. nagachika (Tomoyuki Chikanaga)
07:30 AM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
ruby_2_7 6e962f02b266c3a6c47e50cf2e9ab7b1db25e515 merged revision(s) 58660e943488778563b9e41005a601e9660ce21f. nagachika (Tomoyuki Chikanaga)
07:16 AM Revision 364c8595 (git): merge revision(s) a85ed626f18d1014d09fb37eb0a703976c3d2b53: [Backport #17731]
Fix Enumerable#inject with high negative fixnums [Bug #17731]
---
enum.c | 2 +-
test/ruby/test_enum.rb | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
07:15 AM Revision ec779aa5 (git): merge revision(s) f748b911c9157a0bb86f38280ddfba72a55049b6: [Backport #17729]
Fix infinite loop at illegal sequence [Bug #17729]
As mblen returns -1 on failure, skip the first byte and try the
succeeding bytes in that case.
Close https://github.com/ruby/ruby/pull/4281
---
...
nagachika (Tomoyuki Chikanaga)
07:14 AM Revision 6e962f02 (git): merge revision(s) 58660e943488778563b9e41005a601e9660ce21f: [Backport #17519]
Skip refined method when exporting methods with changed visibility
Previously, attempting to change the visibility of a method in a
singleton class for a class/module that is prepended to and refined
would raise ...
nagachika (Tomoyuki Chikanaga)
07:08 AM Bug #17142 (Open): Ruby fails to build in AIX
I reopen this ticket since the pull request (https://github.com/ruby/ruby/pull/3717) was not merged yet. nagachika (Tomoyuki Chikanaga)
07:04 AM Revision ce02265d (git): merge revision(s) 0dc95266e8c36dbc3bfdcb88d820cb7f897166d7:
Fix the failing test with XDG_CONFIG_HOME
---
test/irb/test_init.rb | 4 ++++
1 file changed, 4 insertions(+)
nagachika (Tomoyuki Chikanaga)
06:59 AM Bug #16814: Segmentation fault in GC while running test/ruby/test_fiber.rb on s390x
ruby_2_7 755a349a3a66f5731995296fe3bb7d2b1712167f merged revision(s) 4bff8e84232594ecb9914e2a8437b7c40a63b799. nagachika (Tomoyuki Chikanaga)
06:54 AM Revision 755a349a (git): merge revision(s) 4bff8e84232594ecb9914e2a8437b7c40a63b799: [Backport #16814]
Ensure that the head of the vacancy list is correctly inserted into
the linked list.
See <https://bugs.ruby-lang.org/issues/16814> for more details.
---
cont.c | 1 +
1 file changed, 1 insertion(+)
nagachika (Tomoyuki Chikanaga)
06:52 AM Bug #17428: Method#inspect bad output for class methods
MEMO: Though there should be some preceding changesets, I gave up to find it for the time being. nagachika (Tomoyuki Chikanaga)
06:42 AM Bug #17725: Prepend breaks ability to override optimized methods
Another example:
```ruby
'' != nil
module Blah
def == other
'blah blah'
end
end
String.prepend(Blah)
p 'a' == 'b' # => false
```
It seems that `rb_vm_check_redefinition_opt_method` is not working correctly in the...
xtkoba (Tee KOBAYASHI)
06:35 AM Bug #17218: Range#step sometimes behaves unexpectedly with Rational endpoints and increment
ruby_2_7 82bce422ba9e131e62b528854dea69a6e8cc0c04 merged revision(s) 254bed302752a401b5fcc3b6c65a9c93711d91d6,fad3023e94c45e7f03478732f7641b6f39ba9d12,3156fb0f2c3ebf8229f392c8502c08fe165ab181. nagachika (Tomoyuki Chikanaga)
06:35 AM Revision 82bce422 (git): merge revision(s) 254bed302752a401b5fcc3b6c65a9c93711d91d6,fad3023e94c45e7f03478732f7641b6f39ba9d12,3156fb0f2c3ebf8229f392c8502c08fe165ab181: [Backport #17218]
Renamed `nurat_sub` compliant with `rb_rational_plus`
---
internal/rational.h | 1 +
rational.c | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
Fix ArithmeticSequence#last ...
nagachika (Tomoyuki Chikanaga)
06:02 AM Bug #17321: Having a singleton class makes cloning imperfect
ruby_2_7 82d72f14e7071218f3fd710f770d1ba31390f027 merged revision(s) ebb96fa8808317ad53a4977bff26cf755d68077e. nagachika (Tomoyuki Chikanaga)
06:02 AM Bug #17352: Backport Subsecond of Time::tm should be 0
ruby_2_7 a85982553935b81de02eb8cca9476df5d4442fd8 merged revision(s) 276f6a225d18561cbe5282b798cb4e416c66079f,95bef7b69a6fb42687a6200b338060be307259f5. nagachika (Tomoyuki Chikanaga)
06:02 AM Bug #16809: Fiber crashes with --with-coroutine=copy
ruby_2_7 d84cc717020be1da7d89b6bda02d1427f9593968 merged revision(s) 15e23312f6abcbf1afc6fbbf7917a57a0637f680. nagachika (Tomoyuki Chikanaga)
06:01 AM Revision c02f4c1c (git): merge revision(s) e0dd072978e6c2c8180e75617e7ee37830caefa3,85f99f4b715a5954124d5014002c16652995b128:
Fix errors when XDG_CONFIG_HOME points to non-writable directory
`$HOME/.config` is not writable on CI
because I think tests should not corrupt user's data.
And GitHub Actions CI sets `XDG_CONFIG_HOME`
s...
nagachika (Tomoyuki Chikanaga)
05:57 AM Revision d84cc717 (git): merge revision(s) 15e23312f6abcbf1afc6fbbf7917a57a0637f680: [Backport #16809]
Rework the order of operations to avoid stack smashing.
---
coroutine/copy/Context.c | 59 ++++++++++++++++++++++++++++++++----------------
1 file changed, 40 insertions(+), 19 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:43 AM Revision a8598255 (git): merge revision(s) 276f6a225d18561cbe5282b798cb4e416c66079f,95bef7b69a6fb42687a6200b338060be307259f5: [Backport #17352]
Don't double fractional seconds when passing timezone object to
Time.new
I found that fractional seconds were doubled when using the timezone
feature of Time in Sequel's named_timezones extension (which uses
...
nagachika (Tomoyuki Chikanaga)
05:36 AM Bug #17150: Dumping/loading an Exception object dumps core
MEMO: 369cfabd5936ccb522f8e95e0f9cc65b59ea4039 seems depend on the preceding changeset 0b81a484f3453082d28a48968a063fd907daa5b5.
0b81a484f3453082d28a48968a063fd907daa5b5 is one of the series fixes about initialization of RBasic::flags.
nagachika (Tomoyuki Chikanaga)
05:26 AM Revision 82d72f14 (git): merge revision(s) ebb96fa8808317ad53a4977bff26cf755d68077e: [Backport #17321]
Fix singleton class cloning
Before this commit, `clone` gave different results depending on whether the original object
had an attached singleton class or not.
Consider the following setup:
```
c...
nagachika (Tomoyuki Chikanaga)
05:24 AM Bug #17215: Backport for arm64 optimizations that exist for power/x86
ruby_2_7 6ef46f71c743507a0e2ae0eef14dce0539b0ff52 merged revision(s) 511b55bcefc81c036294dc9a544d14bd342acd3b. nagachika (Tomoyuki Chikanaga)
05:23 AM Revision 6ef46f71 (git): merge revision(s) 511b55bcefc81c036294dc9a544d14bd342acd3b: [Backport #17215]
Enable arm64 optimizations that exist for power/x86 (#3393)
* Enable unaligned accesses on arm64
64-bit Arm platforms support unaligned accesses.
Running the string benchmarks this change improves performance
...
nagachika (Tomoyuki Chikanaga)
04:57 AM Bug #17130: Method#super_method is broken for aliased methods
ruby_2_7 c98aa2db60f43e839d7a82897c22b5ceecbed417 merged revision(s) c60aaed1856b2b6f90de0992c34771830019e021. nagachika (Tomoyuki Chikanaga)
04:57 AM Bug #16774: Don't require sub-word atomics
ruby_2_7 ba6f0879448ebc80c7a595c369c59b6d8dfbdf3e merged revision(s) abe2e7de4d1f2d5861d7c9ab9c7e778f2ee1dcd2. nagachika (Tomoyuki Chikanaga)
04:56 AM Bug #16787: [patch] allow Dir.home to work for non-login procs when $HOME not set
ruby_2_7 ef1ed1b53afdff80cb217d77f3fbcbe7906c729e merged revision(s) c15cddd1d515c5bd8dfe8fb2725e3f723aec63b8. nagachika (Tomoyuki Chikanaga)
04:56 AM Revision ef1ed1b5 (git): merge revision(s) c15cddd1d515c5bd8dfe8fb2725e3f723aec63b8: [Backport #16787]
Allow Dir.home to work for non-login procs when $HOME not set
Allow the 'Dir.home' method to reliably locate the user's home directory when
all three of the following are true at the same time:
1. Ruby is ru...
nagachika (Tomoyuki Chikanaga)
04:50 AM Misc #17733: Add peterzhu2118 as a committer
I agree. Go ahead.
Matz.
matz (Yukihiro Matsumoto)
04:33 AM Revision ba6f0879 (git): merge revision(s) abe2e7de4d1f2d5861d7c9ab9c7e778f2ee1dcd2: [Backport #16774]
Don't require sub-word atomics
On some architectures (like RISC-V) sub-word atomics are only available
when linking against -latomic, but the configure script doesn't do that,
causing the atomic checks to fail an...
nagachika (Tomoyuki Chikanaga)
04:29 AM Revision c98aa2db (git): merge revision(s) c60aaed1856b2b6f90de0992c34771830019e021: [Backport #17130]
Fix Method#super_method for aliased methods
Previously, Method#super_method looked at the called_id to
determine the method id to use, but that isn't correct for
aliased methods, because the super target depends ...
nagachika (Tomoyuki Chikanaga)
04:19 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
ruby_2_7 30942fc4d89a04792e9eba7d3c4e5009c54e81da merged revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb. nagachika (Tomoyuki Chikanaga)
04:19 AM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
ruby_2_7 9994860dcb56697fad1799128d1493adc06b23c7 merged revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f. nagachika (Tomoyuki Chikanaga)
04:19 AM Bug #17658: DNS resolution failure with multiple named resolvers
ruby_2_7 70c3a195f39763dccdf9367d0c9b7e815431a41a merged revision(s) 9682db065158da5fa4ec8a3bc267da45b429b92c. nagachika (Tomoyuki Chikanaga)
04:18 AM Bug #12838: Duplication of UDP packets for DNS responses causing "no address" results for valid hostnames
ruby_2_7 70c3a195f39763dccdf9367d0c9b7e815431a41a merged revision(s) 9682db065158da5fa4ec8a3bc267da45b429b92c. nagachika (Tomoyuki Chikanaga)
04:18 AM Revision 70c3a195 (git): merge revision(s) 9682db065158da5fa4ec8a3bc267da45b429b92c: [Backport #12838] [Backport #17658]
Remove sender/message_id pair after response received in resolv
Once a response for a given DNS request has been received (which
requires a matching message id), the [sender, message_id] pair
should be removed fr...
nagachika (Tomoyuki Chikanaga)
04:02 AM Revision 9994860d (git): merge revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f: [Backport #17645]
Properly convert time_t [Bug #17645]
---
thread_sync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error ...
nagachika (Tomoyuki Chikanaga)
03:55 AM Bug #17488: Regression in Ruby 3: Hash#key? is non-deterministic when argument uses DelegateClass
I believe 20a8425aa0f9a947e72b06cbd3a2afe9674dd18f is not need to be backported into ruby_2_7, since the test test_any_hash_fixable passed without the patch to hash.c. nagachika (Tomoyuki Chikanaga)
03:49 AM Revision 30942fc4 (git): merge revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb: [Backport #15852]
Destroy VM-wise locks before freeing [Bug #15852]
---
thread.c | 7 -------
vm.c | 2 ++
2 files changed, 2 insertions(+), 7 deletions(-)
nagachika (Tomoyuki Chikanaga)
02:51 AM Misc #17734 (Closed): DevelopersMeeting20210416Japan
# The next dev meeting
**Date: 2021/04/16 13:00-17:00**
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210416Japan.md
- Dev meeting *IS NOT* a decision-making place. All decisions ...
mame (Yusuke Endoh)
02:12 AM Revision 2d6617d3 (git): Fix typos in rhash.h (#4292)
kachick (Kenichi Kamiya)
12:12 AM Revision 4ea9df01 (git): No longer aclocal is used [ci skip]
nobu (Nobuyoshi Nakada)

03/19/2021

11:51 PM Bug #13930 (Assigned): Exception is caught in rescue above ensure
Thanks to @wanabe's insight that this issue is related to the scope of the rescue catch entry, I came up with a pull request that avoids the issues @wanabe identified in his patch: https://github.com/ruby/ruby/pull/4291. Instead of tryi... jeremyevans0 (Jeremy Evans)
11:27 PM Feature #17730: Ruby on macOS transitively links to ~150 dylibs
The Security framework is linked only when it is available but CommonRandom is not.
It is the case that the minimum required macOS version is 10.7(Lion)..10.9(Mavericks).
I'm not sure whether other sources are available on these old ve...
nobu (Nobuyoshi Nakada)
04:42 PM Feature #17730: Ruby on macOS transitively links to ~150 dylibs
Looks like we applied the Foundation -> CoreFoundation patch.
What about the Security framework? It's the source of the worst dependencies like Metal, CoreML, etc...
(I know my patch proposal moves HEAD to macOS 10.10 or later, but th...
rickmark (Rick Mark)
07:41 AM Feature #17730 (Closed): Ruby on macOS transitively links to ~150 dylibs
Applied in changeset commit:git|dc7044eb48f475e5ac34e994e89115052574c451.
----------
Remove unneeded dependencies on macOS [Feature #17730]
Anonymous
10:36 PM Revision f9dc5db3 (git): [ruby/irb] Add all lib files automatically
https://github.com/ruby/irb/commit/ecc82336b7 k0kubun (Takashi Kokubun)
07:28 PM Misc #17733 (Closed): Add peterzhu2118 as a committer
Hi,
I'd like to recommend we add @peterzhu2118 as a committer. Peter has been helping with bugs in GC (specifically bugs we found) as well as ObjectSpace issues and improvements. I have been reviewing Peter's work and I think he wou...
tenderlovemaking (Aaron Patterson)
06:05 PM Revision 2b0e5872 (git): * 2021-03-20 [ci skip]
git[bot]
06:04 PM Revision 1c6f5ca4 (git): configure.ac: enable FORCE_FILESYSTEM for Emscripten
mame (Yusuke Endoh)
02:34 PM Revision 0428c2e7 (git): [ruby/irb] Define "measure" command without forced override
https://github.com/ruby/irb/commit/9587ba13b5 aycabta (aycabta .)
10:50 AM Bug #17732 (Closed): rb_enc_interned_str crashes if called with a not yet loaded encoding
Reported by @yahonda in https://github.com/ruby/ruby/pull/4119#issuecomment-800189841
### The bug
`rb_enc_interned_str` doesn't properly handle autoloaded encodings that are not yet loaded:
```
[BUG] Segmentation fault at 0x000...
byroot (Jean Boussier)
09:56 AM Revision 9e71f1aa (git): Include CommonCrypto/CommonCryptoError.h for old Xcode
nobu (Nobuyoshi Nakada)
06:27 AM Revision dc7044eb (git): Remove unneeded dependencies on macOS [Feature #17730]
Rick Mark
06:23 AM Revision 4ea96f1d (git): Use CommonRandom if available
nobu (Nobuyoshi Nakada)
04:40 AM Bug #17731: Integer downflow with inject/reduce
akr (Akira Tanaka) wrote in #note-5:
> nobu changed it from LONG2NUM to ULONG2NUM at
> ...
Thanks.
The other changes were for counts (always positive) and most were considered as integers. In the `inject` case, the values can be any f...
marcandre (Marc-Andre Lafortune)
04:22 AM Bug #17731 (Closed): Integer downflow with inject/reduce
Applied in changeset commit:git|a85ed626f18d1014d09fb37eb0a703976c3d2b53.
----------
Fix Enumerable#inject with high negative fixnums [Bug #17731]
Anonymous
03:38 AM Bug #17731: Integer downflow with inject/reduce
marcandre (Marc-Andre Lafortune) wrote in #note-3:
> Right, there's a `ULONG2NUM` that seem to assume the subtotal is always positive...
> ...
nobu changed it from LONG2NUM to ULONG2NUM at
https://github.com/ruby/ruby/commit/6bb70c11b...
akr (Akira Tanaka)
03:34 AM Bug #17731: Integer downflow with inject/reduce
Removing the letter 'U' fixes it...
https://github.com/ruby/ruby/pull/4288
marcandre (Marc-Andre Lafortune)
03:22 AM Bug #17731: Integer downflow with inject/reduce
Right, there's a `ULONG2NUM` that seem to assume the subtotal is always positive...
I'll make a PR for this
marcandre (Marc-Andre Lafortune)
01:05 AM Bug #17731: Integer downflow with inject/reduce
more interesting samples:
```ruby
[-2305843009213693953,-2305843009213693953,-2305843009213693953].inject(:+)
#=> 11529215046068469757
[-2305843009213693953,-2305843009213693953,-2305843009213693953].inject(&:+)
#=> -6917529027641...
Hanmac (Hans Mackowiak)
01:01 AM Bug #17731: Integer downflow with inject/reduce
Some more interesting samples:
``` ruby
3.0.0 :001 > [0,-2305843009213693953,-2305843009213693953].inject(:+)
=> 13835058055282163710
3.0.0 :002 > [-2305843009213693953,-2305843009213693953].inject(:+)
=> -4611686018427387906
3...
gaojun (Jun Gao)
12:37 AM Bug #17731 (Closed): Integer downflow with inject/reduce
Test case:
[-2305843009213693953,-2305843009213693953,-2305843009213693953].inject(:+)
or
([-2**61-1] * 3).inject(:+)
Expected Result:
-6917529027641081859
Actual Result:
11529215046068469757
Some clues:
* Downflow seems n...
gaojun (Jun Gao)
04:21 AM Revision a85ed626 (git): Fix Enumerable#inject with high negative fixnums [Bug #17731]
Marc-Andre Lafortune
03:35 AM Revision c576e63e (git): gc.c: Use dedicated APIs for conservative GC in Emscripten
Emscripten provides "emscripten_scan_stack" to get the beginning and end
pointers of the stack for conservative GC.
Also, "emscripten_scan_registers" allows the GC to mark local variables
in WASM.
mame (Yusuke Endoh)
03:32 AM Revision e79b42c9 (git): configure.ac: don't use pthread_sigmask in emscripten
mame (Yusuke Endoh)
03:30 AM Revision d97ed004 (git): configure.ac: avoid spaces in a LDFLAGS option
Seems like it confuses "make ruby" for emscripten. mame (Yusuke Endoh)

03/18/2021

11:30 PM Feature #17730: Ruby on macOS transitively links to ~150 dylibs
`-lobjc` has been intentionally linked to link startup code with Objective-C support, by the request for extension libraries written in it.
nobu (Nobuyoshi Nakada)
07:16 PM Feature #17730 (Closed): Ruby on macOS transitively links to ~150 dylibs
By using `-framework Security` and `-framework Foundation` Ruby 3 pulls in about 150 dylibs when compiled for macOS
By using CoreCrypto / CoreFoundation I was able to reduce this to ~50. This greatly reduces Ruby's surface area and d...
rickmark (Rick Mark)
10:16 PM Bug #17729 (Closed): Fix infinite loop when parsing RUBYLIB with locale-invalid bytes
Applied in changeset commit:git|f748b911c9157a0bb86f38280ddfba72a55049b6.
----------
Fix infinite loop at illegal sequence [Bug #17729]
As mblen returns -1 on failure, skip the first byte and try the
succeeding bytes in that case.
Clo...
nobu (Nobuyoshi Nakada)
11:17 AM Bug #17729 (Closed): Fix infinite loop when parsing RUBYLIB with locale-invalid bytes
https://github.com/ruby/ruby/pull/4281
> `ruby.c` sets up the interpreter `$LOAD_PATH` by parsing a path
> ...
> ```
nobu (Nobuyoshi Nakada)
10:15 PM Revision f748b911 (git): Fix infinite loop at illegal sequence [Bug #17729]
As mblen returns -1 on failure, skip the first byte and try the
succeeding bytes in that case.
Close https://github.com/ruby/ruby/pull/4281
nobu (Nobuyoshi Nakada)
10:07 PM Revision cc281bd7 (git): Remove duplicated float_arg defination
S_H_ (Shun Hiraoka)
07:47 PM Misc #17720: Cirrus CI to check non-x86_64 architecture cases by own machines
Hello there,
I'm founder of Cirrus CI and will be happy to answer any of your questions and help you in any capacity.
Cirrus persistent workers are implemented via Cirrus CLI[1] which is written in Go so we can support any target t...
fkorotkov (Fedor Korotkov)
07:03 PM Revision dae71be2 (git): * 2021-03-19 [ci skip]
git[bot]
07:03 PM Revision b9908ea6 (git): Make a few functions static
alanwu (Alan Wu)
03:33 PM Bug #17728 (Feedback): [BUG] Segmentation fault at 0x0000000000000000
The crash report doesn't provide a C-level backtrace of the crashed thread. There are quite a few external C extensions in use, any of which could possibly cause this null pointer dereference. Unfortunately, unless you can provide a re... jeremyevans0 (Jeremy Evans)
10:57 AM Bug #17728 (Closed): [BUG] Segmentation fault at 0x0000000000000000
Hi guys, getting segment fault from time to time. Sorry, don't know the exact reproducing steps. Attached crash reports.
```
Started POST "/graphql" for 127.0.0.1 at 2021-03-18 13:49:07 +0300
/Users/den/.rvm/gems/ruby-3.0.0@RestaAPI...
meliborn (Denis Denis)
02:38 PM Bug #16608: ConditionVariable#wait should return false when timeout exceeded
That looks like an error of `rbs` actually, cc @soutaro Eregon (Benoit Daloze)
12:06 AM Bug #16608: ConditionVariable#wait should return false when timeout exceeded
@matz agreed to change the return value of Mutex#sleep at the last developer meeting. However, that breaks a Mutex_m test: https://github.com/ruby/ruby/pull/4256/checks?check_run_id=2135513377#step:15:1295
So the Mutex_m test needs t...
jeremyevans0 (Jeremy Evans)
01:50 PM Bug #17623: irb starts with some local variables already defined
I think this is a nice solution: https://github.com/ruby/irb/pull/206 marcandre (Marc-Andre Lafortune)
11:35 AM Bug #16996 (Closed): Hash should avoid doing unnecessary rehash
Applied in changeset commit:git|d094c3ef046aba0bb99fd08bcbc72ff87216e736.
----------
Avoid rehashing in Hash#select/reject [Bug #16996]
Anonymous
11:34 AM Revision 0ef2923c (git): Avoid rehashing in Hash#replace/dup/initialize_copy [Bug #16996]
Marc-Andre Lafortune
11:34 AM Revision d094c3ef (git): Avoid rehashing in Hash#select/reject [Bug #16996]
Marc-Andre Lafortune
09:07 AM Revision 85f99f4b (git): Try to fix errors in TestIRB::TestHistory too
https://github.com/ruby/actions/runs/2137935523?check_suite_focus=true#step:9:562
```
1) Error:
TestIRB::TestHistory#test_history_concurrent_use:
Errno::EACCES: Permission denied @ dir_s_mkdir - /home/runner/.config/irb
/home/runne...
znz (Kazuhiro NISHIYAMA)
06:20 AM Revision e0dd0729 (git): Fix errors when XDG_CONFIG_HOME points to non-writable directory
`$HOME/.config` is not writable on CI
because I think tests should not corrupt user's data.
And GitHub Actions CI sets `XDG_CONFIG_HOME`
since `Version: 20210309.1`.
https://github.com/ruby/actions/runs/2130811016?check_suite_focus=tru...
znz (Kazuhiro NISHIYAMA)
04:35 AM Bug #17725: Prepend breaks ability to override optimized methods
FWIW,
```ruby
# bug17725-test.rb
eval <<EOS
# encoding: ascii-8bit
MY_STRING = ''
EOS
MY_STRING + ''
String.prepend(Module.new)
class String
def + other
'blah blah'
end
end
p 'a' + 'b'
```
gives
```
$ ruby...
xtkoba (Tee KOBAYASHI)

03/17/2021

11:25 PM Misc #17635 (Closed): DevelopersMeeting20210317Japan
mame (Yusuke Endoh)
08:35 PM Bug #17727 (Rejected): Unexpected syntax error when passing hash to **arg with kwarg
Ruby syntax does not allow positional arguments after keyword arguments. `a: '1'` is a keyword argument and `{b: 1}` is a positional argument (`**{b: 1}` is a keyword argument, which is why that works). So the syntax errors are expected... jeremyevans0 (Jeremy Evans)
08:14 PM Bug #17727: Unexpected syntax error when passing hash to **arg with kwarg
Typos/readability colintherobot (Colin Hart)
08:08 PM Bug #17727 (Rejected): Unexpected syntax error when passing hash to **arg with kwarg
## Background
Given a method that takes a kwarg and a **positional_arg it throws an unexpected syntax error if you pass it an intact hash. This happens when you call the method, but also when you declare the method if it is multi-line...
colintherobot (Colin Hart)
05:55 PM Revision 05ebaee8 (git): * 2021-03-18 [ci skip]
git[bot]
05:55 PM Revision 04a81493 (git): return bool instead of VALUE
tenderlovemaking (Aaron Patterson)
05:55 PM Revision 83598218 (git): Use rb_fstring for "defined" strings.
We can take advantage of fstrings to de-duplicate the defined strings.
This means we don't need to keep the list of defined strings on the VM
(or register them as mark objects)
tenderlovemaking (Aaron Patterson)
05:55 PM Revision ea817c60 (git): Refactor vm_defined to return a boolean
We just need this function to return whether or not the thing we're
looking for is defined. If it's defined, return something true,
otherwise false.
tenderlovemaking (Aaron Patterson)
05:55 PM Revision c3971bea (git): Stop calling `rb_iseq_defined_string` in vm_defined
We already have access to the string from the iseqs, so we can stop
calling this function.
tenderlovemaking (Aaron Patterson)
05:55 PM Revision 17bf478d (git): Store strings for `defined` in the iseqs
We can know the string used for "defined" calls at compile time, then
store the string in the instruction sequences
tenderlovemaking (Aaron Patterson)
02:59 PM Bug #13882 (Closed): Exception in `ensure` stops threads from exiting
jeremyevans0 (Jeremy Evans)
02:55 PM Revision 366e88e5 (git): [DOC] Update README [ci skip]
* Use `autogen.sh`.
* The subversion repository is only for old versions, and
secondary now.
* Moved long links to footnotes.
nobu (Nobuyoshi Nakada)
02:50 PM Feature #17718: a method paramaters object that can be pattern matched against
there could be a way, like `method(__method__).parameters` can return the parameters of the current method,
it is still more unclean than just use **args
Hanmac (Hans Mackowiak)
01:19 PM Feature #17718: a method paramaters object that can be pattern matched against
the parameters method returns the name in order. I know ruby doesn't do it yet, this is a feature request to add a
method like the parameters argument that could be pattern matched against.
dsisnero (Dominic Sisneros)
08:00 AM Feature #17718: a method paramaters object that can be pattern matched against
@dsisnero
this is even more problematic because ruby doesn't know which parameter should be at which position there
it may not know which param you want at which in your in comparison, especially if you mix key args with non key args...
Hanmac (Hans Mackowiak)
02:13 PM Revision 1d80d703 (git): autogen.sh: Make it work with sh (not bash)
mame (Yusuke Endoh)
12:00 PM Revision 5b54dc9a (git): Remove unused DEFAULT_KCODE
znz (Kazuhiro NISHIYAMA)
10:51 AM Revision 447feb0a (git): Improved autogen.sh
* update in the source directory
* make symbolic links instead of copies
* forward the arguments to autoreconf as-is
nobu (Nobuyoshi Nakada)
09:52 AM Revision f9e43782 (git): get rid of aclocal (#4280)
shyouhei (Shyouhei Urabe)
08:17 AM Revision 83f96642 (git): autogen.sh: Allow AUTORECONF envvar to specify the autoreconf executable
mame (Yusuke Endoh)
07:58 AM Bug #17723: autoconf 2.70+ is not working with master branch
I see no objection about autogen.sh, so I've added it. commit:4250d7c910fd67c0da07c6213901009330e3cd51 mame (Yusuke Endoh)
07:54 AM Revision 4250d7c9 (git): autogen.sh: Added
Currently it just runs "autoreconf --install" mame (Yusuke Endoh)
06:39 AM Feature #17684: Remove `--disable-gems` from release version of Ruby
At this time we just update `--help`.
The conclusion of ruby core's discussion is
* As the first step, let’s update the --help to explicitly state that --disable-gems is just for debugging
* If rubygems startup becomes so fast in futu...
naruse (Yui NARUSE)
06:37 AM Feature #17684 (Closed): Remove `--disable-gems` from release version of Ruby
Applied in changeset commit:git|d58daad37bd5fd09c7ff74be17074fc51faac8d3.
----------
[Feature #17684] Declare --disable-gems is for debugging
naruse (Yui NARUSE)
06:31 AM Feature #17684: Remove `--disable-gems` from release version of Ruby
My gut feeling is that it's miserable for people to confuse `--disable-gems` as a zero-cost speed boost option. Maybe rubygems is too slow now. shyouhei (Shyouhei Urabe)
06:36 AM Revision d58daad3 (git): [Feature #17684] Declare --disable-gems is for debugging
naruse (Yui NARUSE)
05:31 AM Bug #16908: Strange behaviour of Hash#shift when used with `default_proc`.
I don't remember why I made this behavior. Now I think `#shift` should return `nil` for an empty hash, without calling its default value, in the long run. @naruse claims the change should be postponed to `3.2` or later if we make the cha... matz (Yukihiro Matsumoto)
04:50 AM Bug #17164 (Closed): Threads can ignore kill/interrupt/abort
If the programmer intentionally ignores the interrupt, it is, by definition, intentional.
So I vote for leaving this as it is now.
Matz.
matz (Yukihiro Matsumoto)
04:38 AM Feature #15752: A dedicated module for experimental features
We consumed about this topic too long. I want this topic as pending in a year. naruse (Yui NARUSE)
01:24 AM Bug #17725: Prepend breaks ability to override optimized methods
Hmmmm?
```
$ ruby -v
ruby 3.1.0dev (2021-03-16T15:19:37Z master a47697aa44) [x86_64-darwin19]
$ ruby --enable=gems bug-17725.rb
"blah blah"
$ ruby --enable=gems bug-17725.rb 1
"ab"
$ ruby --disable=gems bug-17725.rb
"blah blah"
$ r...
nobu (Nobuyoshi Nakada)
01:15 AM Bug #17725: Prepend breaks ability to override optimized methods
nobu (Nobuyoshi Nakada) wrote in #note-4:
> Seems the redefinition flag is not set by prepend.
This is not accurate, actual method owner class needs to be checked too.
nobu (Nobuyoshi Nakada)
01:09 AM Bug #17725: Prepend breaks ability to override optimized methods
Alias is not concerned.
```ruby
# bug-17725.rb
String.prepend(Module.new) unless ARGV.empty?
class String
def + other
'blah blah'
end
end
p 'a' + 'b'
```
```sh
$ ruby bug-17725.rb
"blah blah"
$ ruby bug-177...
nobu (Nobuyoshi Nakada)
01:12 AM Feature #9459 (Closed): Net::HTTP initializes openssl library after TCP connection is established
jeremyevans0 (Jeremy Evans)
12:49 AM Revision 3260602f (git): Adjusted indents [ci skip]
nobu (Nobuyoshi Nakada)
12:42 AM Bug #17726: `respond_to_missing?` doesn't raise when called from `defined?`
I believe this is expected. `defined?` swallows exceptions in other cases, such as when a method raises an exception:
```ruby
class Foo
def bar(*args)
puts "hi"
raise
end
end
foo = Foo.new
p defined?(foo.bar.to_s)...
jeremyevans0 (Jeremy Evans)
12:18 AM Bug #17726 (Closed): `respond_to_missing?` doesn't raise when called from `defined?`
I'm not sure whether or not this is expected behavior, but if `respond_to_missing?` is called from `defined?`, it won't raise an exception.
For example:
```ruby
class Foo
def respond_to_missing?(*args)
puts "hi"
raise...
tenderlovemaking (Aaron Patterson)
12:00 AM Feature #17685: Marshal format for out of band buffer objects
The object identity in Ruby is defined by the value of `object_id`. `Object#equal?` just compares the value of `object_id`.
No more than one object has the same value of `object_id.`
Marshal cannot generate an object whose `equal?` r...
mrkn (Kenta Murata)

03/16/2021

11:52 PM Feature #17718: a method paramaters object that can be pattern matched against
def get_param(name, city: nil, state:nil, zip: nil, &error)
case parameters_match
in [String, String, String , String, Proc]
puts 'all method types matched against'
in [String, nil, String, nil,nil]
puts 'only ci...
dsisnero (Dominic Sisneros)
11:48 PM Feature #17685: Marshal format for out of band buffer objects
that is the case now. I am proposing changing Marshal to allow Marshal to load into an existing object for object identities. This is one of the things python's latest pickle format allows. They use it to marshal large numpy arrays to ... dsisnero (Dominic Sisneros)
07:49 AM Feature #17685: Marshal format for out of band buffer objects
You cannot get the original object from `Marshal.load`. This is `Marshal.load`'s nature.
`Marshal.load` always creates a new object (the different object from the original one).
`Object#equal?` compares object identities, so `b.equal?...
mrkn (Kenta Murata)
07:25 PM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
fledman (David Feldman) wrote in #note-6:
> do you plan to backport the fix to any of the supported 2.x versions?
The choice of which patches to backport is up to the branch maintainer. I've marked this for backporting, but it is the...
jeremyevans0 (Jeremy Evans)
07:12 PM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
do you plan to backport the fix to any of the supported 2.x versions? fledman (David Feldman)
07:10 PM Bug #17519 (Closed): set_visibility fails when a prepended module and a refinement both exist
Applied in changeset commit:git|58660e943488778563b9e41005a601e9660ce21f.
----------
Skip refined method when exporting methods with changed visibility
Previously, attempting to change the visibility of a method in a
singleton class fo...
jeremyevans (Jeremy Evans)
07:10 PM Revision 58660e94 (git): Skip refined method when exporting methods with changed visibility
Previously, attempting to change the visibility of a method in a
singleton class for a class/module that is prepended to and refined
would raise a NoMethodError.
Fixes [Bug #17519]
jeremyevans (Jeremy Evans)
06:47 PM Bug #17725: Prepend breaks ability to override optimized methods
One more detail.
``` ruby
module Dummy; end
class String
alias_method(:old_plus, :+)
def + other
puts 'blah blah'
old_plus(other)
end
end
String.prepend(Dummy)
class String
alias_method(:old_plus2, :+)
def + other
...
joshuadreed (Josh Reed)
06:15 PM Bug #17725: Prepend breaks ability to override optimized methods
So, I set out to test my hypothesis regarding refinements. I've never used refinements prior to this, so it's still possible there's an interaction somewhere, but at least not in the way I was thinking.
``` ruby
module Dummy; end
...
joshuadreed (Josh Reed)
05:34 PM Bug #17725: Prepend breaks ability to override optimized methods

``` ruby
module Dummy; end
class Foo
def ten
10
end
end
Foo.prepend(Dummy)
class Foo
alias_method(:old_ten, :ten)
def ten
puts 'blah blah'
old_ten
end
end
Foo.new.ten
> blah blah
...
joshuadreed (Josh Reed)
05:26 PM Bug #17725 (Closed): Prepend breaks ability to override optimized methods
Prepending any module to `String` and `Hash` (and possibly other or all classes?) blocks the ability to `alias`
As an example:
``` ruby
module Dummy; end
# String.prepend(Dummy)
class String
alias_method(:old_plus, :+)
def ...
joshuadreed (Josh Reed)
05:42 PM Revision 756e8a2c (git): test_zlib(test_path_tmpfile): fix Zlib instance leak
follow-up: commit cf831f49189c4a890da6845e39199a5dfaf4fb48 Sorah Fukumori
05:16 PM Revision cf831f49 (git): zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file
Sorah Fukumori
03:34 PM Feature #13820: Add a nil coalescing operator
This is also related to the Hash#fetch_set proposal
``` ruby
cache.fetch_set(key) { calculation }
```
https://bugs.ruby-lang.org/issues/17342
p8 (Petrik de Heus)
12:07 AM Feature #13820: Add a nil coalescing operator
Here's example code which works around the lack of a ??= operator in the wild:
https://github.com/chef/chef/blob/4d3b847aee1b917bb139862c623e9633d180fb31/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb#L43-L48
```
...
lamont (Lamont Granquist)
03:19 PM Revision a47697aa (git): LLDB: Introduce dump_page helper
This dumps out object type information for every object on a page in the
form:
bits [LM R ] T_CLASS [389]: Addr: 0x1007ebcf0 (flags: 0x100000062)
eightbitraptor (Matt V-H)
03:19 PM Revision 1dca3335 (git): LLDB: Extract a dump_bits function from rp
that dumps the heap page bitmaps for a slot eightbitraptor (Matt V-H)
03:01 PM Revision d33159a2 (git): * 2021-03-17 [ci skip]
git[bot]
02:06 PM Revision 382d3a45 (git): Improve Enumerable#tally performance
Iteration per second (i/s)
| |compare-ruby|built-ruby|
|:------|-----------:|---------:|
|tally | 52.814| 114.936|
| | -| 2.18x|
nobu (Nobuyoshi Nakada)
01:30 PM Revision e61e9bcf (git): test/openssl/test_config: skip tests for .include on older OpenSSL
The .include directive was initially added by OpenSSL 1.1.1, but the
syntax was later modified in 1.1.1b to improve compatibility with the
parser in <= 1.1.0. The test case expects 1.1.1b's parser.
https://github.com/openssl/openssl/com...
rhenium (Kazuki Yamaguchi)
01:30 PM Revision 44d67128 (git): test/openssl/test_cipher: skip AES-CCM tests on OpenSSL <= 1.1.1b
AES CCM mode in OpenSSL <= 1.1.1b was overly strict in the parameters
assignment order. This has been relaxed by OpenSSL 1.1.1c.
https://github.com/openssl/openssl/commit/b48e3be947ddc5da6b5a86db8341081c72b9a4ee
The test case is failin...
rhenium (Kazuki Yamaguchi)
12:40 PM Revision 6c7cb00c (git): test/ruby/test_regexp.rb: Avoid "ambiguity between regexp and two divisions"
mame (Yusuke Endoh)
10:58 AM Feature #17608: Compact and sum in one step
FWIW, this was confirmed as rejected by matz:
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-17608-compact-and-sum-in-one-step-sawa
Eregon (Benoit Daloze)
10:37 AM Revision 7f0b3fb9 (git): [ruby/openssl] sample: update obsolete API use
https://github.com/ruby/openssl/commit/dafa851c0d rhenium (Kazuki Yamaguchi)
10:37 AM Revision e35d3623 (git): [ruby/openssl] sample: avoid "include OpenSSL"
It is not a common practice and should not be done since it causes name
clash: for example, Digest and Random are provided by other standard
libraries of Ruby.
Fixes: https://github.com/ruby/openssl/issues/419
https://github.com/ruby/o...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision a3f97007 (git): [ruby/openssl] test: adjust test cases for LibreSSL 3.2.4
LibreSSL 3.2.4 made the certificate verification logic back closer to
pre-3.2.2 one, which is more compatible with OpenSSL.
Part of the fixes added by commit a0e98d48c91f ("Enhance TLS 1.3 support
on LibreSSL 3.2/3.3", 2020-12-03) is re...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision 1eb6d8aa (git): [ruby/openssl] bn: check -1 return from BIGNUM functions
Although the manpage says that BIGNUM functions return 0 on error,
OpenSSL versions before 1.0.2n and current LibreSSL versions may return
-1 instead.
Note that the implementation of OpenSSL::BN#mod_inverse is extracted
from BIGNUM_2c()...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision 1ad22247 (git): [ruby/openssl] Fixed the results of OpenSSL::Timestamp::Response#failure_info
Made stored values `Symbol`s instead of `ID`s.
Fixes https://bugs.ruby-lang.org/issues/17625
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
https://github.com/ruby/openssl/commit/f2d004679a
nobu (Nobuyoshi Nakada)
10:37 AM Revision e2ce3830 (git): [ruby/openssl] Enhance TLS 1.3 support on LibreSSL 3.2/3.3
This defines TLS1_3_VERSION when using LibreSSL 3.2+. LibreSSL 3.2/3.3
doesn't advertise this by default, even though it will use TLS 1.3
in both client and server modes.
Changes between LibreSSL 3.1 and 3.2/3.3 broke a few tests, Defi...
jeremyevans (Jeremy Evans)
10:16 AM Revision 4756ac00 (git): [ruby/openssl] pkey/ec: remove OpenSSL::PKey::EC::Group.new(ec_method) form
The form created an empty EC_GROUP object with the specified EC_METHOD.
However, the feature was unfinished and not useful in any way because
OpenSSL::PKey::EC::Group did not implement wrappers for necessary
functions to set actual param...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d47210b1 (git): [ruby/openssl] ssl: remove SSL::SSLContext#tmp_ecdh_callback
The underlying API SSL_CTX_set_tmp_ecdh_callback() was removed by
LibreSSL >= 2.6.1 and OpenSSL >= 1.1.0, in other words, it is not
supported by any non-EOL versions of OpenSSL.
The wrapper was initially implemented in Ruby 2.3 and has ...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 945ed408 (git): [ruby/openssl] ssl: retry write on EPROTOTYPE on macOS
Errno::EPROTOTYPE is not supposed to be raised by SSLSocket#write.
However, on macOS, send(2) which is called via SSL_write() can
occasionally return EPROTOTYPE. Retry SSL_write() so that we get a
proper error, just as ext/socket does.
...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 0b1bb1bc (git): [ruby/openssl] test/openssl/test_x509store: tidy up tests for X509::Store#add_cert
Rename the test case to test_add_cert_duplicate to clarify what it is
actually testing.
https://github.com/ruby/openssl/commit/4cc3c4110f
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d4ad1e71 (git): [ruby/openssl] test/openssl/test_x509store: break up test_verify
The test case is huge and too complex. Break it up into separate test
cases for better documentation.
https://github.com/ruby/openssl/commit/61012df03b
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c46b1f0b (git): [ruby/openssl] x509store: update rdoc for X509::Store and X509::StoreContext
Add more details about each method, and add reference to OpenSSL man
pages.
https://github.com/ruby/openssl/commit/02b6f82c73
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 62d889c8 (git): [ruby/openssl] x509store: fix memory leak in X509::StoreContext.new
The certificate passed as the second argument was not properly free'd
in the error paths.
https://github.com/ruby/openssl/commit/9561199b9f
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 871c61d5 (git): [ruby/openssl] x509store: avoid ossl_raise() calls with NULL message
Use the OpenSSL function name that caused the error to generate a better
error message.
https://github.com/ruby/openssl/commit/b31809ba3d
rhenium (Kazuki Yamaguchi)
10:16 AM Revision be3ba2ee (git): [ruby/openssl] x509store: refactor X509::StoreContext#chain
Use ossl_x509_sk2ary() to create an array of OpenSSL::X509::Certificate
from STACK_OF(X509).
https://github.com/ruby/openssl/commit/fa1da69f92
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 08c99a42 (git): [ruby/openssl] x509store: emit warning if arguments are given to X509::Store.new
Anything passed to OpenSSL::X509::Store.new was always ignored. Let's
emit an explicit warning to not confuse users.
https://github.com/ruby/openssl/commit/d173700eeb
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 88b8b3ac (git): [ruby/openssl] x509store: let X509::Store#add_file raise TypeError if nil is given
Undo special treatment of nil and simply pass the value to
StringValueCStr().
nil was never a valid argument for the method; OpenSSL::X509::StoreError
with an unhelpful error message "system lib" was raised in that case.
https://github...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 92f19f7b (git): [ruby/openssl] [DOC] Fix RDoc markup
https://github.com/ruby/openssl/commit/f36af95519 no6v (Nobuhiro IMAI)
10:16 AM Revision be1e88a2 (git): [ruby/openssl] Fix typo in documentation
The socket is called ssl_connection, not connection
https://github.com/ruby/openssl/commit/642783aeda
Claus Lensbøl
10:16 AM Revision 81325db5 (git): [ruby/openssl] ssl: initialize verify_mode and verify_hostname with default values
SSLContext's verify_mode expects an SSL_VERIFY_* constant (an integer)
and verify_hostname expects either true or false. However, they are set
to nil after calling OpenSSL::SSL::SSLContext.new, which is surprising.
Set a proper value to...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 3b43e3fa (git): [ruby/openssl] test/openssl/test_ssl: revise verify_mode test cases
Add explicit test cases for the behaviors with different verify_mode.
If we made a bug in verify_mode, we would notice it by failures of other
test cases, but there were no dedicated test cases for verify_mode.
https://github.com/ruby/o...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 57a57e6e (git): [ruby/openssl] test/openssl/test_ssl: revise a test case for client_cert_cb
The current test_client_auth_public_key test case checks that supplying
a PKey containing only public components through client_cert_cb will
cause handshake to fail. While this is a correct behavior as a whole,
the assertions are mislead...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c71afc9d (git): [ruby/openssl] Add compare? method to OpenSSL::PKey that wraps EVP_PKEY_cmp.
Explicitly check for type given some conflicting statements within openssl's
documentation around EVP_PKEY_cmp and EVP_PKEY_ASN1_METHOD(3).
Add documentation with an example for compare?
https://github.com/ruby/openssl/commit/0bf51da6e2
rinzler (Colton Jenkins)
10:16 AM Revision da6341b7 (git): [ruby/openssl] User lower case cipher names for maximum compatibility
We ran into some Linux-based systems not accepting the upper case variant
https://github.com/ruby/openssl/commit/7bc49121d5
bdewater (Bart de Water)
10:16 AM Revision 13198d49 (git): [ruby/openssl] hmac: implement base64digest methods
OpenSSL::HMAC implements the similar interface as ::Digest. Let's add
base64digest methods to OpenSSL::HMAC, too, for feature parity.
https://github.com/ruby/openssl/commit/098bcb68af
rhenium (Kazuki Yamaguchi)
10:16 AM Revision b91f62f3 (git): [ruby/openssl] hmac: migrate from the low-level HMAC API to the EVP API
Use the EVP API instead of the low-level HMAC API. Use of the HMAC API
has been discouraged and is being marked as deprecated starting from
OpenSSL 3.0.0.
The two singleton methods OpenSSL::HMAC, HMAC.digest and HMAC.hexdigest
are now i...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision baea36c9 (git): [ruby/openssl] hmac: add a test case for OpenSSL::HMAC singleton methods
https://github.com/ruby/openssl/commit/8253d7c9ce rhenium (Kazuki Yamaguchi)
10:16 AM Revision fde9f806 (git): [ruby/openssl] pkey/ec: deprecate OpenSSL::PKey::EC::Point#mul(ary, ary [, bn])
Deprecate it for future removal. However, I do not expect any
application is affected by this.
The other form of calling it, PKey::EC::Point#mul(bn [, bn]) remains
untouched.
PKey::EC::Point#mul calls EC_POINTs_mul(3) when multiple BNs...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 15863069 (git): [ruby/openssl] digest, hmac, ts, x509: use IO.binread in examples where appropriate
IO.read may mangle line separator, which will corrupt binary data
including DER-encoded X.509 certificates and such.
Fixes: https://github.com/ruby/openssl/issues/243
https://github.com/ruby/openssl/commit/93213b2730
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 9d3ffe09 (git): [ruby/openssl] pkey: reimplement PKey::DH#compute_key and PKey::EC#dh_compute_key
Use the new OpenSSL::PKey::PKey#derive instead of the raw
{EC,}DH_compute_key(), mainly to reduce amount of the C code.
https://github.com/ruby/openssl/commit/28edf6bafc
rhenium (Kazuki Yamaguchi)
10:16 AM Revision fbadb01d (git): [ruby/openssl] pkey: add PKey::PKey#derive
Add OpenSSL::PKey::PKey#derive as the wrapper for EVP_PKEY_CTX_derive().
This is useful for pkey types that we don't have dedicated classes, such
as X25519.
https://github.com/ruby/openssl/commit/28f0059bea
rhenium (Kazuki Yamaguchi)
10:16 AM Revision b2dc4880 (git): [ruby/openssl] pkey: support 'one-shot' signing and verification
OpenSSL 1.1.1 added EVP_DigestSign() and EVP_DigestVerify() functions
to the interface. Some EVP_PKEY methods such as PureEdDSA algorithms
do not support the streaming mechanism and require us to use them.
https://github.com/ruby/openss...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 5cae2896 (git): [ruby/openssl] pkey: port PKey::PKey#sign and #verify to the EVP_Digest* interface
Use EVP_DigestSign*() and EVP_DigestVerify*() interface instead of the
old EVP_Sign*() and EVP_Verify*() functions. They were added in OpenSSL
1.0.0.
Also, allow the digest to be specified as nil, as certain EVP_PKEY types
don't expect ...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 1e3590fe (git): [ruby/openssl] pkey: add PKey.generate_parameters and .generate_key
Add two methods to create a PKey using the generic EVP interface. This
is useful for the PKey types we don't have a dedicated class.
https://github.com/ruby/openssl/commit/d8e8e57de9
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d60ab953 (git): [ruby/openssl] test/openssl/test_ssl: fix flaky test case
Fix test_socket_open_with_local_address_port_context.
Often with MinGW, it seems EACCES is returned on bind when the port
number is unavailable. Ignore it just as we do for EADDRINUSE and
continue searching free port number.
Fixes: 98f...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 498c8e8f (git): [ruby/openssl] pkey: assume generic PKeys contain private components
The EVP interface cannot tell whether if a pkey contains the private
components or not. Assume it does if it does not respond to #private?.
This fixes the NoMethodError on calling #sign on a generic PKey.
https://github.com/ruby/openssl...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 1f446406 (git): [ruby/openssl] pkey: refactor #export/#to_pem and #to_der
Add ossl_pkey_export_traditional() and ossl_pkey_export_spki() helper
functions, and use them. This reduces code duplication.
https://github.com/ruby/openssl/commit/56f0d34d63
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 707e3d49 (git): [ruby/openssl] pkey: refactor DER/PEM-encoded string parsing code
Export the flow used by OpenSSL::PKey.read and let the subclasses call
it before attempting other formats.
https://github.com/ruby/openssl/commit/d963d4e276
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 10d36084 (git): [ruby/openssl] pkey: prefer PKey.read over PKey::RSA.new in docs
https://github.com/ruby/openssl/commit/cf92a3ffba rhenium (Kazuki Yamaguchi)
10:16 AM Revision efad0166 (git): [ruby/openssl] pkey: have PKey.read parse PEM-encoded DHParameter
Try PEM_read_bio_Parameters(). Only PEM format is supported at the
moment since corresponding d2i_* functions are not provided by OpenSSL.
https://github.com/ruby/openssl/commit/867e5c021b
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c157f6e7 (git): [ruby/openssl] pkey: inline {rsa,dsa,dh,ec}_instance()
Merge the code into the callers so that the wrapping Ruby object is
allocated before the raw key object is allocated. This prevents possible
memory leak on Ruby object allocation failure, and also reduces the
lines of code.
https://gith...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 27859c09 (git): [ruby/openssl] pkey: simplify ossl_pkey_new()
ossl_{rsa,dsa,dh,ec}_new() called from this function are not used
anywhere else. Inline them into pkey_new0() and reduce code
duplication.
https://github.com/ruby/openssl/commit/94aeab2f26
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 10289e9f (git): [ruby/openssl] config: replace DupConfigPtr() with GetConfig()
Now that OpenSSL::Config wraps a real CONF object, the caller can just
borrow it rather than creating a new temporary CONF object. CONF object
is usually treated as immutable.
DupConfigPtr() is now removed, and GetConfig() is exported i...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 22aeb637 (git): [ruby/openssl] config: revert to C implementation of OpenSSL::Config
Revert OpenSSL::Config to using the OpenSSL API and remove our own
parser implementation for the config file syntax.
OpenSSL::Config now wraps a CONF object. Accessor methods deal with the
object directly rather than Ruby-level internal...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 7c13d2b3 (git): [ruby/openssl] test/openssl/test_config: skip test_get_value_ENV on LibreSSL
LibreSSL has removed the feature to map environment variables onto the
"ENV" section.
https://github.com/ruby/openssl/commit/b70817faec
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 0c667846 (git): [ruby/openssl] test/openssl/test_config: fix non-deterministic test case
Sort keys of a section before comparing. The ordering is not part of the
API. This can cause a test failure if we use OpenSSL's C implementation.
Fixes: 2ad65b5f673f ("config: support .include directive", 2018-08-16)
https://github.com...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision ffc01afc (git): [ruby/openssl] test/openssl/test_config: add missing test case for Config.parse_config
https://github.com/ruby/openssl/commit/9ce2ccf36d rhenium (Kazuki Yamaguchi)
10:16 AM Revision 67f5847c (git): [ruby/openssl] config: remove deprecated methods
Remove 4 deprecated methods.
The following two methods have been marked as deprecated since 2003,
by r4531 (ruby.git commit 78ff3833fb67c8005a9b851037e74b3eea940aa3).
- OpenSSL::Config#value
- OpenSSL::Config#section
Other two metho...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 4d8bce22 (git): [ruby/openssl] Define Cipher #ccm_data_len= for CCM mode ciphers
Allow specifying just length to #update
CCM mode ciphers need to specify the total plaintext or ciphertext
length to EVP_CipherUpdate.
Update the link to the tests file
Define Cipher#ccm_data_len= for CCM mode ciphers
Add a unit test...
Spencer McIntyre
06:47 AM Revision fad3412d (git): [ruby/rdoc] Get rid of a trailing space
https://github.com/ruby/rdoc/commit/7b7b91768e nobu (Nobuyoshi Nakada)
06:47 AM Revision ff9a0088 (git): [ruby/rdoc] Suppress unused variable warning of "text"
https://github.com/ruby/rdoc/commit/3a4120b155 aycabta (aycabta .)
06:47 AM Revision 61a29a41 (git): [ruby/rdoc] Allow empty .rdoc_options
https://github.com/ruby/rdoc/commit/0c8cb25b50 aycabta (aycabta .)
06:47 AM Revision 971a0cd2 (git): [ruby/rdoc] Allow partial default values to be overridden with .rdoc_options
https://github.com/ruby/rdoc/commit/e14800891f aycabta (aycabta .)
06:47 AM Revision de8e6218 (git): [ruby/rdoc] Fixed CodeFence without blank lines
Currently a fenced code block needs a preceding blank line, it
should not be required, as:
https://github.github.com/gfm/#fenced-code-blocks
> A fenced code block may interrupt a paragraph, and does not
> ...
Just recommended:
https://do...
nobu (Nobuyoshi Nakada)
06:47 AM Revision 10b08206 (git): [ruby/rdoc] Add table style
https://github.com/ruby/rdoc/commit/2219c5ae80 nobu (Nobuyoshi Nakada)
06:47 AM Revision 3651f678 (git): [ruby/rdoc] Support GFM table
https://github.com/ruby/rdoc/commit/9dc933df16 nobu (Nobuyoshi Nakada)
06:47 AM Revision 05898c5b (git): [ruby/rdoc] Update Rdoc.css sidebar panel.
Updates css so the sidebar look like a panel instead of looking like chopped edges.
https://github.com/ruby/rdoc/commit/b0098c6d72
Pankaj Doharey
05:07 AM Revision 31b19ba8 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
02:59 AM Bug #16996: Hash should avoid doing unnecessary rehash
@knu I propose to modify it slightly in https://github.com/ruby/ruby/pull/4272 marcandre (Marc-Andre Lafortune)
02:00 AM Bug #17723: autoconf 2.70+ is not working with master branch
Regardless whether it depends on automake or not, it would be great to have `autogen.sh`. I'm used to `autoconf`, and I have never heard `autoreconf -i` until this issue. Also, I had to change RubyCI code to support the new build process... mame (Yusuke Endoh)

03/15/2021

11:50 PM Feature #13820: Add a nil coalescing operator
This would cut down on a lot of bugs dealing with lazy initialization of values where `false` is valid and needs to be remembered:
```
# hammers on the expensive determination method if it returns false
def should_dosomething?
@s...
lamont (Lamont Granquist)
11:31 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I forgot another place I use `--disable-gems`. I think RubyGems does lots of IO at startup, and IO is extremely slow on my Raspberry PI. I'm using Ruby on Raspberry PI for some IoT stuff around my house and I use `--disable-gems` in th... tenderlovemaking (Aaron Patterson)
10:23 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Another use case: Bundler's `--standalone` mode knows all gem directories and doesn't need to load either RubyGems or Bundler, which can save quite some time on application startup.
It seems a shame if it would still load RubyGems needle...
Eregon (Benoit Daloze)
05:56 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I also have a use case where I use `--disable-gems` for performance. I maintain a tool that provides some shell hooks in ruby, and any slow down in getting to a prompt is incredibly noticeable. lugray (Lisa Ugray)
05:41 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I like using `--disable-gems` for scripts that need to be fast. For example, I call `ruby` from Vim to get some information about the Ruby environment:
```
" Add stdlib of environment's ruby to path
let g:stdlib = system('ruby --dis...
tenderlovemaking (Aaron Patterson)
11:15 PM Feature #17674 (Closed): Proposal: `Method#source_location` or `Method#owner` for refined methods
jeremyevans0 (Jeremy Evans)
10:37 PM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
xtkoba (Tee KOBAYASHI) wrote in #note-3:
> The example code in #note-2 does not seem to refine `Range#cover?`. This method is defined natively in `range.c`, and so the behavior is expected (`Method#source_location` should return `nil`)....
AlexWayfer (Alexander Popov)
08:37 PM Feature #17718: a method paramaters object that can be pattern matched against
the ArgumentError can be raised manually when going to raise an Exception anyway
@nobu the problem i see there right now if rest keywords should include default param / null.
because the pattern matching above only cares about the ...
Hanmac (Hans Mackowiak)
01:28 PM Feature #17718: a method paramaters object that can be pattern matched against
Hanmac (Hans Mackowiak) wrote in #note-2:
> you want `**args`
I guess that the point is the keywords are checked, that is `get_perdiem(nation: "usa")` will raise an `ArgumentError`.
I think there was a proposal for a similar conce...
nobu (Nobuyoshi Nakada)
08:08 AM Feature #17718: a method paramaters object that can be pattern matched against
you want `**args`
```ruby
def getParam(**args)
case args
in {zip: zip}
p "zip"
in {state: s, city: c}
p "state+city"
in { state: s}
p "state"
else
raise 'need combination of zip, city, state'
end...
Hanmac (Hans Mackowiak)
04:24 PM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
Great for Github!
FWIW, both VS Code and Sublime Text get very confused by this pattern.
marcandre (Marc-Andre Lafortune)
08:10 AM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
mame (Yusuke Endoh) wrote in #note-9:
> I investigated the syntax highlighting behavior of GitHub. They does not correctly support an empty heredoc in an indent:
> ...
Wow, it looks like that GitHub fixed the issue. The code is now col...
mame (Yusuke Endoh)
04:15 PM Revision ff5ff75c (git): * 2021-03-16 [ci skip]
git[bot]
04:15 PM Revision b346935c (git): Copy only generated parser files when RDoc syncs
aycabta (aycabta .)
01:36 PM Revision 18a3bf5a (git): NEWS of [Feature #12194] [ci skip]
nobu (Nobuyoshi Nakada)
09:35 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
I think that the current behavior is the most flexible.
1. If we want to check if a constant is set as autoload (and not actually loaded), we can use `Module#autoload?`.
2. If we want to identify where a constant is set as autoload, ...
mame (Yusuke Endoh)
06:22 AM Bug #17585 (Closed): DWARF5 support?
Applied in changeset commit:git|9e5105ca451d6d38eb2d03a2ffc904074f0333b9.
----------
Support GCC's DWARF 5 [Bug #17585] (#4240)
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
mame (Yusuke Endoh)
06:22 AM Revision 9e5105ca (git): Support GCC's DWARF 5 [Bug #17585] (#4240)
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com> mame (Yusuke Endoh)
06:12 AM Feature #17610 (Closed): [PATCH] Reduce RubyVM::InstructionSequence.load_from_binary allocations
merged commit:ef88225886dd4ceecae07ddd22108ef4da542396
sorry i couldn't review.
ko1 (Koichi Sasada)
06:11 AM Feature #12194 (Closed): File.dirname optional parameter
Applied in changeset commit:git|82b6f89283042b670975f3f7986432647101984e.
----------
File.dirname optional level
* file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194]
nobu (Nobuyoshi Nakada)
06:08 AM Feature #12194: File.dirname optional parameter
Matz has already accepted this proposal at the previous meeting.
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-12194-filedirname-optional-parameter-nobu
mame (Yusuke Endoh)
06:10 AM Feature #17548: Need simple way to include symlink directories in Dir.glob
zsh uses `***` as a wildcard that expands symlinks. And matz accepted `***`. Maybe nobu will implement it.
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-17548-need-simple-way-to-include-...
mame (Yusuke Endoh)
06:09 AM Revision 82b6f892 (git): File.dirname optional level
* file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194]
nobu (Nobuyoshi Nakada)
05:25 AM Bug #16996: Hash should avoid doing unnecessary rehash
I think I can just drop the spec in test_set.rb, if it is blocking this. knu (Akinori MUSHA)
04:45 AM Bug #17723: autoconf 2.70+ is not working with master branch
I'm okay to change the official instructions to `autoreconf -i` instead of `autoconf`. But I'm not sure that `autoreconf -i` needs `automake`.
I will update the usage of `autoconf` of `ruby-build` to it after investigating the minimum...
hsbt (Hiroshi SHIBATA)
03:55 AM Bug #17723: autoconf 2.70+ is not working with master branch
nobu (Nobuyoshi Nakada) wrote in #note-4:
> `autoreconf` seems to need `automake`.
Not really. It runs `aclocal`, and that's because our `aclocal.m4` was generated using it.
https://github.com/autotools-mirror/autoconf/blob/30034...
shyouhei (Shyouhei Urabe)
03:41 AM Bug #17723: autoconf 2.70+ is not working with master branch
`autoreconf` seems to need `automake`. nobu (Nobuyoshi Nakada)
03:32 AM Bug #17723: autoconf 2.70+ is not working with master branch
I guess running `autoreconf` instead of `autoconf` fixes the situation. Test code: https://github.com/shyouhei/docker-library/blob/master/%2317723/Dockerfile shyouhei (Shyouhei Urabe)
02:44 AM Bug #17723: autoconf 2.70+ is not working with master branch
@znz I don't understand why you suddenly start talking about automake. Can't you focus on fixing the bug? shyouhei (Shyouhei Urabe)
02:31 AM Bug #17723: autoconf 2.70+ is not working with master branch
How about adding wrapper script `autogen.sh` that download required files (config.guess, ...) and run `autoconf`.
This solution does not depend automake now, and it can use automake for future when needed.
znz (Kazuhiro NISHIYAMA)
04:19 AM Bug #11335 (Closed): `ruby -r debug` catchpoint problem
I'm rewriting lib/debug.rb with TracePoint.
And I close this ticket because it is too old.
Ruby 3.1 will have better debugger by default :)
ko1 (Koichi Sasada)
02:57 AM Feature #17724: Make the pin operator support instance/class/global variables
Agreed. Ideally instance variable would be allowed, no? marcandre (Marc-Andre Lafortune)
01:40 AM Feature #17724 (Closed): Make the pin operator support instance/class/global variables
When I use pattern match with instance variables, I get an error message like "expecting local variable or method"
``` ruby
@n = 1
case 1
in ^@n
# ...
end
#=> syntax error, unexpected instance variable, expecting local variabl...
jnchito (Junichi Ito)
01:55 AM Misc #17641 (Closed): pocke should have a commit bit
:tada: mame (Yusuke Endoh)
01:20 AM Bug #16376 (Closed): Stack-buffer-overflow in renumber_by_map in regcomp.c
Applied in changeset commit:git|0846c2da457e7523819236ac7da492029b3ef73d.
----------
Check backref number buffer overrun [Bug #16376]
xtkoba (Tee KOBAYASHI)
01:18 AM Revision ba9de878 (git): * 2021-03-15 [ci skip]
git[bot]
01:17 AM Revision 0846c2da (git): Check backref number buffer overrun [Bug #16376]
xtkoba (Tee KOBAYASHI)

03/14/2021

11:45 PM Bug #17723 (Closed): autoconf 2.70+ is not working with master branch
MacPorts upgraded the version of autoconf to 2.71 recently. On macOS environment with MacPorts is broken now.
http://rubyci.s3.amazonaws.com/osx1100arm/ruby-master/log/20210314T214503Z.fail.html.gz
hsbt (Hiroshi SHIBATA)
03:00 PM Bug #17722 (Closed): define_method with shareable results in "defined in a different Ractor"
Testing against latest master, and expectinng [this](https://bugs.ruby-lang.org/issues/17159?tab=history) to already be handled, I nonetheless found a weird case, for which I managed to build a short reproduction.
```ruby
class A
...
chucke (Tiago Cardoso)
02:06 PM Bug #16376: Stack-buffer-overflow in renumber_by_map in regcomp.c
Though the example might be pathological, causing segfaults is not nice.
I wrote a patch to make `renumber_by_map` (and `renumber_node_backref`) check the size of the array `map` before accessing its element.
The behavior after the...
xtkoba (Tee KOBAYASHI)
01:37 PM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
ruby_3_0 ff2ea4daeb795ebb3d0afa8c57d86a4af9757e50 merged revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f. naruse (Yui NARUSE)
11:13 AM Bug #17645 (Closed): `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
Applied in changeset commit:git|3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f.
----------
Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error where 32-bit linux.
xtkoba (Tee KOBAYASHI)
12:30 PM Revision ff2ea4da (git): merge revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f: [Backport #17645]
Properly convert time_t [Bug #17645]
---
thread_sync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error ...
naruse (Yui NARUSE)
11:18 AM Revision 2a6bfd22 (git): Properly convert time_t [Bug #17645]
nobu (Nobuyoshi Nakada)
11:18 AM Revision 8a5a91ee (git): --dont-cuddle-else [ci skip]
nobu (Nobuyoshi Nakada)
11:10 AM Revision ce9fb9b2 (git): * 2021-03-14 [ci skip]
git[bot]
11:10 AM Revision 3ac28de5 (git): Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error where 32-bit linux. xtkoba (Tee KOBAYASHI)
 

Also available in: Atom