Project

General

Profile

Activity

From 09/18/2023 to 09/24/2023

09/24/2023

09:57 PM Revision 36cd2b2a (git): [DOC] Correction for doc guide + TOC fix in File (#8505)
burdettelamar (Burdette Lamar)
01:43 PM Feature #13933: Add Range#empty?
Dan0042 (Daniel DeLorme) wrote in #note-9:
> akr (Akira Tanaka) wrote in #note-8:
> ...
There is an actual example of `(x <=> x) = nil`, `Float::NAN`.
```
% ruby -e 'x = Float::NAN; p x <=> x'
nil
```
From experience with ...
akr (Akira Tanaka)
01:07 PM Revision f43dac0d (git): Add rb_hash_free for the GC to use
peterzhu2118 (Peter Zhu)
01:07 PM Revision 36cdf163 (git): Add hash_st_free
peterzhu2118 (Peter Zhu)
06:14 AM Bug #19864: Ruby 3.2 Changed Behavior With One Sided Ranges
ruby_3_2 217ef2bf89b3861e83c2e2a3a633c019f0731de6 merged revision(s) 25711683e86271385e8abe09a9c03782000e48db. nagachika (Tomoyuki Chikanaga)
06:14 AM Bug #19853: Segfault when calling `system` from a non-blocking fiber
ruby_3_2 9cd28caa7cc3b0d987db7c1231fe101fb3b27399 merged revision(s) 901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d. nagachika (Tomoyuki Chikanaga)
06:13 AM Bug #19894: Memory leak in complemented method entries
ruby_3_2 9ee58b2054c1bbe722ae5a2a4ec6a750ee583220 merged revision(s) 96c5a4be7b0d72502001734770af0f4a735c544c. nagachika (Tomoyuki Chikanaga)
06:13 AM Revision 9ee58b20 (git): merge revision(s) 96c5a4be7b0d72502001734770af0f4a735c544c: [Backport #19894]
Fix memory leak in complemented method entries
[Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is no...
nagachika (Tomoyuki Chikanaga)
05:16 AM Revision 9cd28caa (git): merge revision(s) 901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d: [Backport #19853]
Validate the typed data before dereferencing the internal struct.
(#8315)
---
process.c | 5 +++--
test/fiber/test_process.rb | 21 +++++++++++++++++++++
2 files changed, 24 in...
nagachika (Tomoyuki Chikanaga)
04:48 AM Revision 217ef2bf (git): merge revision(s) 25711683e86271385e8abe09a9c03782000e48db: [Backport #19864]
Fix regression when testing inclusion in unbounded ranges
Caused by 04a92a6764bf678919cf4b68a27496a39d6b886a. This treats
unbounded ranges of arbitrary objects the same as how unbounded
string ranges are treated...
nagachika (Tomoyuki Chikanaga)
03:58 AM Revision 34d802f3 (git): Refactor to use ripper_new_yylval2
yui-knk (Kaneko Yuichiro)
02:44 AM Bug #19885: Invalid Warning for Default Gems That Will Move to Bundled Gems
I'm confused by this warning "bigdecimal which will be not part of the default gems since Ruby 3.4.0"
Besides being grammatically incorrect, this tells me nothing about what is the problem, why is this a problem, or how I should fix it....
Dan0042 (Daniel DeLorme)
12:50 AM Revision 94d7c708 (git): Fix test thread leakage
nobu (Nobuyoshi Nakada)
12:08 AM Revision f38f8d4f (git): The first arg of NEW_OPT_ARG is always 0
yui-knk (Kaneko Yuichiro)

09/23/2023

09:10 PM Bug #19901 (Closed): Module clone memory leak
Applied in changeset commit:git|c42261059dfebabbf0391327a5e077545a9bc438.
----------
[Bug #19901]
fix leak in module clone
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Anonymous
07:48 PM Bug #19901 (Closed): Module clone memory leak
GitHub PR: https://github.com/ruby/ruby/pull/8503
reproduction:
```ruby
m = Module.new
20.times do
100_000.times do
m.clone
end
puts `ps -o rss= -p #{$$}`
end
```
before:
```
21544
24708
27860
31024
...
HParker (Adam Hess)
09:10 PM Revision c4226105 (git): [Bug #19901]
fix leak in module clone
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Adam Hess
03:24 PM Revision 61a2e945 (git): Fix memory leak in Hash#rehash for ST hashes
We need to free the old ST table in Hash#rehash.
Co-authored-by: Adam Hess <adamhess1991@gmail.com>
peterzhu2118 (Peter Zhu)
11:56 AM Bug #19885: Invalid Warning for Default Gems That Will Move to Bundled Gems
@jeremyevans0 Thanks.
I'm considering to skip this warning from rubygems. I think we should only warn it if environment didn't have gem like webrick.
>Note that you also get the warning when loading a gem that has bigdecimal as a ...
hsbt (Hiroshi SHIBATA)
07:34 AM Revision d80002c9 (git): Improve VCS::GIT#format_changelog addessing [ci skip]
nobu (Nobuyoshi Nakada)
07:05 AM Revision 1da97292 (git): Ignore rbs test failures
For some reason, it's been failing only on YJIT, but apparently it's
reproducible on the interpreter as well. So it's not related to YJIT.
rbs marked rbs tests on Ruby master as allow_failures
https://github.com/ruby/rbs/pull/1536, so i...
k0kubun (Takashi Kokubun)
02:22 AM Revision e581b78e (git): Improve performance of include? by 5-10x
Rails uses IPAddr#include? to evaluate what it should use as the
client's remote ip by filtering potential ips against a trusted list
of internal ips. In a _very_ minimal app, #include? was showing up in
a profile as ~1% of request time....
Hartley McGuire

09/22/2023

08:31 PM Feature #19900: Rename YARP to Prism
I guess one advantage of the name "prism" is that this may be a bit easier
to remember than "yarp".
rubyFeedback (robert heiler)
04:12 PM Feature #19900 (Closed): Rename YARP to Prism
Following up on the discussion from https://bugs.ruby-lang.org/issues/19772#note-29, we would like to rename the YARP project to `Prism`. For the purposes of this ticket specifically, all functionality will remain the same. That is:
*...
kddnewton (Kevin Newton)
08:14 PM Revision 2ceb5363 (git): Try to fix compilation on m68k
Compilation is failing on m68k-linux with:
```
./include/ruby/internal/static_assert.h:51:46: error: static assertion failed: "sizeof_method_def: offsetof(rb_method_definition_t, body)==8"
51 | # define RBIMPL_STATIC_ASSERT0 __extens...
peterzhu2118 (Peter Zhu)
06:53 PM Revision d2858998 (git): [YARP] Use the integer base flag (#8476)
Use the integer base flag kddnewton (Kevin Newton)
05:08 PM Revision 6de1a923 (git): [ruby/yarp] Check class name to be a constant path node or a constant read node
https://github.com/ruby/yarp/commit/fd7c44f13f Haldun Bayhantopcu
04:30 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
@tenderlovemaking thanks for looking into this! it completely skipped my mind to check for the hash allocation for the kwargs, which was silly of me (I guess I've been spoiled lately by more things moving to ruby, where the kwargs can be... segiddins (Samuel Giddins)
04:15 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
Dan0042 (Daniel DeLorme) wrote in #note-9:
> > I believe that language level change needs its own ticket if wanted.
> ...
No problem! 😆
> So if the performance issue was due to keywords arguments, what's your thought on the many oth...
tenderlovemaking (Aaron Patterson)
01:49 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
> I believe that language level change needs its own ticket if wanted.
I agree. Sorry for semi-hijacking the thread, but this discussion wasn't at the point where I wanted to make a feature request.
So if the performance issue was ...
Dan0042 (Daniel DeLorme)
04:07 PM Misc #19772 (Closed): API naming for YARP compiler
kddnewton (Kevin Newton)
04:07 PM Misc #19772: API naming for YARP compiler
This issue has had a lot of discussion on a lot of different topics. I'm going to close it for now since the original issue that Jemma was talking about has long since been resolved. I will open other tickets for multi-version support an... kddnewton (Kevin Newton)
04:05 PM Revision 9abaf392 (git): Resync yarp (#8498)
* [YARP] Reject numbered parameters in block parameters
* [YARP] Do not allow BEGIN except the toplevel
---------
Co-authored-by: Haldun Bayhantopcu <haldun@github.com>
jemmai (Jemma Issroff)
03:47 PM Revision c54e225f (git): [ruby/yarp] Introduce YP_TOKEN_METHOD_NAME
https://github.com/ruby/yarp/commit/e855bf415c Haldun Bayhantopcu
03:43 PM Revision 74241437 (git): [YARP] Remove minor instances of rb_intern (#8497)
jemmai (Jemma Issroff)
03:35 PM Misc #19899 (Closed): Ruby3.3.0-preview2: Behaviour changes of Socket.recv when the sever closes the connection
I noticed that `Socket#recv` now returns `nil` instead of `""` when the server closes the connection, is it expected? If yes, I suggest mentioning it to the [release page](https://www.ruby-lang.org/en/news/2023/09/14/ruby-3-3-0-preview2-... jbeschi (jacopo beschi)
03:07 PM Feature #19898 (Open): Special syntax for instance variable assignment
Since keyword arg assignment is already DRY with omitting of argument of the same name, what about DRYing out an instance var assignment? Something like this, with "@" for example, since it's already used to assign instance vars / memoiz... x3qt (Jury Paliakou)
02:45 PM Revision ea5f8e12 (git): Magical wait to get rid of deadlock on macOS
nobu (Nobuyoshi Nakada)
02:19 PM Revision 416a8202 (git): [ruby/yarp] use `yp_statements_node_body_length` a little bit more
https://github.com/ruby/yarp/commit/65d8816178 froydnj (Nathan Froyd)
02:17 PM Revision 02022cef (git): [ruby/stringio] [DOC] Fix link
(https://github.com/ruby/stringio/pull/65)
https://github.com/ruby/stringio/commit/e3ea087d04
burdettelamar (Burdette Lamar)
02:07 PM Revision a5ae5f71 (git): [ruby/yarp] Fix listener leave event order
https://github.com/ruby/yarp/commit/1e6e264836 kddnewton (Kevin Newton)
01:58 PM Bug #19896 (Closed): Ruby method refinement memory leak
Applied in changeset commit:git|8b236e0c66da8f92e9fc33de66cfbc8e4b0c0763.
----------
[Bug #19896]
fix memory leak in vm_method
This introduces a unified reference_count to clarify who is referencing a method.
This also allows us to tr...
HParker (Adam Hess)
01:58 PM Revision 170e622a (git): [ruby/prettyprint] [DOC] Link fixes
https://github.com/ruby/prettyprint/commit/f1f583c827 burdettelamar (Burdette Lamar)
01:44 PM Revision 8b236e0c (git): [Bug #19896]
fix memory leak in vm_method
This introduces a unified reference_count to clarify who is referencing a method.
This also allows us to treat the refinement method as the def owner since it counts itself as a reference
Co-authored-by: Pe...
HParker (Adam Hess)
01:14 PM Bug #19881 (Rejected): Unary operators on calls without parentheses
kddnewton (Kevin Newton)
01:11 PM Bug #17925: Pattern matching syntax using semicolon one-line
I agree with @yui-knk here, I think this is definitely a choice and at this point can't be changed. kddnewton (Kevin Newton)
01:00 PM Revision f59b488b (git): [ruby/irb] Page show_source's output
(https://github.com/ruby/irb/pull/719)
https://github.com/ruby/irb/commit/3cedc5cb62
st0012 (Stan Lo)
12:50 PM Feature #13933: Add Range#empty?
duerst (Martin Dürst) wrote in #note-10:
> Are you saying that true shouldn't be equal to true? That would be strange, at least to me.
I understand that it appears logical, but <=> is a *comparison* operator, used to compare with *ot...
Dan0042 (Daniel DeLorme)
07:53 AM Feature #13933: Add Range#empty?
Dan0042 (Daniel DeLorme) wrote in #note-9:
> because `true<=>true` is 0 (and arguably it should be nil but that's another topic).
Are you saying that true shouldn't be equal to true? That would be strange, at least to me.
duerst (Martin Dürst)
12:40 PM Revision c0d27af1 (git): [ruby/yarp] Create arguments when necessary
https://github.com/ruby/yarp/commit/123332f255 Haldun Bayhantopcu
11:35 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
For the reference, this is PR resolving this:
https://github.com/ruby/ruby/pull/8490
Thx a lot!
vo.x (Vit Ondruch)
10:41 AM Revision c8c35ded (git): [YARP] Suppress constant redefinition warning
```
<compiled>:1: warning: already initialized constant Bar
test/yarp/compiler_test.rb:139: warning: previous definition of Bar was here
```
nobu (Nobuyoshi Nakada)
10:12 AM Feature #19744: Namespace on read
hsbt (Hiroshi SHIBATA) wrote in #note-27:
> And RubyGems and Bundler have few vendored ruby library like `fileutils`, `uri` and etc. We should stop it and use version provided by standard library with lock version by this feature.
Ri...
Eregon (Benoit Daloze)
08:13 AM Feature #19744: Namespace on read
In short term, I'm positive to this feature because RubyGems and Bundler couldn't use or vendor C extensions of default gems now. see #13847.
And RubyGems and Bundler have few vendored ruby library like `fileutils`, `uri` and etc. We ...
hsbt (Hiroshi SHIBATA)
07:59 AM Feature #19744: Namespace on read
It may be useful to allow a code block if that does not cause a trouble.
```rb
require "my_module"
NameSpace.new do
self # => #<NameSpace:0x00...>
require "my_module"
MyModule.object_id != ::MyModule.object_id # => true
end
```
sawa (Tsuyoshi Sawada)
09:49 AM Bug #14480: miniruby crashing when compiled with -O2 or -O1 on aarch64
Please note that on Fedora this was not issue for past ~5 years. This has beend workarounded on GCC side:
https://bugzilla.redhat.com/show_bug.cgi?id=1545239#c42
And it seems that the GCC folks position is that this should behave c...
vo.x (Vit Ondruch)
09:35 AM Bug #19897 (Closed): Please backport fixes from #18914 into Ruby 3.1 / 3.0
I did update for 3.1. But I'm not sure we can backport it to Ruby 3.0. hsbt (Hiroshi SHIBATA)
09:29 AM Bug #19897 (Closed): Please backport fixes from #18914 into Ruby 3.1 / 3.0
I cannot modify the backport field anymore, therefore please backport the fixes from #18914 to Ruby 3.1 / 3.0. Ruby 3.2 should already contain the fixes. vo.x (Vit Ondruch)
09:06 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
Actually this could be even better and more in line with current implementation:
~~~ruby
def require_relative(path)
original_load_path = $LOAD_PATH.dup
$LOAD_PATH.replace [__dir__]
require path
$LOAD_PATH.replace original...
vo.x (Vit Ondruch)
08:57 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
In short, this could be the implementation:
~~~ruby
def require_relative(path)
$LOAD_PATH.unshift __dir__
require path
$LOAD_PATH.shift
end
~~~
Anything else breaks is harmful (talking about issues such as #16978 which is related...
vo.x (Vit Ondruch)
07:24 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
I think that the biggest issue is with `require_relative` and expansion of the relative paths to absolute paths. What it should actually do IMHO is add the current directory, form which the relativeness is derived, to the `$LOAD_PATH` an... vo.x (Vit Ondruch)
07:29 AM Revision 50e3b27d (git): [ruby/zlib] Add truffleruby-head in CI
* The latest release does not have this fix:
https://github.com/oracle/truffleruby/commit/c77f8bb35db084c99d1f5b14748267866004222e
https://github.com/ruby/zlib/commit/8abc80b994
Eregon (Benoit Daloze)
02:25 AM Revision fb7a2ddb (git): Directly free structure managed by imemo tmpbuf
NODE_ARGS, NODE_ARYPTN, NODE_FNDPTN manage memory of their
structure by imemo tmpbuf Object.
However rb_ast_struct has reference to NODE. Then these
memory can be freed directly when rb_ast_struct is freed.
This commit reduces parser's ...
yui-knk (Kaneko Yuichiro)

09/21/2023

10:05 PM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
sawa wrote:
> This situation is making the specification of require versus require_relative
> ...
I kind of stay(ed) with require and almost never use require_relative. So for me
at the least it is not really an issue. Other ruby de...
rubyFeedback (robert heiler)
10:00 PM Revision bf129370 (git): [YARP] Implement ConstantPathTargetNode
Co-Authored-By: kddnewton <kevin.newton@shopify.com> eightbitraptor (Matt V-H)
09:14 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
https://github.com/ruby/ruby/pull/7367 fixes this, and just needs to be merged. ccaviness (Clay Caviness)
09:08 PM Revision 48b141b4 (git): [ruby/pstore] [DOC] Link fixes
https://github.com/ruby/pstore/commit/3f328a1e0e burdettelamar (Burdette Lamar)
08:02 PM Revision 1cbb1b55 (git): Update default gems list at 2df00640ff098a305eacee48cf2c77 [ci skip]
git[bot]
08:01 PM Revision 2df00640 (git): [ruby/openssl] Ruby/OpenSSL 3.2.0
https://github.com/ruby/openssl/commit/6b3dd6a372 rhenium (Kazuki Yamaguchi)
08:01 PM Revision a2f1195b (git): [ruby/openssl] Update README and gemspec description
* Reword the description in README for more clarity.
* Add a compatibility matrix of our stable branches and explain the
maintenance policy.
* Remove the obsolete paragraph for how to use the gem in Ruby 2.3,
which is no longer...
rhenium (Kazuki Yamaguchi)
07:53 PM Revision 5c11dea4 (git): [rubygems/rubygems] Reduce allocations when parsing lockfile
```
==> memprof.after.txt <==
Total allocated: 673.08 kB (7644 objects)
Total retained: 107.35 kB (1018 objects)
==> memprof.before.txt <==
Total allocated: 739.12 kB (9140 objects)
Total retained: 138.61 kB (1695 objects)
```
Saving...
segiddins (Samuel Giddins)
07:33 PM Revision c34a50de (git): [ruby/yarp] encourage the compiler to compile `lex_keyword` more efficiently
https://github.com/ruby/yarp/commit/f7bb139e2f froydnj (Nathan Froyd)
07:28 PM Revision a7b3217f (git): [YARP] Add tests for popped instructions (#8494)
jemmai (Jemma Issroff)
07:08 PM Revision 39a6272c (git): [rubygems/rubygems] Fix safe marshal test on jruby
Allow for variance in order of dumped ivars, fix by setting the disallowed ivar on an object that will have no other ivars so the index is consistent
https://github.com/rubygems/rubygems/commit/ccb8f42753
segiddins (Samuel Giddins)
06:30 PM Revision 812c8196 (git): [rubygems/rubygems] Remove usage of Dir.chdir that just execute a subprocess
Preferring instead to spawn the subprocess in the correct directory
https://github.com/rubygems/rubygems/commit/ad5abd6a45
segiddins (Samuel Giddins)
06:30 PM Bug #18911: Process._fork hook point is not called when Process.daemon is used
Note for future readers coming here from the `Process._fork` documentation.
If you need to restart threads, you should override both `_fork` and `daemon`
```ruby
module RestartWatcherThread
def _fork
pid = super
restart...
Dan0042 (Daniel DeLorme)
06:28 PM Revision e9ed0b30 (git): [rubygems/rubygems] Stop bundler eagerly loading all specs with exts
We were setting the wrong `extension_dir` for git specs stubs
Additionally, the call to `self.extension_dir` was loading the
remote spec, which was avoidable since the stub had an extension dir
(and in fact its #gem_build_complete_path ...
segiddins (Samuel Giddins)
06:25 PM Revision 02fa2acb (git): [rubygems/rubygems] Freeze more strings in generated gemspecs
Specifically, this will have frozen string literals for:
- Gem platform tuple entries
- Gem::Version strings
- Gem::Specification#installed_by_version
- Dependency requirement strings
https://github.com/rubygems/rubygems/commit/6195da5bdb
segiddins (Samuel Giddins)
06:04 PM Revision 7f407e02 (git): [ruby/openssl] Fix test_pkey_ec.rb on FIPS.
https://github.com/ruby/openssl/commit/d07183f639 Jun Aruga
06:04 PM Revision f370c4dc (git): [ruby/openssl] test_pkey.rb: Refactor the test_ed25519 on FIPS.
* Split the test in the FIPS case as another test.
* test/openssl/utils.rb: Add omit_on_fips and omit_on_non_fips methods.
https://github.com/ruby/openssl/commit/4d64c38ed0
Jun Aruga
06:04 PM Revision 3123b2fa (git): [ruby/openssl] test_fips.rb: Fix the `OpenSSL.fips_mode` affecting other tests.
Run the test with `assert_separately` for the `false` value of the
`OpenSSL.fips_mode` not to affect other tests.
https://github.com/ruby/openssl/commit/2fe3438d8a
Jun Aruga
05:43 PM Feature #19839: Need a method to check if two ranges overlap
Thank you for checking with us. I believe the difference when the ranges are empty is acceptable. I don't think it was intentional in the Active Support implementation. rafaelfranca (Rafael França)
06:10 AM Feature #19839: Need a method to check if two ranges overlap
Asked them in their discord channel. https://discord.com/channels/849034466856665118/974005005768069211/1154298190120624138 shouichi (Shouichi Kamiya)
02:13 AM Feature #19839: Need a method to check if two ranges overlap
This method is going to have an incompatibility with `Range#overlap?` that ActiveSupport has been provided. Is it OK? I'd like to confirm with the Rails developers just to be sure. mame (Yusuke Endoh)
03:09 PM Feature #13933: Add Range#empty?
akr (Akira Tanaka) wrote in #note-8:
> Range#empty? should work with them.
Ok for `Float::INFINITY, [], ""`, but I don't think `true, false, Object.new` are relevant. A Range object normally has a begin and end, and if the values are...
Dan0042 (Daniel DeLorme)
11:47 AM Feature #13933: Add Range#empty?
I described that this is difficult to implement in https://bugs.ruby-lang.org/issues/19839#note-18.
The problem is not only with -Float::INFINITY.
There are many minimum values other than -Float::INFINITY : [], "", true, false, Objec...
akr (Akira Tanaka)
01:57 AM Feature #13933: Add Range#empty?
It was an ad-hoc example that just seemed to me like it should return true.
As to how to define it... maybe we can say that numeric ranges are equivalent to `begin == -Float::INFINITY` if beginless, and `end == +Float::INFINITY` if endl...
Dan0042 (Daniel DeLorme)
12:56 AM Feature #13933: Add Range#empty?
Dan0042 (Daniel DeLorme) wrote in #note-5:
> ```ruby
> ...
How do you define this?
`Range#empty?` must know if the element is a `Float`, and negative infinity?
nobu (Nobuyoshi Nakada)
02:01 PM Revision 22a44735 (git): Use ANSI-style prototype declarations instead of the old K&R style
nobu (Nobuyoshi Nakada)
10:34 AM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> Seems like a language level change, and I don't have any opinions on it 😅
Yes, I believe that language level change needs its own ticket if wanted.
This ticket is about fixing the p...
Eregon (Benoit Daloze)
09:18 AM Revision 20bd19a9 (git): Move YARP_BUILD_DIR to common.mk
It does not need to be an absolute path. nobu (Nobuyoshi Nakada)
08:18 AM Feature #19744: Namespace on read
@deivid @hsbt and other RubyGems/Bundler maintainers:
What do you think of this proposal, especially the part related to RubyGems & Bundler?
This would enable loading different versions of a gem in the same process, together with chang...
Eregon (Benoit Daloze)
08:05 AM Misc #19772: API naming for YARP compiler
mame (Yusuke Endoh) wrote in #note-29:
> He came up with an idea to enable a user to use multi-version yarp gems at a time by Namespace on read (#19744) in the future. So he said that the yarp gem doesn't have to support multi-version.
...
Eregon (Benoit Daloze)
01:43 AM Misc #19772: API naming for YARP compiler
I had a little conversation with @matz about this issue yesterday.
He clearly rejects the name "yarp" not only a built-in constant but also as a bundled gem. He said "prism" is fine for a bundled gem. (Sorry, I misunderstood his opini...
mame (Yusuke Endoh)
07:40 AM Revision 0a423d4c (git): [rubygems/rubygems] Aggressively optimize allocations in SafeMarshal
Reduces allocations in a bundle install --full-index by an order of magnitude
Main wins are (a) getting rid of exessive string allocations for exception message stack
(b) Avoiding hash allocations caused by kwargs for #initialize
(c) ...
segiddins (Samuel Giddins)
06:21 AM Revision a49d17a0 (git): Slack notification cannot send from other than ruby/* [ci skip]
nobu (Nobuyoshi Nakada)
05:44 AM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
The latest Xcode seems taking care about only `/usr/local/lib` differently.
```sh
$ echo 'int main(void) {return 0;}' > main.c
$ clang --version
Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin22.6.0
Th...
nobu (Nobuyoshi Nakada)
05:37 AM Bug #19892 (Closed): Build fails when release archive is prepared with `-keep_temp` option
nobu (Nobuyoshi Nakada)
03:19 AM Revision 7c98d520 (git): [Bug #19892] Clean intermediate files regardless `-keep_temp`
Not to include such files in the result packages. nobu (Nobuyoshi Nakada)
03:19 AM Revision 7ba88e13 (git): Make `clean.create` to accept a block
Like `File.open`, yield an IO to write the file. nobu (Nobuyoshi Nakada)
03:18 AM Revision 2b41df24 (git): `.NOTPARALLEL` with prerequisites needs recent GNU Make
GNU Make prior to 4.4 just ignores the prerequisites, and runs
everything in serial.
nobu (Nobuyoshi Nakada)
01:30 AM Revision 7e350f53 (git): Optimize Range#bsearch for beginless/endless ranges within Fixnum
kyanagi (Kouhei Yanagita)
01:23 AM Bug #19624 (Closed): Backticks - IO object leakage
Applied in changeset commit:git|ab637cad2b582e8247bafd87a3b0f6323d564f64.
----------
[Bug #19624] Clean up backquote IO
It should not be hidden, since it can be grabbed by a fiber scheduler.
nobu (Nobuyoshi Nakada)
01:23 AM Revision ab637cad (git): [Bug #19624] Clean up backquote IO
It should not be hidden, since it can be grabbed by a fiber scheduler. nobu (Nobuyoshi Nakada)

09/20/2023

09:03 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
Dan0042 (Daniel DeLorme) wrote in #note-6:
> Eregon (Benoit Daloze) wrote in #note-5:
> ...
I'm not sure how it's implemented in TruffleRuby, but in CRuby the special variable object has reference _location_ allocated on the Ruby stack...
tenderlovemaking (Aaron Patterson)
03:27 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
Eregon (Benoit Daloze) wrote in #note-5:
> There such a functionality would cost an extra allocation per call (the special variables objects is passed to the callee and that forces the allocation), which is a significant performance cos...
Dan0042 (Daniel DeLorme)
02:07 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
Dan0042 (Daniel DeLorme) wrote in #note-4:
> @eregon You should really stop that tendency to premature micro-optimization and making extravagant claims about "significant" performance costs. What I'm suggesting, in the normal case where...
Eregon (Benoit Daloze)
01:46 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
@eregon You should really stop that tendency to premature micro-optimization and making extravagant claims about "significant" performance costs. What I'm suggesting, in the normal case where the flag is not set, involves only a single c... Dan0042 (Daniel DeLorme)
07:32 AM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
@Dan0042 There is a significant performance cost to deal with special variables in n callers like this.
I think it should remain an internal thing only and not be exposed via that forward flag, as that would slow down such calls signifi...
Eregon (Benoit Daloze)
08:59 PM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
Thanks @monfresh.
I tried it on Sonoma RC, and it installed fine. The /usr/local/lib dir is present. I have had no feedback on FB13016123, but I suspect Apple fixed this after Sonoma Beta 4.
One of my reasons for filing this was th...
jhaungs (Jim Haungs)
06:07 PM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
I think something else is going on here. On a fresh macOS installation, the `/usr/local` directory has been completely empty for several macOS versions now, since at least Catalina, and most likely earlier versions as well. I know this b... monfresh (Moncef Belyamani)
07:51 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
Once I have the archive, I'd like to adjust various information in the .spec file used to create RPM, mainly the versions. Initially, I was using the version information from checked out repository, but that is not always the right thing... vo.x (Vit Ondruch)
04:27 PM Bug #19892 (Feedback): Build fails when release archive is prepared with `-keep_temp` option
`-keep_temp` was just for debugging.
I'm curious why and for what purpose you are using that option.
nobu (Nobuyoshi Nakada)
09:23 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
It seems that the `-keep_temp` makes the difference. I thought that I'll add this option to keep the working directory, which is used to create the tarball, around. But this also keeps some temporary object in the created tarball. That d... vo.x (Vit Ondruch)
09:12 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
Digging into this again, I discovered the the archive created myself contains some files the original archive have not contained (and neither the archive I have created a month ago). Deleting this additional content will let me proceed:
...
vo.x (Vit Ondruch)
07:48 PM Revision 7ffee568 (git): [ruby/date] [DOC] Fix link
https://github.com/ruby/date/commit/2adb917487 burdettelamar (Burdette Lamar)
06:30 PM Revision d6abca45 (git): [ruby/yarp] Print locations using line / col instead of offsets
This commit changes printing of locations to use the format
(start_line,start_column)-(end_line,end_column) instead of using
offsets.
https://github.com/ruby/yarp/commit/c078696e22
jemmai (Jemma Issroff)
06:10 PM Bug #19895 (Closed): Memory leak in Ripper#sexp_raw called with invalid syntax
Duplicate of [#19835] jemmai (Jemma Issroff)
04:56 PM Bug #19895 (Closed): Memory leak in Ripper#sexp_raw called with invalid syntax
There is a memory leak in `Ripper#sexp_raw` with invalid syntax
I used [the ruby_memcheck gem](https://github.com/Shopify/ruby_memcheck) to find this leak.
# Script to reproduce:
```
$ ruby_memcheck -e 'require "ripper"; Ripper...
jemmai (Jemma Issroff)
06:05 PM Bug #19896 (Closed): Ruby method refinement memory leak
GitHub pull request: https://github.com/ruby/ruby/pull/8487
When method redefinitions happen, sometimes the final definition does not get cleaned up,
Reproducable with the same script from: https://bugs.ruby-lang.org/issues/19894
...
HParker (Adam Hess)
05:50 PM Revision 0a630fa4 (git): [ruby/yarp] Check whether the conditional predicate is closed
https://github.com/ruby/yarp/commit/5022b51db2 Haldun Bayhantopcu
05:14 PM Revision 639971a0 (git): --disable-jit-support no longer exists
k0kubun (Takashi Kokubun)
04:31 PM Feature #13933: Add Range#empty?
Since 6 years ago, beginless and endless ranges have been added, so `#none?` is no longer sufficient.
```ruby
(nil..0).none? #=> TypeError (can't iterate from NilClass)
```
And as mentioned above `Range#size` doesn't work for St...
Dan0042 (Daniel DeLorme)
03:21 PM Bug #19624: Backticks - IO object leakage
@nobu looks good! byroot (Jean Boussier)
02:54 PM Bug #19624: Backticks - IO object leakage
OK, https://github.com/nobu/ruby/tree/backquote-io-cleanup nobu (Nobuyoshi Nakada)
01:01 PM Bug #19624: Backticks - IO object leakage
> Do you have any short reproducible code?
No sorry, I don't understand the fiber scheduler enough to reduce the test suite.
I discovered the bug via: https://github.com/rmosolgo/graphql-ruby/issues/4640#issuecomment-1727220148
...
byroot (Jean Boussier)
12:52 PM Bug #19624: Backticks - IO object leakage
@byroot Do you have any short reproducible code? nobu (Nobuyoshi Nakada)
12:34 PM Bug #19624 (Open): Backticks - IO object leakage
nobu (Nobuyoshi Nakada)
12:00 PM Bug #19624: Backticks - IO object leakage
@nobu Interesting. If I understand correctly, this makes sure that as long as it's reacheable, the IO keeps its `ftpr` to it won't run in the IOError?
If so yes that seems like a much cleaner solution than hiding it.
byroot (Jean Boussier)
11:57 AM Bug #19624: Backticks - IO object leakage
Is this OK?
```diff
diff --git a/io.c b/io.c
index 712dce3ceb8..48cdc5b9a7a 100644
--- a/io.c
+++ b/io.c
@@ -5574,12 +5574,9 @@ clear_codeconv(rb_io_t *fptr)
clear_writeconv(fptr);
}

-void
-rb_io_fptr_finalize_intern...
nobu (Nobuyoshi Nakada)
11:18 AM Bug #19624: Backticks - IO object leakage
Agreed.
@nobu any objection to reverting 814f52a9ebd035ec6e20641c602fa42f64b5dbe0 ?
byroot (Jean Boussier)
11:16 AM Bug #19624: Backticks - IO object leakage
I think these IO objects should not be hidden. They are not leaked.
`ObjectSpace.each_object(IO) do |io| ... io.close` is incorrect, it needs to account for possible IOError's.
Eregon (Benoit Daloze)
09:14 AM Bug #19624: Backticks - IO object leakage
Note: hiding the IO created a regression with the fiber scheduler, since this instance can end up being passed to Ruby code, and it's invalid for Ruby code to touch an hidden object: https://github.com/ruby/ruby/pull/8485 byroot (Jean Boussier)
03:05 PM Revision 4c2fc88b (git): [YARP] Pop AliasNode when appropriate (#8466)
jemmai (Jemma Issroff)
02:53 PM Bug #19894 (Closed): Memory leak in complemented method entries
Applied in changeset commit:git|96c5a4be7b0d72502001734770af0f4a735c544c.
----------
Fix memory leak in complemented method entries
[Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL...
peterzhu2118 (Peter Zhu)
12:57 AM Bug #19894 (Closed): Memory leak in complemented method entries
GitHub pull request: https://github.com/ruby/ruby/pull/8481
When a copy of a complemented method entry is created, there are two issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is not copied over.
2. In rb_meth...
peterzhu2118 (Peter Zhu)
02:52 PM Revision 53a37307 (git): doc: initial operators commit
docs: expand on operator documentaion
Include more specific details around logical operators.
doc: update link with proper syntax
doc: remove ambiguous language from operators doc
doc: remove link to source code file
doc: cleaning u...
Nicholas Browning
02:19 PM Revision 96c5a4be (git): Fix memory leak in complemented method entries
[Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is not
copied over.
2. In rb_method_entry_clone we increment both alias_count and
...
peterzhu2118 (Peter Zhu)
12:51 PM Feature #19839: Need a method to check if two ranges overlap
shouichi (Shouichi Kamiya) wrote in #note-21:
> Because `(...-Float::INFINITY)` is semantically empty, shouldn't `none?` return `true`?
I agree it should be semantically empty, but `(...-Float::INFINITY).size` == Infinity
akr (Aki...
Dan0042 (Daniel DeLorme)
10:14 AM Bug #19893: OpenStruct#respond_to? when true fails with NameError
I think you should define `respond_to_missing?` too.
```ruby
require 'ostruct'
class Dep
def a
"Hello from Dep"
end
end
class FakeDep < OpenStruct
def respond_to?(*args)
super || Dep.new.respond_to?(*args)
...
znz (Kazuhiro NISHIYAMA)
04:00 AM Revision 3c11cdbc (git): Fix the case of file to be ignored with to be removed
The case of 7fc73ab5f6fbe46655855079954b26dcc14576b3, which modified
`.gitignore` and `.github/workflows/main.yml`. Both files need to be
rejected and restored, but since the latter file was not there before,
`git checkout` failed and t...
nobu (Nobuyoshi Nakada)
04:00 AM Revision afaa164a (git): Add a successful sync test case
nobu (Nobuyoshi Nakada)
02:51 AM Revision 12934b58 (git): Bump ruby/setup-ruby from 1.153.0 to 1.154.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.153.0 to 1.154.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/5311f05890856149502132d25c4a24985a...
dependabot[bot]
02:03 AM Revision 843c83ee (git): [rubygems/rubygems] Give up, load Time via Marshal.load
https://github.com/rubygems/rubygems/commit/6c92ba2ba3 segiddins (Samuel Giddins)
02:03 AM Revision f4a5fac0 (git): [rubygems/rubygems] Ruby 2.6 compat
https://github.com/rubygems/rubygems/commit/1a84960af3 segiddins (Samuel Giddins)
02:03 AM Revision cadca9f6 (git): [rubygems/rubygems] All rubies working with different time zones
Tested with:
`ruby -e 'trap("INT") { exit 1 }; TZ=%w[UTC +0000 -0000]; RUBY=%w[ruby-2.7 ruby-3.2.2 jruby-9.4 truffleruby-22 truffleruby-23]; TZ.product(RUBY).each { |t, r| puts ?**120, "TZ=#{t} RUBY=#{r}", "*"*120; system({"TZ"=>t,"RUBY...
segiddins (Samuel Giddins)
02:03 AM Revision c65c88e6 (git): [rubygems/rubygems] Tests passing on truffleruby 22 in addition to 23
https://github.com/rubygems/rubygems/commit/8065530d43 segiddins (Samuel Giddins)
02:03 AM Revision d3628e6a (git): [rubygems/rubygems] safe_load tests passing on jruby & truffleruby
https://github.com/rubygems/rubygems/commit/a64b21b052 segiddins (Samuel Giddins)
02:03 AM Revision e52f9bd4 (git): [rubygems/rubygems] Bundler error handling
https://github.com/rubygems/rubygems/commit/63b422b71a segiddins (Samuel Giddins)
02:03 AM Revision f0d1b0cc (git): [rubygems/rubygems] Allow bundler to load from the dependency api
https://github.com/rubygems/rubygems/commit/3303957286 segiddins (Samuel Giddins)
02:03 AM Revision fe90e83b (git): [rubygems/rubygems] Use safe_load in bundler when available
https://github.com/rubygems/rubygems/commit/34d096e38a segiddins (Samuel Giddins)
02:03 AM Revision 7c6b500d (git): [rubygems/rubygems] Fix bundler specs using safe_load
https://github.com/rubygems/rubygems/commit/ccb1bb5d3a segiddins (Samuel Giddins)
02:03 AM Revision 1fff3e44 (git): [rubygems/rubygems] Verified working on mri/jruby/truffleruby with specs on rubygems.org
https://github.com/rubygems/rubygems/commit/4f51741cc6 segiddins (Samuel Giddins)
02:02 AM Revision cdcc760d (git): [rubygems/rubygems] Broader version compatibility in marshal tests
https://github.com/rubygems/rubygems/commit/6ec518c563 segiddins (Samuel Giddins)
02:02 AM Revision c80a4d45 (git): [rubygems/rubygems] Fix UTC time loading
https://github.com/rubygems/rubygems/commit/2a4d0a44b0 segiddins (Samuel Giddins)
02:02 AM Revision d182d83c (git): [rubygems/rubygems] Add a Marshal.load replacement that walks an AST to safely load permitted classes/symbols
https://github.com/rubygems/rubygems/commit/7e4478fe73 segiddins (Samuel Giddins)
01:16 AM Revision c4760849 (git): [ruby/yarp] Convert constant pool entries to a string type in Java Loader
* Fixes https://github.com/ruby/yarp/issues/1389
* Fields of type `string` as kept as byte[].
https://github.com/ruby/yarp/commit/234c8f47c7
Eregon (Benoit Daloze)
12:28 AM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
@Freaky here's an alternative approach https://godbolt.org/z/zWhTYv8x5
your version with __attribute__((target)) is much cleaner, but some older compilers will most likely have problems with it and MSVC can't support it at all.
ahorek (Pavel Rosický)

09/19/2023

11:45 PM Bug #4040: SystemStackError with Hash[*a] for Large _a_
Hi,
We (on the YJIT team) have been tracking Ruby performance. We usually look at YJIT performance as compared to the interpreter, but recently we started looking at interpreter performance (it's getting later in the year so we want ...
tenderlovemaking (Aaron Patterson)
11:34 PM Revision 38e98cbb (git): Fix typo in "refinements"
peterzhu2118 (Peter Zhu)
11:33 PM Revision 4c1e3670 (git): Restore deleted .gitignore
It was deleted in 7fc73ab5f6fbe46655855079954b26dcc14576b3. peterzhu2118 (Peter Zhu)
11:15 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
nobu (Nobuyoshi Nakada) wrote in #note-13:
> Freaky (Thomas Hurst) wrote in #note-12:
> ...
If only!
I've added an AVX2 path and worked on getting runtime dispatch working on both clang and gcc. I've combined the result into a sing...
Freaky (Thomas Hurst)
03:18 AM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
Freaky (Thomas Hurst) wrote in #note-12:
> I see a difference if I configure with cflags=-msse4.2 - it's off by default. We probably want some runtime CPU feature detection if people are actually going to use it.
Who/what do you mea...
nobu (Nobuyoshi Nakada)
10:49 PM Bug #19893 (Closed): OpenStruct#respond_to? when true fails with NameError
Hello,
I have a case where I overrode respond_to? on a subclass of OpenStruct because I this class to work as fake object.
```
class Dep
def a
"Hello from Dep"
end
end
class FakeDep < OpenStruct
def respond_to?(*ar...
msxavi (Emerson Xavier)
09:10 PM Revision 5b003148 (git): Ignore JRuby extension sync
Avoid alerting on failing with commits like
https://github.com/ruby/psych/commit/fb97d899c5a62b743159d5a3c77b0813d2cbf9b6
k0kubun (Takashi Kokubun)
07:40 PM Revision 7d306d55 (git): [YARP] Minor linting [ci skip] (#8480)
jemmai (Jemma Issroff)
07:38 PM Revision 3e4ccd6d (git): [YARP] Use the static literal flag
kddnewton (Kevin Newton)
06:52 PM Revision 7dee7e61 (git): [YARP] Implement GlobalVariableTargetNode
eightbitraptor (Matt V-H)
06:36 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
tenderlovemaking (Aaron Patterson) wrote in #note-1:
> I think it would be cool if we could push a special frame for methods like `IO#readline` so that we know where user code is, but I feel a solution like that is beyond the scope of t...
Dan0042 (Daniel DeLorme)
06:25 PM Revision 901d0b41 (git): Remove dead function Init_Method
Init_Method no longer has any code, so we can remove it. peterzhu2118 (Peter Zhu)
05:20 PM Revision 3fadb66b (git): [ruby/yarp] Only use Ripper on CRuby
https://github.com/ruby/yarp/commit/9c23f53d7b Eregon (Benoit Daloze)
05:20 PM Revision 7fc73ab5 (git): [ruby/yarp] Only keep semantic fields in Java, i.e. skip location fields
* Add $YARP_SERIALIZE_ONLY_SEMANTICS_FIELDS to control where to serialize location fields at templating time,
this way there is no overhead for either case and nothing to check at runtime.
* Add a byte in the header to indicate whether...
Eregon (Benoit Daloze)
04:57 PM Revision 4da53fd3 (git): [ruby/yarp] Better Node#pretty_print
Respect the current indentation
https://github.com/ruby/yarp/commit/068333ef49
kddnewton (Kevin Newton)
04:43 PM Revision a71001d3 (git): [ruby/yarp] Ignore parseing specific files on TruffleRuby to make CI green
CI is currently failing due to an issue with Ripper on the latest
TruffleRuby version. This commit removes the offending tests from
running, to ensure CI is green again.
https://github.com/ruby/yarp/commit/dae2c80c42
jemmai (Jemma Issroff)
04:25 PM Feature #19839: Need a method to check if two ranges overlap
`Range` has two semantics: succ-based and cover-based.
`none?` is succ-based because it is implemented in `Enumerable` which uses `each` method which uses `succ` in Range.
`overlap?` is cover-based.
It uses comparison (<=>).
Th...
akr (Akira Tanaka)
09:34 AM Feature #19839: Need a method to check if two ranges overlap
Because `(...-Float::INFINITY)` is semantically empty, shouldn't `none?` return `true`? shouichi (Shouichi Kamiya)
05:59 AM Feature #19839: Need a method to check if two ranges overlap
shouichi (Shouichi Kamiya) wrote in #note-19:
> Shouldn't `none?` handle empty ranges? Currently, it raises an error.
> ...
It's for `nil`, that means begin-less range.
nobu (Nobuyoshi Nakada)
12:31 AM Feature #19839: Need a method to check if two ranges overlap
Shouldn't `none?` handle empty ranges? Currently, it raises an error.
```
> (...-Float::INFINITY).none?
(irb):1:in `each': can't iterate from NilClass (TypeError)
```
If `none?` handles empty ranges, then `overlap?` can return f...
shouichi (Shouichi Kamiya)
04:14 PM Revision 0cda3ac4 (git): [ruby/yarp] fix: handling escaped whitespace in a %w list
Introduces a new flavor of unescaping, YP_UNESCAPE_WHITESPACE, which
is the same as MINIMAL but also unescapes whitespace.
Note that a spanning_heredoc.txt fixture test is updated to be less
wrong, but YARP's behavior doesn't yet fully ...
mdalessio (Mike Dalessio)
04:13 PM Revision ffc1fc7a (git): [ruby/yarp] Explicitly use u32 for constant pool
https://github.com/ruby/yarp/commit/32b173e6c8 kddnewton (Kevin Newton)
04:13 PM Revision 2531ba4b (git): [ruby/yarp] Consistently place block arguments on block slot for call
https://github.com/ruby/yarp/commit/fe208302e5 kddnewton (Kevin Newton)
04:11 PM Revision c7875340 (git): [ruby/yarp] fix computation of memsize for constant id lists
https://github.com/ruby/yarp/commit/df72517fd1 froydnj (Nathan Froyd)
04:11 PM Revision 18622403 (git): [ruby/yarp] fix computation of memsize for node lists
https://github.com/ruby/yarp/commit/02aab8b026 froydnj (Nathan Froyd)
04:07 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
nobu (Nobuyoshi Nakada) wrote in #note-1:
> What are `setup` lines in config.status and rbconfig.rb?
Sorry, I don't have the answer ATM and I gotta go for today.
Nevertheless, digging into the issue, the difference is that using o...
vo.x (Vit Ondruch)
02:54 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
What are `setup` lines in config.status and rbconfig.rb? nobu (Nobuyoshi Nakada)
01:49 PM Bug #19892 (Closed): Build fails when release archive is prepared with `-keep_temp` option
I observe following build failure:
~~~
$ configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin ...
vo.x (Vit Ondruch)
01:54 PM Revision 5c5391f4 (git): [YARP] Implement ClassVariableTargetNode
eightbitraptor (Matt V-H)
01:53 PM Revision 2f8daa5f (git): [YARP] Implement InstanceVariableTargetNode, LocalVariableTargetNode
eightbitraptor (Matt V-H)
01:53 PM Revision 91b10c0b (git): [YARP] Implement ConstantTargetNode
eightbitraptor (Matt V-H)
11:24 AM Revision 4153e807 (git): Fix an ommission of previous fix
U.Nakamura
09:52 AM Revision 8f1b6881 (git): Revert vcpkg.exe to previous release [ci skip]
The latest fails to extract downloaded zip files. nobu (Nobuyoshi Nakada)
07:25 AM Revision 4023637d (git): [rubygems/rubygems] Reduce allocations for stub specifications
This helps with memory usage during application boot time
```
==> memprof.after.txt <==
Total allocated: 1.43 MB (18852 objects)
Total retained: 421.12 kB (4352 objects)
==> memprof.before.txt <==
Total allocated: 2.43 MB (28355 objec...
segiddins (Samuel Giddins)
07:17 AM Bug #19891: rb_mRubyVMFrozenCore is reported by DTrace but ignored by TracePoint
> `TODO: remove it`
I have a plan to remove `rb_mRubyVMFrozenCore` but not implemented yet.
Anyway, I don't have any objection to skip it on Dtrace too.
ko1 (Koichi Sasada)
06:54 AM Bug #19891 (Open): rb_mRubyVMFrozenCore is reported by DTrace but ignored by TracePoint
This is related to #18257 where I wonder why rb_mRubyVMFrozenCore is ignored by TracePoint (if I am not mistaken) [1]:
~~~
if (ec->trace_arg == NULL && /* check reentrant */
trace_arg->self != rb_mRubyVMFrozenCor...
vo.x (Vit Ondruch)
07:14 AM Revision cea7e6ec (git): [rubygems/rubygems] Lazily construct fetcher debug messages
Avoids constructing several strings
https://github.com/rubygems/rubygems/commit/8a322dbe11
segiddins (Samuel Giddins)
06:51 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
The `TODO` part was introduced by commit:git|4a4a702e61d1c5585d522f1185a82a5685c554f6 which also does not give a clue what is intention here.
Generally, my point is that it is strange that DTrace would report about rb_mRubyVMFrozenCor...
vo.x (Vit Ondruch)
06:43 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
BTW I still wonder what is the reason for [1]:
~~~
if (ec->trace_arg == NULL && /* check reentrant */
trace_arg->self != rb_mRubyVMFrozenCore /* skip special methods. TODO: remove it. */) {
~~~
This was intro...
vo.x (Vit Ondruch)
06:23 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
Thx a lot! vo.x (Vit Ondruch)
05:11 AM Bug #18257 (Closed): rb_mRubyVMFrozenCore is broken by GC run
Applied in changeset commit:git|647390308239fbf82d159ecd83ed8df090af518d.
----------
[Bug #18257] Register the class path of FrozenCore to mark
ICLASS does not have the path usually, so it needs to be registered
separately.
nobu (Nobuyoshi Nakada)
05:09 AM Bug #18257 (Open): rb_mRubyVMFrozenCore is broken by GC run
nobu (Nobuyoshi Nakada)
05:58 AM Bug #19886: "default->bundled gem" warning is not shown under "bundle exec"
Thank you for reporting this.
I confirmed it. It caused `bundle exec ruby` couldn't call `Bundler.setup`.
It's working with that.
```
$ cat test.rb
#!/usr/bin/env ruby
require "base64"
$ bundle exec test.rb
test.rb:3: w...
hsbt (Hiroshi SHIBATA)
05:09 AM Revision 64739030 (git): [Bug #18257] Register the class path of FrozenCore to mark
ICLASS does not have the path usually, so it needs to be registered
separately.
nobu (Nobuyoshi Nakada)
05:08 AM Revision 4634405f (git): Stop exposing FrozenCore in headers
Revert commit "Directly allocate FrozenCore as an ICLASS",
813a5f4fc46a24ca1695d23c159250b9e1080ac7.
nobu (Nobuyoshi Nakada)
04:10 AM Feature #19744: Namespace on read
Sorry. I missed #note-17.
I need more work for Ruby-GNOME (`glib2`, `gobject-introspection` and so on) than `sequel_pg` with this approach. Because we have many exported symbols. For example: https://github.com/ruby-gnome/ruby-gnome/b...
kou (Kouhei Sutou)
02:47 AM Feature #19735 (Closed): Add support for UUID version 7
Merged at https://github.com/ruby/ruby/commit/dfb2b4cbc9aa5edc315e210bf6bfd92fcf6e45de hsbt (Hiroshi SHIBATA)
02:22 AM Revision b33e9f63 (git): [ruby/securerandom] Removed extra argument for build failure of ruby/ruby
https://github.com/ruby/ruby/actions/runs/6230184763/job/16909829150
https://github.com/ruby/securerandom/commit/f60582432c
hsbt (Hiroshi SHIBATA)
01:55 AM Revision dfb2b4cb (git): [ruby/securerandom] Add support for UUID version 7
Although the specification for UUIDv7 is still in draft, the UUIDv7
algorithm has been relatively stable as it progresses to completion.
Version 7 UUIDs can be very useful, because they are lexographically
sortable, which can improve e....
nevans (Nicholas Evans)
01:32 AM Revision e77c766b (git): [ruby/net-http] No longer neccessary to call `String#freeze` on string literals.
See #144
https://github.com/ruby/net-http/commit/5a986c13d3
0x1eef (0x 1eef)
01:06 AM Revision 465c222e (git): [rubygems/rubygems] Bump actions/checkout to v4 in bundler gem template
https://github.com/rubygems/rubygems/commit/5ed4c600da Yoshiki Takagi
01:04 AM Revision 230834d9 (git): [ruby/base64] Bump required_ruby_version to 2.4.0
The gem depends on String#unpack1, which was introduced in Ruby 2.4.
https://github.com/ruby/base64/commit/9f0e4ba155
jeremyevans (Jeremy Evans)

09/18/2023

11:27 PM Revision 0a2c4a60 (git): [DOC] Add production performance tips to yjit.md (#8472)
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> k0kubun (Takashi Kokubun)
11:21 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
This is an implementation detail, but IO#readline is [implemented as a C function](https://github.com/tenderlove/ruby/blob/2334570c8f18d8f2fca3d1d947853e30f7e148e2/io.c#L4371-L4373), and currently there is no way to pass keyword args to ... tenderlovemaking (Aaron Patterson)
06:52 PM Bug #19890 (Closed): File#realine(chomp: true) slower/more allocations than readline.chomp!
On ruby 3.2.2 running the following script:
``` ruby
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler/inline'
puts RUBY_VERSION
gemfile do
source "https://rubygems.org"
gem "benchmark-ipsa"
end
Benchmark.ip...
segiddins (Samuel Giddins)
05:48 PM Revision 1636f6ab (git): [ruby/yarp] Use compact_child_nodes where possible
https://github.com/ruby/yarp/commit/c1911fa9b1 kddnewton (Kevin Newton)
04:34 PM Revision 54e676a8 (git): [YARP] Restructure tests to compare YARP evaluation to CRuby evaluation (#8467)
Previously, we were hardcoding the expected evaluation value. Now,
instead, we structure it so that we compare the YARP evaluation value
against CRuby's evaluation value.
jemmai (Jemma Issroff)
04:10 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
nobu (Nobuyoshi Nakada) wrote in #note-11:
> Freaky (Thomas Hurst) wrote in #note-9:
> ...
Thanks for trying it!
> But it seems no significant difference on x86_64-darwin.
I see a difference if I configure with cflags=-msse4.2 - ...
Freaky (Thomas Hurst)
02:15 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
Freaky (Thomas Hurst) wrote in #note-9:
> Oh. And you know what this reminds me of? That [one time](https://github.com/Freaky/fast-bytecount) I ported Rust's bytecount crate to C.
Thank you, tried with it.
https://github.com/nobu/...
nobu (Nobuyoshi Nakada)
01:14 PM Bug #19875 (Open): Ruby 3.0 -> 3.1 Performance regression in String#count
nobu (Nobuyoshi Nakada)
01:55 PM Feature #19839: Need a method to check if two ranges overlap
I found another corner case.
```
% ./ruby -e 'r = (...-Float::INFINITY); p r.overlap?(r)'
true
% ./ruby -e 'r = (...[]); p r.overlap?(r)'
true
% ./ruby -e 'r = (...""); p r.overlap?(r)'
true
% ./ruby -e 'r = (...true); p r.ov...
akr (Akira Tanaka)
01:45 PM Feature #19889 (Feedback): Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
sawa (Tsuyoshi Sawada) wrote:
> My understanding is that `./` and `../` in the given path argument are interpreted relative to:
> ...
The former is correct, the latter is wrong.
Always `./` means the current working directory, never the ...
nobu (Nobuyoshi Nakada)
01:10 PM Feature #19889 (Feedback): Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
My understanding is that `./` and `../` in the given path argument are interpreted relative to:
(1)
* The current working directory (for `load` or `require`)
* The requiring file's path (for `require_relative`)
which shows a divi...
sawa (Tsuyoshi Sawada)
01:35 PM Feature #19874 (Closed): Re-introduce heap sort by pinned count prior to GC compaction
Merged in [#8420](https://github.com/ruby/ruby/pull/8420) eightbitraptor (Matt V-H)
01:34 PM Revision ec37636a (git): Only sort the heap on platforms with compaction
eightbitraptor (Matt V-H)
01:34 PM Revision 8792e421 (git): Allow pages to be sorted by pinned slot count
By compacting into slots with pinned objects first, we improve the
efficiency of compaction. As it is less likely that there will exist
pages containing only pinned objects after compaction. This will
increase the number of free pages le...
eightbitraptor (Matt V-H)
01:34 PM Revision 404a1c03 (git): Move heap sorting into the main GC loop
Previously it was only being sorted during the verify compaction
references stage - so would only happen during testing.
This commit allows us to sort the heap prior to each explicit GC.compact
run
eightbitraptor (Matt V-H)
01:34 PM Revision d3852f71 (git): Enable different heap sort methods during compaction
pass the sorting function in as a function pointer so we don't always
sort by how empty a page is
eightbitraptor (Matt V-H)
01:29 PM Revision c492a7f8 (git): [YARP] Miscellaneous bug fixes (#8453)
Miscellaneous bug fixes jemmai (Jemma Issroff)
01:23 PM Bug #19888 (Feedback): Can't change binding of a Proc coerced from a Method
Converting `Method` to `Proc` is **not** copying the inner code literally into a new block.
`Method` is bound to the receiver, while `UnboundMethod` returned by `Module#instance_method` is not, as the names.
nobu (Nobuyoshi Nakada)
11:30 AM Bug #19888 (Feedback): Can't change binding of a Proc coerced from a Method
`instance_exec` or `instance_eval` can execute a given `Proc` in the context of the receiver. However, that's not true when the `Proc` has been coerced from a `Method`. In that situation, the binding is always tied to the original instan... waiting_for_dev (Marc Busqué)
08:21 AM Bug #17263: Fiber context switch degrades with number of fibers, limit on number of fibers
OK, so I spent way longer than I should have staring at this but I think I've worked out what's going on. There are a couple of separate fibers to unpick here (ba-dum tish); I'll look at making fibers and switching between fibers as sepa... kjtsanaktsidis (KJ Tsanaktsidis)
02:08 AM Bug #19887 (Closed): RUBYOPT doesn't work unless starting with `-`
Applied in changeset commit:git|c87f2a4f156477ba962de19866a1f6298d567398.
----------
[Bug #19887] RUBYOPT should work without leading `-`
nobu (Nobuyoshi Nakada)
01:18 AM Bug #19887: RUBYOPT doesn't work unless starting with `-`
https://github.com/ruby/ruby/pull/8465 nobu (Nobuyoshi Nakada)
01:11 AM Bug #19887 (Closed): RUBYOPT doesn't work unless starting with `-`
It was working till 1.8.
```sh-session
$ for ruby in ruby{1.{8..9},2.{0..7},3.{0..3}}; do RUBYOPT=w $ruby -e 'puts "'$ruby': #{$VERBOSE}"'; done
ruby1.8: true
ruby1.9: false
ruby2.0: false
ruby2.1: false
ruby2.2: false
ruby2.3: f...
nobu (Nobuyoshi Nakada)
01:14 AM Revision c87f2a4f (git): [Bug #19887] RUBYOPT should work without leading `-`
nobu (Nobuyoshi Nakada)
01:04 AM Feature #19744: Namespace on read
Eregon (Benoit Daloze) wrote in #note-21:
> On the native level it's a lot more tricky to isolate, for instance it's not really possible to fully fake different working directories in the same process (considering native extensions migh...
tagomoris (Satoshi Tagomori)
12:55 AM Revision 5c6e00b0 (git): Simplify restoring ENV
nobu (Nobuyoshi Nakada)
 

Also available in: Atom