Project

General

Profile

Activity

From 02/11/2022 to 02/17/2022

02/17/2022

10:52 PM Bug #18487: Kernel#binding behaves differently depending on implementation language of items on the stack
matz (Yukihiro Matsumoto) wrote in #note-6:
> Okay, `binding` should raise an exception when called from a C defined method.
I've submitted a pull request for this: https://github.com/ruby/ruby/pull/5567
It's trickier than I expec...
jeremyevans0 (Jeremy Evans)
01:04 PM Bug #18487: Kernel#binding behaves differently depending on implementation language of items on the stack
FWIW TruffleRuby currently raises one of these 2 errors when trying to call a Ruby method which needs a direct Ruby frame above:
```
Cannot call Ruby method which needs a Ruby caller frame directly in a foreign language (RuntimeError)
...
Eregon (Benoit Daloze)
07:55 AM Bug #18487: Kernel#binding behaves differently depending on implementation language of items on the stack
Okay, `binding` should raise an exception when called from a C defined method.
Matz.
matz (Yukihiro Matsumoto)
01:17 AM Bug #18487: Kernel#binding behaves differently depending on implementation language of items on the stack
To simplify the semantics and implementation, we could make Kernel#binding
raise when the direct caller is not Ruby. I think it's reasonable given that
the Binding class was designed for Ruby and doesn't necessarily make sense for
oth...
alanwu (Alan Wu)
10:49 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
> We've seen many instances of gems breaking on JRuby & TruffleRuby over the years due to new default gems
We (JRuby team) have been working to support the various default gems on JRuby for several years (or more, if you consider json...
headius (Charles Nutter)
06:26 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
@eregon sorry I was not talking about default gems; by "stdlib" I meant the libraries that have not (yet) been gemified. So I must apologize that my example was completely flawed, as I didn't realize those 3 libs are actually gemified. A... Dan0042 (Daniel DeLorme)
05:39 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
@Dan0042 One issue is some people want the dependency on default gems to be in the Gemfile.lock, which e.g. enables the gem to be checked for security issues easily (e.g. dependabot).
And of course if someone specifies a specific versio...
Eregon (Benoit Daloze)
05:28 PM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Here's one idea: what if there was a list of all standard libraries in a given ruby version, such as `RbConfig::STDLIBS = Set["digest", "strscan", "delegate", etc...]`
Then rubygems itself could use this list to ensure that `spec.add_de...
Dan0042 (Daniel DeLorme)
11:14 AM Bug #18567: Depending on default gems in stdlib gems when not needed considered harmful
Another instance of this issue: https://github.com/mikel/mail/pull/1472#discussion_r808927322
I think new default gems should initially noop (i.e., just use the stdlib version) on `RUBY_ENGINE != "ruby"`,
that would be much less brea...
Eregon (Benoit Daloze)
07:29 PM Feature #18585: Promote find pattern to official feature
ktsj (Kazuki Tsujimoto) wrote in #note-2:
> > Is this request related to the whole feature (as described at https://docs.ruby-lang.org/en/3.1/doc/syntax/pattern_matching_rdoc.html) or only to one pattern called "Find pattern" (as descri...
retro (Josef Šimánek)
08:49 AM Feature #18585: Promote find pattern to official feature
Accepted. Congratulations.
Matz.
matz (Yukihiro Matsumoto)
05:45 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
The problem with that approach though is it's frequent to not run CI before pushing in CRuby, and then `master` could end up segfaulting between a commit-changing-ABI-forgot-to-bump and the commit-bump-ABI. Eregon (Benoit Daloze)
05:44 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
FWIW in TruffleRuby there is both a pre-commit hook and a check in CI: [code](https://github.com/eregon/truffleruby/commit/a268438182c301aba66d7a85441a423fc3ea786c#diff-4aeadbe0dc0d66a5cae590c5e29eedac5b5a4aae6db13a1dc1075b2877786767).
...
Eregon (Benoit Daloze)
04:39 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
I'm not sure if I agree with the approach of using a pre-commit hook. AFAIK pre-commit hooks are not automatically installed (every developer has to manually install it), so most people will probably not install it. If we check on CI, if... peterzhu2118 (Peter Zhu)
04:20 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
It could be a mix of both approaches. As a pre-commit hook, compute the checksum/hash of header files and, if different from current "abi_hash", the developer must update a) the current `abi_hash` and b) the `abi_version` ONLY IF there's... Dan0042 (Daniel DeLorme)
02:13 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
I don't think there's a way for us reinstall C extension gems through make in Ruby. I think this would be the responsibility of RubyGems/Bundler. Since we're moving forward with manual ABI versioning, it should be rare (maybe once a mont... peterzhu2118 (Peter Zhu)
12:51 PM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
@hsbt Isn't `gem pristine`/`bundle install` (with Bundler path set) or similar good enough?
Reinstalling pure-Ruby gems is extremely fast compared to installing C extensions (which must rebuilt, otherwise significant risk of random SEGV...
Eregon (Benoit Daloze)
09:06 AM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
I agreed to check ABI breakage on dev branch. But I'm bit of against re-install or re-build all of gems each ABI versions. It's good to only rebuild C extensions when changing ABI versions.
@peterzhu2118
Can you provide the make ta...
hsbt (Hiroshi SHIBATA)
05:59 AM Bug #18249: The ABI version of dev builds of CRuby does not correspond to the ABI
I am against ABI based on SHA1 hash. We should bump API version manually, I think.
If you can provide make target to bump the versions, it's better.
Matz.
matz (Yukihiro Matsumoto)
04:54 PM Feature #16663 (Closed): Add block or filtered forms of Kernel#caller to allow early bail-out
Applied in changeset commit:git|4c366ec9775eb6acb3fcb3b88038d051512c75a2.
----------
Add Thread.each_caller_location
This method takes a block and yields Thread::Backtrace::Location
objects to the block. It does not take arguments, an...
jeremyevans (Jeremy Evans)
07:56 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
I accept `each_caller_location`.
Matz.
matz (Yukihiro Matsumoto)
04:54 PM Revision 7757ccb5 (git): * 2022-02-18 [ci skip]
git[bot]
04:54 PM Revision 4c366ec9 (git): Add Thread.each_caller_location
This method takes a block and yields Thread::Backtrace::Location
objects to the block. It does not take arguments, and always
starts at the default frame that caller_locations would start at.
Implements [Feature #16663]
jeremyevans (Jeremy Evans)
03:34 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
Ok, so I went over all 71 matches after filtering vendored code: https://gist.github.com/casperisfine/5a26c7b85f7d15c4acd63d62d67eafbb
I opened 31 pull requests, all where trivial changes `str.encoding.name == ""` -> `str.encoding == ...
byroot (Jean Boussier)
02:00 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
> Will you?
I'd like to champion this. I already started opening pull requests on the affected gems.
byroot (Jean Boussier)
01:58 PM Feature #18576 (Open): Rename `ASCII-8BIT` encoding to `BINARY`
Making `Encoding#name` to return the name different from the encoding name is unacceptable.
Besides that, in general, compatibility issue is hard to estimate beforehand, so we tend to be very conservative.
If you (or someone) estimate ...
matz (Yukihiro Matsumoto)
01:30 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
Link to the gem-codesearch results from @ko1: https://hackmd.io/koJLPz4eRXKzaaDvVqji7w#Feature-18576-Rename-ASCII-8BIT-encoding-to-BINARY-byroot
This seems very few usages and IMHO such gems should be fixed (if they are still used, pr...
Eregon (Benoit Daloze)
09:27 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
> Does this counter-proposal solve the original problem?
I believe so because the main way users are exposed to `ASCII-8BIT` is through `EncodingError`.
> ...
Indeed, my personal belief is that `Encoding#name` is both an advanced A...
byroot (Jean Boussier)
09:24 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
Does this counter-proposal solve the original problem?
It seems it introduces another inconsistency (and possible confusion).
Matz.
matz (Yukihiro Matsumoto)
09:16 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
Can I make a counter proposal?
We could keep `Encoding#name` as `"ASCII-8BIT"`, but change `Encoding#inspect` and make sure `EncodingError` use the `BINARY` name in its error messages.
What do you think?
byroot (Jean Boussier)
09:14 AM Feature #18576 (Rejected): Rename `ASCII-8BIT` encoding to `BINARY`
I don't object to the proposal itself. But as @ko1 searched, there are so many gems that compare `Encoding#name` and `ASCII-8BIT`.
So I don't accept the proposal for the sake of compatibility.
Matz.
matz (Yukihiro Matsumoto)
03:22 PM Feature #13110: Byte-based operations for String
matz (Yukihiro Matsumoto) wrote in #note-24:
> Regarding names, I accept `byteindex`, `byterindex`, `byteoffset`.
> ...
This could be opened as a new issue, but would it be possible to consider adding more readable aliases as suggested...
austin (Austin Ziegler)
06:02 AM Feature #13110: Byte-based operations for String
Regarding names, I accept `byteindex`, `byterindex`, `byteoffset`.
I am against `byte_rindex` since I consider the naming consistency is more important.
Matz.
matz (Yukihiro Matsumoto)
01:57 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
Thank you Matz!
> I vote for putting it under ObjectSpace
I think it's fine. It's an advanced class, no need to pollute the main namespace with it.
> ...
Agreed. A couple points though:
- I agree that `#each` isn't desirabl...
byroot (Jean Boussier)
01:16 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
I agree with introducing a map (hash) with each key referenced weakly. It should be in the core since weak references should be tightly integrated with the garbage collector.
Since the current `WeakMap` is hard to implement in JRuby...
matz (Yukihiro Matsumoto)
01:47 PM Bug #18504 (Closed): configure prints a warning when cross-compiling
Applied in changeset commit:git|4113862c0068a8a95d752f5fdf14980f92cd41d7.
----------
Do not search for commands with double tool prefixes [Bug #18504]
The `CC` found by `AC_CHECK_TOOL` is prefixed by the host triplet
when cross compili...
nobu (Nobuyoshi Nakada)
01:47 PM Revision 4113862c (git): Do not search for commands with double tool prefixes [Bug #18504]
The `CC` found by `AC_CHECK_TOOL` is prefixed by the host triplet
when cross compiling. To search for commands with `AC_CHECK_TOOL`
based on that `CC` means to search also doubly prefixed names.
nobu (Nobuyoshi Nakada)
01:05 PM Feature #18571: Removed the bundled sources from release package after Ruby 3.2
Accepted, for the record.
Matz.
matz (Yukihiro Matsumoto)
11:25 AM Feature #18571 (Assigned): Removed the bundled sources from release package after Ruby 3.2
We decided on the following policy.
* We will remove the bundled sources from ruby repo.
* @hsbt is working now for psych and fiddle.
* If users put the third-party source under the ruby packages, ruby build system use them.
hsbt (Hiroshi SHIBATA)
12:30 PM Feature #18589: Finer-grained constant invalidation
Amusingly enough, this discussion led me to instrument our production environment to see what is bumping the cache, and one of the big offenders is `open-uri`: https://github.com/ruby/open-uri/blob/174a8eb7de357fc04c0675dd30073c0218f401a... byroot (Jean Boussier)
12:13 PM Feature #16989: Sets: need ♥️
I agree with merging the pull request above, and see how it goes.
Matz.
matz (Yukihiro Matsumoto)
10:12 AM Feature #16989: Sets: need ♥️
I've prepared a PR: https://github.com/ruby/ruby/pull/5563 knu (Akinori MUSHA)
12:11 PM Feature #12962 (Rejected): Feature Proposal: Extend 'protected' to support module friendship
I revisited this issue at the developer meeting and concluded to reject this proposal.
I understand OP's need for the `friend` visibility but considering the dynamic nature of the language (plus current usage of `protected` visibility),...
matz (Yukihiro Matsumoto)
11:39 AM Bug #18578: Hash#shift を繰り返していると ruby が無応答になる。
ruby_3_1 7fe0ebc4e7abd78501094cbb2d47918c8ff29f60 merged revision(s) 496591de96b261b8789332c7f8b2bfbd17658955. naruse (Yui NARUSE)
11:29 AM Revision 992bdfea (git): Refine the load error message
Show the linked ruby library name when failed to load extension
built against different ruby library.
nobu (Nobuyoshi Nakada)
11:29 AM Revision 5952a1f2 (git): Check running macOS version at runtime
nobu (Nobuyoshi Nakada)
11:12 AM Revision c8b414b3 (git): Reuse `-v` option result as `target_platform`
Backticks method invokes `/bin/sh` when the command contains
quotes, and `sh` clears some environment variables set in
runruby.rb to search the built shared library.
nobu (Nobuyoshi Nakada)
11:02 AM Bug #18590 (Closed): String#downcase and CAPITAL LETTER I WITH DOT ABOVE
Downcasing for "İ" character works in an unexpected way:
```ruby
'İ'.downcase
=> "i̇"
```
Expected result - downcasing should return "i". Instead, it returns small "i" and additional "dot" character:
```ruby
'İ'.downcase.cha...
andrykonchin (Andrew Konchin)
10:04 AM Revision dfe7faa6 (git): exclude name must be Regexp or Symbol
https://github.com/ruby/ruby/blob/fdf0f8d81487560f5837dc7e3888a96f7c2b4ec9/tool/lib/test/unit.rb#L1273-L1290 znz (Kazuhiro NISHIYAMA)
09:58 AM Revision fdf0f8d8 (git): btest-ruby OPTS=-v should disable quiet
`make btest-ruby` is run with -q (quiet) option and -v should
remove -q option.
ko1 (Koichi Sasada)
07:15 AM Feature #18568: Explore lazy RubyGems boot to reduce need for --disable-gems
Lazy loading RubyGems sounds great. Ping us if you need support from the core.
Matz.
matz (Yukihiro Matsumoto)
06:03 AM Feature #18513 (Closed): Hide patchlevel from `ruby -v`
Merged at https://github.com/ruby/ruby/commit/9f81d9f92d hsbt (Hiroshi SHIBATA)
04:47 AM Feature #18513: Hide patchlevel from `ruby -v`
Agreed.
Matz.
matz (Yukihiro Matsumoto)
05:36 AM Revision 9f81d9f9 (git): Hide patchlevel from release build
hsbt (Hiroshi SHIBATA)
03:19 AM Revision 7fe0ebc4 (git): merge revision(s) 496591de96b261b8789332c7f8b2bfbd17658955: [Backport #18578]
st.c: Do not clear entries_bound when calling Hash#shift for empty
hash
tab->entries_bound is used to check if the bins are full in
rebuild_table_if_necessary.
Hash#shift against an empty hash assigned ...
naruse (Yui NARUSE)
12:02 AM Misc #18587: What was the reason behind Ruby choosing SipHash for Hash?
JFYI this thread can be something related: https://bugs.ruby-lang.org/issues/13017 shyouhei (Shyouhei Urabe)

02/16/2022

07:34 PM Feature #18589: Finer-grained constant invalidation
During startup, global invalidation for constants also causes a lot of extra lookups, and with a JIT it throws away a lot of code during startup (or the JIT can't inline the value of the constant).
Global per-name constant invalidation ...
Eregon (Benoit Daloze)
07:10 PM Feature #18589: Finer-grained constant invalidation
At the moment on Shopify's core monolith we're seeing around 1 in 30 requests invalidate the global cache. We're still working out the source of the invalidations. But at the moment with the current design if anything changes anywhere ev... kddnewton (Kevin Newton)
06:45 PM Feature #18589: Finer-grained constant invalidation
Current design is the global counter doesn't change frequently.
Do you have measurements about it on some apps?
ko1 (Koichi Sasada)
05:32 PM Feature #18589 (Closed): Finer-grained constant invalidation
This is related to https://github.com/ruby/ruby/pull/5433.
## Current behavior
Caches depend on a global counter. All constant mutations cause all caches to be invalidated.
```ruby
class A
B = 1
end
def foo
A::B # inl...
kddnewton (Kevin Newton)
05:36 PM Misc #18557: DevMeeting-2022-02-17
* [Feature #18589] Finer-grained constant invalidation (Kevin Newton)
* We want to trade a very small memory increase for much better constant cache invalidation.
* This will allow relying on more stable constant caches for better ...
kddnewton (Kevin Newton)
05:16 PM Misc #18587: What was the reason behind Ruby choosing SipHash for Hash?
One concern which might have been considered is what if someone writes their own hash table in pure-Ruby using `#hash`?
Then the only way to protect those is a better `#hash` method by default, which seems to be what Ruby did.
OTOH, I ...
Eregon (Benoit Daloze)
04:12 PM Misc #18587: What was the reason behind Ruby choosing SipHash for Hash?
I misread a point related to extra carefulness.
They don't suggest a rehash on collision, but on hash map grow; since on hash map grow we need to rehash the key anyway, they suggested that in addition to the rehashing we add an extra st...
midnight (Sarun R)
03:42 PM Misc #18587 (Open): What was the reason behind Ruby choosing SipHash for Hash?
Hello
I am digging into the history behind Ruby using SipHash for its Hash.
I found that in 2012 there were CVE-2012-5371 showing up;
the Ruby maintainers went with the decision to switch algorithms, probably, because we wanted some...
midnight (Sarun R)
04:43 PM Revision 5f01fba0 (git): yjit_codegen.c: Prevent a possible out-of-bound access
The code attempts to read `C_ARG_REGS[leaf_builtin->argc + 1]`, and the
size of `C_ARG_REGS` is `NUM_C_ARG_REGS`. So, the guard condition must
be `leaf_builtin->argc + 1 + 1 <= NUM_C_ARG_REGS`.
This change fixes the off-by-one error. T...
mame (Yusuke Endoh)
03:52 PM Bug #18588 (Closed): ruby -e 'p gets' with japanese charactors gets additional invalid leading chars and caught Encoding::InvalidByteSequenceError
### Input a line starting with japanese charactor from console, almost every time ruby gets additional invalid leading charactors.
## Reproduce process
```
R:\ruby32\bin>ruby -e 'p gets'

-e:1:in `gets': "\\xA0" on Windows-31J ...
YO4 (Yoshinao Muramatsu)
03:34 PM Revision fabf60c9 (git): * 2022-02-17 [ci skip]
git[bot]
03:34 PM Revision 797e8f54 (git): Fix -Wsign-compare when -DRUBY_DEBUG=1
Sizes for darray are size_t now. CC @peterzhu2118 alanwu (Alan Wu)
02:50 PM Revision 969ad580 (git): Change feature_index from fake Array to darray
Using a fake (malloc) RArray is not friendly for the garbage
collector. Fake RArray does not have a heap page, so it causes Variable
Width Allocation to crash when we try to implement it on Arrays.
This commit changes feature_index from...
peterzhu2118 (Peter Zhu)
02:50 PM Revision 71afa816 (git): Change darray size to size_t and add functions that use GC malloc
Changes size and capacity of darray to size_t to support more
elements.
Adds functions to darray that use GC allocation functions.
peterzhu2118 (Peter Zhu)
02:43 PM Revision f9abb286 (git): Parenthesize a macro expression
The modulo in `rb_yjit_code_page_alloc` seems interpreted wrongly. nobu (Nobuyoshi Nakada)
08:57 AM Revision 00c7a0d4 (git): fix parallel test timeout retrying
On the parallel test, workers can be killed because of timeout
and the information for the retrying can be inconsistent.
This patch will skip if the inconsistency is found and report
as an error.
http://ci.rvm.jp/results/trunk-asserts@p...
ko1 (Koichi Sasada)
07:32 AM Revision b9851c7e (git): lib/securerandom.rb: Fix the check of availability of Random.urandom
Random.urandom raises a RuntimeError if it is unavailable.
[Bug #13885]
mame (Yusuke Endoh)
05:19 AM Bug #13885: Random.urandom と securerandom について
いまは Random.urandom は利用できない環境で RuntimeError を投げるようになっているはずなのですが、securerandom.rb で Random.urandom が利用可能かをチェックするコードが古いまま(nil を返すかどうかを見る)になってました。
ちょっと Random.urandom が利用できない環境を作るのが難しそうでテストできないのですが、おそらく動かないと思うので修正しておこうと思います。
https://git...
mame (Yusuke Endoh)
04:32 AM Bug #18586 (Closed): ObjectSpace::WeakMap#each seems to leak a broken object
Applied in changeset commit:git|1ae630db2682831cc0f2d381ff46e7b8cd3c2174.
----------
`wmap#each` should check liveness of keys
`ObjectSpace::WeakMap#each*` should check key's liveness.
fix [Bug #18586]
ko1 (Koichi Sasada)
04:32 AM Revision e7d76fe2 (git): * 2022-02-16 [ci skip]
git[bot]
04:31 AM Revision 1ae630db (git): `wmap#each` should check liveness of keys
`ObjectSpace::WeakMap#each*` should check key's liveness.
fix [Bug #18586]
ko1 (Koichi Sasada)

02/15/2022

08:17 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
> I can't imagine a use case where you'd want to share metadata for objects that are eql.
As you certainly know, `Object#==` defaults to `Object#equal?`, so generally equality hashes are workable in scenarios where you actually need ...
byroot (Jean Boussier)
07:40 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
byroot (Jean Boussier) wrote in #note-8:
> Then yes. But it's rarely convenient.
Can you elaborate? Because the DeduplicationSet example has `@set[object] = true`, which is exactly a non-GC-able value.
And the METADATA example is ...
Dan0042 (Daniel DeLorme)
02:42 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
> as long as you use non-GC-able values only
Then yes. But it's rarely convenient.
byroot (Jean Boussier)
02:08 PM Feature #18498: Introduce a public WeakKeysMap that compares by equality
If ObjectSpace::WeakMap had a #compare_by_identity that could be set to false, wouldn't this be equivalent to this WeakKeysMap? (as long as you use non-GC-able values only)
Dan0042 (Daniel DeLorme)
08:13 AM Feature #18498: Introduce a public WeakKeysMap that compares by equality
> Do you think this Hash compatible? For example, default_proc (I think it is too much)?
Yes, I'd rather not ask for methods that may cause difficulties in the future.
byroot (Jean Boussier)
04:49 AM Feature #18498: Introduce a public WeakKeysMap that compares by equality
ko1 (Koichi Sasada) wrote in #note-4:
> Do you think this `Hash` compatible? For example, `default_proc` (I think it is too much)?
`ObjectSpace::WeakMap` is good starting point.
ko1 (Koichi Sasada)
04:46 AM Feature #18498: Introduce a public WeakKeysMap that compares by equality
Do you think this `Hash` compatible? For example, `default_proc` (I think it is too much)? ko1 (Koichi Sasada)
05:20 PM Bug #18586 (Closed): ObjectSpace::WeakMap#each seems to leak a broken object
```
h = ObjectSpace::WeakMap.new
GC.disable
s = "a"
10000.times do
h[s] = true
s = s.succ
end
GC.enable
h.each do |x|
x + ""
x + ""
x + ""
end
```
```
$ ruby t.rb
t.rb:15: [BUG] Segmentation fault at ...
mame (Yusuke Endoh)
03:19 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
p8 (Petrik de Heus) wrote in #note-11:
> I can imagine having a `protected_send` just like we have a `public_send` and `send` (which is basically `private_send`).
Yeah, I was also thinking to something like:
```ruby
friend/internal...
Eregon (Benoit Daloze)
03:14 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
matthewd (Matthew Draper) wrote in #note-10:
> The trouble with using `send` in this [general] situation is that it makes it too equally-easy to reach into _all_ internals: you want access to methods that are suitable for a collaborator ...
Eregon (Benoit Daloze)
02:53 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
I can imagine having a `protected_send` just like we have a `public_send` and `send` (which is basically `private_send`).
Although that probably is a lot more difficult to optimize.
p8 (Petrik de Heus)
01:25 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
The trouble with using `send` in this [general] situation is that it makes it too equally-easy to reach into _all_ internals: you want access to methods that are suitable for a collaborator but not a downstream user, but you can also imm... matthewd (Matthew Draper)
02:32 PM Feature #18585: Promote find pattern to official feature
> Is this request related to the whole feature (as described at https://docs.ruby-lang.org/en/3.1/doc/syntax/pattern_matching_rdoc.html) or only to one pattern called "Find pattern" (as described at https://docs.ruby-lang.org/en/3.1/doc/... ktsj (Kazuki Tsujimoto)
11:22 AM Bug #18504: configure prints a warning when cross-compiling
What about this?
```diff
diff --git a/configure.ac b/configure.ac
index 4feefb57915..01e87c0a9b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,9 +129,9 @@ AC_ARG_WITH(gcc,
AS_HELP_STRING([--without-gcc], [never use gcc]),...
nobu (Nobuyoshi Nakada)
08:11 AM Feature #18339: GVL instrumentation API
> Could you write a picture (or flow) what happens on GVL hooks with GVL acquire/release?
I'm sorry, I don't understand the question.
> ...
Sure. It was just for consistency, but I can rename it to anything.
> I'm planning to in...
byroot (Jean Boussier)
05:52 AM Feature #18339: GVL instrumentation API
* Could you write a picture (or flow) what happens on GVL hooks with GVL acquire/release?
* It seems it doesn't use TracePoint data structures, so I think we don't need to use `RUBY_INTERNAL_EVENT_*` naming.
* I'm planning to introduce...
ko1 (Koichi Sasada)
07:30 AM Feature #18490 (Closed): MakeMakefile.pkg_config should accept multiple options
nobu (Nobuyoshi Nakada)
05:10 AM Feature #18571: Removed the bundled sources from release package after Ruby 3.2
@tenderlovemaking's comment for psych and libffi: https://github.com/ruby/psych/issues/535 mame (Yusuke Endoh)

02/14/2022

03:30 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
For this Net::HTTP example IMHO it'd be better to use `send`, that would make it a private method and be explicit that code is calling into partly-internals.
IMHO friend-like visibility is too magic and the linear search could be a sign...
Eregon (Benoit Daloze)
03:02 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
> Calling "private/protected" methods on another object feels rather wrong to me.
The whole point of `protected` is that it allows you to call methods on another object. But I assume you meant another object that is not an instance of...
matthewd (Matthew Draper)
02:23 PM Feature #12962: Feature Proposal: Extend 'protected' to support module friendship
Do you have an example in Rails?
This sounds like it can be solved by moving such private-but-shared method to `Internals` or some other module.
Calling "private/protected" methods on another object feels rather wrong to me.
May...
Eregon (Benoit Daloze)
03:24 PM Misc #18557: DevMeeting-2022-02-17
* [Feature #18576] Rename `ASCII-8BIT` encoding to `BINARY`
- The `ASCII-8BIT` name is very confusing for beginners.
- Even for people who know what it is, it can easily be misread as `US-ASCII`
- It has been aliased as `BINARY` fo...
byroot (Jean Boussier)
02:15 PM Misc #18557: DevMeeting-2022-02-17
* [Misc #18362] mswin builds & vs2022
* What can we do for the bug?
nobu (Nobuyoshi Nakada)
02:08 PM Misc #18557: DevMeeting-2022-02-17
* [Feature #18585] Promote find pattern to official feature (ktsj)
* Is it OK to to promote find pattern to official feature?
ktsj (Kazuki Tsujimoto)
02:35 PM Revision 26187a85 (git): Use RARRAY_SHARED_ROOT_FLAG for checking re-enter
RARRAY_SHARED_ROOT_FLAG is defined as FL_USER5, but we should use
RARRAY_SHARED_ROOT_FLAG instead of depending on that they're equal.
peterzhu2118 (Peter Zhu)
02:29 PM Feature #18585: Promote find pattern to official feature
Hello! Is this request related to the whole feature (as described at https://docs.ruby-lang.org/en/3.1/doc/syntax/pattern_matching_rdoc.html) or only to one pattern called "Find pattern" (as described at https://docs.ruby-lang.org/en/3.1... retro (Josef Šimánek)
02:05 PM Feature #18585 (Closed): Promote find pattern to official feature
"Find pattern" has introduced in 3.0 and it is still marked as an experimental.
I don't see any problems, so it is time to promote it to official feature.
(BTW, it was useful when writing code like the following for a practical examp...
ktsj (Kazuki Tsujimoto)
08:17 AM Revision 76e594d5 (git): fix GC event synchronization
(1) gc_verify_internal_consistency() use barrier locking
for consistency while `during_gc == true` at the end
of the sweep on `RGENGC_CHECK_MODE >= 2`.
(2) `rb_objspace_reachable_objects_from()` is called without
VM synchroni...
ko1 (Koichi Sasada)
06:38 AM Misc #18362: mswin builds & vs2022
Visual Studio 2022 version 17.0.6 released at February 8 seems still unfixed.
I wonder how we deal with this issue (easy -> hard order):
1. wait the fix (or abandon VS2022)
2. disable `O2` optimization on VS2022
3. disable `__assume()`...
nobu (Nobuyoshi Nakada)
05:57 AM Bug #18582: Hash.group_by not grouping correctly with SortedSets
Ah, I had tried method_defined?, but it returns true (for inherited Kernel#eql?)
I did not realized that method_defined? also accepted a inherited=false argument.
Thank you.
[email protected] (Mike Carlton)
05:52 AM Revision 83803117 (git): * 2022-02-14 [ci skip]
git[bot]
05:52 AM Revision 8e089991 (git): extend timeout for mjit
1 seconeds is not enough on an specific (busy) machine w/ mjit.
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3830178
ko1 (Koichi Sasada)
04:57 AM Revision 8a0dfd4a (git): * 2022-02-14 [ci skip]
git[bot]
04:56 AM Revision c8b5d703 (git): Merge RubyGems-3.3.7 and Bundler-2.3.7 (#5543)
hsbt (Hiroshi SHIBATA)

02/13/2022

11:43 AM Bug #18584 (Closed): List of Rubies has an error
Can you file it to https://github.com/ruby/actions ?
index.txt was generated by https://github.com/ruby/actions/blob/master/tool/snapshot/update_index.rb
hsbt (Hiroshi SHIBATA)
11:18 AM Bug #18584 (Closed): List of Rubies has an error
There was nowhere obvious on https://www.ruby-lang.org about where to report this problem, so I figured here was as good a place as any...
The name for this entry on https://cache.ruby-lang.org/pub/ruby/index.txt is wrong:
ruby-1.8...
thoran (thoran not blank)
09:25 AM Revision 7a8ea2e4 (git): [MSWin] Install OpenSSL with vcpkg
nobu (Nobuyoshi Nakada)
09:12 AM Feature #18463: Random number generation with xoshiro
@mrkn Happy to add Xoshiro and PCG generators. Probably also good to add
MRG32k3a [1]
Philox [2]
MixMax [3][4]
Squares [5]
The Rust library has good documentation[6], as well as speed comparisons. Would be good to have something s...
bbrklm (Benson Muite)
05:11 AM Feature #18463: Random number generation with xoshiro
@bbrklm I want the Xoshiro256 generator for Ruby, too. In addition to it, I want the dSFMT generator.
I think it is good to create a semi-standard gem library for providing such random number generators. The existence of the semi-st...
mrkn (Kenta Murata)
08:39 AM Revision b4fd0e0c (git): Exclude TestThread#test_signal_at_join on FreeBSD 13 for now [ci skip]
nobu (Nobuyoshi Nakada)
08:02 AM Revision 7cd35926 (git): skip some test using openssl to cease failure on GitHub Actions for MinGW.
nagachika (Tomoyuki Chikanaga)
07:25 AM Bug #18582: Hash.group_by not grouping correctly with SortedSets
You can use `RBTree.method_defined?(:eql?, false)` and so on, instead of `RBTree.instance_methods(false).include?`. nobu (Nobuyoshi Nakada)
07:09 AM Revision b61b4563 (git): skip some tests of rdoc temporary.
nagachika (Tomoyuki Chikanaga)
07:05 AM Revision 6c70a329 (git): merge revision(s) f18a0b7654d471101b207e7fe553e12a25398e45,77e1b477297a48e285d34b21e8d30ab4b46bf90c,c483aa8394fc26e341666db66938b1d6fc2cbb8e,f2e39e5fed498b51ae914ed42ec51ae578330583,6aaa1c4d09249baae93d5bb7fba585be420c4fee,923b3652247aa17ac99dc45cb1cd0654fa08d976,950c7a12efa19d73bed10d377368a50664cae32c,69ce9e4187589335124077029496ee293d4e9189,ddb87396349fa4699153d5c4c7569c2e0186adfc,09e7a0c4a4fba18e3308e4f8cb4b8b5b52b41d20,298d65b1e4f3019af7fc9b905390b56736f5fd0e,2f3edf28f3a251bac2cf3b47b46b372faac71e8e:
[ruby/rdoc] Follow-up rubygems
Use test-unit assertions instead of minitest.
https://github.com/ruby/rdoc/commit/d6a6209d7f
---
test/rdoc/test_rdoc_rubygems_hook.rb | 18 ++++++++++++------
1 fi...
nagachika (Tomoyuki Chikanaga)
06:48 AM Revision a9aa42ac (git): * 2022-02-13 [ci skip]
git[bot]
06:48 AM Revision 045ab1d0 (git): [DOC] Fix a typo in `Integer#chr` example
The current example raises the following error.
```ruby
0..chr # => undefined local variable or method `chr' for main:Object (NameError)
```
This PR updates the example to produce the expected behavior.
```ruby
0.chr # => "\x00"
```
koic (Koichi ITO)
05:30 AM