Project

General

Profile

Activity

From 10/22/2024 to 10/28/2024

10/28/2024

08:38 PM Revision 3c9be02a (git): [ruby/prism] Only read from buffer if `size` is greater than 0
It looks like we can possibly do an out of bounds read if size is equal
to 0. This commit adds a conditional to ensure size is actually greater
than 0 before looking backwards in the buffer
https://github.com/ruby/prism/commit/2031b626e6
tenderlovemaking (Aaron Patterson)
02:39 PM Revision 83568a41 (git): Install simplecov for net-imap 0.5.0 test
nobu (Nobuyoshi Nakada)
02:39 PM Revision e994015c (git): Update test-bundled-gems.rb
- Fix filtering by ARGV
- Adjust top library names from gem names
- Skip if no tests found
nobu (Nobuyoshi Nakada)
02:08 PM Bug #20819 (Open): IO#readline does not process newlines correctly for wide character encodings
When not performing character conversion, IO#readline only processes newline characters as ASCII when reading paragraphs. However, when character conversion is involved, even when converting between 2 ASCII incompatible encodings, newli... javanthropus (Jeremy Bopp)
02:05 PM Revision a8f220ed (git): [DOC] Tweaks for Array#uniq (#11949)
burdettelamar (Burdette Lamar)
01:54 PM Feature #20818 (Feedback): Allow passing a block to Hash#store (to update current value)
I would like to propose a block form for `Hash#store`. In addition to passing a value, it should also be allowed to pass a block.
If passed a block instead of a value, the block is called with the current value or, if unset, the hash's ...
furunkel (Julian Aron Prenner)
12:38 PM Revision 90ef28f5 (git): [DOC] Tweaks for windows.md
nobu (Nobuyoshi Nakada)
08:27 AM Revision 4f467c3f (git): Win32: [DOC] Update about program name configurations
nobu (Nobuyoshi Nakada)
08:27 AM Revision a3bfddf9 (git): Win32: Refactor configurations
Pass configure options to the generated Makefile as-is. nobu (Nobuyoshi Nakada)
08:27 AM Revision a687b2ec (git): Win32: [DOC] Mention `vcvarall*.bat`
nobu (Nobuyoshi Nakada)
08:27 AM Revision f6bd8f2d (git): Win32: [DOC] No extlibs file, no patch is needed
nobu (Nobuyoshi Nakada)
04:31 AM Revision d09b47dd (git): merge revision(s) 70d20ce473952e3a2e5b0aa4a6884886517ee3cc:
Update bundled gems list nagachika (Tomoyuki Chikanaga)
03:29 AM Revision 70d20ce4 (git): Update bundled gems list
nagachika (Tomoyuki Chikanaga)

10/27/2024

11:44 AM Misc #20781: DevMeeting-2024-11-07
* [Feature #20811] `warning: in a**b, b may be too big` is really helpful? (mame)
* I think the warning is not useful. Can we remove the warning?
mame (Yusuke Endoh)

10/26/2024

04:32 PM Feature #20815 (Closed): Fetch for nested hash
Closing because it's a duplicate. byroot (Jean Boussier)
01:20 PM Revision 484ea00d (git): [ruby/stringio] An empty string should be converted to empty in any encoding
https://github.com/ruby/stringio/commit/ef03f9368d nobu (Nobuyoshi Nakada)
12:55 PM Revision f513863c (git): [ruby/stringio] Unreachable after an invalid argument exception
https://github.com/ruby/stringio/commit/a2aab4721c nobu (Nobuyoshi Nakada)
12:55 PM Revision 393c5df0 (git): [ruby/stringio] Remove `SafeStringValue`
In Ruby 2.7 and later, it is the same as `StringValue`.
https://github.com/ruby/stringio/commit/561ea67ea8
nobu (Nobuyoshi Nakada)
10:16 AM Bug #20816: Potential regression in Ruby 3.3.x (compared with 3.1 and 3.2) regarding fast syscalls and multi-threading.
I can also repro on macOS. Comparing profiles between 3.2 and 3.3, in both case the overwhelming majority of the time is spent in the thread scheduler.
The one big difference I can see is that 3.2 seem to use `poll` to wait on threads...
byroot (Jean Boussier)
09:50 AM Bug #20816: Potential regression in Ruby 3.3.x (compared with 3.1 and 3.2) regarding fast syscalls and multi-threading.
Thanks, these numbers are slightly more "expected" than mine (Ubuntu 24.04), especially for 2 threads, but other that that it looks like the "regression" is also visible on MacOS.
For the record I also tested with ruby master (3.4.0 as ...
adrienjarthon (Adrien Jarthon)
09:28 AM Bug #20816: Potential regression in Ruby 3.3.x (compared with 3.1 and 3.2) regarding fast syscalls and multi-threading.
The result on my machine (Apple M2 Pro, 12 processors).
Note that N=5_000_000, a half of your example.
|Threads\Ruby| 3.1.4 | 3.2.5 | 3.3.5 | 3.4.0 |
|-----------:|-------:|-------:|-------:|-------:|
| 1 | 8.818 | 5...
nobu (Nobuyoshi Nakada)
09:45 AM Revision 519f5591 (git): Update default gems list at caa946f2deba24b26e92aae50441ca [ci skip]
git[bot]
09:44 AM Revision caa946f2 (git): Restore ext/json/extconf.rb
hsbt (Hiroshi SHIBATA)
09:44 AM Revision 58797b7f (git): No longer needed ext/json/extconf.rb
hsbt (Hiroshi SHIBATA)
09:44 AM Revision e136e552 (git): [ruby/json] Instantiate Parser with a kwsplat
Prior to 2.7.3, `JSON::Ext::Parser` would only take kwargs.
So if json_pure 2.7.4 is loaded with `json <= 2.7.2` (or stdlib)
it blows up.
Ref: https://github.com/ruby/json/issues/650
Fix: https://github.com/ruby/json/issues/651
https:/...
byroot (Jean Boussier)
09:44 AM Revision 8018a312 (git): [ruby/json] Workaround being loaded alongside a different `json_pure` version
Fix: https://github.com/ruby/json/issues/646
Since both `json` and `json_pure` expose the same files, if the
versions don't match, the native extension may be loaded with Ruby
code that don't match and is incompatible.
By doing the `re...
byroot (Jean Boussier)
09:44 AM Revision a5bd0c63 (git): [ruby/json] Workaround rubygems $LOAD_PATH bug
Ref: https://github.com/ruby/json/issues/647
Ref: https://github.com/rubygems/rubygems/pull/6490
Older rubygems are executing `extconf.rb` with a broken `$LOAD_PATH`
causing the `json` gem native extension to be loaded with the stdlib
v...
byroot (Jean Boussier)
09:44 AM Revision 3daf16e5 (git): [ruby/json] Cleanup test_helper.rb
https://github.com/ruby/json/commit/49de571dd8 byroot (Jean Boussier)
09:44 AM Revision 73142755 (git): json_pure: fix ractor compatibility
This actually never worked, because the test was always testing
the ext version from the stdlib, never the pure version nor the
current ext version.
byroot (Jean Boussier)
09:44 AM Revision a3c21756 (git): [ruby/json] Use smaller types for JSON_Parser boolean fields
https://github.com/ruby/json/commit/7f079b25be byroot (Jean Boussier)
09:44 AM Revision b1d417dc (git): [ruby/json] Cleaner .encode / .force_encoding
https://github.com/ruby/json/commit/cecf04fdfc byroot (Jean Boussier)
09:44 AM Revision 1045b9f8 (git): [ruby/json] Modernize heredocs
https://github.com/ruby/json/commit/fb25e94aea byroot (Jean Boussier)
09:44 AM Revision bfdf02ea (git): pretty_generate: don't apply object_nl / array_nl for empty containers
Fix: https://github.com/ruby/json/issues/437
Before:
```json
{
"foo": {
},
"bar": [
]
}
```
After:
```json
{
"foo": {},
"bar": []
}
```
byroot (Jean Boussier)
09:44 AM Revision 1d470856 (git): Set Ruby 2.7 as the required version
byroot (Jean Boussier)
09:44 AM Revision 7d37ae67 (git): [ruby/json] Start 2.8.0 development
https://github.com/ruby/json/commit/937c8d2e65 byroot (Jean Boussier)
09:44 AM Revision 9d3fd50c (git): [ruby/json] Release 2.7.3
https://github.com/ruby/json/commit/7a3b482013 byroot (Jean Boussier)
09:44 AM Revision 89d4bbac (git): [ruby/json] Release 2.7.3.rc1
https://github.com/ruby/json/commit/a48be35825 byroot (Jean Boussier)
09:44 AM Revision 92513107 (git): Merge json and json-java gemspecs
byroot (Jean Boussier)
09:44 AM Revision fc9f0cb8 (git): [ruby/json] JSON.dump / String#to_json: raise on invalid encoding
This regressed since 2.7.2.
https://github.com/ruby/json/commit/35407d6635
byroot (Jean Boussier)
09:44 AM Revision 2c6e3bc7 (git): Raise the correct exception in fast_serialize_string
* Related to https://github.com/ruby/json/issues/344 Eregon (Benoit Daloze)
09:44 AM Revision 1cf1bf95 (git): [ruby/json] Add lib/json/ext/generator/state.rb to the gemspec
* Otherwise the gem always uses the pure-Ruby backend
as it's missing that file and rescuing the LoadError.
https://github.com/ruby/json/commit/1e2809b0b0
Eregon (Benoit Daloze)
09:44 AM Revision 70f554ef (git): [ruby/json] raise_parse_error: avoid UB
Fix: https://github.com/ruby/json/pull/625
Declaring the buffer in a sub block cause bugs on some compilers.
https://github.com/ruby/json/commit/90967c9eb0
byroot (Jean Boussier)
09:44 AM Revision 00aa1f9a (git): [ruby/json] Encoding benchmark updates
Remove `rapidjson` as it's 2x slower most benchmarks, and on
par on a couple of them, so it's not telling us much here.
Configure `Oj` in compat mode so it generate the same JSON
on the `many to_json` benchmark.
```
== Encoding small n...
byroot (Jean Boussier)
09:44 AM Revision 44aef5e8 (git): [ruby/json] Drop compatibility for missing Array#permutation (Ruby <= 1.8.6)
https://github.com/ruby/json/commit/b02091ed44
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
etienne (Étienne Barrié)
09:44 AM Revision 82f7550f (git): Use frozen string literals
Co-authored-by: Jean Boussier <jean.boussier@gmail.com> etienne (Étienne Barrié)
09:44 AM Revision 5f974689 (git): [ruby/json] Drop compatibility for missing Time#tv_nsec (Ruby 1.8)
https://github.com/ruby/json/commit/b240bde402
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
etienne (Étienne Barrié)
09:44 AM Revision 11348c58 (git): Use Encoding constants, String#b
Co-authored-by: Jean Boussier <jean.boussier@gmail.com> etienne (Étienne Barrié)
09:44 AM Revision a052d961 (git): [ruby/json] Compile with std=c99
https://github.com/ruby/json/commit/d4968d2e48 byroot (Jean Boussier)
09:44 AM Revision cbd933bc (git): [ruby/json] convert_UTF8_to_ASCII_only_JSON: apply the same optimization pass
https://github.com/ruby/json/commit/42edaf7f17 byroot (Jean Boussier)
09:44 AM Revision e52b4768 (git): [ruby/json] Reduce encoding benchmark size
Profiling revealed that we were spending lots of time growing the buffer.
Buffer operations is definitely something we want to optimize, but for
this specific benchmark what we're interested in is UTF-8 scanning performance.
Each iterat...
byroot (Jean Boussier)
09:44 AM Revision 97713ac9 (git): [ruby/json] convert_UTF8_to_JSON: repurpose the escape tables into size tables
Since we're looking up the table anyway, we might as well store the
UTF-8 char length in it. For single byte characters that don't need
escaping we store `0`.
This helps on strings with lots of multi-byte characters:
Before:
```
== En...
byroot (Jean Boussier)
09:44 AM Revision 9f300d05 (git): [ruby/json] Optimize convert_UTF8_to_JSON for mostly ASCII strings
If we assume that even UTF-8 strings are mostly ASCII, we can implement a
fast path for the ASCII parts.
Before:
```
== Encoding mixed utf8 (20012001 bytes)
ruby 3.4.0dev (2024-10-18T15:12:54Z master https://github.com/ruby/json/commit...
byroot (Jean Boussier)
09:44 AM Revision 07fc21cf (git): [ruby/json] Ext::Parser avoid costly check on decimal_class when it is nil
Closes: https://github.com/ruby/json/pull/512
https://github.com/ruby/json/commit/d882a45d82
Co-Authored-By: lukeg <luke.gru@gmail.com>
byroot (Jean Boussier)
09:44 AM Revision 18cc663a (git): [ruby/json] Add test coverage for JSON.load with a Proc
Fix: https://github.com/ruby/json/issues/438
https://github.com/ruby/json/commit/9dd89eaac8
byroot (Jean Boussier)
09:44 AM Revision 9045258c (git): [ruby/json] Limit the size of ParserError exception messages
Fix: https://github.com/ruby/json/issues/534
Only include up to 32 bytes of unparseable the source.
https://github.com/ruby/json/commit/f44995cfb6
byroot (Jean Boussier)
09:44 AM Revision 7dfc1f3d (git): [ruby/json] parser.c: refactor raise_parse_error
https://github.com/ruby/json/commit/09e1df2643 byroot (Jean Boussier)
09:44 AM Revision 618085f4 (git): [ruby/json] Get rid of the remaining tabs.
https://github.com/ruby/json/commit/1a9af430d2 byroot (Jean Boussier)
09:44 AM Revision e0f87320 (git): Reduce allocations in `parse` and `load` argument handling
Avoid needless hash allocations and such that degrade performance
significantly on micro-benchmarks.
byroot (Jean Boussier)
09:44 AM Revision 8e7e6382 (git): Add more precise documentation for `object_class` and `array_class`
Fix: https://github.com/ruby/json/issues/419 byroot (Jean Boussier)
09:44 AM Revision aed01149 (git): [ruby/json] Annotate the encoding benchmark
Note where we currently stand, what the current bottlencks are
and what could or can't be done.
```
== Encoding small nested array (121 bytes)
ruby 3.3.4 (2024-07-09 revision https://github.com/ruby/json/commit/be1089c8ec) [arm64-darwin...
byroot (Jean Boussier)
09:44 AM Revision 5fa491b4 (git): Normalize lockfile platforms
deivid (David Rodríguez)
09:44 AM Revision e61bb75a (git): [ruby/strscan] [JRuby] Optimize `scan()`: Remove duplicate `if
(restLen() < patternsize()) return context.nil;` checks in
`!headonly`.
(https://github.com/ruby/strscan/pull/110)
- before: #109
## Why?
https://github.com/ruby/strscan/blob/d31274f41b7c1e28f23d58cf7bfea03baa818cb7/ext/jruby/org/jrub...
naitoh (Jun NAITOH)
09:44 AM Revision e73f35dd (git): [ruby/strscan] [CRuby] Optimize `strscan_do_scan()`: Remove
unnecessary use of `rb_enc_get()`
(https://github.com/ruby/strscan/pull/108)
- before: #106
## Why?
In `rb_strseq_index()`, the result of `rb_enc_check()` is used.
-
https://github.com/ruby/ruby/blob/6c7209cd3788ceec01e504d99057f9d3b...
naitoh (Jun NAITOH)
09:44 AM Revision d6046bcc (git): [ruby/strscan] Use C90 as far as supporting 2.6 or earlier
(https://github.com/ruby/strscan/pull/101)
https://github.com/ruby/strscan/commit/d31274f41b
nobu (Nobuyoshi Nakada)
09:44 AM Revision e7f06402 (git): Bump version
Sutou Kouhei
09:44 AM Revision 2ec2051f (git): [ruby/fiddle] Don't use mkmf to generate dummy Makefile
(https://github.com/ruby/fiddle/pull/155)
GitHub: fix https://github.com/ruby/fiddle/pull/153
mkmf requires fileutils. JRuby doesn't like it.
https://github.com/ruby/fiddle/commit/df4bd21fc3
Sutou Kouhei
09:44 AM Revision a51007fc (git): [ruby/fiddle] Suppress -Wundef warnings
(https://github.com/ruby/fiddle/pull/157)
The GCC warning puts undefined macro names in double quotes while clang
puts them in single quotes.
https://github.com/ruby/fiddle/commit/7dcb40bccb
nobu (Nobuyoshi Nakada)
09:44 AM Revision 346085ea (git): [ruby/fiddle] Fix Fiddle::Handle.new for a missing library in the
FFI backend
(https://github.com/ruby/fiddle/pull/156)
* From https://github.com/ruby/reline/issues/766#issuecomment-2422135968
https://github.com/ruby/fiddle/commit/eea9fd0cc4
Eregon (Benoit Daloze)
09:40 AM Bug #20817: Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
This seems the case that the recovery works wrongly.
When no syntax error, also the "useless use" warning occurs inside `eval`.
Not in `eval`, the warning is emitted regardless the syntax error.
nobu (Nobuyoshi Nakada)
06:54 AM Bug #20817: Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
Related to https://bugs.ruby-lang.org/issues/20736 Earlopain (Earlopain _)
03:47 AM Bug #20817: Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
Using parse.y parser works as Ruby 3.3.5 does. No warnings emitted.
```
$ RUBYOPT=--parser=parse.y ruby -v
ruby 3.4.0dev (2024-10-25T11:52:32Z master 9c8c140d73) [x86_64-linux]
$ RUBYOPT=--parser=parse.y ruby -w foo.rb
lib/file.rb...
yahonda (Yasuo Honda)
03:47 AM Bug #20817: Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
Here is the original Rails CI log file.
https://buildkite.com/rails/rails-nightly/builds/1214#0192c57b-b994-43cb-9f48-63b1b41e6f4e/1177-1185
"(eval at lib/file.rb:42):2: warning: possibly useless use of + in void context"
### How ...
yahonda (Yasuo Honda)
03:45 AM Bug #20817 (Rejected): Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
Ruby 3.4.0dev emits `warning: possibly useless use of + in void context` while Ruby 3.3.5 does not
This issue is based on Rails Action Pack test case against Ruby 3.4.0dev.
Here is the minimum script to reproduce it.
### Steps to ...
yahonda (Yasuo Honda)
12:46 AM Revision 9838c443 (git): Make builtin init ifdefs consistent
k0kubun (Takashi Kokubun)

10/25/2024

10:05 PM Bug #20816 (Assigned): Potential regression in Ruby 3.3.x (compared with 3.1 and 3.2) regarding fast syscalls and multi-threading.
Ok I'm sorry in advance if this is not really a regression (maybe it's the cost to pay for other improvements) but it still showed as a 30% performance drop in my benchmark so I think it may be worth a look.
For the full story about h...
adrienjarthon (Adrien Jarthon)
07:36 PM Revision 990a5382 (git): Remove useless freelist unlock/lock in gc_ref_update
peterzhu2118 (Peter Zhu)
02:52 PM Revision 05f894ab (git): [DOC] Tweaks for Array#uniq! (#11950)
burdettelamar (Burdette Lamar)
02:41 PM Feature #20805: Allow Ractor#send from a signal trap Proc
It works if you make `shutdown_ractor` a constant:
```ruby
p Process.pid
SHUTDOWN_RACTOR = Ractor.new do
Ractor.recv # Wait for a signal
puts "goodbye"
exit!
end
# Signal trap for SIGTERM
Signal.trap("TERM") do
pu...
alanwu (Alan Wu)
02:40 PM Misc #20013: Travis CI status
We enabled Travis CI again (enabling the allow_failures) by the PR <https://github.com/ruby/ruby/pull/11948> solving <https://bugs.ruby-lang.org/issues/20810>.
jaruga (Jun Aruga)
02:32 PM Feature #20815: Fetch for nested hash
```ruby
data => user: {profile: {name:}}
p name #=> "Alice"
data => user: {profile: {age:}} #=> NoMatchingPatternKeyError
```
nobu (Nobuyoshi Nakada)
01:46 PM Feature #20815: Fetch for nested hash
I think this might have been suggested in the past as `deep_fetch`. Could it be `dig!` maybe? matheusrich (Matheus Richard)
11:48 AM Feature #20815 (Closed): Fetch for nested hash
I propose adding a `fetch_nested` method to Ruby’s Hash class, allowing developers to fetch values deeply nested within a hash, with an error raised if any key in the provided path is missing. The method would be similar to dig, but with... dmytrostrukov (Dmytro Strukov)
02:26 PM Misc #20814 (Feedback): iseq optimizations on constant condition
Because of the dynamic feature of Ruby, the optimization on ISeq is very limited.
For instance, elimination of unreachable branch because of a simple always-true/false condition expression, in your example.
> - is there way to disabl...
nobu (Nobuyoshi Nakada)
11:20 AM Misc #20814 (Feedback): iseq optimizations on constant condition
ruby 3.4-preview2 seems optimizes out some stuff when building iseq and this may lead to user unexpected behavior when debugging, because some lines just optimized out.
Example:
```ruby
def foo1
if true
nil
else
1
...
hurricup (Alexandr Evstigneev)
01:32 PM Revision 5c1e4327 (git): Remove rb_ary_new for parser
rb_ary_new function was not used by the parser and could be removed. S_H_ (Shun Hiraoka)
01:26 PM Revision d278d352 (git): Introduce inline_primary rule
Introduce inline_primary rule to merge the same BNF pattern S_H_ (Shun Hiraoka)
11:52 AM Revision 9c8c140d (git): Avoid dangling pointer on cygwin
fd0 (Daisuke Fujimura)
07:39 AM Revision f1e92363 (git): [ruby/reline] Add completion_append_character test
(https://github.com/ruby/reline/pull/773)
https://github.com/ruby/reline/commit/5f5a0aa78c
tompng (tomoya ishida)
07:12 AM Revision 10e0ebc7 (git): [ruby/rdoc] Remove details markers in HTML documents
`summary {list-style: none;}` still does not work in Safari 18.
https://github.com/ruby/rdoc/commit/c6a0a6a0d5
nobu (Nobuyoshi Nakada)
05:25 AM Misc #20810 (Closed): Re-enable s390x CI Builds on Master Branch in Travis CI
Travis CI including the s390x was reenabled on the ruby/ruby master branch by the above PR.
jaruga (Jun Aruga)
05:05 AM Revision 0d7f7460 (git): .travis.yml: Skip document only commit and merge for bot
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> nobu (Nobuyoshi Nakada)
05:05 AM Revision d089826c (git): .travis.yml: Drop arm32-linux case.
In the Arm64 Ubuntu jammy (22.04) instance in Travis, we saw the following
error related to the `setarch` failing to run on the 32-bits architecture,
though the linux32 was included in the output of the `setarch --list`.
https://app.tra...
Jun Aruga
05:05 AM Revision e6ddbf18 (git): [Misc #20810] Reenable Travis CI.
There was a report that the Travis CI's long-term infra issue was addressed by
the Travis team on the Ruby Bug ticket 20810.
We especially want to test the s390x (big-endian case) on the pull-request.
Revert ".travis.yml: Drop all the ...
nobu (Nobuyoshi Nakada)

10/24/2024

11:12 PM Bug #20804 (Closed): Stop reserving stack ahead-of-time in on Linux
Applied in changeset commit:git|dcf3add96bd6e117435c568e78be59bb7ecad701.
----------
Delete reserve_stack code
This code was working around a bug in the Linux kernel. It was
previously possible for the kernel to place heap pages in a r...
kjtsanaktsidis (KJ Tsanaktsidis)
09:25 PM Revision 2b985456 (git): [DOC] Tweaks for Array#union
burdettelamar (Burdette Lamar)
09:23 PM Revision 2078ba19 (git): [DOC] Tweaks for Array#transpose
burdettelamar (Burdette Lamar)
09:07 PM Bug #20813 (Open): Segfault in rgengc_check_relation/RVALUE_WB_UNPROTECTED
We're seeing this segfault consistently crop up in CI on Ruby 3.3.5 (details below). I'm working on getting a core dump but in the mean time, I was told the console output might be a good starting point to debug.
I thought it might be...
davidcornu (David Cornu)
04:36 PM Revision 979e447d (git): [ruby/reline] nonprinting_start and nonprinting_end should be
removed
(https://github.com/ruby/reline/pull/771)
https://github.com/ruby/reline/commit/e36441652a
tompng (tomoya ishida)
04:17 PM Misc #20810: Re-enable s390x CI Builds on Master Branch in Travis CI
I sent the following PR to reenable Travis CI including s390x on the rury/ruby master branch.
https://github.com/ruby/ruby/pull/11948
jaruga (Jun Aruga)
03:03 AM Misc #20810: Re-enable s390x CI Builds on Master Branch in Travis CI
On ruby_3_2, recently all the Travis-CI pipelines are dropped.
https://github.com/ruby/ruby/commit/4873bbd6cc25311fb477bb8fe823d2ea16299717
nagachika (Tomoyuki Chikanaga)
03:08 PM Revision 1634280e (git): Fix shared GC with -DRUBY_DEBUG
RUBY_DEBUG enables ractor assertions, which sets up some space at the
end of each RVALUE to store the associated ractor ID. We need to make
sure the function that does this is visible to shared GC libraries.
eightbitraptor (Matt V-H)
03:08 PM Revision 84ec0653 (git): Fix shared-gc build task
include CPPFLAGS, and the correct CFLAGS eightbitraptor (Matt V-H)
02:16 PM Misc #20013: Travis CI status
I received the following email from Travis support on 19th October.
> Could you please try to trigger a build once again when you are ready and let us know if this issue now appears to be resolved?
> ...
I am starting to test Travis ...
jaruga (Jun Aruga)
02:12 PM Revision 78378cae (git): append completion_append_character only when continous completion is … (#764)
* append completion_append_character only when continous completion is not possible
* refactoring
* remove debug puts
Wu
01:45 PM Revision c1ca331c (git): Fix potential issue in wmap_cmp for dead entries
wmap_cmp will always return true for dead entries since dead entries have
a Qundef value. When the keys have a hash collision, this may cause the
wrong entry to be returned.
This commit changes wmap_cmp to compare by weakmap_entry point...
peterzhu2118 (Peter Zhu)
01:26 PM Feature #20812 (Closed): Proposal for Safe Include Method in Ruby
jeremyevans0 (Jeremy Evans)
01:19 PM Feature #20812: Proposal for Safe Include Method in Ruby
jeremyevans0 (Jeremy Evans) wrote in #note-1:
> rogerconsul (Roger Consul) wrote:
> ...
Well... After you mentioned it, I realized we were using version 2.7.5 🥲
Error didn't reproduce on newer versions. We can close this thread.
Th...
rogerconsul (Roger Consul)
01:10 PM Feature #20812: Proposal for Safe Include Method in Ruby
rogerconsul (Roger Consul) wrote:
> The current `include?` method raises an error when passed `nil` as an argument.
Are you sure?
```ruby
# No Error
[1, 2].include?(nil)
[Object.new].include?(nil)
# Error, but due to custom ...
jeremyevans0 (Jeremy Evans)
12:57 PM Feature #20812 (Closed): Proposal for Safe Include Method in Ruby
# Proposal for Safe Include Method in Ruby
## Description
Add a new method `include_safe?` to Ruby's `Enumerable` module that safely handles nil arguments in inclusion checks.
## Problem Statement
The current `include?` metho...
rogerconsul (Roger Consul)
11:33 AM Feature #15381: Let double splat call `to_h` implicitly
Regarding `**@`, I'm not a big fan because `**` on the caller side is very much syntax a bit like a keyword, and it has the meaning the pass the Hash/expression as keyword arguments and not as a position argument.
Of course you could ha...
Eregon (Benoit Daloze)
10:30 AM Revision 4755d28f (git): [ruby/zlib] Reduce `ensure` nesting
https://github.com/ruby/zlib/commit/5a02eac37f nobu (Nobuyoshi Nakada)
10:18 AM Revision ae67325d (git): [ruby/zlib] Tell gcc-14 that `Qnil` is not passed to `gzfile_calc_crc`
Suppress false positive warnings due to a bug in gcc-14 optimizer.
https://github.com/ruby/zlib/commit/eb1cf426c2
nobu (Nobuyoshi Nakada)
10:12 AM Feature #20811: `warning: in a**b, b may be too big` is really helpful?
Agreed it should just compute it.
It should still be interruptible by Ctrl+C though, but it probably already is.
Eregon (Benoit Daloze)
07:40 AM Feature #20811: `warning: in a**b, b may be too big` is really helpful?
Agreed. Either Ruby can't do it and should raise some sort of error, or just do it even if it uses gigabytes of memory.
That warning isn't helping anyone, and returning `Infinity` is a huge gotcha and totally unexpected.
byroot (Jean Boussier)
07:25 AM Feature #20811 (Closed): `warning: in a**b, b may be too big` is really helpful?
I tried to calculate the largest prime number recently discovered. However, it did not work. I was a bit disappointed.
```
$ ruby -e 'p 2**136279841-1'
-e:1: warning: in a**b, b may be too big
Infinity
```
I know this is not a ...
mame (Yusuke Endoh)
02:47 AM Revision 4df0038d (git): Bump actions/checkout in /.github/actions/setup/directories
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http...
dependabot[bot]
12:55 AM Revision a24cb8ac (git): [rubygems/rubygems] [SpecFetcher tests] Use >3 character long fake gem name.
https://github.com/rubygems/rubygems/commit/ce06b8f0d9 Ellen Marie Dash
12:55 AM Revision 5549dd2c (git): [rubygems/rubygems] [SpecFetcher] Change < to <= like it should be.
https://github.com/rubygems/rubygems/commit/3d5135e69b Ellen Marie Dash
12:29 AM Revision 0b3d518e (git): [ruby/error_highlight] Rename the `ErrorHighlight::DefaultFormatter` setting to `max_snippet_width` for clarity
https://github.com/ruby/error_highlight/commit/e13cbd4335 karreiro (Guilherme Carreiro)

10/23/2024

10:36 PM Revision 60c0c324 (git): [ruby/rdoc] Red-based darkfish color scheme
(https://github.com/ruby/rdoc/pull/1191)
* Cleanup rdoc.css
* Use red as the highlight color
* Use the same red as ruby-lang.org
* Make main section links stand out more
* Remove scrollbar styling
https://github.com/ruby/rdoc/commi...
st0012 (Stan Lo)
08:03 PM Revision 60d84354 (git): [rubygems/rubygems] [SpecFetcher] Avoid unneeded string allocation.
https://github.com/rubygems/rubygems/commit/1024505d8e Ellen Marie Dash
08:03 PM Revision ab7c800e (git): [rubygems/rubygems] [SpecFetcher] Bail before calling available_specs()
https://github.com/rubygems/rubygems/commit/0719921af4 Ellen Marie Dash
08:03 PM Revision 0f5941a5 (git): [rubygems/rubygems] Replace .map{...}.compact with .filter_map {...}
https://github.com/rubygems/rubygems/commit/18c4ea7d00 Ellen Marie Dash
08:03 PM Revision 65fd8606 (git): [rubygems/rubygems] Add another bail-early condition to suggest_gems_from_name(), with test.
https://github.com/rubygems/rubygems/commit/7bb7c0ac2d Ellen Marie Dash
08:03 PM Revision ff749d99 (git): [rubygems/rubygems] Optimize when suggest_gems_from_name finds an exact match.
https://github.com/rubygems/rubygems/commit/6c67298584 Ellen Marie Dash
08:03 PM Revision fe66eee1 (git): [rubygems/rubygems] Document suggest_gems_from_name()
https://github.com/rubygems/rubygems/commit/8f9983cc21 Ellen Marie Dash
08:03 PM Revision 35f0b7c8 (git): [rubygems/rubygems] [suggest_gems_from_name] Bail early if the value is guaranteed to be rejected.
https://github.com/rubygems/rubygems/commit/56262a9384 Ellen Marie Dash
05:18 PM Revision 5460d5b1 (git): Move error handling for GC.stat_heap to gc.c
peterzhu2118 (Peter Zhu)
05:18 PM Revision d3aaca97 (git): Make rb_gc_impl_stat_heap return a VALUE instead of size_t
peterzhu2118 (Peter Zhu)
05:18 PM Revision c0b50d05 (git): Move error handling for GC.stat to gc.c
peterzhu2118 (Peter Zhu)
05:18 PM Revision 9dea0fae (git): Make rb_gc_impl_stat return a VALUE instead of size_t
peterzhu2118 (Peter Zhu)
05:18 PM Revision c2af84b2 (git): Move error handling for GC.latest_gc_info to gc.c
peterzhu2118 (Peter Zhu)
04:17 PM Misc #20810 (Feedback): Re-enable s390x CI Builds on Master Branch in Travis CI
k0kubun (Takashi Kokubun)
04:16 PM Misc #20810: Re-enable s390x CI Builds on Master Branch in Travis CI
> However, the s390x builds are successfully running on other branches( ruby_3_3, ruby_3_2) on Travis CI, which were previously experiencing timeouts.
The latest result of ruby_3_3 is a timeout https://app.travis-ci.com/github/ruby/ruby...
k0kubun (Takashi Kokubun)
01:08 PM Misc #20810 (Closed): Re-enable s390x CI Builds on Master Branch in Travis CI
Description: Currently, the Travis CI has been temporarily disabled on the master branch via Pr(https://github.com/ruby/ruby/pull/11509). However, the s390x builds are successfully running on other branches( ruby_3_3, ruby_3_2) on Travis... mayur.jadhav (Mayur Jadhav)
02:20 PM Revision 8e509380 (git): YJIT: Make PendingBranch::set_target `must_use` [ci skip]
alanwu (Alan Wu)
02:17 PM Revision cb661d7d (git): YJIT: Check when gen_branch() fails
We got some core dumps in the wild where a PendingBranch had everything
as None, leading to a panic unwrapping in PendingBranch::into_branch().
This happened while compiling a `branchif`.
It seems that the only way this can happen is wh...
alanwu (Alan Wu)
02:06 PM Bug #20803 (Closed): Windows intermittent spec failure - ObjectSpace.memsize_of(:abc)
byroot (Jean Boussier)
01:00 PM Bug #20803: Windows intermittent spec failure - ObjectSpace.memsize_of(:abc)
https://github.com/ruby/ruby/pull/11942 byroot (Jean Boussier)
12:56 PM Bug #20803: Windows intermittent spec failure - ObjectSpace.memsize_of(:abc)
I've seen this sort of failures happen in the past, the root cause generally is that there is another test that runs first an create that symbol in a dynamic way: `"abc".to_sym`.
The solution is to use a more unique symbol value to av...
byroot (Jean Boussier)
02:04 PM Revision a6c4a842 (git): Harden the ObjectSpace.memsize_of spec
[Bug #20803]
`abc` is used a lot across the ruby spec suite, if another test runs before
this spec is loaded and create this symbol dynamically (`"abc".to_sym`)
the spec will fail.
So it's preferable to use a symbol name that is very u...
byroot (Jean Boussier)
02:02 PM Revision 68131387 (git): CI: Test with gcc-14 on macOS
nobu (Nobuyoshi Nakada)
02:02 PM Revision baae3657 (git): Extract common code as a function
nobu (Nobuyoshi Nakada)
02:02 PM Revision 7d1011d3 (git): Fix false warning by gcc 14 for aarch64
gcc 14 for aarch64 with `-O3` may emit a false positive warning for a
pointer access of `RB_BUILTIN_TYPE` called from `RB_TYPE_P`. `Qfalse`
shouldn't get there because of `RB_SPECIAL_CONST_P`, but the optimizer
seems to ignore this cond...
nobu (Nobuyoshi Nakada)
02:02 PM Revision 47f6ba34 (git): Check if -pipe option works
With `-pipe` option, gcc of Homebrew on macOS results in a mysterious
error.
```
$ command -v gcc-14
/opt/homebrew/bin/gcc-14
$ gcc-14 --version
gcc-14 (Homebrew GCC 14.2.0) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This...
nobu (Nobuyoshi Nakada)
01:53 PM Revision 1e59fa2b (git): YJIT: Count compiled_branch_count when branch is finalized [ci skip]
alanwu (Alan Wu)
11:16 AM Revision 438d36eb (git): [rubygems/rubygems] Print a proper error when there's a previous empty installation path with bad permissions
https://github.com/rubygems/rubygems/commit/07e7f0bf5e deivid (David Rodríguez)
08:53 AM Revision f2380081 (git): [rubygems/rubygems] Improve Bundler errors when trying to install to a protected folder in macOS
### Before
```
$ GEM_HOME=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0/ bundle
Fetching gem metadata from https://rubygems.org/.
Source rubygems repository https://rubygems.org/ or installed locally is ...
deivid (David Rodríguez)
08:53 AM Revision 055ed5f5 (git): [rubygems/rubygems] Improve `Bundler::GenericSystemCall` error message
https://github.com/rubygems/rubygems/commit/ccd7e084a8 deivid (David Rodríguez)
08:53 AM Revision cc29d737 (git): [rubygems/rubygems] Consistently use `:create` action when creating directories
It gives better errors.
https://github.com/rubygems/rubygems/commit/bedae080ef
deivid (David Rodríguez)
08:53 AM Revision 88b969cd (git): [rubygems/rubygems] Fix out of date spec description
https://github.com/rubygems/rubygems/commit/71fd896041 deivid (David Rodríguez)
08:52 AM Revision b843d4ee (git): [rubygems/rubygems] Fix running `bundler` (with a final `r`) in a `bundle exec` context
https://github.com/rubygems/rubygems/commit/ad95a1dfaa deivid (David Rodríguez)
08:52 AM Revision 4790ecc8 (git): [rubygems/rubygems] Do what the comment says, it's simpler
https://github.com/rubygems/rubygems/commit/0511d2c08d deivid (David Rodríguez)
08:52 AM Revision ffd51926 (git): [rubygems/rubygems] Remove the need for some bundler monkeypatches
https://github.com/rubygems/rubygems/commit/f530f8686d deivid (David Rodríguez)
08:52 AM Revision ad853544 (git): Clarify bundler inline’s `install` parameter
jeromedalbert (Jerome Dalbert)
07:57 AM Feature #15381: Let double splat call `to_h` implicitly
> I think that would be awesome. If I do `other_method(**model)` and that model is representable as a hash, passing it as keyword arguments is beautiful.
...until you passed it erroneously, and it was never meant to be, and the error ...
zverok (Victor Shepelev)
04:07 AM Revision 19747c1c (git): [ruby/ipaddr] Drop support for Ruby 2.3
https://github.com/ruby/ipaddr/commit/4685fca13d Taketo Takashima
03:31 AM Revision 0de8b533 (git): Bump github/codeql-action from 3.26.13 to 3.27.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.13 to 3.27.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.m...
dependabot[bot]
03:03 AM Bug #20807: String#gsub fails when called from string subclass with a block passed
Regexp.last_match and other regexp-related pseudo globals do not work across more than one stack frame. Since you override #gsub, they are set only inside MyString#gsub
You can confirm with this:
```ruby
def test(klass)
p klass
...
Dan0042 (Daniel DeLorme)
02:48 AM Revision 25adcddc (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
12:58 AM Revision e9ba6c2e (git): [ruby/error_highlight] Adjust truncation, add opt-out mechanism, rename methods, and prepare error highlighting to render on extremely small screens
https://github.com/ruby/error_highlight/commit/c565340958 karreiro (Guilherme Carreiro)
12:58 AM Revision e7c9dfb3 (git): [ruby/error_highlight] Handle very long lines with errors in the middle of the line
https://github.com/ruby/error_highlight/commit/0657bc1afa karreiro (Guilherme Carreiro)
12:58 AM Revision 5aa8b9e3 (git): [ruby/error_highlight] Handle very long lines
https://github.com/ruby/error_highlight/commit/383490a4b4 karreiro (Guilherme Carreiro)

10/22/2024

11:02 PM Bug #20767 (Closed): VM_ASSERT fails on clear_method_entry_by_id_in_class() under a specific situation
commit:a838f980f599d95ccf344157f7074e997af31f48 should have fixed this issue. alanwu (Alan Wu)
09:19 PM Bug #20796: Segmentation fault in rubyzip tests with ruby 3.4.0-preview2~659 e7cb70be4e on x86_64-darwin24
Though this is just a bug report, it's my first contribution to Ruby Core.
I'm excited to know some new words such as off-one-by bug, valgrind, miniruby, OP reports that were unfamiliar to me.
Thanks!
tikkss (Tsutomu Katsube)
12:18 AM Bug #20796 (Closed): Segmentation fault in rubyzip tests with ruby 3.4.0-preview2~659 e7cb70be4e on x86_64-darwin24
Great to hear, thank *you* very much. mame (Yusuke Endoh)
08:32 PM Revision b39b998a (git): [rubygems/rubygems] Remove patches for old TruffleRuby versions
https://github.com/rubygems/rubygems/commit/264c61eb8e deivid (David Rodríguez)
08:20 PM Feature #15381: Let double splat call `to_h` implicitly
> There are certainly backwards compatibility issues from changing `**` from calling `to_hash` to `to_h`.
What kind of backwards compatibility issues exactly? My idea was to call #to_hash and fall back to #to_h, that should ensure no ...
Dan0042 (Daniel DeLorme)
07:58 PM Feature #15381: Let double splat call `to_h` implicitly
There are certainly backwards compatibility issues from changing `**` from calling `to_hash` to `to_h`. I'm sympathetic to the argument that calling `to_h` fits better, as the conversion is explicit and not implicit, but the backwards c... jeremyevans0 (Jeremy Evans)
07:32 PM Feature #15381: Let double splat call `to_h` implicitly
> I don’t think it can be treated as “explicitly”
The `**` is right there in the code, written out caller-side, you can't get more "explicit" than that.
> ...
No we can't; as you know `+` is a method (I guess that would make `**` a...
Dan0042 (Daniel DeLorme)
06:37 PM Feature #15381: Let double splat call `to_h` implicitly
> `{}.merge(**obj)` => obj is explicitly splatted but conversion is done via #to_hash instead of #to_h. It makes no sense, as many many people have commented through the years.
I don’t think it can be treated as “explicitly” (invoking...
zverok (Victor Shepelev)
06:10 PM Feature #15381: Let double splat call `to_h` implicitly
`to_{t}` methods are for explicit type conversion, and `to_{type}` methods are for implicit type conversion.
`{}.merge(obj)` => obj is implicitly expected to be Hash, or converted via #to_hash
`{}.merge(obj.to_h)` => obj is explicitl...
Dan0042 (Daniel DeLorme)
06:12 AM Feature #15381: Let double splat call `to_h` implicitly
I believe that the general agreement is that short `to_{t}` methods (`to_s`, `to_i`, `to_h`, `to_a`) have a semantics of “have some {type} representation/can be converted to {type}", while long `to_{type}` ones have a meaning of “are kin... zverok (Victor Shepelev)
07:20 PM Revision da82b84b (git): [DOC] Tweaks for Array#inspect (#11935)
burdettelamar (Burdette Lamar)
07:11 PM Revision 00af6a3f (git): [DOC] Tweaks for Array#to_h
burdettelamar (Burdette Lamar)
06:01 PM Revision 0f3723c6 (git): Rewrite Numeric#dup and Numeric#+@ in Ruby (#11933)
k0kubun (Takashi Kokubun)
04:36 PM Revision 9cbf2f5f (git): [DOC] Tweaks for Array#take_while (#11930)
burdettelamar (Burdette Lamar)
04:35 PM Revision c837ae85 (git): [DOC] Tweaks for Array#take (#11929)
burdettelamar (Burdette Lamar)
03:30 PM Revision b41c65b5 (git): YJIT: Implement specialization for no-op `{Kernel,Numeric}#dup`
Type information in the context for no additional work!
This is the `if (special_object_p(obj)) return obj;` path in
rb_obj_dup() and for Numeric#dup, it's always the identity function.
alanwu (Alan Wu)
03:24 PM Revision 3a327e1c (git): [DOC] Tweaks for Array#to_a
burdettelamar (Burdette Lamar)
02:43 PM Revision e288604e (git): [ruby/reline] Use IO's encoding instead of Encoding.default_external
(https://github.com/ruby/reline/pull/765)
* use IO's encoding
* refactoring
* remove unused encoding params
* (for retriggering CI) remove unused encoding params
https://github.com/ruby/reline/commit/f09772adab
Wu
10:57 AM Bug #20809 (Open): Ripper fails to parse/tokenize nested heredocs within embexpr
In this example, Ripper wrongly concats `"s333\n"` and `"s4444"`.
~~~ruby
require 'ripper'
code1 = '<<HEREDOC1
s1
#{<<HEREDOC2}s333
s22
HEREDOC2
s4444#{55555}
HEREDOC1'
p Ripper.tokenize(code1)
# => ["<<HEREDOC1", "\n", "s...
tompng (tomoya ishida)
09:04 AM Revision 54065f3b (git): [rubygems/rubygems] Cleanup some specs after recent support drop
https://github.com/rubygems/rubygems/commit/9548aa6766 deivid (David Rodríguez)
08:42 AM Revision 7b16eb8c (git): [rubygems/rubygems] Change one `bundle check` spec to not touch the network
https://github.com/rubygems/rubygems/commit/f4d31c0a97 deivid (David Rodríguez)
06:30 AM Bug #20693 (Closed): Dir.tmpdir should perform a real access check before warning about writability
Merged in 7d254e4a2e16dd6275452a2a67b0fcd600cdc990 kjtsanaktsidis (KJ Tsanaktsidis)
06:27 AM Revision dcf3add9 (git): Delete reserve_stack code
This code was working around a bug in the Linux kernel. It was
previously possible for the kernel to place heap pages in a region where
the stack was allowed to grow into, and then therefore run out of usable
stack memory before RLIMIT_S...
kjtsanaktsidis (KJ Tsanaktsidis)
04:17 AM Revision 7d254e4a (git): Perform an actual access check in Dir.tmpdir for writability
At the moment, this code is looking at the stat output to determine if a
temp directory can be written to. However, just because the stat bits
say that a directory is writable, does not make it so; and, likewise,
the operating system may...
KJ Tsanaktsidis
01:51 AM Bug #20716: Different instance_method behavior in Ruby 2.7 and Ruby 3.x
Yes, thank you for the fix. natton (Tien Truong)
12:12 AM Bug #20808: Data#pretty_print doesn't handle private or remove attribute readers
The code in question is written by @osyo and committed by @nobu. Just FYI. mame (Yusuke Endoh)
 

Also available in: Atom