Project

General

Profile

Activity

From 10/23/2021 to 10/29/2021

10/29/2021

09:11 PM Revision f634d1ee (git): [rubygems/rubygems] Better error when installing a git lockfile and git not present
https://github.com/rubygems/rubygems/commit/28f4842196 deivid (David Rodríguez)
08:29 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
I don't like the idea to alter the semantics of Proc methods just for Ractor though (also it costs extra checks on every Proc#call !).
The best and cleanest solution is IMHO to raise for `Ractor.make_shareable(someProc)` if the Proc `se...
Eregon (Benoit Daloze)
08:24 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
jhawthorn (John Hawthorn) wrote in #note-2:
> In Rails we use `obj.instance_exec(&proc_obj)` in a few places. One of the downsides `instance_exec` has is that it creates a singleton class for `obj`, which isn't friendly to method caches ...
Eregon (Benoit Daloze)
08:07 PM Feature #18275 (Rejected): Add an option to define_method to not capture the surrounding environment
vinistock (Vinicius Stock) wrote in #note-3:
> Indeed I haven't thought about using `Ractor.make_shareable` in the proc. But that still does not create the method in all Ractors, only inside the one where the invocation happens.
That's...
Eregon (Benoit Daloze)
01:21 PM Feature #18275: Add an option to define_method to not capture the surrounding environment
> I can't get your point.
> ...
If we create a method using `define_method`, it only exists in the Ractor that made the invocation. Trying to invoke that method from a different Ractor throws an error (something like `defined in another...
vinistock (Vinicius Stock)
09:48 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
Maybe it's orthogonal, but what if `define_method` accepted any object responding to `call`?
e.g.
```
class SomeCallback
def initialize(foo, bar)
@foo = foo
@bar = bar
end
def call
@foo.call(@bar)
en...
byroot (Jean Boussier)
09:07 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
vinistock (Vinicius Stock) wrote in #note-3:
> Indeed I haven't thought about using `Ractor.make_shareable` in the proc. But that still does not create the method in all Ractors, only inside the one where the invocation happens.
> ......
nobu (Nobuyoshi Nakada)
07:59 PM Revision a954f273 (git): Cleanup GC.auto_compact spec
* Make the supported check more obvious. Eregon (Benoit Daloze)
07:54 PM Revision 800dad62 (git): Skip GC.auto_compact= spec for platforms not supporting it
* See https://github.com/ruby/spec/pull/891 Eregon (Benoit Daloze)
06:58 PM Revision 2e14fb7d (git): Add comments about send method types (#5059)
maximecb (Maxime Chevalier-Boisvert)
05:22 PM Revision 99c60d4b (git): Get rid of exponential backtracks found by CodeQL
Since these regexps are used at build/installation, they are not
vulnerabilities.
nobu (Nobuyoshi Nakada)
04:08 PM Feature #11919: Passing a module directly
jeremyevans0 (Jeremy Evans) wrote in #note-12:
> @matz pretty much rejected `using do` as well (https://bugs.ruby-lang.org/issues/14344#note-15): `the modified syntax using do is also confusing`. So that's why I closed this (this featur...
Dan0042 (Daniel DeLorme)
02:27 PM Feature #11919: Passing a module directly
Dan0042 (Daniel DeLorme) wrote in #note-11:
> @jeremyevans0 may I ask why you closed this? Matz has not rejected this idea. He only rejected `refine X do` (#14344) because `refine` should not have such different behavior for class vs mo...
jeremyevans0 (Jeremy Evans)
01:02 PM Feature #11919: Passing a module directly
@jeremyevans0 may I ask why you closed this? Matz has not rejected this idea. He only rejected `refine X do` (#14344) because `refine` should not have such different behavior for class vs module. Although there's also `refining X do` (#1... Dan0042 (Daniel DeLorme)
03:58 PM Revision 6cee10d8 (git): * 2021-10-30 [ci skip]
git[bot]
03:58 PM Revision d7279f08 (git): make obj_free return true when it frees an object
Previously obj_free returned true when it could not free a slot because
of a finalizer, and false when it successfully frees a slot.
eightbitraptor (Matt V-H)
01:17 PM Revision ed8540eb (git): Prefer size pool heap macros over direct access
eightbitraptor (Matt V-H)
12:40 PM Revision 5e52fd4b (git): Preserve the encoding of message from outer local variable
In the case of read-only but refering an unshareable object. nobu (Nobuyoshi Nakada)
09:53 AM Revision ec2e04c9 (git): Preserve the encoding of message from outer local variables
nobu (Nobuyoshi Nakada)
09:53 AM Revision 0ad57158 (git): Remove redundant calls
The ArgumentError should raise in `isolate`. nobu (Nobuyoshi Nakada)
09:00 AM Revision 71b370f6 (git): [rubygems/rubygems] Enforce bundler platform (and default gem) to keep invalid gemspec test compatible with ruby-trunk.
https://github.com/rubygems/rubygems/commit/a77061d4e9 retro (Josef Šimánek)
09:00 AM Revision 9b7afd3c (git): [rubygems/rubygems] Update mirror_probe realword specs to not rely exactly at raised HTTP exception.
- this exception differs across Ruby versions.
https://github.com/rubygems/rubygems/commit/38c6927a5f
retro (Josef Šimánek)
09:00 AM Revision 0029e094 (git): [rubygems/rubygems] Install stringio for standalone spec.
- previously it was required already by net/http, but it is not anymore using ruby-trunk
- https://github.com/ruby/net-http/commit/996d18a43f34557cb0b2fcf41b93131d48a235f4
- https://github.com/ruby/ruby/commit/364044e0909692315bd6c2f0e1d...
retro (Josef Šimánek)
09:00 AM Revision b1791664 (git): [rubygems/rubygems] Assert NoMethodError message only partialy in downloader_spec.
- latest ruby adds error_highlight gem introducing backtrace into exception message
https://github.com/rubygems/rubygems/commit/08c70f9dd0
retro (Josef Šimánek)
09:00 AM Revision fd17ae82 (git): [rubygems/rubygems] Lock racc version in platform_spec.
- latest ruby is shipped with racc 1.6 making this spec failing
- this spec is related to platform locking, changing version should not do any harm
https://github.com/rubygems/rubygems/commit/3e18b626cb
retro (Josef Šimánek)
09:00 AM Revision 17fb785d (git): [rubygems/rubygems] Vendor tsort into rubygems
So that it loads a consistent version of the library and `rubygems` is
never affected by gem activation conflicts related to `tsort`.
Getting CI green required updating one `bundler` spec, because `tsort`
is no longer loaded by `bundle ...
Frederik Dudzik
08:32 AM Revision f45af5f0 (git): Support gemification of tsort
Co-authored-by: Frederik Dudzik <frederik.dudzik@shopify.com>
Co-authored-by: Jacques Chester <jacques.chester@shopify.com>
Frederik Dudzik
08:22 AM Revision a9be84db (git): [rubygems/rubygems] Add new default gems to setup_spec exempts.
- error_highlight was introduced at https://github.com/ruby/ruby/commit/e94604966572bb43fc887856d54aa54b8e9f7719
orriginally as error_squiggle later renamed at https://github.com/ruby/ruby/commit/9438c99590f5476a81cee8b4cf2de25084a40b4...
retro (Josef Šimánek)
08:13 AM Revision 79f90535 (git): [rubygems/rubygems] Unskip inline spec that can pass now on the latest rubies
https://github.com/rubygems/rubygems/commit/a81d4421b4 deivid (David Rodríguez)
08:13 AM Revision 2a90ad7a (git): [rubygems/rubygems] use Rubocop Lint/Debugger check rather than custom spec
We have a quality spec that check for debugger statements. Rubocop has a
cop that tests for the same thing. As such it makes sense to remove the
spec and activate the cop.
https://github.com/rubygems/rubygems/commit/dc1eb6eec5
Frederik Dudzik
02:04 AM Revision 27220b2f (git): Skip CodeQL if only document files changed [ci skip]
nobu (Nobuyoshi Nakada)
01:58 AM Revision ffd8592e (git): Update stdlib version
znz (Kazuhiro NISHIYAMA)
01:57 AM Revision c1228f83 (git): vm_core.h: Avoid unaligned access to ic_serial on 32-bit machine
This caused Bus error on 32 bit Solaris mame (Yusuke Endoh)
01:57 AM Revision 92ad520a (git): Merge macOS CIs to reduce concurrency
On GitHub Actions, the macOS runners seem much more expensive than
Ubuntu, and its limit is the most significant bottlenecks for our
CIs. As the "check" tasks usually finish 3 or 4 times faster than
"test-bundler-parallel", it will be b...
nobu (Nobuyoshi Nakada)
01:32 AM Revision 96648c50 (git): Mitigate the timeout of tests [ci skip]
* The worker timeouts seem working for test-all.
* The bundled gems have increased.
nobu (Nobuyoshi Nakada)
01:26 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
@matz you said you are positive on this feature. Can you confirm that we can merge this PR? Even we can mark it as experimental, but it would be great to start testing with 3.1 preview release.
@akr I believe we addressed your concerns ...
ioquatix (Samuel Williams)

10/28/2021

10:01 PM Revision 3e743d31 (git): Cleanup some RDoc (#5050)
Mostly adding blank line before and after code segment, to improve compliance with doc\documentation_guide.rdoc. burdettelamar (Burdette Lamar)
10:01 PM Feature #11256: anonymous block forwarding
Looks like @matz approved this, but it was never committed. I've submitted a pull request for this that is based on the patches provided by @mame and @nobu: https://github.com/ruby/ruby/pull/5051 jeremyevans0 (Jeremy Evans)
09:39 PM Revision 9b751db9 (git): Fix script_lines in loaded iseq as nil
nobu (Nobuyoshi Nakada)
08:11 PM Revision f8bbd608 (git): Enhanced RDoc for Numeric (#4994)
Treats:
#eql?
#<+>
#floor
#ceil
#round
#truncate
#step
burdettelamar (Burdette Lamar)
05:44 PM Feature #18275: Add an option to define_method to not capture the surrounding environment
Regarding the examples, they are over simplified for the sake of understanding. Sure, you wouldn't need `define_method` in those cases. I'm talking more generally when someone needs to capture a block or surrounding locals to use in `def... vinistock (Vinicius Stock)
11:27 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
In general if `define_method` takes an existing Proc, it should IMHO behave exactly like calling that Proc.
If we do anything special, every call like that to `define_method` would become very expensive as we'd need to e.g. change bytec...
Eregon (Benoit Daloze)
12:45 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
Can you tell us why you cannot define your methods using normal `def` statements? As far as I read your proposal there seems no need of `define_method` to creep in. shyouhei (Shyouhei Urabe)
05:43 PM Revision e53d07f5 (git): Rename ::YJIT to RubyVM::YJIT
Since the YJIT Ruby module is CRuby specific and not meant for general
use, it should live under RubyVM instead of at top level.
alanwu (Alan Wu)
05:40 PM Revision d8e97169 (git): [rubygems/rubygems] Only delete cached gem when it's corrupted
Rescuing all errors here might end up hiding other errors if the
deletion of the cached gem itself raises an error for some reason. Let's
be more conservative.
https://github.com/rubygems/rubygems/commit/3d80dfba08
deivid (David Rodríguez)
05:00 PM Revision cbf2078a (git): need to mark script_lines
ko1 (Koichi Sasada)
04:57 PM Revision acb2f86c (git): string.c: Add some comments about STR flags
mame (Yusuke Endoh)
04:54 PM Revision c75df796 (git): Update to ruby/spec@21a48d9
Eregon (Benoit Daloze)
03:53 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
In Rails we use `obj.instance_exec(&proc_obj)` in a few places. One of the downsides `instance_exec` has is that it creates a singleton class for `obj`, which isn't friendly to method caches or JITs. `Proc#bind_call` would be very useful... jhawthorn (John Hawthorn)
02:50 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
I'm in favor of adding this method, and would like to see it support the following:
```ruby
pr = ->(*a, **kw, &block) do
# ...
block.call(something)
end
pr.bind_call(obj, arg, kw: nil) do |something|
# ...
end
```
Thi...
jeremyevans0 (Jeremy Evans)
12:37 PM Feature #18276 (Rejected): `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
`Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
```ruby
proc_obj = proc{|params...| ...}
obj.instance_exec(params..., &proc_obj)
```
is frequent pattern.
```
$ gem-codesearch 'instance_exec.+\&' | wc -l
95...
ko1 (Koichi Sasada)
03:28 PM Revision 3bf36979 (git): * 2021-10-29 [ci skip]
git[bot]
03:22 PM Revision 0a9cbe85 (git): Skip tests if only document files changed
nobu (Nobuyoshi Nakada)
03:01 PM Feature #11919: Passing a module directly
jeremyevans0 thanks for taking up the issue, anyway. sawa (Tsuyoshi Sawada)
02:43 PM Feature #11919 (Rejected): Passing a module directly
Eregon (Benoit Daloze) wrote in #note-8:
> I guess we need to persuade matz then: https://bugs.ruby-lang.org/issues/14344#note-15 (https://bugs.ruby-lang.org/issues/16241#note-5 has some more context)
This shows why we need feature t...
jeremyevans0 (Jeremy Evans)
11:15 AM Feature #11919: Passing a module directly
I guess we need to persuade matz then: https://bugs.ruby-lang.org/issues/14344#note-15 (https://bugs.ruby-lang.org/issues/16241#note-5 has some more context) Eregon (Benoit Daloze)
11:07 AM Feature #11919: Passing a module directly
Discussed here, also: #16241
Copying my comment from there:
> I believe that is really a super-good thing. As I've written elsewhere in this tracker, the most useful case for refinements is "in the current module, I want some shortc...
zverok (Victor Shepelev)
11:02 AM Feature #11919: Passing a module directly
I'm rather neutral about this.
On one hand, I think `using Module.new {` is clearer that there is a module involved and might avoid some confusion when learning about refinements,
OTOH it seems a fairly harmless shorthand which doesn't...
Eregon (Benoit Daloze)
02:33 PM Feature #12533: Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
chucke (Tiago Cardoso) wrote in #note-12:
> Thx for the reply. Is import_methods a new ruby 3.1 feature?
Yes. See commit:6606597109bdb535a150606323ce3d8f5750e1f6
jeremyevans0 (Jeremy Evans)
10:47 AM Feature #12533: Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
Thx for the reply. Is import_methods a new ruby 3.1 feature? chucke (Tiago Cardoso)
01:51 PM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
After some discussion with @ko1, it seems there are different cases.
Sharing `self` is the only way to preserve the Proc's context correctly, i.e., method calls, @ivar, etc still work in the Proc
I think raising if `self` is not shareab...
Eregon (Benoit Daloze)
11:39 AM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
Sorry, I missed to paste some part of the snippet, fixed now. Eregon (Benoit Daloze)
11:36 AM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
Relevant related discussion: https://bugs.ruby-lang.org/issues/18137#note-2 Eregon (Benoit Daloze)
12:10 PM Feature #18273: Class#subclasses
I took a stab at it: https://github.com/ruby/ruby/pull/5045 byroot (Jean Boussier)
11:31 AM Feature #18273: Class#subclasses
+1 for Class#subclasses, I think it makes sense since we have Class#descendants.
`Class#subclasses` is then also the "complement" of `Class#superclass`,
just like `Class#descendants` is the complement of `Class#ancestors`.
Eregon (Benoit Daloze)
11:22 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
IMHO it'd be good to rediscuss this at a dev meeting.
It seems most people agree that `Method#visibility` would be better and more convenient (also @samuel on the PR).
Potential for confusion seems extremely low (to me).
Eregon (Benoit Daloze)
04:42 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
jeremyevans0 (Jeremy Evans) wrote in #note-15:
> I've submitted a pull request that implements @matz's idea of `public?`, `private?`, and `protected?`: https://github.com/ruby/ruby/pull/5040
I see that there is still a comment in the pu...
sawa (Tsuyoshi Sawada)
11:11 AM Feature #12495: Make "private" return the arguments again, for chaining
:+1:
Note there is some inconsistency with e.g. `attr_reader` always returning an array (#6470):
```ruby
class F
attr_reader :a # => [:a]
end
```
But I think it does not matter too much.
`private` also accepts a single Arra...
Eregon (Benoit Daloze)
07:45 AM Feature #12495: Make "private" return the arguments again, for chaining
I stumbled several times upon this issue. The semantics as described above are OK, IMHO. It would be nice if the patch could be merged. larskanis (Lars Kanis)
09:21 AM Revision d51ba1e1 (git): Add changes Enumerable#each_cons and each_slice in NEWS [ci skip]
osyo (manga osyo)
08:42 AM Revision e76e1d3c (git): Downloader: retry when RFC 2616 noncompliant dates [ci skip]
zlib.net rarely returns the current time in RFC 2616 noncompliant
format in the response header, and the checksum does not match in
that case (maybe creating the tarball on the fly?).
nobu (Nobuyoshi Nakada)
05:45 AM Bug #18274 (Closed): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
Applied in changeset commit:git|1d666ed50f8b4b3779583381882a0b3edd3cff0e.
----------
Fix leap day with UTC offset [Bug #18274]
`struct vtm::year` is a Ruby integer instance, but not a C integer
type.
nobu (Nobuyoshi Nakada)
05:45 AM Revision 1d666ed5 (git): Fix leap day with UTC offset [Bug #18274]
`struct vtm::year` is a Ruby integer instance, but not a C integer
type.
nobu (Nobuyoshi Nakada)
05:31 AM Revision 77544caa (git): add `make runirb` rule
it's start irb on built ruby (not installed ruby). ko1 (Koichi Sasada)
04:45 AM Revision efcf18f1 (git): Update TypeProf to 0.20.2
mame (Yusuke Endoh)
04:14 AM Revision 179aa26f (git): Prune stale worktrees before checking out a new pull request [ci skip]
nobu (Nobuyoshi Nakada)
12:22 AM Revision d8444593 (git): Fix a warning
```
../gc.c:2342:45: warning: comparison of integers of different signs: 'short' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
GC_ASSERT(size_pools[pool_id].slot_size == slot_size);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^...
znz (Kazuhiro NISHIYAMA)
12:13 AM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
+1 to replace unsafe use of SHA-1, if any, to something more secure. That shall be a good thing.
-1 for its removal.
shyouhei (Shyouhei Urabe)
12:07 AM Revision da22e43c (git): Fix a warning
```
../gc.c:2342:25: warning: array subscript is of type 'char' [-Wchar-subscripts]
GC_ASSERT(size_pools[pool_id].slot_size == slot_size);
^~~~~~~~
```
znz (Kazuhiro NISHIYAMA)

10/27/2021

11:58 PM Revision b74bf8dd (git): Follow up the RString change [ci skip]
Since 46b66eb9e8e6de2d5750591e532310e8f8599d90, already `ary` has
been enclosed in `embed`.
nobu (Nobuyoshi Nakada)
11:35 PM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
I've submitted a pull request that implements @matz's idea of `public?`, `private?`, and `protected?`: https://github.com/ruby/ruby/pull/5040 jeremyevans0 (Jeremy Evans)
11:16 PM Feature #11919: Passing a module directly
I think this feature would be useful, and submitted a pull request to implement it: https://github.com/ruby/ruby/pull/5039 jeremyevans0 (Jeremy Evans)
10:50 PM Feature #17380 (Closed): Useful `include/prepend` in `refine`
jeremyevans0 (Jeremy Evans)
08:09 PM Feature #11782 (Closed): String#+@ and String#-@
jeremyevans0 (Jeremy Evans)
07:42 PM Feature #12495 (Open): Make "private" return the arguments again, for chaining
I think it makes sense to modify private/protected/public/module_function to be like `def` and return the receiver. I've submitted a pull request for this that builds on @herwinw's patch: https://github.com/ruby/ruby/pull/5037 jeremyevans0 (Jeremy Evans)
07:40 PM Bug #18274 (Assigned): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
This appears to be caused by commit:bf789af28a3b7108186743f3cb4fd2f649afdd20. Reverting the commit fixes the issue. Assigning to @nobu to determine whether he wants to revert or try to debug. jeremyevans0 (Jeremy Evans)
07:05 PM Bug #18274 (Closed): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
With 3.1.0dev revision 30942c19c0, `Time.new` can initialize the date incorrectly on the day following a leap day. The year 2000 is a leap year. 2000-03-01 00:00:00 +01:00 is considered to be 2000-02-29 00:00:00 +0100:
``` ruby
Time....
philross (Phil Ross)
07:27 PM Feature #18275 (Assigned): Add an option to define_method to not capture the surrounding environment
Invoking `define_method` will capture the surrounding environment, making sure we have access to anything defined in that surrounding scope. However, that’s not always necessary. There are uses for `define_method` where the surrounding e... vinistock (Vinicius Stock)
06:05 PM Bug #16936: `make test-all TESTS="-n !/Foo#method/"` not skipping the test case
Setting the backport flag, because it is useful to disable some test cases in Fedora package, if needed (and it will be included there soonish). But it is not super important. So feel free to ignore this backport request. Thx vo.x (Vit Ondruch)
10:56 AM Bug #16936 (Closed): `make test-all TESTS="-n !/Foo#method/"` not skipping the test case
Applied in changeset commit:git|5086c25f6015558877f85c3f1c014780b08fd3ce.
----------
Properly exclude test cases.
Lets consider the following scenario:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite
OpenS...
Anonymous
05:00 PM Revision 30942c19 (git): * 2021-10-28 [ci skip]
git[bot]
05:00 PM Revision fdbae385 (git): YJIT: move --yjit-stats at_exit call into Ruby
This change fixes `-v --yjit-stats`. Previously in this situation,
YJIT._print_stats wasn't defined as yjit.rb is not evaluated when there
is only "-v" and no Ruby code to run.
alanwu (Alan Wu)
05:00 PM Revision 6875d6d1 (git): Expect multi-line -v output for -DRUBY_DEVEL in tests
On -DRUBY_DEVEL builds, `ruby -v` can print extra info about the last
commit on a separate line, breaking some tests that expect a single
line. Assert only the first line instead.
alanwu (Alan Wu)
05:00 PM Revision 0d9913e5 (git): Fix indentation in test
alanwu (Alan Wu)
04:52 PM Feature #12533 (Closed): Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
`Refinement#include` has been deprecated. `Refinement#import_methods` can now be used to handle this use case:
```ruby
module Extensions
def vegetables ; potatoe ; end
def potatoe ; "potatoe" ; end
end
module Refinary
re...
jeremyevans0 (Jeremy Evans)
04:47 PM Feature #12929 (Rejected): ternary should look ahead w/in a block (and not care about newlines)
jeremyevans0 (Jeremy Evans)
04:45 PM Feature #12971 (Closed): (Refactoring) Remove `defined?` checks from observer.rb
jeremyevans0 (Jeremy Evans)
04:33 PM Bug #18268 (Closed): Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
jeremyevans0 (Jeremy Evans)
04:31 PM Bug #18271 (Closed): Regexp inconsistency (repeatable)
jeremyevans0 (Jeremy Evans)
12:52 PM Bug #18271: Regexp inconsistency (repeatable)
`$1` is global variable, `"#{$1}"` is evaluated BEFORE the method call, making a string "whatever was in `$1` at that moment":
```ruby
st = 'A. C. Cobble'
'foobar' =~ /f(.{2})/ # unrelated regex call, sets $1 to "oo"
st.gsub(/. (...
zverok (Victor Shepelev)
11:45 AM Bug #18271 (Closed): Regexp inconsistency (repeatable)
han:~/au> irb >> st = 'A. C. Cobble'
=> "A. C. Cobb...
hanHoll (Han Holl)
03:09 PM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
We still support `digest/md5` and `digest/rmd160`, and I doubt those are more secure than SHA-1. If the operating system OpenSSL doesn't include support for old digests, then Ruby's openssl extension will not either (though the digest e... jeremyevans0 (Jeremy Evans)
01:06 PM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
AFAIK SHA-1 is used in Bundler/RubyGems only to hash filepath for gem clones and could be replaced in the future. It was recently vendored in bundler and could be vendored into RubyGems as well.
It can be changed to different hashing ...
retro (Josef Šimánek)
12:00 PM Feature #18272 (Third Party's Issue): Please replace unsafe SHA1 with another digest algorithm
## Context
When working on a new version of RHEL (with Ruby 3.0), the requirement is to have a better security (remove unsafe digests or limit the use for non-security purposes). This would be achieved with using OpenSSL 3.0 as well, wh...
pvalena (Pavel Valena)
02:57 PM Revision 367884c6 (git): Fix yjit_asm_tests.c as C99 compliant (#5033)
* rb_bug should be variadic
* Prefer ANSI-style prototypes over old K&R-style definitions
* Add missing argument types
nobu (Nobuyoshi Nakada)
02:55 PM Revision a6104b39 (git): YJIT: Support newhash with values (#5029)
* YJIT: Implement newhash with values
* YJIT: Add test of duphash
* Fix compilation on macos/clang
jhawthorn (John Hawthorn)
02:31 PM Feature #16252: Hash#partition should return hashes
FWIW, current usage in gems is consistent with Hash, but I did find one incompatibility in fugit-1.3.3.
actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb
267: constraints.partition do |key, requirement|
subarrays then ...
Dan0042 (Daniel DeLorme)
02:07 PM Feature #16252: Hash#partition should return hashes
I think it's ok that we don't have some particular rules for Enumerables to return their own class. Rather than consistently follow a decision, I think it's good to evaluate each case on its own merits. That said, I can certainly imagine... Dan0042 (Daniel DeLorme)
07:03 AM Feature #16252: Hash#partition should return hashes
I am afraid we don't have some particular rules for Enumerables to return their own class:
```ruby
Set[*1..8].select(&:odd?)
# => [1, 3, 5, 7] -- not a Set
```
Making `Hash#select` and `#reject` return hashes was an ad-hoc decision ...
zverok (Victor Shepelev)
01:27 PM Feature #18273 (Closed): Class#subclasses
Ref: https://github.com/rails/rails/pull/43481
Something we forgot to mention in [Feature #14394], is either a parameter or another method to only get direct descendants.
Active Support has been offering `Class.subclasses` as:
`...
byroot (Jean Boussier)
11:02 AM Feature #17351: Deprecate Random::DEFAULT
Just realized, another way to write that roll method (without deprecation) is:
```ruby
def roll rnd = Random
rnd.rand(6)+1
end
```
I also noticed deprecated constants are no longer warned by default as they depend on `Warning[:...
Eregon (Benoit Daloze)
10:56 AM Revision 5086c25f (git): Properly exclude test cases.
Lets consider the following scenario:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite
OpenSSL::TestEC
=> OpenSSL::TestEC
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):002:0> p all_test_methods
[...
Vít Ondruch
07:55 AM Revision 9fc2f537 (git): Sort URLs by issue numbers [ci skip]
znz (Kazuhiro NISHIYAMA)
07:30 AM Feature #18137: A new method to check Proc is isolated or not
I'm afraid that we can define "Isolated Proc".
As I know there are several versions.
1) self
a: self is shareable
b: self is not shareable
2) reference to outer scope variables
x: no references
y: has references, but read-on...
ko1 (Koichi Sasada)
07:15 AM Feature #18137: A new method to check Proc is isolated or not
`Ractor.shareable?(proc_object)` is not enough? ko1 (Koichi Sasada)
07:28 AM Revision 5ff47e0c (git): Check old-style definitions
nobu (Nobuyoshi Nakada)
07:22 AM Revision 219f5415 (git): Update stdlib versions
znz (Kazuhiro NISHIYAMA)
07:13 AM Revision 489e5e3a (git): the core problem is the Proc is not shareable
tagomoris (Satoshi Tagomori)
06:44 AM Revision 9541b3b7 (git): random.c: simplify Random object deallocation
This is a follow-up for commit 265c0022390e ("Do not allocate
ractor-local storage in dfree function during GC", 2021-02-09).
The comparison with the default rb_random_mt_t is useless in the first
place, since it is never equal: no actu...
rhenium (Kazuki Yamaguchi)
05:47 AM Revision ed5f8eaf (git): [rubygems/rubygems] Don't warn when a lockfile is locked to a dev version
Even if it's newer than the running versions. Dev versions are not
released to rubygems.org, so the warning message suggests a command that
doesn't work. And dev versions are currently non deterministic
(2.3.0.dev can be many different v...
deivid (David Rodríguez)
02:29 AM Revision 4c32fcb8 (git): [ruby/error_highlight] Make the formatter mechanism support Ractor
Now the formatter configuration is per Ractor. DefaultFormatter is used
if not set.
DefaultFormatter#message_for is now a class method to allow sub-Ractors
to call the method.
https://github.com/ruby/error_highlight/commit/9fbaa8ab7c
mame (Yusuke Endoh)
01:16 AM Revision 33844f30 (git): Prefer ANSI-style prototypes over old K&R-style definitions
nobu (Nobuyoshi Nakada)

10/26/2021

08:27 PM Feature #18254 (Closed): Add an `offset` parameter to String#unpack and String#unpack1
Applied in changeset commit:git|e5319dc9856298f38aa9cdc6ed55e39ad0e8e070.
----------
pack.c: add an offset argument to unpack and unpack1
[Feature #18254]
This is useful to avoid repeteadly copying strings when parsing binary formats
byroot (Jean Boussier)
08:27 PM Revision e5319dc9 (git): pack.c: add an offset argument to unpack and unpack1
[Feature #18254]
This is useful to avoid repeteadly copying strings when parsing binary formats
byroot (Jean Boussier)
07:35 PM Feature #14394 (Closed): Class.descendants
Applied in changeset commit:git|717ab0bb2ee63dfe76076e0c9f91fbac3a0de4fd.
----------
Add Class#descendants
Doesn't include receiver or singleton classes.
Implements [Feature #14394]
Co-authored-by: fatkodima <fatkodima123@gmail.com>
...
jeremyevans (Jeremy Evans)
07:35 PM Bug #18264 (Closed): TracePoint leaks memory
Applied in changeset commit:git|a4d5ee4f31bf3ff36c1a8c8fe3cda16aa1016b12.
----------
[Bug #18264] Fix memory leak in TracePoint
TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with...
peterzhu2118 (Peter Zhu)
05:21 AM Bug #18264: TracePoint leaks memory
Good catch.
~~An empty function was replaced with `RUBY_TYPED_NEVER_FREE` at commit:5c1b9b38d69d, but an empty free function means that the instance has nothing others to free, and it should equal `RUBY_TYPED_DEFAULT_FREE`.~~
nobu (Nobuyoshi Nakada)
07:35 PM Revision 717ab0bb (git): Add Class#descendants
Doesn't include receiver or singleton classes.
Implements [Feature #14394]
Co-authored-by: fatkodima <fatkodima123@gmail.com>
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
jeremyevans (Jeremy Evans)
07:29 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
I think this is a useful feature. I submitted a pull request to implement `caller`/`caller_locations` yielding to a passed block: https://github.com/ruby/ruby/pull/5031 jeremyevans0 (Jeremy Evans)
07:12 PM Feature #12737: Module#defined_refinements
Should the code in the description be `p M.defined_refinements`?
I'm not sure to understand the use case, isn't `using M` doing the same as that `for`?
Eregon (Benoit Daloze)
02:21 AM Feature #12737 (Assigned): Module#defined_refinements
Matz, can I add Module#defined_refinements? shugo (Shugo Maeda)
07:08 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
On a more serious note, `def=` also has this restriction:
```
$ ruby -e 'def m(a) = 2'
OK
$ ruby -e 'def m a = 2'
-e:1: syntax error, unexpected end-of-input
$ ruby -e 'def m a = a'
-e:1: circular argument reference - a
-e:1: syn...
Eregon (Benoit Daloze)
07:03 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
[joke] Maybe a reason to be a little bit more consistent about Ruby syntax and always use parens for method definitions? :D [/joke] Eregon (Benoit Daloze)
06:50 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
It was known when the feature was introduced https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/d1ae2bc27fd4183e6abb9e83691e192bfe1e5316/diff, @mame added a NEWS entry specifically for it.
I presume it would clas...
byroot (Jean Boussier)
08:36 AM Bug #18267: Argument forwarding requires parenthesis on method definitions
I agree that this is a bug.
Matz.
matz (Yukihiro Matsumoto)
06:01 PM Bug #18269: trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
No matter how we implement it (making each instruction unique, telling the compiler to not perform de-duplication if possible, etc.), one direction would be to make every address of trace instructions unique like you suggested. I would n... k0kubun (Takashi Kokubun)
05:01 PM Bug #18269: trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
I guess one option would be to have each of the optimized trace instructions use code specific to each instruction, so that the compiler would never merge the instructions. @k0kubun, do you think that would make sense? I'm not sure wha... jeremyevans0 (Jeremy Evans)
04:08 AM Bug #18269 (Closed): trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
On some platforms and compiler tool chain, `RubyVM::ISeq#to_a` shows a wrong instruction.
```
set_trace_func(Proc.new { })
set_trace_func(nil)
iseq = RubyVM::InstructionSequence.compile("/true/ =~ 'true'")
pp iseq.to_a.last
# e...
mame (Yusuke Endoh)
05:11 PM Revision a4d5ee4f (git): [Bug #18264] Fix memory leak in TracePoint
TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with `RUBY_TYPED_NEVER_FREE`).
peterzhu2118 (Peter Zhu)
05:10 PM Revision f180fa6c (git): Fix Typo
Steven Nunez
05:05 PM Revision 66e31850 (git): * 2021-10-27 [ci skip]
git[bot]
05:05 PM Revision 26353c75 (git): Embed bare `double` if `sizeof(double) == sizeof(VALUE)`
nobu (Nobuyoshi Nakada)
05:05 PM Revision e3a783b1 (git): Align `RFloat` at VALUE boundary
nobu (Nobuyoshi Nakada)
04:31 PM Bug #16497: StringIO#internal_encoding is broken (more severely in 2.7)
@nobu @naruse @byroot Year after, this is still broken in the recent head.
```ruby
RUBY_DESCRIPTION
# => "ruby 3.1.0dev (2021-10-26T11:17:00Z master afdca0e780) [x86_64-linux]"
str = 'Україна'.encode('KOI8-U')
# => "\xF5\xCB\xD2\x...
zverok (Victor Shepelev)
02:44 PM Misc #18266: DevelopersMeeting20211118Japan
* [Feature #16252] Hash#partition should return hashes (dan0042)
* More consistent with `select`/`reject`
* More in line with existing usage (most people seem to convert the results to hashes)
* More efficient than arrays of arrays...
Dan0042 (Daniel DeLorme)
10:39 AM Misc #18266: DevelopersMeeting20211118Japan
* [Bug #18270] Refinement#{extend_object,append_features,prepend_features} should be removed
* Refinements are different from normal modules, so it's potentially dangerous to use refinements as mixins.
* Why not deprecate them in Rub...
shugo (Shugo Maeda)
02:28 AM Misc #18266: DevelopersMeeting20211118Japan
* [Feature #12737] Module#defined_refinements (shugo)
* It's good to have for debugging purposes. Users can see refinements defined in a module in irb etc. without reading code.
* [Feature #14332] Module.used_refinements to list refin...
shugo (Shugo Maeda)
02:42 PM Feature #16252: Hash#partition should return hashes
Two years later, and today when using hash.partition I was surprised that it didn't return two hashes.
This has to be just an oversight, right?
Dan0042 (Daniel DeLorme)
11:17 AM Revision afdca0e7 (git): Fix unaligned access to `double` in RFloat
nobu (Nobuyoshi Nakada)
11:17 AM Revision e1ecda29 (git): Make new object for negated float as `Float` is always frozen now
nobu (Nobuyoshi Nakada)
10:36 AM Revision 37395ffa (git): Make the metaclass of Refinement explicitly
Otherwise, singleton methods of Module are not inherited unless
Refinement.singleton_class is called.
shugo (Shugo Maeda)
10:21 AM Bug #16936 (Open): `make test-all TESTS="-n !/Foo#method/"` not skipping the test case
This was somehow swept under the carpet, but it is still unresolved. I have opened PR with a fix:
https://github.com/ruby/ruby/pull/5026
vo.x (Vit Ondruch)
10:20 AM Feature #18270 (Closed): Refinement#{extend_object,append_features,prepend_features} should be removed
Refinement#{extend_object,append_features,prepend_features} are not useful and should be removed.
How about to deprecate them in Ruby 3.1 and remove in Ruby 3.1?
shugo (Shugo Maeda)
08:59 AM Bug #18170: Exception#inspect should not include newlines
@mame thanks for all your work on this issue.
> Incompatibility. In general, users should not depend on the return value of #inspect. That being said, we don't want to introduce incompatibility unnecessarily. According to my PR, the s...
ioquatix (Samuel Williams)
08:06 AM Revision 8a49c7e4 (git): Revert "introduce check code for mysterious EBADF"
This reverts commit 7864efa105921eb3900c843126f2e0db02b9c6ae. ko1 (Koichi Sasada)
08:06 AM Revision d1424f7f (git): Revert "check other IO#close calls"
This reverts commit a1c4cab11d613d7df037a81a770ee44a23a2e9be. ko1 (Koichi Sasada)
07:05 AM Bug #18268: Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
Thank you for the information source. This looks like a breaking change in Ruby 3.1, but it's okay if it's a considered impact. koic (Koichi ITO)
03:09 AM Bug #18268: Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
It appears to have been changed at https://github.com/ruby/ruby/pull/1509. osyo (manga osyo)
02:55 AM Bug #18268 (Closed): Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
I'm not sure the details, but the following behavior has changed between Ruby 3.0.2 (and earlier) and Ruby 3.1.0-dev.
```ruby
# example.rb
def foo
[1, 2].each_cons(2) do |one, two|
break one if false
end
end
p foo
``...
koic (Koichi ITO)
05:43 AM Revision 049e1f85 (git): Fix typo
nobu (Nobuyoshi Nakada)
02:39 AM Revision 5c2b6441 (git): fix random EBADF problem
```ruby
r, w = IO.pipe
r.close
IO.for_fd(w.fileno).close
```
This code closes a file descriptor `w.fileno`, but `w` doesn't know
the closing. Another code can open same file descriptor with opening
file (`f`). After t...
ko1 (Koichi Sasada)
12:30 AM Revision 7d4c5920 (git): improve doc coverage [ci skip]
Just split the comment for struct's one and array's one. shyouhei (Shyouhei Urabe)
12:30 AM Revision a0029ae2 (git): just another evidence that @shyouhei is an idiot [ci skip]
(gdb) ptype/o struct RString
/* offset | size */ type = struct RString {
/* 0 | 16 */ struct RBasic {
/* 0 | 8 */ VALUE flags;
/* 8 | 8 */ const VALUE klass;
...
shyouhei (Shyouhei Urabe)
12:05 AM Revision b49ec78f (git): more on eliminating $make
shyouhei (Shyouhei Urabe)
12:05 AM Revision b682f763 (git): GNUMAKEFLAGS is too new for mac
It is relatively well known that mac does not update its command line
tools, and make is no exception. They ship GNU make 3.x, which didn't
yet implemented GNUMAKEFLAGS.
Resort to MAKEFLAGS there.
shyouhei (Shyouhei Urabe)
12:05 AM Revision 748688a6 (git): .github: use GNUMAKEFLAGS instead of JOBS
A bit readable to me.
See also https://github.com/ruby/ruby/pull/4880
shyouhei (Shyouhei Urabe)

10/25/2021

11:52 PM Bug #18267 (Closed): Argument forwarding requires parenthesis on method definitions
I like to write my method definitions without parenthesis. For example:
```ruby
def foo bar
# ...
end
```
I tried to use `...`, but it doesn't work. For example if I do:
```ruby
def call a, ...
a.nil?(...)
end
```
...
tenderlovemaking (Aaron Patterson)
11:01 PM Revision 92ec0105 (git): [rubygems/rubygems] Add support to build and sign certificates with multiple key algorithms
https://github.com/rubygems/rubygems/commit/967876f15d
Co-Authored-By: Frederik Dudzik <frederik.dudzik@shopify.com>
Jenny Shen
06:53 PM Revision 10fe8495 (git): Update YJIT code owners. Revert accidental commit.
maximecb (Maxime Chevalier-Boisvert)
06:29 PM Revision 722d43ad (git): Test PR
maximecb (Maxime Chevalier-Boisvert)
06:28 PM Revision cf52a2c9 (git): Add code owners for YJIT sources
Code owners are automatically tagged as reviewers on pull requests maximecb (Maxime Chevalier-Boisvert)
06:27 PM Bug #18263 (Third Party's Issue): "make install" crashed when Ruby3.0.2 clean install. (in japanese)
It looks like this may be an issue with the embedded version of libyaml that Ruby ships. If so, it should be fixed upstream in libyaml (https://github.com/yaml/libyaml), and then a pull request or issue should be filed to https://github... jeremyevans0 (Jeremy Evans)
05:36 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
Agreed. The goal is to avoid slicing anyway, and to slice you need to know how many bytes you consumed.
If there's no other objections I'll merge in a day or two.
byroot (Jean Boussier)
04:55 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
@byroot Thank you for adding documentation. I agree with merging.
> there should be a way to know how many bytes an invocation of String#unpack consumes.
In fact, some committers discussed this point at the dev-meeting. However, in...
mame (Yusuke Endoh)
02:34 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
I extended the pull request to clearly document the `offset` keyword and stress that it's a byte offset. Hopefully that clears that concern. byroot (Jean Boussier)
09:41 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
That argument will indeed be pretty much worthless if you use the `U` format, but I don't really see it as a blocker. It is meant to help binary parsers, I don't see `U` making sense for these.
As for the documentation, we indeed need...
byroot (Jean Boussier)
09:26 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
mame (Yusuke Endoh) wrote in #note-5:
> Just a confirmation: the offset is byte-oriented, not character-oriented, right? There are a format "u" which is UTF-8 coding, so the behavior should be explained clearly in the document.
This ...
duerst (Martin Dürst)
06:55 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
> Just a confirmation: the offset is byte-oriented, not character-oriented, right? There
Yes.
byroot (Jean Boussier)
05:39 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
As the RDoc of `String#unpack` states:
```ruby
# Decodes <i>str</i> (which may contain binary data) according to the
# format string, returning an array of each value extracted. The
```
Isn't it clear that it is counted as binary?
nobu (Nobuyoshi Nakada)
02:36 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
Just a confirmation: the offset is byte-oriented, not character-oriented, right? There are a format "u" which is UTF-8 coding, so the behavior should be explained clearly in the document. mame (Yusuke Endoh)
02:08 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
Sounds reasonable. Accepted.
Matz.
matz (Yukihiro Matsumoto)
05:26 PM Feature #18239 (Closed): Variable Width Allocation: Strings
Applied in changeset commit:git|46b66eb9e8e6de2d5750591e532310e8f8599d90.
----------
[Feature #18239] Add struct for embedded strings
peterzhu2118 (Peter Zhu)
05:26 PM Revision a5b65981 (git): [Feature #18239] Implement VWA for strings
This commit adds support for embedded strings with variable capacity and
uses Variable Width Allocation to allocate strings.
peterzhu2118 (Peter Zhu)
05:26 PM Revision 6374be5a (git): [Feature #18239] Refactor RVARGC alloc functions
The allocation functions no longer assume that one RVALUE needs to be
allocated.
peterzhu2118 (Peter Zhu)
05:26 PM Revision 46b66eb9 (git): [Feature #18239] Add struct for embedded strings
peterzhu2118 (Peter Zhu)
05:21 PM Feature #17837: Add support for Regexp timeouts
There are other tradeoffs to consider
* `Regexp.backtrack_limit=` is deterministic, and will stop execution after a certain amount of "processing" regardless of how many threads are busy
* `Regexp.timeout=` will stop a regexp after a cer...
Dan0042 (Daniel DeLorme)
04:42 PM Feature #17837: Add support for Regexp timeouts
In my understanding, this feature is just a workaround to prevent Regexp DoS pracitcally. We can craft a regexp skirting this feature, but it would have worked well against regexps that I have ever seen as DoS issues.
I agree that usi...
mame (Yusuke Endoh)
11:17 AM Feature #17837: Add support for Regexp timeouts
What if the time between two backtracks is much larger for some Regexp, isn't that possible with many characters being matched and then at the end a possible backtrack? (e.g., something like `/(a{100000}|b{100000})*/`)
If so, it sounds ...
Eregon (Benoit Daloze)
04:39 AM Feature #17837: Add support for Regexp timeouts
For the record: this API will not interrupt the execution of a regexp that includes no interrupt check. Typically just a long regexp like `/xxxxxxxxx....{so long}...xxx/` may not be interrupted even if the time limit is exceeded. The doc... mame (Yusuke Endoh)
04:26 AM Feature #17837: Add support for Regexp timeouts
mame (Yusuke Endoh) wrote in #note-31:
> @ko1 suggested mixing the two ideas
According to @ko1, @knu suggested it first. Sorry for my wrong credit.
mame (Yusuke Endoh)
03:09 AM Feature #17837: Add support for Regexp timeouts
Discussed at dev-meeting today.
In summary, there are two proposals, `Regexp.timeout=` and `Regexp.backtrack_limit=`, which have a trade-off.
* `Regexp.timeout=` is easy to use in practical applications, but makes the regexp matchi...
mame (Yusuke Endoh)
04:58 PM Revision 09fa773e (git): ast.c: Use kept script_lines data instead of re-opening the source file (#5019)
ast.c: Use kept script_lines data instead of re-open the source file mame (Yusuke Endoh)
04:51 PM Revision 33113c6b (git): * 2021-10-26 [ci skip]
git[bot]
04:51 PM Revision 557fa389 (git): [rubygems/rubygems] Fix Bundler::Digest#sha1 on big-endian systems
As noticed by @nobu https://github.com/rubygems/rubygems/pull/4989#discussion_r735674633
From wikipedia: https://en.wikipedia.org/wiki/SHA-1#SHA-1_pseudocode
> append ml, the original message length in bits, as a 64-bit big-endian inte...
byroot (Jean Boussier)
03:07 PM Bug #18170: Exception#inspect should not include newlines
ioquatix (Samuel Williams) wrote in #note-14:
> @matz what problem are we trying to prevent by not just applying `#inspect` to every message?
Incompatibility. In general, users should not depend on the return value of `#inspect`. Tha...
mame (Yusuke Endoh)
10:20 AM Bug #18170: Exception#inspect should not include newlines
> Note that there is no space between the colon and the double quote in the first line.
Why is that? Why is it necessary?
> ...
I agree it's ad-hoc and I dislike that we could not just call inspect on every message which would be c...
ioquatix (Samuel Williams)
08:59 AM Bug #18170: Exception#inspect should not include newlines
We discussed this ticket at the dev-meeting, and matz basically accepted as above.
The approved spec is very hacky. Only when the message includes new lines, `Exception#inspect` applies `inspect` to the message. Otherwise, it embeds t...
mame (Yusuke Endoh)
02:48 PM Feature #18035: Introduce general model/semantic for immutability.
ioquatix (Samuel Williams) wrote in #note-29:
> So, I'd like to share some ideas.
> ...
I've also thought about this in the past so I'd like to share my own observation; it seems like RHash uses a lot of `FL_USER*` bits. Like 4 bits ea...
Dan0042 (Daniel DeLorme)
02:19 AM Feature #18035: Introduce general model/semantic for immutability.
> What to do on 32-bit platforms?
I wondered about this. If we don't have 64-bits in general, the only way to implement this is to either:
1. Reuse existing flag if possible.
2. Reduce number of user flags.
3. Only allow some kin...
ioquatix (Samuel Williams)
01:39 AM Feature #18035: Introduce general model/semantic for immutability.
What to do on 32-bit platforms?
And you seem to assume little endian.
nobu (Nobuyoshi Nakada)
01:28 AM Feature #18035: Introduce general model/semantic for immutability.
I tried a couple of times but I could not figure out how to allocate more flags within `RBasic` and `enum` in C99 has problems with more than 32-bit constants on some platforms.
So, I'd like to share some ideas.
Can we split flags ...
ioquatix (Samuel Williams)
02:45 PM Revision 244c98e6 (git): Strip out YJIT at build time when unsupported or disabled (#5003)
In an effort to minimize build issues on non x64 platforms, we can
decide at build time to not build the bulk of YJIT. This should fix
obscure build errors like this one on riscv64:
yjit_asm.c:137:(.text+0x3fa): relocation truncated...
alanwu (Alan Wu)
02:40 PM Revision e9435114 (git): YJIT: Implement duphash (#5009)
`duphash` showed up in the top-20 most frequent exit ops for @jhawthorn's benchmark that renders github.com/about
The implementation was almost exactly the same as `duparray`
Co-authored-by: John Hawthorn <john@hawthorn.email>
Co-auth...
Ian C. Anderson
12:30 PM Revision 1c0c8d5d (git): test/ruby/test_jit.rb: Add a test for checkmatch insn
mame (Yusuke Endoh)
12:28 PM Revision 5bcef26d (git): test/ruby/test_jit.rb: Print a hint at exit of the original process
Otherwise, the hint is printed whenever fork is called.
http://rubyci.s3.amazonaws.com/debian9/ruby-master/log/20211025T093004Z.log.html.gz
```
[20244/21156] TestThread#test_fork_while_lockedyou may want to add tests for following insns...
mame (Yusuke Endoh)
11:55 AM Feature #17795 (Closed): Around `Process.fork` callbacks API
Applied in changeset commit:git|13068ebe32a7b8a1a9bd4fc2d5f157880b374e1d.
----------
process.c: Add Process._fork (#5017)
* process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[F...
mame (Yusuke Endoh)
10:03 AM Feature #17795: Around `Process.fork` callbacks API
I agree with Jeremy, but I'll go a step further. If we want Ruby to be safe, the only sane way to handle fork (in general) is to close all resources in the child process (as already happens with Thread instances, and similarly with close... ioquatix (Samuel Williams)
04:18 AM Feature #17795: Around `Process.fork` callbacks API
@matz Thanks. I've created a prototype PR: https://github.com/ruby/ruby/pull/5017 mame (Yusuke Endoh)
02:36 AM Feature #17795: Around `Process.fork` callbacks API
The new method should be override (or wrap) target, so `wrap_` or `around_` are not a part of proper names.
I propose `Process._fork` for the method name, since:
* It is not for typical users
* It is the target for overriding
* We ...
matz (Yukihiro Matsumoto)
11:48 AM Revision 9d286180 (git): [rubygems/rubygems] Avoid loading the `digest` gem unnecessarily
OpenSSL includes what we need.
https://github.com/rubygems/rubygems/commit/955f3b72ca
deivid (David Rodríguez)
11:48 AM Revision a959342a (git): [rubygems/rubygems] Remove comment that seems no longer accurate
We require things inline or autoload them for efficiency and to avoid as
much as possible conflicting with user's choice of gems.
But I removed the require and observed no deadlocks when activating
gems.
https://github.com/rubygems/rub...
deivid (David Rodríguez)
11:48 AM Revision 9fbf3a1f (git): Unify issue template and ISSUES.md document
Some crucial information to ease maintainers work, like the advice of
upgrading rubygems and bundler, was one step away from the issue
template, making it easier for some users to miss.
Now all relevant information is written directly i...
deivid (David Rodríguez)
11:48 AM Revision b4a43e4f (git): [rubygems/rubygems] Show proper error when previous installation of gem can't be deleted
Instead of showing the bug report template with an error at a random
place.
https://github.com/rubygems/rubygems/commit/882ad3ab57
deivid (David Rodríguez)
11:48 AM Revision 00412be2 (git): [rubygems/rubygems] Show a proper error if gem path is not writable
Instead of showing the bug report place with an error at a randome
place.
https://github.com/rubygems/rubygems/commit/241854ce73
deivid (David Rodríguez)
11:48 AM Revision f6d19095 (git): [rubygems/rubygems] Catch up with recent error message modification
https://github.com/rubygems/rubygems/commit/ae374c1f31 deivid (David Rodríguez)
11:48 AM Revision 7073870d (git): [rubygems/rubygems] Improve readability by splitting updating the cache and searching it
https://github.com/rubygems/rubygems/commit/d0df25bb0f deivid (David Rodríguez)
11:48 AM Revision f7f85c1f (git): [rubygems/rubygems] Manage global gem cache directly
Previously, it was maintained in sync with the standard cache. That was
less efficient, and it caused some error messages to point to non
existent files.
https://github.com/rubygems/rubygems/commit/931f8cb8a9
deivid (David Rodríguez)
11:48 AM Revision 4fc29d17 (git): [rubygems/rubygems] Cached gem path resolution should consider default gems
https://github.com/rubygems/rubygems/commit/83b2b845b3 deivid (David Rodríguez)
11:48 AM Revision 4edcda67 (git): [rubygems/rubygems] Simplify gem downloading inside bundler
We can skip most stuff in `Gem::RemoteFetcher#download`, and use
`Gem::RemoteFetcher#update_cache_path` directly.
This has the benefit of allowing us to remove some workarounds to
support several rubygems versions, but also allows us to...
deivid (David Rodríguez)
11:48 AM Revision 03a563b4 (git): [rubygems/rubygems] Remove unused `let`
https://github.com/rubygems/rubygems/commit/7e1316e454 deivid (David Rodríguez)
11:48 AM Revision 57d990dd (git): [rubygems/rubygems] Raise original exception
https://github.com/rubygems/rubygems/commit/3c93b9fd21 deivid (David Rodríguez)
11:48 AM Revision 7b821bc9 (git): [rubygems/rubygems] Add missing requires
These methods rescue a constant defined by `rubygems/remote_fetcher`,
so they should technically require it.
The require is provided by `gem_remote_fetcher` anyways but I was
running a unit spec that stubs that method, so I was getting ...
deivid (David Rodríguez)
11:48 AM Revision 9b1b1718 (git): [rubygems/rubygems] Use `Gem::Specification#file_name` consistently
https://github.com/rubygems/rubygems/commit/13b933f49a deivid (David Rodríguez)
11:48 AM Revision 38542cff (git): [rubygems/rubygems] Extract a `default_cache_path` helper
https://github.com/rubygems/rubygems/commit/8319305d58 deivid (David Rodríguez)
11:48 AM Revision edc18131 (git): [rubygems/rubygems] Small refactor
Extract final cache path to a variable and pass that to `download_gem`.
It actually fits better the parameters documentation since it's the
final directory where the downloaded gem will be placed.
https://github.com/rubygems/rubygems/co...
deivid (David Rodríguez)
11:47 AM Revision 13068ebe (git): process.c: Add Process._fork (#5017)
* process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[Feature #17795]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
mame (Yusuke Endoh)
11:45 AM Revision 1eac38c6 (git): test/ruby/test_rubyvm.rb: prevent "assigned but unused variable" warnings
http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
[ 4896/21159] TestRubyVM#test_keep_script_lines(none):3: warning: assigned but unused variable - b
(none):6: warning: assigned but unused variable - ...
mame (Yusuke Endoh)
11:44 AM Revision 7da9c25a (git): test/ruby/test_refinement.rb: Prevent deprecation warnings during test
http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_refinement.rb:777: warning: Refinement#include is deprecated and will be remov...
mame (Yusuke Endoh)
11:43 AM Revision 00c7b91f (git): test/ruby/test_marshal.rb: Prevent "assigned but unused variable" warning
http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_marshal.rb:925: warning: assigned but unused variable - objects
```
mame (Yusuke Endoh)
11:24 AM Revision 5af3f7f3 (git): [rubygems/rubygems] Vendor a pure ruby implementation of SHA1
This allows `Source::Git` to no longer load the `digest` gem as it is causing
issues on Ruby 3.1.
https://github.com/rubygems/rubygems/pull/4989/commits/c19a9f2ff7
byroot (Jean Boussier)
11:01 AM Feature #18176 (Closed): Make Coverage suspendable
Applied in changeset commit:git|86e3d77abb8a033650937710d1ab009e98647494.
----------
Make Coverage suspendable (#4856)
* Make Coverage suspendable
Add `Coverage.suspend`, `Coverage.resume` and some methods.
[Feature #18176] [ruby-cor...
mame (Yusuke Endoh)
08:49 AM Feature #18176 (Assigned): Make Coverage suspendable
We discussed this ticket in the dev-meeting, and I accepted this proposal as the author and maintainer of coverage.so.
Currently, coverage.so does not support per-thread coverage measurement, so using Coverage.suspend/resume to gather...
mame (Yusuke Endoh)
11:00 AM Revision 86e3d77a (git): Make Coverage suspendable (#4856)
* Make Coverage suspendable
Add `Coverage.suspend`, `Coverage.resume` and some methods.
[Feature #18176] [ruby-core:105321]
mame (Yusuke Endoh)
10:42 AM Revision 54379e3d (git): Update TypeProf to 0.20.1
mame (Yusuke Endoh)
10:02 AM Revision 7394514b (git): [rubygems/rubygems] Simplify and remove some unused code
When `install_with_build_args` was added in
https://github.com/rubygems/rubygems/commit/be96283985cb49c023112117b2ac2dea0d9becf1,
there were two versions of the method: the default version in the base class that still
used the locking `w...
dodecadaniel (Daniel Colson)
09:17 AM Misc #18266: DevelopersMeeting20211118Japan
* [Feature #18262] `Enumerator::Lazy#partition` (zverok)
* Part of the effort to make `Lazy` more natural: `#partition` to return two lazy enumerators
zverok (Victor Shepelev)
09:11 AM Misc #18266 (Closed): DevelopersMeeting20211118Japan
# The next dev meeting
**Date: 2021/11/18 13:00-17:00** (JST)
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20211118Japan.md
- Dev meeting *IS NOT* a decision-making place. All deci...
mame (Yusuke Endoh)
09:11 AM Misc #18174 (Closed): DevelopersMeeting20211021Japan
mame (Yusuke Endoh)
09:07 AM Bug #12436 (Assigned): newline argument of File.open seems not respected on Windows
@matz accepted this and asked @nobu to review the PR. mame (Yusuke Endoh)
09:05 AM Bug #18066 (Rejected): Load did_you_mean/error_highlight even with --disable-gems
We discussed this ticket at the dev-meeting, and @matz rejected this.
Now the `--disable-gems` option is just for debugging, not for casual users. We, the core developers, mainly use the option to investigate the startup overhead of t...
mame (Yusuke Endoh)
08:38 AM Revision a1c4cab1 (git): check other IO#close calls
http://ci.rvm.jp/results/trunk@ruby-iga/3690333
> tool/lib/test/unit/parallel.rb:68:in `close': Bad file descriptor (Errno::EBADF)
ko1 (Koichi Sasada)
08:13 AM Bug #18255: ioctl zeroes the last buffer byte
vihai (Daniele Orlandi) wrote in #note-6:
> The first issue is caused by `<sys/ioctl.h>` not defining `_IOC_SIZE`, ruby falls back to `DEFULT_IOCTL_NARG_LEN`. I guess you have to detect and include `<linux/ioctl.h>` or `<asm/ioctl.h>`.
...
nobu (Nobuyoshi Nakada)
06:47 AM Revision 7864efa1 (git): introduce check code for mysterious EBADF
parallel test randomly failed with EBADF.
This patch checks wich suite causes this error.
ex) http://ci.rvm.jp/results/trunk@ruby-iga/3690219
```
/tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:88:in `close': Bad file descriptor ...
ko1 (Koichi Sasada)
03:25 AM Revision b74f9d65 (git): add example for buffer: argument of pack.
akr (Akira Tanaka)
03:15 AM Revision 66d09501 (git): fix typo [ci skip]
180909 (佳华 王)
03:13 AM Revision dfb47bbd (git): Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiver
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
make_now_just (Hiroya Fujinami)

10/24/2021

11:38 PM Revision aa09c8da (git): Fix links [ci skip]
znz (Kazuhiro NISHIYAMA)
11:14 PM Feature #18033: Time.new to parse a string
I checked the latest update.
I'm still not sure about `Time.new(string)` parsing a string.
What about `Time.parse_strict` or `Time.parse_iso8601` etc?
ioquatix (Samuel Williams)
04:11 PM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
duerst (Martin Dürst) wrote in #note-4:
> - Fixed typo in Subject
> ...
Updated, so there is exists more describe for now.
for that youtube video, except copy the video content, i can't do more, because I can't understand Japanese
zw963 (Wei Zheng)
12:49 AM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
- Fixed typo in Subject
- When proposing a feature, please describe the feature in the text here, not just by reference (e.g. to a Youtube video).
duerst (Martin Dürst)
04:04 PM Revision 4fb71575 (git): [DOC] Fix code markup [ci skip]
Code markup in RDoc must not be concatenated with anothr word. nobu (Nobuyoshi Nakada)
03:43 PM Revision df444512 (git): * 2021-10-25 [ci skip]
git[bot]
03:40 PM Revision e10dfdf6 (git): [ruby/openssl] bn: expand BIGNUM_RAND and BIGNUM_RAND_RANGE macros
Now that BN.pseudo_rand{,_range} are alias, those macros are only used
once. Let's expand the macros for better readability.
https://github.com/ruby/openssl/commit/7c2fc00dee
rhenium (Kazuki Yamaguchi)
03:40 PM Revision e1918670 (git): [ruby/openssl] bn: make BN.pseudo_rand{,_range} an alias of BN.rand{,_range}
BN_pseudo_rand() and BN_pseudo_rand_range() are deprecated in
OpenSSL 3.0. Since they are identical to their non-'pseudo' version
anyway, let's make them alias.
https://github.com/ruby/openssl/commit/2d34e85ddf
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 1b5ccc8a (git): [ruby/openssl] pkey, ssl: use EVP_PKEY_eq() instead of EVP_PKEY_cmp()
OpenSSL 3.0 renamed EVP_PKEY_cmp() to EVP_PKEY_eq() because that was a
confusing name.
https://github.com/ruby/openssl/commit/d42bd7fcdb
rhenium (Kazuki Yamaguchi)
03:40 PM Revision ee713161 (git): [ruby/openssl] pkey/ec: use EC_GROUP_free() instead of EC_GROUP_clear_free()
EC_GROUP_clear_free() is deprecated in OpenSSL 3.0.
EC_GROUP does not include any sensitive data, so we can safely use
EC_GROUP_free() instead.
https://github.com/ruby/openssl/commit/e93a5fdffc
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 555788b6 (git): [ruby/openssl] pkey/ec: deprecate PKey::EC::Point#make_affine! and make it a no-op
It converts the internal representation of the point object to the
affine coordinate system. However, it had no real use case because the
difference in the internal representation has not been visible from
Ruby/OpenSSL at all.
EC_POINT_...
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 16272d9a (git): [ruby/openssl] hmac: use EVP_MD_CTX_get_pkey_ctx() instead of EVP_MD_CTX_pkey_ctx()
OpenSSL 3.0 renamed EVP_MD_CTX_pkey_ctx() to include "get" in the
function name. Adjust compatibility macro so that we can use the new
function name for all OpenSSL 1.0.2-3.0.
https://github.com/ruby/openssl/commit/c106d888c6
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 040387d2 (git): [ruby/openssl] digest: use EVP_MD_CTX_get0_md() instead of EVP_MD_CTX_md() if exists
The function was renamed in OpenSSL 3.0 due to the change of the
lifetime of EVP_MD objects. They are no longer necessarily statically
allocated and can be reference-counted -- when an EVP_MD_CTX is free'd,
the associated EVP_MD can also...
rhenium (Kazuki Yamaguchi)
03:40 PM Revision cfa4fa63 (git): [ruby/openssl] bn: use BN_check_prime() in OpenSSL::BN#prime{,_fasttest}?
In OpenSSL 3.0, BN_is_prime_ex() and BN_is_prime_fasttest_ex() are
deprecated in favor of BN_check_prime().
https://github.com/ruby/openssl/commit/90d51ef510
rhenium (Kazuki Yamaguchi)
03:40 PM Revision fa24e7a5 (git): [ruby/openssl] ssl: use SSL_get_rbio() to check if SSL is started or not
Use SSL_get_rbio() instead of SSL_get_fd(). SSL_get_fd() internally
calls SSL_get_rbio() and it's enough for our purpose.
In OpenSSL 3.0, SSL_get_fd() leaves an entry in the OpenSSL error queue
if BIO has not been set up yet, and we wou...
rhenium (Kazuki Yamaguchi)
03:40 PM Revision d5aa3fca (git): [ruby/openssl] ssl: use SSL_CTX_load_verify_{file,dir}() if available
SSL_CTX_load_verify_locations() is deprecated in OpenSSL 3.0 and
replaced with those two separate functions. Use them if they exist.
https://github.com/ruby/openssl/commit/5375a55ffc
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 19ef7082 (git): [ruby/openssl] ts: use TS_VERIFY_CTX_set_certs instead of TS_VERIFY_CTS_set_certs
OpenSSL 3.0 fixed the typo in the function name and replaced the
current 'CTS' version with a macro.
https://github.com/ruby/openssl/commit/2be6779b08
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 3d164015 (git): [ruby/openssl] ossl.c: use ERR_get_error_all() if available
OpenSSL 3.0 deprecated ERR_get_error_line_data() in favor of
ERR_get_error_all(), as part of the error queue structure changes.
https://github.com/ruby/openssl/commit/8e98d2ecc8
rhenium (Kazuki Yamaguchi)
03:40 PM Revision 32d49e93 (git): [ruby/openssl] ext/openssl/ossl.h: add helper macros for OpenSSL/LibreSSL versions
Add following convenient macros:
- OSSL_IS_LIBRESSL
- OSSL_OPENSSL_PREREQ(maj, min, pat)
- OSSL_LIBRESSL_PREREQ(maj, min, pat)
https://github.com/ruby/openssl/commit/00abee791d
rhenium (Kazuki Yamaguchi)
02:42 PM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)
Thank you xtkoba san.
After "dnf install libyaml-devel", "make install" and "make check" now completed without crash.
and "gem list" etc. also completed normally.
"make check" still has some errors,
> Finished tests in 2156.24421...
tksotn (TAKASHI OOTANI)
08:54 AM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)
Gotcha.
```
CFLAGS = -std=c99 -pedantic -Wall
```
`strdup(3)` is not declared because of `-std=c99`. Try instead with `-std=gnu99`. You can alternatively append `-D_DEFAULT_SOURCE` to make it declared.
You may also have an op...
xtkoba (Tee KOBAYASHI)
10:35 AM Revision 1ea53253 (git): Reduce YJIT runs on Ubuntu [ci skip]
nobu (Nobuyoshi Nakada)
10:35 AM Revision fe77a033 (git): Use `${{}}` for if statement
nobu (Nobuyoshi Nakada)
10:24 AM Revision 408605aa (git): EWOULDBLOCK is always defined since 74ba9c248890
nobu (Nobuyoshi Nakada)
10:24 AM Revision 3d7c92df (git): Extract io_again_p to check if EAGAIN or EWOULDBLOCK
nobu (Nobuyoshi Nakada)
10:24 AM Revision 9822ebee (git): suppress warnings by parenthesizing unclear expressions
nobu (Nobuyoshi Nakada)
10:24 AM Revision 7459a32a (git): suppress warnings for probable NULL dererefences
nobu (Nobuyoshi Nakada)
10:24 AM Revision e5c2bf55 (git): Suppress sign-compare warning
nobu (Nobuyoshi Nakada)
08:50 AM Revision b69c38e6 (git): Refactor associated pointer
nobu (Nobuyoshi Nakada)
07:20 AM Revision 8d6e9b66 (git): Suppress false warning for freed pointer
nobu (Nobuyoshi Nakada)
12:25 AM Revision 1be2875e (git): [flori/json] Bump version to v2.6.1
https://github.com/flori/json/commit/2db5894cfa hsbt (Hiroshi SHIBATA)
12:25 AM Revision 4cbce794 (git): [flori/json] Bump JSON::VERSION to 2.6.0.
https://github.com/flori/json/commit/da94d9f059 retro (Josef Šimánek)

10/23/2021

11:49 PM Revision d04d6bbc (git): [ruby/psych] Prefer `require_relative` for internal requires
https://github.com/ruby/psych/commit/a0f55ee85a deivid (David Rodríguez)
11:48 PM Revision 48cd6330 (git): [ruby/psych] Add stringio as a dependency.
https://github.com/ruby/psych/commit/86e3049579 retro (Josef Šimánek)
09:04 PM Feature #16989: Sets: need ♥️
Any update on that? greggzst (Grzegorz Jakubiak)
08:58 PM Feature #17873: Update of default gems in Ruby 3.1
Done: Fiddle, CSV, StringScanner kou (Kouhei Sutou)
08:58 PM Revision bd65757f (git): * 2021-10-24 [ci skip]
git[bot]
08:57 PM Revision 53dcb354 (git): NEWS: StringScanner 3.0.1 is released
Sutou Kouhei
08:57 PM Revision c0c43276 (git): [ruby/strscan] Bump version
If we use the same version as the default strscan gem in Ruby, "gem
install" doesn't extract .gem. It fails "gem install" because "gem
install" can't find ext/strscan/ to be built.
https://github.com/ruby/strscan/commit/3ceafa6cdc
Sutou Kouhei
08:57 PM Revision 76e277a0 (git): NEWS: CSV 3.2.1 is released
Sutou Kouhei
08:57 PM Revision ee948fc1 (git): [ruby/csv] Add support for Ractor (https://github.com/ruby/csv/pull/218)
https://github.com/ruby/csv/commit/a802690e11 rm155 (Rohit Menon)
08:57 PM Revision 274882be (git): [ruby/csv] Use test-unit gem instead of test-framework of ruby repo
https://github.com/ruby/csv/commit/9c4add0d31 Sutou Kouhei
08:57 PM Revision 8fde54a3 (git): [ruby/csv] CSV(): Add support for Ruby 3 (https://github.com/ruby/csv/pull/215)
The implementation of the `CSV` shortcut method is broken in Ruby 3
for calls that look like this:
```ruby
CSV(write_stream, col_sep: "|", headers: headers, write_headers: true) do |csv|
...
end
```
The above will result in the follo...
Anthony Hernandez
08:57 PM Revision 10739750 (git): [ruby/csv] CI: Stop coverage mesurement
https://github.com/ruby/csv/commit/5ff3b95018 Kenta Murata
08:57 PM Revision 8ba98f83 (git): [ruby/csv] Use "\n" for the default row separator on Ruby 3.0 or later
https://github.com/ruby/csv/commit/1f9cbc170e Sutou Kouhei
08:57 PM Revision 7f3dd601 (git): [ruby/csv] Changed line ending handling to consider the combination \r\n as a single entry when row is faulty (https://github.com/ruby/csv/pull/220)
https://github.com/ruby/csv/commit/29cef9ea9d Joakim Antman
08:57 PM Revision 39ecdabe (git): [ruby/csv] Resolve CSV::Converters and HeaderConverters lazy
It's for Ractor. If you want to use the built-in converters, you
should call Ractor.make_shareable(CSV::Converters) and/or
Ractor.make_shareable(CSV::HeaderConverters).
https://github.com/ruby/csv/commit/b0b1325d6b
Sutou Kouhei
08:57 PM Revision 8aaa1c27 (git): [ruby/csv] doc: Match text to the struct name (https://github.com/ruby/csv/pull/217)
https://github.com/ruby/csv/commit/744e41130c Vince
08:57 PM Revision e40baca3 (git): [ruby/csv] Bump version
https://github.com/ruby/csv/commit/3025070cea Sutou Kouhei
07:46 PM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
FYI, MRuby supports this. Of course it just embeds the bytecode in the binary, no actual AOT compilation of Ruby code.
Also there are various gems which make this possible for CRuby, notably https://github.com/pmq20/ruby-packer, altho...
Eregon (Benoit Daloze)
01:02 PM Feature #18265 (Open): Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
![](clipboard-202110232053-mgbon.png)
https://www.youtube.com/watch?v=zQnN1pqK4FQ
Yes, what i said is this.
1. Go-language supports to make self-contained one-binary.
2. Is it useful for ruby?
I personal propose add this f...
zw963 (Wei Zheng)
01:19 PM Revision 185c5738 (git): Add INSTRUBY_OPTS to INSTRUBY_ARGS [ci skip]
For extra options from the `make` command line.
Also add explicit `--install` option to install-nodoc.
nobu (Nobuyoshi Nakada)
06:03 AM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)

From `LOG.make`:
```
compiling ../.././ext/psych/yaml/api.c
../.././ext/psych/yaml/api.c: 関数 ‘yaml_strdup’ 内:
../.././ext/psych/yaml/api.c:66:27: 警告: implicit declaration of function ‘strdup’; did you mean ‘cmp’? [-Wimplicit-func...
xtkoba (Tee KOBAYASHI)
04:38 AM Revision cda8bc36 (git): [ruby/openssl] test/openssl/test_ssl: use assert_raise in test_bad_socket
The Ruby tree disallows assert_raises.
https://github.com/ruby/openssl/commit/9b4f761e74
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 35b9d8d3 (git): [ruby/openssl] Raise an exception if the IO object passed to SSLSocket isn't a file
SSLSocket#connect eventually calls `GetOpenFile` in order to get the
underlying file descriptor for the IO object passed in on
initialization. `GetOpenFile` assumes that the Ruby object passed in is
a T_FILE object and just casts it to ...
tenderlovemaking (Aaron Patterson)
04:38 AM Revision 47975ece (git): [ruby/openssl] test/openssl/test_pkey_rsa: disable test_no_private_exp on OpenSSL 3.0
OpenSSL::PKey::RSA#set_key does not exist when built with OpenSSL 3.0,
so it is not possible to create an RSA object with incomplete state.
https://github.com/ruby/openssl/commit/ca03c9c070
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 95044fa1 (git): [ruby/openssl] test/openssl/test_pkey: use EC keys for PKey.generate_parameters tests
OpenSSL 3.0 refuses to generate DSA parameters shorter than 2048 bits,
but generating 2048 bits parameters takes very long time. Let's use EC
in these test cases instead.
https://github.com/ruby/openssl/commit/c732387ee5
rhenium (Kazuki Yamaguchi)
04:38 AM Revision d67fe1e9 (git): [ruby/openssl] test/openssl/test_ssl: fix illegal SAN extension
A certificate can only have one SubjectAltName extension. OpenSSL 3.0
performs a stricter validation and certificates containing multiple SANs
will be rejected.
https://github.com/ruby/openssl/commit/558cfbe5f5
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 79d5abd0 (git): [ruby/openssl] test/openssl/test_pkcs12: fix test failures with OpenSSL 3.0
OpenSSL's PKCS12_create() by default uses pbewithSHAAnd40BitRC2-CBC for
encryption of the certificates. However, in OpenSSL 3.0, the algorithm
is part of the legacy provider and is not enabled by default.
Specify another algorithm that ...
rhenium (Kazuki Yamaguchi)
04:38 AM Revision d26e64e0 (git): [ruby/openssl] test/openssl/test_ssl: relax regex to match OpenSSL's error message
OpenSSL 3.0 slightly changed the error message for a certificate
verification failure when an untrusted self-signed certificate is found
in the chain.
https://github.com/ruby/openssl/commit/b5a0a19850
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 54047b6d (git): [ruby/openssl] test/openssl/test_digest: do not test constants for legacy algorithms
Remove availability test for MD4 and RIPEMD160 as they are considered
legacy and may be missing depending on the compile-time options of
OpenSSL. OpenSSL 3.0 by default disables them.
https://github.com/ruby/openssl/commit/a3e59f4c2e
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 5a8e1c52 (git): [ruby/openssl] test/openssl/test_ssl: assume ECC support
Disabling ECC support of OpenSSL is impractical nowadays.
We still try to have the C extension compile on no-ec builds (as well
as no-dh or no-engine, etc.) as long as we can, but keeping test cases
for such an extreme scenario is not w...
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 0e805e73 (git): [ruby/openssl] test/openssl/test_ssl: assume TLS 1.2 support
Current versions of OpenSSL and LibreSSL all support TLS 1.2, so there
is no need for checking the availability.
https://github.com/ruby/openssl/commit/a175a41529
rhenium (Kazuki Yamaguchi)
04:38 AM Revision 37632a0a (git): [ruby/openssl] test/openssl/utils: remove dup_public helper method
It uses deprecated PKey::{RSA,DSA,DH}#set_* methods, which will not
work with OpenSSL 3.0. The same can easily be achieved using
PKey#public_to_der regardless of the key kind.
https://github.com/ruby/openssl/commit/7b66eaa2db
rhenium (Kazuki Yamaguchi)
01:56 AM Revision e353bcd1 (git): Sync did_you_mean
yuki24 (Yuki Nishijima)
01:22 AM Revision 93badf47 (git): Disable did_you_mean in TestPatternMatching
yuki24 (Yuki Nishijima)
01:14 AM Revision 905be49b (git): Remove the test for DYM's verbose formatter
yuki24 (Yuki Nishijima)
01:00 AM Revision 66df18c5 (git): Sync did_you_mean again
yuki24 (Yuki Nishijima)
12:56 AM Revision 22249bbb (git): Revert "Sync did_you_mean"
This reverts commit e22d293e06966733e71a7fd9725eee06c03d0177. yuki24 (Yuki Nishijima)
12:35 AM Revision e22d293e (git): Sync did_you_mean
yuki24 (Yuki Nishijima)
 

Also available in: Atom