Project

General

Profile

Activity

From 04/15/2024 to 04/21/2024

04/21/2024

11:47 PM Revision 9b580ee7 (git): [rubygems/rubygems] Clear temporary directory
https://github.com/rubygems/rubygems/commit/4158034d89 nobu (Nobuyoshi Nakada)
02:33 PM Misc #20441: Should passing keyword args to method_name(*) be an error?
Understanding better the role of `ruby2_keywords` is helping, thank you. It seemed to me that either way some compatibility was broken, but the subtleties of maintaining compatibility as well as possible in a variety of circumstances is ... ozydingo (Andrew Schwartz)
08:58 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
> Why does this conversion to a Hash occur?
Because of backward compatibility, indeed. Even now, most of, say, Rails code still uses “old” conventions:
```ruby
def foo(arg1, arg2, options = {})
# ...
end
# and expects it to b...
zverok (Victor Shepelev)
08:47 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
Why does this conversion to a Hash occur?
I would guess for some sense of backward compatibility with gems / code written in earlier versions of Ruby. But #20440 demonstrates why this compatibility is not achieved. To be clear, I'm no...
ozydingo (Andrew Schwartz)
08:33 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
`super` just passes the arguments with EXACTLY the same signature as the method it is in has.
Whether or not `super` is in the method, calling method defined as `foo(*)` with hash-like arguments without braced will implicitly convert...
zverok (Victor Shepelev)
08:25 AM Misc #20441 (Closed): Should passing keyword args to method_name(*) be an error?
In the following method:
```rb
def foo(*)
super
end
```
it is apparently the intended ruby 3 behavior to pass keyword args as a positional Hash to `super`. I believe this is confusing and can lead to hidden and hard-to-discov...
ozydingo (Andrew Schwartz)
08:15 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
Ok I see it now; `super` isn't passing the args as both forms, it's passing _only_ as a positional Hash. The `x: 1` is coming from my default kwarg, which I was blinded to as I attempted to reduce the example to a general form. Thanks all! ozydingo (Andrew Schwartz)
07:44 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
> What still seems off to me is that super is modifying the arguments.
If I understand correctly, what “modifies” the argument is child’s `foo` signature:
```ruby
def foo(*) # <= this says “accept only positional args” (implicitly c...
zverok (Victor Shepelev)
07:02 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
Thanks both. I understand that Ruby 3 requires explicit handling of keyword arguments. What still seems off to me is that `super` is _modifying_ the arguments. The child method is being passed a keyword argument, and `super` is forwardin... ozydingo (Andrew Schwartz)
06:50 AM Revision f87c216c (git): Remove needless header file include
yui-knk (Kaneko Yuichiro)
12:55 AM Revision 381ce130 (git): Remove unused functions from struct `rb_parser_config_struct`
S_H_ (Shun Hiraoka)

04/20/2024

06:55 PM Revision f16c6ac4 (git): [ruby/irb] Stop using ExtendCommandBundle internally
(https://github.com/ruby/irb/pull/925)
This module was used to extend both commands and helpers when they're not
separated. Now that they are, and we have a Command module, we should move
command-related logic to the Command module and ...
st0012 (Stan Lo)
11:04 AM Bug #20440 (Closed): `super` from child class duplicating a keyword argument as a positional Hash
Eregon (Benoit Daloze)
11:04 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
See https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
it also explains `(*, **)` and `(...)` which are better if you don't need compatibility with Ruby < 2.7.
Eregon (Benoit Daloze)
09:55 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
You need to make `foo` `ruby2_keywords` to let it work as same as 2.7 or earlier.
```rb
class Child < Base
ruby2_keywords def foo(*)
puts "Child: calling foo"
super
end
end
Child.new.foo!
```
```
Base: calling fo...
nobu (Nobuyoshi Nakada)
09:12 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
In fact it seems we can simplify this to just calling `Child.new.foo(x: 1)`; no need for the base class `foo!` method.
```rb
Child.new.foo(x: 1)
Child: calling foo
Base: calling foo with args: [{:x=>1}], x: 1
```
Apologies if I'm misu...
ozydingo (Andrew Schwartz)
09:00 AM Bug #20440 (Closed): `super` from child class duplicating a keyword argument as a positional Hash
Apologies for the verbose title, but that's the specific set of conditions that AFAICT are required to reproduce the bug!
Here's the simplest setup I can reproduce:
```rb
class Base
def foo(*args, x: 1)
puts "Base: calling...
ozydingo (Andrew Schwartz)
10:53 AM Revision 2b11bcb8 (git): [ruby/zlib] Clear temporary directory
https://github.com/ruby/zlib/commit/1bed54dcf7 nobu (Nobuyoshi Nakada)
10:30 AM Revision af169472 (git): Remove unused function
yui-knk (Kaneko Yuichiro)
09:08 AM Revision cee985ea (git): Remove unused functions from `struct rb_parser_config_struct`
yui-knk (Kaneko Yuichiro)
09:08 AM Revision d07df856 (git): Parser and universal parser share wrapper functions
yui-knk (Kaneko Yuichiro)
07:51 AM Feature #15554: warn/error passing a block to a method which never use a block
> it's basically a variant of the super case.
I never thought about it this way, but I think it does make sense yes.
> ...
@ko1 sorry didn't answer yet. I'll try to do that Monday.
byroot (Jean Boussier)
06:58 AM Feature #15554: warn/error passing a block to a method which never use a block
Eregon (Benoit Daloze) wrote in #note-40:
> With the example from @mame, I think adding `(&)` or `(&on_missing)` for `Attribute::Attribute#value` would be good to clarify the value method can receive a block, and purposefully ignores it...
matthewd (Matthew Draper)
07:45 AM Revision 125e1ed5 (git): [ruby/irb] Remove exit command workaround, handle IRB_EXIT in
debug_readline
(https://github.com/ruby/irb/pull/923)
* Remove exit and exti! command workaround when executed outside of IRB
Command was a method. It could be executed outside of IRB.
Workaround for it is no longer needed.
* Handle I...
tompng (tomoya ishida)
02:34 AM Revision 9f975566 (git): Fix method name
nobu (Nobuyoshi Nakada)
01:41 AM Revision 9555a997 (git): ensure ibf_load_setup is only passed String params
In cases where RubyVM::InstructionSequence.load_from_binary() is
passed a param other than a String, we attempt to call the
RSTRING_LENINT macro on it which can cause a segfault.
ex:
```
var_0 = 0
RubyVM::InstructionSequence.load_from_b...
zack.ref@gmail.com (Zack Deveau)

04/19/2024

07:25 PM Revision 23be6599 (git): [ruby/prism] Split parse result based on type
https://github.com/ruby/prism/commit/17194e096d kddnewton (Kevin Newton)
06:20 PM Revision cb711df3 (git): [ruby/prism] Do not allow omitted hash keys with ! or ?
https://github.com/ruby/prism/commit/06d358aa8d kddnewton (Kevin Newton)
06:05 PM Revision c7255ca2 (git): [ruby/prism] Fix up ruby_parser translation for dstr
https://github.com/ruby/prism/commit/b0fa4b7cd8 kddnewton (Kevin Newton)
05:35 PM Misc #20436: DevMeeting at RubyKaigi 2024
* [Misc #20434] Deprecate encoding-related regular expression modifiers (kddnewton)
* The relationship between regexp encoding, file encoding, string encoding, and matchee encoding is very confusing.
* A migration path is proposed ...
kddnewton (Kevin Newton)
03:28 PM Misc #20436: DevMeeting at RubyKaigi 2024
* [Misc #20406] Question about Regexp encoding negotiation (andrykonchin)
* It isn't clear enough how a Regexp encoding (what `Regexp#encoding` method returns) is calculated in case an encoding modifier (e.g. `u`, `e`, etc) is specifie...
andrykonchin (Andrew Konchin)
02:12 PM Misc #20436: DevMeeting at RubyKaigi 2024
* [Feature #6648] Provide a standard API for retrieving all command-line flags passed to Ruby (eregon)
* @Dan0042 made a clear proposal in https://bugs.ruby-lang.org/issues/6648#note-10 can we accept it?
* This has been needed for ...
Eregon (Benoit Daloze)
04:47 PM Revision c8783441 (git): Revert "YJIT: Optimize local variables when EP == BP" (#10584)
This reverts commit 4cc58ea0b865f2fd20f1e881ddbd4c4fab0b072c.
Since the change landed call-threshold=1 CI runs have been timing out.
There has also been `verify-ctx` violations. Revert for now while we debug.
alanwu (Alan Wu)
04:29 PM Revision 2e80ceb6 (git): [ruby/prism] Fix it parameters for parser translation
https://github.com/ruby/prism/commit/2f3feb8d51 kddnewton (Kevin Newton)
04:08 PM Bug #20439 (Closed): Invalid string format with n$ flag is ignored in some case
String format including n$ flag and no type specifier raises ArgumentError
~~~ruby
"%1$ " % 1 # invalid format character - % (ArgumentError)
"%1$," % 1 # malformed format string - %, (ArgumentError)
~~~
But when it ends with n$ fl...
tompng (tomoya ishida)
04:06 PM Bug #20438 (Closed): String format "%\n" and "%\0" does not raise format error
`"%" % 1` raises `incomplete format specifier; use %% (double %) instead`
`"%=" % 1` raises `malformed format string - %=`.
But `"%\n" % 1` `"%\0" % 1` does not raise error.
In `sprintf.c`, `\n` and `\0` are explicitly accepted. Is th...
tompng (tomoya ishida)
03:59 PM Feature #20437 (Open): Could the licensing conditions be made less ambiguous?
# Current state
The current [COPYING](https://github.com/ruby/ruby/blob/6cfd929034f1fe3d93160365505a8b88bef56159/COPYING) file says the following:
~~~
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
You ...
vo.x (Vit Ondruch)
03:01 PM Revision 6cfd9290 (git): [ruby/irb] Add MultiIRB commands test
(https://github.com/ruby/irb/pull/929)
https://github.com/ruby/irb/commit/c6bbc424c3
igaiga (Kuniaki Igarashi)
02:17 PM Revision cd95f6b8 (git): Show left files info
nobu (Nobuyoshi Nakada)
02:09 PM Feature #6648: Provide a standard API for retrieving all command-line flags passed to Ruby
I fully agree with the proposal of @Dan0042.
This is also needed for MSpec, which currently works around the lack of it by requiring to pass any ruby option through `-T-option` (which is awkward and error-prone), it would be much nicer i...
Eregon (Benoit Daloze)
02:21 AM Feature #6648: Provide a standard API for retrieving all command-line flags passed to Ruby
I'd like to revive this proposal.
The OP mentions calling a subcommand with the same options/flags as the current interpreter, and that's a fine use case. As for me I'm also interested in re-executing the current script while keeping ru...
Dan0042 (Daniel DeLorme)
02:06 PM Revision c789e4c4 (git): Use isolated temporary directory in test-all too for RubyGems tests
nobu (Nobuyoshi Nakada)
02:02 PM Feature #15554: warn/error passing a block to a method which never use a block
ko1 (Koichi Sasada) wrote in #note-42:
> I made strict mode option for trial (will remove soon)
> ...
I was thinking about that too, to make the duck typing cases opt-in via env var/CLI arg.
It's not ideal because quite hidden but it ...
Eregon (Benoit Daloze)
12:15 PM Feature #15554: warn/error passing a block to a method which never use a block
Thank you for your patience, I finally understand.
---
On a separate note,
based on https://github.com/Shopify/rails/commit/640c7c751fa2b5d3d2e634685fbf0807c639a2ca
it seems that many of the false positives are due to stub metho...
Dan0042 (Daniel DeLorme)
12:11 PM Feature #15554: warn/error passing a block to a method which never use a block
It doesn't matter where `perform_later` is invoked. `perform_later` do accept a block and will yield to it if provided. byroot (Jean Boussier)
12:04 PM Feature #15554: warn/error passing a block to a method which never use a block
> I pasted the code above.
But you didn't paste the part where `perform_later` is invoked, that's what I meant. If someone calls `perform_later{ something }` then that block should be used somewhere, no?
Dan0042 (Daniel DeLorme)
11:15 AM Feature #15554: warn/error passing a block to a method which never use a block
> Is this the fix?
Yes.
> ...
I pasted the code above. But in short `job_or_instantiate` doesn't take a block, but it's just more convenient to forward everything with `...` because we have to deal with `ruby2_keywords` here.
>...
byroot (Jean Boussier)
11:10 AM Feature #15554: warn/error passing a block to a method which never use a block
byroot (Jean Boussier) wrote in #note-44:
> So I went over Rails warnings after the last patch, I may have missed some, but there is now about 5 unique warnings left:
> ...
Sorry, I still don't get this. Is this the fix? https://github...
Dan0042 (Daniel DeLorme)
08:07 AM Feature #15554: warn/error passing a block to a method which never use a block
So I went over Rails warnings after the last patch, I may have missed some, but there is now about 5 unique warnings left:
```
/rails/activejob/lib/active_job/enqueuing.rb:69: warning: the block passed to 'job_or_instantiate' defined...
byroot (Jean Boussier)
05:38 AM Feature #15554: warn/error passing a block to a method which never use a block
> I don't understand that one. ...
As I said previously I made a mistake on that one. But here's the code that cause this warning:
```ruby
def perform_later(...)
job = job_or_instantiate(...)
enqueue_result = job.enqueue
...
byroot (Jean Boussier)
04:31 AM Feature #15554: warn/error passing a block to a method which never use a block
I made strict mode option for trial (will remove soon)
https://github.com/ruby/ruby/pull/10578
@byroot could you compare the results on rails tests?
ko1 (Koichi Sasada)
12:53 AM Feature #15554: warn/error passing a block to a method which never use a block
byroot (Jean Boussier) wrote in #note-26:
> So I'd expect `block_given?` to qualify as "using the block". But I suppose it's tricky because `block_given?` is just a method like any other for the compiler?
I would also expect `block_give...
Dan0042 (Daniel DeLorme)
12:18 PM Revision f17268f7 (git): Extract tmpdir template
nobu (Nobuyoshi Nakada)
12:08 PM Revision 604c29e8 (git): [ruby/reline] Implement `show-all-if-ambiguous` feature
(https://github.com/ruby/reline/pull/683)
https://github.com/ruby/reline/commit/0fe4fdc794
ima1zumi (Mari Imaizumi)
10:39 AM Revision 4218e6bb (git): Remove unused define popcount_bits
eightbitraptor (Matt V-H)
10:32 AM Revision e133d0c7 (git): [ruby/time] Document exception thrown by `Time.strptime`
https://github.com/ruby/time/commit/f9d078082f Artur
07:33 AM Revision 7951b349 (git): Suppress useless linker warnings totally on macOS
nobu (Nobuyoshi Nakada)
06:10 AM Revision 74cd61fb (git): Bump actions/upload-artifact from 4.3.1 to 4.3.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/5d5d22...
dependabot[bot]
05:28 AM Revision 662ce928 (git): `RUBY_TRY_UNUSED_BLOCK_WARNING_STRICT`
`RUBY_TRY_UNUSED_BLOCK_WARNING_STRICT=1 ruby ...` will enable
strict check for unused block warning.
This option is only for trial to compare the results so the
envname is not considered well.
Should be removed before Ruby 3.4.0 release.
ko1 (Koichi Sasada)
05:18 AM Revision 7522d1bf (git): [rubygems/rubygems] Keep backword compatibility of Bundler.require
https://github.com/rubygems/rubygems/commit/f6f79f4c37 hsbt (Hiroshi SHIBATA)
05:18 AM Revision acc326b7 (git): [rubygems/rubygems] Removed needless class name
https://github.com/rubygems/rubygems/commit/a2f43d3756 hsbt (Hiroshi SHIBATA)
05:18 AM Revision a95b46db (git): [rubygems/rubygems] Track HEAD changes for old PR proposal
https://github.com/rubygems/rubygems/commit/e3d180620c hsbt (Hiroshi SHIBATA)
05:18 AM Revision 0a14fee0 (git): [rubygems/rubygems] Removed redundant begin
https://github.com/rubygems/rubygems/commit/a9d22e5f46 hsbt (Hiroshi SHIBATA)
05:18 AM Revision 09cbbe0e (git): [rubygems/rubygems] Add plugin hooks for Bundler.require
https://github.com/rubygems/rubygems/commit/b373b7ed0d fatkodima (Dima Fatko)
05:12 AM Revision 1984db2d (git): Preserve old encinit.c if unchanged
nobu (Nobuyoshi Nakada)
05:12 AM Revision 05d681f9 (git): Make `Output.new` accepts keyword arguments
nobu (Nobuyoshi Nakada)
05:12 AM Revision 801e4a4f (git): Remove UPDATE_LIBRARIES
It has not been used since e48375c112022fa321786ccd95dd4e718efd78a3. nobu (Nobuyoshi Nakada)
05:12 AM Revision 3169c158 (git): Fix rubyspec-capiext dependency
Not to build the rubyspec-capiext extension libraries again on the
next build after the build all extensions get built, ensure these
extensions are up to date when recursively building from exts.mk.
nobu (Nobuyoshi Nakada)
03:58 AM Revision 7f87ad9f (git): Refer autoconfigured endian macro (#10572)
Remove the case `RB_IO_BUFFER_HOST_ENDIAN` is not defined. nobu (Nobuyoshi Nakada)
01:39 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
It's a bit off-topic but does anyone know why NotImplementedError doesn't inherit from StandardError? It seems like it should. If the system doesn't support `fork()` then I'd like to see that as a nice message via Rack::ShowExceptions ra... Dan0042 (Daniel DeLorme)
01:20 AM Feature #20215: Introduce `IO#readable?`
ioquatix (Samuel Williams) wrote in #note-13:
> In practice, persistent connections may sit in a connection pool for minutes or hours, and thus when you come to write a request, there is no easy operation to check "Is this connection st...
Dan0042 (Daniel DeLorme)

04/18/2024

11:32 PM Revision b7c4c886 (git): Update turbo_tests to 2.2.3 or higher
commands/pristine_spec.rb is passed with the turbo_tests 2.2.3 because it the removed json dependency.
Related to https://github.com/ruby/ruby/pull/10496
Related to d60b2caa95b01f37d35db9ef8be1d035d14b408d
ilyazub
10:10 PM Feature #20425: Optimize forwarding callers and callees
ko1 (Koichi Sasada) wrote in #note-6:
> My idea is simple because it is simple replacement with an array (and a hash) to contain arguments (I only proposed lightweight argument container than an array and hash).
> ...
For what it's wor...
tenderlovemaking (Aaron Patterson)
08:25 AM Feature #20425: Optimize forwarding callers and callees
My idea is simple because it is simple replacement with an array (and a hash) to contain arguments (I only proposed lightweight argument container than an array and hash).
This proposal breaks the assumption of VM stack structure. I'm...
ko1 (Koichi Sasada)
09:21 PM Revision 6443d690 (git): Don't mark empty singleton cc's
These cc's aren't managed by the garbage collector so we shouldn't try
to mark and move them.
eileencodes (Eileen Uchitelle)
09:11 PM Revision 64d0817e (git): Remove markable guard before pushing on ccs list
CCS list doesn't mark CI objects, so it doesn't matter whether or not
they are markable before pushing.
tenderlovemaking (Aaron Patterson)
06:50 PM Misc #20434: Deprecate encoding-related regular expression modifiers
Thanks @shyouhei — I definitely only meant encoding-relate modifiers. I really like the other ones! kddnewton (Kevin Newton)
11:41 AM Misc #20434: Deprecate encoding-related regular expression modifiers
This seems a good simplification to me, I think the semantics of these encoding modifiers are confusing to most Rubyists.
I wouldn't be worried too much about length of the replacement, because `/.../s`/`/.../e` are likely very rare (...
Eregon (Benoit Daloze)
09:23 AM Misc #20434: Deprecate encoding-related regular expression modifiers
`/\x81\x40/.force_encoding("Windows-31J")` wouldn't work because `String#force_encoding` mutates the string, and Regexp literals are immutable.
Similarly `String#encode` doesn't just change the string encoding attribute, but convert t...
byroot (Jean Boussier)
06:22 AM Misc #20434: Deprecate encoding-related regular expression modifiers
I guess there might still be some use for the encoding-related modifiers in single-line scripts and the like. But I don't have an actual use case; I hope whoever has such an use case comes forward.
The replacement code (`::Regexp.new(::...
duerst (Martin Dürst)
12:23 AM Misc #20434: Deprecate encoding-related regular expression modifiers
+1 for deprecating encoding modifiers, but they're not everything that a regexp can take. For instance `/foo/i` is a valid regular expression literal in ruby, perl, PHP(preg), and Javascript.
I'm sure Kevin didn't intend to kill ever...
shyouhei (Shyouhei Urabe)
06:50 PM Revision ea7975c5 (git): Include coderange.h in encoding.h
ruby_coderange_type is defined in ruby/internal/encoding/coderange.h so
we need to include it.
peterzhu2118 (Peter Zhu)
06:37 PM Revision 2f812898 (git): Update default gems list at a51139230bfbd509b300fafc48e9a1 [ci skip]
git[bot]
06:36 PM Revision a5113923 (git): [ruby/prism] Bump to v0.26.0
https://github.com/ruby/prism/commit/eadb09ef36 kddnewton (Kevin Newton)
06:34 PM Revision 8f908a35 (git): [ruby/prism] "Fix" transpose issue in parser compiler
https://github.com/ruby/prism/commit/593d637178 kddnewton (Kevin Newton)
04:06 PM Revision 147ca958 (git): Implement equality for CI comparison when CC searching
When we're searching for CCs, compare the argc and flags for CI rather
than comparing pointers. This means we don't need to store a reference
to the CI, and it also naturally "de-duplicates" CC objects.
We can observe the effect with t...
tenderlovemaking (Aaron Patterson)
03:32 PM Revision 8e08556f (git): chore: remove repetitive words (#10573)
Signed-off-by: careworry <worrycare@outlook.com> careworry
02:46 PM Revision ff599aea (git): [ruby/irb] Fix % escape in prompt format
(https://github.com/ruby/irb/pull/927)
https://github.com/ruby/irb/commit/08eee25d28
tompng (tomoya ishida)
02:35 PM Misc #20336: DevMeeting-2024-04-17
@mame, I think I've been doing both things. Some things (like the rejected ticket for weighted samples) came from my own needs, while others were me trying to organize old tickets. I cannot reject/close tickets. Is there something I coul... matheusrich (Matheus Richard)
02:19 PM Revision 81240493 (git): Remove unused rb_size_pool_slot_size
peterzhu2118 (Peter Zhu)
02:04 PM Revision 28efc0c9 (git): YJIT: Fix canary crash with Array#<< (#10568)
Previously, we got "We are killing the stack canary set by opt_ltlt"
from `$./miniruby --yjit-call-threshold=1 -e 'a = [].freeze; a << 1'`
Found by running ruby-spec with yjit-call-threshold=1.
alanwu (Alan Wu)
12:18 PM Feature #15554: warn/error passing a block to a method which never use a block
With the example from @mame, I think adding `(&)` or `(&on_missing)` for `Attribute::Attribute#value` would be good to clarify the value method can receive a block, and purposefully ignores it.
To me it sounds weird that there are metho...
Eregon (Benoit Daloze)
06:07 AM Feature #15554: warn/error passing a block to a method which never use a block
One approach that reduces false positives (invalid warnings) and potentially increases false negatives (missing warnings) would be to only warn for literal blocks and not passed blocks:
```ruby
def foo
end
def bar(&) = foo(&) # n...
jeremyevans0 (Jeremy Evans)
03:14 AM Feature #15554: warn/error passing a block to a method which never use a block
I was also in the camp that `(&)` should be just added, but after analyzing one warning of rails at the dev meeting, I am now a little less sure. I will try to explain my feelings.
---
This call passes a block.
```ruby
read_att...
mame (Yusuke Endoh)
02:34 AM Feature #15554: warn/error passing a block to a method which never use a block
I encouraged the idea of filtering out the warnings by method name at yesterday's meeting.
There were several ideas:
(1) force to add &_ for many methods (matz don't like)
(2) filter warnings by method name (discussed and implemente...
akr (Akira Tanaka)
01:34 AM Feature #15554: warn/error passing a block to a method which never use a block
> I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
Yes. It will reduce many cases and it only warns only a few cases.
> ...
I also understand the opinion.
quote from my comment:
> "Matz ...
ko1 (Koichi Sasada)
11:48 AM Revision 57a262e3 (git): [ruby/irb] Accept " " for colorizing "\t" test
(https://github.com/ruby/irb/pull/924)
https://github.com/ruby/irb/commit/c8182fa490
tompng (tomoya ishida)
11:44 AM Bug #20319: Singleton class is being frozen lazily in some cases
@nobu WDYT? Could you review that PR? Eregon (Benoit Daloze)
10:33 AM Revision 2e978c2c (git): [ruby/irb] Prompt specifiers documentation improvements
(https://github.com/ruby/irb/pull/926)
https://github.com/ruby/irb/commit/e8ea8f253d
Uaitt (Lorenzo Zabot)
08:17 AM Feature #18576 (Closed): Rename `ASCII-8BIT` encoding to `BINARY`
Applied in changeset commit:git|3a7846b1aa4c10d86dc5a91c6df94f89d60bb0c3.
----------
Add a hint of `ASCII-8BIT` being `BINARY`
[Feature #18576]
Since outright renaming `ASCII-8BIT` is deemed to backward incompatible,
the next best thi...
byroot (Jean Boussier)
08:17 AM Revision 3a7846b1 (git): Add a hint of `ASCII-8BIT` being `BINARY`
[Feature #18576]
Since outright renaming `ASCII-8BIT` is deemed to backward incompatible,
the next best thing would be to only change its `#inspect`, particularly
in exception messages.
byroot (Jean Boussier)
08:10 AM Bug #20431 (Feedback): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
Thank you. Currently ruby requires gcc 7 or higher. (#19353) Could you somehow prepare a new gcc and retry to build it?
BTW, as far as I know, RHEL 6 will end Extended Life-cycle Support soon. You might want to upgrade your OS as well...
mame (Yusuke Endoh)
06:56 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
I'm not sure reasoning by analogy with core dumps is sound here. If there was a way to be sure a core dump is stripped of all personally identifiable informations I'd definitely use it to share core dumps when it's useful.
> because, ...
byroot (Jean Boussier)
12:39 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
I'm not sure if I'm in favor of this request then. ObjectSpace.dump_all is very much analogous to a coredump. Both are very handy on occasions. I don't doubt your experience of finding memory leak is real. But... People normally don... shyouhei (Shyouhei Urabe)
05:03 AM Misc #20287 (Closed): DevMeeting before or after RubyKaigi
See https://bugs.ruby-lang.org/issues/20436 ko1 (Koichi Sasada)
05:02 AM Misc #20436 (Closed): DevMeeting at RubyKaigi 2024
RubyKaigi 2024 will be at Okinawa, Japan, May 15th - 17th. We would like to try to hold a face-to-face dev meeting at Okinawa. (@matz will also participate!)
* Date: 2023/05/14 (Tue.) 14:00-18:00 (The day before RubyKaigi)
* Location...
ko1 (Koichi Sasada)
03:46 AM Revision b3c59370 (git): Bump github/codeql-action from 3.25.0 to 3.25.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.0 to 3.25.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md...
dependabot[bot]
03:16 AM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
Ditto for pp.rb. nobu (Nobuyoshi Nakada)
02:43 AM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
Or use `{a!: 1}` for symbol keys? nobu (Nobuyoshi Nakada)
02:07 AM Revision a80f6466 (git): Explicily lock turbo_tests to 2.2.0 in Gemfile
Ruby-core CI is having issues with turbo_tests 2.2.1. This version adds
json as a dependency and the `bundle install` command ruby-core uses is
not able to compile it for some reason.
I was not able to reproduce the issue locally, so th...
nobu (Nobuyoshi Nakada)
02:07 AM Revision bc652d75 (git): [rubygems/rubygems] Never write credentials to lockfiles
https://github.com/rubygems/rubygems/commit/e8a363713e deivid (David Rodríguez)
02:07 AM Revision a3b7a7bc (git): [ruby/reline] Remove unused variable
(https://github.com/ruby/reline/pull/684)
https://github.com/ruby/reline/commit/ce30c23730
kachick (Kenichi Kamiya)
01:27 AM Revision 0f1ef19f (git): [ruby/optparse] Fix typo [ci skip]
https://github.com/ruby/optparse/commit/0aec9adfc5 nobu (Nobuyoshi Nakada)
01:27 AM Revision 88a88b56 (git): [ruby/optparse] [DOC] Package files for RDoc
https://github.com/ruby/optparse/commit/b49cb996af nobu (Nobuyoshi Nakada)
01:27 AM Revision 6ac8f6a1 (git): [ruby/ipaddr] Add IPAddr.cidr to return ip address in cidr notation
https://github.com/ruby/ipaddr/commit/f5b006741f Ben Fritsch
12:54 AM Revision 07771c76 (git): Try increasing timeout-minutes for YJIT Ubuntu
k0kubun (Takashi Kokubun)
12:41 AM Revision ac62c737 (git): gitignore lib/prism/reflection.rb
hsbt (Hiroshi SHIBATA)

04/17/2024

11:16 PM Feature #20215: Introduce `IO#readable?`
Thank you for the explanation of the motivation.
I feel it is reasonable.
However, mame-san still had a question yesterday: why don't you detect an error in writing a request?
I guess it is because writing the request may not fail.
...
akr (Akira Tanaka)
04:25 AM Feature #20215: Introduce `IO#readable?`
After considering the various use cases I have, I think the easiest to describe problem is knowing whether a connection is still "connected" or not, i.e. whether read will definitely fail or might succeed.
I added a full working examp...
ioquatix (Samuel Williams)
01:13 AM Feature #20215: Introduce `IO#readable?`
I couldn't understand the motivation of this issue.
However, the state of the read side of unidirectional data flow (Unix pipe, half of a stream socket, etc.) can be one of the following.
1. We can read 1 or more bytes immediately....
akr (Akira Tanaka)
12:07 AM Feature #20215: Introduce `IO#readable?`
> Even if client.eof? returns false without blocking, it could still result in an EOF with zero read bytes. Therefore, it would be better to do read without unnecessary checks.
I understand, thanks for your question. I may not be able...
ioquatix (Samuel Williams)
11:10 PM Revision 9e0c6311 (git): Update refs [ci skip]
znz (Kazuhiro NISHIYAMA)
11:10 PM Revision 41456eb0 (git): Support Misc tracker [ci skip]
znz (Kazuhiro NISHIYAMA)
10:44 PM Feature #20350: Return chilled string from Symbol#to_s
I am in favor of experimenting. I am in favor of moving to immutable strings in the future if there are no significant incompatibility issues.
Matz.
matz (Yukihiro Matsumoto)
10:29 PM Revision 0727d32b (git): Don't verify during gc_enter when gc is disabled.
RGENGC_CHECK_MODE >=3 fails with an incinsistency in the old object
count during ec_finalization.
This is due to inconsistency introduced to the object graph using T_DATA
finalizers.
This is explained in commit 79df14c04b452411b9d17e26...
eightbitraptor (Matt V-H)
09:48 PM Revision 8b813015 (git): YJIT: A64: Use CBZ/CBNZ to check for zero
* YJIT: A64: Add CBZ and CBNZ encoding functions
* YJIT: A64: Use CBZ/CBNZ to check for zero
Instead of emitting `cmp x0, #0` plus `b.z #target`, A64 offers Compare
and Branch on Zero for us to just do `cbz x0, #target`. This commit
ut...
alanwu (Alan Wu)
08:45 PM Revision 48846d6b (git): add #2709’s new RBIs to `.gemspec`
ParadoxV5
08:16 PM Revision 3a4035a7 (git): Reduce the number of references to need_major_gc
eightbitraptor (Matt V-H)
07:40 PM Misc #20432: Proposal for workflow changes related to teeny releases
I think it would be helpful for communications and expectation setting if there was a regular release cadence. Personally I'd be quite happy with quarterly releases, and I only really care about the latest stable.
The main one I'd li...
masterleep2 (Bill Lipa)
07:30 PM Feature #15554: warn/error passing a block to a method which never use a block
Yes I understand that too. And this will certainly cause a few false negative, but should also remove a lot more false positive.
I don't know if this is the best solution, but based on the warnings I saw in Rails test suite, I think i...
byroot (Jean Boussier)
07:28 PM Feature #15554: warn/error passing a block to a method which never use a block
IIUC @ko1's PR, for example the issue of https://bugs.ruby-lang.org/issues/15554#note-27 wouldn't be found if there is a single `def excluding(*args, &block)` defined anywhere in the loaded code (which does not seem unlikely). Eregon (Benoit Daloze)
04:46 PM Feature #15554: warn/error passing a block to a method which never use a block
> I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
There is definitely a very fine line to walk here between false positives and false negatives.
Some of these warnings are very valuable, as...
byroot (Jean Boussier)
12:52 PM Feature #15554: warn/error passing a block to a method which never use a block
ko1 (Koichi Sasada) wrote in #note-30:
> doesn't show warning.
I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
From my understanding it will not warn if there exists any method of the same name ...
Eregon (Benoit Daloze)
12:34 PM Feature #15554: warn/error passing a block to a method which never use a block
> doesn't show warning.
You are right, I got confused a bit my a `method_missing`. Please ignore that remark about `...`.
On another note, these warnings found another small issue in the Rails test suite: https://github.com/rails/r...
byroot (Jean Boussier)
11:12 AM Feature #15554: warn/error passing a block to a method which never use a block
byroot (Jean Boussier) wrote in #note-28:
> - It generated some false positive because of `...` delegation for methods that don't accept a block.
for examoles?
```ruby
class C
def bar = yield
def foo(...)
bar(...)
e...
ko1 (Koichi Sasada)
11:07 AM Feature #15554: warn/error passing a block to a method which never use a block
Matz hesitates to force to put `&_` (or other tricks) for duck typing methods, so I try to skip warning if a `foo` uses block, any other `foo` doesn't warn this warning even if it doesn't use a block.
```ruby
class C0
...
ko1 (Koichi Sasada)
10:17 AM Feature #15554: warn/error passing a block to a method which never use a block
I worked on clearing these warnings from the Rails test suite: https://github.com/Shopify/rails/commit/640c7c751fa2b5d3d2e634685fbf0807c639a2ca
- It caught one big mistake in the test suite: https://github.com/Shopify/rails/commit/640...
byroot (Jean Boussier)
07:00 PM Revision 4cc58ea0 (git): YJIT: Optimize local variables when EP == BP (#10487)
k0kubun (Takashi Kokubun)
06:59 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
> I also don't see any valid use case for Thread.each_caller_location with a Range with negative begin or end
It's still a slightly cheaper version of `caller_locations(range).each`. I agree that it's not super useful, but I don't thi...
byroot (Jean Boussier)
06:54 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
@byroot It's both, but for TruffleRuby I'm pretty sure the first matters much more.
These few allocations are no big deal on the JVM, so I would expect similar on JRuby.
Walking the stack is also obviously slower with a deeper stack (e...
Eregon (Benoit Daloze)
05:15 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
> the point of Thread.each_caller_location is to not walk the entire stack
Is it to not walk the entire stack, or simply not to generate the `Backtrace::Location` objects for the entire stack? My guess is that the later is most of th...
byroot (Jean Boussier)
10:25 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
mame (Yusuke Endoh) wrote in #note-11:
> A little addition: the dicussion about length and range was considered (not ignored), but @matz said he didn't see the need to make it inconsistent with Kernel#caller and Kernel#caller_locations ...
Eregon (Benoit Daloze)
10:16 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
A little addition: the dicussion about length and range was considered (not ignored), but @matz said he didn't see the need to make it inconsistent with Kernel#caller and Kernel#caller_locations in this case. mame (Yusuke Endoh)
09:47 AM Feature #20335 (Closed): `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
Applied in changeset commit:git|09638741ba4d9547a0e48af8c767744fb1d7f68d.
----------
[Feature #20335] `Thread.each_caller_location` arguments
Accecpt the same arguments as `caller` and `caller_locations`.
nobu (Nobuyoshi Nakada)
09:34 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
Accepted. Thank you.
Matz.
matz (Yukihiro Matsumoto)
07:53 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
https://github.com/ruby/ruby/pull/10554 nobu (Nobuyoshi Nakada)
06:36 PM Revision ca764062 (git): [ruby/irb] Remove internal-only methods from Command::Base
(https://github.com/ruby/irb/pull/922)
* Remove internal-only methods from Command::Base
Command#ruby_args and Command#unwrap_string_literal are used for default command's argument backward compatibility.
Moved these methods to another...
tompng (tomoya ishida)
06:30 PM Misc #20435: DevMeeting-2024-06-06
Note: The next dev meeting in May will be held in person, co-located with RubyKaigi 2024 in Okinawa, Japan. @ko1 will create the ticket for that separately. mame (Yusuke Endoh)
06:26 PM Misc #20435 (Closed): DevMeeting-2024-06-06
# The next dev meeting
**Date: 2024/06/06 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-06-06.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t...
mame (Yusuke Endoh)
06:26 PM Misc #20336 (Closed): DevMeeting-2024-04-17
mame (Yusuke Endoh)
06:17 PM Revision 98c84ef4 (git): [rubygems/rubygems] Excluding local platform from lockfile should not affect musl vs gnu case
This case is for not locking things like `arm-darwin-23` when the
lockfile already includes `arm-darwin`, so that we don't infinitely keep
redundant versioned platforms in the lockfile when not necessary.
We detect this with `Gem::Platf...
mdalessio (Mike Dalessio)
06:01 PM Revision 814dedce (git): Remove unused ruby_sighandler_t
peterzhu2118 (Peter Zhu)
05:54 PM Revision 51485e63 (git): [PRISM] Generate the reflection file
kddnewton (Kevin Newton)
05:54 PM Revision d186eb36 (git): [ruby/prism] Add a reflection API for determining the fields of a node
https://github.com/ruby/prism/commit/f3f9950a74 kddnewton (Kevin Newton)
05:33 PM Revision ee6e591b (git): Use unsigned long long for object ID
Since unsigned long long are minumum 64 bits, we have at least 10**17
object IDs available, so there is no chance it will overflow.
peterzhu2118 (Peter Zhu)
05:13 PM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
An easy fix would be for `Hash#inspect` to include spaces around `=>`. It would also read much nicer in my opinion. byroot (Jean Boussier)
12:17 PM Bug #20433 (Closed): Hash.inspect for some hash returns syntax invalid representation
For these hashes, Hash.inspect returns a syntax invalid representation:
~~~ruby
{ :a! => 1 } # {:a!=>1}
{ :a? => 1 } # {:a?=>1}
{ :* => 1 } # {:*=>1}
{ :== => 1 } # {:===>1}
{ :< => 1 } # {:<=>1}
~~~
`eval(hash.inspect)` will r...
tompng (tomoya ishida)
04:12 PM Revision 15b659ca (git): [ruby/reline] Refactor nomultiline and multiline mode difference
(https://github.com/ruby/reline/pull/653)
* Support multiline input in Reline.readline internally, reduce multiline-singleline branch
* Add readline(singleline) prompt test with force inserting multiline text
https://github.com/ruby/r...
tompng (tomoya ishida)
03:58 PM Misc #20434 (Open): Deprecate encoding-related regular expression modifiers
This is a follow-up to @duerst's comment here: https://bugs.ruby-lang.org/issues/20406#note-6.
As noted in the other issue, there are many encodings that factor in to how a regular expression operates. This includes:
* The encoding...
kddnewton (Kevin Newton)
02:36 PM Revision 8c8068c0 (git): [PRISM] Remove old make targets for state stack
kddnewton (Kevin Newton)
02:36 PM Revision f72436f8 (git): [ruby/prism] Inline pm_state_stack
kddnewton (Kevin Newton)
01:49 PM Revision 209e2f27 (git): Don't allow T_NIL in gc_is_moveable_obj
gc_is_moveable_obj is only given GC managed objects, and T_NIL cannot be
a GC managed type.
peterzhu2118 (Peter Zhu)
12:31 PM Revision 24705659 (git): Inline single use variables
eightbitraptor (Matt V-H)
12:21 PM Bug #20089: Fiber#kill transfers to root fiber
In the case of transfer, it may be possible to store the previous fiber, and on exiting a fiber, when no explicit transfer takes place, transfer back to the fiber that originally transferred into it. I think this is fairly compatible wit... ioquatix (Samuel Williams)
11:36 AM Bug #20414 (Closed): `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
Merged in <https://github.com/ruby/ruby/commit/6ade36c06b7cef948099b8f5f483763498705d12>. ioquatix (Samuel Williams)
10:03 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
Thanks @matz.
To clarify, there are two issues are we addressing.
(1) Improve consistency of `Thread.current.raise` and `Fiber.current.raise`.
(2) Follow `resuming_fiber` when raising exceptions.
They overlap, so are addressed ...
ioquatix (Samuel Williams)
06:19 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
I see no problem in the proposal. I agree.
Matz.
matz (Yukihiro Matsumoto)
11:26 AM Revision e9d7478d (git): relax unused block warning for duck typing
if a method `foo` uses a block, other (unrelated) method `foo`
can receives a block. So try to relax the unused block warning
condition.
```ruby
class C0
def f = yield
end
class C1 < C0
def f = nil
...
ko1 (Koichi Sasada)
11:08 AM Revision 6ade36c0 (git): `Fiber#raise` recursively raises on nested resuming_fiber. (#10482)
* Improve consistency of `Fiber.current.raise`. Samuel Williams
10:57 AM Feature #20300: Hash: set value and get pre-existing value in one call
@matz said he was not sure what a name is good for this method because its true motivation is unclear.
It was originally intended as a method to improve the efficiency of `Set#add?`, but the use case was shifted to a method for thread...
mame (Yusuke Endoh)
04:30 AM Feature #20300: Hash: set value and get pre-existing value in one call
AMomchilov (Alexander Momchilov) wrote in #note-21:
> nobu (Nobuyoshi Nakada) wrote in #note-17:
> ...
`ENV` is a hash-like object, so I'm for `Hash#exchange_value` too.
nobu (Nobuyoshi Nakada)
10:56 AM Feature #20347 (Closed): Separate docs task from all
Applied in changeset commit:git|cc37c89c2f4253a6f39a36ad610d0ba89c4257e8.
----------
Separate docs task from main to install-*
[Feature #20347]
hsbt (Hiroshi SHIBATA)
09:29 AM Feature #20347: Separate docs task from all
In [dev meeting](https://bugs.ruby-lang.org/issues/20336), no one against this. I will do this.
Note:
According to [ruby-dev:39325](https://blade.ruby-lang.org/ruby-dev/39325), we added `docs` task to `all` because we avoid to gene...
hsbt (Hiroshi SHIBATA)
10:56 AM Revision 945a0334 (git): Update build and install document related https://blade.ruby-lang.org/ruby-dev/39325
hsbt (Hiroshi SHIBATA)
10:56 AM Revision cc37c89c (git): Separate docs task from main to install-*
[Feature #20347] hsbt (Hiroshi SHIBATA)
10:38 AM Revision e7493df7 (git): Improve phrasing of ignored block warnings
byroot (Jean Boussier)
10:16 AM Revision 55b68d6c (git): Revert an accidentally merged change [ci skip]
nobu (Nobuyoshi Nakada)
10:07 AM Misc #20422 (Closed): Bugfix release process
We continue to discuss release process at #20432 hsbt (Hiroshi SHIBATA)
01:46 AM Misc #20422: Bugfix release process
I want to upgrade to 3.3, but it's blocked due to #20184.
A segfault on low memory system(~256MB).
PengPengP (Peng Li)
09:47 AM Revision 09638741 (git): [Feature #20335] `Thread.each_caller_location` arguments
Accecpt the same arguments as `caller` and `caller_locations`. nobu (Nobuyoshi Nakada)
08:41 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
> I see no reason to keep them. It is practically proven unnecessary
I disagree. Just to give one example among many, it's very useful when tracking memory leaks. For instance you notice some pattern of a Hash growing, being able from...
byroot (Jean Boussier)
08:38 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
Why not just stop dumping string values? I'm proposing this because I see no reason to keep them. It is practically proven unnecessary; all non-ASCII bits are already silently dropped and no one complains. I prefer simple API for Obje... shyouhei (Shyouhei Urabe)
08:40 AM Revision 7bc66a36 (git): skip on Prism generated iseq
ko1 (Koichi Sasada)
08:35 AM Revision eac3dee9 (git): test_uplus_minus: Use a different string literal
This test fail relatively frequently and it's unclear what is
happening.
```
str: {"address":"0x7fbdeb26d4e0", "type":"STRING", "shape_id":1, "slot_size":40, "class":"0x7fbdd1e0ec50", "frozen":true, "embedded":true, "fstring":true, "byt...
byroot (Jean Boussier)
08:07 AM Revision d31eda8e (git): Add NEWS entry for [[Feature #20429]]
Followup: https://github.com/ruby/ruby/pull/10532 byroot (Jean Boussier)
08:03 AM Revision f9f30180 (git): `ISeq#to_a` respects `use_block` status
```ruby
b = RubyVM::InstructionSequence.compile('def f = yield; def g = nil').to_a
pp b
#=>
...
{:use_block=>true},
...
```
ko1 (Koichi Sasada)
07:58 AM Feature #20429 (Closed): Emit a performance warning when specially optimized core methods are redefined
ko1 (Koichi Sasada)
07:57 AM Feature #20429: Emit a performance warning when specially optimized core methods are redefined
Sounds reasonable. Accepted.
Matz.
matz (Yukihiro Matsumoto)
06:10 AM Bug #20431: Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
gcc version :
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
OS and it's version:
$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:print...
shubham_yadav (Shubham Yadav)
04:58 AM Feature #6413 (Rejected): Make Dir.entries default to Dir.entries(Dir.pwd)
As a language with concurrency, I don't think depending on the current directory implicitly is a good idea.
Matz.
matz (Yukihiro Matsumoto)
04:55 AM Feature #5133 (Rejected): Array#unzip as an alias of Array#transpose
`unzip` is not really intuitive with Ruby's OO design. Unlike Haskell, Ruby does not have static type issues.
Matz.
matz (Yukihiro Matsumoto)
02:45 AM Revision 0b630d64 (git): Bump ruby/setup-ruby from 1.173.0 to 1.174.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.173.0 to 1.174.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/5f19ec79cedfadb78ab837f95b87734d00...
dependabot[bot]
01:29 AM Bug #20418 (Closed): `StringIO#read(..., buffer)` doesn't preserve buffer's encoding
Applied in changeset commit:git|75154dec73e1329693866e3a88cb9febb7635417.
----------
[ruby/stringio] strio_read: preserve buffer encoding on partial
reads
(https://github.com/ruby/stringio/pull/95)
[[Bug #20418]](https://bugs.ruby-lang...
Anonymous
01:29 AM Revision 75154dec (git): [ruby/stringio] strio_read: preserve buffer encoding on partial
reads
(https://github.com/ruby/stringio/pull/95)
[[Bug #20418]](https://bugs.ruby-lang.org/issues/20418)
Ruby IO#read preserves the encoding on partial read, but change it when
reading the whole IO
from commit https://github.com/ruby/...
Jean byroot Boussier
01:15 AM Revision f34409bf (git): [ruby/prism] Fix up more clang-analyzer failures
https://github.com/ruby/prism/commit/f9a1abbc64 kddnewton (Kevin Newton)

04/16/2024

09:53 PM Misc #20422: Bugfix release process
In speaking about 3.3.1, we are working in progress for [that](https://github.com/ruby/ruby/commits/ruby_3_3/).
Please wait for complete that work.
hsbt (Hiroshi SHIBATA)
01:33 PM Misc #20422: Bugfix release process
Thanks for bringing this up. I [tried to discuss it at the last dev meeting](https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-03-14.md?plain=1#L637), but I think the core team missed my question. matheusrich (Matheus Richard)
07:44 PM Feature #20405: Inline comments
I think, unironically, this could be a nice addition. Maybe with a syntax closer to the current comments?
```rb
p #= This is a comment #= and nested one =# =# :| # => :|
```
or more C-like:
```rb
p #* This is a comment #* and nested o...
matheusrich (Matheus Richard)
07:17 PM Misc #20336: DevMeeting-2024-04-17
* [Misc #20432] Proposal for workflow changes related to teeny releases (ufuk)
* This is related to the agenda item proposed by @hsbt in https://bugs.ruby-lang.org/issues/20336#note-12
* Can we discuss the proposals to make branch ...
ufuk (Ufuk Kayserilioglu)
04:47 PM Misc #20336: DevMeeting-2024-04-17
@matheusrich Are you organizing old tickets? If so, I thank you for your activity, and would respectfully recommend that you aim to close/reject them in principle.
The fact that a proposal has remained undecided for a long time suggests...
mame (Yusuke Endoh)
05:26 AM Misc #20336: DevMeeting-2024-04-17
* [Misc #20422] Bugfix release process
* I would like to discuss about the current release workflow.
hsbt (Hiroshi SHIBATA)
06:34 PM Revision d6debba8 (git): Don't check for dynamic symbol in gc_is_moveable_obj
All GC managed symbols are dynamic symbols so we don't need to check it. peterzhu2118 (Peter Zhu)
05:36 PM Feature #20215: Introduce `IO#readable?`
Before the dev meeting, I talked with @akr, who designed the Ruby IO, but we could not understand the motivation of the following branch.
```
if client.eof? # <--- Can hang here!
```
Can you explain what you want to do by this br...
mame (Yusuke Endoh)
09:54 AM Feature #20215: Introduce `IO#readable?`
After some discussion, I investigated libc's `feof`:
1. https://github.com/bminor/glibc/blob/14e56bd4ce15ac2d1cc43f762eb2e6b83fec1afe/libio/feof.c
2. https://github.com/bminor/glibc/blob/14e56bd4ce15ac2d1cc43f762eb2e6b83fec1afe/libio...
ioquatix (Samuel Williams)
01:13 AM Feature #20215: Introduce `IO#readable?`
> Would io.wait_readable(0) work instead? If not, why not?
(1) I don't think it makes sense to add `wait_*` to `StringIO` but it does make sense to add `readable?` to `StringIO`.
(2) `wait_readable(0)` is impossible to replicate the des...
ioquatix (Samuel Williams)
05:24 PM Revision e5df8897 (git): Don't check for thread in gc_sweep_page
We should always have a thread when we sweep so we don't need to check
that it exists.
peterzhu2118 (Peter Zhu)
03:39 PM Misc #20432 (Closed): Proposal for workflow changes related to teeny releases
## Aim
- The cadence of CRuby stable releases is very important for how the project is perceived. Users of CRuby want to get more frequent releases with bug and security fixes, so that they feel confident that their projects and busin...
ufuk (Ufuk Kayserilioglu)
03:20 PM Revision f06670c5 (git): Eliminate usage of OBJ_FREEZE_RAW
Previously it would bypass the `FL_ABLE` check, but
since shapes introduction, it started having a different
behavior than `OBJ_FREEZE`, as it would onyl set the `FL_FREEZE`
flag, but not update the shape.
I have no indication of this c...
byroot (Jean Boussier)
03:20 PM Revision 7380e3d3 (git): RB_OBJ_FREEZE_RAW: Set the object shape
byroot (Jean Boussier)
02:41 PM Revision 39b13e58 (git): YJIT: End send fallback blocks (#10539)
k0kubun (Takashi Kokubun)
02:30 PM Revision 646a0089 (git): [ruby/prism] Fix up clang-analyzer violations
https://github.com/ruby/prism/commit/259aef2acd kddnewton (Kevin Newton)
02:06 PM Revision 79df0f13 (git): [ruby/reline] Refactor history move and history search
(https://github.com/ruby/reline/pull/651)
https://github.com/ruby/reline/commit/90e43e01d4
tompng (tomoya ishida)
01:32 PM Revision 982dfa07 (git): [ruby/prism] Better error recovery for unwritable nodes
https://github.com/ruby/prism/commit/4828e73263 kddnewton (Kevin Newton)
12:44 PM Revision e8f3ea3f (git): Update default gems list at 8e341d81c9a5d9874c2d4b65d87342 [ci skip]
git[bot]
12:42 PM Revision 8e341d81 (git): [ruby/reline] Bump version to 0.5.2
(https://github.com/ruby/reline/pull/682)
https://github.com/ruby/reline/commit/17d12cc511
ima1zumi (Mari Imaizumi)
11:58 AM Revision 639449fe (git): [ruby/reline] Implement changing editing mode
(https://github.com/ruby/reline/pull/681)
https://github.com/ruby/reline/commit/501b9a6c5f
ima1zumi (Mari Imaizumi)
10:55 AM Bug #20430 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
Duplicate of #20431 mame (Yusuke Endoh)
10:32 AM Bug #20430 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
I'm trying to build ruby 3.3.0 with openssl 1.1.0. It fails with below error. My base ruby is 3.2.2.
In file included from ./include/ruby/internal/arithmetic/char.h:23,
from ./include/ruby/internal/arithmetic.h:24,
...
shubham_yadav (Shubham Yadav)
10:55 AM Bug #20431: Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
Could you elaborate your environment? OS and its version, C compiler and its version, etc. mame (Yusuke Endoh)
10:33 AM Bug #20431 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
I'm trying to build ruby from scratch with openss1.1.0. But it's failing with below error.
In file included from ./include/ruby/internal/arithmetic/char.h:23,
from ./include/ruby/internal/arithmetic.h:24,
...
shubham_yadav (Shubham Yadav)
10:27 AM Feature #20428 (Closed): Ability to reference current class/module in lexical scope
Eregon (Benoit Daloze)
10:24 AM Revision 54d472d9 (git): [rubygems/rubygems] Honor a specified path as the temporary diretory if given
## The problem
Currently the tests are executed in the fixed name directory "tmp"
under the top source directory. However it makes the tests fail when
the source path contains symlinks. Or unable to even start if the top
source direct...
nobu (Nobuyoshi Nakada)
10:11 AM Feature #20429: Emit a performance warning when specially optimized core methods are redefined
+1, great idea.
I will likely do the same in TruffleRuby (there is already a way to find out via `--engine.TraceAssumptions` but that's more general and less user-friendly).
Eregon (Benoit Daloze)
06:25 AM Feature #20429 (Closed): Emit a performance warning when specially optimized core methods are redefined
MRI has a number of core methods with special handling in the interpreter and both JITs that if they are redefined negatively impact Ruby performance.
The methods currently are (I may be missing a few):
- `Integer`: `#+`, `#-`, `...
byroot (Jean Boussier)
08:41 AM Feature #20351: Optionally extract common GC routines into a DSO
Do you have an idea of a timeline for Ractor local GC? Is there an open feature request I can read (I've searched on Redmine and I can't find one).
It's hard for us to assess any collisions between this work and Ractor local GC at the...
eightbitraptor (Matt V-H)
01:01 AM Feature #20351: Optionally extract common GC routines into a DSO
Please note that we are working on ractor local GC and I'm not sure we can fix "GC interface". ko1 (Koichi Sasada)
07:49 AM Bug #20325 (Closed): Enumerator.product.size bug with zero * infinite enumerators
Applied in changeset commit:git|29110fe18d8f10f649cbcd43a9726069bfff1c54.
----------
[Bug #20325] `Enumerator.product.size` is 0 if any size is 0
nobu (Nobuyoshi Nakada)
07:13 AM Revision 29110fe1 (git): [Bug #20325] `Enumerator.product.size` is 0 if any size is 0
nobu (Nobuyoshi Nakada)
06:41 AM Feature #20350: Return chilled string from Symbol#to_s
> `Symbol#name` returns frozen string. It is not enough?
It doesn't work well with duck typing. It's common to have a method that call `to_s` on the argument, and the argument can be a Symbol or another type:
```ruby
def some_meth...
byroot (Jean Boussier)
06:30 AM Feature #20350: Return chilled string from Symbol#to_s
`Symbol#name` returns frozen string.
It is not enough?
ko1 (Koichi Sasada)
06:33 AM Bug #20340: Ractor comments not applying to constant targets
good catch. ko1 (Koichi Sasada)
06:09 AM Revision 53a8ad15 (git): Escape colons in pre-commit dependency [ci skip]
Colons are special in Makefiles. nobu (Nobuyoshi Nakada)
05:48 AM Revision f8f542bd (git): [ruby/pathname] Remove check for File.birthtime
File.birthtime has existed since Ruby 2.2, and pathname requires Ruby
>= 2.7.0, so the method will always be there.
https://github.com/ruby/pathname/commit/aca9613bbf
peterzhu2118 (Peter Zhu)
04:22 AM Revision c4974273 (git): Bump github/codeql-action from 3.24.10 to 3.25.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.10 to 3.25.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.m...
dependabot[bot]
02:22 AM Revision 7227b859 (git): Merge RubyGems 3.5.9 and Bundler 2.5.9 (Fixed CI at Ruby 3.3) (#10348)
* Merge RubyGems-3.5.6 and Bundler-2.5.6
* Merge RubyGems-3.5.7 and Bundler-2.5.7
* Merge RubyGems-3.5.8 and Bundler-2.5.8
* Partly reverted about https://github.com/rubygems/rubygems/pull/7483
* Merge RubyGems-3.5.9 and Bundler-2.5.9
hsbt (Hiroshi SHIBATA)
02:01 AM Revision 4fcf007e (git): [DOC] Update NEWS.md [Misc #18984]
kyanagi (Kouhei Yanagita)

04/15/2024

11:33 PM Revision fc8099ae (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.91 to 0.9.94.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.91...v0.9.94)
---
updated-depende...
dependabot[bot]
11:33 PM Revision 0118f542 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.91 to 0.9.94.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.91...v0.9.94)
---
updated-depende...
dependabot[bot]
10:32 PM Feature #20428: Ability to reference current class/module in lexical scope
ufuk (Ufuk Kayserilioglu) wrote in #note-1:
> I think you should be able to use `Module.nesting.first` to get the closest lexical nesting to the executing code. There might be edge-cases where this doesn't work the way you might want it...
hibachrach (Hazel Bachrach)
10:28 PM Feature #20428: Ability to reference current class/module in lexical scope
I think you should be able to use `Module.nesting.first` to get the closest lexical nesting to the executing code. There might be edge-cases where this doesn't work the way you might want it to work, but it definitely works for your exam... ufuk (Ufuk Kayserilioglu)
10:17 PM Feature #20428 (Closed): Ability to reference current class/module in lexical scope
Hello! As far as I know, there is no way to reference the current `Class` or `Module` one is inside of lexically in Ruby. Would it make sense to add a syntax/keyword for this?
``` ruby
module Foo
module Bar
def blah
pu...
hibachrach (Hazel Bachrach)
10:15 PM Revision ebaa87f6 (git): Remove unused functions from `struct rb_parser_config_struct`
yui-knk (Kaneko Yuichiro)
09:40 PM Feature #15554: warn/error passing a block to a method which never use a block
Also to include a positive note, it's definitely pointing at valuable things, e.g. from our test suite:
```ruby
SOME_LIST.excluding(things) do |behaviour|
test "#... snip #{behaviour.serialize}" do
# ...snip
...
byroot (Jean Boussier)
09:33 PM Feature #15554: warn/error passing a block to a method which never use a block
I'm yet to process the warnings uncovered in our app, but to share an early one I think is relevant, from `statsd-instrument`:
```ruby
def distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &b...
byroot (Jean Boussier)
04:42 AM Feature #15554 (Closed): warn/error passing a block to a method which never use a block
Applied in changeset commit:git|9180e33ca3a5886fec3f9e0a2f48072b55914e65.
----------
show warning for unused block
With verbopse mode (-w), the interpreter shows a warning if
a block is passed to a method which does not use the given b...
ko1 (Koichi Sasada)
03:22 AM Feature #15554: warn/error passing a block to a method which never use a block
merged, but please give us your feedback. ko1 (Koichi Sasada)
08:02 PM Feature #20351 (Closed): Optionally extract common GC routines into a DSO
eightbitraptor (Matt V-H)
08:02 PM Feature #20351: Optionally extract common GC routines into a DSO
Closed by https://github.com/ruby/ruby/pull/10456 eightbitraptor (Matt V-H)
06:50 PM Revision f5d89267 (git): Add --with-shared-gc to Ubuntu CI
eightbitraptor (Matt V-H)
06:50 PM Revision 065710c0 (git): Initialize external GC Library
Co-Authored-By: Peter Zhu <peter@peterzhu.ca> eightbitraptor (Matt V-H)
06:50 PM Revision a2ea4ec3 (git): Add --with-shared-gc build flag
eightbitraptor (Matt V-H)
06:29 PM Revision f86fb1ed (git): add allocation benchmark
tenderlovemaking (Aaron Patterson)
05:58 PM Bug #20411 (Closed): Kenrel.autoload? behaviour
Fixed by commit:1984f9aedcbb11f0770257eb5ecd4d4f37e0efd5 jeremyevans0 (Jeremy Evans)
05:55 PM Revision 1984f9ae (git): Specify Kernel#autoload? uses current namespace
Because Kernel#autoload? uses the current namespace, it can lead to
potentially confusing results. We should make it clearer that modules
count as separate namespaces to lookup in.
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Co-...
gmcgibbon (Gannon McGibbon)
05:44 PM Revision 733d50f0 (git): Remove dependency on gc.h for darray.h
peterzhu2118 (Peter Zhu)
04:57 PM Revision 66bfcba5 (git): Not all `nm`s support the `--help` option
nobu (Nobuyoshi Nakada)
04:21 PM Revision d019b3ba (git): Emit a performance warning when redefining specially optimized methods
This makes it easier to notice a dependency is causing interpreter or
JIT deoptimization.
```ruby
Warning[:performance] = true
class String
def freeze
super
end
end
```
```
./test.rb:4: warning: Redefining 'String#freeze' disa...
byroot (Jean Boussier)
03:59 PM Revision 2eafed0f (git): YJIT: A64: Avoid intermediate register in `opt_and` and friends (#10509)
Same idea as the x64 equivalent in c2622b52536c5, removing the register
shuffle coming from the pop two, push one stack motion these VM
instructions perform.
```
# Insn: 0004 opt_or (stack_size: 2)
- orr x11, x1, x9
- mov x1, x11
...
alanwu (Alan Wu)
01:31 PM Revision 0a4e3f23 (git): [ruby/reline] Remove not implemented method
(https://github.com/ruby/reline/pull/680)
https://github.com/ruby/reline/commit/84762fc588
ima1zumi (Mari Imaizumi)
01:15 PM Revision 43f4da3e (git): [ruby/reline] Fix vi_to_column which was broken
(https://github.com/ruby/reline/pull/679)
https://github.com/ruby/reline/commit/9e93ad52e7
tompng (tomoya ishida)
12:56 PM Revision 07ff4aa1 (git): Include more debug information in test_uplus_minus
byroot (Jean Boussier)
11:51 AM Revision 9b1e97b2 (git): [Universal parser] DeVALUE of p->debug_lines and ast->body.script_lines
This patch is part of universal parser work.
## Summary
- Decouple VALUE from members below:
- `(struct parser_params *)->debug_lines`
- `(rb_ast_t *)->body.script_lines`
- Instead, they are now `rb_parser_ary_t *`
- They can also...
hasumikin (hitoshi hasumi)
09:06 AM Revision bb1c3418 (git): Add more assertions in `test_uplus_minus`
Not along after 1b830740ba8371c4bcfdfc6eb2cb7e0ae81a84e0 CI
started to rarely fail this test:
```
TestString#test_uplus_minus: Test::Unit::AssertionFailedError: uminus deduplicates [Feature #13077].
1) Failure:
TestString#test_uplus_m...
byroot (Jean Boussier)
08:56 AM Revision 9a57b047 (git): `super{}` doesn't use block
`super(){}`, `super{}` and `super(&b)` doesn't use the given
block so warn unused block warning when calling a method which
doesn't use block with above `super` expressions.
e.g.: `def f = super{B1}` (warn on `f{B2}` because `B2` is not...
ko1 (Koichi Sasada)
05:53 AM Revision 145cced9 (git): fix incorrect warning.
`super()` (not zsuper) passes the passed block and
it can be used.
```ruby
class C0
def foo; yield; end
end
class C1 < C0
def foo; super(); end
end
C1.new.foo{p :block} #=> :block
```
ko1 (Koichi Sasada)
05:07 AM Revision b6a10a15 (git): Update default gems list at fc363944b40e4031b447f91fa89793 [ci skip]
git[bot]
05:06 AM Revision fc363944 (git): [ruby/optparse] bump up to 0.5.0
https://github.com/ruby/optparse/commit/f5018a8b1c nobu (Nobuyoshi Nakada)
05:06 AM Revision 33bf1fc1 (git): * 2024-04-15 [ci skip]
git[bot]
05:05 AM Revision 5aca51d3 (git): No longer download zlib source
Although zlib package in vcpkg is still 1.2.12, it should be no
problem in ruby tests.
nobu (Nobuyoshi Nakada)
05:05 AM Revision ecf9b15c (git): [MSWin] Install libffi using vcpkg
nobu (Nobuyoshi Nakada)
05:05 AM Revision d2dc49d8 (git): We didn't invoke leaked-globals at ruby_3_0
hsbt (Hiroshi SHIBATA)
05:05 AM Revision c86a8529 (git): openssl of Ruby 3.0 couldn't build with c2x compiler
hsbt (Hiroshi SHIBATA)
05:05 AM Revision 2d8337b0 (git): coroutine=pthread is not working with Ruby 3.0
hsbt (Hiroshi SHIBATA)
05:05 AM Revision e85273c5 (git): tool/leaked-globals: ignore function typedef [ci skip]
nobu (Nobuyoshi Nakada)
05:05 AM Revision f95abc3c (git): Canonicalization functions were removed already
At b958e2add835d62c0a62edaf9a23ecbbd70a3635 nobu (Nobuyoshi Nakada)
05:05 AM Revision 682d7e31 (git): Ignore symbols declared in the platform header
nobu (Nobuyoshi Nakada)
05:05 AM Revision 3fdc8e90 (git): Ignore objects from the "missing" directory
nobu (Nobuyoshi Nakada)
05:05 AM Revision 10b30c7d (git): Get rid of \K for old BASERUBYs which have a bug in String#scan
nobu (Nobuyoshi Nakada)
05:05 AM Revision 984ff9c6 (git): Exclude entry points
nobu (Nobuyoshi Nakada)
05:05 AM Revision cbe3a916 (git): Support AC_FUNC_MEMCMP
nobu (Nobuyoshi Nakada)
05:05 AM Revision 3b9012ec (git): Backport compilers.yml from ruby_3_1
hsbt (Hiroshi SHIBATA)
05:05 AM Revision 2676046c (git): Don't upgrade brew packages
hsbt (Hiroshi SHIBATA)
05:05 AM Revision 3229fb97 (git): * 2024-04-15 [ci skip]
git[bot]
05:05 AM Revision 74879c7d (git): We no longer use Cirrus CI
hsbt (Hiroshi SHIBATA)
05:05 AM Revision b0aff455 (git): [MSWin] Install libffi using vcpkg
nobu (Nobuyoshi Nakada)
05:05 AM Revision 1fb8872b (git): Skip c99 and c2x compilers because Ruby 3.1 couldn't build openssl gem with them.
https://github.com/ruby/ruby/actions/runs/8657971535/job/23741841371?pr=10512
https://github.com/ruby/ruby/actions/runs/8657971535/job/23741841091?pr=10512
hsbt (Hiroshi SHIBATA)
05:05 AM Revision e9175573 (git): merge revision(s) 64b6a018a38f200c957fdbbe7d0cbe0e64781c9f:
Fix test session reuse but expire (#9824)
* OpenSSL 3.2.1 30 Jan 2024 is also broken
Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch
tentatively.
---
test/net/http/test_http...
nagachika (Tomoyuki Chikanaga)
05:05 AM Revision cf8149ab (git): Try to fix https://github.com/ruby/ruby/actions/runs/8370868368/job/22918952425?pr=10321
ruby_3_2 fixed that with https://github.com/ruby/ruby/commit/e777064e4b064fd77aca65c123f1919433f6732d hsbt (Hiroshi SHIBATA)
03:08 AM Revision 9180e33c (git): show warning for unused block
With verbopse mode (-w), the interpreter shows a warning if
a block is passed to a method which does not use the given block.
Warning on:
* the invoked method is written in C
* the invoked method is not `initialize`
* not invoked with ...
ko1 (Koichi Sasada)
 

Also available in: Atom