Project

General

Profile

Activity

From 01/18/2023 to 01/24/2023

01/24/2023

09:09 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
> I think the implementation issues are solvable but the bigger picture issue of adoption is of course up in the air.
The first step to adoption is to have a case for it that could be used. I believe the case I presented is viable and...
maciej.mensfeld (Maciej Mensfeld)
05:42 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
> It has many issues as can be found on this bug tracker and when using it and as the warning says (Also there are many implementation issues.).
I think the implementation issues are solvable but the bigger picture issue of adoption i...
luke-gru (Luke Gruber)
11:35 AM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
> Note that Ractor is far from production-ready.
I am well aware. I just provide a justification and since my case seems to fit the limited scope of this functionality, I wanted to raise the attention.
> ...
This is exactly why I w...
maciej.mensfeld (Maciej Mensfeld)
11:31 AM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
maciej.mensfeld (Maciej Mensfeld) wrote in #note-4:
> I find this issue important and if mitigated, it would allow me to release production-grade functionalities that would benefit users of the Ruby language.
Note that Ractor is far ...
Eregon (Benoit Daloze)
04:57 AM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
Here's a simple reproduction showing that the problem is not send/receive:
```ruby
RACTORS = ARGV.first == "ractor"
J = { rand => rand }.to_json
Ractor.make_shareable(J)
if RACTORS
rs = []
10.times.each do
rs << Ractor....
luke-gru (Luke Gruber)
06:34 PM Revision 5eeebd68 (git): Remove function ary_recycle_hash
Freeing the memory of a Hash should be done by the garbage collector
and not by array functions. This could potentially leak memory if
ary_recycle_hash was not implemented properly.
peterzhu2118 (Peter Zhu)
05:57 PM Bug #19375: File objects are currently shareable, as are other extension objects that shouldn't be.
The issue is with `Ractor.make_shareable`
The same issue occurs with Dir, Tempfile, IO objects, the ENV hash. StringIO and CSV have this problem too. Sockets I think have the issue.
For example, the issue with StringIO is that it needs...
luke-gru (Luke Gruber)
03:54 PM Bug #19375 (Closed): File objects are currently shareable, as are other extension objects that shouldn't be.
I don't know the internals of file.c but I don't think files are thread-safe. luke-gru (Luke Gruber)
04:50 PM Bug #19373 (Closed): Segmentation fault at 0x00000003000179e8 when running pod install on an M1
jeremyevans0 (Jeremy Evans)
04:39 PM Bug #19373: Segmentation fault at 0x00000003000179e8 when running pod install on an M1
This was resolved by uninstalling homebrew and reinstalling. As well as rebuilding/reinstalling cocoapods :) jadephare@gmail.com (Jade Thornton)
02:35 PM Feature #15778: Expose an API to pry-open the stack frames in Ruby
gsamokovarov (Genadi Samokovarov) wrote in #note-16:
> What if we settle for an API and implement and test it first in the `debug` gem? The `debug` gem does need/has similar functionality for post-mortem debugging. That way, gems like `...
Eregon (Benoit Daloze)
02:23 PM Feature #19236: Allow to create hashes with a specific capacity from Ruby
If we use `Hash.new(capacity: 4096)` to set the capacity, then `Hash.new({ capacity: 4096 })` should keep the semantics of: `{ capacity: 4096 }` is the default value of the new Hash.
I think it's a little bit hacky/unclear/source of con...
Eregon (Benoit Daloze)
02:17 PM Feature #19366: Rename/alias Refinedment#refined_class => #refined_module
Agreed, I think it's fine to have both `refined_class` and `refined_module`, much like we have {module,class}_{eval,exec}. Eregon (Benoit Daloze)
02:00 PM Bug #19354: Issues with arguments validation in IO.read
I think the current error could be acceptable if it's clear IO#read is in the backtrace.
But it's not part of the backtrace currently (and on top it's not possible to differentiate IO.read and IO#read from the backtrace):
```
$ ruby -...
Eregon (Benoit Daloze)
12:40 PM Bug #19374 (Closed): Issue with Ractor.make_shareable with curried procs
This works, but shouldn't:
```ruby
class Worker
def start(&blk)
blk = blk.curry # bug in ruby allows sharing of non-shareable proc
Ractor.make_shareable(blk)
@ractor = Ractor.new(blk) do |b|
main = b.call
...
luke-gru (Luke Gruber)
12:30 PM Feature #19326: Please add a better API for passing a Proc to a Ractor
Your new example, I think, is not possible with the current API.
However, there is a bug in Ruby that I just found that allows it.
```ruby
class Worker
def start(&blk)
blk = blk.curry # bug in ruby allows sharing of non-shareable...
luke-gru (Luke Gruber)
08:41 AM Revision a20061cb (git): merge revision(s) 72eb33066fa9e7dacb7470cd140b219abe37667e: [Backport #19320]
Fix off-by-one error in rb_vm_each_stack_value
Applying the following patch to test/erb/test_erb.rb and running that
file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro):
```
--- a/test/erb...
naruse (Yui NARUSE)
07:36 AM Revision 5a73e131 (git): Add tests for variables in `END` block shared with the toplevel
nobu (Nobuyoshi Nakada)
02:05 AM Bug #19339: Defining ivar on special constants with @ syntax causes segv
ruby_3_2 c0df0a85dec77a09308caddb1e1efd4d38fbf7b8 merged revision(s) ed6fbb79e19bf401db0e85447fee955fd10a25c7. naruse (Yui NARUSE)
01:44 AM Bug #19371 (Assigned): Having Psych 5 installed raises an error during another gem's C-extension installation when parsing YAML
Thanks for your investigation. I got same report at https://github.com/ruby/psych/discussions/607.
hsbt (Hiroshi SHIBATA)
01:41 AM Feature #19370 (Assigned): Anonymous parameters for blocks?
IIRC, matz was negative against it. nobu (Nobuyoshi Nakada)
01:37 AM Bug #19372: Proc objects are not traversed for shareable check during Ractor.make_shareable(prok)
Maybe https://github.com/nobu/ruby/tree/ractor-unshareable-data fixes it? nobu (Nobuyoshi Nakada)
01:35 AM Revision 98081ac7 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.56 to 0.9.58.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.56...v0.9.58)
---
updated-depende...
dependabot[bot]

01/23/2023

10:14 PM Revision e23e8f4a (git): [rubygems/rubygems] Bump rb-sys in /test/rubygems/test_gem_ext_cargo_builder/custom_name
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.56 to 0.9.58.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.56...v0.9.58)
---
updated-depende...
dependabot[bot]
10:03 PM Bug #19373 (Closed): Segmentation fault at 0x00000003000179e8 when running pod install on an M1
All the logs are in the files.
Context:
I'm trying to run pod install on a react native project that requires a ruby version of 2.7.5 after a react native upgrade. Others on my team have been able to build their projects so I think t...
jadephare@gmail.com (Jade Thornton)
09:35 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
I've notified the flori/json people (https://github.com/flori/json/issues/511)
So to update everyone, the dtoa function is called during json generation, not parsing. As this script does both, it's hard to measure it using perf tools. Y...
luke-gru (Luke Gruber)
10:15 AM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
I find this issue important and if mitigated, it would allow me to release production-grade functionalities that would benefit users of the Ruby language.
I run an OSS project called Karafka (https://github.com/karafka/karafka) that a...
maciej.mensfeld (Maciej Mensfeld)
07:24 PM Bug #19372: Proc objects are not traversed for shareable check during Ractor.make_shareable(prok)
A separate but related issue is that the proc objects are not frozen too, so their ivars can be (re)assigned. I don't know how big an issue that is because
other ractors cannot read/write the ivars but IMO the proc should be frozen.
luke-gru (Luke Gruber)
07:23 PM Bug #19372 (Closed): Proc objects are not traversed for shareable check during Ractor.make_shareable(prok)
```ruby
class Proc
attr_accessor :obj1
def initialize
@obj1 = Object.new
end
end
p = true.instance_eval { Proc.new { puts "hi" } }
Ractor.make_shareable(p)
p "Obj1 frozen?", Ractor.shareable?(p.obj1)
P = p
r = Ra...
luke-gru (Luke Gruber)
03:49 PM Bug #19371: Having Psych 5 installed raises an error during another gem's C-extension installation when parsing YAML
I can confirm this issue. We recently experienced it in rack's CI (https://github.com/rack/rack/actions/runs/3955055993/jobs/6776667247#step:3:65). In our case, we were able to easily work around the issue because the gem that was pull... jeremyevans0 (Jeremy Evans)
11:15 AM Bug #19371 (Third Party's Issue): Having Psych 5 installed raises an error during another gem's C-extension installation when parsing YAML
## Summary
There's an issue on Ruby versions with Psych 4 installed by default (Ruby 2.6 through 3.1) after installing the Psych gem version 5. This problem occurs when a Ruby gem has a C-extension installation script that parses a YAML...
tombruijn (Tom de Bruijn)
10:54 AM Feature #19324: Enumerator.product => Enumerable#product
Just to add a few points:
1. I don't believe "zip with all arguments the same" has really any significant usage: at least, in codebases I looked in (Ruby stdlib, Rails, Rubocop, Sidekiq, my work apps) I can't find any. BTW, the trivia...
zverok (Victor Shepelev)
12:07 AM Feature #19324: Enumerator.product => Enumerable#product
Thinking about this a bit more, I guess both the "first argument is special" (A) and the "all arguments are the same" (B) have use cases. There's probably a third one, which is "all arguments are already in an array" (C). (B) and (C) are... duerst (Martin Dürst)
10:40 AM Revision fe733fb6 (git): svn.ruby-lang.org is already EOL
hsbt (Hiroshi SHIBATA)
10:23 AM Feature #19370 (Closed): Anonymous parameters for blocks?
Just to clarify: are anonymous parameters delegation is planned to support in blocks?
It would be a nice addition, if it is possible to implement:
```ruby
# data in form [request method, URL, params]:
[
[:get, 'https://google.c...
zverok (Victor Shepelev)
10:22 AM Feature #19362 (Open): #dup on Proc doesn't call initialize_dup
https://github.com/ruby/ruby/pull/7178 nobu (Nobuyoshi Nakada)
10:02 AM Revision 1e2523fa (git): Silence dozens of useless warnings from `ranlib` on macOS [ci skip]
nobu (Nobuyoshi Nakada)
08:06 AM Revision a22ed3e9 (git): Fix homepage url in gemspec
GitHub Pages now hosted on *.github.io unasuke (Yusuke Nakamura)
06:14 AM Revision 4981206b (git): update-coverage needs to build ruby and all C-ext libraries
hsbt (Hiroshi SHIBATA)
05:55 AM Revision d9fd0483 (git): [rubygems/rubygems] blade is hosted under ruby-lang.org now
https://github.com/rubygems/rubygems/commit/00fdef8a41 hsbt (Hiroshi SHIBATA)
04:52 AM Bug #19283: Regex error on ruby 3.2
This case didn't become error after I tested this regex error case with ruby master branch(https://github.com/ruby/ruby/commit/5abb2ef1532e52f3e5fb63ea25e90a72c8e7d581).
This issue may be resolved by Bug #19273 and PR(https://github.co...
Sho (Shohei Nakano)
04:07 AM Revision 5abb2ef1 (git): blade is hosted under ruby-lang.org now
hsbt (Hiroshi SHIBATA)
03:43 AM Bug #19365: Ractors can access non-shareable values through enumerators
Or rather, maybe they should be allowed to be passed but the deep clone logic should change? Not sure. luke-gru (Luke Gruber)
03:41 AM Revision d8751c0a (git): [ruby/cgi] blade is hosted under ruby-lang.org now
https://github.com/ruby/cgi/commit/826ba3140c hsbt (Hiroshi SHIBATA)
02:48 AM Revision 93bb4155 (git): [DOC] Change local method to local variable in assignment docs
Talal Al-Humaidi
02:47 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
byroot (Jean Boussier) wrote in #note-4:
> What would be the timeline?
> ...
That would be the fastest way.
> > Off-topic: Array.new(capacity: 4096) is not yet available; I wonder if people want Hash.new(capacity: 4096) more than Ar...
mame (Yusuke Endoh)
02:47 AM Bug #18119 (Assigned): Ractor crashes when instantiating classes
hsbt (Hiroshi SHIBATA)
02:46 AM Feature #18919 (Assigned): Ractor: can't share #Method objects
hsbt (Hiroshi SHIBATA)
02:14 AM Bug #19338 (Assigned): Ruby hangs when ouputting warnings inside ractor with VM lock held
hsbt (Hiroshi SHIBATA)
02:13 AM Bug #19364 (Assigned): Issue with tracepoint enable/disable across ractors
hsbt (Hiroshi SHIBATA)
02:10 AM Bug #19369: Small corner-case issue that breaks Ractor isolation: change cloned object from another thread
If you wanted to fix this one way would be to disable thread creation in the current ractor (main in this case) while deep-cloning in `Ractor.new` or `Ractor#send`. Another idea would be to not call `initialize_clone` during deep-cloning... luke-gru (Luke Gruber)
01:28 AM Bug #19369 (Assigned): Small corner-case issue that breaks Ractor isolation: change cloned object from another thread
I was looking into how objects are traversed for deep cloning and I came up with a way to break it. I don't think it'll ever happen in real life so it's not really an issue, just
an interesting case. Run with warnings disabled.
```ru...
luke-gru (Luke Gruber)
02:07 AM Revision 8fded5f5 (git): [ruby/psych] Fix RestrictedYAMLTree allowing the Symbol class should allow all symbols
Ref: https://github.com/ruby/psych/pull/495
That's how it works for `safe_load`:
```ruby
>> YAML.safe_load(':foo', permitted_classes: [Symbol])
=> :foo
```
So `safe_dump` should mirror that.
https://github.com/ruby/psych/commit/592a75...
byroot (Jean Boussier)
12:34 AM Revision d6232108 (git): [DOC] Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)

01/22/2023

11:28 PM Bug #19365 (Assigned): Ractors can access non-shareable values through enumerators
hsbt (Hiroshi SHIBATA)
02:05 PM Bug #19365 (Closed): Ractors can access non-shareable values through enumerators
I don't think enumerators should be able to be passed to `Ractor.new`
```ruby
obj = Object.new # unshareable value
p obj
Ractor.new([obj].each) {|f| p f.first }.take
```
luke-gru (Luke Gruber)
11:26 PM Bug #19368 (Assigned): Small issue with isolated procs and eval
hsbt (Hiroshi SHIBATA)
06:04 PM Bug #19368: Small issue with isolated procs and eval
Hopefully this illustrates this small, weird issue a bit more:
```ruby
fails = 0
a = Object.new # non-shareable value
pr_maker = Ractor.current.instance_eval do # instance eval allows make_shareable to work
Proc.new do
Proc.new do...
luke-gru (Luke Gruber)
05:40 PM Bug #19368 (Assigned): Small issue with isolated procs and eval
```
a = Object.new # non-shareable
prok = Ractor.current.instance_eval do
Proc.new do
eval('a')
end
end
prok.call # this should work, we're in the main ractor and the proc is not isolated
Ractor.make_shareable(prok) # thi...
luke-gru (Luke Gruber)
09:51 PM Bug #19367 (Assigned): Issue with ractor local storage API
hsbt (Hiroshi SHIBATA)
02:49 PM Bug #19367: Issue with ractor local storage API
PR here: https://github.com/ruby/ruby/pull/7174 luke-gru (Luke Gruber)
02:46 PM Bug #19367 (Closed): Issue with ractor local storage API
In a non-main ractor, you can do Ractor.main[:key] = 'val', but it only affects storage for Ractor.current, not Ractor.main (which is good!).
I think it should throw a RuntimeError if trying to get/set ractor-local storage for non-curre...
luke-gru (Luke Gruber)
09:50 PM Feature #19326 (Assigned): Please add a better API for passing a Proc to a Ractor
hsbt (Hiroshi SHIBATA)
07:45 PM Feature #19326: Please add a better API for passing a Proc to a Ractor
New example:
```ruby
class Worker
def initialize(&block)
@block = block
end
def start
block = Ractor.make_shareable(@block)
@ractor = Ractor.new(block) do |callable|
message = receive
callable.call(messa...
sdwolfz (Codruț Gușoi)
05:15 PM Bug #19343 (Closed): Integer#ceildiv should respect #coerce
Applied in changeset commit:git|20a85ab6119964d1ff129f9c6676fa2a7b2a2be4.
----------
Fix Integer#ceildiv to respect #coerce (#7118)
Fixes [Bug #19343]
kyanagi (Kouhei Yanagita)
03:44 PM Misc #13072 (Closed): Current state of date standard library
zverok (Victor Shepelev)
03:43 PM Feature #15527 (Closed): Redesign of timezone object requirements
zverok (Victor Shepelev)
03:38 PM Misc #16464 (Closed): Which core objects should support deconstruct/deconstruct_keys?
zverok (Victor Shepelev)
03:37 PM Misc #19247 (Closed): Ruby 3.2 documentation problems tracker
I did what I could before the release, the other problems can be handled separately through the year. zverok (Victor Shepelev)
03:23 PM Feature #19324: Enumerator.product => Enumerable#product
> I believe quite many people are in favor of `Array.product` and/or `Array.zip`. I wish the implementation/existence of `Enumerator.product` will work as a pressure towards implementing these methods as well.
I can empathize with tha...
zverok (Victor Shepelev)
02:29 PM Feature #19366 (Closed): Rename/alias Refinedment#refined_class => #refined_module
In #12737, `Refinement#refined_class` is introduced.
As "module" is more generic concept than "class", the name misleadingly implies that either this method doesn't returns refined _modules_, or modules can't be refined. This is obvio...
zverok (Victor Shepelev)
12:03 PM Feature #19362: #dup on Proc doesn't call initialize_dup
> What do you expect as self of `Proc#initialize_dup`?
@nobu "the current proc object", like in any `initialize[...]`. I am not sure I understand why is it impossible. From layman's point of view, those two should work the same way:
...
zverok (Victor Shepelev)
01:47 AM Feature #19362 (Feedback): #dup on Proc doesn't call initialize_dup
nobu (Nobuyoshi Nakada)
01:47 AM Feature #19362: #dup on Proc doesn't call initialize_dup
While `String.allocate` and `Array.allocate` are defined, `Proc.allocate` is not.
What do you expect as `self` of `Proc#initialize_dup`?
nobu (Nobuyoshi Nakada)
10:16 AM Feature #15778: Expose an API to pry-open the stack frames in Ruby
What if we settle for an API and implement and test it first in the `debug` gem? The `debug` gem does need/has similar functionality for post-mortem debugging. That way, gems like `web-console` can depend on the `debug` standard gem whic... gsamokovarov (Genadi Samokovarov)
09:53 AM Revision 20a85ab6 (git): Fix Integer#ceildiv to respect #coerce (#7118)
Fixes [Bug #19343] kyanagi (Kouhei Yanagita)
02:32 AM Revision cad09f70 (git): Adjust braces [ci skip]
nobu (Nobuyoshi Nakada)
12:49 AM Revision f5ea43a2 (git): More coverage tests & specs. (#7171)
* Add spec for eval and line coverage.
* Add test for main file coverage.
Samuel Williams

01/21/2023

10:54 PM Bug #19364 (Assigned): Issue with tracepoint enable/disable across ractors
This sometimes segfaults:
```ruby
def test_enable_disable_in_multiple_ractors_with_target
rs = []
100.times do |i|
# setup new iseqs
Kernel.define_method :"my_method_to_change_for_tracing_#{i}" do
true
end
...
luke-gru (Luke Gruber)
09:53 PM Bug #19360 (Closed): Enabling coverage with `-r` option isn't sufficient to intercept top level script.
I've merged this fix. I would like this backported to 3.2 if possible, because it's blocking correct coverage computation and I don't want to wait a year to be able to use this fix. ioquatix (Samuel Williams)
12:02 PM Bug #19360: Enabling coverage with `-r` option isn't sufficient to intercept top level script.
Fixed by https://github.com/ruby/ruby/pull/7169/files ioquatix (Samuel Williams)
11:10 AM Bug #19360 (Closed): Enabling coverage with `-r` option isn't sufficient to intercept top level script.
For some reason, Ruby's coverage library doesn't work when the file is loaded from the command line. In the below example, test2.rb loads test.rb. If you run test2.rb with coverage enabled, it will report coverage for test.rb but not tes... ioquatix (Samuel Williams)
09:51 PM Revision 2c93c554 (git): Ensure main file has default coverage if required. (#7169)
* Extract common code for coverage setup. Samuel Williams
09:02 PM Bug #19363: Fix rb_transient_heap_mark: wrong header (T_STRUCT) segfault
Thanks for the report, and for the comprehensive reproduction steps.
Triage note, it seems this issue can happen on `x86_64-linux-musl` without YJIT at runtime.
The crash logs there in the [Circle CI build](https://app.circleci.com/pip...
alanwu (Alan Wu)
06:53 PM Bug #19363 (Assigned): Fix rb_transient_heap_mark: wrong header (T_STRUCT) segfault
## Overview
Hello. 👋 I'm hitting an issue where my build is constantly failing with a segfault. The following is a snippet taken from my local machine with YJIT enabled (see attachments for details):
```
/Users/bkuhlmann/.cache/f...
bkuhlmann (Brooke Kuhlmann)
06:54 PM Bug #19361 (Rejected): String#[Integer] is orders slower for strings with some UTF characters
This is expected. `String#[Integer]` doesn't return a byte but a character, which in UTF-8 may be of variable size, so Ruby has to scan the string from the beginning every time.
byroot (Jean Boussier)
04:36 PM Bug #19361 (Rejected): String#[Integer] is orders slower for strings with some UTF characters
#[] is not only slower compared to itself, but slower compared to #each_char.
seq1
```
# s = '*' * 10e4
s = 'ф' * 10e4
count = 0
size = s.size
while count < size
s[count]
count += 1
end
```
seq2
```
ss = 'ф' * 10e4
...
vzdor (Vladimir Zdorovenco)
06:19 PM Feature #19326: Please add a better API for passing a Proc to a Ractor
> I thought Ractor.new would only accept literal blocks.
I hope not, passing an arbitrary block helps with building functionality on top of Ractors (that I want to do).
> ...
My "Worker" class will have documentation stating that s...
sdwolfz (Codruț Gușoi)
05:55 PM Feature #19326: Please add a better API for passing a Proc to a Ractor
I'm not sure this behavior is intended, cc @ko1.
I thought `Ractor.new` would only accept literal blocks.
The problem is the usual "does not respect the intent of the writer of the block, which expected a specific self".
Also it only ...
Eregon (Benoit Daloze)
07:07 AM Feature #19326: Please add a better API for passing a Proc to a Ractor
OK, I had absolutely no idea you could do that. Thanks for the suggestion! My impressions was `instance_eval` could only be used around where a block is *written*.
Can we document this behaviour somewhere? Maybe in https://docs.ruby-l...
sdwolfz (Codruț Gușoi)
05:04 PM Feature #19362 (Closed): #dup on Proc doesn't call initialize_dup
In #17545, `#dup` had changed to create an instance of the subclass.
It, though, doesn't invoke `initialize_dup` of the subclass, unlike other standard classes.
```ruby
class MyAry < Array
def initialize_dup(...)
p(self.clas...
zverok (Victor Shepelev)
02:16 PM Misc #19359 (Closed): Please close ticket :)
byroot (Jean Boussier)
04:35 AM Misc #19359: Please close ticket :)
Sorry, false alarm :) Stupidly my compilation was silently failing and that's why my printf debugging wasn't working :D luke-gru (Luke Gruber)
01:42 AM Misc #19359 (Closed): Please close ticket :)
I'm not sure why but they aren't being collected. I was looking at the issue https://bugs.ruby-lang.org/issues/19112 to see if I could solve it
and when debugging it I noticed that ractor_free() is never called. I think it could be an i...
luke-gru (Luke Gruber)
11:13 AM Revision 3e7fdf29 (git): Windows build instructions documentation. (#6956)
Windows build instructions. Samuel Williams
11:12 AM Revision 5cdf312d (git): Add `doc/distribution.md` to help reduce some of the confusion. (#6856)
Samuel Williams
10:26 AM Revision 418b03c7 (git): tool/leaked-globals: ignore function typedef [ci skip]
nobu (Nobuyoshi Nakada)
12:48 AM Feature #19324: Enumerator.product => Enumerable#product
> I believe quite many people are in favor of Array.product and/or Array.zip.
I personally find this surprising! It goes against what I find to be some of Ruby’s best design philosophies against Python:
Instance method versions are mor...
ttilberg (Tim Tilberg)

01/20/2023

10:49 PM Feature #15778: Expose an API to pry-open the stack frames in Ruby
Outside of error reporting, having this or similar API will also:
- Allow IRB to display richer exception backtrace. This is helpful when used as `binding.irb`.
- Allow IRB to implement a `bt` command that's similar to `debug`'s.
...
st0012 (Stan Lo)
10:11 PM Revision 06b62cbb (git): Add `offsetof` so we can get the offset of members
I want to get the offset of fields inside structs, but I don't want to
instantiate the struct. I need to embed the offsets inside machine
code, and I can't get the offsets without calling `new` on the struct.
This commit adds an `offse...
tenderlovemaking (Aaron Patterson)
10:09 PM Bug #19112: Ractor garbage collection breaks/disables all active tracepoints
To make sure it's collected:
```ruby
puts RUBY_DESCRIPTION
ractor_id = nil
if ENV['RUN_RACTOR'] == '1'
r = Ractor.new { 10 }
ractor_id = r.object_id
r.take
puts "Ractor ran!"
else
puts "Ractor DID NOT ran!"
end
gc_times = 0
r...
luke-gru (Luke Gruber)
09:51 PM Bug #19112: Ractor garbage collection breaks/disables all active tracepoints
I was just looking into this bug and it's really strange, I initially thought it had to do with single ractor mode vs multi, but if we `sleep 100` inside the ractor everything behaves as it should, so it has to do with the ractor finishi... luke-gru (Luke Gruber)
09:07 PM Revision 887d2161 (git): YJIT: Avoid BorrowError on GC.compact (#7164)
k0kubun (Takashi Kokubun)
08:58 PM Revision 4e037075 (git): Fix typo in RHASH_ST_CLEAR
We should be setting as.st and not as.ar. peterzhu2118 (Peter Zhu)
06:05 PM Bug #19358 (Closed): Segfault when setting RUBY_GC_HEAP_INIT_SLOTS to a low value
Thank you for reporting this bug and @eightbitraptor for checking that the patch works on 3.1.3. I marked that patch for backporting to 3.1. peterzhu2118 (Peter Zhu)
05:06 PM Bug #19358: Segfault when setting RUBY_GC_HEAP_INIT_SLOTS to a low value
Can confirm that applying the patch from https://bugs.ruby-lang.org/issues/19284 to the 3.1.3 branch fixes the issue for me.
I think this should be marked for Backport
What do you think @peterzhu2118
eightbitraptor (Matt V-H)
04:08 PM Bug #19358 (Closed): Segfault when setting RUBY_GC_HEAP_INIT_SLOTS to a low value
This bug is similar to #19284
In Ruby 2.7 this works fine
```
docker run --rm -it -e RUBY_GC_HEAP_INIT_SLOTS=1 ruby:2.7 ruby -e 'puts "hello, world!"'
hello, world!
```
On Ruby 3.1 I get a segfault
```
docker run --rm -it ...
xfalcox (Rafael Silva)
04:58 PM Feature #19347: Add Dir.fchdir
ko1 (Koichi Sasada) wrote in #note-3:
> At the dev meeting there are 4 ideas:
I considered the first three ideas when implementing this support. Let me add my comments on each.
> ...
The reason I used this approach is that this f...
jeremyevans0 (Jeremy Evans)
06:25 AM Feature #19347: Add Dir.fchdir
At the dev meeting there are 4 ideas:
* 4 ideas
* `Dir.fchdir(int)`
* Proposed
* Consistent to the POSIX API
* Can be extended for `Dir.fchdir(dir)` and `Dir.fchdir(io)`
* `Dir.chdir(int)`
* Do not need to ad...
ko1 (Koichi Sasada)
04:38 PM Bug #19237 (Closed): Hash default_proc is not thread-safe to lazy-initialize value for a given key
Applied in changeset commit:git|ffd52412ab813854d134dbbc2b60f698fe536487.
----------
Document thread-safety issues with Hash default_proc
Fixes [Bug #19237]
jeremyevans (Jeremy Evans)
05:57 AM Bug #19237: Hash default_proc is not thread-safe to lazy-initialize value for a given key
Discussed at the dev meeting. @matz said "The performance penalty is not acceptable. Addition to the documentation looks good enough." mame (Yusuke Endoh)
04:36 PM Revision ffd52412 (git): Document thread-safety issues with Hash default_proc
Fixes [Bug #19237] jeremyevans (Jeremy Evans)
04:11 PM Bug #18666: No rule to make target 'yaml/yaml.h', needed by 'api.o'
______________________________________________ Anonymous
11:48 AM Bug #18666 (Feedback): No rule to make target 'yaml/yaml.h', needed by 'api.o'
@duerst This issue may cause with your environment. hsbt (Hiroshi SHIBATA)
04:06 PM Feature #19326: Please add a better API for passing a Proc to a Ractor
If you want Ractor to be an implementation detail of Worker you could do:
```ruby
class Worker
def initialize(&block)
@block = block
end
def run
block = @block
true.instance_eval { Ractor.new(&block) }
end
end
work...
luke-gru (Luke Gruber)
04:01 PM Revision 0457e434 (git): Remove unused struct member thgroup->group
eightbitraptor (Matt V-H)
03:57 PM Revision 36fa4f13 (git): YJIT: get rid of unneeded `.into()`
Jimmy Miller
03:30 PM Revision 15328302 (git): In `UNALIGNED_MEMBER_PTR` cast through `void` pointer
Suppress warnings shown even with `-Waddress-of-packed-member`
disabled in gcc 11.
nobu (Nobuyoshi Nakada)
03:30 PM Revision f0f2535c (git): Add `queue_list` and `szqueue_list` macros
nobu (Nobuyoshi Nakada)
01:51 PM Revision 056e7a01 (git): Make all of the references of iseq movable
peterzhu2118 (Peter Zhu)
01:40 PM Revision 76e3d853 (git): [ruby/reline] Add autoindent test for indent after bracket and newline
https://github.com/ruby/reline/commit/3f3da7d0e2 tompng (tomoya ishida)
01:40 PM Revision 4241b3cf (git): [ruby/reline] accept new_indent > cursor_max
https://github.com/ruby/reline/commit/61cc580da4 tompng (tomoya ishida)
01:06 PM Revision 0cc91871 (git): [rubygems/rubygems] Update bundle-exec man page for with_unbundled_env
`with_clean_env` has been deprecated in `with_unbundled_env`. It already generates a deprecation warning when it uses, but this man page was still referring to it. Josh Nichols
12:41 PM Revision c948a081 (git): Add a NEWS entry for [Feature #19314] [ci skip]
shugo (Shugo Maeda)
11:39 AM Feature #16963 (Closed): Remove English.rb from Ruby 2.8/3.0
I withdraw this proposal. We need to consider another deprecate plan. hsbt (Hiroshi SHIBATA)
11:33 AM Bug #18381: Default vs Bundled gems
I'll document this. hsbt (Hiroshi SHIBATA)
11:33 AM Bug #19337 (Closed): What is the difference between "default" gems and "bundled" gems?
This is duplicated as #18381 hsbt (Hiroshi SHIBATA)
11:00 AM Bug #19354: Issues with arguments validation in IO.read
Yeah, I understand that it's caused by the way how `IO.read` is implemented.
My point is that from the end-user point of view current error message (`given 3, expected 0..2`) is slightly misleading/confusing.
andrykonchin (Andrew Konchin)
06:08 AM Bug #19354 (Feedback): Issues with arguments validation in IO.read
`IO.read` opens the file given as the first argument, then delegates the other arguments to `IO#read` on the instance.
Your error happens in the delegated `IO#read`.
Since 3.0, keyword arguments are separated from mere hashes.
I thi...
nobu (Nobuyoshi Nakada)
10:39 AM Revision 53cd5796 (git): [rubygems/rubygems] Clean test output
The output from the command is mixed in this test, even when
successful.
Use the output as a part of the message on failure instead.
https://github.com/rubygems/rubygems/commit/960509a133
nobu (Nobuyoshi Nakada)
09:02 AM Misc #16671 (Closed): BASERUBY version policy
Applied in changeset commit:git|1edef08ddadf0bd76122f830ef7953cda61c78aa.
----------
Added version policy of BASERUBY
[Misc #16671]
hsbt (Hiroshi SHIBATA)
09:02 AM Revision cce39609 (git): [Feature #19314] Add new arguments of String#bytesplice
bytesplice(index, length, str, str_index, str_length) -> string
bytesplice(range, str, str_range) -> string
In these forms, the content of +self+ is replaced by str.byteslice(str_index, str_length) or str.byteslice(str_range); however...
shugo (Shugo Maeda)
08:54 AM Revision 845f6275 (git): OpenSSL, libyaml and zlib is always required to build. see test/test_extlibs.rb
hsbt (Hiroshi SHIBATA)
08:54 AM Revision 231b09f1 (git): Added supported versions to OpenSSL and libyaml
hsbt (Hiroshi SHIBATA)
08:54 AM Revision 1edef08d (git): Added version policy of BASERUBY
[Misc #16671] hsbt (Hiroshi SHIBATA)
08:42 AM Revision 6aa9c845 (git): Separate dependencies section from quick start
hsbt (Hiroshi SHIBATA)
08:42 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
Well, `Hash.new(capacity: 4096)` was definitely my first pick, so this is great news IMO.
> how about deprecating giving the keyword to Hash.new and then introducing Hash.new(capacity: 4096)?
What would be the timeline?
Depreca...
byroot (Jean Boussier)
05:31 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
Discussed at the dev meeting.
@matz said that `Hash.create(capacity: 4096)` is acceptable (unless it conflicts with any major gems). However, several participants including @ko1 were a little cautious about introducing the new termino...
mame (Yusuke Endoh)
08:38 AM Revision ea10dea6 (git): fixed wrong version of baseruby
hsbt (Hiroshi SHIBATA)
08:14 AM Feature #19314 (Closed): String#bytesplice should support partial copy
Applied in changeset commit:git|373e62248c9dceb660e95f1cf05fa2a4a469cd64.
----------
merge revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55: [Backport #19356]
String#bytesplice should return self
In Feature #19314,...
naruse (Yui NARUSE)
08:14 AM Bug #19356 (Closed): Backport f7b72462aa27716370c6bea1f2c240983aca9a55
Applied in changeset commit:git|373e62248c9dceb660e95f1cf05fa2a4a469cd64.
----------
merge revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55: [Backport #19356]
String#bytesplice should return self
In Feature #19314,...
naruse (Yui NARUSE)
07:06 AM Bug #19356: Backport f7b72462aa27716370c6bea1f2c240983aca9a55
ruby_3_2 373e62248c9dceb660e95f1cf05fa2a4a469cd64 merged revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55. naruse (Yui NARUSE)
02:28 AM Bug #19356 (Closed): Backport f7b72462aa27716370c6bea1f2c240983aca9a55
Please backport [f7b72462aa27716370c6bea1f2c240983aca9a55](https://github.com/ruby/ruby/commit/f7b72462aa27716370c6bea1f2c240983aca9a55).
In Feature #19314, we concluded that the return value of String#bytesplice should be changed fro...
shugo (Shugo Maeda)
08:13 AM Revision a0626e11 (git): Bundle RBS 2.8.4 (#7159)
soutaro (Soutaro Matsumoto)
08:01 AM Revision c0df0a85 (git): merge revision(s) ed6fbb79e19bf401db0e85447fee955fd10a25c7: [Backport #19339]
Fix crash when defining ivars on special constants
[Bug #19339]
---
test/ruby/test_variable.rb | 6 ++++++
vm_insnhelper.c | 5 +++++
2 files changed, 11 insertions(+)
naruse (Yui NARUSE)
08:01 AM Bug #19316: YJIT crash in 3.2.0
ruby_3_2 1fb5eb5740d4c4f1fc34a4a50bc0482eac27b545 merged revision(s) aeddc19340c7116d48fac3080553fbb823857d16. naruse (Yui NARUSE)
07:05 AM Revision d80a574a (git): Update bundled gems list at 2023-01-20
git[bot]
06:51 AM Bug #19286 (Closed): What should kwargs' arity be?
Withdrawing the issue. Thank you for your participation in the discussion! matsuda (Akira Matsuda)
05:58 AM Bug #19286: What should kwargs' arity be?
Discussed at the dev meeting. @matz said the current behavior is fair, and @matsuda agreed with that. So keep it as is. mame (Yusuke Endoh)
06:10 AM Misc #19357 (Closed): DevMeeting-2023-02-09
# The next dev meeting
**Date: 2023/02/09 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-02-09.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t...
mame (Yusuke Endoh)
06:10 AM Misc #19240 (Closed): DevMeeting-2023-01-19
mame (Yusuke Endoh)
06:02 AM Bug #19293: The new Time.new(String) API is nice... but we still need a stricter version of this
Discussed at the dev meeting. @naruse said "`Time.new("2023")` is 1.9.2 feature. We can’t deprecate on 3.2.1. Need to continue the discussion for Ruby 3.3."
BTW Ruby 3.2.0 accidentally allows `Time.new("2023-01")`, `Time.new("2023-01-...
mame (Yusuke Endoh)
05:55 AM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
Discussed at the dev meeting.
Are there any real-world use cases (other than rubyspec) where you would like to prohibit `integer << large`?
@matz was initially positive about prohibiting huge object generation as early failure. How...
mame (Yusuke Endoh)
05:41 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
Discussed at the dev meeting. @matz is positive about the change and said he would give it a try. The message format is slightly changed as follows:
* If the receiver is a Class, `... for class <class name>` should be printed.
* If t...
mame (Yusuke Endoh)
04:37 AM Feature #19245: Strict mode for Array#pack that doesn't silently truncate numbers that are too large for the given directive
Discussed at the dev meeting. We need to determine some detailed behaviors:
* Should `[-1].pack("C", strict: true)` raise an exception because 'C' represents unsigned char? If what you want is "wrap around", it should raise an error b...
mame (Yusuke Endoh)
03:24 AM Revision 373e6224 (git): merge revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55: [Backport #19356]
String#bytesplice should return self
In Feature #19314, we concluded that the return value of String#bytesplice
should be changed from the source string to the receiver, because the source
string is useless and c...
naruse (Yui NARUSE)
02:05 AM Bug #19327: Backport commits 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c and 9726736006b3f74635fd8af05814fe0908e2cf84
ruby_3_2 6a8fcb50210f8414d76968298576e39b9fa82562 merged revision(s) 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c. naruse (Yui NARUSE)
01:18 AM Bug #19341 (Closed): Write cache issue with class variables
Applied in changeset commit:git|f66804e6f78ed4cf81896d2256743a820b05939a.
----------
don't allow setting class variable on module that's frozen [Bug #19341]
luke-gru (Luke Gruber)

01/19/2023

11:28 PM Bug #15507: Thread#raise is delivered to GC context
❤️ Thank you for fixing this @jeremyevans0 - I was debugging some instances of our Ruby 2.7 app's test suite hanging on exit, and narrowed it down to this reproduction:
```
require 'tempfile'
def forget_about_a_tempfile
Tempfile.new(...
kjtsanaktsidis (KJ Tsanaktsidis)
10:18 PM Feature #19355: Add finer coarsed locking for searching callable method entries
```ruby
MyClass = Object
class MyClass2 < Object;
def call_a_method
[]
end
def call_another_method
{}
end
end
USE_RACTORS = ARGV.first == "ractor"
puts "ractors: #{USE_RACTORS ? 't' : 'f'}"
class FakeRactor
def initial...
luke-gru (Luke Gruber)
09:04 PM Feature #19355 (Open): Add finer coarsed locking for searching callable method entries
During multi-ractor mode, unfortunately when calling methods often there's a call to the internal cruby function `callable_method_entry`, which
returns a cached CME or a new one. In the case that it's cached, there's a VM lock around it...
luke-gru (Luke Gruber)
10:02 PM Misc #19352 (Closed): Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
hsbt (Hiroshi SHIBATA)
06:05 PM Misc #19352: Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
I’m not entirely sure, as I have never used a version of Rails that has webpacker (I last used Rails 4.2), so I don’t know its initialization process (whether it sees `application.rb` or an initializer). Worst case, you could put that co... austin (Austin Ziegler)
05:37 PM Misc #19352: Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
> That said, this is easily monkey patched:
> ...
@Austin, That is AWESOME! Thank you for that!
Where would be the best place for that code go? In application.rb? or as an initializer or? What would you recommend?
I am asking m...
Milella@Hotmail.com (Scott Milella)
07:39 AM Misc #19352: Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
Personally, I preferred exists? over exist? but I can live with the change.
"If the file xy.txt exists then ...": if File.exists?("xy.txt") do
I made a gem to monkeypatch the exists? functionality.
The code from austin might however be...
aidog (Andi Idogawa)
03:10 AM Misc #19352: Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
I do not believe that this should be reversed.
There’s an older post at FastRuby indicating [version compatibility](https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html), which mostly captures something that I bel...
austin (Austin Ziegler)
12:57 AM Misc #19352 (Closed): Feature #17391 was not such a good idea because now Ruby 3.2 can not install Rails v5 or v6 if they use webpacker.
Hello,
I tried logging a GitHub issue to Rails to make them aware of this issue but they said they are no longer bugfixing Rails v6.1 anymore.
So since this IS a Ruby issue at its core this might be the best place for this.
You re...
Milella@Hotmail.com (Scott Milella)
09:26 PM Revision 0949cd71 (git): [ci skip] Add ticket label to test
peterzhu2118 (Peter Zhu)
09:25 PM Revision f66804e6 (git): don't allow setting class variable on module that's frozen [Bug #19341]
luke-gru (Luke Gruber)
09:10 PM Revision bf3940a3 (git): YJIT: Refactor side_exits
Jimmy Miller
08:02 PM Revision 5ce0c13f (git): YJIT: Remove duplicated information in BranchTarget (#7151)
Note: On the new code of yjit/src/core.rs:2178, we no longer leave the state `.block=None` but `.address=Some...`, which might be important.
We assume it's actually not needed and take a risk here to minimize heap allocations, but in ca...
k0kubun (Takashi Kokubun)
06:58 PM Revision 401aa9dd (git): [ruby/net-http] [DOC] Header doc
(https://github.com/ruby/net-http/pull/104)
https://github.com/ruby/net-http/commit/3308362d9b
burdettelamar (Burdette Lamar)
06:42 PM Revision 762a3d80 (git): Implement splat for cfuncs. Split exit exit cases to better capture where we are exiting (#6929)
YJIT: Implement splat for cfuncs. Split exit cases
This also implements a new check for ruby2keywords as the last
argument of a splat. This does mean that we generate more code, but in
actual benchmarks where we gained speed from this (...
Jimmy Miller
05:22 PM Revision 8872ebec (git): Fix compilation warnings in thread_sync.c
Fixes the following compilation warnings:
thread_sync.c:908:48: warning: taking address of packed member of `struct rb_queue` may result in an unaligned pointer value [-Waddress-of-packed-member]
thread_sync.c:1181:48: warning: taking ...
peterzhu2118 (Peter Zhu)
04:23 PM Revision 9af84c95 (git): Combine code paths for marking cc
This commit avoids a separate code path for marking and moving the
callcache of the iseq.
peterzhu2118 (Peter Zhu)
04:23 PM Revision 41bf2354 (git): Add rb_gc_mark_and_move and implement on iseq
This commit adds rb_gc_mark_and_move which takes a pointer to an object
and marks it during marking phase and updates references during compaction.
This allows for marking and reference updating to be combined into a
single function, whi...
peterzhu2118 (Peter Zhu)
04:15 PM Misc #19265: please remove rust yjit
It is going to be very hard to maintain 3.1 YJIT long-term. There are significant updates to the CRuby internal object structures. We're updating it in 3.2, but the older C-based code is still using the older CRuby internal structures. I... noahgibbs (Noah Gibbs)
04:07 PM Misc #19353: Drop gcc <= 6 and clang <= 9
I recently encountered a CI failure when testing against `C++98` due to the lack of variadic macros. `internal/gc.h` states that
```
* @note To ruby-core: remember that this header can be possibly
* recursiv...
eightbitraptor (Matt V-H)
08:07 AM Misc #19353: Drop gcc <= 6 and clang <= 9
OpenBSD/sparc64 uses gcc 4.2.1 (last GPLv2 version) as the system compiler. The sparc64 backend for clang is not yet mature (last I checked), so this would make it so Ruby 3.3+ would be unlikely to be supported on OpenBSD/sparc64 (at le... jeremyevans0 (Jeremy Evans)
07:04 AM Misc #19353 (Closed): Drop gcc <= 6 and clang <= 9
We test those old compilers using Ubuntu bionic. This OS is reaching its EOL.
Making them available would become harder.
I would like to drop supporting them. Any opinions?
shyouhei (Shyouhei Urabe)
03:30 PM Bug #19289 (Closed): RbConfig::CONFIG["STRIP"] should keep `ruby_abi_version` and `ruby_abi_version` should always be part of Ruby
Applied in changeset commit:git|6f3aff3961a4c5ce87e05096a1a9dcf1055b7647.
----------
[Bug #19289] Retain `ruby_abi_version` function
A few extension libraries, to hide all symbols except for necessary to
load, hardcode the symbols to b...
nobu (Nobuyoshi Nakada)
03:26 PM Revision 6f3aff39 (git): [Bug #19289] Retain `ruby_abi_version` function
A few extension libraries, to hide all symbols except for necessary to
load, hardcode the symbols to be exported in symbol list files for
linker without even checking by `have_func`. As a workaround for such
libraries, retain `ruby_abi_...
nobu (Nobuyoshi Nakada)
03:21 PM Revision 569fbf22 (git): Run `after-update` in the same main make process [ci skip]
nobu (Nobuyoshi Nakada)
03:20 PM Revision f3617800 (git): Fix a typo in BUG message [ci skip]
nobu (Nobuyoshi Nakada)
02:47 PM Revision dcc676a8 (git): ci in iseq can only be object or null
It looks like rb_callinfo in iseq can only be either a Ruby object or
null, since it cannot be allocated on the stack.
peterzhu2118 (Peter Zhu)
02:07 PM Bug #19354 (Feedback): Issues with arguments validation in IO.read
I've noticed a strange error message when `IO.read` is called with additional positional argument:
```ruby
IO.read("a.txt", 3, 0, {mode: "r+"})
# (irb):2:in `read': wrong number of arguments (given 3, expected 0..2) (ArgumentError)
...
andrykonchin (Andrew Konchin)
12:52 PM Revision 6a8fcb50 (git): merge revision(s) 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c: [Backport #19327]
Fix re-embedding of strings during compaction
The reference updating code for strings is not re-embedding strings
because the code is incorrectly wrapped inside of a
`if (STR_SHARED_P(obj))` clause. Shared string...
naruse (Yui NARUSE)
12:50 PM Bug #19319: Crash in rb_str_casemap
ruby_3_2 686b38f83e70b3e1796092c71dd0b7dc2206b118 merged revision(s) d8ef0a98c670449b20436947f5ebbd327ed5ab0d. naruse (Yui NARUSE)
12:17 PM Feature #12698: Method to delete a substring by regex match
I now agree with https://bugs.ruby-lang.org/issues/12698#note-9. This issue can be considered to be along that line. sawa (Tsuyoshi Sawada)
09:14 AM Feature #19314: String#bytesplice should support partial copy
Accepted.
Matz.
matz (Yukihiro Matsumoto)
08:30 AM Feature #19314 (Open): String#bytesplice should support partial copy
shugo (Shugo Maeda)
08:19 AM Feature #19314 (Closed): String#bytesplice should support partial copy
Applied in changeset commit:git|f7b72462aa27716370c6bea1f2c240983aca9a55.
----------
String#bytesplice should return self
In Feature #19314, we concluded that the return value of String#bytesplice
should be changed from the source stri...
shugo (Shugo Maeda)
08:59 AM Feature #13890: Allow a regexp as an argument to 'count', to count more interesting things than single characters
Overlapping can be realized by putting the original regexp within a look-ahead.
```ruby
s = "abcdefghij"
re = /.{3}/
```
Non-overlapping count:
```ruby
s.scan(re).count # => 3
s.count(re) # => Expect 3
```
Overlapping count:
```ruby...
sawa (Tsuyoshi Sawada)
05:20 AM Feature #13890: Allow a regexp as an argument to 'count', to count more interesting things than single characters
If `str.count(re)` works as `str.scan(re).size` (besides efficiency), it's acceptable. But if someone needs overlapping, they needs to explain their use-case.
Matz.
matz (Yukihiro Matsumoto)
08:58 AM Feature #19333: Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
Accepted, although we foresee some possible issues. One example is that people may use `nil` as a value when they only care about existence of keys (set-like usage). They should use non-nil values (e.g., true) for the case.
Matz.
matz (Yukihiro Matsumoto)
08:13 AM Revision f7b72462 (git): String#bytesplice should return self
In Feature #19314, we concluded that the return value of String#bytesplice
should be changed from the source string to the receiver, because the source
string is useless and confusing when extra arguments are added.
This change should b...
shugo (Shugo Maeda)
06:50 AM Revision 98abe4a0 (git): Fix test when Ruby is verbose
The test added in 90a80eb0 fails if Ruby is verbose, it outputs the
following line to stderr:
RUBY_GC_HEAP_INIT_SLOTS=100 (default value: 10000)
peterzhu2118 (Peter Zhu)
06:19 AM Feature #19245: Strict mode for Array#pack that doesn't silently truncate numbers that are too large for the given directive
I don't think it would be default, but adding `strict:` (or any other keyword argument) is OK for me.
Matz.
matz (Yukihiro Matsumoto)
05:12 AM Bug #18658 (Assigned): Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
I discussed @usa.
* We want to backport [openssl-3.0.2 gem](https://github.com/ruby/openssl/releases/tag/v3.0.2) into `ruby_3_0` branch.
* We need keep compatibility of OpenSSL-1.1 with openssl-3.0.2 gem
* @usa is considering dropping s...
hsbt (Hiroshi SHIBATA)
02:59 AM Revision 686b38f8 (git): merge revision(s) d8ef0a98c670449b20436947f5ebbd327ed5ab0d: [Backport #19319]
[Bug #19319] Fix crash in rb_str_casemap
The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
We need to ensur...
naruse (Yui NARUSE)
02:48 AM Bug #19262: Segmentation fault on RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location
ruby_3_2 1a2447ac9925e7794a7c5aa07960ad4de08e6aca merged revision(s) 979dd02e2f0a70f3f30d47c6115780d8fac6147e. naruse (Yui NARUSE)
02:05 AM Revision 1a2447ac (git): merge revision(s) 979dd02e2f0a70f3f30d47c6115780d8fac6147e: [Backport #19262]
Check if the argument is Thread::Backtrace::Location object
[Bug #19262]
---
ast.c | 5 +++++
test/ruby/test_ast.rb | 6 ++++++
2 files changed, 11 insertions(+)
naruse (Yui NARUSE)
02:05 AM Bug #19248: TestGCCompact#test_moving_objects_between_size_pools test failure
ruby_3_2 08ae7f64dc52c2b61e451d6e79ebdae73d482677 merged revision(s) 273dca3aed7989120d57f80c789733d4bc870ffe. naruse (Yui NARUSE)
01:52 AM Revision 4b42392f (git): YJIT: Use .as_side_exit() for jumps to counted exits
Fewer cycles running nops when these jumps are not taken. Fixing all
these so when they get copy pasted in the future we save on padding.
alanwu (Alan Wu)
01:23 AM Revision 4cf1d9b3 (git): YJIT: Set RUST_BACKTRACE=1 on YJIT GitHub Actions (#7152)
k0kubun (Takashi Kokubun)
01:08 AM Feature #19322: Support spawning "private" child processes
Hey @nobu, @eregon - any further thoughts on this?
@nobu - I changed the proposal not to depend on any new platform-specific process management APIs, but instead to leverage the existing code for managing process waits in `process.c`....
kjtsanaktsidis (KJ Tsanaktsidis)
01:07 AM Feature #19351 (Assigned): Promote bundled gems at Ruby 3.3
>I believe that for instance strscan is used to parse the Gemfile.lock. Historically Bundler simply vendored the gems it needs, but not sure how it could do that since it has a C-ext part.
Thanks. I also confirm that RubyGems/Bundler ...
hsbt (Hiroshi SHIBATA)
12:53 AM Feature #19351: Promote bundled gems at Ruby 3.3
I'm OK with gems maintained by me. kou (Kouhei Sutou)
12:31 AM Revision 08ae7f64 (git): merge revision(s) 273dca3aed7989120d57f80c789733d4bc870ffe: [Backport #19248]
Fix undefined behavior in shape.c
Under strict aliasing, writing to the memory location of a different
type is not allowed and will result in undefined behavior. This was
happening in shape.c due to `rb_id_table_...
naruse (Yui NARUSE)
12:29 AM Bug #19305: TracePoint#parameters segfaults when certain method creation pattern is used
ruby_3_2 d7fb4629b4058eb86be03760e6b9f1f272e44147 merged revision(s) 837ef8911c638c3e2bdb6af710de7c1fac7b5f90. naruse (Yui NARUSE)

01/18/2023

10:59 PM Revision edd00697 (git): Test some missing coverage too. (#7041)
Samuel Williams
09:03 PM Revision 30894292 (git): [ruby/net-http] [DOC] Enhanced RDoc for set_form
(https://github.com/ruby/net-http/pull/103)
https://github.com/ruby/net-http/commit/f6506ff889
burdettelamar (Burdette Lamar)
08:41 PM Revision 6bb576fe (git): YJIT: implement codegen for `String#empty?` (#7148)
YJIT: implement codegen for String#empty? maximecb (Maxime Chevalier-Boisvert)
04:54 PM Revision 0fd5a664 (git): Remove macro RHASH_ITER_LEV
The function rb_hash_iter_lev doesn't exist as it was removed. peterzhu2118 (Peter Zhu)
04:45 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
I just took a look at this and it looks like the culprit is the c dtoa function that's called in the json parser, specifically a helper function `Balloc`. It uses a lock for some reason *shrug*.
Edit: It looks like in ruby's missing/dto...
luke-gru (Luke Gruber)
04:08 PM Revision cd979763 (git): Add stats so we can keep track of x86 rel32 vs register calls (#7142)
* Add stats so we can keep track of x86 rel32 vs register calls
To know if we get that "prime real estate" as Alan put it.
* Fix bug pointed by Alan
maximecb (Maxime Chevalier-Boisvert)
03:59 PM Bug #19340: Ruby master 'make install' not installing rbs gem
The particular issue with rbs has been fixed with https://github.com/ruby/ruby/pull/7143
> The current build-system of bundled gems is very complex
Agreed. Several recent commits show updates to it.
Given issues with whether on...
MSP-Greg (Greg L)
06:36 AM Bug #19340: Ruby master 'make install' not installing rbs gem
We discuss this issue with @mame @nobu @ko1 and @soutaro. The current build-system of bundled gems is very complex.
We decide to the following specification for building the bundled gems.
When we provide this `bundled_gems` file:
...
hsbt (Hiroshi SHIBATA)
03:58 PM Feature #19333: Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
There is also `Thread#key?` for Fiber locals, so not just `thread_variable?`.
Above I am talking more about the performance issue than the semantic incompatibility.
Doing delete+insert is more expensive than set+set, and even much mo...
Eregon (Benoit Daloze)
03:48 PM Feature #19351: Promote bundled gems at Ruby 3.3
vo.x (Vit Ondruch) wrote in #note-3:
> BTW I don't think there would be that much fixing needed after all.
As we have seen with the `mail` gem, it can be a [huge](https://github.com/mikel/mail/pull/1439) [pain](https://github.com/mikel/...
Eregon (Benoit Daloze)
02:01 PM Feature #19351: Promote bundled gems at Ruby 3.3
Yeah, a few of these will need to be handled by rubygems/bundler.
I believe that for instance `strscan` is used to parse the `Gemfile.lock`. Historically Bundler simply vendored the gems it needs, but not sure how it could do that sin...
byroot (Jean Boussier)
09:47 AM Feature #19351: Promote bundled gems at Ruby 3.3
I update rails dependencies.
@vo.x Thanks for your comment. Maybe we should remove `irb` from this list.
I welcome feedback for these list and additional gem proposal like `cgi`, `erb` and others.
hsbt (Hiroshi SHIBATA)
09:28 AM Feature #19351: Promote bundled gems at Ruby 3.3
vo.x (Vit Ondruch) wrote in #note-1:
> > But if we promote them to bundled gems, many of users need to add gem "csv" into their Gemfile. I'm considering to avoid this situation.
> ...
BTW I don't think there would be that much fixing n...
vo.x (Vit Ondruch)
09:04 AM Feature #19351: Promote bundled gems at Ruby 3.3
> But if we promote them to bundled gems, many of users need to add gem "csv" into their Gemfile. I'm considering to avoid this situation.
Please let gems to be gems. Please let everybody fix their Gemfiles. Don't make exceptions. The...
vo.x (Vit Ondruch)
08:48 AM Feature #19351 (Closed): Promote bundled gems at Ruby 3.3
In Ruby 3.2, the default gems and bundled gems are changed only adding `syntax_suggest`. I and some committers are considering promote default gems to bundled gems again for Ruby 3.3+.
We hope to keep the current developer experience ...
hsbt (Hiroshi SHIBATA)
02:55 PM Revision 03f5db01 (git): Make installation messages verbose a little [ci skip]
nobu (Nobuyoshi Nakada)
02:49 PM Revision 8e53f09b (git): [ruby/reline] Add constant MINIMUM_SCROLLBAR_HEIGHT for scrollbar rendering when dialog content is very long
https://github.com/ruby/reline/commit/d4c95f89ec tompng (tomoya ishida)
02:49 PM Revision 976d72a9 (git): [ruby/reline] Add scrollbar scroll-to-bottom test and fix existing scrollbar rendeing test
https://github.com/ruby/reline/commit/268e02b155 tompng (tomoya ishida)
02:49 PM Revision a712f2a2 (git): [ruby/reline] Fix dialog scrollbar rendering position and disappearing bug
https://github.com/ruby/reline/commit/e21b69ade4 tompng (tomoya ishida)
01:49 PM Revision 4fa7d383 (git): Don't redefine RB_OBJ_WRITE
RB_OBJ_WRITE already exists in rgengc.h, so we shouldn't redefine it in
gc.h.
peterzhu2118 (Peter Zhu)
12:59 PM Revision e3336e09 (git): Define RUBY_VERSION_IS_3_3 macro in rubyspec.h
nobu (Nobuyoshi Nakada)
12:16 PM Bug #19350: Backport the latest stable version of RubyGems/Bundler
I removed https://github.com/ruby/ruby/commit/2bbf63dd867fe3d349b1758805ad4421f2d772ab from https://github.com/ruby/ruby/pull/7061 hsbt (Hiroshi SHIBATA)
08:33 AM Bug #19350 (Closed): Backport the latest stable version of RubyGems/Bundler
RubyGems 3.4.4 and Bundler 2.4.4 have been released. We should backport them into `ruby_3_2` branch.
https://github.com/ruby/ruby/pull/7061
I also added patch for [Bug #19298] to above pull-request.
hsbt (Hiroshi SHIBATA)
11:19 AM Revision d275adde (git): Pin simplecov-0.20.0
hsbt (Hiroshi SHIBATA)
11:19 AM Revision 18d8333c (git): Switch to use gem version of simplecov, not git clone
hsbt (Hiroshi SHIBATA)
11:15 AM Revision d7fb4629 (git): merge revision(s) 837ef8911c638c3e2bdb6af710de7c1fac7b5f90: [Backport #19305]
Fix crash in TracePoint c_call for removed method
trace_arg->id is the ID of the original method of an aliased method. If
the original method is removed, then the lookup will fail. We should use
trace_arg->called...
naruse (Yui NARUSE)
11:15 AM Bug #19271: irb ignores rbs and debug
ruby_3_2 f7e9b79f815e08e0a29fff11f77466f4ffb92520 merged revision(s) 4959e01932cf6c4d3e5e90d3e0b4fa780f754fa6. naruse (Yui NARUSE)
11:14 AM Bug #19298: `lib/mjit/instruction.rb` was reintroduced by merge mistake
ruby_3_2 44a3043d1182acf3147935d9c1564028b5538417 merged revision(s) 2bbf63dd867fe3d349b1758805ad4421f2d772ab. naruse (Yui NARUSE)
11:14 AM Revision 44a3043d (git): merge revision(s) 2bbf63dd867fe3d349b1758805ad4421f2d772ab: [Backport #19298]
Remove lib/mjit/instruction.rb
This was accidentally re-introduced in f6620037ba1477d2c337d7b511f094d6d0fbb69c.
[Bug #19298]
---
lib/mjit/instruction.rb | 2162 ------------------------------------------...
naruse (Yui NARUSE)
09:58 AM Bug #19336: Backport commit eab7f4623fbf0488e828b75843d70c8e02dc8aa5
ruby_3_2 057eff7663a0a4bc95a4799336a2bc14ca2480f0 merged revision(s) eab7f4623fbf0488e828b75843d70c8e02dc8aa5. naruse (Yui NARUSE)
09:56 AM Revision 1fb5eb57 (git): merge revision(s) aeddc19340c7116d48fac3080553fbb823857d16: [Backport #19316]
YJIT: Save PC and SP before calling leaf builtins (#7090)
Previously, we did not update `cfp->sp` before calling the C function of
ISEQs marked with `Primitive.attr! "inline"` (leaf builtins). This
caused the GC ...
naruse (Yui NARUSE)
09:56 AM Revision f7e9b79f (git): merge revision(s) 4959e01932cf6c4d3e5e90d3e0b4fa780f754fa6: [Backport #19271]
common.mk: Do not invoke outdate-bundled-gems by default
If baseruby is available (and its version is different from one being
built) when compiling ruby, tool/outdate-bundled-gems.rb (which is
invoked by `make i...
naruse (Yui NARUSE)
09:54 AM Bug #19296: Time.new's argument check is incomplete
ruby_3_2 52ea5ea9906c3a96c60a68e01b303672602a6832 merged revision(s) 291a4098cf649c027cb50c16b872455f26ad1dfb,5be0d42d2c4dc765230c76738289560f9ee37f09. naruse (Yui NARUSE)
09:09 AM Bug #19297: Don't download content from internet to execute Ruby test suite
For what it's worth, Bundler's main test suite should pass now without an internet connection since https://github.com/rubygems/rubygems/pull/6243. deivid (David Rodríguez)
08:18 AM Revision 97c32b49 (git): merge revision(s) 43ff0c2c488c80aaf83b486d45bcd4a92ebe3848: [Backport #19299]
YJIT: Fix `yield` into block with >=30 locals on ARM
It's a register spill issue. Fix by moving the Qnil fill snippet to
after registers are released.
[Bug #19299]
---
test/ruby/test_yjit.rb | 1...
naruse (Yui NARUSE)
08:17 AM Revision 52ea5ea9 (git): merge revision(s) 291a4098cf649c027cb50c16b872455f26ad1dfb,5be0d42d2c4dc765230c76738289560f9ee37f09: [Backport #19296]
Add missing assertion
---
test/ruby/test_time.rb | 3 +++
1 file changed, 3 insertions(+)
[Bug #19296] Precheck bits of time components
---
test/ruby/test_time.rb | 15 +++++++++++++++
...
naruse (Yui NARUSE)
08:09 AM Bug #19264: Backport 9f2378959e5c5b5c39c9993f1a84e5304ff113d6
I think this shouldn't be backported naruse (Yui NARUSE)
08:08 AM Revision 057eff76 (git): merge revision(s) eab7f4623fbf0488e828b75843d70c8e02dc8aa5: [Backport #19336]
Return 0 if there is no CFP on the EC yet
StackProf uses a signal handler to call `rb_profile_frames`. Signals
are delivered to threads randomly, and can be delivered after the thread
has been created but before...
naruse (Yui NARUSE)
08:04 AM Bug #19292: Time object's wday, yday, and isdst returns broken value (and so does to_a) when kwarg in: 'UTC' was given
ruby_3_2 89cd61890fe78e0491708f87a5df678b03fda8a3 merged revision(s) 542e984d82fa25098eb15398d716d907acc52b93. naruse (Yui NARUSE)
08:03 AM Bug #19284: Integer overflow when using RUBY_GC_HEAP_INIT_SLOTS environment variable
ruby_3_2 49cf0896a2934547c0764aadaec021fb37a2e96f merged revision(s) 90a80eb076429978e720e11fb17a3cbb96de3454. naruse (Yui NARUSE)
07:14 AM Revision ba45be3c (git): Supressing warnings messages like:
Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.
Revert "Clear gem paths for each test"
This reverts commit 6698b580ddad8cfa8c5c86df9328472820d3ee6a.
hsbt (Hiroshi SHIBATA)
06:26 AM Revision 5fc97f34 (git): benchmark_driver v0.16.3
Some chruby-related features and bug fixes. k0kubun (Takashi Kokubun)
05:31 AM Revision 7e97e2ba (git): Update RBS commit hash (#7143)
Use a commit at the top of RBS 2.8.3, not 3.0.0.dev.N. soutaro (Soutaro Matsumoto)
05:28 AM Revision 2d7e6395 (git): [ruby/reline] multiline_repl do not need to depend on RubyLex
(https://github.com/ruby/reline/pull/502)
* multiline_repl do not need to depend on RubyLex
* Add auto indent test
tompng (tomoya ishida)
05:25 AM Revision 46066d0b (git): Change ArgumentError message when Comparable#clamp receives min value higher than max value
kaiquekandykoga (Kaíque Koga)
04:53 AM Revision 5ce3855d (git): Update default gems list at 8a771efec21c9dacad5bb8bf14b81c [ci skip]
git[bot]
04:53 AM Revision 8a771efe (git): [ruby/psych] Bump up 5.0.2
https://github.com/ruby/psych/commit/a170b8eb46 hsbt (Hiroshi SHIBATA)
03:27 AM Bug #19349: Kernel.Integer silently discards base argument that does not have a #to_int
https://github.com/ruby/ruby/pull/7144 nobu (Nobuyoshi Nakada)
03:02 AM Revision 8ae4e3dd (git): Clean up removed directories in ext/Setup* [ci skip]
znz (Kazuhiro NISHIYAMA)
02:57 AM Revision 2fa3fda0 (git): Remove removed files from ext/.document [ci skip]
- dbm/dbm.c removed at 55cd3e4ebff8fa75854ecadcd77abbf7cf4b5823
- fiber/fiber.c removed at 521ad9a13aef1e1dae4eaff70d3e6b2e358aa095
- gdbm/gdbm.c removed at edcc29dcff1b269b7748ab83adf21b2f3f97ebff
znz (Kazuhiro NISHIYAMA)
 

Also available in: Atom