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
-
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
-
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. -
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"
``` -
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 -
09:57 PM Revision 54bfa057 (git): Add ins_methods_type_i function
-
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?
-
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 ...
-
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... -
05:11 PM Bug #17738: Ruby can still freeze ENV
- I believe so, yes.
-
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... - 03:23 PM Revision 2d66f8e0 (git): * 2021-03-21 [ci skip]
-
03:11 PM Revision 298edfa4 (git): Refactor hash aset callback
-
02:53 PM Revision cfadbf2f (git): Add write-barrier in tally
-
02:42 PM Revision 0b6554e6 (git): Refactor hash update callbacks
-
12:00 PM Revision 71ba0963 (git): Remove unneeded declarations
-
11:55 AM Revision 178a2a1a (git): Remove unneeded declarations in bignum.c
-
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... -
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
-
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... -
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]... -
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 -
09:07 AM Revision bf3eaf39 (git): Remove unused rb_ast_parse_array declaration
-
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
... -
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... -
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... -
07:41 AM Revision 16f3ebd7 (git): merge revision(s) 737da8d383e116c83fb356386322626f039deb06:
- Add another missing cast
---
iseq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) -
07:38 AM Revision 23bb717d (git): Partially merged 79df14c04b452411b9d17e26a398e491bca1a811 to suppress compiler warning.
-
07:31 AM Bug #17731: Integer downflow with inject/reduce
- ruby_2_7 364c8595884808315aaec9605bf2423963ed81c0 merged revision(s) a85ed626f18d1014d09fb37eb0a703976c3d2b53.
-
07:30 AM Bug #17729: Fix infinite loop when parsing RUBYLIB with locale-invalid bytes
- ruby_2_7 ec779aa56f4d6df465e721818d73d0d48fdf03f2 merged revision(s) f748b911c9157a0bb86f38280ddfba72a55049b6.
-
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.
-
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(-) -
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
---
... -
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 ... -
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.
-
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(+) -
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.
-
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(+) -
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.
-
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... -
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.
-
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 ... -
06:02 AM Bug #17321: Having a singleton class makes cloning imperfect
- ruby_2_7 82d72f14e7071218f3fd710f770d1ba31390f027 merged revision(s) ebb96fa8808317ad53a4977bff26cf755d68077e.
-
06:02 AM Bug #17352: Backport Subsecond of Time::tm should be 0
- ruby_2_7 a85982553935b81de02eb8cca9476df5d4442fd8 merged revision(s) 276f6a225d18561cbe5282b798cb4e416c66079f,95bef7b69a6fb42687a6200b338060be307259f5.
-
06:02 AM Bug #16809: Fiber crashes with --with-coroutine=copy
- ruby_2_7 d84cc717020be1da7d89b6bda02d1427f9593968 merged revision(s) 15e23312f6abcbf1afc6fbbf7917a57a0637f680.
-
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... -
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(-) -
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
... -
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. -
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... -
05:24 AM Bug #17215: Backport for arm64 optimizations that exist for power/x86
- ruby_2_7 6ef46f71c743507a0e2ae0eef14dce0539b0ff52 merged revision(s) 511b55bcefc81c036294dc9a544d14bd342acd3b.
-
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
... -
04:57 AM Bug #17130: Method#super_method is broken for aliased methods
- ruby_2_7 c98aa2db60f43e839d7a82897c22b5ceecbed417 merged revision(s) c60aaed1856b2b6f90de0992c34771830019e021.
-
04:57 AM Bug #16774: Don't require sub-word atomics
- ruby_2_7 ba6f0879448ebc80c7a595c369c59b6d8dfbdf3e merged revision(s) abe2e7de4d1f2d5861d7c9ab9c7e778f2ee1dcd2.
-
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.
-
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... -
04:50 AM Misc #17733: Add peterzhu2118 as a committer
- I agree. Go ahead.
Matz.
-
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... -
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 ... -
04:19 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
- ruby_2_7 30942fc4d89a04792e9eba7d3c4e5009c54e81da merged revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb.
-
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.
-
04:19 AM Bug #17658: DNS resolution failure with multiple named resolvers
- ruby_2_7 70c3a195f39763dccdf9367d0c9b7e815431a41a merged revision(s) 9682db065158da5fa4ec8a3bc267da45b429b92c.
-
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.
-
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... -
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 ... -
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.
-
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(-) -
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 ... -
02:12 AM Revision 2d6617d3 (git): Fix typos in rhash.h (#4292)
-
12:12 AM Revision 4ea9df01 (git): No longer aclocal is used [ci skip]
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...
-
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... -
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... -
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] -
10:36 PM Revision f9dc5db3 (git): [ruby/irb] Add all lib files automatically
- https://github.com/ruby/irb/commit/ecc82336b7
-
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... - 06:05 PM Revision 2b0e5872 (git): * 2021-03-20 [ci skip]
-
06:04 PM Revision 1c6f5ca4 (git): configure.ac: enable FORCE_FILESYSTEM for Emscripten
-
02:34 PM Revision 0428c2e7 (git): [ruby/irb] Define "measure" command without forced override
- https://github.com/ruby/irb/commit/9587ba13b5
-
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... -
09:56 AM Revision 9e71f1aa (git): Include CommonCrypto/CommonCryptoError.h for old Xcode
- 06:27 AM Revision dc7044eb (git): Remove unneeded dependencies on macOS [Feature #17730]
-
06:23 AM Revision 4ea96f1d (git): Use CommonRandom if available
-
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... -
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] -
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... -
03:34 AM Bug #17731: Integer downflow with inject/reduce
- Removing the letter 'U' fixes it...
https://github.com/ruby/ruby/pull/4288 -
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 -
01:05 AM Bug #17731: Integer downflow with inject/reduce
- more interesting samples:
```ruby
[-2305843009213693953,-2305843009213693953,-2305843009213693953].inject(:+)
#=> 11529215046068469757
[-2305843009213693953,-2305843009213693953,-2305843009213693953].inject(&:+)
#=> -6917529027641... -
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... -
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... - 04:21 AM Revision a85ed626 (git): Fix Enumerable#inject with high negative fixnums [Bug #17731]
-
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. -
03:32 AM Revision e79b42c9 (git): configure.ac: don't use pthread_sigmask in emscripten
-
03:30 AM Revision d97ed004 (git): configure.ac: avoid spaces in a LDFLAGS option
- Seems like it confuses "make ruby" for emscripten.
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.
-
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... -
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... -
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
> ...
> ``` -
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 -
10:07 PM Revision cc281bd7 (git): Remove duplicated float_arg defination
-
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... - 07:03 PM Revision dae71be2 (git): * 2021-03-19 [ci skip]
-
07:03 PM Revision b9908ea6 (git): Make a few functions static
-
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...
-
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... -
02:38 PM Bug #16608: ConditionVariable#wait should return false when timeout exceeded
- That looks like an error of `rbs` actually, cc @soutaro
-
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... -
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
-
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] - 11:34 AM Revision 0ef2923c (git): Avoid rehashing in Hash#replace/dup/initialize_copy [Bug #16996]
- 11:34 AM Revision d094c3ef (git): Avoid rehashing in Hash#select/reject [Bug #16996]
-
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... -
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... -
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...
03/17/2021
-
11:25 PM Misc #17635 (Closed): DevelopersMeeting20210317Japan
-
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...
-
08:14 PM Bug #17727: Unexpected syntax error when passing hash to **arg with kwarg
- Typos/readability
-
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... - 05:55 PM Revision 05ebaee8 (git): * 2021-03-18 [ci skip]
-
05:55 PM Revision 04a81493 (git): return bool instead of VALUE
-
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) -
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. -
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. -
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 -
02:59 PM Bug #13882 (Closed): Exception in `ensure` stops threads from exiting
-
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. -
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 -
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. -
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... -
02:13 PM Revision 1d80d703 (git): autogen.sh: Make it work with sh (not bash)
-
12:00 PM Revision 5b54dc9a (git): Remove unused DEFAULT_KCODE
-
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 -
09:52 AM Revision f9e43782 (git): get rid of aclocal (#4280)
-
08:17 AM Revision 83f96642 (git): autogen.sh: Allow AUTORECONF envvar to specify the autoreconf executable
-
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
-
07:54 AM Revision 4250d7c9 (git): autogen.sh: Added
- Currently it just runs "autoreconf --install"
-
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... -
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 -
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.
-
06:36 AM Revision d58daad3 (git): [Feature #17684] Declare --disable-gems is for debugging
-
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...
-
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.
-
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.
-
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... -
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. -
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... -
01:12 AM Feature #9459 (Closed): Net::HTTP initializes openssl library after TCP connection is established
-
12:49 AM Revision 3260602f (git): Adjusted indents [ci skip]
-
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)... -
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... -
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...
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... -
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 ...
-
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?... -
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... -
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?
-
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... -
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] -
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
... -
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
... -
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
...-
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 ... - 05:42 PM Revision 756e8a2c (git): test_zlib(test_path_tmpfile): fix Zlib instance leak
- follow-up: commit cf831f49189c4a890da6845e39199a5dfaf4fb48
- 05:16 PM Revision cf831f49 (git): zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file
-
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 -
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
```
... -
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) -
03:19 PM Revision 1dca3335 (git): LLDB: Extract a dump_bits function from rp
- that dumps the heap page bitmaps for a slot
- 03:01 PM Revision d33159a2 (git): * 2021-03-17 [ci skip]
-
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| -
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... -
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... -
12:40 PM Revision 6c7cb00c (git): test/ruby/test_regexp.rb: Avoid "ambiguity between regexp and two divisions"
-
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 -
10:37 AM Revision 7f0b3fb9 (git): [ruby/openssl] sample: update obsolete API use
- https://github.com/ruby/openssl/commit/dafa851c0d
-
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... -
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... -
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()... -
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 -
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... -
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... -
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 ... -
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.
... -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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... -
10:16 AM Revision 92f19f7b (git): [ruby/openssl] [DOC] Fix RDoc markup
- https://github.com/ruby/openssl/commit/f36af95519
- 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 -
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... -
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... -
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... -
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 -
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 -
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 -
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... -
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
-
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... -
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 -
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 -
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 -
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... -
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 ... -
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 -
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... -
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... -
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 -
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 -
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
-
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 -
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... -
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 -
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... -
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... -
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 -
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... -
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
-
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... - 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... -
06:47 AM Revision fad3412d (git): [ruby/rdoc] Get rid of a trailing space
- https://github.com/ruby/rdoc/commit/7b7b91768e
-
06:47 AM Revision ff9a0088 (git): [ruby/rdoc] Suppress unused variable warning of "text"
- https://github.com/ruby/rdoc/commit/3a4120b155
-
06:47 AM Revision 61a29a41 (git): [ruby/rdoc] Allow empty .rdoc_options
- https://github.com/ruby/rdoc/commit/0c8cb25b50
-
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
-
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... -
06:47 AM Revision 10b08206 (git): [ruby/rdoc] Add table style
- https://github.com/ruby/rdoc/commit/2219c5ae80
-
06:47 AM Revision 3651f678 (git): [ruby/rdoc] Support GFM table
- https://github.com/ruby/rdoc/commit/9dc933df16
- 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 -
05:07 AM Revision 31b19ba8 (git): Fix a link [ci skip]
-
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
-
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...
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... -
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...
-
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... -
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.
-
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... -
11:15 PM Feature #17674 (Closed): Proposal: `Method#source_location` or `Method#owner` for refined methods
-
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`).... -
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 ... -
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... -
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... -
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. -
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... - 04:15 PM Revision ff5ff75c (git): * 2021-03-16 [ci skip]
-
04:15 PM Revision b346935c (git): Copy only generated parser files when RDoc syncs
-
01:36 PM Revision 18a3bf5a (git): NEWS of [Feature #12194] [ci skip]
-
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, ... -
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> -
06:22 AM Revision 9e5105ca (git): Support GCC's DWARF 5 [Bug #17585] (#4240)
- Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
-
06:12 AM Feature #17610 (Closed): [PATCH] Reduce RubyVM::InstructionSequence.load_from_binary allocations
- merged commit:ef88225886dd4ceecae07ddd22108ef4da542396
sorry i couldn't review. -
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] -
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 -
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-... -
06:09 AM Revision 82b6f892 (git): File.dirname optional level
- * file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194] -
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.
-
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... -
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... -
03:41 AM Bug #17723: autoconf 2.70+ is not working with master branch
- `autoreconf` seems to need `automake`.
-
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
-
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?
-
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. -
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 :)
-
02:57 AM Feature #17724: Make the pin operator support instance/class/global variables
- Agreed. Ideally instance variable would be allowed, no?
-
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... -
01:55 AM Misc #17641 (Closed): pocke should have a commit bit
- :tada:
-
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] - 01:18 AM Revision ba9de878 (git): * 2021-03-15 [ci skip]
-
01:17 AM Revision 0846c2da (git): Check backref number buffer overrun [Bug #16376]
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
-
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
... -
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... -
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.
-
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. -
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 ... -
11:18 AM Revision 2a6bfd22 (git): Properly convert time_t [Bug #17645]
-
11:18 AM Revision 8a5a91ee (git): --dont-cuddle-else [ci skip]
- 11:10 AM Revision ce9fb9b2 (git): * 2021-03-14 [ci skip]
-
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.