Project

General

Profile

Activity

From 01/06/2025 to 01/12/2025

01/12/2025

11:15 PM Bug #21030: Bug: #step with Range<ActiveSupport::Duration> behavior broken on Ruby 3.4.1
May I confirm this will be patched in Ruby 3.4.2? johnnyshields (Johnny Shields)
06:34 PM Bug #21030 (Closed): Bug: #step with Range<ActiveSupport::Duration> behavior broken on Ruby 3.4.1
Applied in changeset commit:git|f56f3eaae55cc6f8d9e79862ee73a9ffb53d6077.
----------
[Bug #21030] Fix step for non-numeric range
When the end points of an inclusive range equal, `Range#step` should
yields the element once.
nobu (Nobuyoshi Nakada)
08:23 AM Bug #21030: Bug: #step with Range<ActiveSupport::Duration> behavior broken on Ruby 3.4.1
Confirmed, looking into it. zverok (Victor Shepelev)
05:59 AM Bug #21030 (Closed): Bug: #step with Range<ActiveSupport::Duration> behavior broken on Ruby 3.4.1
Issue also filed at: https://github.com/rails/rails/issues/54199
### System configuration
**Rails version**: 7.1.5.1
**Ruby version**: 3.3.4 (works) vs 3.4.1 (broken)
### What's broken
Calling `#step` then `#to_a` on a `Range`...
johnnyshields (Johnny Shields)
06:54 PM Revision 566f9463 (git): [ruby/prism] Fix parser translator tSPACE tokens for percent arrays
Tests worked around this but the incompatibility is not hard to fix.
This fixes 17 token incompatibilies in tests here that were previously passing
https://github.com/ruby/prism/commit/101962526d
Earlopain (Earlopain _)
06:41 PM Revision 14b90984 (git): [ruby/prism] Frozen strings in the AST
https://github.com/ruby/prism/commit/8d9d429155 kddnewton (Kevin Newton)
06:34 PM Revision 48749afe (git): [ruby/prism] Fix parser translator ranges for mulltiline strings with multiline bytes
A rather silly issue with a rather simple fix.
The ranges already use the offset cache, this effectivly double-encoded them.
https://github.com/ruby/prism/commit/66b65634c0
Earlopain (Earlopain _)
06:34 PM Revision d0deec3e (git): [ruby/prism] Fix parser translator tokens for comment-only file
In https://github.com/ruby/prism/pull/3393 I made a mistake.
When there is no previous token, it wraps around to -1. Oops
Additionally, if a comment has no newline then the offset should be kept as is
https://github.com/ruby/prism/comm...
Earlopain (Earlopain _)
05:07 PM Revision f56f3eaa (git): [Bug #21030] Fix step for non-numeric range
When the end points of an inclusive range equal, `Range#step` should
yields the element once.
nobu (Nobuyoshi Nakada)
02:01 PM Revision d9e1a7cd (git): [Bug #21018] Fix for s390x
nobu (Nobuyoshi Nakada)
12:59 PM Revision 450d9dc8 (git): [ruby/irb] Group private methods together in `IRB::Context`
(https://github.com/ruby/irb/pull/1064)
This makes them easier to find and matches the convention of the codebase.
https://github.com/ruby/irb/commit/ce8fa6857c
st0012 (Stan Lo)
12:47 PM Revision 9f8defe8 (git): [ruby/irb] Drop ColorPrinter's workaround for BasicObject
(https://github.com/ruby/irb/pull/1051)
`pp` 0.6.0+ includes https://github.com/ruby/pp/pull/26 to handle BasicObject,
so we can drop the workaround.
https://github.com/ruby/irb/commit/08908d43c7
st0012 (Stan Lo)
10:48 AM Revision e2f1f7c5 (git): [Doc] Encourage use of encoding constants
Lots of documentation examples still use encoding APIs with encoding names
rather than encoding constants. I think it would be preferable to direct
users toward constants as it can help with auto-completion, static analysis
and such.
byroot (Jean Boussier)
08:20 AM Bug #21026: `def __FILE__.a; end` should be a syntax error
As far as I understand (though it is an intuitive understanding, not backed by looking into particular implementation), `__FILE__` and `__LINE__` are handled at the parsing stage, behaving in (almost) all situations like there was just a... zverok (Victor Shepelev)
07:27 AM Feature #20899: Reconsider adding `Array#find_map`
The Facets gem has this same feature as `find_yield`. In their implementation there's an optional first arg which is the fallback value if nothing is found.
https://github.com/rubyworks/facets/blob/main/lib/core/facets/enumerable/find_y...
johnnyshields (Johnny Shields)
04:53 AM Revision d9d08484 (git): [DOC] Fix the description of `rb_path_check`
c.f. #20971 nobu (Nobuyoshi Nakada)
02:58 AM Bug #21029 (Closed): Prism behavior for `defined? (;x)` differs
Prism has a different behavior for `(;expr)` when used in `defined?` predicate:
```console
% ./miniruby --parser=prism -e "p defined? (;x)"
nil
% ./miniruby --parser=parse.y -e "p defined? (;x)"
"expression"
```
Although not a...
qnighy (Masaki Hara)
12:49 AM Revision 723f31cf (git): [ruby/prism] Fix binary encoding for the parser translator
Skipping detecting the encoding is almost always right, just for binary it should actually happen.
A symbol containing escapes that are invalid
in utf-8 would fail to parse since symbols must be valid in the script encoding.
Additionall...
Earlopain (Earlopain _)
12:23 AM Bug #21027 (Closed): `not()` receiver should be `nil`
Applied in changeset commit:git|117d6e145a0270ab8fc9134403519ef13b9ebb24.
----------
[ruby/prism] Fix `not` receiver
`not foo` should be `!foo`
`not()` should be `!nil`
Fixes [Bug #21027]
https://github.com/ruby/prism/commit/871ed4b462
kddnewton (Kevin Newton)
12:09 AM Revision 8e56d9e4 (git): Update default gems list at 70022224b2627694cbbb30e819a6b1 [ci skip]
git[bot]
12:09 AM Revision 70022224 (git): [ruby/prism] Better comment token handling for the parser translator
There appear to be a bunch of rules, changing behaviour for
inline comments, multiple comments after another, etc.
This seems to line up with reality pretty closely, token differences for RuboCop tests go from 1129 to 619 which seems pr...
Earlopain (Earlopain _)
12:09 AM Revision 117d6e14 (git): [ruby/prism] Fix `not` receiver
`not foo` should be `!foo`
`not()` should be `!nil`
Fixes [Bug #21027]
https://github.com/ruby/prism/commit/871ed4b462
kddnewton (Kevin Newton)
12:09 AM Revision 9c962ea7 (git): [ruby/prism] Fix parser translator tokens for backslashes in single-quoted strings and word arrays
These are not line continuations. They either should be taken literally,
or allow the word array to contain the following whitespace (newlines in this case)
Before:
```
0...1: tSTRING_BEG => "'"
1...12: tSTRING_CONTENT => "foobar...
Earlopain (Earlopain _)
12:09 AM Revision 110461c5 (git): [ruby/prism] Implement more string token escaping in the parser translator
This leaves `\c` and `\M` escaping but I don't understand how these should even work yet. Maybe later.
https://github.com/ruby/prism/commit/13db3e8cb9
Earlopain (Earlopain _)
12:09 AM Revision 81079ebf (git): [ruby/prism] Import code samples for Ruby 3.3 from the parser gem
Slightly tweaking the import script becaues of backtrace format changes in Ruby 3.4
Most tests pass in all parsers, with only a handful of failures overall
https://github.com/ruby/prism/commit/9b5b785aa4
Earlopain (Earlopain _)
12:09 AM Revision ca81142e (git): [ruby/prism] [Bug #21010] Reject endless method definition of `[]=`
Fixes: https://bugs.ruby-lang.org/issues/20785
https://github.com/ruby/prism/commit/192960ce5d
ydah (Yudai Takada)
12:09 AM Revision 283037f7 (git): [ruby/prism] Better handle all kinds of multiline strings in the parser translator
This is a followup to #3373, where the implementation
was extracted
https://github.com/ruby/prism/commit/2637007929
Earlopain (Earlopain _)
12:09 AM Revision 80fe9a1c (git): [ruby/prism] Better handle multiline interpolated strings in the parser translator
Much of this logic should be shared between interpolated symbols and regexps.
It's also incorrect when the node contains a literal `\\n` (same as for plain string nodes at the moment)
https://github.com/ruby/prism/commit/561914f99b
Earlopain (Earlopain _)
12:09 AM Revision 9f38ee11 (git): [ruby/prism] Fix parser translator ast for empty regex
In that specific case, no string node is emitted
https://github.com/ruby/prism/commit/1166db13dd
Earlopain (Earlopain _)
12:09 AM Revision a234fd51 (git): [ruby/prism] Fix parser translator ast for regex with line continuation
Turns out, the vast majority of work was already done with handling the same for heredocs
I'm confident this should also apply to actual string nodes (there's even a todo for it) but
no tests change if I apply it there too, so I can't s...
Earlopain (Earlopain _)
12:09 AM Revision d1a70014 (git): [ruby/prism] Fix parser translator ast when using anonymous forwarding in blocks/lambda
Blocks and lambdas inherit anonymous arguments from the method they are a part of.
They themselves don't allow to introduce new anonymous arguments.
While you can write this:
```rb
def foo(*)
bar { |**| }
end
```
referecing the new par...
Earlopain (Earlopain _)
12:09 AM Revision 7cbaa3b9 (git): [ruby/prism] Fix an incompatibility with the parser translator
The offset cache contains an entry for each byte so it can't be accessed via the string length.
Adds tests for all variants except for this:
```
"fo
o" "ba
’"
```
For some reason, this still has the wrong offset.
https://github.com/ru...
Earlopain (Earlopain _)
12:09 AM Revision d597118b (git): [ruby/prism] Fallthrough fallback for unknown compilers
https://github.com/ruby/prism/commit/cc810b1e06 kddnewton (Kevin Newton)
12:09 AM Revision fa1427a6 (git): [ruby/prism] Enable implicit fall-through errors
https://github.com/ruby/prism/commit/03797b84d3 AMomchilov (Alexander Momchilov)
12:09 AM Revision b0e64fcd (git): [ruby/prism] Bump to v1.3.0
https://github.com/ruby/prism/commit/a679ee0e5c kddnewton (Kevin Newton)
12:09 AM Revision b79152fd (git): [ruby/prism] Support 3.5 for version option
https://github.com/ruby/prism/commit/6b6aa05bfb kddnewton (Kevin Newton)

01/11/2025

11:24 PM Feature #21028 (Open): Method for finding why an object isn't Ractor shareable
`Ractor.shareable?` is easy to use, but if it returns false I would like to be able to figure out what object is causing the data structure to _not_ be Ractor shareable.
The context is that I'm trying to make some complex data structu...
tenderlovemaking (Aaron Patterson)
10:49 PM Feature #21020: Sync sig directory for prism of default gem.
I'm fine with this if everyone else is. kddnewton (Kevin Newton)
09:42 PM Bug #21026: `def __FILE__.a; end` should be a syntax error
Interesting! I didn't realize that `__FILE__` will **always** (without frozen string literals) return a new instance. Of course `__LINE__` will always have a different values but the seemingly const-ness of `__FILE__` had me a bit tricked. Earlopain (Earlopain _)
07:49 PM Bug #21026: `def __FILE__.a; end` should be a syntax error
> It already doesn't seem to actually do anything
This is a bunch of technicalities... But I don’t think it doesn’t do anyting :)
As far as I understand, every `__FILE__` invocation in the source code produces a _new_ instance of a...
zverok (Victor Shepelev)
12:07 PM Bug #21026 (Closed): `def __FILE__.a; end` should be a syntax error
Constants like `__FILE__`, `__LINE__` and `__ENCODING__` are literals and as such you shouldn't be able to defined singleton methods on them.
It already doesn't seem to actually do anything:
```rb
def __FILE__.a
end
__FILE__.a #=>...
Earlopain (Earlopain _)
08:51 PM Feature #20757: Make rb_tracearg_(parameters|eval_script|instruction_sequence) public C-API
I've added the methods to debug.h and in my small test case it seemed to work without any problems. The PR is at https://github.com/ruby/ruby/pull/12553. Let me know if this is fine like this or if I should change anything! richardboehme (Richard Böhme)
08:38 PM Bug #21027 (Closed): `not()` receiver should be `nil`
`not` has a 0-argument mode, and the behavior differs from that of parse.y:
```
% RBENV_VERSION=3.4.0 ruby --parser=parse.y -e 'p not()'
true
% RBENV_VERSION=3.4.0 ruby --parser=prism -e 'p not()'
false
```
This is because Pri...
kddnewton (Kevin Newton)
02:03 PM Revision 76b620b3 (git): [ruby/irb] `IRB.conf[:SAVE_HISTORY]` should handle boolean values
(https://github.com/ruby/irb/pull/1062)
Although not documented, `IRB.conf[:SAVE_HISTORY]` used to accept boolean,
which now causes `NoMethodError` when used.
This commit changes the behavior to accept boolean values and
adds tests for...
st0012 (Stan Lo)
12:59 PM Revision 80d28785 (git): [ruby/irb] Print more actionable message when the exception may be
an IRB issue
(https://github.com/ruby/irb/pull/1061)
https://github.com/ruby/irb/commit/4d74d39261
st0012 (Stan Lo)
07:17 AM Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
ruby_3_2 commit:845763fdf370846938b86a062827b237313c924f merged revision(s) commit:b176d4f52e4af67654814dab3e9c5f4bf9170e54. nagachika (Tomoyuki Chikanaga)
07:17 AM Bug #20995: exception escapes block given to IO.popen("-") in child process
ruby_3_2 commit:f150d67b7d389eb88e0cd13694d3529895d55579 merged revision(s) commit:8034e9c3d001ca3dff124ab42972684eac8af2ae. nagachika (Tomoyuki Chikanaga)
07:16 AM Bug #20984: ENV.inspect is not encoding aware
ruby_3_2 commit:4e59c10646cf012d457da99ad258b0e6a3e42132 merged revision(s) commit:19c39e4cfaa467e69b9848c9c5496d7f50d39c7f, commit:d78ff6a767ca813ac5fa178dd7611f20a993c191. nagachika (Tomoyuki Chikanaga)
07:16 AM Bug #21024 (Closed): Ruby including <cstdbool> generates compilation warning with GCC 15, header is deprecated in C++17,
Applied in changeset commit:git|1b3037081ef9fc121b83e213d997a069acd5904b.
----------
[Bug #21024] <cstdbool> header is deprecated in C++17
nobu (Nobuyoshi Nakada)
03:24 AM Bug #21024: Ruby including <cstdbool> generates compilation warning with GCC 15, header is deprecated in C++17,
That patch will break C++-11 and C++-14.
https://github.com/ruby/ruby/pull/12551
nobu (Nobuyoshi Nakada)
06:32 AM Revision 845763fd (git): merge revision(s) b176d4f52e4af67654814dab3e9c5f4bf9170e54: [Backport #21008]
[Bug #21008] Normalize before sum to float
After switching to `Float`-mode when summing `Numeric` objects,
normalization for `Float` is still needed.
nagachika (Tomoyuki Chikanaga)
06:30 AM Revision f150d67b (git): merge revision(s) 8034e9c3d001ca3dff124ab42972684eac8af2ae: [Backport #20995]
[Bug #20995] Protect `IO.popen` block from exiting by exception nagachika (Tomoyuki Chikanaga)
06:28 AM Revision 4e59c106 (git): merge revision(s) 19c39e4cfaa467e69b9848c9c5496d7f50d39c7f, d78ff6a767ca813ac5fa178dd7611f20a993c191: [Backport #20984]
[Bug #20984] ENV.inspect should be encoding aware
[Bug #20984] Fix test with locale encoding
nagachika (Tomoyuki Chikanaga)
03:21 AM Revision 1b303708 (git): [Bug #21024] <cstdbool> header is deprecated in C++17
nobu (Nobuyoshi Nakada)
12:26 AM Feature #21015: Add in a `-g` flag, like `-s` but with a few more quality of life features
matz (Yukihiro Matsumoto) wrote in #note-9:
> I like the basic idea of this proposal. But, I am against:
> ...
Totally agree with this. It's a bit awkward, and I think removing it is a good idea. 100% on-board.
> * Interpreting option v...
sampersand2 (Sam Westerman)

01/10/2025

11:03 PM Misc #21025 (Closed): What's the default encoding of `String.new`?
Applied in changeset commit:git|cde065c32c8db34eaf2c6b8646a2d4a34e20a3ec.
----------
Clarify documentation for encoding of `String.new` without arguments
[Bug #21025]
deivid (David Rodríguez)
07:48 PM Misc #21025: What's the default encoding of `String.new`?
I created https://github.com/ruby/ruby/pull/12548 for this. deivid (David Rodríguez)
06:12 PM Misc #21025: What's the default encoding of `String.new`?
Cool, thanks for the info, I'll create a PR to improve the documentation. deivid (David Rodríguez)
05:22 PM Misc #21025: What's the default encoding of `String.new`?
It's just a documentation bug.
It's always BINARY for `String.new` without args.
Eregon (Benoit Daloze)
04:57 PM Misc #21025 (Closed): What's the default encoding of `String.new`?
In the documentation (https://docs.ruby-lang.org/en/3.4/encodings_rdoc.html#label-String+Encoding) I see a good explanation of default string encodings:
![](Captura%20de%20pantalla%202025-01-10%20a%20las%2017.53.06.png)
However, it...
deivid (David Rodríguez)
11:03 PM Revision 4d8eaa9e (git): YJIT: Rename send_iseq_forwarding->send_forwarding
It's in gen_send_general(), so nothing specifically to do with iseqs. alanwu (Alan Wu)
10:36 PM Revision cde065c3 (git): Clarify documentation for encoding of `String.new` without arguments
[Bug #21025] deivid (David Rodríguez)
09:39 PM Bug #20489 (Closed): Ractor behavior strange in ruby master
Applied in changeset commit:git|50c2c4bddee5a2c5edc0d9fc0f635befdfc4bacc.
----------
Make rb_vm_insns_count a thread local variable
`rb_vm_insns_count` is a global variable used for reporting YJIT
statistics. It is a counter that talli...
tenderlovemaking (Aaron Patterson)
03:47 AM Bug #20489: Ractor behavior strange in ruby master

> Unfortunately, it's still not as fast as tarai(1, 1):
This may cause by a native thread and ractor thread mapping setting. Set `RUBY_MAX_CPU` to a larger number, in my 12 physic core environment, result is as faster as tarai 1 1
nekoyama32767 (Jinsong Yu)
01:13 AM Bug #20489: Ractor behavior strange in ruby master
Ah I was running a non-yjit build. Good work guys, that's a weird bug for sure. The thread-local wouldn't work with ractors because native threads can run different ractors but if YJIT is disabled when you start a Ractor I don't see a pr... luke-gru (Luke Gruber)
09:39 PM Revision 50c2c4bd (git): Make rb_vm_insns_count a thread local variable
`rb_vm_insns_count` is a global variable used for reporting YJIT
statistics. It is a counter that tallies the number of interpreter
instructions that have been executed, this way we can approximate how
much time we're spending in YJIT co...
tenderlovemaking (Aaron Patterson)
09:29 PM Revision 039446f6 (git): [ruby/irb] Gracefully handle incorrect command aliases
(https://github.com/ruby/irb/pull/1059)
* Gracefully handle incorrect command aliases
Even if the aliased target is a helper method or does not exist, IRB
should not crash.
This commit warns users in such cases and treat the input as ...
st0012 (Stan Lo)
04:55 PM Bug #21024 (Closed): Ruby including <cstdbool> generates compilation warning with GCC 15, header is deprecated in C++17,
C++ compiler in GCC 15 now generates a warning when trying to include `<cstdbool>`.
This file is being included when compiling with C++ compiler from `include/ruby/internal/stdbool.h`.
In C++, true, false and bool are keywords so inc...
jprokop (Jarek Prokop)
04:22 PM Revision 4a2702da (git): Remove stale declaration for modular GC
nobu (Nobuyoshi Nakada)
04:01 PM Revision eb8f29c4 (git): [rubygems/rubygems] Fix test failure when running tests with ENV["EDITOR"] set
Can be reproduced, for example, with
```
bin/rspec spec/bundler/cli_spec.rb spec/other/cli_man_pages_spec.rb --order defined
```
https://github.com/rubygems/rubygems/commit/f57d199225
deivid (David Rodríguez)
03:59 PM Revision 8adc96b5 (git): [ruby/date] Skip tests failing on TruffleRuby
https://github.com/ruby/date/commit/d019ac8186 andrykonchin (Andrew Konchin)
03:27 PM Bug #21022 (Closed): The --with-modular-gc= option is cumbersome
peterzhu2118 (Peter Zhu)
03:27 PM Bug #21022 (Open): The --with-modular-gc= option is cumbersome
> That mentions 1-2 %. Assuming that the ultimate target is to be able to use different GC, which in theory might compensate for the performance hit, I think that could be sensible trade off
Right, I agree that it's a small performanc...
peterzhu2118 (Peter Zhu)
03:23 PM Bug #21022 (Closed): The --with-modular-gc= option is cumbersome
jeremyevans0 (Jeremy Evans)
09:59 AM Bug #21022: The --with-modular-gc= option is cumbersome
peterzhu2118 (Peter Zhu) wrote in #note-2:
> > What is the intended configuration?
> ...
That mentions 1-2 %. Assuming that the ultimate target is to be able to use different GC, which in theory might compensate for the performance hit...
vo.x (Vit Ondruch)
03:17 PM Revision cfee3d9f (git): Revert "[MMTk/CI] Skip Ractor btests with MMTk"
This reverts commit 58b4e249ed8d33fc78528bc77516d541c04d65f2.
The bug that it encountered was fixed in f76d40789d2c7185df26e925636827c06eda7157.
peterzhu2118 (Peter Zhu)
03:17 PM Revision f1049aa5 (git): Don't check for presence of `ENV['GITHUB_WORKFLOW']`
We already check whether `ENV['GITHUB_WORKFLOW']` is equal to `Compilations`,
so we don't need to check that it's not nil.
peterzhu2118 (Peter Zhu)
11:40 AM Bug #21021: "try to mark T_NONE object" with 3.4.1
We are not seeing the issue if we disable YJIT, but it could be a side effect. Benoit_Tigeot (Benoit Tigeot)
08:52 AM Bug #21021: "try to mark T_NONE object" with 3.4.1
Thanks for your answers.
tenderlovemaking (Aaron Patterson) wrote in #note-3:
> Are you able to get a core file or a backtrace from gdb? The bug is that some object has a T_NONE reference and is trying to mark that reference. We can't ...
Benoit_Tigeot (Benoit Tigeot)
11:34 AM Misc #21019: DevMeeting-2025-02-13
* [Bug #20998] rb_str_locktmp() changes flags of frozen strings and string literals (eregon)
* Current behavior on frozen strings is buggy (should not mutate the flags of possibly-shared frozen strings).
* What should be the behavi...
Eregon (Benoit Daloze)
11:13 AM Bug #21023: Unintentional ruby/spec capi extension build twice
```
❯ make -v
GNU Make 4.4.1
Built for aarch64-apple-darwin23.0.0
```
I used gnu-make provided by homebrew.
hsbt (Hiroshi SHIBATA)
08:42 AM Bug #21023 (Open): Unintentional ruby/spec capi extension build twice

I faced `building spec/ruby/optional/capi/ext/` build twice sometimes like:
```
❯ make -j
revision.h updated
generating arm64-darwin24-fake.rb
arm64-darwin24-fake.rb updated
rbconfig.rb unchanged
generating encdb.h
generati...
hsbt (Hiroshi SHIBATA)
07:57 AM Revision c7e5dbe1 (git): Bump up logger-1.6.5 for TruffleRuby
hsbt (Hiroshi SHIBATA)
07:00 AM Revision 1babff98 (git): Update bundled gems list as of 2025-01-10
git[bot]
06:02 AM Revision be6a81c8 (git): Removed benchmark, logger, ostruct and pstore from sync targets
hsbt (Hiroshi SHIBATA)
05:38 AM Revision e8015ce1 (git): [ruby/syntax_suggest] Resolve to lint failure of standardrb
https://github.com/ruby/syntax_suggest/commit/ce7b87184e hsbt (Hiroshi SHIBATA)
04:27 AM Revision a450e930 (git): Extract Benchmark.measure on assert_cpu_usage_low
hsbt (Hiroshi SHIBATA)
03:52 AM Bug #20480: Complie failure for unable to configure NET_LUID using msys2 mingw64-gcc
Finally, This configure problem is caused by a intel CPU instability problem (See `https://community.intel.com/t5/Processors/July-2024-Update-on-Instability-Reports-on-Intel-Core-13th-and/m-p/1617113`) and produce ICE. After change to a ... nekoyama32767 (Jinsong Yu)
02:10 AM Misc #21009 (Closed): Removed old archives from top-level of cache.ruby-lang.org.
No one objected to this proposal at #20949 .
I have been removed them and snapshot-master.tar.bz2 in https://cache.ruby-lang.org/pub/ruby/snapshot/.
hsbt (Hiroshi SHIBATA)
01:20 AM Revision 447f426b (git): Update bundled gems list at 503073581915761bb8b99a8e41d0a5 [ci skip]
git[bot]
01:19 AM Revision 50307358 (git): Use fixed commits for assert_in_out_err of pstore and logger
hsbt (Hiroshi SHIBATA)
01:19 AM Revision fcecef77 (git): Added logger dependency for Bundler's example
hsbt (Hiroshi SHIBATA)
01:19 AM Revision 31855506 (git): Make Pstore tests as optional
hsbt (Hiroshi SHIBATA)
01:19 AM Revision 1089282a (git): Make benchmark exapmles as optional
hsbt (Hiroshi SHIBATA)
01:19 AM Revision 3a1414a7 (git): Rewrite Benchmark to Tempfile on bootstraptest/test_ractor.rb
hsbt (Hiroshi SHIBATA)
01:19 AM Revision cda268d8 (git): Make logger as bundled gems
hsbt (Hiroshi SHIBATA)
01:19 AM Revision b0d3771b (git): Make benchmark as bundled gems
hsbt (Hiroshi SHIBATA)
01:19 AM Revision 0c3dca62 (git): Make pstore as bundled gems
hsbt (Hiroshi SHIBATA)

01/09/2025

10:33 PM Bug #21021: "try to mark T_NONE object" with 3.4.1
There seems to be a weakmap bug that's been around since at least November 2024 that could be responsible: http://ci.rvm.jp/results/trunk-O0@ruby-sp2-noble-docker/5392991
```
rb_obj_info_dump: @)��
/tmp/ruby/src/trunk-O0/test/ruby/tes...
alanwu (Alan Wu)
08:26 PM Bug #21021: "try to mark T_NONE object" with 3.4.1
Are you able to get a core file or a backtrace from gdb? The bug is that some object has a T_NONE reference and is trying to mark that reference. We can't really tell what object has a broken reference without a core file (or possibly a... tenderlovemaking (Aaron Patterson)
05:10 PM Bug #21021: "try to mark T_NONE object" with 3.4.1
Benoit_Tigeot (Benoit Tigeot) wrote in #note-1:
> I was wrong. We still have the issue. Here is a new crash dump : [https://gist.github.com/benoittgt/f0ad6476002b2a33c30070833e1d17c5](https://gist.github.com/benoittgt/f0ad6476002b2a33c3...
Benoit_Tigeot (Benoit Tigeot)
04:05 PM Bug #21021: "try to mark T_NONE object" with 3.4.1
Benoit_Tigeot (Benoit Tigeot) wrote:
> We migrated this part of the code to parallel->concurrent-ruby and we do not see the error yet again but I am a little bit worried we could see the issue again.
I was wrong. We still have the is...
Benoit_Tigeot (Benoit Tigeot)
03:43 PM Bug #21021 (Closed): "try to mark T_NONE object" with 3.4.1
Hello
We upgraded to 3.4.1 yesterday but we are seeing crash since then.
```
/bundle/ruby/3.4.0/gems/activejob-7.2.2.1/lib/active_job/enqueuing.rb:93: [BUG] try to mark T_NONE object
```
I saw the other issue related to ffi ge...
Benoit_Tigeot (Benoit Tigeot)
07:14 PM Bug #20489: Ractor behavior strange in ruby master
nekoyama32767 (Jinsong Yu) wrote in #note-10:
> tenderlovemaking (Aaron Patterson) wrote in #note-7:
> ...
Yes, I'm seeing the same thing on my x86 machine.
I tried [changing the counter to a thread local](https://github.com/ruby/ru...
tenderlovemaking (Aaron Patterson)
05:47 AM Bug #20489: Ractor behavior strange in ruby master
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> The regression in Ruby 3.3 came from [this commit](https://github.com/ruby/ruby/pull/8064). It seems like `rb_vm_insns_count` is still in the master branch, so it could be impactin...
nekoyama32767 (Jinsong Yu)
05:16 AM Bug #20489: Ractor behavior strange in ruby master
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> The regression in Ruby 3.3 came from [this commit](https://github.com/ruby/ruby/pull/8064). It seems like `rb_vm_insns_count` is still in the master branch, so it could be impactin...
nekoyama32767 (Jinsong Yu)
04:58 AM Bug #20489: Ractor behavior strange in ruby master
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> The regression in Ruby 3.3 came from [this commit](https://github.com/ruby/ruby/pull/8064). It seems like `rb_vm_insns_count` is still in the master branch, so it could be impacting...
nekoyama32767 (Jinsong Yu)
01:11 AM Bug #20489: Ractor behavior strange in ruby master
The regression in Ruby 3.3 came from [this commit](https://github.com/ruby/ruby/pull/8064). It seems like `rb_vm_insns_count` is still in the master branch, so it could be impacting speed on 3.4 / 3.5, but I'm not sure. 3.4 is faster t... tenderlovemaking (Aaron Patterson)
12:22 AM Bug #20489: Ractor behavior strange in ruby master
It looks like the VM loop is much slower in Ruby 3.5 than Ruby 3.2:
![instruments screenshot](https://github.com/user-attachments/assets/445f19ee-ce64-416e-ad72-cb6e2fc6d9a5)
tenderlovemaking (Aaron Patterson)
12:04 AM Bug #20489 (Assigned): Ractor behavior strange in ruby master
Sorry, I'm totally wrong. I misread the reproduction steps. I can reproduce this problem.
The way I tested is with this command on different Ruby tags:
`hyperfine './miniruby -v ../test.rb 1 1' './miniruby -v ../test.rb 8 8'`
...
tenderlovemaking (Aaron Patterson)
07:08 PM Revision f76d4078 (git): [ruby/mmtk] Enable UNIQUE_OBJECT_ENQUEUING in MMTk
UNIQUE_OBJECT_ENQUEUING guarantees that object marking is atomic so that
an object cannot be marked more than once.
https://github.com/ruby/mmtk/commit/2f97fd8207
peterzhu2118 (Peter Zhu)
07:08 PM Revision 4ce82f1c (git): [ruby/mmtk] Bump mmtk-core to
https://github.com/ruby/mmtk/commit/68bf1b638263
https://github.com/ruby/mmtk/commit/ba1ec69bf6
peterzhu2118 (Peter Zhu)
06:58 PM Feature #8751 (Closed): Add offsets to method#source_location
tenderlovemaking (Aaron Patterson)
06:31 PM Feature #8751: Add offsets to method#source_location
Eregon (Benoit Daloze) wrote in #note-7:
> In light of end line and column information being added in #6012 do you think there is still a need for byte offsets?
Sure, this is fine. Feel free to close issue.
rocky (Rocky Bernstein)
02:33 PM Feature #8751: Add offsets to method#source_location
In light of end line and column information being added in #6012 do you think there is still a need for byte offsets? Eregon (Benoit Daloze)
06:13 PM Revision d96cc52e (git): [rubygems/rubygems] Add credentials file path to "gem env".
There are 3 possible locations:
- $HOME/.gem/credentials
- $XDG_DATA_HOME/gem/credentials
- $HOME/.local/share/gem/credentials
https://github.com/rubygems/rubygems/commit/c51756b96e
Ellen Marie Dash
05:50 PM Bug #21022: The --with-modular-gc= option is cumbersome
> What is the intended configuration?
We realize that this feature is currently cumbersome to use as it requires a compile time option, an environment variable, and a built GC library. We need the compile time option as there is a per...
peterzhu2118 (Peter Zhu)
04:34 PM Bug #21022 (Closed): The --with-modular-gc= option is cumbersome
Just experimenting a bit with the `--with-modular-gc=` if it is worth of enabling in Fedora, but I somehow cannot wrap my head around that. What is the intended configuration?
From Fedora POV, we have Ruby installed somewhere in `/usr...
vo.x (Vit Ondruch)
05:42 PM Feature #20971: Deprecate `rb_path_check`
PR https://github.com/ruby/ruby/pull/12542 Earlopain (Earlopain _)
09:03 AM Feature #20971: Deprecate `rb_path_check`
As a UNIX user from ancient time, I feel a world writable directory is too dangerous to allow. But if everyone is OK to accept the new situation (especially with virtual environments), I don't strongly object.
Matz.
matz (Yukihiro Matsumoto)
05:34 PM Revision 2da91080 (git): [ruby/mmtk] Fix libmmtk_ruby.a building in extconf.rb
Since libmmtk_ruby.a was a PHONY target, it caused the shared object to
not be rebuilt even though libmmtk_ruby.a was updated.
https://github.com/ruby/mmtk/commit/076f0a97a6
peterzhu2118 (Peter Zhu)
05:00 PM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
I prefer the noop solution, as it makes it a much easier to use API. But no strong opinion. byroot (Jean Boussier)
04:14 PM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
@nobu @byroot So do you think rb_str_locktmp() should noop on frozen strings (since they can't change anyway), or it should raise because the usage seems somewhat dubious?
I'm fine with either, I'd just like a decision so we can do the ...
Eregon (Benoit Daloze)
03:55 PM Feature #6012: Proc#source_location also return the column
mame (Yusuke Endoh) wrote in #note-25:
> Matz was negative neither on adding a new class like Ruby::CodeLocation for this purpose
Any idea why? Because it seems like the "obviously correct" design so I'm curious why it was decided ag...
Dan0042 (Daniel DeLorme)
02:30 PM Feature #6012: Proc#source_location also return the column
Great to see this was accepted and even already implemented! (thanks @nobu!)
Byte offsets would be mostly for performance ("character" columns in multibyte files can be expensive to compute) and convenience (e.g. read the code at the ...
Eregon (Benoit Daloze)
01:21 PM Feature #6012 (Closed): Proc#source_location also return the column
Applied in changeset commit:git|073c4e1cc712064e626914fa4a5a8061f903a637.
----------
[Feature #6012] Extend `source_location` for end position and columns
nobu (Nobuyoshi Nakada)
11:51 AM Feature #6012: Proc#source_location also return the column
This was discussed at the October 2024 dev meeting and @matz approved `source_location` to return `[path, start_line, start_column, end_line, end_column]`.
https://github.com/ruby/dev-meeting-log/blob/28e0f45f334b31e60c7e07d25b6b6cb36...
mame (Yusuke Endoh)
11:26 AM Feature #6012: Proc#source_location also return the column
I'm not sure about attributes and `Binding#source_location`.
https://github.com/ruby/ruby/pull/12539
nobu (Nobuyoshi Nakada)
03:41 PM Revision 5fab31b1 (git): Enable riscv64 coroutine on OpenBSD/riscv64
jeremyevans (Jeremy Evans)
03:21 PM Revision 5045c666 (git): [DOC] Use Hash inspect without hash-rocket in Hash documentation (#12540)
Co-authored-by: tomoya ishida <[email protected]> p8 (Petrik de Heus)
03:07 PM Revision d8a21592 (git): coroutine/ppc64le: fix conditional registers got clobbered unexpectedly
Now we also save the special cr registers during the fiber switching liushuyu (shuyu liu)
02:49 PM Feature #21020 (Feedback): Sync sig directory for prism of default gem.
Currently, the type signatures (RBS) for the default gem is not available.
**Prism** is the only default gem with type signatures, but this number is expected to increase in the future.
As a first step to resolving this issue, I prop...
ksss (Yuki Kurihara)
02:36 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
The original proposal has been accepted (adding end line and column information), see https://bugs.ruby-lang.org/issues/6012#note-25
I guess it makes sense to keep this open until `Prism.node_for` or similar is added though.
Eregon (Benoit Daloze)
02:21 PM Feature #20925: Allow boolean operators at beginning of line to continue previous line
It's the same thing for method calls right?
```ruby
a = 1
.to_s
```
It changes the RHS of assignment to `1.to_s`
A boolean operators on the second line is consistent with that so I don't see a problem, since there's no backward inc...
Dan0042 (Daniel DeLorme)
06:48 AM Feature #20925: Allow boolean operators at beginning of line to continue previous line
Dan0042 (Daniel DeLorme) wrote in #note-8:
> a = b
> ...
Currently the first line in the former is complete code.
I mean that the second line will change the RHS to `b && c`.
nobu (Nobuyoshi Nakada)
12:03 PM Bug #20965: `it` vs `binding.local_variables`
We discussed this at the dev meeting. The above behavior of `p binding.local_variable_get(:_1)` is considered a bug.
Neither numbered parameters nor “it” should be considered as local variables. They should not be included in `binding#l...
mame (Yusuke Endoh)
11:52 AM Misc #21019 (Closed): DevMeeting-2025-02-13
# The next dev meeting
**Date: 2025/02/13 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-02-13.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t...
mame (Yusuke Endoh)
11:52 AM Misc #20949 (Closed): DevMeeting-2025-01-09
mame (Yusuke Endoh)
11:42 AM Bug #20980 (Closed): Range#size new TypeError vs semi-open ranges
The current behavior is intended. In principle, `#size` should return how many times `#each` will call a given block. (It could return nil as unknown.) Since beginless range does not respond to `#each`, it is now natural for `#size` to r... mame (Yusuke Endoh)
11:36 AM Bug #20974: Required and optional anonymous parameter show differently in Proc#parameters
Discussed at the dev meeting. @matz said that it should return `[[:opt]]` instead of `[[:opt, nil]]`. mame (Yusuke Endoh)
11:35 AM Feature #20953: Array#fetch_values vs #values_at protocols
Discussed at the dev meeting. @matz liked to align the behavior of Array#fetch_values with Array#values_at here in this case. So a Range should be expanded. mame (Yusuke Endoh)
11:33 AM Bug #20920: When loading a file, __FILE__ gets relative paths expanded only when they start with "./"
Discussed at the dev meeting. @matz suggested that we try modifying it so that only the `load "foo.rb"` case is a full path, and leave the other cases as is.
```
$ ruby foo.rb
foo.rb # This should be kept
$ ruby ./foo.rb
./foo...
mame (Yusuke Endoh)
11:26 AM Feature #20987: Add dbg - minimal debugging helper
This proposal was discussed in the dev meeting.
@matz said that, while adding a new method or changing the default behavior of `Kernel#p` is unacceptable, some kind of switch could be considered to make `Kernel#p` output the filename....
mame (Yusuke Endoh)
11:21 AM Revision 073c4e1c (git): [Feature #6012] Extend `source_location` for end position and columns
nobu (Nobuyoshi Nakada)
10:55 AM Bug #21018 (Closed): Show invalid command line option more properly
Applied in changeset commit:git|dfe6b7c02efa3bc2f5426eb64107ac0ac45a66a4.
----------
[Bug #21018] Show invalid command line option more properly
nobu (Nobuyoshi Nakada)
10:26 AM Revision dfe6b7c0 (git): [Bug #21018] Show invalid command line option more properly
nobu (Nobuyoshi Nakada)
10:24 AM Revision d44a41d8 (git): Add `rb_node_get_type` for debuggers
nobu (Nobuyoshi Nakada)
10:14 AM Feature #21015: Add in a `-g` flag, like `-s` but with a few more quality of life features
I like the basic idea of this proposal. But, I am against:
* `-g` option name. `-s` is relatively unpopular. Even with the proposed improvement, this is kinda old-fashioned way to parse command-line options. I don't want to consume pr...
matz (Yukihiro Matsumoto)
09:24 AM Revision 6069e8fe (git): Refactor for loop handling to simplify do keyword location assignment
ydah (Yudai Takada)
09:24 AM Revision 7790aa89 (git): Use Named Reference
ydah (Yudai Takada)
09:24 AM Revision c7213011 (git): Implement FOR NODE locations
The following Location information has been added This is the information required for parse.y to be a universal parser:
```
❯ ruby --parser=prism --dump=parsetree -e "for a in b do end"
@ ProgramNode (location: (1,0)-(1,17))
+-- locals...
ydah (Yudai Takada)
04:53 AM Revision 84155524 (git): [DOC] Show `NONE` within `Measure` namespace (#12274)
Keep `NONE` within `Measure` shan (Shannon Skipper)
04:22 AM Feature #20993 (Rejected): Allow `class <constant-path> = <expression>` syntax
This is a too trivial issue to add new syntax. I suggest the following (I know the difference, but it works OK, doesn't it?)
```ruby
MyStruct = Struct.new(:foo, :bar)
class MyStruct
...
end
# or
class MyStruct < Struct.new...
matz (Yukihiro Matsumoto)
12:47 AM Bug #20997 (Closed): YJIT panic assertion `left == right` failed: leave instruction expects stack size 1, but was: 2
Applied in changeset commit:git|dd80d9b089e35729d585bae2f8866c845c48f3b7.
----------
YJIT: Filter `&` calls from specialized C method codegen
Evident with the crash reported in [Bug #20997], the C replacement
codegen functions aren't a...
alanwu (Alan Wu)
12:41 AM Bug #20997: YJIT panic assertion `left == right` failed: leave instruction expects stack size 1, but was: 2
Thanks for the report! Everything being available rubygems helped with diagnosis. A fix for this should land soon-ish.
For backporters: The underlying issue is present on all versions since 3.2, but the set of methods that trigger the...
alanwu (Alan Wu)
12:47 AM Revision dd80d9b0 (git): YJIT: Filter `&` calls from specialized C method codegen
Evident with the crash reported in [Bug #20997], the C replacement
codegen functions aren't authored to handle block arguments (nor
should they because the extra code from the complexity defeats
optimization). Filter sites with VM_CALL_A...
alanwu (Alan Wu)

01/08/2025

11:27 PM Bug #20489 (Feedback): Ractor behavior strange in ruby master
I also can't seem to reproduce this:
```
[aaron@tc-lan-adapter ~/g/ruby (master)]$ time ruby -v test.rb 8 8
ruby 3.3.4 (2024-07-16 revision 425e468d25) [arm64-darwin23]
[0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8]
test...
tenderlovemaking (Aaron Patterson)
10:01 PM Bug #20489: Ractor behavior strange in ruby master
For me the runtime goes up a lot when I increase # of ractors when `VM_CHECK_MODE > 0`, but in non-debug mode it runs well. Also, right now the native thread # used for non-main ractors is capped at 8 because we don't actually probe the ... luke-gru (Luke Gruber)
08:42 PM Revision 96f23306 (git): [ruby/prism] Revert "Reject pattern match with unexpected double splat inside array"
https://github.com/ruby/prism/commit/51e7c84124 kddnewton (Kevin Newton)
08:36 PM Revision c4534c9f (git): [ruby/prism] Handle escapes in named capture names
https://github.com/ruby/prism/commit/b4b7a69ce7 kddnewton (Kevin Newton)
06:50 PM Misc #20949: DevMeeting-2025-01-09
* [Feature #21015] Add in a `-g` flag, like `-s` but with a few more quality of life features (sampersand2)
* There's a hole in ruby for very simple argument processing to very short scripts (<=10 lines.)
* The `-s` flag somewhat f...
sampersand2 (Sam Westerman)
05:33 PM Revision 36b6625b (git): Refactor `parse_isalnum` and `parse_isxdigit` to use macro
ydah (Yudai Takada)
05:24 PM Bug #21012 (Closed): Compiling `a['a','b'],=1` with parse.y fails
Applied in changeset commit:git|e0d600ec190c64aff76cfcbd6009cffb927da166.
----------
Avoid opt_aset_with optimization inside multiple assignment
Previously, since the opt_aset_with optimization was introduced,
use of the opt_aset_with ...
jeremyevans (Jeremy Evans)
01:38 AM Bug #21012: Compiling `a['a','b'],=1` with parse.y fails
I've submitted a PR that should fix this: https://github.com/ruby/ruby/pull/12528 jeremyevans0 (Jeremy Evans)
05:23 PM Revision 500a8775 (git): [ruby/prism] Reject pattern match with unexpected double splat inside array
`a => [-2**b]` should be SyntaxError
Fixes: https://github.com/ruby/prism/issues/3381
https://github.com/ruby/prism/commit/ae8e83b389
ydah (Yudai Takada)
05:22 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Eregon (Benoit Daloze) wrote in #note-14:
> Maybe CRuby does not currently preserve the information of end line and start/end column for procs and methods?
I think we do, but I can investigate. IIRC it's on the InstructionSequence o...
tenderlovemaking (Aaron Patterson)
02:15 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Eregon (Benoit Daloze) wrote in #note-3:
> If it's a new method, I think we should return a "code location" object (could be `Ruby::CodeLocation` or `Ruby::Location` or `Ruby::SourceLocation` or so) and have the following methods (inspi...
Dan0042 (Daniel DeLorme)
10:24 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
It's very important that this new feature does not expect users to use `RubyVM::InstructionSequence` or anything under `RubyVM` since `RubyVM` is CRuby-only.
The feature itself is possible on any Ruby implementation.
So something like `...
Eregon (Benoit Daloze)
04:55 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
mame (Yusuke Endoh) wrote in #note-12:
> tenderlovemaking (Aaron Patterson) wrote in #note-11:
> ...
I agree. The problem is that `RubyVM::AST` is built in to Ruby, so it has access to `rb_iseq_t` members. Prism cannot access fields o...
tenderlovemaking (Aaron Patterson)
01:24 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
> I think you are proposing adding the .node_for implementation to Prism?
Yes.
> ...
`Prism.node_for` is my proposal, but the others are not my proposal but what Prism already provides.
```ruby
require "prism"
node = Prism.pa...
mame (Yusuke Endoh)
12:49 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Also just to be clear, I don't think the code I pasted above is _nice_ code, but it does work after the Prism bug is addressed.
In particular this line is pretty heavy:
```ruby
node_id = iseq.to_a[4][:node_id]
```
I think we s...
tenderlovemaking (Aaron Patterson)
12:40 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
It seems like a very similar solution to what @mame is proposing was merged at one point as Feature #14836. It seems `RubyVM::AST` doesn't exist anymore, but it should be possible to do something similar.
For example, this code _shou...
tenderlovemaking (Aaron Patterson)
04:49 PM Revision e0d600ec (git): Avoid opt_aset_with optimization inside multiple assignment
Previously, since the opt_aset_with optimization was introduced,
use of the opt_aset_with optimization inside multiple assignment
would result in a segfault or incorrect instructions.
Fixes [Bug #21012]
Co-authored-by: Nobuyoshi Nakada...
jeremyevans (Jeremy Evans)
04:17 PM Revision e7281700 (git): [ruby/rdoc] Finalize RDoc::Options before calling
RDoc::RDoc#parse_files
(https://github.com/ruby/rdoc/pull/1274)
Commit https://github.com/ruby/rdoc/commit/6cf6e1647b97, which went to v6.5.0, changed `RDoc::Options#parse`
to not call `#finish` in it. While the commit adjusted other ca...
rhenium (Kazuki Yamaguchi)
02:36 PM Feature #21000: A way to avoid loading constant required by a type check
Eregon (Benoit Daloze) wrote in #note-12:
> Maybe a new method or kwarg to `const_get` which has some special behavior regarding autoload (to not trigger them)?
That sounds good to me. What about `Object.const_dig(:JSON, :JSON_LOADED...
Dan0042 (Daniel DeLorme)
09:55 AM Feature #21000: A way to avoid loading constant required by a type check
IMO the pattern is not frequent enough to justify adding new syntax for this or breaking compatibility.
In https://pastebin.com/VGfjRWNu many cases are actually not classes, e.g. `defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED`, ...
Eregon (Benoit Daloze)
01:46 AM Feature #21000: A way to avoid loading constant required by a type check
If you just want to avoid repetition and don't care autoload, I found a good (and magical) way to do it.
```ruby
class TrueClass
def true?
end
end
if defined?(obj.is_a?(NameSpace::ClassName).true?)
# obj is a NameSpace::...
mame (Yusuke Endoh)
02:11 PM Revision 62a15280 (git): Pass allocation size to rb_imemo_new
This would allow imemo to take advantage of VWA and allocate sizes larger
than RVALUE (40 bytes).
peterzhu2118 (Peter Zhu)
12:35 PM Bug #21018 (Closed): Show invalid command line option more properly
Currently the invalid command line option character is printed as-is.
This makes the error message confusing sometimes.
```console
$ ruby -$'\rx'
(-h will show valid options) (RuntimeError)
$ ruby -$'\U1f608'
ruby: invalid ...
nobu (Nobuyoshi Nakada)
09:41 AM Bug #21017 (Closed): `--with-parser=parse.y` configure option does not work
Applied in changeset commit:git|051af9529b03c11aff8f6a09522c69983e3a9d72.
----------
[Bug #21017] Fix `--with-parser` configure option
nobu (Nobuyoshi Nakada)
08:15 AM Bug #21017 (Closed): `--with-parser=parse.y` configure option does not work
nobu (Nobuyoshi Nakada)
08:26 AM Revision 051af952 (git): [Bug #21017] Fix `--with-parser` configure option
nobu (Nobuyoshi Nakada)
08:12 AM Revision 3c3bde64 (git): Update bundled gems list at ad5fa24e84be97212ef2d876308602 [ci skip]
git[bot]
08:12 AM Revision ad5fa24e (git): Skip examples related with OpenStruct in ruby/spec
hsbt (Hiroshi SHIBATA)
08:12 AM Revision a4528f60 (git): Omit Psych_Unit_Tests if ostruct is not available
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 599a0601 (git): Switch to use ostruct to open3 with suggestion test
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 9f5ca633 (git): Refactor to omit JSON::GenericObject tests
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 6bff923d (git): Rewrite OpenStruct to dummy response class
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 4da545dd (git): Use erb instead of ostruct for test_frozen_loaded_features
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 574bfd28 (git): Update documents for ostruct
hsbt (Hiroshi SHIBATA)
08:12 AM Revision adb4029b (git): Removed logger from stub data
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 32fb364d (git): Replace target list with stub constants at example of bundled_gems.rb
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 5f4be3ad (git): Make ostruct as bundled gems
hsbt (Hiroshi SHIBATA)
08:12 AM Revision d722bdcf (git): Convert ostruct to openstruct
hsbt (Hiroshi SHIBATA)
07:56 AM Misc #21009: Removed old archives from top-level of cache.ruby-lang.org.
I think we can remove `snapshot-master.tar.bz2` in <https://cache.ruby-lang.org/pub/ruby/snapshot/> too.
`snapshot-ruby_2_*` and `snapshot-ruby_3_0.*` may need considerations.
(They might have included changes after last release.)
znz (Kazuhiro NISHIYAMA)
06:13 AM Feature #21015: Add in a `-g` flag, like `-s` but with a few more quality of life features
For the record, I love this and want it very badly.
I advocated for `-ss` to mean "an extension of `-s`", much like some CLIs do `-vv` to mean "more verbose". This would mean "more switches"... Since `sflag` is already an integer and ...
zenspider (Ryan Davis)
02:22 AM Feature #21015: Add in a `-g` flag, like `-s` but with a few more quality of life features
sampersand2 (Sam Westerman) wrote:
> # Prior art
> ...
Inversion. Ruby borrowed it from Perl.
nobu (Nobuyoshi Nakada)
01:50 AM Feature #21015 (Open): Add in a `-g` flag, like `-s` but with a few more quality of life features
Add in a `-g` flag, like `-s` but with a few more QOL features
## TL;DR
([PR](https://github.com/ruby/ruby/pull/12526).)
Ruby's `-s` flag has quite a few shortfalls that make it difficult to use when writing scripts . A new `-g` f...
sampersand2 (Sam Westerman)
05:13 AM Bug #21011 (Closed): Constant massign segfaults in parse.y with shareable_constant_value: experimental_everything
Applied in changeset commit:git|b81db531b24a6824bf5b89d8460baed5d5418835.
----------
[Bug #21011] `nd_value` is NULL in massign
nobu (Nobuyoshi Nakada)
02:52 AM Bug #21011: Constant massign segfaults in parse.y with shareable_constant_value: experimental_everything
Even with prism:
```ruby
# shareable_constant_value: experimental_everything
A, = ""
p A.frozen? #=> false
```
This `A` should be frozen?
Furthermore:
```ruby
# shareable_constant_value: experimental_everything
A, a = "A"...
nobu (Nobuyoshi Nakada)
05:11 AM Revision 3e6f5ead (git): Reapply "Suppress WIN32OLE deprecation warnings for the time being"
Revert the part of commit 10917c5cc026f839a3dcd072b6e274eed211d0f7,
"Update to ruby/spec@18032a7", that discarded the previous commit.
nobu (Nobuyoshi Nakada)
04:55 AM Bug #20992 (Closed): `eval(ascii_encoded_code)` raises EncodingError when multibyte local variable exists
Applied in changeset commit:git|1a06bee027d5c5b65ed0aaee76ee0040554d4efd.
----------
Do not intern invalid symbols in eval parse
When the inner code cannot represent the name of the locals in the
outer code, do not bother putting them ...
kddnewton (Kevin Newton)
04:26 AM Revision b81db531 (git): [Bug #21011] `nd_value` is NULL in massign
nobu (Nobuyoshi Nakada)
03:30 AM Revision 1a06bee0 (git): Do not intern invalid symbols in eval parse
When the inner code cannot represent the name of the locals in the
outer code, do not bother putting them into the constant pool as
they will not be referenced.
Fixes [Bug #20992]
Co-authored-by: Nobuyoshi Nakada <[email protected]>
kddnewton (Kevin Newton)
03:11 AM Bug #21016: What should massign with `shareable_constant_value: experimental_everything` freeze?
Yeah we found this when we were building prism (https://bugs.ruby-lang.org/issues/20340). I don't know what the expected behavior here is. kddnewton (Kevin Newton)
02:56 AM Bug #21016 (Closed): What should massign with `shareable_constant_value: experimental_everything` freeze?
Derived from #21011.
Even with prism:
```ruby
# shareable_constant_value: experimental_everything
A, = ""
p A.frozen? #=> false
```
This `A` should be frozen?
Furthermore:
```ruby
# shareable_constant_value: experimenta...
nobu (Nobuyoshi Nakada)
02:55 AM Revision 27c9ccb3 (git): Also stub-out with directry using with test script or -e option
hsbt (Hiroshi SHIBATA)
02:55 AM Revision 4a02a72c (git): Dont't use stub constants like LIBDIR in bundled_gems.rb
hsbt (Hiroshi SHIBATA)
02:55 AM Revision aaf36f4f (git): Use heredoc to script runner for another ruby process
hsbt (Hiroshi SHIBATA)
01:48 AM Revision 18f756e4 (git): Remove unnecessary semantic actions
If you don’t specify an action for a rule, Lrama supplies a default: `$$ = $1`. ydah (Yudai Takada)
01:46 AM Revision 76759003 (git): Introduce macro for creating child iseqs with callbacks
Use macro like `NEW_ISEQ` and `NEW_CHILD_ISEQ`. ydah (Yudai Takada)
01:08 AM Bug #21014 (Closed): Prism doesn't set node_id on iseqs correctly
Applied in changeset commit:git|63723c8d5908569918fb27e070ae5bc9de33c8bd.
----------
Correctly set node_id on iseq location
The iseq location object has a slot for node ids. parse.y was correctly
populating that field but Prism was no...
tenderlovemaking (Aaron Patterson)
12:36 AM Bug #21014: Prism doesn't set node_id on iseqs correctly
Fix sent here: https://github.com/ruby/ruby/pull/12527 tenderlovemaking (Aaron Patterson)
12:35 AM Bug #21014 (Closed): Prism doesn't set node_id on iseqs correctly
Given this code:
```ruby
f = proc { <<END }
heredoc
END
iseq = RubyVM::InstructionSequence.of(f)
p iseq.to_a[4][:node_id]
```
Output on parse.y:
```
$ ./miniruby --parser=parse.y test.rb
3
```
Output on Prism:
...
tenderlovemaking (Aaron Patterson)
01:08 AM Revision 63723c8d (git): Correctly set node_id on iseq location
The iseq location object has a slot for node ids. parse.y was correctly
populating that field but Prism was not. This commit populates the field
with the ast node id for that iseq
[Bug #21014]
tenderlovemaking (Aaron Patterson)
12:36 AM Bug #21010 (Closed): Endless method definition of `[]=` is SyntaxError in parse.y but allowed in Prism
nobu (Nobuyoshi Nakada)
12:00 AM Bug #21013 (Closed): Backport request for YJIT fix for `yield` with keyword arguments
GitHub PR: https://github.com/ruby/ruby/pull/12525
The patch applies cleanly.
Programs like the following used to crash when run with YJIT:
```ruby
def a = yield(x: 0)
1000.times { a { |x:| x } }
```
alanwu (Alan Wu)

01/07/2025

10:17 PM Revision 4a78d740 (git): [ruby/mmtk] Remove unused Ruby SHA reference in Cargo.toml
https://github.com/ruby/mmtk/commit/02b9439ea6 peterzhu2118 (Peter Zhu)
08:28 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
> But if we decide with returning a new class, instead of just retunring a longer array, I think the better API would be another method entirely.
Yes, I agree with that. `caller` and `caller_location` are also different methods. I don...
Earlopain (Earlopain _)
08:04 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
> Ugh, yes. What about [keyword argument] instead?
I think it may be a bit much.
But if we decide with returning a new class, instead of just retunring a longer array, I think the better API would be another method entirely.
Per...
byroot (Jean Boussier)
03:23 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
**Yusuke**: I went hunting for the `Prism.node_for` method/documentation but couldn't find it. If I understand you correctly, I think you are proposing adding the `.node_for` implementation to Prism? If so, I like the detailed informatio... bkuhlmann (Brooke Kuhlmann)
11:12 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
> I think adding end line and start/end columns is a straightforward and compatible extension of source_location.
I fear it may break code that splats the array, e.g.:
```ruby
some_method(*proc.source_location)
```
So perhaps ...
byroot (Jean Boussier)
08:51 AM Feature #21005: Update the source location method to include line start/stop and column start/stop details
I read the use case for #20999.
In short, by the following DSL,
```ruby
class Demo
include Initable[[:key, :default, proc { Object.new }]]
end
```
you want to generate the following code string, right?
```ruby
def init...
mame (Yusuke Endoh)
08:15 PM Bug #21012: Compiling `a['a','b'],=1` with parse.y fails
From testing some historical versions on my system:
For: `a['a','b'],=1`
* Ruby 1.9-2.5: No segfault, looks to be correct instructions
* Ruby 2.6-3.1: Segfault
* Ruby 3.2: No segfault, but incorrect instructions
* Ruby 3.3-3.4: ...
jeremyevans0 (Jeremy Evans)
06:43 PM Bug #21012 (Closed): Compiling `a['a','b'],=1` with parse.y fails
Compiling this code with parse.y fails with segmentation fault.
~~~ruby
a['a','b'],=1
~~~
Compiling `a['a',x],=1` generates instruction sequence that wrong contains `opt_aset_with`.
~~~
$ ruby --parser=parse.y --dump=insn -e "a...
tompng (tomoya ishida)
07:35 PM Revision ad96c5a7 (git): [ruby/prism] Throw syntax error for endless method with `[]=`
Prism shoudld throw a syntax error for endless methods when the method
name uses brackets. Previously it would not. This matches the behavior
of parse.y.
Fixes https://bugs.ruby-lang.org/issues/21010
https://github.com/ruby/prism/commi...
eileencodes (Eileen Uchitelle)
07:21 PM Bug #21010: Endless method definition of `[]=` is SyntaxError in parse.y but allowed in Prism
Fixed in https://github.com/ruby/prism/pull/3377 eileencodes (Eileen Uchitelle)
02:44 PM Bug #21010 (Closed): Endless method definition of `[]=` is SyntaxError in parse.y but allowed in Prism
These codes is SyntaxError in parse.y but accepted in Prism
~~~ruby
def []=(k,v)=1
def obj.[]=(k,v)=1
~~~
These are both SyntaxError in parse.y and Prism by design.
~~~ruby
# invalid method name; a setter method cannot be define...
tompng (tomoya ishida)
06:43 PM Feature #21000: A way to avoid loading constant required by a type check
After some further thought, I believe the fourth idea could work if autoload constants simply returned "constant". Because if a constant isn’t yet autoloaded, no objects of that type can exist. To recap:
```ruby
defined?(NothingHere)...
Dan0042 (Daniel DeLorme)
04:25 PM Feature #21000: A way to avoid loading constant required by a type check
Dan0042 (Daniel DeLorme) wrote in #note-8:
> I hadn’t accounted for how `defined?` should behave with an autoloaded constant. [@Eregon (Benoit Daloze)](/users/772) mentioned `p defined?(Foo) # nil` but it actually returns "constant", whi...
Eregon (Benoit Daloze)
03:56 PM Feature #21000: A way to avoid loading constant required by a type check
mame (Yusuke Endoh) wrote in #note-7:
> When you create a ticket, please state clearly the problem you wish to solve.
> ...
Therefore, I want a way to write a decision similar to this idiom without writing the constant name twice. Prefe...
Dan0042 (Daniel DeLorme)
10:18 AM Feature #21000: A way to avoid loading constant required by a type check
When you create a ticket, please state clearly the problem you wish to solve.
Here is my understanding. You see *two* problems with the following idiom
```ruby
if defined?(Foo) and obj.is_a?(Foo)
```
* This idiom fires autoloa...
mame (Yusuke Endoh)
06:22 PM Bug #21011 (Closed): Constant massign segfaults in parse.y with shareable_constant_value: experimental_everything
This code segfaults with parse.y
~~~ruby
# shareable_constant_value: experimental_everything
A,=1
~~~
~~~
$ ruby --parser=parse.y
# shareable_constant_value: experimental_everything
A,=1
-: [BUG] Segmentation fault at 0x000000...
tompng (tomoya ishida)
04:01 PM Revision d0f9f3e2 (git): Remove IMEMO_DEBUG
The code path hasn't compiled for almost a year, since 330830dd1a44b6e497250a14d93efae6fa363f82,
so probably nobody uses it.
peterzhu2118 (Peter Zhu)
03:57 PM Revision b9d29912 (git): [ruby/reline] Update to Unicode 16.0.0
(https://github.com/ruby/reline/pull/803)
https://github.com/ruby/reline/commit/24e6128676
ima1zumi (Mari Imaizumi)
03:37 PM Revision 2b713f08 (git): [ruby/mmtk] Bump mmtk-core version
https://github.com/ruby/mmtk/commit/0de72c03ba peterzhu2118 (Peter Zhu)
02:44 PM Bug #20978: Ractor[]/Thread[]/Fiber[] behavior difference
> Why would anyone want to use strings for this API, if it's going to be converted to Symbol internally anyway and so slower than using the Symbol?
TBH, I’d, too, rather expect only Symbols to work for such “system programming” (so to...
zverok (Victor Shepelev)
02:28 PM Bug #20978: Ractor[]/Thread[]/Fiber[] behavior difference
IIRC it was actually intentional to only allow symbols, as this makes it much more feasible to e.g. represent Fiber storage as object shapes.
This was discussed on the ticket adding Fiber storage.
Strings are not always interned, and...
Eregon (Benoit Daloze)
02:25 PM Revision 60f235ab (git): [ruby/prism] Move a parser translator test to a known failure
That issue is exactly about what this test file contains:
A single-quoted heredocs with backslashes
https://github.com/ruby/prism/commit/4820a44c7b
Earlopain (Earlopain _)
02:25 PM Feature #20878: A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)`
> > Is there a real-world use case to make a String with a pointer allocated outside of xmalloc?
> ...
Yes, it would be easiest for Nokogiri if non-xmalloc string pointers were supported, but if it was decided to not support this, I wou...
mdalessio (Mike Dalessio)
09:44 AM Feature #20878: A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)`
> It need not only free function but also realloc function
Maybe I wasn't clear, but I my suggestion is to only use the `free` function to detect if it's compatible with `ruby_xfree`, which we presumbably can know at compile time, so ...
byroot (Jean Boussier)
08:23 AM Feature #20878: A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)`
Thanks for the benchmark. I briefly talked about this with @nobu, @akr, and @ko1.
The approach of passing a pointer to the `free` function looks a bit too over-the-top, @nobu said.
It need not only `free` function but also `realloc` ...
mame (Yusuke Endoh)
11:30 AM Revision 271cdb3c (git): Quarantine failing new specs that require investigation
andrykonchin (Andrew Konchin)
11:30 AM Revision 10917c5c (git): Update to ruby/spec@18032a7
andrykonchin (Andrew Konchin)
10:36 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
> It seems clearly wrong that two threads using Zlib with a frozen String literal (which happens to have the same contents/characters for both threads) would fail with temporal locking already locked string (RuntimeError) though.
That...
byroot (Jean Boussier)
06:17 AM Bug #20929 (Open): TestTime have an assertion different from current implementation.
hsbt (Hiroshi SHIBATA)
06:12 AM Feature #20960 (Third Party's Issue): Support building OpenSSL for Ruby with AWS-LC
We moved to discuss this on https://github.com/ruby/openssl/issues/833
hsbt (Hiroshi SHIBATA)
06:10 AM Feature #20818 (Feedback): Allow passing a block to Hash#store (to update current value)
mame (Yusuke Endoh)
05:52 AM Misc #21009 (Closed): Removed old archives from top-level of cache.ruby-lang.org.
https://cache.ruby-lang.org/pub/ruby/ has `ruby-1.8` to `ruby-2.6` and old versions of snapshot built by 2020.
That archives also stored under like `1.8` directory. We can remove them because Ruby 2.6 was already EOL about 3 years ago...
hsbt (Hiroshi SHIBATA)
04:50 AM Bug #21008 (Closed): Array#sum, Enumerator#sum, Numeric subclass
Applied in changeset commit:git|b176d4f52e4af67654814dab3e9c5f4bf9170e54.
----------
[Bug #21008] Normalize before sum to float
After switching to `Float`-mode when summing `Numeric` objects,
normalization for `Float` is still needed.
nobu (Nobuyoshi Nakada)
02:50 AM Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
https://github.com/ruby/ruby/pull/12522 nobu (Nobuyoshi Nakada)
04:29 AM Revision 36d5e2d8 (git): [DOC] Fix `exclude:` as regexps
nobu (Nobuyoshi Nakada)
04:21 AM Revision f756950d (git): Improve lookup tables for string escaping.
Introduce a simplified table for the most common case, which is
`script_safe: false, ascii_only: false`.
On the `script_safe` table, now only `0xE2` does a multi-byte check.
Merge back `convert_ASCII_to_JSON`, as it no longer help much...
byroot (Jean Boussier)
02:38 AM Revision b176d4f5 (git): [Bug #21008] Normalize before sum to float
After switching to `Float`-mode when summing `Numeric` objects,
normalization for `Float` is still needed.
nobu (Nobuyoshi Nakada)
12:56 AM Revision e9593eb9 (git): [DOC] Fix an error example
`%q{c}` after another string literal is parsed as RHS of modulo, `q`
method call with a block.
nobu (Nobuyoshi Nakada)
12:53 AM Revision be4567e1 (git): [ruby/rdoc] Add missing `RDoc::RubygemsHook` API for `gem server`
(https://github.com/ruby/rdoc/pull/1270)
This PR fixes https://github.com/ruby/rdoc/pull/1269.
## Expected Behavior
`gem server` command is successful.
```console
$ gem server
Server started at http://[::]:8808
Server started at http...
mterada1228

01/06/2025

11:20 PM Bug #21008 (Closed): Array#sum, Enumerator#sum, Numeric subclass
The following code seems to show a bug or 'quirk'. When using a Numeric subclass, `Array#sum` works correctly, but `Enumerator#sum` does not. They both work fine when using a `Float`.
```ruby
class Length < Numeric
def initializ...
MSP-Greg (Greg L)
11:00 PM Revision 9bbcbc3f (git): glibc and musl didn't provide A1-A7, FP and S3-S8 constants.
* https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
* https://git.musl-libc.org/cgit/musl/tree/arch/loongarch64/bits/signal.h
hsbt (Hiroshi SHIBATA)
10:56 PM Revision 89c505dc (git): Move string escape sequence documention further down
If someone looks at documention for strings,
I don't think escape sequences is what they look
for in majority of the cases.
Earlopain (Earlopain _)
10:56 PM Revision b0d291ec (git): Fix link to strings in literals.rdoc
Since https://github.com/ruby/ruby/commit/5e1001f754b34e1f0cc67563512c6036b6eb75ab, the string link is broken
Instead of changing the anchor reference, I changed the header directly,
to keep in line with other titles
Earlopain (Earlopain _)
10:34 PM Bug #21007: Ractor scheduler issue when multiple threads in a ractor
PR here: https://github.com/ruby/ruby/pull/12521
Edit: This is getting fixed by a separate PR because someone else noticed this issue too.
That PR is here: https://github.com/ruby/ruby/pull/12094 and should land soon (hopefully).
luke-gru (Luke Gruber)
10:13 PM Bug #21007 (Closed): Ractor scheduler issue when multiple threads in a ractor
When there are multiple threads in a ractor, these threads can get in a state where they are yielding every 10ms instead of every 100ms.
This occurs because in `thread_sched_switch0`, which is called by `thread_sched_switch`, `ruby_th...
luke-gru (Luke Gruber)
10:18 PM Revision b3de2c33 (git): Use `ISEQ_BODY(iseq)` instead of `iseq->body`
trivial change that unifies the format for access. ydah (Yudai Takada)
10:17 PM Revision de8deb5f (git): Remove unused token definitions for `tRPAREN` in Ripper and parser files
ydah (Yudai Takada)
09:55 PM Bug #20905: Ruby VM hangs while using ractors
I took a look at this, and it occurs due to an issue in the ractor and thread scheduler. Sometimes a ractor is not enqueued when it should be, therefore all native threads are blocked on `ractor_sched_deq` and they can't continue even if... luke-gru (Luke Gruber)
08:20 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Yeah, eager to see what the consensus on this becomes from the next dev meeting.
I like the idea of a `Ruby::SourceLocation` or even a `Ruby::Source` object? The latter would be nice because you could message the instance as `source.cod...
bkuhlmann (Brooke Kuhlmann)
02:39 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
I think adding end line and start/end columns is a straightforward and compatible extension of `source_location`.
I will add that to the dev meeting agenda: https://bugs.ruby-lang.org/issues/20949
Changing to return a Hash (or an Array ...
Eregon (Benoit Daloze)
08:06 PM Bug #21006 (Closed): `defined?((receiver).method)` raises Stack consistency error
Applied in changeset commit:git|8fb17f86d7ef2a84f82c83a9509e311a07aa93fc.
----------
[Bug #21006] Fix defined_expr compilation of method call with parenth… (#12518)
[Bug #21006] Fix defined_expr compilation of method call with parenthe...
tompng (tomoya ishida)
07:19 PM Bug #21006: `defined?((receiver).method)` raises Stack consistency error
https://github.com/ruby/ruby/pull/12518 tompng (tomoya ishida)
07:17 PM Bug #21006 (Closed): `defined?((receiver).method)` raises Stack consistency error
~~~
$ ruby -ve "defined?((foo).bar)"
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +MN +PRISM [arm64-darwin22]
-e:1: warning: possibly useless use of defined? in void context
-e:1: [BUG] Stack consistency error (sp: 7, bp: 6)
~~~
tompng (tomoya ishida)
08:06 PM Revision 8fb17f86 (git): [Bug #21006] Fix defined_expr compilation of method call with parenth… (#12518)
[Bug #21006] Fix defined_expr compilation of method call with parenthesized receiver tompng (tomoya ishida)
07:21 PM Revision 5698f4f2 (git): [ruby/reline] Enter newline if cursor position is middle of input
(https://github.com/ruby/reline/pull/802)
* Enter newline if cursor position is middle of input
* Add ed_force_submit to allow input confirmation on non-final lines
https://github.com/ruby/reline/commit/8ef534e904
ima1zumi (Mari Imaizumi)
06:18 PM Bug #21001 (Closed): unexpected nil result from proc with ensure and next
Applied in changeset commit:git|31905d9e23ec6d1fa2a52f1ef2533f2056e7c9fb.
----------
Allow escaping from ensures through next
Fixes [Bug #21001]
kddnewton (Kevin Newton)
06:18 PM Revision 31905d9e (git): Allow escaping from ensures through next
Fixes [Bug #21001] kddnewton (Kevin Newton)
05:07 PM Revision a61c16ba (git): [ruby/openssl] pkey: simplify X25519/Ed25519 test cases
When these test cases were written, we did not know the exact OpenSSL
and LibreSSL version number in which they would be implemented. Now that
we know it, we can use that information to ensure the tests are run
whenever they should be.
...
rhenium (Kazuki Yamaguchi)
05:07 PM Revision 3da85010 (git): [ruby/openssl] pkey: fix test case for new_raw_*key
Method names must start with "test_" to run.
https://github.com/ruby/openssl/commit/fed9d09b76
rhenium (Kazuki Yamaguchi)
05:07 PM Revision ff708f86 (git): [ruby/openssl] pkey/ec: use heredoc for invalid key example in test cases
test/openssl/fixtures/pkey/p256_too_large.pem and p384_invalid.pem are
invalid keys where the encoded public key doesn't match the private key.
They are only useful for test cases for OpenSSL::PKey::EC#check_key and
will not be reused el...
rhenium (Kazuki Yamaguchi)
05:07 PM Revision f0095413 (git): [ruby/openssl] x509cert: simplify test cases for Certificate.load_file
Remove files from test/openssl/fixtures/pkey/ which are not pkeys.
The test cases for OpenSSL::X509::Certificate.load_file can simply use
issue_cert and Tempfile.
https://github.com/ruby/openssl/commit/11216b8bec
rhenium (Kazuki Yamaguchi)
02:41 PM Misc #20949: DevMeeting-2025-01-09
* [Feature #21005] Update the source location method to include line start/stop and column start/stop details (eregon)
* How about adding end line and start/end columns to `#source_location`? It seems straightforward and compatible.
...
Eregon (Benoit Daloze)
02:32 PM Feature #21000: A way to avoid loading constant required by a type check
While these semantics make a certain sense, the opposite also makes just as much sense. If `Foo` is not yet autoloaded, that means neither `Foo` nor `Foo::Bar` are yet defined, and it makes sense to return falsy for both. At the very lea... Dan0042 (Daniel DeLorme)
02:26 PM Feature #21000: A way to avoid loading constant required by a type check
I'm unsure, I suppose it could be a compatibility concern.
If you want to know if `Foo::Bar` exists and `Foo` is an autoload the only way to know is to load Foo and see if it has a constant `Bar`.
So while surprising these semantics do m...
Eregon (Benoit Daloze)
01:32 PM Feature #21000: A way to avoid loading constant required by a type check
Eregon (Benoit Daloze) wrote in #note-2:
> So `defined?(Foo::Bar)` will actually try to load `Foo`.
It would be a good idea to fix that right?
Dan0042 (Daniel DeLorme)
09:40 AM Feature #21000: A way to avoid loading constant required by a type check
`defined?` so far always returned `nil` or frozen strings, so I think it's not so great to use for this.
Also `defined?` is particularly error-prone for constants & autoloading, for instance:
```
$DEBUG = true # to show swallowed except...
Eregon (Benoit Daloze)
02:17 AM Feature #21000: A way to avoid loading constant required by a type check
Dan0042 (Daniel DeLorme) wrote:
> ### defined?(mod) returns mod if it's a class/module
> ...
I like this, but we will need to consider the incompatibility and inconsistency with other constants.
nobu (Nobuyoshi Nakada)
02:04 PM Revision 5412501e (git): [ruby/openssl] pkey: Use openssl generated pkcs8 key instead
https://github.com/ruby/openssl/commit/6a6fac9958 sachiang (Samuel Chiang)
12:45 PM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
https://github.com/ruby/ruby/blob/975461bf885b8fb791cf048ad39c79924d28e4e9/ext/zlib/zlib.c#L1056 but I'm not quite sure how that String is used.
It seems clearly wrong that two threads using Zlib with a frozen String literal (which happ...
Eregon (Benoit Daloze)
12:37 PM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
@byroot but that's mutating the string, @nobu is asking for a case not mutating the string, which I think there is none.
EDIT: I read too fast, "write a given string into a socket" does not imply mutating the string.
Eregon (Benoit Daloze)
09:56 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
Actually yes, I think it's not an uncommon use case?
e.g. if you need to write a given string into a socket or something like that, you may want to lock it to ensure a concurrent thread won't modify it.
I think `zlic.c` uses it thi...
byroot (Jean Boussier)
09:34 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
I'm not aware of any such case, and `.freeze` seems much better for that use case. Eregon (Benoit Daloze)
02:21 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
There isn’t a case that locking a string just to avoid being modified or moved, but not to mutate it? nobu (Nobuyoshi Nakada)
11:17 AM Revision 975461bf (git): Remove SYM2ID for Parser
Ruby Parser not used SYM2ID.
And sym2id property can be removed from Universal Parser.
S_H_ (Shun Hiraoka)
10:49 AM Revision e0591b66 (git): Launchable: Exit 0 not to stop CI pipeline (#12449)
ono-max (Naoto Ono)
10:48 AM Bug #21002: Please include license information of turbo_tests
I fixed this at https://github.com/ruby/ruby/commit/668701cb0b42f27c5f54309a358c6fcbb24b5d85 hsbt (Hiroshi SHIBATA)
10:27 AM Bug #21002 (Closed): Please include license information of turbo_tests
hsbt (Hiroshi SHIBATA)
05:35 AM Bug #21002 (Assigned): Please include license information of turbo_tests
hsbt (Hiroshi SHIBATA)
09:41 AM Feature #20999 (Rejected): Add RubyVM object source support
Eregon (Benoit Daloze)
09:39 AM Revision 54bd5e03 (git): Try to update the latest version of vcpkg
hsbt (Hiroshi SHIBATA)
09:39 AM Revision 49d8384e (git): Update vcpkg baseline with latest version
```
libffi:[email protected]
libyaml:[email protected]#5
openssl:[email protected]
* vcpkg-cmake:x64-windows@2024-04-23
* vcpkg-cmake-config:x64-windows@2024-05-23
* vcpkg-cmake-get-vars:x64-windows@2024-09-22
zlib:...
hsbt (Hiroshi SHIBATA)
09:11 AM Revision 668701cb (git): Added copyright for vendored turbo_tests.
[Bug #21002] hsbt (Hiroshi SHIBATA)
07:19 AM Revision 70decc85 (git): [rubygems/rubygems] Update SPDX license list as of 2024-12-30
https://github.com/rubygems/rubygems/commit/42aaaff15c License Update
06:41 AM Revision 7ec233c8 (git): Fix typo for private constant in Socket
Signed-off-by: Raul Gutierrez Segales <[email protected]> Raul Gutierrez Segales
01:51 AM Bug #20977 (Closed): backtick is used for syntax errors related to 'it'
kddnewton (Kevin Newton)
01:50 AM Revision c8e3d745 (git): Use a single quote instead of a backtick for error messages
Fix https://bugs.ruby-lang.org/issues/20977 Junichi Ito
01:20 AM Revision 8a9f1e60 (git): [ruby/logger] Provide a 'Changelog' link on rubygems.org/gems/logger
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/logger
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details ...
Mark Young
01:19 AM Revision 80b01cc5 (git): [ruby/net-http] Provide a 'Changelog' link on rubygems.org/gems/net-http
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/net-http
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Detail...
Mark Young
01:19 AM Revision ce09b43a (git): [ruby/ostruct] Provide a 'Changelog' link on rubygems.org/gems/ostruct
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/ostruct
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details...
Mark Young
01:19 AM Revision 3b659457 (git): [ruby/securerandom] Provide a 'Changelog' link on rubygems.org/gems/securerandom
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/securerandom
which makes it quick and easy for someone to check on the changes
introduced with a new version.
De...
Mark Young
12:57 AM Revision e817d155 (git): Update default gems list at 2a1cff40f5e7875f69a7d0ed59eab9 [ci skip]
git[bot]
12:56 AM Bug #21003 (Closed): unexpected warning about ignored block
Applied in changeset commit:git|2a1cff40f5e7875f69a7d0ed59eab92cc86c65ff.
----------
Do not warn unused block when using forwarding
Fixes [Bug #21003]
kddnewton (Kevin Newton)
12:56 AM Revision 2a1cff40 (git): Do not warn unused block when using forwarding
Fixes [Bug #21003] kddnewton (Kevin Newton)
 

Also available in: Atom