Project

General

Profile

Activity

From 11/26/2022 to 12/02/2022

12/02/2022

11:53 PM Revision 59e389af (git): UnboundMethod only refer defined_class
UnboundMethod records caller's class, like `D` or `E` on the
following case:
```ruby
class C
def foo = :foo
end
class D < C
end
class E < C
end
d = D.instance_method(:foo)
e = E.instance_method(:foo)
```
But `d` and `e` only refer...
ko1 (Koichi Sasada)
11:44 PM Bug #19173: syntax_suggest segfaults on syntax error when refinement activated
@schneems This seems to be less about syntax suggest than refinements. @tenderlovemaking already has a PR up that should fix it: https://github.com/ruby/ruby/pull/6853 ufuk (Ufuk Kayserilioglu)
10:14 PM Bug #19173: syntax_suggest segfaults on syntax error when refinement activated
Line 25 is the require which seems odd https://github.com/ruby/ruby/blob/85a1c67a6550641e5de96cdbee1713be3f1e8882/lib/syntax_suggest/core_ext.rb#L25
I’ll try to reproduce when I get back to my computer.
schneems (Richard Schneeman)
12:44 PM Bug #19173 (Closed): syntax_suggest segfaults on syntax error when refinement activated
While reporting certain syntax errors (e.g. “Invalid yield”, “Invalid redo”), `syntax_suggest` segfaults when a refinement is activated:
```
% echo 'yield' > test.rb; ruby test.rb
test.rb:1: Invalid yield
test.rb: compile error (Sy...
tomstuart (Tom Stuart)
10:43 PM Feature #18980: `it` as a default block parameter
Or `_$`:
```Ruby
[1, 2, 3].map { puts _$ }
```
```
[1, 2, 3].map { puts _$ }
```
Or even just `$` by itself:
```Ruby
[1, 2, 3].map { puts $ }
```
```
[1, 2, 3].map { puts $ }
```
In my opinion $ is underutilised in Ruby compared to o...
maedi (Maedi Prichard)
10:00 PM Revision 7161bf34 (git): [ruby/irb] Require pathname in test helper
(https://github.com/ruby/irb/pull/467)
https://github.com/ruby/irb/commit/39c6924c12
Stan Lo
09:26 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
I'm not against this feature, but I'm not sure if it has a valid use case.
I like the idea of using break as a semantic for making a fiber exit in a similar way to a method call, etc.
`Fiber#raise` is currently used for cancellatio...
ioquatix (Samuel Williams)
08:57 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
This should be closed, in favor of a (TBD) structured concurrency system, built on `Fiber.current.storage` (#19078) and/or FiberScheduler. :) nevans (Nicholas Evans)
08:53 PM Revision 41bacd9b (git): Remove unused rb_shape_flag_shift and rb_shape_flag_mask
jemmai (Jemma Issroff)
08:53 PM Revision ebd4c7bb (git): Fixed yjit bindings rb_gc_write_barrier
jemmai (Jemma Issroff)
08:53 PM Revision 4c5e8979 (git): Extracted rb_shape_id_offset
jemmai (Jemma Issroff)
08:53 PM Revision 606653e4 (git): Update yjit/src/codegen.rs
Maxime Chevalier-Boisvert
08:53 PM Revision be40af28 (git): make flag clearing better
tenderlovemaking (Aaron Patterson)
08:53 PM Revision 07fe3d37 (git): only generate wb when we really need to
tenderlovemaking (Aaron Patterson)
08:53 PM Revision 744b0527 (git): bail on compilation if the comptime receiver is frozen
tenderlovemaking (Aaron Patterson)
08:53 PM Revision 7b5ee9a8 (git): do not fire the wb when writing immediates
tenderlovemaking (Aaron Patterson)
08:53 PM Revision 17f9bcd7 (git): implement IV writes
tenderlovemaking (Aaron Patterson)
08:43 PM Revision 69fd673b (git): [ruby/irb] Disable debug cmd tests based on project structure
instead of env
(https://github.com/ruby/irb/pull/466)
It's hard to find an env var that's universally set in all Ruby CI
environments but not in local. Checking gemspec seems to be a better way
as `syntax_suggest` already uses it for a ...
Stan Lo
08:33 PM Revision e9e624b7 (git): YJIT: check that we correctly auto-enable YJIT on Linux (#6854)
* YJIT: check that we correctly auto-enable YJIT on Linux
YJIT should be automatically built on Linux x86-64 when
rustc is present, and we should see +YJIT in the version string.
* Use miniruby rather than system ruby
maximecb (Maxime Chevalier-Boisvert)
07:21 PM Revision 82b86b4c (git): [rubygems/rubygems] Delete partial file and re-raise on Errno::ENOSPC.
Add test for not leaving empty files if ENOSPC is raised during 'gem install'
https://github.com/rubygems/rubygems/commit/8e0e20f079
Ellen Marie Dash
06:49 PM Revision 5fafff15 (git): Do not run drb SSL tests on Windows
These tests often cause a timeout and this issue seems specific to the
Windows platforms.
https://github.com/ruby/ruby/actions/runs/3603761925/jobs/6072346738
k0kubun (Takashi Kokubun)
06:26 PM Revision 7b38853b (git): Skip another flaky Ractor test for YJIT
k0kubun (Takashi Kokubun)
06:18 PM Revision 85f041c0 (git): Skip a couple of Ractor tests
Koichi plans to rework Ractor implementation to address these failures.
He agreed to skip flaky Ractor tests for now.
k0kubun (Takashi Kokubun)
05:44 PM Bug #19174 (Closed): YJIT configure "checking whether rustc works for YJIT... no" in rustc 1.65.0 on x86_64
Applied in changeset commit:git|1015e69d37b8e75145a3d21e4bd54fa538d1fa68.
----------
YJIT: echo "\n" is not portable
It's unspecified by POSIX. zsh and dash give a newline and
bash doesn't substitute it. Attributes don't have to be
fol...
alanwu (Alan Wu)
04:33 PM Bug #19174: YJIT configure "checking whether rustc works for YJIT... no" in rustc 1.65.0 on x86_64
That check is intended for automatically enabling YJIT when we can find a suitable rustc.
When we get --enable-yjit explicitly we listen to that and don't use the result of the check, which is what you're seeing. So it's fine.
That s...
alanwu (Alan Wu)
02:45 PM Bug #19174 (Closed): YJIT configure "checking whether rustc works for YJIT... no" in rustc 1.65.0 on x86_64
On the latest master branch `11871e49c4fe493d6b958046969bc863f7fb6627` on Fedora 36,
```
$ uname -m
x86_64
$ which rustc
/bin/rustc
$ rustc --version
rustc 1.65.0 (Fedora 1.65.0-1.fc37)
```
I am seeing the "checking whet...
jaruga (Jun Aruga)
05:24 PM Revision 1015e69d (git): YJIT: echo "\n" is not portable
It's unspecified by POSIX. zsh and dash give a newline and
bash doesn't substitute it. Attributes don't have to be
followed by a newline anyway, so just remove it.
[Bug #19174]
alanwu (Alan Wu)
05:23 PM Revision ed1e0c2d (git): Update bundled gems list at 6f3c8fdab46872ccece3bf512adac9 [ci skip]
git[bot]
05:23 PM Revision 6f3c8fda (git): debug.gem v1.7.0
ko1 (Koichi Sasada)
05:05 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
Thanks for the discussion and the name suggestion. I updated the PR https://github.com/ruby/ruby/pull/6766 to use `Data#with`. I would be grateful if it could get a review.
However, that raises a question: How should `Data#with` behav...
ufuk (Ufuk Kayserilioglu)
03:13 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
Discussed at the dev meeting.
Regarding method names, @matz likes `Data#update`. However, @ko1 objects because "update" is used as a destructive vocabulary in `Hash#update`. @matz said Data#with` is acceptable; Data#dup` is not accept...
mame (Yusuke Endoh)
02:54 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
RubyBugs (A Nonymous) wrote in #note-21:
> How is this?
Thanks for the update.
Now I have a question. Do you really want to write `p.with(field => p.send(field) + delta)`? I don't think it is very elegant. It is not very convincin...
mame (Yusuke Endoh)
05:03 PM Revision a5dde619 (git): Fix up "Avoid bash specific variable substitution"
Keep `target_alias` empty if it is set to empty. If it is set to non
empty, `os_version_style_transform` is not used.
nobu (Nobuyoshi Nakada)
05:03 PM Revision c2671fa0 (git): downloader.rb: Select less components path
nobu (Nobuyoshi Nakada)
04:58 PM Bug #19175 (Closed): Ripper does not recognize some pattern matching defining local variable
Ripepr does not recognize hshptn and aryptn splat defining local variables.
~~~ruby
Ripper.sexp('a in [*x]; x')
# =>
[:program,
[[:case, [:vcall, [:@ident, "a", [1, 0]]], [:in, [:aryptn, nil, nil, [:var_field, [:@ident, "x", [1, 7]...
tompng (tomoya ishida)
04:40 PM Revision eb2b717a (git): YJIT: Make case-when optimization respect === redefinition (#6846)
* YJIT: Make case-when optimization respect === redefinition
Even when a fixnum key is in the dispatch hash, if there is a case such
that its basic operations for === is redefined, we need to fall back to
checking each case like the int...
alanwu (Alan Wu)
04:32 PM Revision fa77bcf7 (git): YJIT: Change the default --yjit-call-threshold to 30 (#6850)
k0kubun (Takashi Kokubun)
04:28 PM Revision e558c374 (git): downloader.rb: Fix link to absolute cache path
nobu (Nobuyoshi Nakada)
04:23 PM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
@Dan0042 (Daniel DeLorme) wrote in #note-21:
> What about when we want per-ractor storage... a fourth type?
FWIW, `Ractor#[]` has existed since 3.0: https://docs.ruby-lang.org/en/3.0/Ractor.html#method-i-5B-5D :)
> ...
In my opini...
nevans (Nicholas Evans)
03:00 PM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
I'm also a bit late to this. While I do have some nitpicks, I'll leave them for another ticket (if I ever get around to it). But, to answer a couple of @Dan0042's questions (and maybe others):
As mentioned by @eregon above, one of ...
nevans (Nicholas Evans)
09:34 AM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
I made a compatibility shim for older Rubies. It's not 100% perfect, but it's close enough to be useful.
https://github.com/ioquatix/fiber-storage
ioquatix (Samuel Williams)
02:46 PM Revision f28e79ca (git): Use consistent style [ci skip]
nobu (Nobuyoshi Nakada)
02:46 PM Revision bb0ec7df (git): Wait killed threads
nobu (Nobuyoshi Nakada)
02:45 PM Revision eb678535 (git): Avoid bash specific variable substitution
It may cause parse errors in some other sh even in never executed
parts.
nobu (Nobuyoshi Nakada)
12:56 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
I hope I summarized it correctly: https://gitlab.com/gitlab-org/ruby/gems/prometheus-client-mmap/-/issues/39
I'm not sure if your and my test case crash for precisely the same reason. If they do, then I am missing how unmap fits into ...
mk (Matthias Käppler)
12:32 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Thanks for sharing this; I still don't think this is related to the memory map going away. Not exclusively anyway. My original test case does not close or unmap the counter file, but it still crashes. The counter is still in scope when w... mk (Matthias Käppler)
11:31 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
And to confirm, `FastMmappedFile` does unmap when it's GCed too:
```ruby
static void mm_free(mm_ipc *i_mm) {
if (i_mm->t->path) {
if (munmap(i_mm->t->addr, i_mm->t->len) != 0) {
```
So yeah, can happen either way.
byroot (Jean Boussier)
11:26 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Here's the repro:
```ruby
require 'prometheus'
require 'prometheus/client'
File.write("/tmp/mmap.txt", "a" * 100)
file = FastMmapedFile.new("/tmp/mmap.txt")
str = file.slice(0, 100)
p str
file.munmap
p str
```
So yeah it...
byroot (Jean Boussier)
11:13 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
> calls into new_str0, which when the string is large enough, will be malloc'ed by MRI, correct?
No. It calls `rb_str_new("", 0)` which means it's always an empty String, so it only allocates an Object slot.
It then never increase...
byroot (Jean Boussier)
09:54 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
@byroot I wonder if you could help me understand the underlying issue better. I found a minimal, executable test case that reproduces this issue reliably:
```ruby
Prometheus::Client::MmapedValue.new(:counter, :counter, 'ordered_count...
mk (Matthias Käppler)
11:51 AM Bug #19012: BasicSocket#recv* methods return an empty packet instead of nil on closed connections
Apparently we can get this via `getsockopt(fd, SOL_SOCKET, SO_TYPE, &type, &length);`, the question being how portable it is. byroot (Jean Boussier)
11:46 AM Bug #19012: BasicSocket#recv* methods return an empty packet instead of nil on closed connections
> I am not sure if there is a portable way to determine if the file descriptor behind an IO object is stream or datagram.
Yeah, me neither. I'll try to dig more.
byroot (Jean Boussier)
02:15 AM Bug #19012: BasicSocket#recv* methods return an empty packet instead of nil on closed connections
This is what @akr said at the dev meeting. (My understanding)
> The proposed behavior might be possible for stream. On the other hand, for datagram, the current behavior is better. I am not sure if there is a portable way to determine...
mame (Yusuke Endoh)
10:47 AM Revision 11871e49 (git): [ruby/reline] Fix misuse of kwarg in IO#raw
- Obviously, `tim` is a typo for `time`
- This didn't cause an exception because IO#raw is implemented in C and it doesn't check the keyword of the parameters
- Though this typo doesn't produce any problems for now, I think it should be ...
hasumikin (hitoshi hasumi)
10:33 AM Revision 21ed929e (git): [ruby/io-console] Omit on JRuby
https://github.com/ruby/io-console/commit/9122c181eb nobu (Nobuyoshi Nakada)
10:33 AM Revision 678bcfca (git): [ruby/io-console] Check rawmode option names strictly
https://github.com/ruby/io-console/commit/aa8fc7e947 nobu (Nobuyoshi Nakada)
09:14 AM Bug #19172 (Open): `ruby_thread_has_gvl_p` is innacurate sometimes -- document or change?
Howdy 👋! I work for Datadog [on the ddtrace gem](https://github.com/DataDog/dd-trace-rb) and I found a... sharp edge on the internal `ruby_thread_has_gvl_p` API.
I am aware that `ruby_thread_has_gvl_p` is documented an experimental AP...
ivoanjo (Ivo Anjo)
08:54 AM Feature #6047 (Closed): read_all: Grow buffer exponentially in generic case
Applied in changeset commit:git|7390eb43fe1bfb069af80ba8f73f7dc4999df0fd.
----------
io.c (read_all): grow the buffer exponentially when size is unknown
[Feature #6047]
Currently it's grown by `BUFSIZ` (1024) on every iteration which ...
Anonymous
08:53 AM Revision 7390eb43 (git): io.c (read_all): grow the buffer exponentially when size is unknown
[Feature #6047]
Currently it's grown by `BUFSIZ` (1024) on every iteration which is bit wasteful.
Instead we can double the capacity whenever there is less than `BUFSIZ` capacity
left.
byroot (Jean Boussier)
08:24 AM Bug #19169: Kernel#freeze doesn't propagate to singleton class when the singleton class has prepended modules
I ran it against older rubies, and it seems like it has been behaving like this since `prepend` was introduced.
It seem to work on TruffleRuby, but not JRuby.
byroot (Jean Boussier)
07:59 AM Feature #19171 (Closed): Update Unicode data to Unicode Version 15.1
According to http://blog.unicode.org/2022/11/the-unicode-standard-2023-release.html, Unicode plans to release Version 15.1 in September 2023. According to https://www.unicode.org/versions/beta.html, public alpha review starts Feb. 7, 202... duerst (Martin Dürst)
07:56 AM Revision 07ac7077 (git): MJIT: Use install = true for bundler/inline
It prints a `bundle install`-like output, which seems more useful than
a silent output.
k0kubun (Takashi Kokubun)
07:41 AM Revision f01bfa8a (git): [ruby/irb] This doesn't work on RubyCI either
http://rubyci.s3.amazonaws.com/rhel_zlinux/ruby-master/log/20221202T063302Z.fail.html.gz
http://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20221202T053006Z.fail.html.gz
http://rubyci.s3.amazonaws.com/freebsd12/ruby-master/lo...
k0kubun (Takashi Kokubun)
07:22 AM Revision b3890670 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
07:22 AM Revision 6930a256 (git): NEWS.md: sort [ci skip]
znz (Kazuhiro NISHIYAMA)
07:20 AM Revision ad4eab1a (git): Wait killed thread
nobu (Nobuyoshi Nakada)
04:49 AM Revision 4fa47eab (git): Clarify the storage argument. (#6849)
* Slightly more consistent indentation with other parts of the document. Samuel Williams
04:43 AM Revision 7e3b42d0 (git): [ruby/irb] Skip debug command tests on ruby/ruby
Stan has said these tests could be excluded if they don't work on
ruby/ruby CI.
https://github.com/ruby/irb/commit/11e779ecb7
k0kubun (Takashi Kokubun)
04:12 AM Revision bc3ac867 (git): [rubygems/rubygems] require bundler/setup only when Bundler is not defined
... to prevent "circular require" when `--disable-gems` is used.
This is a simplified case of https://github.com/ruby/ruby/commit/e5a0abc5dedfd011986b16e8f8cf5cda476984c9
```
$ bundle exec ruby -we 'system("ruby", "-w", "--disable-gems...
mame (Yusuke Endoh)
03:16 AM Misc #19170 (Closed): DevMeeting-2022-12-15
# The next dev meeting
**Date: 2022/12/15 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-12-15.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bu...
mame (Yusuke Endoh)
03:16 AM Misc #19074 (Closed): DevMeeting-2022-12-01 (postponed from 11-17)
mame (Yusuke Endoh)
03:14 AM Revision b6c66ead (git): [ruby/irb] Use the proper ruby command and library path
https://github.com/ruby/irb/commit/1416cc1871 nobu (Nobuyoshi Nakada)
02:33 AM Feature #19117: Include the method owner in backtraces, not just the method name
Discussed at the dev meeting. @matz was basically positive for this proposal. But there is still much to discuss and experiment, so it was decided to discuss for Ruby 3.3.
* How much impact does exception generation have on performanc...
mame (Yusuke Endoh)
01:34 AM Revision d55d1a73 (git): Skip examples for SyntaxError extensions on Ruby 3.2
hsbt (Hiroshi SHIBATA)
01:05 AM Revision 8abf9e6a (git): [ruby/irb] Test debug commands without yamatanooroti
(https://github.com/ruby/irb/pull/464)
* Add debug command tests that don't require yamatanooroti
* Remove debug command related yamatanooroti tests
As discussed in https://github.com/ruby/irb/pull/449#pullrequestreview-1187255149,
we...
Stan Lo
12:36 AM Revision 85a1c67a (git): [ruby/syntax_suggest] Add temp support for 3.2.0-preview{3,2,1}
This SyntaxError#path feature only exists in Ruby HEAD. Until it is released in a preview I want to continue to support existing releases of 3.2.0 (and also so CI will continue to work, as it still uses a preview version to execute tests... schneems (Richard Schneeman)
12:36 AM Revision 652e2d8f (git): [ruby/syntax_suggest] No longer need PathnameFromMessage with SyntaxError#path.
https://bugs.ruby-lang.org/issues/19138
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
https://github.com/ruby/syntax_suggest/commit/8e1e7b3298
hsbt (Hiroshi SHIBATA)
12:31 AM Revision def258e7 (git): Improve packing of iseq_constant_body struct
By moving the two bools into a packing gap above the mark_bits
pointer/union we can save 8 bytes in the struct and avoid an extra cache
line (328 bytes vs 320 bytes).
Co-authored-by: Adam Hess <HParker@github.com>
jhawthorn (John Hawthorn)
12:13 AM Revision dcbea767 (git): YJIT: Respect destination num_bits on STUR (#6848)
k0kubun (Takashi Kokubun)

12/01/2022

11:46 PM Bug #19169 (Closed): Kernel#freeze doesn't propagate to singleton class when the singleton class has prepended modules
```ruby
a = []
singleton = a.singleton_class
a.freeze
p singleton.frozen? # => true
a = []
singleton = a.singleton_class.tap { |klass| klass.prepend(Module.new) }
a.freeze
p singleton.frozen? # => false
```
It's because of ...
alanwu (Alan Wu)
11:37 PM Revision 8ffa8fc1 (git): Relax the timeout of a YAML test
https://cirrus-ci.com/task/4752663775019008 k0kubun (Takashi Kokubun)
11:37 PM Revision f0cf70c8 (git): Add a macro for SHAPE_DEBUG
Like before, default to VM_CHECK_MODE > 0, but this allows just enabling
shape debug helpers without the rest of VM_CHECK_MODE.
jhawthorn (John Hawthorn)
11:37 PM Revision da204d2e (git): Inherit max_iv_count from superclass
In 274870bd5434ab64ac3a3c9db9aa27d262c1d6d6 we gained the ability to
make an educated guess at the max_iv_count of a class based on its
initialize method. This commit makes subclasses inherit their super's
max_iv_count, which makes the e...
jhawthorn (John Hawthorn)
11:17 PM Revision 171e94bd (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTPHeader
(https://github.com/ruby/net-http/pull/83)
https://github.com/ruby/net-http/commit/1ea5004098
burdettelamar (Burdette Lamar)
10:43 PM Bug #19166 (Closed): Module#remove_method can change frozen modules when there is a prepended module
Applied in changeset commit:git|3d272b0fc822f5c2e9c716377b7fcecf15426b27.
----------
Module#remove_method: Check frozen on the right object
Previously, the frozen check happened on `RCLASS_ORIGIN(self)`, which
can return an iclass. The...
Anonymous
04:56 PM Bug #19166 (Closed): Module#remove_method can change frozen modules when there is a prepended module
```ruby
module A
prepend Module.new # remove this line and you'd get FrozenError as expected
def foo; end
freeze
remove_method :foo # remove works even though module is frozen!
p instance_methods(false) # => []
end
```
...
alanwu (Alan Wu)
10:43 PM Bug #19164 (Closed): [3.2.0dev] Freezing an object can prevent removing methods on its class
Applied in changeset commit:git|3d272b0fc822f5c2e9c716377b7fcecf15426b27.
----------
Module#remove_method: Check frozen on the right object
Previously, the frozen check happened on `RCLASS_ORIGIN(self)`, which
can return an iclass. The...
Anonymous
08:09 AM Bug #19164 (Closed): [3.2.0dev] Freezing an object can prevent removing methods on its class
The following snippet showcase the bug. It passes on 3.1 and older, but fails on 3.2.0
```ruby
klass = Class.new
klass.prepend(Module.new)
klass.new.freeze
klass.define_method(:bar) {} # works
klass.remove_method(:bar) # raise ...
byroot (Jean Boussier)
10:32 PM Revision 3d272b0f (git): Module#remove_method: Check frozen on the right object
Previously, the frozen check happened on `RCLASS_ORIGIN(self)`, which
can return an iclass. The frozen check is supposed to respond to objects
that users can call methods on while iclasses are hidden from users.
Other mutation methods li...
Jean byroot Boussier
10:06 PM Bug #19165: Method (with no param) delegation with *, **, and ... is slow
How many allocations is it with `...` when not using forwardable but just delegation with `(...)`? I'd think 1 Array + 1 Hash. Eregon (Benoit Daloze)
08:55 AM Bug #19165: Method (with no param) delegation with *, **, and ... is slow
FYI for confirming "five Array objects and two Hash objects" that I wrote above, I used ko1's allocation_tracer as follows:
```
require 'allocation_tracer'
ObjectSpace::AllocationTracer.setup([:type])
o.foo_with_triple_dots
pp O...
matsuda (Akira Matsuda)
08:49 AM Bug #19165 (Open): Method (with no param) delegation with *, **, and ... is slow
I found that method delegation via Forwardable is much slower than normal method call when delegating a method that does not take parameters.
Here's a benchmark that explains what I mean.
```
require 'forwardable'
require 'pp'
r...
matsuda (Akira Matsuda)
10:03 PM Bug #19168 (Closed): "such file" is bad grammar
The error message for a missing required file has bad grammar:
$ irb
irb(main):001:0> require 'wuxx'
<internal:/opt/local/lib/ruby3.1/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- wuxx (Load...
masterleep2 (Bill Lipa)
06:10 PM Bug #19167 (Closed): Object#inspect does not correctly show NilClass TrueClass and FalseClass stored in instance variables

~~~ruby
Object.new.instance_eval do
@a = nil
@b = NilClass
@c = true
@d = TrueClass
@e = [nil, NilClass, true, TrueClass]
puts self.inspect
end
# actual
# => #<Object:0x2f15e3c8 @a=nil, @b=nil, @c=true, @d=true, @...
tompng (tomoya ishida)
05:55 PM Bug #19145: TestException#test_exception_in_message timeouts
Thx for the fix. With commit:git|0436f1e15a, I don't observe the timeout anymore. vo.x (Vit Ondruch)
05:51 PM Bug #19147: `TestFileExhaustive#test_expand_path_for_existent_username` and `TestDir#test_home` fails on i686
Interestingly, testing with commit:git|0436f1e15a, there are now additional spec failures which appears to be the same issue:
~~~
1)
File.expand_path expands ~ENV['USER'] to the user's home directory ERROR
RuntimeError: can't set l...
vo.x (Vit Ondruch)
05:19 PM Bug #19079: Modules included in a DelegateClass cannot override delegate methods
This issue occurred for a private module in Rails: https://github.com/rails/rails/pull/46189#discussion_r991440668.
Using `include` in a subclass works. Using `prepend` also works, and is the workaround I used for the Rails module.
...
jonathanhefner (Jonathan Hefner)
02:57 PM Bug #19079: Modules included in a DelegateClass cannot override delegate methods
you can also try prepend instead of include:
```ruby
WithHelper = DelegateClass(Base) { prepend Helper }
```
Hanmac (Hans Mackowiak)
12:38 PM Bug #19079: Modules included in a DelegateClass cannot override delegate methods
If you want to include a module to a delegated class, try the following:
```ruby
class WithHelper<DelegateClass(Base)
include Helper
end
```
Matz.
matz (Yukihiro Matsumoto)
05:11 AM Bug #19079 (Rejected): Modules included in a DelegateClass cannot override delegate methods
The `DelegateClass` defines an anonymous class and defines forwarding methods to the class. The reported (so-called) issue is a natural consequence of the above behavior. `include` add methods defined in a module **above** the current c... matz (Yukihiro Matsumoto)
04:50 PM Revision 9da2a520 (git): [Bug #19087] Merge to "trailing garbage" case
nobu (Nobuyoshi Nakada)
04:47 PM Revision c94cd853 (git): [Bug #19087] Fix an assertion of `String#to_c`
nobu (Nobuyoshi Nakada)
04:35 PM Bug #19087 (Closed): String#to_c supports multiple "_"
Applied in changeset commit:git|c0dc717c45fc3abc64a337c3481bc4555b675d87.
----------
[Bug #19087] Disallow successive underscores in Complex string
nobu (Nobuyoshi Nakada)
04:35 PM Revision c0dc717c (git): [Bug #19087] Disallow successive underscores in Complex string
nobu (Nobuyoshi Nakada)
04:31 PM Revision 914cf26d (git): parenthesize to macro
S_H_ (Shun Hiraoka)
04:31 PM Revision 1a64d45c (git): Introduce encoding check macro
S_H_ (Shun Hiraoka)
04:30 PM Revision 7bc63d6f (git): Introduce argf_encoding function
S_H_ (Shun Hiraoka)
04:19 PM Revision 040e0c8d (git): Reuse NIL_OR_UNDEF_P macro
S_H_ (Shun Hiraoka)
04:00 PM Feature #19163 (Closed): Data object should be frozen
Applied in changeset commit:git|a14a1a5626a4d8e661a3e606f8f92b8c455b9a04.
----------
[Feature #19163] Data object should be frozen
nobu (Nobuyoshi Nakada)
09:01 AM Feature #19163: Data object should be frozen
https://github.com/ruby/ruby/pull/6843 nobu (Nobuyoshi Nakada)
08:06 AM Feature #19163 (Closed): Data object should be frozen
If we call `initialize` (via `send`), we can rewrite an existing `Data` object.
```ruby
d=Data.define(:a, :b).new(1,2)
p d #=> #<data a=1, b=2>
d.send(:initialize, {a:3,b:4})
p d #=> #<data a=3, b=4>
```
Should we freeze the `...
matz (Yukihiro Matsumoto)
03:59 PM Revision 2c939458 (git): YJIT: Reorder branches for Fixnum opt_case_dispatch (#6841)
* YJIT: Reorder branches for Fixnum opt_case_dispatch
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
* YJIT: Don't support too large values
Co-autho...
k0kubun (Takashi Kokubun)
03:56 PM Revision 5872fd6f (git): [Feature #19163] Marshal-loaded Data object also should be frozen
nobu (Nobuyoshi Nakada)
03:56 PM Revision a14a1a56 (git): [Feature #19163] Data object should be frozen
nobu (Nobuyoshi Nakada)
03:53 PM Revision 06a0c580 (git): YJIT: fix 32 and 16 bit register store (#6840)
* Fix 32 and 16 bit register store in YJIT
Co-Authored-By: Takashi Kokubun <takashikkbn@gmail.com>
* Remove an unnecessary diff
* Reuse an rm_num_bits result
* Use u16::MAX instead
* Update the link
Co-authored-by: Alan Wu <XrXr@us...
jemmai (Jemma Issroff)
03:00 PM Bug #19143: Windows - bundled extension gems compile, but don't copy *.so files to lib folder
@nobu
Yes, I agree, it might be very helpful when one has more than one platform installed and uses `--user-install`. As in `Gem.install_extension_in_lib`, also [Gem::Ext::ExtConfBuilder](https://github.com/ruby/ruby/blob/master/lib/r...
MSP-Greg (Greg L)
06:27 AM Bug #19143: Windows - bundled extension gems compile, but don't copy *.so files to lib folder
It is intended.
`*.so` files are architecture-dependent, which are "tainted" in other words, while `lib` directories are architecture-independent, "untainted".
"Tainted" files should not infect "untainted" directories.
nobu (Nobuyoshi Nakada)
02:01 PM Revision 01790de9 (git): Fix indents in NEWS [ci skip]
The MarkDown parser in RDoc requires 4 columns indentation for
paragraphs following list items. Otherwise, the following paragraphs
are not interpreted as the part of the preceeding list item,
nobu (Nobuyoshi Nakada)
12:40 PM Bug #19047: DelegateClass displays "method redefined" warning when overriding methods
For example, the example in #19079 does not give warning for overwriting the method `foo`.
Matz.
matz (Yukihiro Matsumoto)
08:52 AM Bug #19047: DelegateClass displays "method redefined" warning when overriding methods
> we missed the warnings from DelegateClass misuse
Do you have a reference to that?
byroot (Jean Boussier)
05:15 AM Bug #19047: DelegateClass displays "method redefined" warning when overriding methods
Sorry, but by this change, we missed the warnings from DelegateClass misuse. We will revert this change.
Matz.
matz (Yukihiro Matsumoto)
10:05 AM Feature #19078 (Closed): Introduce `Fiber#storage` for inheritable fiber-scoped variables.
It was merged. ioquatix (Samuel Williams)
08:44 AM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
Thanks so much for your time and discussion @matz et al. ioquatix (Samuel Williams)
04:59 AM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
This proposal contains 4 features:
(1) fiber[key]/fiber[key]=val - accepted.
(2) fiber.storage => hash - accepted
(3) fiber.storage=hash - should be experimental
(4) Fiber.new(...,storage: hash|true|false|nil) - accepted, but true/...
matz (Yukihiro Matsumoto)
10:00 AM Revision 0436f1e1 (git): Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612)
Samuel Williams
08:51 AM Feature #19107: Allow trailing comma in method signature
> Is there an actual case where this proposal is convenient?
Yes, when replacing old APIs that took an "option hash" by explicit keyword arguments, it tend to create very large signature.
The last example I have in mind is `redis-c...
byroot (Jean Boussier)
07:46 AM Feature #19107: Allow trailing comma in method signature
I don't care for consistency here (since formal arguments and actual arguments are different).
I am not sure for convenience. Compare to actual arguments, there's less chance to rewrite/update formal arguments.
Is there an actual case ...
matz (Yukihiro Matsumoto)
08:38 AM Bug #19108 (Closed): Format routines like pack blindly treat a string as ASCII-encoded
Applied in changeset commit:git|9869bd1d612b489df806cf95bcb56965a02424e0.
----------
[Bug #19108] Check for the encoding of pack/unpack format
nobu (Nobuyoshi Nakada)
08:15 AM Bug #19108: Format routines like pack blindly treat a string as ASCII-encoded
Template strings should be ASCII compatible, exceptions otherwise.
Matz.
matz (Yukihiro Matsumoto)
08:38 AM Revision 9869bd1d (git): [Bug #19108] Check for the encoding of pack/unpack format
nobu (Nobuyoshi Nakada)
08:33 AM Feature #19036: Provide a way to set path for File instances created with for_fd
LGTM.
Matz.
matz (Yukihiro Matsumoto)
07:34 AM Feature #19036: Provide a way to set path for File instances created with for_fd
Ruby IO is a rich object and has an internal path. It seems reasonable that `IO.new` or `IO.for_fd` can set it. I don't think this is something specific to `File` in the way Ruby thinks about IO. ioquatix (Samuel Williams)
08:25 AM Bug #19150: pack/unpack silently ignores unknown directives
For 3.2 unknown directives always warn; for 3.3 they raise exceptions.
Matz.
matz (Yukihiro Matsumoto)
08:08 AM Bug #19003 (Rejected): TracePoint behavior inconsistency in 3.2.0-preview2
ko1 (Koichi Sasada)
08:08 AM Bug #19003: TracePoint behavior inconsistency in 3.2.0-preview2
Sorry for late.
We left this issue as an implementation details and the current behavior will be shipped with Ruby 3.2. Sorry for inconvenient for your purpose.
The reason is to implement the proposed behavior strictly needs a much wor...
ko1 (Koichi Sasada)
08:08 AM Revision a1d341ef (git): [ruby/delegate] Revert "Fix `DelegateClass` block "method redefined" warning"
https://github.com/ruby/delegate/commit/2a91436284 nobu (Nobuyoshi Nakada)
08:06 AM Feature #19138 (Closed): `SyntaxError#path` for syntax_suggest
Applied in changeset commit:git|4e68b594314760611d0926c3de70a4cad26802cd.
----------
[Feature #19138] Add `SyntaxError#path`
nobu (Nobuyoshi Nakada)
08:05 AM Feature #19138: `SyntaxError#path` for syntax_suggest
Sounds reasonable.
Matz.
matz (Yukihiro Matsumoto)
08:05 AM Revision 4e68b594 (git): [Feature #19138] Add `SyntaxError#path`
nobu (Nobuyoshi Nakada)
07:38 AM Feature #18951: Object#with to set and restore attributes around a block
Thank you Matz.
If it's not desired in ruby-core, I can add it to Active Support, that's no problem.
byroot (Jean Boussier)
07:36 AM Feature #18951: Object#with to set and restore attributes around a block
* `with_attr` is better than plain `with`
* this method can be useful for some cases, but I am not sure if it should be a method of Object class
* maybe it should be a utility method in a gem (e.g. `save_current_attr(obj, **kw) {....}`...
matz (Yukihiro Matsumoto)
06:41 AM Feature #18980: `it` as a default block parameter
How about `_@`? It's your friendly neighborhood local-instance variable. I'm half joking but it is a local variable that refers to instances.
It's nice and illegal:
```ruby
[1, 2, 3].each { puts _@ }
```
Looks better when it's n...
maedi (Maedi Prichard)
05:49 AM Bug #18751: Regression on master for Method#== when comparing public with private method
This should be fixed by #18798 which is accepted.
Matz.
matz (Yukihiro Matsumoto)
05:48 AM Feature #18798: `UnboundMethod#==` with inherited classes
LGTM.
Matz.
matz (Yukihiro Matsumoto)
03:09 AM Feature #13721 (Rejected): [PATCH] net/imap: dedupe attr keys in Net::IMAP::FetchData
Rejected because [Feature #13725] was reverted and not fixed yet.
shugo (Shugo Maeda)
02:13 AM Misc #19162 (Closed): [ANN] Restrict weak ssh public key for git.ruby-lang.org
We continuously migrate our ssh public keys on git.ruby-lang.org from svn and cvs.
I found some of pub keys used weak algorithm. So, I will restrict them at 15 Dec 2022.
I'll notify committers who are still use weak key later.
hsbt (Hiroshi SHIBATA)

11/30/2022

11:47 PM Bug #19159: ObjectSpace segfaults
Just confirmed the fix. Thank you for the quick fix, @mame ! matsuda (Akira Matsuda)
10:40 PM Bug #19159: ObjectSpace segfaults
I confirmed to work with https://github.com/ruby/ruby/pull/6836 hsbt (Hiroshi SHIBATA)
07:09 PM Bug #19159 (Closed): ObjectSpace segfaults
Applied in changeset commit:git|ab4c7077cc44cd6725625562b7380a44cf462190.
----------
Prevent segfault in String#scan with ObjectSpace.each_object
Calling `String#scan` without a block creates an incomplete MatchData
object whose `RMATC...
mame (Yusuke Endoh)
04:36 PM Bug #19159: ObjectSpace segfaults
https://github.com/ruby/ruby/pull/6836
An incomplete MatchData object was created during `String#scan` (which is called for Gem::Version, not error_highlight :-).
mame (Yusuke Endoh)
05:06 AM Bug #19159: ObjectSpace segfaults
`--disable-error_highlight` did not help when I execute it with Ruby 3.2.0dev.
``` ruby
$ rbenv install 3.2.0-dev
$ rbenv global 3.2.0-dev
$ ruby -v
ruby 3.2.0dev (2022-11-30T04:52:33Z master 9a84971315) [x86_64-linux]
```
`...
yahonda (Yasuo Honda)
04:53 AM Bug #19159: ObjectSpace segfaults
I could reproduce this. And It resolve with `--disable-error_highlight`. (Thanks for investigating @yahonda )
hsbt (Hiroshi SHIBATA)
09:27 PM Revision 5752d11f (git): Use RTEST and add test for GH-6832
Technically we shouldn't see Qfalse now, but RTEST also compiles down to
just one branch anyways. Pretty contrived issue, but easy to fix.
alanwu (Alan Wu)
09:27 PM Revision 4b9d10b8 (git): struct.c (struct_ivar_get): add conditional for potential Qnil returned by rb_class_superclass
struct_ivar_get recently started using rb_class_superclass to
resolve super instead of RCLASS_SUPER. This change made
Qnil a possible case we need to return from within the
struct_ivar_get for loop.
zack.ref@gmail.com (Zack Deveau)
09:16 PM Revision 0d3fc08f (git): YJIT: Optimize rb_int_equal (#6838)
k0kubun (Takashi Kokubun)
07:58 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
For comparison, you can plug in the following example code for a faster implementation of `#with` and it should work the same:
```ruby
Point = Data.define(:x, :y) do
# Example only, too slow. Real implementation should eliminate alloc...
RubyBugs (A Nonymous)
07:52 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
mame (Yusuke Endoh) wrote in #note-17:
> @RubyBugs Please check my comment https://bugs.ruby-lang.org/issues/19000#note-13 . A wrong motivation example raises the suspicion that this API is actually confusing to users.
Quite right @mame...
RubyBugs (A Nonymous)
03:20 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
p8 (Petrik de Heus) wrote in #note-18:
> If `dup` is chosen would it make sense to always allow `dup` methods to take arguments for consistency?
It would make sense, but it would require everyone who wrote a custom `#dup` to extend t...
Dan0042 (Daniel DeLorme)
03:13 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
p8 (Petrik de Heus) wrote in #note-18:
> If `dup` is chosen would it make sense to always allow `dup` methods to take arguments for consistency?
I'm rather against that, it makes the standard `dup` so much more complicated, and it wo...
Eregon (Benoit Daloze)
07:09 PM Revision d98d84b7 (git): YJIT: add new counters for deferred compilation and queued blocks (#6837)
maximecb (Maxime Chevalier-Boisvert)
06:28 PM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
Hi again @nagachika.
I was double checking this, because I thought you probably meant "master branch of Ruby" and not "master branch of Bundler". I assumed the bug is present in both the master branch of Ruby and ruby_3_1 because the ...
deivid (David Rodríguez)
08:33 AM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
Just to clarify, the current master branch of Bundler is indeed not affected by this issue, but that's just "luck". I'm adding a spec on our side to make sure it stays like that, but the ruby-core issue is still there and I suspect it co... deivid (David Rodríguez)
01:46 AM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
Hello,
Thank you for the report.
nobu told me that the current master branch doesn't have the issue.
I will looking for the relevant commits and backport them.
nagachika (Tomoyuki Chikanaga)
06:21 PM Bug #18899: Inconsistent argument handling in IO#set_encoding
Naively, I would have expected "binary:utf-8" to take arbitrary input and force the encoding to UTF-8, and "utf-8:utf-8" to read and validate the input as UTF-8.
Neither does what I expected. `¯\_(ツ)_/¯`
Dan0042 (Daniel DeLorme)
05:55 PM Feature #19099: Support `private_constant` for an undefined constant
Another idea:
`private_constant X: expr`
equivalent to
`const_set :X, expr` + `private_constant :X`
Or just use class variables :-)
Dan0042 (Daniel DeLorme)
05:38 PM Revision ab4c7077 (git): Prevent segfault in String#scan with ObjectSpace.each_object
Calling `String#scan` without a block creates an incomplete MatchData
object whose `RMATCH(match)->str` is Qfalse. Usually this object is not
leaked, but it was possible to pull it by using ObjectSpace.each_object.
This change hides the...
mame (Yusuke Endoh)
05:36 PM Revision f0c9d2a0 (git): [ruby/rdoc] Fix `=end` delimiter
https://github.com/ruby/rdoc/commit/e1679fa7e4 nobu (Nobuyoshi Nakada)
05:36 PM Revision 99cad3fc (git): [ruby/rdoc] Non-RD part feature has not been imported to RDoc
https://github.com/ruby/rdoc/commit/fe0159de2f nobu (Nobuyoshi Nakada)
05:36 PM Revision c87b3ee6 (git): [ruby/rdoc] Use Tempfile
https://github.com/ruby/rdoc/commit/0b9dde5ab4 nobu (Nobuyoshi Nakada)
05:28 PM Revision d752cf76 (git): Use class methods of `File` over `Kernel.open` and `IO.read`
nobu (Nobuyoshi Nakada)
05:23 PM Revision a0b0365e (git): YJIT: Deallocate `struct Block` to plug memory leaks
Previously we essentially never freed block even after invalidation.
Their reference count never reached zero for a couple of reasons:
1. `Branch::block` formed a cycle with the block holding the branch
2. Strong count on a branch that h...
alanwu (Alan Wu)
05:23 PM Revision b30248f7 (git): YJIT: Deallocate when assumptions tables are empty
When we run global invalidation for TracePoints or code GC, we clear out
all blocks in our assumptions table but we don't deallocate the backing
buffers. Let's reclaim some memory during these rare events.
alanwu (Alan Wu)
05:23 PM Revision 03f1e6a2 (git): YJIT: Fix IseqPayload::pages memory bloat
HashSet::clear() doesn't deallocate the backing buffer and shrink the
capacity. Replace with a 0-capcity set instead so we reclaim some memory
each code GC.
alanwu (Alan Wu)
05:17 PM Bug #19161: Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7
Thanks everyone,
I can confirm that adding `cflags="-std=gnu99"` to the configure step worked around my issue. Re-running `./autogen.sh` on the server in question also worked.
werebus (Matt Moretti)
08:43 AM Bug #19161: Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7
I investigated why our CI server for CentOS 7 could not find this problem. In short, this problem only occurs on tarball.
This problem occurs when `gcc -std=gnu11`.
The CI server uses `./autogen.sh` to generate `configure` script. Be...
mame (Yusuke Endoh)
07:52 AM Bug #19161 (Closed): Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7
I could reproduce on CentOS 7 and confirmed to fix nobu's patch. hsbt (Hiroshi SHIBATA)
02:18 AM Bug #19161 (Feedback): Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7
Could you try this?
```diff
diff --git i/configure.ac w/configure.ac
index fcae66f775e..c933ed8b91f 100644
--- i/configure.ac
+++ w/configure.ac
@@ -363,6 +363,13 @@ AS_IF([test "$GCC" = yes], [
icc_version=`echo =__ICC | $...
nobu (Nobuyoshi Nakada)
05:11 PM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
Maybe I'm too late here, but I have some thoughts/concerns about this.
First I should say I totally agree with the general idea. We need some way to inherit "context state".
So far I've seen 2 use cases described.
1 - store a request_i...
Dan0042 (Daniel DeLorme)
02:30 PM Bug #19147: `TestFileExhaustive#test_expand_path_for_existent_username` and `TestDir#test_home` fails on i686
Yes, I was about to report this, however Vít was ahead of me 👍
At least 3.2.0preview3 ( commit:git|28611be6ee84ba8eb19e667a70ae129833b98b8b ) was already failing, commit:git|6bf458eefd seemed to be okay, I have not tried bisect.
Fo...
mtasaka (Mamoru TASAKA)
01:39 PM Bug #18779: `GC.compact` and other compaction related methods should be defined as rb_f_notimplement on non supported platforms.
If it helps, this [1] is the patch we are carrying around in Fedora for Ruby 3.1. I would appreciate if is backported, because it influences files which are pregenerated and part of the release tarball [2].
[1]: https://src.fedora...
vo.x (Vit Ondruch)
11:03 AM Revision 81719310 (git): Enable to dispatch Code scanning [ci skip]
nobu (Nobuyoshi Nakada)
10:31 AM Feature #17134 (Open): Add resolv_timeout to TCPSocket
hsbt (Hiroshi SHIBATA)
08:32 AM Feature #17134 (Closed): Add resolv_timeout to TCPSocket
Applied in changeset commit:git|c8bfbbc25e4bc7c3ff59fae40471923a2793ba48.
----------
Removed documentation for incomplete option about [Feature #17134]
hsbt (Hiroshi SHIBATA)
10:18 AM Revision d532d275 (git): [ruby/irb] Use class methods of `File` over `Kernel.open`
https://github.com/ruby/irb/commit/e0ec5e1bd8 nobu (Nobuyoshi Nakada)
10:09 AM Revision cf3b305c (git): [ruby/un] wait_writable: close opened file
https://github.com/ruby/un/commit/b08aeb9c48 nobu (Nobuyoshi Nakada)
09:54 AM Misc #18976: [ANN] blade.nagaokaut.ac.jp is down
I'm considering to migrate blade with the following plan:
* I'll build the simple txt archives like `https://blade.ruby-lang.org/ruby-core/xxxxxx`.
* I restore mailing-list data to it with ruby-core, ruby-dev, ruby-list, ruby-ext and ru...
hsbt (Hiroshi SHIBATA)
08:20 AM Revision c8bfbbc2 (git): Removed documentation for incomplete option about [Feature #17134]
hsbt (Hiroshi SHIBATA)
07:19 AM Feature #13221 (Closed): [PATCH] gems/bundled_gems: add "curses" RubyGem
There is no plan to add curses as the bundled gems now. I'll close this. hsbt (Hiroshi SHIBATA)
06:35 AM Revision d0c0d7fa (git): MJIT: Revert FL_EXIVAR check optimization
It seems to slow down optcarrot. I'll revisit this later. k0kubun (Takashi Kokubun)
05:45 AM Revision a1d70f5b (git): MJIT: Rename mjit_compile_attr to mjit_sp_inc
There's no mjit_compile.inc, so no need to use this prefix anymore. k0kubun (Takashi Kokubun)
05:34 AM Revision 7a2b1364 (git): MJIT: Merge mjit_unit.h into mjit_c.h
The distinction doesn't make much difference today. k0kubun (Takashi Kokubun)
05:26 AM Revision ecc15bc9 (git): MJIT: Rename mjit_compiler.c to mjit_c.c
It's no longer about the compiler logic itself. k0kubun (Takashi Kokubun)
04:52 AM Revision 9a849713 (git): [ruby/irb] Make sure ls doesn't return an array
(https://github.com/ruby/irb/pull/461)
https://github.com/ruby/irb/commit/367797bb05
k0kubun (Takashi Kokubun)
03:59 AM Revision 062c5a9e (git): Update default gems list at d6e91784ab78c25e864869b05a149e [ci skip]
git[bot]
03:58 AM Revision d6e91784 (git): Update SyntaxSuggest to use angle brackets `>`
```
$ ruby tool/sync_default_gems.rb syntax_suggest
Sync ruby/syntax_suggest
```
https://github.com/ruby/syntax_suggest/pull/161
schneems (Richard Schneeman)
03:08 AM Feature #19090: Do not duplicate an unescaped string in CGI.escapeHTML
Thank you for the explanation, that's very good arguments and they address my concerns. Eregon (Benoit Daloze)
02:35 AM Revision 33a9a7fd (git): Mention Exception#detailed_message in NEWS.md
mame (Yusuke Endoh)
02:34 AM Revision 4e13f5b5 (git): Mention Regexp.timeout= in NEWS.md
mame (Yusuke Endoh)

11/29/2022

09:56 PM Feature #19078: Introduce `Fiber#storage` for inheritable fiber-scoped variables.
marcotc (Marco Costa) wrote in #note-14:
> > > Regarding threads I think we shouldn't inherit automatically in new threads, and rather do it explicitly (via Fiber.current.storage=) in the rare cases it's needed.
> ...
To a bit of info ...
ivoanjo (Ivo Anjo)
08:46 PM Revision bbed2269 (git): Fix unused variable warnings
builtin seems to be not handling this correctly. k0kubun (Takashi Kokubun)
08:30 PM Bug #19161 (Feedback): Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7
When attempting to run `make` on either the 3.0.5 or 3.1.3 release, I get the following error (I included the whole output as it's pretty short):
```
BASERUBY = /opt/ruby/bin/ruby --disable=gems
CC = gcc -std=gnu11
LD = ld
L...
werebus (Matt Moretti)
07:06 PM Bug #19160 (Closed): cmp_clamp arguments
If clamp receives min higher than max, it will raise an exception. The message says *min argument must be smaller than max argument* , but min can actually be equal to max too.
Patch https://github.com/ruby/ruby/pull/6802.
kaiquekandykoga (Kaíque Koga)
05:29 PM Misc #19030: [ANN] Migrate lists.ruby-lang.org to Google Groups
The emails are now containing too much empty lines. It already starts with the Redmine header which looks like:
~~~
----------------------------------------
Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
https://bu...
vo.x (Vit Ondruch)
12:02 AM Misc #19030 (Closed): [ANN] Migrate lists.ruby-lang.org to Google Groups
The issue of discourse mirror for ruby-talk is resolved. https://rubytalk.org/t/i-sent-this-to-the-list-but-got-this-error-here/76102/2
Unfortunately, our list addresses are changed `ruby-lang.org` to `ml.ruby-lang.org`. And `List-Id`...
hsbt (Hiroshi SHIBATA)
04:44 PM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
hsbt (Hiroshi SHIBATA) wrote in #note-10:
>
> ...
I agree that `color` postfix is a bit redundant. But I still lean *slightly* toward having it because it makes passing values easier:
```rb
DialogRenderInfo.new(
pos: Reline::Cu...
st0012 (Stan Lo)
03:29 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Thank you, this helps a lot! I will test the patch you suggest and see if that addresses the immediate problem.
If it does, I can take a stab at putting a PR together. I would credit you of course. Really appreciate your time spent on...
mk (Matthias Käppler)
03:14 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Sorry, I meant:
```c
rb_ivar_set(ret, rb_intern("mmap"), obj);
```
byroot (Jean Boussier)
03:13 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
byroot (Jean Boussier) wrote in #note-15:
> It's even worse than using `str_new_static`, it's creating a regular string and rewriting the pointer. This is terrible code.
Yikes -- good catch! This library isn't particularly active o...
mk (Matthias Käppler)
03:12 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
I can't be bothered to create an account to submit a PR, but I suspect the following diff should fix your bug:
```ruby
diff --git a/ext/fast_mmaped_file/mmap.c b/ext/fast_mmaped_file/mmap.c
index 213281c..a3f646f 100644
--- a/ext/f...
byroot (Jean Boussier)
03:06 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Ok, I found the function that cause this bug:
```c
static VALUE mm_str(VALUE obj, int modify) {
mm_ipc *i_mm;
VALUE ret = Qnil;
GET_MMAP(obj, i_mm, modify & ~MM_ORIGIN);
if (modify & MM_MODIFY) {
if (i_...
byroot (Jean Boussier)
03:03 PM Bug #19156 (Third Party's Issue): ObjectSpace.dump_all segfault during string inspection
> It indeed does sound like it is not strictly a bug with MRI
I'll mark the ticket as 3rd party issue. I'd suggest reporting this to that project.
> ...
I don't think it's possible. Ruby would need to somehow check if the memory re...
byroot (Jean Boussier)
03:00 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
I'm not sure this makes sense but: we know the address being referenced is somewhere (half-way) into a memory region that is a memory-mapped file using that Prometheus library's binary encoding.
This is the file:
```
xxd gauge_max...
mk (Matthias Käppler)
02:37 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
It looks like I can't do anything useful with that address:
```
(gdb) p *0x7fced23f4000
Cannot access memory at address 0x7fced23f4000
```
This is getting mysterious. I looked at process maps to see what kind of memory region th...
mk (Matthias Käppler)
02:21 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
`str_new_static` sets a specific flag on the string:
```c
RBASIC(str)->flags |= STR_NOFREE;
```
So from GDB you should be able to confirm or infirm whether that string was created through `str_new_static`.
byroot (Jean Boussier)
02:18 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
byroot (Jean Boussier) wrote in #note-5:
> Also, based on the backtrace I believe that `ObjectSpace.each_object(String, &:valid_encoding?)` should cause the same crash.
Indeed!
```
bundle exec rbtrace -p $(pgrep -f 'worker 1') -e...
mk (Matthias Käppler)
02:12 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Also, assuming my `str_new_static` theory is correct, you could look at: `grep -IR str_new_static $(bundle show --paths)` see if anything stands out. byroot (Jean Boussier)
02:09 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
> I tried the following, but it segfaults too:
Yeah, if the RString points to an invalid memory region, I think `rb_p` will just segfault like you saw.
I'm not very good at GDB, but I think instead you want to print the content of ...
byroot (Jean Boussier)
02:02 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Oh yeah it's actually telling me it's the same address from the original segfault.
So would we conclude from this that `ObjectSpace.dump_all` is trying to serialize objects that have already been GC'ed?
mk (Matthias Käppler)
02:00 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
byroot (Jean Boussier) wrote in #note-4:
> Ideally you'd use `gdb` to go on the `dump_object) objspace_dump.c:388` frame and inspect what `VALUE obj` looks like.
Remind me how to do that? I tried the following, but it segfaults too:
...
mk (Matthias Käppler)
01:21 PM Bug #19156: ObjectSpace.dump_all segfault during string inspection
Also, based on the backtrace I believe that `ObjectSpace.each_object(String, &:valid_encoding?)` should cause the same crash. byroot (Jean Boussier)
11:39 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
> I suspect the heap slot that references the broken string crashes the VM before it even starts writing the object address to the dump.
Yes, the is some buffering, so the last written objects might be entirely different. Hence why I'...
byroot (Jean Boussier)
11:10 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
byroot (Jean Boussier) wrote in #note-2:
> Do you have a core dump? It would be interesting to inspect what this string look like.
Yes, I just obtained one. This is a little tricky to debug, however. The object space dump is streamed to...
mk (Matthias Käppler)
08:30 AM Bug #19156: ObjectSpace.dump_all segfault during string inspection
> I suspect this is also a problem with MRI master since the code looks unchanged from 3.0.4.
Well, It might not be a bug in `objspace_dump.c`.
Here `coderange_scan / search_nonascii` end up reading invalid memory regions which su...
byroot (Jean Boussier)
03:09 PM Revision 3e4d1a1d (git): YJIT: Skip checking interrupt_mask (#6825)
k0kubun (Takashi Kokubun)
02:46 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
If `dup` is chosen would it make sense to always allow `dup` methods to take arguments for consistency?
For example, it would allow the following code in Rails
```ruby
firm = Firm.first.dup
firm.account = Account.first
assert_qu...
p8 (Petrik de Heus)
04:09 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
@RubyBugs Please check my comment https://bugs.ruby-lang.org/issues/19000#note-13 . A wrong motivation example raises the suspicion that this API is actually confusing to users. mame (Yusuke Endoh)
01:14 PM Feature #19099: Support `private_constant` for an undefined constant
I wonder if the code below is acceptable:
```ruby
class C
private_constant {
X = ...
}
end
```
Here, `private_constant` takes a block and every constant defined there are private. This is especially useful when defin...
okuramasafumi (Masafumi OKURA)
01:10 PM Bug #19159 (Closed): ObjectSpace segfaults
```
$ ruby -e 'p ObjectSpace.each_object.to_a'
```
segfaults on my M1MBP as follows:
```
$ ruby -e 'p ObjectSpace.each_object.to_a'
-e:1: [BUG] Segmentation fault at 0x0000000000000000
ruby 3.2.0dev (2022-11-29T09:23:00Z mast...
matsuda (Akira Matsuda)
12:57 PM Bug #19158 (Closed): Ruby 3.1.3 installs wrong gemspec for debug gem
A pristine installation of Ruby 3.1.3 shows an installed `debug-1.6.3.gemspec` file that claims that debug-1.6.3 has no dependencies. This is incorrect, and causes issues for Bundler as reported at https://github.com/rubygems/rubygems/is... deivid (David Rodríguez)
09:59 AM Feature #12848 (Rejected): Crazy idea: Allow regex definition for methods (Do not take it seriously please)
Given the feature request I think we can just close it. byroot (Jean Boussier)
02:05 AM Feature #12848 (Open): Crazy idea: Allow regex definition for methods (Do not take it seriously please)
hsbt (Hiroshi SHIBATA)
09:56 AM Feature #6047: read_all: Grow buffer exponentially in generic case
I just tried my hand at this one: https://github.com/ruby/ruby/pull/6829
I think such a change would make sense. Not that `IO#read` without a size if common, but might as well do something sensible.
byroot (Jean Boussier)
02:08 AM Feature #6047 (Open): read_all: Grow buffer exponentially in generic case
hsbt (Hiroshi SHIBATA)
09:23 AM Revision 67ae3e97 (git): Add a test case for argument forwarding
yui-knk (Kaneko Yuichiro)
09:12 AM Revision ed4b5c4f (git): Extract outdate-bundled-gems.rb
nobu (Nobuyoshi Nakada)
09:12 AM Revision 8e3ac264 (git): Fix dependencies of outdate-bundled-gems
Extract new gems then remove outdated gem directories. nobu (Nobuyoshi Nakada)
09:12 AM Revision aacaa2ec (git): Refine outdate-bundled-gems
nobu (Nobuyoshi Nakada)
08:47 AM Revision f19deef3 (git): MJIT: Move Primitive helpers to mjit_c.rb
k0kubun (Takashi Kokubun)
08:23 AM Revision 27f34eeb (git): MJIT: Self-contain extern declarations
I'm trying to get rid of mjit_compiler.c, and this helps that migration. k0kubun (Takashi Kokubun)
08:12 AM Revision 8a0acbea (git): MJIT: Refactor CDHASH handling
Converting a CDHASH into a safe Hash is a lot of work, but retrieving
just values is much easier.
k0kubun (Takashi Kokubun)
07:53 AM Revision 44165df1 (git): MJIT: Cache an ISeq pointer instance
to obviate one rb_funcall. This also removes rb_ptr as refactoring. k0kubun (Takashi Kokubun)
07:32 AM Revision 2329cbeb (git): MJIT: Merge exivar guards as well
obviating status->merge_ivar_guards_p as refactoring k0kubun (Takashi Kokubun)
06:46 AM Revision 322e546f (git): MJIT: Remove an unused field
This has not been used since recent shape-related changes. k0kubun (Takashi Kokubun)
06:39 AM Revision 8be62f06 (git): Remove ruby2_keywords related to args forwarding
This was introduced by b609bdeb5307e280137b4b2838af0fe4e4b46f1c
to suppress warnings. However these warngins were deleted by
beae6cbf0fd8b6619e5212552de98022d4c4d4d4. Therefore these codes
are not needed anymore.
yui-knk (Kaneko Yuichiro)
06:11 AM Bug #19003: TracePoint behavior inconsistency in 3.2.0-preview2
This stays the same in the `preview3`. Are there any chances this will change until release?
Current behavior reduces usefulness and complicates usage of local tracepoints, because I can't just set smarter TP, but also I need to think...
hurricup (Alexandr Evstigneev)
06:03 AM Revision bb6f933d (git): MJIT: Get rid of is_entries copy
MJIT worker no longer exists, so we don't need this safeguard anymore. k0kubun (Takashi Kokubun)
05:33 AM Revision 9c13fc61 (git): MJIT: Make it parsable by Solargraph (#6827)
* Revert "Revert "MJIT: Make it parsable by Solargraph""
This reverts commit 8e18761da1932df88bfb6505acbda4740e1b2930.
* Call rb_gc_register_mark_object
k0kubun (Takashi Kokubun)
05:23 AM Revision acb76663 (git): MJIT: Rename mjit_compiler.h to mjit_c.h
because it exists primarily for generating mjit_c.rb. k0kubun (Takashi Kokubun)
05:18 AM Revision 74bdf092 (git): Add tests for [Feature #19134]
https://bugs.ruby-lang.org/issues/19134?next_issue_id=19133&prev_issue_id=19135#note-4 shugo (Shugo Maeda)
04:59 AM Revision 4db429d2 (git): Update default gems list at 4f8c6711ddb09bb9d0dcbf784e2cde [ci skip]
git[bot]
04:58 AM Revision 4f8c6711 (git): [ruby/erb] Version 4.0.2
https://github.com/ruby/erb/commit/8c8ff1551b k0kubun (Takashi Kokubun)
04:56 AM Revision 129d208f (git): [ruby/erb] Fix line numbers after multi-line <%#
(https://github.com/ruby/erb/pull/42)
https://github.com/ruby/erb/commit/526885923e
k0kubun (Takashi Kokubun)
02:57 AM Feature #19134: ** is not allowed in def foo(...)
matz (Yukihiro Matsumoto) wrote in #note-2:
> LGTM.
Thank you. I've merged it.
I realized that my fix also chaged the behavior of the following code:
```ruby
def foo(*, **, &)
bar(...)
end
def bar(*args, **kw, &block)
...
shugo (Shugo Maeda)
02:22 AM Feature #19134 (Closed): ** is not allowed in def foo(...)
Applied in changeset commit:git|4fc668a4f3b9b67cc7566096ab55cab34c67c158.
----------
Allow ** in def foo(...)
[Feature #19134]
shugo (Shugo Maeda)
02:22 AM Revision b5726892 (git): Use rbs HEAD for [Feature #19134]
shugo (Shugo Maeda)
02:22 AM Revision a0e4dc52 (git): Use idFWD_* instead of ANON_*_ID
shugo (Shugo Maeda)
02:22 AM Revision 4fc668a4 (git): Allow ** in def foo(...)
[Feature #19134] shugo (Shugo Maeda)
02:06 AM Misc #10791 (Open): [PATCH 1/1] Remove unnecessary passing value from doc for Observable
hsbt (Hiroshi SHIBATA)
02:05 AM Misc #12911 (Open): Translate docs
hsbt (Hiroshi SHIBATA)
02:04 AM Feature #15047 (Open): Documentation and more functions for Hash functions in C API
hsbt (Hiroshi SHIBATA)
01:04 AM Bug #18657 (Closed): IRB raises exception when stdout is a pipe
This patch has been merged at https://github.com/ruby/irb/pull/353 hsbt (Hiroshi SHIBATA)

11/28/2022

11:46 PM Bug #19157 (Open): URI bad component validation can be tricked
`URI::HTTP` checks the validity of the URI components. For example, the path of a URI with authority component must be either empty or start with a slash.
This validation applies on the `.build` constructor as well as on the `path` se...
straight-shoota (Johannes Müller)
11:33 PM Revision ee49fe5d (git): [ruby/net-http] Enhanced RDoc for header Range
(https://github.com/ruby/net-http/pull/82)
https://github.com/ruby/net-http/commit/a26f62a2e5
burdettelamar (Burdette Lamar)
11:20 PM Revision 579c8cb0 (git): [rubygems/rubygems] Remove pointer to RVM documentation
https://github.com/rubygems/rubygems/commit/7467019d87 moenodedev
10:39 PM Feature #19134: ** is not allowed in def foo(...)
LGTM.
Matz.
matz (Yukihiro Matsumoto)
08:16 AM Feature #19134: ** is not allowed in def foo(...)
I've created a pull request: https://github.com/ruby/ruby/pull/6818
With this change a test of rbs.gem fails because argument types of` def foo(...)` is changed to `(*untyped, **untyped **)` from `(*untyped)`, but I believe it's right...
shugo (Shugo Maeda)
09:45 PM Revision 8a74361b (git): Update yjit.md to mention `RUBY_YJIT_ENABLE`
maximecb (Maxime Chevalier-Boisvert)
07:15 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
bdewater (Bart de Water) wrote in #note-15:
> I like `dup` as the method name 👍
> ...
Is there a way we could get more active Rubyists to weigh in? My sense is that there is a real tension in that:
* Nearly every major value objects g...
RubyBugs (A Nonymous)
05:04 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
I like `dup` as the method name 👍
tomstuart (Tom Stuart) wrote in #note-9:
> Perhaps another way of putting this is that I’d estimate most Ruby programmers rarely call `Object#dup` in the course of their work, whereas I would expect ...
bdewater (Bart de Water)
06:45 PM Revision 612b528c (git): Update default gems list at d13de3a62eddb3a706597f7be975e3 [ci skip]
git[bot]
06:44 PM Revision d13de3a6 (git): [ruby/irb] Version 1.5.1
https://github.com/ruby/irb/commit/f9507923fa k0kubun (Takashi Kokubun)
06:42 PM Revision c5279db7 (git): [ruby/irb] Fix the debug.gem force-loader for Ruby 3.2
(https://github.com/ruby/irb/pull/458)
* Fix the debug.gem force-loader for Ruby 3.2
* Support 1.7.0dev format as well
k0kubun (Takashi Kokubun)
04:20 PM Revision f3ad68dd (git): [ruby/optparse] Fix the test failure i ruby/ruby
```
$ make test-all TESTS=test/optparse/
...
[148/178] TestOptionParserDidYouMean#test_raise_unknown = 0.00 s
1) Failure:
TestOptionParserDidYouMean#test_raise_unknown [/home/mame/work/ruby/test/optparse/test_optparse.rb:106]:
<["--ba...
mame (Yusuke Endoh)
03:04 PM Misc #19155: documentation of Pathname#join with absolute path
There is a description.
The doc https://docs.ruby-lang.org/ja/latest/class/Pathname.html#I_JOIN says:
```ruby
path0 = Pathname("/usr") # Pathname:/usr
path0 = path0.join("bin/ruby") # Pathname:/usr/bin/rub...
sawa (Tsuyoshi Sawada)
09:35 AM Misc #19155 (Closed): documentation of Pathname#join with absolute path
Pathname#join ignores previous directory name before absolute path
Is this intentional?
```irb
irb(main):002:0> require 'pathname'
=> true
irb(main):003:0> Pathname('/foo').join('bar', 'baz')
=> #<Pathname:/foo/bar/baz>
irb(ma...
colorbox (box color)
02:36 PM Revision b649850d (git): Force to update revision.h after the source updated [ci skip]
nobu (Nobuyoshi Nakada)
02:30 PM Bug #19156 (Third Party's Issue): ObjectSpace.dump_all segfault during string inspection
I am working on a feature that would allow our application to capture heap dumps during shutdown for later inspection.
These heap dumps are captured via `ObjectSpace.dump_all(output: io)`. While walking the object space, MRI occasiona...
mk (Matthias Käppler)
02:24 PM Revision 0bfb1856 (git): [ruby/optparse] Add `raise_unknown` flag
(https://github.com/ruby/optparse/pull/38)
https://github.com/ruby/optparse/commit/12529653cd
nobu (Nobuyoshi Nakada)
12:50 PM Revision dcf94e71 (git): Update default gems list at 476700c06f8e54025387f793e17e05 [ci skip]
git[bot]
11:55 AM Revision 476700c0 (git): [ruby/syntax_suggest] v1.0.0
https://github.com/ruby/syntax_suggest/commit/f142fcbf96 schneems (Richard Schneeman)
11:55 AM Revision f64ba0fa (git): [ruby/syntax_suggest] Do not output "Syntax OK" when there's an error
Due to a problem with ripper we do not recognize `break` as invalid code. It's confusing that "Syntax OK" is output in that case.
When there's no syntax error, the algorithm should not say anything. The exception is in the CLI and that'...
schneems (Richard Schneeman)
11:55 AM Revision 4d51a0b4 (git): [ruby/syntax_suggest] Failing test for #157
https://github.com/ruby/syntax_suggest/commit/14e8cdc916 schneems (Richard Schneeman)
11:55 AM Revision ee11090b (git): sync_default_gems.rb: move default_branch to REPOSITORIES
`sync_default_gems_with_commits` also needs the default branch. nobu (Nobuyoshi Nakada)
11:55 AM Revision 6559ba3b (git): sync_default_gems.rb: suppress a duplicated range warning
nobu (Nobuyoshi Nakada)
11:55 AM Revision d72f6749 (git): sync_default_gems.rb: adjust indent [ci skip]
nobu (Nobuyoshi Nakada)
09:28 AM Revision 8bac8772 (git): Added permission restrictions for GitHub actions
hsbt (Hiroshi SHIBATA)
08:17 AM Revision 906a2f06 (git): sync_default_gems.rb: extend for singleton methods
nobu (Nobuyoshi Nakada)
08:13 AM Revision 8e18761d (git): Revert "MJIT: Make it parsable by Solargraph"
This reverts commit ccd8dd6ad395bbd9f5290e0fcb7929e5e5d36767.
Revert "MJIT: Fix miniruby with MJIT_FORCE_ENABLE"
This reverts commit b033775ed9d9226ba73c1d4a197e55ba89575142.
GitHub Actions is failing. I ran out of time today to inves...
k0kubun (Takashi Kokubun)
07:58 AM Revision b033775e (git): MJIT: Fix miniruby with MJIT_FORCE_ENABLE
k0kubun (Takashi Kokubun)
07:46 AM Revision ccd8dd6a (git): MJIT: Make it parsable by Solargraph
k0kubun (Takashi Kokubun)
07:30 AM Revision 93e87c02 (git): Fix the case of multiple trailers
nobu (Nobuyoshi Nakada)
07:30 AM Revision 5a171ee4 (git): Add tests for sync_default_gems.rb
nobu (Nobuyoshi Nakada)
07:29 AM Revision fb599523 (git): MJIT: Do not document a dynamic type [ci skip]
Solargraph complains about it k0kubun (Takashi Kokubun)
07:06 AM Revision 1d120055 (git): MJIT: Avoid hanging on mjit_wait with a JIT failure
k0kubun (Takashi Kokubun)
06:48 AM Revision 168b0e1f (git): Make the timeout of test_system_sigpipe longer
https://github.com/ruby/ruby/actions/runs/3562236318/jobs/5983796689 k0kubun (Takashi Kokubun)
06:47 AM Revision 2c1c0d3d (git): MJIT: Get rid of C.fprintf
Faster code generation and cleaner code. k0kubun (Takashi Kokubun)
06:14 AM Revision 87e7b640 (git): Suppress warnings again
k0kubun (Takashi Kokubun)
05:48 AM Revision 880e8fd1 (git): Relax a too strict timeout
Regexp tests are flaky.
http://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20221128T050004Z.fail.html.gz
k0kubun (Takashi Kokubun)
05:44 AM Revision a22c684c (git): MJIT: Refactor invokebuiltin_delegate_leave
You shouldn't assume bf->compiler is always non-zero. While struct
aref/aset is no longer a builtin function since
https://github.com/ruby/ruby/pull/5131, it seems like you could still
load such an iseq binary.
The refactored code fallb...
k0kubun (Takashi Kokubun)
05:36 AM Bug #19153 (Closed): Since 2.7.7 CGI::Cookie raises ArgumentError when cookie domains is prefixed with a dot
hsbt (Hiroshi SHIBATA)
04:51 AM Bug #19153: Since 2.7.7 CGI::Cookie raises ArgumentError when cookie domains is prefixed with a dot
mame (Yusuke Endoh) wrote in #note-1:
> As I wrote in https://github.com/ruby/cgi/pull/29#issuecomment-1325852303, RFC 6265 prohibits leading dot for Cookie domain. However, the old spec of Cookie (RFC 2109) required the leading dot. I ...
mame (Yusuke Endoh)
04:45 AM Bug #19153: Since 2.7.7 CGI::Cookie raises ArgumentError when cookie domains is prefixed with a dot
FYI: https://github.com/ruby/cgi/pull/29#issuecomment-1328487556
I released [cgi-0.3.6](https://github.com/ruby/cgi/releases/tag/v0.3.6) for this issue. Can you try it with adding `"cgi", ">= 0.3.6"` in your Gemfile?
hsbt (Hiroshi SHIBATA)
05:11 AM Revision 6844bcc6 (git): MJIT: Use a String buffer in builtin compilers
instead of FILE*.
Using C.fprintf is slower than String manipulation on memory. I'm going
to change the way MJIT writes files, and this is a prerequisite for it.
k0kubun (Takashi Kokubun)
05:04 AM Revision 6d26f78f (git): MJIT: Clear .cache/clangd on bindgen if exists
k0kubun (Takashi Kokubun)
04:57 AM Revision 833545a2 (git): NEWS.md: sort [ci skip]
znz (Kazuhiro NISHIYAMA)
04:41 AM Revision 529e58d6 (git): Update default gems list at b335d899fff3cc22b022c9ee2ceb63 [ci skip]
git[bot]
04:40 AM Revision b335d899 (git): [ruby/cgi] Bump up 0.3.6
https://github.com/ruby/cgi/commit/827b7d43cc hsbt (Hiroshi SHIBATA)
04:36 AM Revision e0901f46 (git): [ruby/rdoc] Add `--no-skipping-tests` option
https://github.com/ruby/rdoc/commit/33925f885f Sven Riedel
04:34 AM Revision 745dcf53 (git): [ruby/cgi] Loosen the domain regex to accept '.'
(https://github.com/ruby/cgi/pull/29)
* Loosen the domain regex to accept '.'
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
https://github.com/ruby/cgi/commit/5e09d632f3
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Xenor Chang
03:35 AM Revision 1612d576 (git): Update default gems list at 98074a57ca9f3169fe9da9af6c49b6 [ci skip]
git[bot]
03:34 AM Revision 98074a57 (git): [ruby/cgi] Prepare to release 0.3.6
https://github.com/ruby/cgi/commit/710a647855 hsbt (Hiroshi SHIBATA)
03:31 AM Revision 1a744417 (git): Bundle RBS 2.8.1 (#6819)
Update `bundled_gems` to bundle RBS 2.8.1 soutaro (Soutaro Matsumoto)
02:57 AM Revision 0096d99e (git): Update bundled gems list at 2022-11-28
git[bot]
02:42 AM Revision 595f3063 (git): [StepSecurity] ci: Harden GitHub Actions
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io> StepSecurity Bot
12:51 AM Bug #4040: SystemStackError with Hash[*a] for Large _a_
I submitted a pull request to fix this: https://github.com/ruby/ruby/pull/6816 jeremyevans0 (Jeremy Evans)
12:43 AM Misc #19030: [ANN] Migrate lists.ruby-lang.org to Google Groups
I and @shugo have been migrated all of mailing-lists to google groups and mailmanlists.net.
```
ruby-core - Ruby developers
ruby-dev - Ruby developers (Japanese)
ruby-doc - Ruby documentation
ruby-list - ...
hsbt (Hiroshi SHIBATA)

11/27/2022

10:50 PM Revision e3de7230 (git): MJIT: Move some private declarations
and clean up legacy comments for the Ruby migration k0kubun (Takashi Kokubun)
10:16 PM Revision 2a6dfb1c (git): Synchronously run the MJIT compiler in the parent
process. Completely isolating the MJIT compilation process complicates a
lot of things for ensuring consistency before and after the fork.
Just running this synchronously makes things a lot easier, for example
the race condition of capt...
k0kubun (Takashi Kokubun)
09:34 PM Revision f93ae96b (git): Disable test-all on MJIT CI for now
https://github.com/ruby/ruby/actions/runs/3560006749/jobs/5979749144 k0kubun (Takashi Kokubun)
09:12 PM Revision 62476dd2 (git): Test only --mjit-wait for now
We've disabled MJIT CI on GitHub Actions for a while. It's convenient
that fork repositories need to see failures or disable it.
We should remove unused CI by default instead of silently disabling it.
Since I saw --mjit-wait passed on m...
k0kubun (Takashi Kokubun)
09:02 PM Revision 03b96319 (git): Skip a broken RDoc test
http://ci.rvm.jp/results/trunk-yjit@phosphorus-docker/4309535
http://ci.rvm.jp/results/trunk-random0@phosphorus-docker/4309536
http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/4309538
http://ci.rvm.jp/results/trunk-random2@phosph...
k0kubun (Takashi Kokubun)
07:46 PM Revision 5b1db791 (git): [ruby/rdoc] Revert "Refactor `RDoc::Markup::Parser#tokenize`"
This reverts commit https://github.com/ruby/rdoc/commit/41ceae93b3bc.
https://github.com/ruby/rdoc/commit/5d2c47e8b8
nobu (Nobuyoshi Nakada)
05:24 PM Revision 21977b95 (git): [ruby/rdoc] Refactor `RDoc::Markup::Parser#tokenize`
Make verbatims text or newline only, and simplify `build_verbatim`.
https://github.com/ruby/rdoc/commit/41ceae93b3
nobu (Nobuyoshi Nakada)
05:24 PM Revision 29862ce2 (git): [ruby/rdoc] Darkfish: group method call-seq in div.method-header
This way, custom CSS styles can be easily applied to the entire method
header at once. Otherwise, it can be tricky to make a border that goes
around the entire set of method call-seq, but not the method
description.
https://github.com/...
nevans (Nicholas Evans)
05:18 PM Revision ae3817bc (git): [ruby/rdoc] Darkfish: Nest sidebar ToC as a tree of headings
This uses `<details><summary>heading</summary><ul>nested</ul></detail>`,
similar to how the classes and pages lists are now nested.
https://github.com/ruby/rdoc/commit/e57beff287
nevans (Nicholas Evans)
04:35 PM Revision 511864d1 (git): [ruby/rdoc] Refine regexp usages and reduce substring allocations
https://github.com/ruby/rdoc/commit/a976fb9d39 nobu (Nobuyoshi Nakada)
04:35 PM Revision 1b67c58f (git): [ruby/rdoc] Pull up handle_tab_width to RDoc::Parser
To share with the duplicate code in RDoc::Parser::Ruby#initialize.
https://github.com/ruby/rdoc/commit/27829ac119
nobu (Nobuyoshi Nakada)
06:33 AM Revision d055c44b (git): Update default gems list at 6fdc677186b646f8f011411f827c2f [ci skip]
git[bot]
06:32 AM Revision 6fdc6771 (git): [ruby/erb] Version 4.0.1
https://github.com/ruby/erb/commit/3bb67009dd k0kubun (Takashi Kokubun)
06:30 AM Revision d2c62426 (git): [ruby/erb] Skip using the extension for truffleruby as well
(https://github.com/ruby/erb/pull/39)
* Skip using the extension for truffleruby as well
* Just skip building the C extension for TruffleRuby
* Skip rake compile for truffleruby
* Use resolve_feature_path
* Revert "Use resolve_featu...
k0kubun (Takashi Kokubun)
06:09 AM Revision ec76c986 (git): [ruby/irb] Activate yamatanooroti tests on CI
(https://github.com/ruby/irb/pull/459)
* Activate yamatanooroti tests on CI
* Fix delete test
https://github.com/ruby/irb/commit/750cf4c480
Stan Lo
05:49 AM Feature #19090: Do not duplicate an unescaped string in CGI.escapeHTML
I get what you're saying. My position on this issue is:
* `CGI` is not a good place either unless you're writing a CGI application. ERB also has `ERB::Escape` now, and I'd say "embedded Ruby escape" is a better module name than "CGI" fo...
k0kubun (Takashi Kokubun)
04:57 AM Feature #19090: Do not duplicate an unescaped string in CGI.escapeHTML
Right, I forgot CGI is a default gem too.
I think it seems cleaner for other template engines (e.g. haml, slim, etc) to depend (as in require "cgi") on CGI vs depending on ERB, i.e. CGI feels smaller/like a subset of ERB. In other words...
Eregon (Benoit Daloze)
12:21 AM Revision b55da1cd (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTPHeader
https://github.com/ruby/net-http/commit/77c6878970 burdettelamar (Burdette Lamar)
12:01 AM Bug #19154: Specify require and autoload guarantees in ractors
Besides this particular error, I am wondering about concurrency guarantees in parallel requires to the same file, or parallel references to a constant for which there is an autoload. fxn (Xavier Noria)

11/26/2022

11:52 PM Bug #19154 (Closed): Specify require and autoload guarantees in ractors
Given a file `c.rb`:
```ruby
class C
end
```
the following script:
```ruby
r1 = Ractor.new do
require './c.rb'
end
r2 = Ractor.new do
require './c.rb'
end
r1.take
r2.take
```
raises:
```
% ruby -v foo....
fxn (Xavier Noria)
11:39 PM Revision 73e42ef8 (git): MJIT: Remove a duplicated rescue
`#compile` has a catch-call rescue, so compile_insn_entry shouldn't do
that. It was a temporary code needed during the migration.
k0kubun (Takashi Kokubun)
11:31 PM Revision b2dcde83 (git): MJIT: Merge mjit_compiler.rb into mjit.rb
There are too many mjit_compiler.* files. It was hard to find files. k0kubun (Takashi Kokubun)
11:20 PM Bug #18899: Inconsistent argument handling in IO#set_encoding
Please also see #18995 for another example of the intricate implementation behaving unexpectedly. During my own investigation, I discovered that using `"-"` for the internal encoding name is silently ignored. According to the comments ... javanthropus (Jeremy Bopp)
12:44 PM Bug #18899: Inconsistent argument handling in IO#set_encoding
I've taken a look in `IO#set_encoding` recently and it's such an unreadable mess, I think nobody would be able to explain its full semantics.
So anything to simplify it would IMHO be welcome.
I think `IO#set_encoding` should simply set...
Eregon (Benoit Daloze)
09:58 PM Feature #19090: Do not duplicate an unescaped string in CGI.escapeHTML
I filed a PR for truffleruby https://github.com/ruby/erb/pull/39.
> I think it is important to keep the optimized HTML escape in core/stdlib (e.g., in CGI)
I didn't get what you mean in this part. CGI and ERB are both default gems. The...
k0kubun (Takashi Kokubun)
01:06 PM Feature #19090: Do not duplicate an unescaped string in CGI.escapeHTML
I did not expect `rb_str_dup()` is so costly on CRuby, I guess the allocation is slow and of course CRuby can't escape-analyze it.
I think it is important to keep the optimized HTML escape in core/stdlib (e.g., in CGI), as the fastest w...
Eregon (Benoit Daloze)
09:56 PM Feature #19102: Optimize ERB::Util.html_escape more than CGI.escapeHTML for template engines
Would you mind reviewing https://github.com/ruby/erb/pull/39? I skipped this ticket's change for truffleruby in the PR. k0kubun (Takashi Kokubun)
01:03 PM Feature #19102: Optimize ERB::Util.html_escape more than CGI.escapeHTML for template engines
I think it is unfortunate to add a C extension for ERB for that, ERB was always pure-Ruby and that was nice.
Also the C extension is slower on TruffleRuby, the Regexp is actually JIT-compiled and can use vectorization, unlike that C cod...
Eregon (Benoit Daloze)
09:06 PM Revision de9e2a5a (git): [ruby/net-http] Fix test for Ruby head
The error raised for broken coderanges was changed in ruby/ruby@571d21f
and the test was fixed in that commit but not ported to this repo.
ruby/net-http@e6185dda26ea6db7a3515d4f47ab231f5f4ac902
peterzhu2118 (Peter Zhu)
05:00 PM Bug #19153: Since 2.7.7 CGI::Cookie raises ArgumentError when cookie domains is prefixed with a dot
This issue is discussed at https://github.com/ruby/cgi/pull/29 .
As I wrote in https://github.com/ruby/cgi/pull/29#issuecomment-1325852303, RFC 6265 prohibits leading dot for Cookie domain. However, the old spec of Cookie (RFC 2109) r...
mame (Yusuke Endoh)
04:30 PM Bug #19153 (Closed): Since 2.7.7 CGI::Cookie raises ArgumentError when cookie domains is prefixed with a dot
The rspec tests of our Rails app started failing with an ArgumentError after upgrading to 2.7.7. On inspection, the issue seems to be caused by CGI::Cookie.domain=:
```
def domain=(str)
if str and ((str = str.b).bytesize > 255...
cpinto (Celso Pinto)
12:40 PM Feature #19138: `SyntaxError#path` for syntax_suggest
schneems (Richard Schneeman) wrote in #note-6:
> Instead of adding #line though if we could attach the source that would be more impactful for syntax search.
> ...
Strongly agreed. We should have a way to get the original source code/t...
Eregon (Benoit Daloze)
12:21 AM Feature #19138: `SyntaxError#path` for syntax_suggest
I love the idea.
Instead of adding #line though if we could attach the source that would be more impactful for syntax search.
Some cases such as eval do not have source files, so if we could access the contents for casses without a...
schneems (Richard Schneeman)
06:45 AM Revision 26794b95 (git): Update bundled gems list at 3853385377525258881d35850a4247 [ci skip]
git[bot]
06:44 AM Revision 38533853 (git): Update bundled_gems (#6813)
* Update bundled_gems soutaro (Soutaro Matsumoto)
06:32 AM Misc #19142: Run test suites against 'install', based on ENV variable?
I think that `test` needs `install` only when "preloadenv" and `--enable-load-relative` can't work.
At least `test-all` can run as `/install/bin/ruby test/runner.rb`, I think.
nobu (Nobuyoshi Nakada)
06:06 AM Revision 51994955 (git): Update default gems list at 534bac04e71efcbb9f4dc877f490b9 [ci skip]
git[bot]
06:05 AM Revision 534bac04 (git): [ruby/erb] Version 4.0.0
https://github.com/ruby/erb/commit/2809a54d88 k0kubun (Takashi Kokubun)
05:45 AM Revision 29bf5495 (git): Do not use the same variable for multiple things
`conv` proc is used before and after the `url` variable is updated. So
this script didn't seem to behave correctly for the "Close #xxx" syntax.
Reusing the same variable name for different things seems prone to errors.
k0kubun (Takashi Kokubun)
05:44 AM Revision 95647378 (git): Support other GitHub PR/issue syntaxes
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue k0kubun (Takashi Kokubun)
05:36 AM Revision 7cf94a61 (git): Allow an arbitrary number of newlines
k0kubun (Takashi Kokubun)
05:36 AM Revision 91c7e8af (git): Revert "Update default gems list at 574896a0ce99ab00676aa5ff2fabd3 [ci skip]"
This reverts commit eb3a6ae524b029e96738f21931d95dfad1caed2f. k0kubun (Takashi Kokubun)
05:33 AM Revision eb3a6ae5 (git): Update default gems list at 574896a0ce99ab00676aa5ff2fabd3 [ci skip]
git[bot]
05:32 AM Revision 574896a0 (git): [ruby/erb] Define ERB::Escape module
(https://github.com/ruby/erb/pull/38)
Close #32
k0kubun (Takashi Kokubun)
04:29 AM Revision 15be9ecb (git): Revert "Update default gems list at d0bb24c497ceae01cc7b7698365982 [ci skip]"
This reverts commit ba26dd7ba557f1a8d58251bb8437d579e0d5d23a, which
duplicates the list.
nobu (Nobuyoshi Nakada)
04:13 AM Revision ba26dd7b (git): Update default gems list at d0bb24c497ceae01cc7b7698365982 [ci skip]
git[bot]
04:12 AM Revision d0bb24c4 (git): [DOC] Fix loose and tight lists
The MarkDown parser of RDoc does not allow mixing loose and tight
lists, and the results may be very unexpected otherwise.
nobu (Nobuyoshi Nakada)
04:12 AM Revision 19fdc9ca (git): [DOC] Fix indents of nested bullet lists
nobu (Nobuyoshi Nakada)
04:11 AM Revision 6bd86bb2 (git): Follow the NEWS.md change up [ci skip]
nobu (Nobuyoshi Nakada)
 

Also available in: Atom