Project

General

Profile

Activity

From 04/11/2024 to 04/17/2024

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)

04/14/2024

09:29 PM Revision 515e52a0 (git): Emit `warn` event for duplicated hash keys on ripper
Need to use `rb_warn` macro instead of calling `rb_compile_warn`
directly to emit `warn` event on ripper.
yui-knk (Kaneko Yuichiro)
05:33 PM Revision 339128b1 (git): [ruby/reline] Refactored Default Key Bindings
(https://github.com/ruby/reline/pull/678)
* Reduce duplicate method
* Configured default key mapping with Readline when the method exists
* Remove undefined methods
https://github.com/ruby/reline/commit/155f7047bb
ima1zumi (Mari Imaizumi)
02:28 PM Revision 1648c443 (git): [ruby/reline] Refactor waiting_proc and waiting_operator_proc
(https://github.com/ruby/reline/pull/649)
* Fix waiting_proc precedence
* Fix waiting_operator bugs
* Add waiting_proc and vi_waiting_operator test
* Fix vi waiting operator arg number
vi_arg and vi_waiting_operator_arg should be mu...
tompng (tomoya ishida)
11:35 AM Revision 8d5d6ec6 (git): [pty] Fix missing `or`
nobu (Nobuyoshi Nakada)
11:27 AM Revision 3368913b (git): [pty] Fix `ptsname_r` fallback
If `posix_openpt` is available, also `ptsname` should be available. nobu (Nobuyoshi Nakada)
11:01 AM Revision 04ba96e6 (git): [ruby/irb] Allow defining custom commands in IRB
(https://github.com/ruby/irb/pull/886)
This is a feature that has been requested for a long time. It is now
possible to define custom commands in IRB.
Example usage:
```ruby
require "irb/command"
class HelloCommand < IRB::Command::Ba...
st0012 (Stan Lo)
09:13 AM Revision 76b10f2e (git): [ruby/reline] Support `menu-complete-backward` command for upward
navigation
(https://github.com/ruby/reline/pull/677)
Fixes https://github.com/ruby/reline/pull/675
This commit extracts the upward navigation condition in `LineEditor#input_key` to a new private method, and adds a new alias. This chang...
Michael J. Giarlo
05:49 AM Bug #20427 (Closed): Backport: Heap buffer overflow in `Array#sort!` when block modifies target array
commit:c479492a6701dcef3d3a96de8946ecf7beb079d4
nobu (Nobuyoshi Nakada)
12:47 AM Bug #20427 (Closed): Backport: Heap buffer overflow in `Array#sort!` when block modifies target array
**(note: It was decided we should handle this in the public issue tracker in security ticket #2327648)**
The attached patch [has been applied to `master`](https://github.com/ruby/ruby/pull/10522) and should apply to latest `3.3.0` for...
zack.ref@gmail.com (Zack Deveau)
01:51 AM Revision 38b8bdb8 (git): Remove undefined function's prototype declaration
89cfc152071 removed the definition of these functions. yui-knk (Kaneko Yuichiro)
12:08 AM Revision 924b928e (git): Remove unused functions from `struct rb_parser_config_struct`
yui-knk (Kaneko Yuichiro)
12:08 AM Revision 5970386a (git): Use `rb_parser_string_t *` for `delayed.token`
yui-knk (Kaneko Yuichiro)

04/13/2024

11:41 PM Revision c479492a (git): Resize ary when `Array#sort!` block modifies embedded ary
In cases where `rb_ary_sort_bang` is called with a block and
tmp is an embedded array, we need to account for the block
potentially impacting the capacity of ary.
ex:
```
var_0 = (1..70).to_a
var_0.sort! do |var_0_block_129, var_1_block...
zack.ref@gmail.com (Zack Deveau)
08:40 PM Misc #20422: Bugfix release process
I would also love to see more transparency here. We want to upgrade to 3.3, but we're currently blocked due to https://bugs.ruby-lang.org/issues/20091 and unsure when a patch release will hit. zeke (Zeke Gabrielse)
07:29 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
matz (Yukihiro Matsumoto) wrote in #note-14:
> I don't object to the proposal itself. But as @ko1 searched, there are so many gems that compare `Encoding#name` and `ASCII-8BIT`.
> ...
I've been developing with Ruby for some 10+ years n...
alexander-s (Alexander S)

04/12/2024

11:47 PM Revision 43a6690d (git): [PRISM] Enable passing test_parenthesised_statement_argument
kddnewton (Kevin Newton)
09:46 PM Revision 3c075675 (git): [ruby/prism] Better error message on statement inside argument list
https://github.com/ruby/prism/commit/3b1a99526a kddnewton (Kevin Newton)
09:46 PM Revision 10d0abb4 (git): [PRISM] Enable passing tests from latest prism
kddnewton (Kevin Newton)
09:46 PM Revision 7baecc2e (git): [PRISM] Emit parse warnings before raising syntax errors
kddnewton (Kevin Newton)
09:46 PM Revision 650b5e5a (git): [PRISM] Enable more passing tests
kddnewton (Kevin Newton)
09:07 PM Feature #20425: Optimize forwarding callers and callees
tenderlovemaking (Aaron Patterson) wrote in #note-4:
> ko1 (Koichi Sasada) wrote in #note-2:
> ...
I tried running `vm_call` benchmarks. I can't tell if there is any impact. Benchmark results are [here](https://gist.github.com/tenderl...
tenderlovemaking (Aaron Patterson)
04:10 PM Feature #20425: Optimize forwarding callers and callees
ko1 (Koichi Sasada) wrote in #note-2:
> I think it is good idea but I'm concerned that the code on github may affect normal cases because of additional code path.
It only impacts the `send` instruction and `invokesuper` instruction. ...
tenderlovemaking (Aaron Patterson)
05:28 AM Feature #20425: Optimize forwarding callers and callees
Instead of introducing new rules and complex code, I think providing lightweight container than Array/Hash is better.
Consider `def f(...) = g(...)`:
* Introducing argument object (like JS) by imemo and pass it as a unique paramete...
ko1 (Koichi Sasada)
04:37 AM Feature #20425: Optimize forwarding callers and callees
I think it is good idea but I'm concerned that the code on github may affect normal cases because of additional code path. ko1 (Koichi Sasada)
05:49 PM Revision 1521af32 (git): [ruby/prism] Better error message on invalid def
https://github.com/ruby/prism/commit/d398e7d22c kddnewton (Kevin Newton)
05:30 PM Revision 52b86239 (git): [ruby/prism] Syntax error for block argument on yield
https://github.com/ruby/prism/commit/9feeafbc67 kddnewton (Kevin Newton)
04:50 PM Revision 0424c1fa (git): [ruby/prism] Fix up embdoc lexing on EOF
https://github.com/ruby/prism/commit/8ee43be26d kddnewton (Kevin Newton)
04:05 PM Misc #20336: DevMeeting-2024-04-17
* [Bug #20424] Zlib readpartial double allocations when reading into outbuf
* Major source of allocations for rubygems & bundler
* the linked PR fixes and has been open for a while, can we merge & ship it?
segiddins (Samuel Giddins)
03:37 PM Bug #20426: crash on aarch64 linux when using fibers (regression with 3.3)
I believe this is the same issue as https://bugs.ruby-lang.org/issues/20085 which is fixed and back-ported, waiting for a release of 3.3.1. ufuk (Ufuk Kayserilioglu)
02:54 PM Bug #20426 (Closed): crash on aarch64 linux when using fibers (regression with 3.3)
We are seeing crashes when using Ruby 3.3 on aarch64-linux and the concurrent-ruby gem. We reduced the crashing testcase to:
```
Fiber.new {}.resume
```
which crashes on 3.3.0:
```
🍖 froydnj@froydnj-arm64-devbox(graviton):~/...
froydnj (Nathan Froyd)
03:27 PM Revision 9bab179c (git): Don't treat flonum specially in object ID
flonum is just a special constant, so we don't need to treat it in any
special way.
peterzhu2118 (Peter Zhu)
03:27 PM Revision edec690e (git): Refactor how object IDs work for special consts
We don't need to treat static symbols in any special way since they
can't be confused with other special consts or GC managed objects.
peterzhu2118 (Peter Zhu)
03:07 PM Revision 3629d4df (git): [PRISM] Enable passing tests for prism
kddnewton (Kevin Newton)
02:58 PM Revision c41ecf3f (git): [ruby/prism] Create the warning for unreachable statements
https://github.com/ruby/prism/commit/e17c86b886 kddnewton (Kevin Newton)
02:30 PM Revision c553d348 (git): [ruby/prism] Warn void regardless of eval
https://github.com/ruby/prism/commit/48ba434fa4 kddnewton (Kevin Newton)
02:29 PM Revision 5f2bcbb6 (git): [PRISM] Ensure no void warnings in rubyoptions test
kddnewton (Kevin Newton)
02:10 PM Revision 8e514bed (git): [ruby/prism] Remove outdated comment
https://github.com/ruby/prism/commit/9adc88ddf8 kddnewton (Kevin Newton)
02:10 PM Revision 4fc457e2 (git): [ruby/prism] Implement the void statement warning
https://github.com/ruby/prism/commit/802ff71cd4 kddnewton (Kevin Newton)
01:55 PM Revision 0924ff2d (git): [ruby/prism] Fix parser translation's heredoc whitespace calculation
Given this example:
```rb
<<~HEREDOC
#{x}
HEREDOC
```
Both the parser gem and Prism's translation layer would generate the following AST:
```
s(:dstr,
s(:begin,
s(:int, 1)),
s(:str, " a\n"))
```
However, the parser gem inse...
Stan Lo
01:52 PM Revision abd05c84 (git): Sync latest prism
kddnewton (Kevin Newton)
01:31 PM Revision a64a42ae (git): [rubygems/rubygems] `bundle add --glob` continued- quote glob value invocation in specs, add banner text for CLI recommending single quotes
https://github.com/rubygems/rubygems/commit/6d2cf955f9 David Marshall
01:31 PM Revision c4b5f3f1 (git): [rubygems/rubygems] bundler CLI option for add gem --glob=
Bundler online documentation says that if the gem is located within a subdirectory of a git repository,
you can use the `:glob` option to specify the location of its .gemspec
`gem 'cf-copilot', git: 'https://github.com/cloudfoundry/copi...
David Marshall
12:01 PM Revision f1d9e895 (git): [ruby/irb] Pass statements to Context#evaluate
(https://github.com/ruby/irb/pull/920)
This has a few benefits:
- We can keep hiding the evaluation logic inside the Context level, which
has always been the convention until #824 was merged recently.
- Although not an official API, ...
st0012 (Stan Lo)
09:31 AM Revision 7b8b936f (git): [DOC] Fix the wrong comment
This function checks the CL's superclasses containing the class C at
the end of it. That means C is a superclass of CL, not a subclass.
tagomoris (Satoshi Tagomori)
09:22 AM Revision 91c457e0 (git): Parenthesized SVN IDs in .mailmap look too verbose [ci skip]
nobu (Nobuyoshi Nakada)
08:02 AM Revision 69823b97 (git): [Bug #20423] Fix error message of prism
nobu (Nobuyoshi Nakada)
07:59 AM Bug #20423 (Closed): Anonymous block forwarding shouldn't work with ... but it does
Applied in changeset commit:git|e36988450e9e9ccccb41c72135f1e57790920668.
----------
[Bug #20423] Disallow anonymous block within argument forwarding
nobu (Nobuyoshi Nakada)
07:30 AM Bug #20423: Anonymous block forwarding shouldn't work with ... but it does
https://github.com/ruby/ruby/pull/10514 nobu (Nobuyoshi Nakada)
07:07 AM Revision e3698845 (git): [Bug #20423] Disallow anonymous block within argument forwarding
nobu (Nobuyoshi Nakada)
12:31 AM Revision 971b5527 (git): [PRISM] Suppress compiler warnings
../prism_compile.c: In function ‘pm_compile_node’:
../compile.c:583:24: warning: ‘retry_end_l’ may be used uninitialized in this function [-Wmaybe-uninitialized]
583 | anchor->last->next = elem;
| ~~~~~~~~~~~~~~~~~~~^~~~~...
k0kubun (Takashi Kokubun)

04/11/2024

11:58 PM Feature #20425: Optimize forwarding callers and callees
We have tests that measure allocations. I had to update the tests because of the reduction in allocations, so you can see the impact of this patch [here](https://github.com/ruby/ruby/pull/10510/files#diff-4ce0c19ae42a98cc312d3fd2870a13d... tenderlovemaking (Aaron Patterson)
11:52 PM Feature #20425 (Closed): Optimize forwarding callers and callees
[This PR](https://github.com/ruby/ruby/pull/10510) optimizes forwarding callers and callees. It only optimizes methods that only take `...` as their parameter, and then pass `...` to other calls.
Calls it optimizes look like this:
...
tenderlovemaking (Aaron Patterson)
07:47 PM Revision 842f151d (git): [PRISM] Enable more passing tests
kddnewton (Kevin Newton)
07:35 PM Revision c5e661b1 (git): [rubygems/rubygems] Fix installing plugins via relative paths
This affected both CLI and Gemfile installs
https://github.com/rubygems/rubygems/commit/a0d101a8df
Cody Cutrer
07:20 PM Bug #20424 (Closed): ZLib::GZipReader always double allocates strings when passed outbuf, significantly increasing memory usage
In trying to improve the memory performance during the install of rubygems, we previously found a bug in `eof?`. Further investigation into the memory usage during the fix for this bug found wasteful allocating of strings in readpartial ... martinemde (Martin Emde)
06:53 PM Revision cd516ebd (git): [ruby/prism] Add Location#chop
https://github.com/ruby/prism/commit/5dd57f4b84 kddnewton (Kevin Newton)
06:39 PM Bug #20423 (Closed): Anonymous block forwarding shouldn't work with ... but it does
According to [this note](https://bugs.ruby-lang.org/issues/11256#note-16), anonymous block forwarding should only be supported when explicitly used in the method signature.
For example:
```ruby
def foo(&) = bar(&) # OK
def foo = ...
tenderlovemaking (Aaron Patterson)
06:39 PM Revision 58f93eec (git): [PRISM] Fix break in super block
kddnewton (Kevin Newton)
05:21 PM Misc #20422 (Closed): Bugfix release process
I was wondering if it would be possible to have more frequent bug fix releases of the latest stable Ruby. For example, if there was a 3.x.1 available two to three months after 3.x came out, it would make it more appealing to upgrade fro... masterleep2 (Bill Lipa)
04:18 PM Revision bb5ed8b3 (git): [PRISM] Fix flags on local variable operator write nodes
kddnewton (Kevin Newton)
04:08 PM Revision f2369de2 (git): Remove redundant cast
ptr is already of the VALUE type, so we don't need to cast it. peterzhu2118 (Peter Zhu)
03:57 PM Bug #20421 (Closed): String#index and String#byteindex don't clear `$~` when offset > size (or bytesize)
When String#index and String#byteindex are called with Regexp and offset they clear `$~` (that contains result of the last Regexp matching) when offset < -size. But they don't clear `$~` when offset > size what seems inconsistent:
```...
andrykonchin (Andrew Konchin)
02:47 PM Revision ca81f5a5 (git): Realclean extracted bundled gems and lock files
nobu (Nobuyoshi Nakada)
02:47 PM Revision 2df46385 (git): Cleanings of .bundle do not need cleanings of ext
nobu (Nobuyoshi Nakada)
02:37 PM Revision c2622b52 (git): YJIT: x64: Remove register shuffle with `opt_and` and friends (#10498)
This is best understood by looking at the change to the output:
```diff
# Insn: 0002 opt_and (stack_size: 2)
- mov rax, rsi
- and rax, rdi
- mov rsi, rax
+ and rsi, rdi
```
It's a bit awkward to match against due to how stack...
alanwu (Alan Wu)
02:17 PM Bug #20418: `StringIO#read(..., buffer)` doesn't preserve buffer's encoding
Seems legit to me. Proposed patch: https://github.com/ruby/stringio/pull/95 byroot (Jean Boussier)
12:48 PM Revision db0cf1ae (git): prism_compile.c: use rb_enc_interned_str to reduce allocations
The `rb_fstring(rb_enc_str_new())` pattern is inefficient because:
- It passes a mutable string to `rb_fstring` so if it has to be interned it will first be duped.
- It an equivalent interned string already exists, we allocated the stri...
byroot (Jean Boussier)
12:12 PM Revision 56f9ac8d (git): [ruby/prism] More unreachables
https://github.com/ruby/prism/commit/735f3122c2 kddnewton (Kevin Newton)
12:08 PM Revision 9183101a (git): prism_compile.c: X_STRING should be frozen
The backtick method recieves a frozen string unless it is interpolated.
Otherwise the string held in the ISeq could be mutated by a custom
backtick method.
byroot (Jean Boussier)
11:25 AM Revision b2f8de3d (git): Launchable: Correctly configure the missing "os" flavor in ubuntu.yaml
ono-max (Naoto Ono)
11:01 AM Bug #20420 (Assigned): benchmark/gc/redblack.rb license clarification
The file states `# License is License is Apache-2` but I wonder how comes. This was imported by commit:git|2802afffd688f4f3dce0492a45dab82bfc80e070 on Jun 20, 2013 and claims to be imported from https://github.com/jruby/rubybench/blob/ma... vo.x (Vit Ondruch)
08:57 AM Revision e7f8db90 (git): [pty] Support `ptsname_r` of glibc
Although glibc `ptsname_r` man page mentions Tru64 and HP-UX, this
function appears to be declared obsolete on both.
nobu (Nobuyoshi Nakada)
07:04 AM Revision 1b830740 (git): compile.c: use rb_enc_interned_str to reduce allocations
The `rb_fstring(rb_enc_str_new())` pattern is inneficient because:
- It passes a mutable string to `rb_fstring` so if it has to be interned
it will first be duped.
- It an equivalent interned string already exists, we allocated the st...
byroot (Jean Boussier)
06:53 AM Revision ed303cd5 (git): Fix a typo in a comment
k0kubun (Takashi Kokubun)
06:24 AM Bug #20397: The nkf license in LEGAL file seems to be obsolete
Yes, releases do include nkf. But the repo is split. I think nkf's situation shall be cleared for its own sake. LEGAL should no longer be the primary source of truth for that library. shyouhei (Shyouhei Urabe)
03:57 AM Revision 501a32c6 (git): Remove duplicated `st_init_table_with_size` definition
`st_init_table_with_size` is already defined in universal_parser.c. yui-knk (Kaneko Yuichiro)
03:34 AM Feature #19056 (Closed): Introduce `Fiber.annotation` for attaching messages to fibers.
I released this as a gem.
https://github.com/ioquatix/fiber-annotation
Maybe it can be adopted if it proves itself to be useful.
ioquatix (Samuel Williams)
03:16 AM Revision e9fd3475 (git): [DOC] Typo fix in NEWS.md
Fix https://github.com/ruby/ruby/pull/10366 Vivek Gupta
03:09 AM Bug #20417 (Closed): RubyVM::AbstractSyntaxTree.parse warns about block local variables
Applied in changeset commit:git|207788466eedfdefcf09fdc5c6217547b5ce4ed1.
----------
[Bug #20417] Block local variables do not need to warn about unused
nobu (Nobuyoshi Nakada)
03:03 AM Revision 20778846 (git): [Bug #20417] Block local variables do not need to warn about unused
nobu (Nobuyoshi Nakada)
03:00 AM Revision 5d9fd674 (git): put empty `rb_gc_force_recycle()`
and declare it will be removed soon.
ddtrace is still referes the API and build was failed.
See https://github.com/DataDog/dd-trace-rb/pull/3578
Maybe threre are only few users of this C-API now so we can remove
it soon.
ko1 (Koichi Sasada)
02:56 AM Revision 87ad5ca3 (git): Remove unused function from `struct rb_parser_config_struct`
yui-knk (Kaneko Yuichiro)
02:41 AM Misc #20336: DevMeeting-2024-04-17
- [Bug #20414] `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
- Make `Fiber#raise` work even when the fiber is resuming another fiber.
- Can we accept this change?
- [Feature #20215] Introduce `IO#readable?`
-...
ioquatix (Samuel Williams)
02:32 AM Revision 76732b3e (git): Remove unused AREF macro
S_H_ (Shun Hiraoka)
01:28 AM Revision 39be11a1 (git): Fix segv when parsing `command` by ripper
89cfc152071 made this event dispatch to pass `Qundef`
to user defined callback method by mistake.
This commit fix it to be `nil`.
yui-knk (Kaneko Yuichiro)
 

Also available in: Atom