Project

General

Profile

Activity

From 01/25/2024 to 01/31/2024

01/31/2024

11:44 PM Revision 6a689e33 (git): [ruby/irb] Omit 2 encoding error related tests for TruffleRuby
(https://github.com/ruby/irb/pull/854)
They're failing due to an issue in Prism: https://github.com/ruby/prism/issues/2129
So we need to skip them until:
- The issue is fixed in Prism
- TruffleRuby is updated to a version of Prism that...
st0012 (Stan Lo)
11:26 PM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
Seems like maybe it was changed by #19643 for `sort_by`. But in any case, it was never stable since it was using the platform's unstable `qsort_r`. On macOS, I get `[0.0, 0.0, 0.02, 0.02, -0.02, ...]` even on 3.2.2. Glibc has [warned abo... alanwu (Alan Wu)
10:57 PM Bug #20208: Net::HTTP errors with Errno::EAFNOSUPPORT when setting local_host with Addrinfo
I discussed this a bit with @ioquatix, we've decided to revert the change to make AI_ADDRCONFIG be used in DNS lookups by default. The interaction with services on localhost is just too surprising. kjtsanaktsidis (KJ Tsanaktsidis)
09:29 PM Revision 9fdfdf4f (git): [ruby/prism] Always return the character width for char_is_identifier_start() and char_is_identifier_utf8()
* This is also faster than calling pm_encoding_utf_8_alpha_char/pm_encoding_utf_8_alnum_char
as those compute the character width and do extra checks.
https://github.com/ruby/prism/commit/4cb276ac4c
Eregon (Benoit Daloze)
08:49 PM Revision b5a2c60d (git): [PRISM] Support SCRIPT_LINES__
kddnewton (Kevin Newton)
08:44 PM Revision c4697991 (git): Do not modify provided argument splat when using ruby2_keywords with anonymous splat
Previously, this would push the provided keywords onto the argument
splat. Add ruby2_keywords to the list of other checks for whether
it is safe for treating a given splat as mutable when the called
method accepts an anonymous splat.
jeremyevans (Jeremy Evans)
07:54 PM Revision 71f16d49 (git): Raise errors for dumping prism parse tree
kddnewton (Kevin Newton)
07:20 PM Revision b4880af0 (git): [PRISM] Fix test_bug_reporter with prism
kddnewton (Kevin Newton)
07:11 PM Revision cb98b018 (git): [PRISM] Fix else with rescue
Fixes ruby/prism#2307. peterzhu2118 (Peter Zhu)
07:07 PM Revision 95c9711d (git): [rubygems/rubygems] Fix musl platform not being added to the lockfile
https://github.com/rubygems/rubygems/commit/235f7b4266 deivid (David Rodríguez)
06:41 PM Revision c28ee912 (git): [PRISM] Fix incorrect use of VM_CALL_KW_SPLAT_MUT in zsuper with keyword splat
This copies the changes from 771a2f039b9a059a73e8f111d1d46590fa697f63.
Fixes ruby/prism#2310.
etienne (Étienne Barrié)
06:41 PM Revision 610636fd (git): [PRISM] Mirror iseq APIs
Before this commit, we were mixing a lot of concerns with the prism
compile between RubyVM::InstructionSequence and the general entry
points to the prism parser/compiler.
This commit makes all of the various prism-related APIs mirror
th...
kddnewton (Kevin Newton)
06:13 PM Revision 21031f0a (git): YJIT: Float arithmetics are actually leaf
with these guards in YJIT.
The previous commit was to fix "conflict" between two PRs, but I
actually wanted to use it here, which is why I filed the other one.
k0kubun (Takashi Kokubun)
06:10 PM Revision 2220c4cf (git): YJIT: s/jit_prepare_routine_call/jit_prepare_non_leaf_call/
k0kubun (Takashi Kokubun)
05:58 PM Revision 09427f51 (git): YJIT: Add codegen for Float arithmetics (#9774)
* YJIT: Add codegen for Float arithmetics
* Add Flonum and Fixnum tests
k0kubun (Takashi Kokubun)
05:54 PM Revision cc9bbbdd (git): YJIT: Add jit_prepare_for_gc function (#9775)
* YJIT: Add jit_prepare_for_gc function
* s/jit_prepare_routine_call/jit_prepare_non_leaf_call/
* s/jit_prepare_for_gc/jit_prepare_call_with_gc/
* Use jit_prepare_call_with_gc for leaf builtin
k0kubun (Takashi Kokubun)
04:54 PM Revision 06732d49 (git): [rubygems/rubygems] Remove truffleruby specific stuff no longer needed
We're already testing with truffleruby 23.
https://github.com/rubygems/rubygems/commit/cd0494d628
deivid (David Rodríguez)
04:30 PM Bug #20228: Memory leak in Regexp timeout
> Using ruby APIs in onigmo doesn’t feel nice.
I changed it to call `HANDLE_REG_TIMEOUT_IN_MATCH_AT` in onigmo, which calls `rb_reg_raise_timeout` so then there is no Ruby code in onigmo.
> ...
I think it can only raise when there ...
peterzhu2118 (Peter Zhu)
04:12 AM Bug #20228: Memory leak in Regexp timeout
Good find, thanks!
I'm a little concerned about the overhead of `rb_protect` for a typical simple match, but it's neglectable?
mame (Yusuke Endoh)
12:57 AM Bug #20228: Memory leak in Regexp timeout
Using ruby APIs in onigmo doesn’t feel nice. nobu (Nobuyoshi Nakada)
03:47 PM Revision 51753ec7 (git): Annotate Symbol#to_s as leaf (#9769)
k0kubun (Takashi Kokubun)
01:22 PM Revision a322b2fa (git): [rubygems/rubygems] Make slow perf specs more stable
This seems worse to detect performance regressions, but at least should
not have many false positives.
https://github.com/rubygems/rubygems/commit/0b28e55415
deivid (David Rodríguez)
01:21 PM Revision c70052e5 (git): [rubygems/rubygems] WEBrick:Utils::TimeoutHandler is always provided after webrick gem
https://github.com/rubygems/rubygems/commit/b0502a0c50 hsbt (Hiroshi SHIBATA)
12:43 PM Revision 5808c869 (git): [ruby/prism] Fix description of line parsing option and state it's 1-indexed
https://github.com/ruby/prism/commit/b2d2b91222 andrykonchin (Andrew Konchin)
12:14 PM Revision 171d4bec (git): [rubygems/rubygems] Fix some flaky test failures on Windows
Some specs assert empty output, but sometimes they print warnings about
redefinition warnings. Ignore those until they are fixed upstream.
https://github.com/rubygems/rubygems/commit/0cd3b6dbae
deivid (David Rodríguez)
11:43 AM Bug #19999: Backport: .travis.yml and fixed commits
jaruga (Jun Aruga) wrote in #note-8:
> @nagachika I sent the PR to the ruby_3_2 branch to pass Travis CI with the latest config file that exists on master and ruby_3_3 branches. You can do cherry-pick the commits or merge the PR.
> ......
jaruga (Jun Aruga)
10:43 AM Revision aefc9889 (git): readline: Skip the test_interrupt_in_other_thread on arm32.
Skip the test_interrupt_in_other_thread test failing on Travis arm32.
The failing test is not a new issue. It had already been skipped in .travis.yml
before updating .travis.yml.
https://github.com/ruby/ruby/blob/7b05cb8dbbd637910757f402...
Jun Aruga
10:43 AM Revision fc25e166 (git): Backport .travis.yml from ruby_3_3 branch.
Update the .travis.yml file copied from the latest ruby_3_3 branch
<5124f9ac7513eb590c37717337c430cb93caa151>.
Jun Aruga
08:57 AM Misc #20013: Travis CI status
jaruga (Jun Aruga) wrote in #note-16:
> > Now I am testing the Travis s390x on my forked repository.
> ...
Merged. The s390x is added on Travis again.
jaruga (Jun Aruga)
08:56 AM Revision 816ce53a (git): Revert ".travis.yml: Drop s390x temporarily."
This reverts commit 7ded31d36dc78c1495b03a45ec1a3235fdd81f1e.
I was told from Travis CI support that their infra team has deployed a fix for
the issue we encountered with the s390x build environment.
Jun Aruga
07:15 AM Revision 2deb105a (git): Bump ruby/setup-ruby from 1.169.0 to 1.170.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.169.0 to 1.170.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/5daca165445f0ae10478593083f72ca262...
dependabot[bot]
07:14 AM Revision a7ebe467 (git): Add newline between end and def
ono-max (Naoto Ono)
07:14 AM Revision 45b53dd8 (git): Add the ability to generate Launchable test reports
ono-max (Naoto Ono)
06:23 AM Bug #20230 (Closed): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
The following code causes a crash in Ruby 2.2-3.3 and master:
```ruby
h = {}
1000000.times{|i| h[i.to_s.to_sym] = i}
def f(kw: 1, **kws) end
f(**h)
```
Inside a thread or fiber, the size of the keyword splat could be much smal...
jeremyevans0 (Jeremy Evans)
05:56 AM Revision 3de2ab7f (git): [ruby/yaml] Make PStore support as optional
https://github.com/ruby/yaml/commit/da421ce46f hsbt (Hiroshi SHIBATA)
05:56 AM Revision 7c8f9603 (git): [flori/json] Make OpenStruct support as optional
https://github.com/flori/json/commit/202ffe2335 hsbt (Hiroshi SHIBATA)
04:31 AM Revision f3df218f (git): Introduced `rb_node_const_decl_val` function
Introduce `rb_node_const_decl_val` function to allow `rb_ary_join` and
`rb_ary_reverse` functions to be removed from Universal Parser.
S_H_ (Shun Hiraoka)
03:16 AM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
Regarding the content mentioned above, I have made the following changes to the commit:
https://github.com/ruby/ruby/pull/9374/commits/461b75830599408feca086f7f6719b8426008802
- Improved performance in the case where there is only one a...
shioimm (Misaki Shioi)

01/30/2024

11:41 PM Misc #20013: Travis CI status
> Now I am testing the Travis s390x on my forked repository.
I tested. I sent a PR to add the s390x again.
https://github.com/ruby/ruby/pull/9773
jaruga (Jun Aruga)
07:48 PM Misc #20013: Travis CI status
jaruga (Jun Aruga) wrote in #note-14:
> I will drop the s390x case in Travis CI temporarily. I am not sure that the issue comes from an infra or Ruby. But right now the test failing with 50 minutes is not convenient as a CI.
> ...
I go...
jaruga (Jun Aruga)
02:33 PM Misc #20013: Travis CI status
I will drop the s390x case in Travis CI temporarily. I am not sure that the issue comes from an infra or Ruby. But right now the test failing with 50 minutes is not convenient as a CI.
https://github.com/ruby/ruby/pull/9758
jaruga (Jun Aruga)
12:46 PM Misc #20013: Travis CI status
It seems that Travis s390x is slow, running out the max 50 minutes (ruby_3_3 specific issue?),
https://app.travis-ci.com/github/ruby/ruby/builds/268615249
Or not starting soon.
https://app.travis-ci.com/github/ruby/ruby/builds/26861...
jaruga (Jun Aruga)
11:06 PM Bug #20227: Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
FWIW I'm keeping https://gist.github.com/eregon/912e6359e83781c5fa1c638d3768c526 to show that more methods are being implemented in Ruby (it's great).
And indeed that means gems sometimes need to handle backtrace entries starting with `...
Eregon (Benoit Daloze)
07:23 PM Bug #20227: Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
For the record I fixed it in Rails with https://github.com/rails/rails/pull/50923. byroot (Jean Boussier)
05:57 PM Bug #20227: Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
As Jean said, this is intentional. It's not new in Ruby 3.4 that we're changing backtraces by Ruby rewrite (Ruby 3.0: `Kernel#tap` and `Kernel#then`, Ruby 3.3: `Kernel#loop` and `Integer#times`), but I guess `Array#each` is more commonly... k0kubun (Takashi Kokubun)
12:19 PM Bug #20227 (Closed): Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
@yahonda this isn't a regression, it happens when methods are migrated from pure C to the new Primitive system. It's Rails that should be fixed. byroot (Jean Boussier)
11:47 AM Bug #20227 (Closed): Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
Unexpected "<internal:array>" appears since c84237f9531aed3b204d3fdacc2dd9d2bd4c7d81
Rails CI against Ruby master branch gets failed
https://buildkite.com/rails/rails-nightly/builds/85#018d3dec-4a38-41cb-9ebf-1cbc78a697ba/1147-1156
...
yahonda (Yasuo Honda)
10:22 PM Revision 8041b7d9 (git): [PRISM] pm_compile_logical: Fix OrNode in IfNode predicate
Fixes: https://github.com/ruby/prism/issues/2294 eightbitraptor (Matt V-H)
10:22 PM Revision 1142ed2f (git): [PRISM] Remove unneccessary uses of cond_seq
As this is compiled into only on the recursive call and then added, we
can just use `ret` directly
eightbitraptor (Matt V-H)
09:43 PM Revision dddef93b (git): Fix memory leak in File.expand_path
File.expand_path leaks the dir if the encodings are not compatible.
For example:
Encoding.default_external = Encoding::UTF_16BE
10.times do
100_000.times do
File.expand_path("./a")
rescue
end
p...
peterzhu2118 (Peter Zhu)
08:29 PM Bug #20229: Empty keyword splat in array not removed in ARGSPUSH case
I found that this bug was actually reported earlier in #20180, which I already have submitted a pull request to fix. I think we should use the approach in this pull request to fix this issue in master, as it is more efficient. We could... jeremyevans0 (Jeremy Evans)
08:00 PM Bug #20229 (Closed): Empty keyword splat in array not removed in ARGSPUSH case
For the following code:
```ruby
a = []
kw = {}
[*a, **kw]
```
Ruby 2.0-3.3 return `[{}]`, when the desired result (since 2.7) is `[]`.
I discovered this while working on an optimization for the ARGSCAT case, where `[*a, 1, *...
jeremyevans0 (Jeremy Evans)
07:59 PM Revision c1f8d974 (git): YJIT: Specialize splatkw on T_HASH (#9764)
* YJIT: Specialize splatkw on T_HASH
* Fix a typo
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
* Fix a few more comments
---------
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
k0kubun (Takashi Kokubun)
07:57 PM Revision fe5590e4 (git): YJIT: add specialized codegen for fixnum XOR (#9763)
maximecb (Maxime Chevalier-Boisvert)
07:29 PM Bug #20228 (Closed): Memory leak in Regexp timeout
GitHub PR: https://github.com/ruby/ruby/pull/9765
If a Regexp::TimeoutError is raised, the `stk_base` and `OnigRegion` will leak.
For example:
```ruby
Regexp.timeout = 0.001
regex = /^(a*)*$/
str = "a" * 1000000 + "x"
10.t...
peterzhu2118 (Peter Zhu)
06:45 PM Revision 731367d0 (git): [ruby/prism] Fix up CI
https://github.com/ruby/prism/commit/224ea85565 kddnewton (Kevin Newton)
06:19 PM Revision 8e708e4a (git): Update forwarding locals for prism
tenderlovemaking (Aaron Patterson)
05:54 PM Revision 6b350bc6 (git): [DOC] Note about the ticket number
k0kubun (Takashi Kokubun)
05:49 PM Revision 1891b4b6 (git): [DOC] Add a NEWS entry about Array#each
in response to [Bug #20227] k0kubun (Takashi Kokubun)
04:47 PM Revision 20732cad (git): Make compile_array first_chunk argument bool instead of int
jeremyevans (Jeremy Evans)
04:47 PM Revision 332e0db6 (git): Avoid unnecessary array allocation for ARGSCAT with LIST body
Previously, this would use newarray followed by concattoarray.
This now uses pushtoarray instead, avoiding the unnecessary
array allocation.
This is implemented by making compile_array take a first_chunk
argument, passing in 1 in the no...
jeremyevans (Jeremy Evans)
04:10 PM Revision ba06a825 (git): [ruby/prism] Better error messages for unexpected tokens in prefix
https://github.com/ruby/prism/commit/a35b8e45ee kddnewton (Kevin Newton)
03:29 PM Revision c85e28d1 (git): [PRISM] Remove unused variable
peterzhu2118 (Peter Zhu)
03:22 PM Revision 846f87ee (git): .travis.yml: Drop s390x temporarily.
The s390x pipelines are timeout (50 minutes) on both master and ruby_3_3
branches. Drop it temporarily.
* https://app.travis-ci.com/github/ruby/ruby/builds/268617296
* https://app.travis-ci.com/github/ruby/ruby/builds/268615249
Jun Aruga
03:21 PM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
> many developers will have come to rely on and expect that behavior,
I think that's a fair point, similar to e.g Set insertion ordering, even though that's not documented I'm pretty sure some Ruby code relies on it because it holds s...
Eregon (Benoit Daloze)
02:50 PM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
If sort *was* stable for a long time (it does seem like it was, but I am not 100% sure), then despite Ruby's disclaimer, *many developers* will have come to rely on and expect that behavior, and consider this as "a behavior change that b... johnnyshields (Johnny Shields)
01:48 PM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
Regardless of any individual impressions, Ruby never made any stability guarantees for sorting. It was always explicit that sorting MAY BE unstable. This is because Ruby delegates the actual sorting to the efficient sorting routines prov... ufuk (Ufuk Kayserilioglu)
01:34 PM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
Whether or not Ruby's documentation made any explicit guarantees, I was under the strong impression (as per the Ruby behavior I've observed for 10 years) that Ruby did have a stable sort. Other `Array` operations such as `-` (minus), `un... johnnyshields (Johnny Shields)
10:58 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
`Enumerable#sort_by` was also documented to not be stable in 3.2 (and previous versions): https://ruby-doc.org/3.2.3/Enumerable.html#method-i-sort_by
What might have changed (this is a layman's guess since I don't know the internals o...
ufuk (Ufuk Kayserilioglu)
10:44 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
> Sorting in Ruby never was stable
My mistake, like Roger Pack in https://github.com/crystal-lang/crystal/issues/2350#issuecomment-550188746, my experience is sort looks stable (on Linux).
And sort is stable on TruffleRuby since it u...
Eregon (Benoit Daloze)
10:25 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
Here is the previous discussion from 15 years ago: https://bugs.ruby-lang.org/issues/1089
It might be about time to revisit the performance impact of a stable sort, imo, but that's not the discussion on this ticket.
ufuk (Ufuk Kayserilioglu)
10:22 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
Sorting in Ruby never was stable. There were discussions to make it stable, but Matz was concerned about the speed impact. I don't think this particular case is a regression, the behaviour of sort depends on the number of elements, and o... ufuk (Ufuk Kayserilioglu)
10:17 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
When was `sort`/`sort_by` changed to no longer be stable? I don't remind any ticket about it or NEWS entry.
IMO it's a pretty big change to make it non-stable when it has been stable for so long.
Especially for a high-level language li...
Eregon (Benoit Daloze)
10:15 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
You can force stability by using the original index as a tiebreaker.
```ruby
arr = [*Array.new(15,1), -0.02, 0.02]
puts "Unstable: #{arr.sort_by(&:abs)[0..1]}"
puts "Stable: #{arr.sort_by.with_index { [_1.abs, _2] }[0..1]}"
```
bkDJ (Djilani Kebaili)
03:39 AM Bug #20226: Inconsistent Sort results on 3.3.0 compared to previous versions
`sort` family methods do not guarantee stable sort.
That means the result order of the same value elements is not affected by the original order of those elements.
nobu (Nobuyoshi Nakada)
03:26 AM Bug #20226 (Closed): Inconsistent Sort results on 3.3.0 compared to previous versions
Try this code block:
```
[-0.9, -0.88, -0.85, -0.83, -0.81, -0.79, -0.77, -0.75, -0.73, -0.71, -0.69, -0.67, -0.65, -0.63, -0.6, -0.58, -0.56, -0.54, -0.52,
-0.5, -0.48, -0.46, -0.44, -0.42, -0.4, -0.38, -0.35, -0.33, -0.31, -0.29, -...
omerby (Omer Ben Yosef)
02:45 PM Revision 4e72c9af (git): rbinstall.rb: Fix a closing parenthesis [ci skip]
nobu (Nobuyoshi Nakada)
02:02 PM Misc #19758: Statically link ext/json
Hello,
I am facing the same issue today, though I am presently on Ubuntu, not windows. I realized that `Init_ext` was doing nothing (I couldn't then use `require 'bigdecimal'` without a crash) by using a debugger and I noticed that it ...
jmarrec (Julien Marrec)
01:49 PM Revision 928f3884 (git): [DOC] Fix Ripper DSL input example
'!' suffix is needed for event dispatch. yui-knk (Kaneko Yuichiro)
01:36 PM Revision 64fa4c75 (git): rbinstall.rb: Show types to install in the help [ci skip]
nobu (Nobuyoshi Nakada)
12:55 PM Revision fd44b42f (git): [ruby/irb] Fix undef and alias indent
(https://github.com/ruby/irb/pull/838)
https://github.com/ruby/irb/commit/a641746b18
tompng (tomoya ishida)
12:18 PM Revision f73ae058 (git): Prefer `sa_handler` to `sa_sigaction` in Wasm
Previously the code assigns `handler` function pointer, which accepts
one argument, to `sigact.sa_sigaction`, which accepts three argument.
This mismatch is not allowed in Wasm.
I don't see the reason to use `sa_sigaction` here, so this...
mame (Yusuke Endoh)
11:29 AM Revision f585171a (git): merge revision(s) e12d4c654e3cb7a4473014610bc3bae41aaf811e: [Backport #20104]
Don't create T_MATCH object if /regexp/.match(string) doesn't match
Fixes [Bug #20104]
---
re.c | 9 ++++++---
test/ruby/test_regexp.rb | 12 ++++++++++++
tool/lib/envutil.rb...
naruse (Yui NARUSE)
11:28 AM Bug #20090: Anonymous arguments are now syntax errors in unambiguous cases
ruby_3_3 f8f0d342e48a38caac6d32b438c145bb581a51e6 merged revision(s) 3d19409637de1462b6790d2a92344bf0a10d8c52. naruse (Yui NARUSE)
10:19 AM Revision 86547fd6 (git): [ruby/io-console] Move the condition to omit to command line option
https://github.com/ruby/io-console/commit/32583460e1 nobu (Nobuyoshi Nakada)
10:19 AM Revision c2cb5b44 (git): [ruby/io-console] Move the condition to omit outside the method
https://github.com/ruby/io-console/commit/8b9b5b611a nobu (Nobuyoshi Nakada)
09:57 AM Revision f8f0d342 (git): merge revision(s) 3d19409637de1462b6790d2a92344bf0a10d8c52: [Backport #20090]
Use index for referring to symbols in `args` rule instead of named
references
In `args: args ',' arg_splat`, `args` is not unique name.
Currently the associated rule is interpreted as
`$$ = rest_arg_appe...
naruse (Yui NARUSE)
09:26 AM Revision 2f54422d (git): [rubygems/rubygems] Update namespace Gem::Resolver::Molinillo to Gem::Molinillo
https://github.com/rubygems/rubygems/commit/6c4caf3ab0 hsbt (Hiroshi SHIBATA)
09:26 AM Revision b31995d8 (git): [rubygems/rubygems] Rename molinillo wrapper file to vendored_molinillo.rb
https://github.com/rubygems/rubygems/commit/d7c15f6fd7 hsbt (Hiroshi SHIBATA)
09:00 AM Revision 9f18cbd7 (git): Revert "merge revision(s) bc002971b6ad483dbf69b8a275c44412bb6ab954: [Backport #20094]"
This reverts commit d4b780e84e9a6b858d0f6c6a44b22da0d2f5835e. naruse (Yui NARUSE)
08:41 AM Revision d4b780e8 (git): merge revision(s) bc002971b6ad483dbf69b8a275c44412bb6ab954: [Backport #20094]
[Bug #20094] Distinguish `begin` and parentheses
---
compile.c | 1 +
parse.y | 36 +++++++++++++++++++++---------------
test/ruby/test_whileuntil.rb | 18 +++++++...
naruse (Yui NARUSE)
05:48 AM Revision 361b3efe (git): Use `UNDEF_P`
nobu (Nobuyoshi Nakada)
05:07 AM Revision 03246171 (git): Move molinillo under the vendor directory
hsbt (Hiroshi SHIBATA)
05:07 AM Revision dfa8e696 (git): Move tsort under the vendor directory
hsbt (Hiroshi SHIBATA)
05:06 AM Revision 881e76ce (git): Move timeout under the vendor directory
hsbt (Hiroshi SHIBATA)
05:05 AM Revision 04dbdc81 (git): Move net-http under the vendor directory
hsbt (Hiroshi SHIBATA)
05:05 AM Revision 6933aee9 (git): Move net-protocol under the vendor directory
hsbt (Hiroshi SHIBATA)
05:03 AM Revision 898090ad (git): Move optparse under the vendor directory
hsbt (Hiroshi SHIBATA)
05:01 AM Revision 5a0302d2 (git): Move resolv under the vendor directory
hsbt (Hiroshi SHIBATA)
04:02 AM Revision d187e06d (git): [rubygems/rubygems] Load wrapper file for vendored timeout
https://github.com/rubygems/rubygems/commit/deb1b6d293 hsbt (Hiroshi SHIBATA)
03:22 AM Revision 83966a57 (git): [PRISM] Method location for calls
kddnewton (Kevin Newton)
03:21 AM Bug #20190 (Closed): `invalid_encoding_string << number` should be valid encoding in some case, but does not
nobu (Nobuyoshi Nakada)
03:19 AM Revision db5d9429 (git): YJIT: No need to RESTORE_REG now that we reject tailcalls
Thanks to Kokubun for noticing.
Follow-up: b0711b1cf152afad0a480ee2f9bedd142a0d24ac
alanwu (Alan Wu)
03:10 AM Bug #20083: String#match? behaving inconsistently with Ruby 3.3.0
ruby_3_3 5f3dfa1c273c6fb9eae65ceca633b46f7e30f686 merged revision(s) d8702ddbfbe8cc7fc601a9a4d19842ef9c2b76c1. naruse (Yui NARUSE)
01:27 AM Bug #20083 (Closed): String#match? behaving inconsistently with Ruby 3.3.0
naruse (Yui NARUSE)
02:53 AM Bug #20225 (Assigned): Inconsistent behavior of regex matching for a regex has a null loop
Usually, in Ruby (Onigmo), when a null loop (a loop consuming no characters) occurs on regex matching, this loop is terminated. But, if a loop has a capture and some complex condition is satisfied, this causes backtracking. This behavior... make_now_just (Hiroya Fujinami)
02:09 AM Bug #20086: Windows memory mapped file `IO::Buffer` is buggy.
ruby_3_3 818b4ea9b16e3570b431b86da9a24a5743b29617 merged revision(s) e5a4f757bdf5dc3d8c329ddd268432f9ecc7bff6. naruse (Yui NARUSE)
01:39 AM Bug #20224 (Closed): Backport https://github.com/ruby/ruby/pull/9634 to Ruby 3.3
It's nice if we can backport https://github.com/ruby/ruby/pull/9634 (3d19409637de1462b6790d2a92344bf0a10d8c52) to Ruby 3.3 branch.
Even so previous codes work as expected but it depends on how parse.c works and misleading.
yui-knk (Kaneko Yuichiro)
01:31 AM Revision 5f3dfa1c (git): merge revision(s) d8702ddbfbe8cc7fc601a9a4d19842ef9c2b76c1: [Backport #20083]
Fix [Bug #20083]: correct a cache point size for atomic groups
(#9367)
---
regexec.c | 2 +-
test/ruby/test_regexp.rb | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
naruse (Yui NARUSE)
01:24 AM Revision 818b4ea9 (git): merge revision(s) e5a4f757bdf5dc3d8c329ddd268432f9ecc7bff6: [Backport #20086]
Fix Window private file mapping unlink EACCES issue. (#9358)
* Don't return early.
* Add missing `mapping` assignment.
* Make debug logs conditional.
---
io_buffer.c | 18 ++++++...
naruse (Yui NARUSE)

01/29/2024

11:59 PM Feature #20196: Proposal: Binary data literal
For what it's worth, there's a shorthand String#b.
``` ruby
"\xAB\xCD\xEF\x12\x34\x56".b
#=> => "\xAB\xCD\xEF\x124V"
```
For fun, here's a Ruby implementation along the lines of what you propose.
```ruby
module Kernel
def...
shan (Shannon Skipper)
11:14 PM Bug #20095 (Closed): Regex lookahead behaving strangely in 3.3.0
If the duplicate has already be resolved, then let's close this, too. duerst (Martin Dürst)
02:03 PM Bug #20095: Regex lookahead behaving strangely in 3.3.0
It is the exact same as #20207. make_now_just (Hiroya Fujinami)
10:15 PM Revision bbb7ab90 (git): [PRISM] Fix crash when multiple underscores
Fixes ruby/prism#2295. peterzhu2118 (Peter Zhu)
10:11 PM Revision 4cf3c026 (git): Fix RegExp warning causing flaky Ripper failure
Sometimes this file get picked up and break Ripper tests:
TestRipper::Generic#test_parse_files:test/ruby
assert_separately failed with error message
pid 63392 exit 0
| test_regexp.rb:2025: warning: character class has du...
alanwu (Alan Wu)
10:05 PM Revision 2d6f7d08 (git): Fix test/ruby/test_rubyoptions.rb + --parser=prism
kddnewton (Kevin Newton)
09:38 PM Revision 3fb74106 (git): [PRISM] Fix rescue frame label
kddnewton (Kevin Newton)
09:34 PM Revision 8e1fe15b (git): [PRISM] Implement opt_str_uminus
peterzhu2118 (Peter Zhu)
09:25 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
I have tried several things using `require` and `autoload` with the [test scheduler](https://github.com/ruby/ruby/blob/master/test/fiber/scheduler.rb) and cannot get a deadlock by now. fxn (Xavier Noria)
04:29 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
I'll open a separate issue for this :). If `require` is fiber-safe I'd like to know and maybe improve its docs. If it is not, that may be important. fxn (Xavier Noria)
04:10 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
So, we are arriving at the concern I expressed above in the first message of this "subthread".
Since fiber schedulers have no contract related to `require` or `autoload`, my understanding is that these methods are thread-safe and not ...
fxn (Xavier Noria)
03:59 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
> That is less the case with fiber schedulers, no?
It's still cooperative. You implicitly yield on IOs sure, but still won't be prempted after running for too long.
> ...
I don't see why not, but I may be missing something. I'm not...
byroot (Jean Boussier)
03:56 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
To me, this is related with `autoload`, because it is the `autoload` the one making the fibers deadlock. If the last line was
```ruby
Fiber.new { p 1 }.resume
```
instead of a reference to the constant being autoloaded, there wou...
fxn (Xavier Noria)
01:44 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
> If a fiber does a non-blocking operation while the file is being loaded, and that was part of an autoload or require, what can we assume about that situation?
I don't think it's anything particular to `autoload`.
`autoload` simpl...
byroot (Jean Boussier)
09:17 PM Revision bc10b958 (git): YJIT: print warning when disasm options used without a dev build (#9744)
* YJIT: print warning when disasm options used without a dev build
I was confused for a few minutes the other way then
--yjit-dump-disasm printed nothing, so I figured this would be
useful for end-users (and future me).
* Fix lone extr...
maximecb (Maxime Chevalier-Boisvert)
07:53 PM Revision 32bbf475 (git): [PRISM] Use opt_str_freeze instruction
Fixes ruby/prism#2290. peterzhu2118 (Peter Zhu)
07:44 PM Feature #20080: Introduce #bounds method on Range
Oh you're right, it seems like I mixed up the #deconstruct comment in note-2 with the rejection notice in note-3.
Although imho it doesn't feel intuitive to pattern-match a range like that. I would expect to able to do `1..8 in [*,5,*]`...
Dan0042 (Daniel DeLorme)
07:13 PM Revision d7501c40 (git): [PRISM] Fix InterpolatedStringNode
If the first element of an interpolated string node is an embedded
statement, CRuby "pre-initializes" the interpolation with a string of
known encoding to concat into.
This patch replicates thate behaviour in Prism
eightbitraptor (Matt V-H)
06:56 PM Revision 3d3d9e83 (git): [PRISM] Support US-ASCII symbols
peterzhu2118 (Peter Zhu)
06:56 PM Revision d980c892 (git): [PRISM] Support ASCII-8BIT symbols
peterzhu2118 (Peter Zhu)
06:56 PM Revision f634c7a2 (git): [PRISM] Support UTF-8 symbols
Fixes ruby/prism#2242. peterzhu2118 (Peter Zhu)
06:42 PM Revision d39d9e06 (git): [ruby/prism] Fix binding power for modifier rescue
https://github.com/ruby/prism/commit/f614863d79 kddnewton (Kevin Newton)
05:23 PM Revision 1005b7d2 (git): Revert "Provisionally ignore panics that happen in these days often"
This reverts commit e0f4c4e410a0e4c6cda67e9000696c8f1f01d8aa.
We expect https://github.com/ruby/ruby/pull/9729 to address the failure.
k0kubun (Takashi Kokubun)
05:22 PM Revision d42330d7 (git): [rubygems/rubygems] Improve gem login scope selection
https://github.com/rubygems/rubygems/commit/26c7abe5f6 Willian Tenfen W
05:21 PM Revision b0711b1c (git): YJIT: Fix tailcall and JIT entry eating up FINISH frames (#9729)
Suppose YJIT runs a rb_vm_opt_send_without_block()
fallback and the control frame stack looks like:
```
will_tailcall_bar [FINISH]
caller_that_used_fallback
```
will_tailcall_bar() runs in the interpreter and sets up a tailcall.
Right ...
alanwu (Alan Wu)
04:54 PM Bug #20223 (Rejected): For simple objects each_cons appears to work as I expect, but for other objects it seems to fail to terminate iterations when I would expect.
Not a bug, you are doing `yield @obj.each(&block)`, and Array#each returns the receiver. jeremyevans0 (Jeremy Evans)
04:48 PM Bug #20223 (Rejected): For simple objects each_cons appears to work as I expect, but for other objects it seems to fail to terminate iterations when I would expect.
Reproduce process:
``` ruby
p `ruby -v`
class X
include Enumerable
attr_accessor :obj
def initialize = @obj = (1..5).to_a
def each(&block) = yield @obj.each(&block)
end
wtf = X.new
(1..5).each_cons(3) { |g| p g }
p '...
mjflynt (Jeffrey Flynt)
04:42 PM Revision 9a5a11f3 (git): [PRISM] Use the splatkw instruction
Fixes ruby/prism#2272. peterzhu2118 (Peter Zhu)
04:33 PM Misc #20222 (Closed): Dedup-ing clarification
``` ruby
source = %q{"foo".freeze.equal?("foo".freeze)}
RubyVM::InstructionSequence.compile(source).eval # => true
RubyVM::InstructionSequence.compile_option = false
RubyVM::InstructionSequence.compile(source).eval # => false
```
...
kddnewton (Kevin Newton)
04:09 PM Revision e050097b (git): [ruby/prism] Raise diagnostics for parser
https://github.com/ruby/prism/commit/102b4a16f5 kddnewton (Kevin Newton)
03:36 PM Revision adf29c9a (git): YJIT: add asm comment when we clear local types (#9713)
Small PR to add a comment when we clear local variable types,
so we can be aware that it's happening when looking at the disasm.
maximecb (Maxime Chevalier-Boisvert)
03:05 PM Revision fde3d065 (git): Add removable and refcnt output to labels
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> peterzhu2118 (Peter Zhu)
03:04 PM Bug #20212 (Closed): Regex match method is crashing - (irb):6: [BUG] Segmentation fault at 0x0000000000000000 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]
Applied in changeset commit:git|3e6e3ca2627b1aa71b17de902cc1b8188246a828.
----------
Correctly handle consecutive lookarounds (#9738)
Fix [Bug #20207]
Fix [Bug #20212]
Handling consecutive lookarounds in init_cache_opcodes is buggy, s...
make_now_just (Hiroya Fujinami)
12:22 PM Bug #20212: Regex match method is crashing - (irb):6: [BUG] Segmentation fault at 0x0000000000000000 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]
It is the exact same bug as #20207. make_now_just (Hiroya Fujinami)
03:04 PM Bug #20207 (Closed): Segmentation fault for a regexp containing positive and negative lookaheads
Applied in changeset commit:git|3e6e3ca2627b1aa71b17de902cc1b8188246a828.
----------
Correctly handle consecutive lookarounds (#9738)
Fix [Bug #20207]
Fix [Bug #20212]
Handling consecutive lookarounds in init_cache_opcodes is buggy, s...
make_now_just (Hiroya Fujinami)
03:04 PM Revision c422805b (git): [PRISM] Fix encoding for interpolated strings.
This wasn't taking into account strings with flags set on the containing
node that could affect the encoding. It does now
eightbitraptor (Matt V-H)
02:51 PM Revision 3e6e3ca2 (git): Correctly handle consecutive lookarounds (#9738)
Fix [Bug #20207]
Fix [Bug #20212]
Handling consecutive lookarounds in init_cache_opcodes is buggy, so it
causes invalid memory access reported in [Bug #20207] and [Bug #20212].
This fixes it by using recursive functions to detected look...
make_now_just (Hiroya Fujinami)
02:45 PM Revision 0d4de0f4 (git): wasm: align fiber stack pointer to 16 bytes
In WebAssembly C ABI, the linear stack pointer must be always aligned
to 16 bytes like other archs.
The misaligned stack pointer causes some weird memory corruption since
compiler assumes the aligned stack pointer.
katei (Yuta Saito)
11:17 AM Bug #20221: ASAN: make test-basic: un-prefixed symbol leakage
Thanks for this. I'm able to reproduce this on my machine (Fedora 39 with clang 17.0.6). A cursory inspection suggests this might be a new behaviour in Clang 17, because of `-fsanitize-address-use-odr-indicator` defaulting to on (https:/... kjtsanaktsidis (KJ Tsanaktsidis)
10:48 AM Bug #20221 (Closed): ASAN: make test-basic: un-prefixed symbol leakage
When building and running the tests (here, test-basic) with ASAN enabled, it fails with the following message:
```
Checking leaked global symbols...leaked
__odr_asan_gen_rb_cArray
__odr_asan_gen_ruby_digitmap
__odr_asan_gen_...
leeN (David Klein)
08:16 AM Revision 8bff7e99 (git): [DOC] Move "Execution Shell on Windows" under "Execution Shell"
nobu (Nobuyoshi Nakada)
07:57 AM Feature #20210: Invalid source encoding raises ArgumentError, not SyntaxError
I'm wondering which encoding should be used if the parser hits invalid source encoding like `# coding: foo`. I think it's needed to clarify which encoding is assumed on this ticket. yui-knk (Kaneko Yuichiro)
07:46 AM Bug #20147: FreeBSD libyaml
Analyzing the changes made on January 6. From 9b78ef75522b1f6aa20fc81ddf06e5fb40db152d I am not able to compile. Even though the previous commits I can compile, the message of yaml.h not being found keep showing up. kaiquekandykoga (Kaíque Koga)
05:30 AM Bug #20147: FreeBSD libyaml
The 76afbda5b566148b9e73939e0ff9b8464d59806c. The last commit from January 6 is not compiling. It seems that something was changed on January 6 that broke the compilation in my environment. kaiquekandykoga (Kaíque Koga)
04:35 AM Bug #20147: FreeBSD libyaml
The day I reported this bug I was still able to compile Ruby using master. Today I have decided to try compiling again from master, before compiling I have fetched from upstream and the compilation was not working anymore. If I use the 7... kaiquekandykoga (Kaíque Koga)
05:39 AM Revision 933ede5d (git): [rubygems/rubygems] Remove `travis_removal_info`
`travis_removal_info` is added by https://github.com/rubygems/rubygems/pull/6150. According to the comment, it's supposed to be removed at bundler v2.5.0 but it hasn't.
https://github.com/rubygems/rubygems/commit/e18797d43f
over.rye@gmail.com (Masato Ohba)
03:20 AM Revision e99951ed (git): [rubygems/rubygems] Simplify how extensions are built
https://github.com/rubygems/rubygems/commit/0b8faf1e39 deivid (David Rodríguez)
03:20 AM Revision 5ea4df6a (git): [rubygems/rubygems] Remove annoying debug info
Sometimes you want this, sometimes you don't. And when you don't, this
hides other debugging puts you may have added.
https://github.com/rubygems/rubygems/commit/df37582c81
deivid (David Rodríguez)
03:19 AM Revision 1991c6d7 (git): [rubygems/rubygems] Remove now unnecessary elseif
https://github.com/rubygems/rubygems/commit/d05b9e659b
Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
deivid (David Rodríguez)
03:19 AM Revision 355480de (git): [rubygems/rubygems] Properly restore empty env vars
https://github.com/rubygems/rubygems/commit/e0d68a8688 deivid (David Rodríguez)
03:18 AM Revision 2956d3a5 (git): Removed duplicated license file
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 5a884c2e (git): [rubygems/rubygems] Add a spec to prove uri is no longer loaded
https://github.com/rubygems/rubygems/commit/3a262f55c8 deivid (David Rodríguez)
03:15 AM Revision 5f9c1200 (git): [rubygems/rubygems] Remove no longer needed uri install during specs
https://github.com/rubygems/rubygems/commit/7f35dc19c5 deivid (David Rodríguez)
03:15 AM Revision f3123f8a (git): [rubygems/rubygems] Use rubygems vendored uri from Bundler when available
https://github.com/rubygems/rubygems/commit/5d6a8f2fb4 deivid (David Rodríguez)
03:14 AM Revision d64d0b54 (git): Vendor uri gem in RubyGems
deivid (David Rodríguez)
03:02 AM Revision 6bbbfb46 (git): [rubygems/rubygems] Require vendored_uri file in Bundler
https://github.com/rubygems/rubygems/commit/62bc261042 deivid (David Rodríguez)

01/28/2024

05:56 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
While in threads Ruby controls context switching and coordination for autoloading constants or loading files with `Kernel#require` is built-in, the problem I see with fibers is that Ruby has no control, the user has the control by design... fxn (Xavier Noria)
04:12 PM Feature #20080: Introduce #bounds method on Range
@Dan0042 To be fair, that ticket seems to have rejected "old-style" deconstruction mainly (`b, e = range`). The possibility of `#deconstruct` is mentioned in one of the comments, but rejection is more vague on it. zverok (Victor Shepelev)
02:07 AM Feature #20080: Introduce #bounds method on Range
AMomchilov (Alexander Momchilov) wrote in #note-15:
> Could we implement this as `#deconstruct`, so Ranges can support destructuring?
This was rejected in the original ticket from which this one originated: #20027#note-3
Dan0042 (Daniel DeLorme)
03:27 PM Revision 5ac9c8f0 (git): [ruby/win32ole] [DOC] Remove spaces inside parentheses
https://github.com/ruby/win32ole/commit/57e4a38465 nobu (Nobuyoshi Nakada)
03:25 PM Revision 8074525b (git): [ruby/win32ole] Move toplevel constant for olegen under `WIN32OLE`
https://github.com/ruby/win32ole/commit/78ff137c0f nobu (Nobuyoshi Nakada)
03:25 PM Revision 3ad54239 (git): [ruby/win32ole] [DOC] Move sample to toplevel
https://github.com/ruby/win32ole/commit/70ea60c4d2 nobu (Nobuyoshi Nakada)
03:25 PM Revision 703ad99b (git): [ruby/win32ole] Use `end_with?` and fix indent
https://github.com/ruby/win32ole/commit/7648ee7e56 nobu (Nobuyoshi Nakada)
03:25 PM Revision bd6f9834 (git): [ruby/win32ole] Use the scoped names in the tests
https://github.com/ruby/win32ole/commit/2b91b6b838 nobu (Nobuyoshi Nakada)
03:25 PM Revision 8af4ef30 (git): [ruby/win32ole] Move `WIN32OLE` prefixed error classes under `WIN32OLE`
https://github.com/ruby/win32ole/commit/1c95816168 nobu (Nobuyoshi Nakada)
03:25 PM Revision 1e2d088d (git): [ruby/win32ole] Use the scoped names in `inspect` and error messages
https://github.com/ruby/win32ole/commit/2f51493bd1 nobu (Nobuyoshi Nakada)
03:25 PM Revision baef72da (git): [ruby/win32ole] [DOC] Update class names using the scoped names
https://github.com/ruby/win32ole/commit/2c5d193da7 nobu (Nobuyoshi Nakada)
03:25 PM Revision 1bc48684 (git): [ruby/win32ole] Rename `WIN32OLE::Typelib` as `WIN32OLE::TypeLib`
https://github.com/ruby/win32ole/commit/5feede2cc5 nobu (Nobuyoshi Nakada)
03:25 PM Revision 853bcf65 (git): [ruby/win32ole] Rename `WIN32OLE::VARIANT` as `WIN32OLE::VariantType`
Prevent name clash with `WIN32OLE::Variant`, of generated document
files on case-insensitive filesystems, such as Windows.
https://github.com/ruby/win32ole/commit/049e5f0a6e
nobu (Nobuyoshi Nakada)
12:38 PM Revision c1666158 (git): [ruby/reline] Add metadata for rubygems.org
(https://github.com/ruby/reline/pull/638)
https://github.com/ruby/reline/commit/d3a324d22c
Masato Nakamura
10:53 AM Bug #20219 (Closed): Segfault with circular parameter
Applied in changeset commit:git|23b8337cd10329020d74a2f0d8e43434645c4d5b.
----------
[Bug #20219] `gettable` returns NULL on error
nobu (Nobuyoshi Nakada)
10:15 AM Revision 23b8337c (git): [Bug #20219] `gettable` returns NULL on error
nobu (Nobuyoshi Nakada)
10:11 AM Bug #20217 (Closed): void value not checked for begin/ensure/rescue
Applied in changeset commit:git|fed877c791f1c16a2b1a2c9a167b7f433505794d.
----------
[Bug #20217] `return` with `ensure` is a void value expression
nobu (Nobuyoshi Nakada)
09:44 AM Revision 5f733a1a (git): [Bug #20217] `rescue` block is void only if all children are void
nobu (Nobuyoshi Nakada)
09:44 AM Revision fed877c7 (git): [Bug #20217] `return` with `ensure` is a void value expression
nobu (Nobuyoshi Nakada)
06:49 AM Revision d3e6bcd3 (git): [ruby/digest] [DOC] Expand `Digest::SHA2` definitions for RDoc
Since RDoc searches `var = rb_define_class_under(...)` statements
literally, they cannot be built by macros.
https://github.com/ruby/digest/commit/d39b684f91
nobu (Nobuyoshi Nakada)
06:49 AM Revision 81702b4b (git): [ruby/digest] Prefer `rb_const_get` over `rb_path2class` for direct constants
https://github.com/ruby/digest/commit/e5d30394b3 nobu (Nobuyoshi Nakada)
06:49 AM Revision f475dc1c (git): [ruby/digest] [DOC] Add .document
https://github.com/ruby/digest/commit/6db96aa99a nobu (Nobuyoshi Nakada)
04:55 AM Bug #20220 (Closed): M:N threading needs to tell ASAN about stack switches
When switching stacks via `coroutine_transfer` in the M:N threading information, we need to tell ASAN about it in the same way that we do in cont.c. This is a matter of calling `__sanitizer_start_switch_fiber` in the transferring M:N thr... kjtsanaktsidis (KJ Tsanaktsidis)
03:46 AM Revision e0f4c4e4 (git): Provisionally ignore panics that happen in these days often [ci skip]
```
ruby: YJIT has panicked. More info to follow...
thread '<unnamed>' panicked at src/core.rs:2751:9:
assertion `left == right` failed: each stub expects a particular iseq
left: 0x7fc8d8e09850
right: 0x7fc8d2c2f3a0
stac...
nobu (Nobuyoshi Nakada)
03:30 AM Revision 3dde9c1b (git): Extract continue-on-error condition to the matrix [ci skip]
nobu (Nobuyoshi Nakada)
02:12 AM Revision e018036d (git): Rename `nd_head` in `RNode_RESBODY` as `nd_next`
nobu (Nobuyoshi Nakada)
02:11 AM Revision 0f98d284 (git): Remove unused `nd_resq` from `RNode_ENSURE`
nobu (Nobuyoshi Nakada)
01:10 AM Revision e256d44f (git): [ruby/prism] Handle implicit rest in array pattern for parser gem
https://github.com/ruby/prism/commit/d3722d6660 kddnewton (Kevin Newton)

01/27/2024

10:47 PM Revision 8a027d11 (git): Remove expandarray/splatarray sequence peephole optimization
newarray, duparray, concatarray, and splatarray always leave an
array at the top of the stack. expandarray does not, it takes
an array from the top of the stack as input, and leaves individual
elements on the stack. I assume no Ruby co...
jeremyevans (Jeremy Evans)
10:04 PM Revision d917bb8e (git): Eliminate 1-2 array allocations for each splat used in a masgn method
Given code such as:
```ruby
h[*a, :a], h[*b] = v
```
Ruby would previously allocate 5 arrays for the mass assignment:
* splatarray true for a
* newarray for v[0]
* concatarray for [*a, a] and v[0]
* newarray for v[1]
* concatarray f...
jeremyevans (Jeremy Evans)
09:02 PM Revision a591e11a (git): Eliminate 1-2 array allocations for each splat used in a op_asgn method
Given code such as:
```ruby
h[*a, 1] += 1
h[*b] += 2
```
Ruby would previously allocate 5 arrays:
* splatarray true for a
* newarray for 1
* concatarray for [*a, 1] and [1]
* newarray for 2
* concatarray for b and [2]
This optimi...
jeremyevans (Jeremy Evans)
07:59 PM Revision f12ebe11 (git): [ruby/prism] Add parser translation
https://github.com/ruby/prism/commit/8cdec8070c kddnewton (Kevin Newton)
07:42 PM Revision 223910b3 (git): Reduce array allocations for literal arrays with splats and other args
Previously, a literal array with a splat and any other args resulted in
more than one array allocation:
```ruby
[1, *a]
[*a, 1]
[*a, *a]
[*a, 1, 2]
[*a, a]
[*a, 1, *a]
[*a, 1, a]
[*a, a, a]
[*a, a, *a]
[*a, 1, *a, 1]
[*a, 1, *a, *a]
...
jeremyevans (Jeremy Evans)
06:46 PM Revision e337c947 (git): [ruby/prism] Error follow-up
Split up the diagnostic levels so that error and warning levels
aren't mixed. Also fix up deconstruct_keys implementation.
https://github.com/ruby/prism/commit/bd3eeb308d
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
kddnewton (Kevin Newton)
06:41 PM Revision c2e2d239 (git): [ruby/prism] Call #inspect on diagnostic levels
* So it's clear it is a Symbol.
Before:
... @level=warning_verbose_true>
After:
... @level=:warning_verbose_true>
https://github.com/ruby/prism/commit/84503643b9
Eregon (Benoit Daloze)
06:16 PM Revision 2217e083 (git): Optimize compilation of large literal arrays
To avoid stack overflow, Ruby splits compilation of large arrays
into smaller arrays, and concatenates the small arrays together.
It previously used newarray/concatarray for this, which is
inefficient. This switches the compilation to u...
jeremyevans (Jeremy Evans)
05:34 PM Feature #20080: Introduce #bounds method on Range
Could we implement this as `#deconstruct`, so Ranges can support destructuring?
```ruby
class Range
def deconstruct = [self.begin, self.end]
end
case 1..2
in [1, Integer => upper]
p "matched: #{upper}"
else
p "not matc...
AMomchilov (Alexander Momchilov)
03:50 PM Revision 0bac390e (git): [rubygems/rubygems] Bump Ruby version to be used in `bundle gem` template
since 2.6 and 2.7 are EOL and bundler dropped their support by https://github.com/rubygems/rubygems/pull/7116.
https://github.com/rubygems/rubygems/commit/b562d9a822
over.rye@gmail.com (Masato Ohba)
03:17 PM Bug #20219 (Closed): Segfault with circular parameter
```ruby
def foo(bar: (1 in ^bar)); end
```
Segfaults on master. (I don't think anyone would ever write this code.)
kddnewton (Kevin Newton)
02:13 PM Revision 5d9d07a4 (git): [ruby/prism] Bring back #arg_rest local
https://github.com/ruby/prism/commit/9b6907b727 kddnewton (Kevin Newton)
09:52 AM Bug #20216: Circular parameter reference not checked for assignment
They are not "reference"s, I think. nobu (Nobuyoshi Nakada)
08:11 AM Revision 9b40f42c (git): Introduce `NODE_ENCODING`
`__ENCODING__ `was managed by `NODE_LIT` with Encoding object.
Introduce `NODE_ENCODING` for
1. `__ENCODING__` is detectable from AST Node.
2. Reduce dependency Ruby object for parse.y
S_H_ (Shun Hiraoka)
07:50 AM Revision 68b9a32a (git): bvar is not NODE but ID
Before this commit `ruby -y -e 'tap {|;x, y|}'` failed with SEGV.
This change fixes it.
yui-knk (Kaneko Yuichiro)
02:51 AM Revision 70cb0a4d (git): Lrama v0.6.2
yui-knk (Kaneko Yuichiro)
02:34 AM Feature #20196: Proposal: Binary data literal
shyouhei (Shyouhei Urabe) wrote in #note-4:
> Reminds me of discussions in ISO C/C++ committee (in both, simultaneously, by the same person). C23 opted not to have binary string literal, instead introduced a way to load binaries into C ...
ziggythehamster (Keith Gable)
12:39 AM Bug #20218 (Closed): aset/masgn/op_asgn with keyword arguments
I found that use of keyword arguments in multiple assignment is broken in 3.3 and master:
```ruby
h = {a: 1}
o = []
def o.[]=(*args, **kw)
replace([args, kw])
end
# This segfaults as RHS argument is not a hash
o[1, a: 1], _...
jeremyevans0 (Jeremy Evans)

01/26/2024

09:46 PM Revision cb9a47f2 (git): [PRISM] Fix branchif ADD_INSN1
kddnewton (Kevin Newton)
09:34 PM Revision de135bc2 (git): [ruby/prism] Add level to warnings and errors to categorize them
* Fixes https://github.com/ruby/prism/issues/2082
https://github.com/ruby/prism/commit/7a74576357
Eregon (Benoit Daloze)
09:14 PM Revision bcafd28a (git): [ruby/prism] Symbol encoding follow-up
Ensure we don't accidentally parse the symbol encoding twice, and
ensure we parse it in every circumstance we need to by requiring
it as a parameter.
https://github.com/ruby/prism/commit/9cea31c785
kddnewton (Kevin Newton)
09:07 PM Revision a1205290 (git): [PRISM] Fix loop in rescue blocks
Fixes ruby/prism#2250.
Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
peterzhu2118 (Peter Zhu)
08:41 PM Revision 59bb78eb (git): [PRISM] Fix for s390x
On s390x, a long is 8 bytes. st_data_t is an unsigned long but
pm_constant_id_t is a 4 byte integer. We need to cast it to st_data_t
when passing it to ST functions.
peterzhu2118 (Peter Zhu)
08:15 PM Revision 2a509787 (git): [ruby/prism] Track whether a Symbol should have its encoding changed from the source encoding.
Ruby sets a Symbol literal's encoding to US-ASCII if the symbols consists only of US ASCII code points. Character escapes can also lead a Symbol to have a different encoding than its source's encoding.
https://github.com/ruby/prism/comm...
Kevin Menard
07:58 PM Revision 3d996e82 (git): [PRISM] Keyword arguments incorrectly passed as mutable
Fixes ruby/prism#2279. peterzhu2118 (Peter Zhu)
06:52 PM Bug #20217 (Closed): void value not checked for begin/ensure/rescue
```ruby
foo = begin
return
ensure
end
```
I would expect this to raise a syntax error for a void value expression being assigned, but the `ensure` makes it so that this isn't checked.
kddnewton (Kevin Newton)
06:35 PM Revision 99d91838 (git): [ruby/prism] Update src/prism.c
https://github.com/ruby/prism/commit/91b5550726 kddnewton (Kevin Newton)
06:35 PM Revision 7d356b8f (git): [ruby/prism] Fix multiple assigns with newlines
https://github.com/ruby/prism/commit/b4ba41bdcd Haldun Bayhantopcu
06:32 PM Revision 9a7637da (git): [ruby/prism] Add tests
https://github.com/ruby/prism/commit/b9ebf987bd Haldun Bayhantopcu
06:32 PM Revision b0e10345 (git): [ruby/prism] Fix parsing calls with labels
https://github.com/ruby/prism/commit/3db7849a31 Haldun Bayhantopcu
06:32 PM Revision 8e5bc8f7 (git): [ruby/prism] Change binding power for modifiers in case-in nodes
https://github.com/ruby/prism/commit/c31eeba54c Max Prokopiev
06:25 PM Bug #20216 (Closed): Circular parameter reference not checked for assignment
I wanted to check if this was a bug or desired.
Usually when you reference a parameter within its own default value (optional positional or optional keyword) it raises a syntax error. This is unless you use it in an assignment, in whi...
kddnewton (Kevin Newton)
09:27 AM Bug #20212 (Assigned): Regex match method is crashing - (irb):6: [BUG] Segmentation fault at 0x0000000000000000 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]
hsbt (Hiroshi SHIBATA)
08:46 AM Revision 1949a04f (git): `vcpkg x-update-baseline` for updating baseline commit hash uses 2-spaces indent
hsbt (Hiroshi SHIBATA)
05:19 AM Feature #20215 (Open): Introduce `IO#readable?`
There are some cases where, as an optimisation, it's useful to know whether more data is potentially available.
We already have `IO#eof?` but the problem with using `IO#eof?` is that it can block indefinitely for sockets.
Therefore...
ioquatix (Samuel Williams)
04:54 AM Bug #20213 (Closed): zsuper with keyword splat without explicit keywords incorrectly uses mutable keyword splat
Fixed by commit:771a2f039b9a059a73e8f111d1d46590fa697f63 jeremyevans0 (Jeremy Evans)
04:43 AM Revision 771a2f03 (git): Fix incorrect use of VM_CALL_KW_SPLAT_MUT in zsuper with keyword splat
For zsuper calls with a keyword splat but no actual keywords, the
keyword splat is passed directly, so it cannot be mutable, because
if the callee accepts a keyword splat, changes to the keyword splat
by the callee would be reflected in ...
jeremyevans (Jeremy Evans)
04:40 AM Revision 395a240b (git): Try to use irb instead of rubygems for completion test
I'm not sure why OpenBSD suggest `rubygems_plugin` file for this.
https://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20240126T013005Z.fail.html.gz
It seems environmental issue, not irb.
hsbt (Hiroshi SHIBATA)
03:38 AM Revision f9bf7d53 (git): Added vcpkg manifest for windows build environment.
"builtin-baseline": "53bef8994c541b6561884a8395ea35715ece75db" is 2024.01.12
released version of vcpkg.
https://github.com/microsoft/vcpkg/releases/tag/2024.01.12
hsbt (Hiroshi SHIBATA)
12:41 AM Bug #20214 (Closed): Backport https://github.com/ruby/ruby/pull/9711 to fix exits on Ruby 3.3's new instruction
Ruby 3.3.0 YJIT missed the support for the instruction that was added shortly before the 3.3.0 release. It's used in Rails, and we didn't mean to exit on such method calls.
It'd be nice if we can fix the issue in Ruby 3.3.1 by backpor...
k0kubun (Takashi Kokubun)
12:22 AM Revision 7567e4e1 (git): YJIT: Fix exits on splatkw instruction (#9711)
k0kubun (Takashi Kokubun)

01/25/2024

11:48 PM Revision 30b4070f (git): Update bundled gems list at b822f9f6fc5a00ec08dbc698b98458 [ci skip]
git[bot]
11:47 PM Revision b822f9f6 (git): Bundle rbs-3.4.3 (#9702)
* Bundle rbs-3.4.3
* Remove rbs from `TEST_BUNDLED_GEMS_ALLOW_FAILURES` list
* Add the failing tests to `rbs_skip_tests`
soutaro (Soutaro Matsumoto)
11:15 PM Revision 5bd69491 (git): [PRISM] Add raw option to assert_prism_eval
peterzhu2118 (Peter Zhu)
10:30 PM Bug #20208: Net::HTTP errors with Errno::EAFNOSUPPORT when setting local_host with Addrinfo
Thanks for your thoughts.
I agree ideally Ruby wouldn’t be carrying around hacks to work around glibc bugs that canonical couldn’t be bothered backporting fixes for. That bug was certainly my original motivation for looking at this is...
kjtsanaktsidis (KJ Tsanaktsidis)
04:32 PM Bug #20208: Net::HTTP errors with Errno::EAFNOSUPPORT when setting local_host with Addrinfo
I'll address each suggestion from my POV, though this is not my usual area of work. It sure is tricky.
1) I feel like this might bring more subtle bugs. I think you're right about also expecting that "localhost" should also work. Or e...
jprokop (Jarek Prokop)
02:35 AM Bug #20208: Net::HTTP errors with Errno::EAFNOSUPPORT when setting local_host with Addrinfo
I opened https://github.com/ruby/ruby/pull/9698 for the Net::HTTP tests.
The rubyspec tests are a little trickier. Essentially they do this:
```
['::1', '127.0.0.1'].each do |addr|
server = TCPServer.new(addr, 0)
conn = TCPS...
kjtsanaktsidis (KJ Tsanaktsidis)
12:00 AM Bug #20208: Net::HTTP errors with Errno::EAFNOSUPPORT when setting local_host with Addrinfo
Thanks for this report - it was super detailed and made it very easy for me to figure out what's going on!
Firstly, your bisection is right. The AI_ADDRCONFIG flag is what makes the difference here. The flag causes glibc to NOT return...
kjtsanaktsidis (KJ Tsanaktsidis)
10:08 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux

Any guess as to when the backport to 3.3.0 will land? Our 3.3.0 upgrade is on hold, wondering if we should wait or employ a workaround.
navels (Lee Nave)
09:49 PM Bug #20213 (Closed): zsuper with keyword splat without explicit keywords incorrectly uses mutable keyword splat
As the subject states, the super call in this code is compiled incorrectly:
```ruby
extend(Module.new{def a(**k) k[:a] = 1 end})
extend(Module.new{def a(**k) p k; super; p k end})
a
# Expected output, actual output on Ruby 2.0-3...
jeremyevans0 (Jeremy Evans)
09:45 PM Revision 2034e6ad (git): YJIT: Support concattoarray and pushtoarray (#9708)
k0kubun (Takashi Kokubun)
09:17 PM Revision f0224adf (git): YJIT: Assert lea source operand type
alanwu (Alan Wu)
08:10 PM Revision e452caac (git): [PRISM] Fix next inside rescue
eightbitraptor (Matt V-H)
05:46 PM Bug #20212 (Closed): Regex match method is crashing - (irb):6: [BUG] Segmentation fault at 0x0000000000000000 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]
Tried this with ruby 3.3.0, both irb and rails console are crashing
```ruby
DOMAIN_REGEX = Regexp.new(
/\A((?=.*?[a-z])(?!.*--)[a-z\d]+[a-z\d-]*[a-z\d]+).((?=.*?[a-z])(?!.*--)[a-z\d]+[a-z\d-]*[a-z\d]+).((?=.*?[a-z])(?!.*--)[a-zd]+...
rubanthilak (Ruban Thilak)
05:14 PM Revision e7262966 (git): [PRISM] Fix indentation of test_ScopeNode
peterzhu2118 (Peter Zhu)
04:49 PM Feature #20205: Enable `frozen_string_literal` by default
Alright, I finally got hold of the benchmarking server. For the record it's an AWS c5n.metal, with various tuning like disabling frequency scaling etc to hopefully get more stable results.
- `yjit-bench` revision: https://github.com/S...
byroot (Jean Boussier)
03:43 PM Feature #20205: Enable `frozen_string_literal` by default
> I have no idea which benchmarks are micro and which are headline. What about erubi and erubi-rails?
Each yjit-bench suite has a category: https://github.com/Shopify/yjit-bench/blob/3774b4bc320519f8b560eb23bdea48f549cf8b30/benchmark...
byroot (Jean Boussier)
03:32 PM Feature #20205: Enable `frozen_string_literal` by default
byroot (Jean Boussier) wrote in #note-31:
> I shouldn't have ran the micro-benchmarks anyway, only the headline benchmarks make sense.
I'll freely admit I have no idea which benchmarks are micro and which are headline. What about eru...
Dan0042 (Daniel DeLorme)
02:33 PM Feature #20205: Enable `frozen_string_literal` by default
> The worst case is -6% on setivar_object
This is a fluke caused by random slowdown on my development machine. Here's the benchmark source: https://github.com/Shopify/yjit-bench/blob/3774b4bc320519f8b560eb23bdea48f549cf8b30/benchmarks...
byroot (Jean Boussier)
01:53 PM Feature #20205: Enable `frozen_string_literal` by default
byroot (Jean Boussier) wrote in #note-25:
> You are missing the social aspect of it.
Thank you for the explanation. I'm not sure I fully agree but it makes a lot more sense now.
---
Eregon (Benoit Daloze) wrote in #note-28:
> ...
Let'...
Dan0042 (Daniel DeLorme)
12:18 PM Feature #20205: Enable `frozen_string_literal` by default
> I would say 5% on lobsters is a huge gain.
Still trying to get hold on our benchmarking server...
But just to note, `lobsters` itself doesn't use `frozen_string_literal: true`, and it's probably the case of at least some of its d...
byroot (Jean Boussier)
11:30 AM Feature #20205: Enable `frozen_string_literal` by default
mame (Yusuke Endoh) wrote in #note-9:
> @zverok Ah, that's exactly why I was against the introduction of `frozen_string_literal`, because people misunderstand it like you. This feature must not be mixed up with "immutability". I can und...
Eregon (Benoit Daloze)
04:23 PM Revision d4cc77e7 (git): YJIT: Add a counter for invokebuiltin exits (#9696)
k0kubun (Takashi Kokubun)
04:11 PM Revision 1301422d (git): [PRISM] Fix VM_CALL_ARGS_SPLAT_MUT failures
kddnewton (Kevin Newton)
01:58 PM Revision ebf803aa (git): [ruby/prism] Fix Ruby head build
https://github.com/ruby/prism/commit/149e2ff7f6 kddnewton (Kevin Newton)
11:26 AM Bug #20197: Postponed job invocations are significantly reduced in Ruby 3.3
Ah, thank you - yes, this should be backported to 3.3 I think. kjtsanaktsidis (KJ Tsanaktsidis)
09:09 AM Bug #20197: Postponed job invocations are significantly reduced in Ruby 3.3
@kjtsanaktsidis I'm assuming this should be backported to 3.3, but if I'm wrong you can change it to `DONTNEED` byroot (Jean Boussier)
02:10 AM Bug #20197 (Closed): Postponed job invocations are significantly reduced in Ruby 3.3
Applied in changeset commit:git|ef276858d9295208add48e27208c69184dc50472.
----------
Trigger postponed jobs on running_ec if that is available
Currently, any postponed job triggered from a non-ruby thread gets sent
to the main thread, ...
kjtsanaktsidis (KJ Tsanaktsidis)
10:20 AM Revision fdb8f086 (git): [ruby/irb] Reword history file documentation and fix typo
(https://github.com/ruby/irb/pull/842)
https://github.com/ruby/irb/commit/bbabf818c7
Eddie Lebow
09:58 AM Revision 4bd58e1a (git): [ruby/irb] diabled ==> disabled
https://github.com/ruby/irb/commit/295797ff37 ydah (Yudai Takada)
09:58 AM Revision 03341156 (git): [ruby/irb] Synatx ==> Syntax
https://github.com/ruby/irb/commit/2ffacaa031 ydah (Yudai Takada)
09:58 AM Revision 819ae2c2 (git): [ruby/irb] assigment ==> assignment
https://github.com/ruby/irb/commit/24c7694467 ydah (Yudai Takada)
09:58 AM Revision 5f9f46a2 (git): [ruby/irb] reseting ==> resetting
https://github.com/ruby/irb/commit/6209f06c72 ydah (Yudai Takada)
09:58 AM Revision 9b1cc68b (git): [ruby/irb] configuation ==> configuration
https://github.com/ruby/irb/commit/a27a511777 ydah (Yudai Takada)
09:58 AM Revision fd9b9685 (git): [ruby/irb] recever ==> receiver
https://github.com/ruby/irb/commit/dbd0e368c4 ydah (Yudai Takada)
09:58 AM Revision 6580a95f (git): [ruby/irb] inifinity ==> infinity
https://github.com/ruby/irb/commit/78dea58000 ydah (Yudai Takada)
09:58 AM Revision 4d4d4184 (git): [ruby/irb] overrided ==> overridden
https://github.com/ruby/irb/commit/b77b23aade ydah (Yudai Takada)
07:06 AM Revision 0f5407b3 (git): Simplified test case for encoding option
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> hsbt (Hiroshi SHIBATA)
07:06 AM Revision d13a57cd (git): Use Encoding.local_charmap instead of locale
In my windows environment uses cp932 for terminal encoding. hsbt (Hiroshi SHIBATA)
07:06 AM Revision 1d972498 (git): Use Encoding::CESU_8 for test case
Encoding::Windows_31J is already loaded in mswin platform hsbt (Hiroshi SHIBATA)
06:54 AM Feature #20210: Invalid source encoding raises ArgumentError, not SyntaxError
I don't remember the reason to select `ArgumentError`, `SyntaxError` feels more reasonable.
https://github.com/ruby/ruby/pull/9701
nobu (Nobuyoshi Nakada)
02:28 AM Feature #20210 (Closed): Invalid source encoding raises ArgumentError, not SyntaxError
I was hoping we could change the error that is raised when an invalid source encoding is found from an ArgumentError to a SyntaxError.
First let me say, if this isn't possible for backward compatibility, I understand. Please do not ta...
kddnewton (Kevin Newton)
06:06 AM Revision ff55d6b8 (git): Use `token_seen` and simplify `comment_at_top`
Instead of scanning before the current comment. nobu (Nobuyoshi Nakada)
05:00 AM Feature #20211 (Open): Consider re-adding 3.2-style support of Anonymous Args/Blocks
(My sincere apologies if this issue has already been raised, I didn't see it in Ruby 3.4 backlog.)
As per https://bugs.ruby-lang.org/issues/19370, Ruby 3.3 no longer allows the following:
```ruby
def m(*)
[1, 2, 3].each { |*| p...
johnnyshields (Johnny Shields)
03:42 AM Revision 2b9719ea (git): Ignore --parser=prism failures until prism compiler fixed for recent optimizations
jeremyevans (Jeremy Evans)
03:42 AM Revision fb596499 (git): Temporarily ignore bundled gems failures for rbs and typeprof on macos, similar to ubuntu
This should be reverted after rbs and typeprof are updated to handle
the changes for the optimizations.
jeremyevans (Jeremy Evans)
02:29 AM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Please try! ko1 (Koichi Sasada)
02:26 AM Feature #20066 (Closed): Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
jeremyevans0 (Jeremy Evans)
02:25 AM Revision 42d891be (git): Add benchmark for implicit array/hash allocation reduction changes
Benchmark results:
```
named_multi_arg_splat
after: 5344097.6 i/s
before: 3088134.0 i/s - 1.73x slower
named_post_splat
after: 5401882.3 i/s
before: 2629321.8 i/s - 2.05x slower
anon_arg_splat
after: 12242780.9 i/s
befor...
jeremyevans (Jeremy Evans)
02:25 AM Revision 4f77d8d3 (git): Do not use ruby2_keywords for ... argument forwarding
This allows ... argument forwarding to benefit from Allocationless
Anonymous Splat Forwarding, allowing the `f` call below to not
allocate an array or a hash.
```ruby
a = [1]
kw = {b: 2}
def c(a, b:)
end
def f(...)
c(...)
end
f(*a,...
jeremyevans (Jeremy Evans)
02:25 AM Revision 0f90a24a (git): Introduce Allocationless Anonymous Splat Forwarding
Ruby makes it easy to delegate all arguments from one method to another:
```ruby
def f(*args, **kw)
g(*args, **kw)
end
```
Unfortunately, this indirection decreases performance. One reason it
decreases performance is that this alloc...
jeremyevans (Jeremy Evans)
02:25 AM Revision b8516d6d (git): Add pushtoarray VM instruction
This instruction is similar to concattoarray, but it takes the
number of arguments to push to the array, removes that number
of arguments from the stack, and adds them to the array now at
the top of the stack.
This allows `f(*a, 1)` to ...
jeremyevans (Jeremy Evans)
02:25 AM Revision 6e06d0d1 (git): Add concattoarray VM instruction
This instruction is similar to concatarray, but assumes the first
object is already an array, and appends to it directly. This is
different than concatarray, which will create a new array instead
of appending to an existing array.
Addi...
jeremyevans (Jeremy Evans)
02:25 AM Revision 22e48846 (git): Add VM_CALL_ARGS_SPLAT_MUT callinfo flag
This flag is set when the caller has already created a new array to
handle a splat, such as for `f(*a, b)` and `f(*a, *b)`. Previously,
if `f` was defined as `def f(*a)`, these calls would create an extra
array on the callee side, inste...
jeremyevans (Jeremy Evans)
02:10 AM Revision ef276858 (git): Trigger postponed jobs on running_ec if that is available
Currently, any postponed job triggered from a non-ruby thread gets sent
to the main thread, but if the main thread is sleeping it won't be
checking ints. Instead, we should try and interrupt running_ec if that's
possible, and only fall b...
kjtsanaktsidis (KJ Tsanaktsidis)
01:51 AM Revision 2e18228d (git): Use echo with all platforms
hsbt (Hiroshi SHIBATA)
01:51 AM Revision 52085b66 (git): Use echo command in mswin platform
hsbt (Hiroshi SHIBATA)
12:18 AM Bug #20203: `TestEnumerable` test failures with GCC 14
The GC by default doesn't move objects so it shouldn't write to the array. I guess it's a use-after-free and double free caused by `callcc` in the test jumping into the middle of `qsort_r` like the glibc devs noticed https://sourceware.o... alanwu (Alan Wu)
12:03 AM Revision 34c688b1 (git): Omit TestCompilePrism on s390x for now (#9694)
k0kubun (Takashi Kokubun)
 

Also available in: Atom