Project

General

Profile

Activity

From 09/12/2024 to 09/18/2024

09/18/2024

11:55 PM Bug #20597 (Closed): `eval('break if false')` should raise SyntaxError but retuns nil
Applied in changeset commit:git|268c72377b06b7d84a0998ca241340d0f58768f6.
----------
Raise a compile error for break/next/redo inside eval in cases where it is optimized away
In cases where break/next/redo are not valid syntax, they sh...
jeremyevans (Jeremy Evans)
11:54 PM Revision 268c7237 (git): Raise a compile error for break/next/redo inside eval in cases where it is optimized away
In cases where break/next/redo are not valid syntax, they should
raise a SyntaxError even if inside a conditional block that is
optimized away.
Fixes [Bug #20597]
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
jeremyevans (Jeremy Evans)
08:47 PM Revision 984a791d (git): [DOC] Escape the word GC in GC.config
peterzhu2118 (Peter Zhu)
07:46 PM Revision 29f2cb83 (git): Fix evaluation order issue in f(**h, &h.delete(key))
Previously, this would delete the key in `h` before keyword
splatting `h`. This goes against how ruby handles `f(*a, &a.pop)`
and similar expressions.
Fix this by having the compiler check whether the block pass
expression is safe. If...
jeremyevans (Jeremy Evans)
07:18 PM Revision e358104e (git): [DOC] Fix formatting for ways to create Range objects
peterzhu2118 (Peter Zhu)
06:26 PM Revision 9c12c39e (git): Revert "Fix evaluation order issue in f(**h, &h.delete(key))"
This reverts commit 07d3bf4832532ae7446c9a6924d79aed60a7a9a5.
No failures in the pull request CI, but there are now allocation
test failures.
jeremyevans (Jeremy Evans)
06:18 PM Bug #20640 (Closed): Evaluation Order Issue in f(**h, &h.delete(key))
Applied in changeset commit:git|07d3bf4832532ae7446c9a6924d79aed60a7a9a5.
----------
Fix evaluation order issue in f(**h, &h.delete(key))
Previously, this would delete the key in h before keyword
splatting h. This goes against how rub...
jeremyevans (Jeremy Evans)
06:18 PM Revision 07d3bf48 (git): Fix evaluation order issue in f(**h, &h.delete(key))
Previously, this would delete the key in h before keyword
splatting h. This goes against how ruby handles f(*a, &a.pop)
and similar expressions.
Fix this by having the compiler check whether the block pass
expression is safe. If it is...
jeremyevans (Jeremy Evans)
04:58 PM Revision f8e1c93f (git): Move more of GC.latest_gc_info into Ruby
peterzhu2118 (Peter Zhu)
04:42 PM Bug #20740 (Closed): prism_compile coding issue for PM_FORWARDING_SUPER_NODE
Applied in changeset commit:git|c14b60630d680addd5b4ef9c9b159a26a5446483.
----------
Fix coding issue in prism_compile.c
Make sure to set back `ISEQ_COMPILE_DATA(iseq)->current_block` for
forwarding super nodes with a block.
Fixes [Bu...
luke-gru (Luke Gruber)
04:42 PM Revision 461c4896 (git): [rubygems/rubygems] Add a note about when hack can be removed
https://github.com/rubygems/rubygems/commit/058b29fe98 deivid (David Rodríguez)
04:42 PM Revision ae214be9 (git): [rubygems/rubygems] Fix TODO
https://github.com/rubygems/rubygems/commit/2cd13005f6 deivid (David Rodríguez)
04:42 PM Revision 47db8bc0 (git): [rubygems/rubygems] Stop fighting with ourselves
https://github.com/rubygems/rubygems/commit/7cf2fdcfa1 deivid (David Rodríguez)
03:52 PM Revision c14b6063 (git): Fix coding issue in prism_compile.c
Make sure to set back `ISEQ_COMPILE_DATA(iseq)->current_block` for
forwarding super nodes with a block.
Fixes [Bug #20740]
luke-gru (Luke Gruber)
03:52 PM Revision 96da3f16 (git): [ruby/prism] Allow returns in default parameter values
https://github.com/ruby/prism/commit/e98ea15596 kddnewton (Kevin Newton)
02:18 PM Revision 5df5eba4 (git): Change rb_gc_impl_get_measure_total_time to return a bool
peterzhu2118 (Peter Zhu)
01:29 PM Bug #20755 (Closed): IO::Buffer#transfer transfers mutable reference to String's memory but not lock ownership
`IO::Buffer.for` with a block yields a mutable IO::Buffer that shares underlying memory with a mutable String. While the block is executed, the String instance is temporarily locked and cannot be modified or frozen.
If you call `#transf...
hanazuki (Kasumi Hanazuki)
12:14 PM Bug #20754: [doc] `Hash::new` is missing from rdoc for 3.4
What a simple fix, now I know myself. Thank you! Earlopain (Earlopain _)
12:06 PM Bug #20754 (Closed): [doc] `Hash::new` is missing from rdoc for 3.4
Applied in changeset commit:git|f82618578666ee720bdc0ec8e4aeace541f2d953.
----------
[Bug #20754] Document in hash.rb
nobu (Nobuyoshi Nakada)
11:40 AM Bug #20754 (Closed): [doc] `Hash::new` is missing from rdoc for 3.4
I was interested in the `capacity` argument added in https://github.com/ruby/ruby/pull/10357 but found any reference to it missing from https://docs.ruby-lang.org/en/master/Hash.html
`::new` just links to docs from `BasicObject`. Docs...
Earlopain (Earlopain _)
12:03 PM Revision f8261857 (git): [Bug #20754] Document in hash.rb
nobu (Nobuyoshi Nakada)
12:02 PM Misc #20717: DevMeeting-2024-10-03
* [Feature #20750] Expose ruby_thread_has_gvl_p in ruby/thread.h (eregon)
* I think rb_thread_call_with_gvl() should be allowed if the GVL is already acquired, it seems a much nicer way to solve the use cases the OP pointed out (for a ...
Eregon (Benoit Daloze)
12:00 PM Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL
OK the issue/bug is
https://github.com/ruby/ruby/blob/4797b0704ae49fb42c8ad9a45028efbe2298b5f5/thread.c#L1899
```
if (brb == 0) {
rb_bug("rb_thread_call_with_gvl: called by a thread which has GVL.");
}
```
@ko1 I t...
Eregon (Benoit Daloze)
11:56 AM Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL
So what is the concrete issue if the pattern above is replaced by `rb_thread_call_with_gvl(method_call, &context);`?
Does `rb_thread_call_with_gvl()` fail if the GVL is already acquired?
If so, I think that would be a bug of `rb_thre...
Eregon (Benoit Daloze)
11:48 AM Bug #20745: IO::Buffer#copy triggers UB when src/dest buffers overlap
I don't think we can legitimately expose an API that can lead to a crash if used incorrectly.
So yeah, I think we should check for overlapping pointer and either degrade to another copy routine that support overlapping pointers or rai...
byroot (Jean Boussier)
08:03 AM Bug #20745: IO::Buffer#copy triggers UB when src/dest buffers overlap
If this is an intentional restriction to gain performance, I would like to propose adding documentation that the methods are unsafe and should not be used for overlapping copies. Not all Ruby users are familiar to C.
But `IO::Buffer` ...
hanazuki (Kasumi Hanazuki)
02:19 AM Bug #20745: IO::Buffer#copy triggers UB when src/dest buffers overlap
Since the doc says "using `memcpy`", it may be intentionally undetermined/unsupported.
> Efficiently copy from a source IO::Buffer into the buffer, at +offset+
> ...
nobu (Nobuyoshi Nakada)
10:17 AM Bug #20753 (Closed): [doc] IO::Buffer examples try to write into readonly buffer returned from IO::Buffer.for
`IO::Buffer.for` without a block returns a readonly `IO::Buffer`. Some examples in the documentation for `IO::Buffer` write into the readonly buffers, which actually raise an `IO::Buffer::AccessError`.
From `IO::Buffer#clear`:
> ```
...
hanazuki (Kasumi Hanazuki)
10:00 AM Bug #20752: IO::Buffer#slice creates mutable IO::Buffer instance that points to readonly memory (e.g. fronzen String)
It results in bus errors with 3.1 and 3.2.
```
$ ruby3.2 -e 'IO::Buffer.for(RUBY_DESCRIPTION).slice.set_string("perl", 0, 4)'
-e:1: [BUG] Bus Error at 0x0000000100f08b18
ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [arm64-darwin23]
...
nobu (Nobuyoshi Nakada)
09:38 AM Bug #20752 (Closed): IO::Buffer#slice creates mutable IO::Buffer instance that points to readonly memory (e.g. fronzen String)
```irb
irb(main):001> RUBY_DESCRIPTION.frozen?
=> true
irb(main):002> IO::Buffer.for(RUBY_DESCRIPTION).set_string('perl', 0, 4)
(irb):2:in 'IO::Buffer#set_string': Buffer is not writable! (IO::Buffer::AccessError)
from (irb)...
hanazuki (Kasumi Hanazuki)
06:30 AM Feature #20309: Bundled gems for Ruby 3.5
Eregon (Benoit Daloze) wrote in #note-38:
> vo.x (Vit Ondruch) wrote in #note-35:
> ...
I was not aware of `--prefer-local` (I am trying to avoid Bundler as much as I can), but yes, that sounds as reasonable alternative.
vo.x (Vit Ondruch)
02:16 AM Revision 4797b070 (git): Prevent a warning (retry)
```
test/ruby/test_case.rb:75: warning: 'when' clause on line 75 duplicates 'when' clause on line 75 and is ignored
```
mame (Yusuke Endoh)
12:59 AM Revision 94a17f32 (git): Detect existing Visual Studio instances using `vswhere.exe`
https://learn.microsoft.com/en-us/visualstudio/install/tools-for-managing-visual-studio-instances?view=vs-2022#using-vswhereexe
> `vswhere.exe` is automatically included in Visual Studio 2017 and
> later
nobu (Nobuyoshi Nakada)
12:06 AM Revision 7c4b0284 (git): YJIT: Accept key for runtime_stats to return only that stat (#11536)
Randy Stauner

09/17/2024

11:49 PM Bug #20751 (Closed): Regression in Prism related to use of return in default argument values
kddnewton (Kevin Newton) wrote in #note-2:
> I believe this was fixed this morning. Could you double-check that this is still an issue?
Looks like it is fixed in ruby/prism, but not ruby/ruby, since https://github.com/ruby/prism/comm...
jeremyevans0 (Jeremy Evans)
11:37 PM Bug #20751: Regression in Prism related to use of return in default argument values
I believe this was fixed this morning. Could you double-check that this is still an issue? kddnewton (Kevin Newton)
11:19 PM Bug #20751 (Closed): Regression in Prism related to use of return in default argument values
All versions of parse.y dating at least back to Ruby 1.8.7, and Prism in both Ruby 3.3.5 and 3.4.0preview1, correctly parses this code:
```ruby
class A
def foo(b = nil || (return))
end
end
```
The master branch, unless `--...
jeremyevans0 (Jeremy Evans)
10:34 PM Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL
Hello Benoit,
Thank you for your question.
Eregon (Benoit Daloze) wrote in #note-1:
> This seems like a strange pattern, why not just use `rb_thread_call_with_gvl` and remove the condition?
> ...
Yes, agreed. The pattern seems ov...
kbrock (Keenan Brock)
08:03 PM Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL
Note that the majority of the search results are just CRuby using it, and GitHub not detecting it's effectively copies of CRuby.
This seems like a strange pattern, why not just use `rb_thread_call_with_gvl` and remove the condition?
...
Eregon (Benoit Daloze)
04:52 PM Feature #20750 (Open): Allow rb_thread_call_with_gvl to work when thread already has GVL
Hello All,
I'm hoping we can make `ruby_thread_has_gvl_p` a public method and no longer experimental.
I saw the following code in a gem that was not compiling with ruby 3.3:
``` c
// int ruby_thread_has_gvl_p(void); // <== line...
kbrock (Keenan Brock)
10:12 PM Revision 39679d7f (git): [ruby/uri] Fix spelling of "cannot"
https://github.com/ruby/uri/commit/77241d6508 deivid (David Rodríguez)
08:35 PM Revision 5307c65c (git): Make rb_gc_impl_set_measure_total_time return void
peterzhu2118 (Peter Zhu)
08:09 PM Revision b203e667 (git): [rubygems/rubygems] Fix spelling, it's "cannot" rather than "can not"
https://github.com/rubygems/rubygems/commit/3434f094a2 deivid (David Rodríguez)
07:22 PM Revision dc61c7fc (git): Rename rb_gc_impl_get_profile_total_time to rb_gc_impl_get_total_time
peterzhu2118 (Peter Zhu)
07:22 PM Revision 2af080bd (git): Change rb_gc_impl_get_profile_total_time to return unsigned long long
peterzhu2118 (Peter Zhu)
07:22 PM Revision 5de7517b (git): Use unsigned long long for marking and sweeping time
peterzhu2118 (Peter Zhu)
06:47 PM Revision 748933aa (git): [ruby/prism] Accept "do" blocks in some parameter default values
https://github.com/ruby/prism/commit/6d7b734dbe kddnewton (Kevin Newton)
02:39 PM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
Earlopain (A S) wrote in #note-5:
> Should this just work? If I do:
> ...
When Ruby is parsing/scanning code, and it gets to an expression that could be a local variable or method call, Ruby checks the local variables in scope. If the...
jeremyevans0 (Jeremy Evans)
09:00 AM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
Should this just work? If I do:
```rb
if a = 0.zero?
p a
end
```
it has no problem with it. I would expect these to be equivalent. Never wrote the one-liner myself, the longer form above I definitly do though
Earlopain (Earlopain _)
02:34 PM Revision 0160dafc (git): Replace all GC.disable with EnvUtil.without_gc
peterzhu2118 (Peter Zhu)
02:07 PM Revision 82151a86 (git): Fix a typo, sorry!
mame (Yusuke Endoh)
01:52 PM Revision fd5e5839 (git): Prevent two warnings
```
/home/chkbuild/chkbuild/tmp/build/20240917T123003Z/ruby/test/ruby/test_case.rb:73: warning: 'when' clause on line 73 duplicates 'when' clause on line 73 and is ignored
/home/chkbuild/chkbuild/tmp/build/20240917T123003Z/ruby/test/ruby...
mame (Yusuke Endoh)
12:40 PM Bug #20749: Error message not shown in output with prism
This was an issue with the error_highlight gem. I made a PR here: https://github.com/ruby/error_highlight/pull/48 luke-gru (Luke Gruber)
12:37 PM Feature #20309: Bundled gems for Ruby 3.5
vo.x (Vit Ondruch) wrote in #note-35:
> I don't think it is bad idea to start using `bundle install --local`, i.e. use gems which are already available on the system. And on top of that, stop using Bundler in containers for runtime in pr...
Eregon (Benoit Daloze)
09:40 AM Feature #20309: Bundled gems for Ruby 3.5
> I don't think so. Bundler should provide that feature for like debug, stackprof and irb. I and @mame (Yusuke Endoh) discussed about that. We sometimes need to use that tools without updating Gemfile and its lockfile.
Yeah, that soun...
deivid (David Rodríguez)
08:53 AM Feature #20309: Bundled gems for Ruby 3.5
>The fact that we want binding.irb to work regardless of being in a bundle exec context or not feels like a sign that irb should probably stay as a default gem?
I don't think so. Bundler should provide that feature for like `debug`, `...
hsbt (Hiroshi SHIBATA)
11:10 AM Revision cf063c00 (git): [rubygems/rubygems] Bump rubies in CI to 3.3.5
A spec needed changes because now loading the default `json` prints a
warning about `ostruct` getting loaded although it will be removed in
the future. Use a different default gem to test this.
https://github.com/rubygems/rubygems/commi...
deivid (David Rodríguez)
08:48 AM Bug #20734: Test failure at FreeBSD 14.1
I could build 4ca588eede and `git clean -fxd`.
But Ruby CI is still stopped from Sep 5th.
https://rubyci.s3.amazonaws.com/freebsd14/ruby-master/recent.html
I'm investigating now.
hsbt (Hiroshi SHIBATA)
08:37 AM Bug #20631: Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta
`Process.daemon` is working fine at macOS 15.1 beta3 and Xcode 16 RC.
I enabled `TestProcess#test_daemon_noclose` again at https://github.com/ruby/ruby/commit/1ecac5d4ed620247bdb74fa2c20e1665fae75b1a
hsbt (Hiroshi SHIBATA)
07:16 AM Revision 1ecac5d4 (git): TestProcess#test_daemon_noclose is working fine with macOS 15.1 beta3 and Xcode 16 RC
hsbt (Hiroshi SHIBATA)
06:44 AM Revision 95f08f2b (git): Skip failing examples related with https://github.com/ruby/ruby/commit/d81b0588bb3c97167d1f7e2d2a74185e0c19b68c
hsbt (Hiroshi SHIBATA)
06:37 AM Revision c0116860 (git): Removed accidentally commit for snapshot file of prism
hsbt (Hiroshi SHIBATA)
06:12 AM Revision d81b0588 (git): [ruby/strscan] Accept String as a pattern at non head
(https://github.com/ruby/strscan/pull/106)
It supports non-head match cases such as StringScanner#scan_until.
If we use a String as a pattern, we can improve match performance.
Here is a result of the including benchmark.
## CRuby
It...
naitoh (Jun NAITOH)
05:41 AM Revision 7d80c139 (git): Unlock parallel_tests
deivid (David Rodríguez)
05:39 AM Revision 80e934c2 (git): [rubygems/rubygems] Fix `--local` hitting the network when default gems are included
https://github.com/rubygems/rubygems/commit/b9a2d4d539 deivid (David Rodríguez)
05:39 AM Revision 335d6309 (git): [rubygems/rubygems] Improve spec
The behavior it's testing is independent from the bundle path being
used.
https://github.com/rubygems/rubygems/commit/9a4b32ec82
deivid (David Rodríguez)
05:39 AM Revision 166cde7d (git): [rubygems/rubygems] Fix spec to setup a default gem correctly
Looking at the description is something that used to be done a long time
ago.
https://github.com/rubygems/rubygems/commit/9c226f52a6
deivid (David Rodríguez)
05:39 AM Revision 7428709d (git): [rubygems/rubygems] Inline a private method
Removes an (in my opinion) excessive indirection and handles options
more consistently.
https://github.com/rubygems/rubygems/commit/642e6d2c0c
deivid (David Rodríguez)
05:39 AM Revision 7e0934d3 (git): [rubygems/rubygems] Consistently access install options through symbol keys
https://github.com/rubygems/rubygems/commit/7ddf1dc70a deivid (David Rodríguez)
05:15 AM Revision 70111fcc (git): Prevent a warning due to error recovery of prism
mame (Yusuke Endoh)
05:10 AM Revision d90da940 (git): Prevent warnings for RubyVM::AbstractSyntaxTree.parse in test_ast.rb
mame (Yusuke Endoh)
04:56 AM Revision d84b062b (git): Prevent warning: assigned but unused variable - message
mame (Yusuke Endoh)
03:54 AM Revision 4ca588ee (git): Bump github/codeql-action from 3.26.6 to 3.26.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md...
dependabot[bot]
03:52 AM Revision bb2d2473 (git): [DOC] Fix autoload method formatting
itsNikolay (Nikolay Ponomarev)
03:46 AM Revision bb7025b7 (git): Activate irb if irb is bundled gems
hsbt (Hiroshi SHIBATA)
03:44 AM Revision 76d927f8 (git): Prevent prism warnings in syntax exhaustive tests
[Bug #20736] mame (Yusuke Endoh)
12:28 AM Revision 4e59e7d3 (git): [Bug #20737] Do not warn default gems to be promoted in Ruby 3.5 (#11613)
hsbt (Hiroshi SHIBATA)
12:11 AM Bug #20723 (Closed): `IO#close` is broken on Ruby 3.3+ when using the Fiber scheduler.
Applied in changeset commit:git|e08d5239b68ad61a731f4938cf963e37a5e88c25.
----------
Ensure fiber scheduler is woken up when close interrupts read
If one thread is reading and another closes that socket, the close
blocks waiting for th...
kjtsanaktsidis (KJ Tsanaktsidis)
12:11 AM Revision e08d5239 (git): Ensure fiber scheduler is woken up when close interrupts read
If one thread is reading and another closes that socket, the close
blocks waiting for the read to abort cleanly. This ensures that Ruby is
totally done with the file descriptor _BEFORE_ we tell the OS to close
and potentially re-use it.
...
kjtsanaktsidis (KJ Tsanaktsidis)

09/16/2024

08:35 PM Feature #20309: Bundled gems for Ruby 3.5
Eregon (Benoit Daloze) wrote in #note-34:
> There is an additional issue with making fiddle a bundled gem: it means any usage now must have libffi headers available or it will fail to install.
> ...
I don't think it is bad idea to star...
vo.x (Vit Ondruch)
10:27 AM Feature #20309: Bundled gems for Ruby 3.5
There is an additional issue with making fiddle a bundled gem: it means any usage now must have libffi headers available or it will fail to install.
Before, it would just work because fiddle would have been built when CRuby was built.
...
Eregon (Benoit Daloze)
07:58 PM Revision 50d4840b (git): Move desired_compaction_pages_i inside of GC_CAN_COMPILE_COMPACTION
Fixes the following warning on WebAssembly:
gc/default.c:7306:1: warning: unused function 'desired_compaction_pages_i' [-Wunused-function]
desired_compaction_pages_i(struct heap_page *page, void *data)
peterzhu2118 (Peter Zhu)
07:55 PM Bug #20747 (Closed): [prism] regression in retry precedence
kddnewton (Kevin Newton)
07:28 PM Bug #20747: [prism] regression in retry precedence
I have opened a PR to fix this: https://github.com/ruby/prism/pull/3073. kddnewton (Kevin Newton)
08:26 AM Bug #20747 (Closed): [prism] regression in retry precedence
Since prism has been made the default, our test suite now fail to boot with the following error:
```ruby
syntax error found (SyntaxError)
298 | raise e
299 | else
> 300 | retry
| ^~...
byroot (Jean Boussier)
07:55 PM Revision 7e2ae30f (git): [ruby/prism] Handle retry doubly nested under rescue
Fixes [Bug #20747]
https://github.com/ruby/prism/commit/d3194715a9
kddnewton (Kevin Newton)
06:58 PM Bug #20744 (Closed): syntax error found (SyntaxError) `UTF-8 mixed within US-ASCII source` reported Ruby with Prism parser
Applied in changeset commit:git|2ea1950510003dbce5a761a712039ed69fa499f2.
----------
[ruby/prism] Do not leak explicit encoding
Fixes [Bug #20744]
https://github.com/ruby/prism/commit/f1b8b1b2a2
kddnewton (Kevin Newton)
06:41 PM Bug #20744: syntax error found (SyntaxError) `UTF-8 mixed within US-ASCII source` reported Ruby with Prism parser
I have opened a PR to fix this.
https://github.com/ruby/prism/pull/3071
kddnewton (Kevin Newton)
12:49 PM Bug #20744: syntax error found (SyntaxError) `UTF-8 mixed within US-ASCII source` reported Ruby with Prism parser
Thank you for the report, I will take a look. kddnewton (Kevin Newton)
07:07 AM Bug #20744: syntax error found (SyntaxError) `UTF-8 mixed within US-ASCII source` reported Ruby with Prism parser
I'm unsure if this is the same case as Rails, but I found a reproduce code.
``` ruby
# encoding: US-ASCII
str = String.new("hello \xFC", encoding: Encoding::ISO_8859_1).encode(Encoding::UTF_8)
puts str =~ /hello \u{fc}/
```
#...
ima1zumi (Mari Imaizumi)
04:33 AM Bug #20744 (Closed): syntax error found (SyntaxError) `UTF-8 mixed within US-ASCII source` reported Ruby with Prism parser
I'm reporting this issue based on Rails Nightly CI against Ruby 3.4.0dev.
https://buildkite.com/rails/rails-nightly/builds/1023#0191ed31-1d77-4705-ab65-cecab76e2c88/1175-1209
I have not able to create a minimum test case without Rails...
yahonda (Yasuo Honda)
06:57 PM Revision 2ea19505 (git): [ruby/prism] Do not leak explicit encoding
Fixes [Bug #20744]
https://github.com/ruby/prism/commit/f1b8b1b2a2
kddnewton (Kevin Newton)
06:38 PM Revision 1e53e462 (git): Don't export unnecessary string functions
These functions are not used publicly, so we don't need to export them. peterzhu2118 (Peter Zhu)
06:31 PM Bug #20741 (Closed): RubyVM::InstructionSequence.compile emits a wrong warning (prism?)
kddnewton (Kevin Newton)
03:04 PM Bug #20741: RubyVM::InstructionSequence.compile emits a wrong warning (prism?)
I have submitted a PR that will fix this https://github.com/ruby/ruby/pull/11632. kddnewton (Kevin Newton)
06:31 PM Revision 2beb4c6e (git): [PRISM] Assume an eval context for RubyVM::ISEQ compile
Fixes [Bug #20741] kddnewton (Kevin Newton)
05:36 PM Revision 6c4ce726 (git): [ruby/irb] Use InstructionSequence#script_lines to get method source
(https://github.com/ruby/irb/pull/1005)
It works with both prism and parse.y
https://github.com/ruby/irb/commit/bcfaa72d5a
tompng (tomoya ishida)
04:33 PM Revision 1c3981cb (git): [DOC] Tweaks for Array#select!
burdettelamar (Burdette Lamar)
04:33 PM Revision 4e17fa29 (git): Tweaks or Array#select
burdettelamar (Burdette Lamar)
04:14 PM Misc #20717: DevMeeting-2024-10-03
* [Misc #20728] Add eileencodes as a core committer
* She's made many useful contributions
* She's currently helping to maintain Prism / Prism Compiler and it would be helpful if she can merge her own commits
tenderlovemaking (Aaron Patterson)
08:05 AM Misc #20717: DevMeeting-2024-10-03
* [Misc #20746] Request to migrate the `json` gem from `flori/json` repository to `ruby/json` (byroot)
* Current maintainers don't have full administrative rights over the repo, which is problematic.
* We've been trying to contact ...
byroot (Jean Boussier)
03:54 PM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
Actually, the pattern is fairly common, I should have searched for `unless` usage in addition to `if`:
```
lib/rdoc/code_object/any_method.rb: return nil unless klass = @store.find_class_or_module(klass_name)
lib/rdoc/code_obje...
jeremyevans0 (Jeremy Evans)
03:48 PM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
Eregon (Benoit Daloze) wrote in #note-2:
> jeremyevans0 (Jeremy Evans) wrote in #note-1:
> ...
The pattern is used in the standard library. Here's a list of assignments in post-conditionals that don't use parentheses around the assign...
jeremyevans0 (Jeremy Evans)
11:42 AM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
jeremyevans0 (Jeremy Evans) wrote in #note-1:
> Assigning in post-conditionals is a fairly common in Ruby.
Is it? I don't think I've seen that often or maybe even never.
Eregon (Benoit Daloze)
03:54 PM Bug #20748 (Closed): Issue with defined? given method call with block in prism compiler
Applied in changeset commit:git|1e52dde82af10f2a2ec648b34dce30bec4154245.
----------
[PRISM] Match defined behavior for explicit block
Fixes [Bug #20748]
kddnewton (Kevin Newton)
03:29 PM Bug #20748: Issue with defined? given method call with block in prism compiler
I agree it's weird but it could cause an incompatibility I guess, `defined?()` is a weird one for sure. luke-gru (Luke Gruber)
03:16 PM Bug #20748: Issue with defined? given method call with block in prism compiler
I have opened a PR for this to match the behavior exactly, but I will say I think Prism's behavior is actually correct here. Right now compile.c results in:
```ruby
puts defined?(undefined_method(){}) # => "expression"
puts defined?...
kddnewton (Kevin Newton)
01:59 PM Bug #20748 (Closed): Issue with defined? given method call with block in prism compiler
test.rb
```ruby
puts defined?(undefined_method(){})
```
```
./ruby --parser=parse.y -I../ruby/lib -I. -I.ext/x86_64-linux -I.ext/common -r./x86_64-linux-fake ../ruby/test.rb
expression
```
```
./ruby --parser=prism -I../ruby...
luke-gru (Luke Gruber)
03:53 PM Revision 1e52dde8 (git): [PRISM] Match defined behavior for explicit block
Fixes [Bug #20748] kddnewton (Kevin Newton)
02:41 PM Bug #20237 (Closed): Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
jeremyevans0 (Jeremy Evans)
06:42 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
Thank you @ko1 for sharing the current situation. I'm fine with closing this ticket as it is due to the design decision and (AFAIK) the original behavior had never been documented. hanazuki (Kasumi Hanazuki)
02:16 PM Bug #20749 (Closed): Error message not shown in output with prism
test.rb:
```ruby
p = Proc.new
```
```
./ruby --parser=parse.y -I../ruby/lib -I. -I.ext/x86_64-linux -I.ext/common -r./x86_64-linux-fake ../ruby/test.rb
../ruby/test.rb:1:in 'Proc.new': tried to create Proc object without a bloc...
luke-gru (Luke Gruber)
01:27 PM Revision 50564f88 (git): ASAN unpoison whole heap page after adding to size pool
peterzhu2118 (Peter Zhu)
01:27 PM Revision 46ba3752 (git): Don't return inside of asan_unpoisoning_object
peterzhu2118 (Peter Zhu)
01:27 PM Revision c5a782df (git): Replace with asan_unpoisoning_object
peterzhu2118 (Peter Zhu)
01:13 PM Revision f4f46af9 (git): Complete spec
Co-authored-by: Vít Ondruch <vondruch@redhat.com> deivid (David Rodríguez)
01:13 PM Revision 2bfeedc0 (git): [rubygems/rubygems] Simplify handling default gem caching
By the time `cached_gem` is called, default gem cache has already been
handled. So no need to try redownload it again, it's enough to check the
cache location directly.
https://github.com/rubygems/rubygems/commit/70e10236b6
deivid (David Rodríguez)
12:44 PM Revision d57bc870 (git): [PRISM] Remove snapshot testing from Prism sync
kddnewton (Kevin Newton)
11:38 AM Misc #20746: Request to migrate the json gem from flori/json repository to ruby/json
+1, as I wrote in https://github.com/flori/json/issues/591 I think this is important for many reasons. Eregon (Benoit Daloze)
08:02 AM Misc #20746 (Closed): Request to migrate the json gem from flori/json repository to ruby/json
### Context
The `json` gem, which is part of Ruby's default gems, is the only default gem (aside from `rubygems` itself) for which the source repository isn't under the `ruby/` organization.
@naruse and @hsbt, the two maintainers h...
byroot (Jean Boussier)
11:37 AM Revision fab01b15 (git): [rubygems/rubygems] Remove temporary `.lock` files left around by gem installer
https://github.com/rubygems/rubygems/commit/edbb2e3475 deivid (David Rodríguez)
11:37 AM Revision 7411caa1 (git): [rubygems/rubygems] Make sure implementations of `Gem.open_file_with_flock` match
https://github.com/rubygems/rubygems/commit/174a8e5284 deivid (David Rodríguez)
06:51 AM Bug #20745: IO::Buffer#copy triggers UB when src/dest buffers overlap
`#set_string` in combination with `.for` with a block has the same problem.
```shell-session
% docker run --platform=linux/amd64 --rm ruby:3.3.5-alpine3.20 ruby -e 's=+"0123456789"; IO::Buffer.for(s) {|b| b.set_string(s, 3, 7, 0) }; ...
hanazuki (Kasumi Hanazuki)
06:33 AM Bug #20745 (Closed): IO::Buffer#copy triggers UB when src/dest buffers overlap
The current implementation of `IO::Buffer#copy` uses `memcpy` to copy data between the two memory regions. `memcpy` has a requirement that the source and destination must not overlap; otherwise the behavior is undefined.
When copying ...
hanazuki (Kasumi Hanazuki)
01:35 AM Feature #20738: Removing a specific entry from a hash literal
It would be better to explain the motive. This is an appropriate code.
``` ruby
{
foo: 1
bar: 2
}
```
This is not a mistake, but it's a circuitous code.
``` ruby
h = {}
h[:foo] = 1
h[:bar] = 2
h
```
The gist of ...
ursm (Keita Urashima)
01:19 AM Feature #20738: Removing a specific entry from a hash literal
I would like to offer that as I used a simple grep pattern, I could only find simple examples. I wanted to show that this is not as rare as it seems. ursm (Keita Urashima)

09/15/2024

07:15 PM Bug #20726: Issue with hash without braces when assigned to constant with ractor literals
This problem was not reproduced with `--parser=prism`, but with `--parser=parse.y`.
```ruby
# shareable_constant_value: literal
# test.rb
puts RUBY_DESCRIPTION
A = [a: 1]
p A
```
```shell
$ ruby --parser=prism test.rb
r...
osyo (manga osyo)
06:07 PM Bug #20743: ruby doesn't properly split RUBY_DEBUG_LOG_FILTER into items
Apparently introduced in the following commit:
https://github.com/ruby/ruby/commit/5a4f997b2e8e819ed40731cd769826112072a9d4#diff-1cae4f3b0e13ea38a331366fa5370f5648b2c37090a19e8fba9b8e921c36f505R369
x-yuri (Yuri Kanivetsky)
05:58 PM Bug #20743 (Assigned): ruby doesn't properly split RUBY_DEBUG_LOG_FILTER into items
```
$ docker run --rm alpine:3.20.3 sh -euxc '
apk add git build-base autoconf ruby yaml-dev zlib-dev openssl-dev libffi-dev
git clone https://github.com/ruby/ruby
cd ruby
git checkout 532af89e3b5b78dd3a6fe29c6cc64ad...
x-yuri (Yuri Kanivetsky)
06:06 PM Feature #20738: Removing a specific entry from a hash literal
> There are several Rails codes that can be improved with this feature.
As one of the maintainer of the code you linked to, I agree with @jeremyevans0 that it's currently fine as it is. I wouldn't use such feature if it was added.
byroot (Jean Boussier)
04:32 PM Feature #20738: Removing a specific entry from a hash literal
ursm (Keita Urashima) wrote in #note-9:
> There are several Rails codes that can be improved with this feature. In my opinion, it is especially useful in multiple situations, such as generating JSON responses and constructing HTTP reque...
jeremyevans0 (Jeremy Evans)
12:36 PM Feature #20738: Removing a specific entry from a hash literal
Eregon (Benoit Daloze) wrote in #note-8:
> I don't think it's very frequent to need this to warrant a syntax change either.
There are several Rails codes that can be improved with this feature. In my opinion, it is especially useful ...
ursm (Keita Urashima)
05:52 PM Feature #20742: Trying to assign to a variable in statement modifier should emit a warning
Assigning in post-conditionals is a fairly common in Ruby. If this is to be a warning, it would have to be limited to cases where the variable being assigned in the post-conditional was not in scope before the post-conditional, and is a... jeremyevans0 (Jeremy Evans)
05:42 PM Feature #20742 (Open): Trying to assign to a variable in statement modifier should emit a warning
There is an example in Control Expressions documentation:
```
p a if a = 0.zero? # raises NameError “undefined local variable or method ‘a’”.
```
However, if we had already defined `a` there would be no exception raised. If one u...
esad (Esad Hajdarevic)
10:25 AM Bug #20736: prism emits wrong warnings in syntax-error code
I think good error recovery is key to have helpful error messages when writing Ruby code.
Maybe one way here is to not show warnings if there are any errors?
OTOH I think it is not a big usability problem, warnings appear first and t...
Eregon (Benoit Daloze)
12:51 AM Bug #20736: prism emits wrong warnings in syntax-error code
https://github.com/ruby/ruby/pull/11626 mame (Yusuke Endoh)
12:46 AM Bug #20736: prism emits wrong warnings in syntax-error code
I wonder if error recovery is needed in the interpreter's parser. It might be a benefit to be able to output almost all syntax errors in one run. However, I am not sure about the benefit, given the such confusing warnings.
Well, let's...
mame (Yusuke Endoh)
09:10 AM Bug #20741: RubyVM::InstructionSequence.compile emits a wrong warning (prism?)
> prism?
Yes:
```
$ ./miniruby --parser=parse.y -we 'p RubyVM::InstructionSequence.compile("42").eval'
42
$ ./miniruby --parser=prism -we 'p RubyVM::InstructionSequence.compile("42").eval'
<compiled>:1: warning: possibly useles...
byroot (Jean Boussier)
01:05 AM Bug #20741 (Closed): RubyVM::InstructionSequence.compile emits a wrong warning (prism?)
```
$ ./local/bin/ruby -we 'p RubyVM::InstructionSequence.compile("42").eval'
<compiled>:1: warning: possibly useless use of a literal in void context
42
```
mame (Yusuke Endoh)
01:06 AM Revision 532af89e (git): Prevent warnings: the block passed to ... may be ignored
mame (Yusuke Endoh)
01:05 AM Revision bc13ec73 (git): Prevent warnings: assigned but unused variable
mame (Yusuke Endoh)

09/14/2024

04:34 PM Feature #20738: Removing a specific entry from a hash literal
I don't think it's OK to magically drop entries from a literal based on some value, it's way too surprising.
Notably this would make the capacity of the literal potentially wrong, etc.
And of course `Hash::DROP` could leak into some vari...
Eregon (Benoit Daloze)
05:24 AM Feature #20738: Removing a specific entry from a hash literal
I believe that the following two points will prevent the same problems as in the past:
1. Use a value that is never used (e.g., Hash::DROP) instead of nil.
2. Special treatment of “special value” only if the hash is constructed with ...
ursm (Keita Urashima)
04:53 AM Feature #20738: Removing a specific entry from a hash literal
History. Long ago in Ruby, such a special value actually existed. It was `nil`.
```ruby
# ruby 1.4.6
h = { 1 => 2 }
p h #=> {1=>2}
# This removes the key 1
h[1] = nil
p h #=> {}
```
However, there were more and more ...
mame (Yusuke Endoh)
07:54 AM Bug #20730: LoadError if Rakefile has shebang
`ruby` command handles a shebang, but it is not a part of the Ruby syntax.
Parsers should not consider shebang lines.
nobu (Nobuyoshi Nakada)

09/13/2024

08:58 PM Bug #20736: prism emits wrong warnings in syntax-error code
Right now Prism is lexing `9a` as an integer and then an identifier. So it's effectively parsing it as `1; 2; 9; a`. That's why it's warning that `9` is a useless literal. I could change this in the parser to parse it instead as a missin... kddnewton (Kevin Newton)
07:51 PM Bug #20736: prism emits wrong warnings in syntax-error code
Although I can understand the technical reason, I still feel a bit uncomfortable when the warning says “use of a literal” since `9a` is clearly not a literal to the human eye.
As a practical matter, this behavior causes a lot of warni...
mame (Yusuke Endoh)
05:02 PM Bug #20736 (Feedback): prism emits wrong warnings in syntax-error code
kddnewton (Kevin Newton)
03:32 PM Bug #20736: prism emits wrong warnings in syntax-error code
This is because Prism recovers from the syntax error. For example:
```ruby
eval("1; 2; 9a; 3; 4; 5; 9b")
```
with Prism this will give:
```
(eval at test.rb:1):1: warning: possibly useless use of a literal in void context
(e...
kddnewton (Kevin Newton)
03:23 AM Bug #20736 (Feedback): prism emits wrong warnings in syntax-error code
```
$ ./local/bin/ruby -w --parser=parse.y -e 'begin eval("0a"); rescue SyntaxError; end'
$ ./local/bin/ruby -w --parser=prism -e 'begin eval("0a"); rescue SyntaxError; end'
(eval at -e:1):1: warning: possibly useless use of a literal...
mame (Yusuke Endoh)
07:30 PM Revision ddbd6440 (git): [ruby/prism] Stat file first to check directory
https://github.com/ruby/prism/commit/4ed7de537b kddnewton (Kevin Newton)
07:16 PM Bug #20473: Ractor array/hash literals
Okay, makes sense. Maybe if/when ractors are used more I'll take a look at this again. luke-gru (Luke Gruber)
07:13 PM Revision f85efc97 (git): [ruby/prism] Expose main_script in serialization API
https://github.com/ruby/prism/commit/0b527ca93f kddnewton (Kevin Newton)
06:13 PM Bug #20735 (Closed): prism emits "ambiguous `&`" warning
kddnewton (Kevin Newton)
04:49 PM Bug #20735: prism emits "ambiguous `&`" warning
I have opened https://github.com/ruby/ruby/pull/11622 to fix this. kddnewton (Kevin Newton)
02:40 AM Bug #20735 (Closed): prism emits "ambiguous `&`" warning
```
$ ./local/bin/ruby -w --parser=parse.y -e 'def foo(&) = nil; foo &:bar'
$ ./local/bin/ruby -w --parser=prism -e 'def foo(&) = nil; foo &:bar'
-e:1: warning: ambiguous `&` has been interpreted as an argument prefix
```
mame (Yusuke Endoh)
06:09 PM Bug #20730 (Closed): LoadError if Rakefile has shebang
Applied in changeset commit:git|9afc6a981deae6e23d938cf5c2c4baadfeaafdb1.
----------
[PRISM] Only parse shebang on main script
Fixes [Bug #20730]
kddnewton (Kevin Newton)
03:23 PM Bug #20730: LoadError if Rakefile has shebang
I have opened https://github.com/ruby/ruby/pull/11617 to fix this. kddnewton (Kevin Newton)
01:19 AM Bug #20730 (Closed): LoadError if Rakefile has shebang
`LoadError` exception will be raised when invoke the rake task with latest ruby 3.4-dev.
### Reproduce code
Here is example code.
```ruby
#!/usr/bin/env rake
p "Hello"
```
### Result
```
$ ruby -v
ruby 3.4.0dev (2024-09...
watson1978 (Shizuo Fujita)
06:09 PM Revision 77521afa (git): [PRISM] Do not warn ambiguous ampersand when symbol literal
Fixes [Bug #20735] kddnewton (Kevin Newton)
05:44 PM Feature #20309: Bundled gems for Ruby 3.5
Regarding `irb`, I find it concerning that we need to add code like this: https://github.com/ruby/ruby/blob/9afc6a981deae6e23d938cf5c2c4baadfeaafdb1/prelude.rb#L12-L44. Those are internals of Bundler that are likely to break, and I can't... deivid (David Rodríguez)
05:16 PM Bug #20737: Accidentally changed warning target on Ruby 3.3
Agreed, I didn't expect new warnings in 3.3.5 when 3.3.4 did not warn, and extra warnings can break CI (e.g. #20713). Eregon (Benoit Daloze)
05:57 AM Bug #20737 (Closed): Accidentally changed warning target on Ruby 3.3
https://github.com/ruby/ruby/pull/11613 hsbt (Hiroshi SHIBATA)
04:10 AM Bug #20737: Accidentally changed warning target on Ruby 3.3
Makes sense. Let's revert that back to the Ruby 3.3.4 one in Ruby 3.3.6. k0kubun (Takashi Kokubun)
04:03 AM Bug #20737 (Closed): Accidentally changed warning target on Ruby 3.3
I heard that concern from yhonda.
I request to backport bundled_gems.rb that is same version of the current master. After that, Ruby 3.3.5 show warnings when some default gems was loaded.
https://github.com/ruby/ruby/blob/ruby_3_3/...
hsbt (Hiroshi SHIBATA)
05:12 PM Misc #20739: Test suite does not carry over CLI options
I think it's a real issue and sometimes valuable to fix (it hurts the coverage of tests * flags).
#6648 could be helpful to automatically inherit passed flags.
Alternatively, we could ensure we only pass options for tests through `RUBYOP...
Eregon (Benoit Daloze)
01:37 PM Misc #20739 (Open): Test suite does not carry over CLI options
I'm not sure if anything needs to change here, but I wanted to report this in case anyone had any particular ideas. When running the ruby/ruby test suite, lots of tests call `EnvUtil.invoke_ruby` directly or indirectly through `assert_in... kddnewton (Kevin Newton)
05:01 PM Bug #20731 (Closed): warning: mismatched indentations at 'when' appears with prism enabled ruby
kddnewton (Kevin Newton)
04:08 PM Bug #20731: warning: mismatched indentations at 'when' appears with prism enabled ruby
I have opened https://github.com/ruby/ruby/pull/11620 to fix this. kddnewton (Kevin Newton)
02:42 AM Bug #20731 (Assigned): warning: mismatched indentations at 'when' appears with prism enabled ruby
hsbt (Hiroshi SHIBATA)
01:37 AM Bug #20731: warning: mismatched indentations at 'when' appears with prism enabled ruby
@mame
Thanks!
hsbt (Hiroshi SHIBATA)
01:34 AM Bug #20731: warning: mismatched indentations at 'when' appears with prism enabled ruby
The wrong warning with `rss` gem is a different issue. I have created a separate ticket #20732. mame (Yusuke Endoh)
01:24 AM Bug #20731: warning: mismatched indentations at 'when' appears with prism enabled ruby
I also have similar issues with `rss`.
```
/Users/hsbt/Documents/github.com/ruby/ruby/gems/src/rss/lib/rss/1.0.rb:81: warning: mismatched indentations at ‘else’ with ‘if’ at 79
(snip)
```
https://github.com/ruby/rss/blob/master/...
hsbt (Hiroshi SHIBATA)
01:20 AM Bug #20731 (Closed): warning: mismatched indentations at 'when' appears with prism enabled ruby
### Steps to reproduce
1. Create a `case_sample.rb` file
```
foo = :bar
case foo
when :bar
p 'foo is :bar'
when :baz
# do something
else
# do something
end
```
2. Run this file against the latest Ruby 3.4.0...
yahonda (Yasuo Honda)
04:51 PM Revision 9afc6a98 (git): [PRISM] Only parse shebang on main script
Fixes [Bug #20730] kddnewton (Kevin Newton)
04:51 PM Revision d42d1905 (git): [PRISM] Allow case/when to be indented with no warning
Fixes [Bug #20731] kddnewton (Kevin Newton)
04:45 PM Bug #20740: prism_compile coding issue for PM_FORWARDING_SUPER_NODE
PR here: https://github.com/ruby/ruby/pull/11621 luke-gru (Luke Gruber)
04:44 PM Bug #20740 (Closed): prism_compile coding issue for PM_FORWARDING_SUPER_NODE
I found a coding issue in prism_compile.c but I can't find a bug that would result from it.
The `current_block` is not set back when a block is given.
luke-gru (Luke Gruber)
04:09 PM Bug #20732 (Closed): prism emits "mismatched indentations" warning in eval
Applied in changeset commit:git|74f315c3f5908512dfdeeab2dd76d93e98149769.
----------
[PRISM] Turn off mismatched indentation warnings in eval
Fixes [Bug #20732]
kddnewton (Kevin Newton)
03:26 PM Bug #20732: prism emits "mismatched indentations" warning in eval
I have opened https://github.com/ruby/ruby/pull/11618 to fix this. kddnewton (Kevin Newton)
01:28 AM Bug #20732 (Closed): prism emits "mismatched indentations" warning in eval
```ruby
eval(<<-EOC)
if @check
end
EOC
```
```
$ ruby --parser=parse.y -w t.rb
$ ruby --parser=prism -w t.rb
(eval at t.rb:1):2: warning: mismatched indentations at 'end' with 'if' at 1
```
This issue actually occurs in ...
mame (Yusuke Endoh)
04:08 PM Revision 74f315c3 (git): [PRISM] Turn off mismatched indentation warnings in eval
Fixes [Bug #20732] kddnewton (Kevin Newton)
03:05 PM Revision 353997dd (git): [ruby/prism] Refactor and move common node flags count into a constant to reuse in templates
https://github.com/ruby/prism/commit/c20bf05ecc andrykonchin (Andrew Konchin)
03:05 PM Revision 38f8f42e (git): [ruby/prism] Unify code style of flags generation in the nodes templates
https://github.com/ruby/prism/commit/dbb7e0a44e andrykonchin (Andrew Konchin)
02:58 PM Feature #20738: Removing a specific entry from a hash literal
With the previous idea, I can't have both removing entries and returning nil depending on the condition.
``` ruby
# If user.child? is true and user.parent is nil, I want parent_name: nil, but the entry is removed.
{
?parent_name:...
ursm (Keita Urashima)
01:17 PM Feature #20738: Removing a specific entry from a hash literal
nobu (Nobuyoshi Nakada) wrote in #note-1:
> "A special value" doesn't feel like a good idea to me.
Hmmm, does that mean we should extend the syntax? For example, something like this?
``` ruby
{
foo: 1,
?bar: nil
} #=> {foo...
ursm (Keita Urashima)
12:16 PM Feature #20738: Removing a specific entry from a hash literal
Yes, I sometimes do that as well. However, I am not happy that the shape of the resulting hash is unclear. ursm (Keita Urashima)
11:59 AM Feature #20738: Removing a specific entry from a hash literal
How about using `**`?
```ruby
def bar? = false
{
foo: 1,
**(bar? ? { bar: 2 } : {})
}
# => {:foo=>1}
```
Also, you can use `**nil` in ruby 3.4-dev.
```ruby
def bar? = false
{
foo: 1,
**({ bar: 2 } if bar?)...
osyo (manga osyo)
07:57 AM Feature #20738: Removing a specific entry from a hash literal
"A special value" doesn't feel like a good idea to me. nobu (Nobuyoshi Nakada)
07:33 AM Feature #20738 (Rejected): Removing a specific entry from a hash literal
Sometimes I want to decide whether or not to add a particular entry to a hash depending on a condition. If the entire hash does not use nil, I can use Hash#compact.
```ruby
{
foo: 1,
bar: bar? ? 2 : nil
}.compact
```
But i...
ursm (Keita Urashima)
02:06 PM Revision c996f409 (git): Ignore -Wdangling-pointer in rb_gc_set_stack_end
Fixes this compiler warning:
thread.c:4530:18: warning: storing the address of local variable ‘stack_end’ in ‘*stack_end_p’ [-Wdangling-pointer=]
4530 | *stack_end_p = &stack_end;
| ~~~~~~~~~~~~~^~~~~~~~~~~~
peterzhu2118 (Peter Zhu)
01:17 PM Revision f0dcbbe9 (git): [ruby/prism] Reverse-sync numbered reference range handling
https://github.com/ruby/prism/commit/a2f57ef6e3 kddnewton (Kevin Newton)
12:42 PM Revision 36b2fea6 (git): [rubygems/rubygems] Remove `BUNDLER_IGNORE_DEFAULT_GEM`
As long as we use a high enough test version, the default version of
Bundler should never get in the middle.
https://github.com/rubygems/rubygems/commit/d63f0818aa
deivid (David Rodríguez)
12:42 PM Revision 8e2d971b (git): [rubygems/rubygems] Remove redundant arguments passed to `bundle` helper
They are used by default.
https://github.com/rubygems/rubygems/commit/0b7f7d879f
deivid (David Rodríguez)
12:42 PM Revision 64252851 (git): [rubygems/rubygems] Make sure test does not load system version of Bundler
https://github.com/rubygems/rubygems/commit/d850ea1d95 deivid (David Rodríguez)
10:37 AM Bug #20725 (Closed): Inconsistent handling of doubly-unbounded ranges in Range#overlap?
Applied in changeset commit:git|24493779b79bb57fd2e71bf6e0ababe95448a9d6.
----------
[Bug #20725] Should not call compare on `nil`-endpoint
It means unbounded, always inclusive of other ranges.
nobu (Nobuyoshi Nakada)
01:56 AM Bug #20725: Inconsistent handling of doubly-unbounded ranges in Range#overlap?
https://github.com/ruby/ruby/pull/11609 nobu (Nobuyoshi Nakada)
09:23 AM Revision 24493779 (git): [Bug #20725] Should not call compare on `nil`-endpoint
It means unbounded, always inclusive of other ranges. nobu (Nobuyoshi Nakada)
07:52 AM Revision 0f3dc2f9 (git): Prevent warnings "the block passed to ... may be ignored"
mame (Yusuke Endoh)
07:45 AM Bug #20723: `IO#close` is broken on Ruby 3.3+ when using the Fiber scheduler.
Sorry about this. I think https://github.com/ruby/ruby/pull/11614 is the smallest diff that will fix the issue (and this should probably be backported to 3.3).
Separately to that, I wonder if we need to wrap up some common function fo...
kjtsanaktsidis (KJ Tsanaktsidis)
06:49 AM Revision b6c7226f (git): Put typeprof.gemspec
mame (Yusuke Endoh)
06:49 AM Revision f090d1fa (git): Try to find bundled gem version from lib/*/version.rb
mame (Yusuke Endoh)
06:49 AM Revision cf5b9658 (git): Use the development version of typeprof in test-bundled-gems
mame (Yusuke Endoh)
05:35 AM Revision 58942023 (git): typo otherBasis -> orthoBasis
The original function name in ao.c was orthoBasis.
I guess the function is generating orthonormal basis (https://en.wikipedia.org/wiki/Orthonormal_basis).
aoki1980taichi
04:19 AM Revision 3146cbbb (git): Dont't warn reline called from irb, reline is already declared at irb gemspec
hsbt (Hiroshi SHIBATA)
02:39 AM Revision 6ae05584 (git): [ruby/net-http] Prevent warnings
```
/home/chkbuild/chkbuild/tmp/build/20240913T003003Z/ruby/test/net/http/utils.rb:32: warning: assigned but unused variable - e
/home/chkbuild/chkbuild/tmp/build/20240913T003003Z/ruby/test/net/http/utils.rb:61: warning: assigned but unu...
mame (Yusuke Endoh)
02:34 AM Revision 5e3f1b6a (git): Prevent a warning: assigned but unused variable - exp_events
mame (Yusuke Endoh)
02:32 AM Revision d1d0c50c (git): Prevent a warning: assigned but unused variable - t0
mame (Yusuke Endoh)
02:30 AM Bug #20734 (Closed): Test failure at FreeBSD 14.1
FreeBSD 14.1 build is also failure with ruby master. This is different error from #20733
```
[hsbt@freebsd ~/ruby]$ make
BASERUBY = /usr/local/bin/ruby --disable=gems
CC = clang
LD = ld
LDSHARED =...
hsbt (Hiroshi SHIBATA)
02:29 AM Bug #20733 (Open): Build failure OpenSSL extension with FreeBSD 13.3
FreeBSD 13.3 build on Ruby CI was failure from 1 week ago. I manually build ruby master on FreeBSD 13 and got the following error.
```
[hsbt@freebsd /usr/home/hsbt/ruby]$ make
BASERUBY = /usr/local/bin/ruby --disable=gems
...
hsbt (Hiroshi SHIBATA)
01:39 AM Misc #20728: Propose Eileen Uchitelle as a core committer
I thought she was a committer long ago. mame (Yusuke Endoh)
12:47 AM Bug #20729 (Closed): Test failure with 0fc8422a05 and native mswin environment
I got the following failure with mswin environment.
```
1) Failure:
TestRubyOptions#test_command_line_progname_nonascii [C:/Users/hsbt/DevDrive/github.com/ruby/ruby/test/ruby/test_rubyoptions.rb:1086]:
[ruby-dev:48752] [Bug #1055...
hsbt (Hiroshi SHIBATA)
12:28 AM Revision d80a81c1 (git): Constify `struct getpwnam_r_args::login`
nobu (Nobuyoshi Nakada)

09/12/2024

10:44 PM Misc #20728: Propose Eileen Uchitelle as a core committer
+1 k0kubun (Takashi Kokubun)
08:48 PM Misc #20728: Propose Eileen Uchitelle as a core committer
+1 Eregon (Benoit Daloze)
08:25 PM Misc #20728: Propose Eileen Uchitelle as a core committer
+1 jhawthorn (John Hawthorn)
08:17 PM Misc #20728: Propose Eileen Uchitelle as a core committer
+1, I think Eileen would make a great addition, especially as a maintainer on the Prism parser / compiler. She's also been participating in the MMtk GC integration and her help in that area is valuable as well. tenderlovemaking (Aaron Patterson)
07:18 PM Misc #20728 (Closed): Propose Eileen Uchitelle as a core committer
I'd like to propose Eileen Uchitelle (@eileencodes) as a core committer. Now that Prism ([Feature #20564]) is merged, I would like her help maintaining the Prism parser and compiler without having to go through me to get patches merged.
...
kddnewton (Kevin Newton)
09:36 PM Feature #20564 (Open): Switch default parser to Prism
>Is there the criteria for reverting this until Ruby 3.4 release?
I'm still waiting this answer.
hsbt (Hiroshi SHIBATA)
05:43 PM Feature #20564 (Closed): Switch default parser to Prism
Per this ticket, I have merged https://github.com/ruby/ruby/pull/11497 to switch the default parser on master. The caveats in this ticket still apply, and I will be working on those next.
As a part of this PR I have added a new GitHub...
kddnewton (Kevin Newton)
08:03 PM Revision 0fc8422a (git): Move checks for heap traversal to rb_gc_mark_weak
If we are during heap traversal, we don't want to call rb_gc_impl_mark_weak.
This commit moves that check from rb_gc_impl_mark_weak to rb_gc_mark_weak.
peterzhu2118 (Peter Zhu)
08:03 PM Revision 92b7b78e (git): Assert that we are during GC when marking
peterzhu2118 (Peter Zhu)
08:03 PM Revision 661f64e8 (git): Add variable objspace in RB_GC_MARK_OR_TRAVERSE
peterzhu2118 (Peter Zhu)
08:03 PM Revision 606db2c4 (git): Move special const checks to rb_gc_mark_weak
peterzhu2118 (Peter Zhu)
07:49 PM Revision 2d495300 (git): [PRISM] Fix up pm_compile_branch_condition issue with single insn iseqs
kddnewton (Kevin Newton)
07:19 PM Revision 0960c8aa (git): [DOC] Tweaks for Array#fetch_values (#11603)
burdettelamar (Burdette Lamar)
07:18 PM Revision ce5fd35b (git): [DOC] Tweaks for Array#fetch (#11602)
burdettelamar (Burdette Lamar)
07:07 PM Revision 05e02783 (git): [PRISM] Ignore test_parse_directory if error is nil
kddnewton (Kevin Newton)
06:55 PM Bug #20473: Ractor array/hash literals
Truthfully it might not be worth adding these optimizations. It's a lot to maintain in both compilers, and this kind of literal is extremely unlikely to be used with Ractors until other problems with Ractors are solved. I would just as s... kddnewton (Kevin Newton)
06:40 PM Bug #20473: Ractor array/hash literals
I added back the array literal optimizations here: https://github.com/luke-gru/ruby/tree/bug20473
I didn't send a PR because it's not working with prism yet. Let me know if this is an okay solution, I could get it working for prism to...
luke-gru (Luke Gruber)
06:09 PM Bug #20727 (Assigned): YJIT segmentation fault inside of invalidate_block_version
For a while we've been seeing an occasional segfault in production inside of YJIT's invalidation code. It seems to happen most often when a invalidation on a widely used CME.
```
[BUG] Segmentation fault at 0x0000000000000014"
"ruby...
jhawthorn (John Hawthorn)
05:43 PM Bug #20586 (Closed): Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted
Applied in changeset commit:git|f2919bd11c570fc5f5440d1f101be38f61e3d16b.
----------
Add error checking to readdir, telldir, and closedir calls in dir.c
Raise SystemCallError exception when these functions return an error.
This change...
jeremyevans (Jeremy Evans)
05:43 PM Revision 9c461cd1 (git): [PRISM] Check error type for parsing directory
kddnewton (Kevin Newton)
05:43 PM Revision 38ba15be (git): [ruby/prism] Check errno for parsing directory
https://github.com/ruby/prism/commit/d68ea29d04 kddnewton (Kevin Newton)
05:43 PM Revision ca61729f (git): Fix opening multibyte character filepath on Windows
kddnewton (Kevin Newton)
05:43 PM Revision d4af38ec (git): Fix FILE_SHARE_* permissions for Windows in read_entire_file
kddnewton (Kevin Newton)
05:43 PM Revision d5232fd7 (git): Temporarily exclude some TestRubyOptions test for parse.y
The description has been updated when running with Prism to have
+PRISM, which means that tests asserting against the description
when running with --parser=parse.y will be incorrect if the
subprocess ends up using Prism. We need to fix ...
kddnewton (Kevin Newton)
05:43 PM Revision f59b908e (git): [PRISM] Omit some TestAST tests when Prism is enabled
kddnewton (Kevin Newton)
05:43 PM Revision d4ab1e44 (git): [PRISM] Move compile scope node to its own function
kddnewton (Kevin Newton)
05:43 PM Revision c4b43692 (git): [PRISM] Move case node compilation into its own function
kddnewton (Kevin Newton)
05:43 PM Revision ea2af578 (git): Switch the default parser from parse.y to Prism
This commit switches the default parser to Prism. There are a
couple of additional changes related to this that are a part of
this as well to make this happen.
* Switch the default parser in parse.h
* Remove the Prism-specific workflow ...
kddnewton (Kevin Newton)
05:04 PM Revision f2919bd1 (git): Add error checking to readdir, telldir, and closedir calls in dir.c
Raise SystemCallError exception when these functions return an error.
This changes behavior for the following case (found by the tests):
```ruby
dir1 = Dir.new('..')
dir2 = Dir.for_fd(dir1.fileno)
dir1.close
dir2.close
```
The above c...
jeremyevans (Jeremy Evans)
03:50 PM Revision 15135030 (git): [ruby/prism] Do not warn \r in shebang on windows
https://github.com/ruby/prism/commit/e8c862ca1f kddnewton (Kevin Newton)
03:04 PM Revision a542479a (git): [ruby/irb] Remove KEYWORD_ALIASES which handled special alias name
of irb_break irb_catch and irb_next command
(https://github.com/ruby/irb/pull/1004)
* Remove KEYWORD_ALIASES which handled special alias name of irb_break irb_catch and irb_next command
* Remove unused instance variable user_aliases
C...
tompng (tomoya ishida)
02:47 PM Revision fcb05830 (git): Accept version range
Single `Integer` argument means an exact match to the major version. nobu (Nobuyoshi Nakada)
02:33 PM Revision d8aa8f41 (git): Related for Array#eql?
burdettelamar (Burdette Lamar)
02:32 PM Revision c147e43b (git): [DOC] Related for Array#empty?
burdettelamar (Burdette Lamar)
02:32 PM Revision 471d3950 (git): [DOC] Tweaks for Array#each_index
burdettelamar (Burdette Lamar)
02:24 PM Revision ad761ad2 (git): Release GVL for get{pwnam,pwuid,grgid,grnam}_r calls in process.c
Do not release GVL around get{pwuid,pwnam,grgid,grnam} calls,
as doing so is not thread-safe. Another C extension could have
a concurrent call, and derefencing the returned pointer from
these calls could result in a segfault.
Have rb_h...
jeremyevans (Jeremy Evans)
02:23 PM Bug #20620: singleton_method undefined for module using "extend self"
I submitted a pull request to implement this: https://github.com/ruby/ruby/pull/11605
In terms of compatibility issues:
* For singleton classes that prepend a module, and have the method defined in both the singleton class and prep...
jeremyevans0 (Jeremy Evans)
02:15 PM Revision b10500b7 (git): Assume VM is locked in rb_vm_ci_free
The GC always locks the VM, so we don't need to lock it in rb_vm_ci_free. peterzhu2118 (Peter Zhu)
01:30 PM Bug #20726 (Closed): Issue with hash without braces when assigned to constant with ractor literals
```ruby
# shareable_constant_value: literal
a = 'hi'
A = ['hello' => a]
p A
```
gives:
```
./ruby -I../ruby/lib -I. -I.ext/x86_64-linux -I.ext/common -r./x86_64-linux-fake ../ruby/test.rb
-- raw disasm--------
trace:...
luke-gru (Luke Gruber)
01:03 PM Bug #20725 (Closed): Inconsistent handling of doubly-unbounded ranges in Range#overlap?
The new `Range#overlap?` method does not seem to have a clear definition of how it behaves when passed ranges with nil begin **and** end `(nil..)`.
In the following two cases, it seems to treat this type of range as an "infinite" rang...
jeromepl (Jerome Parent-Levesque)
12:06 PM Revision f47c057c (git): Remove unnecessary file
ydah (Yudai Takada)
12:06 PM Revision 885cf350 (git): Lrama v0.6.10
ydah (Yudai Takada)
07:28 AM Revision 2a1962fc (git): Warn missing irb cases
hsbt (Hiroshi SHIBATA)
07:28 AM Revision 86fcfcb3 (git): Fixed ensure scope
hsbt (Hiroshi SHIBATA)
07:28 AM Revision 6c9f0be6 (git): Don't use instance variable
hsbt (Hiroshi SHIBATA)
07:28 AM Revision ee064d1c (git): Back to Bundler.ui and Bundler::Definition.no_lock
hsbt (Hiroshi SHIBATA)
07:28 AM Revision 754e15f4 (git): Support bundler/inline mode
hsbt (Hiroshi SHIBATA)
07:28 AM Revision 70c66137 (git): Use better resolution by Bundler at force_activate
hsbt (Hiroshi SHIBATA)
03:53 AM Feature #19908: Update to Unicode 15.1
>I think it's more prudent to do 15.1 first, then 16.0.
Agreed, thanks!
hsbt (Hiroshi SHIBATA)
03:21 AM Feature #19908: Update to Unicode 15.1
hsbt (Hiroshi SHIBATA) wrote in #note-8:
> Unicode 16.0 has been released.
> ...
I think it's more prudent to do 15.1 first, then 16.0. I hope to be able to work on this soon. I created a separate issue for 16.0.
duerst (Martin Dürst)
01:56 AM Feature #19908: Update to Unicode 15.1
Unicode 16.0 has been released.
https://www.unicode.org/versions/Unicode16.0.0/
Should we move this instead of 15.1?
hsbt (Hiroshi SHIBATA)
03:20 AM Feature #20724 (Closed): Update to Unicode 16.0
Unicode 16.0 has been released (see https://www.unicode.org/versions/Unicode16.0.0/). We should update to 16.0 after updating to 15.1. duerst (Martin Dürst)
 

Also available in: Atom