Project

General

Profile

Activity

From 01/06/2023 to 01/12/2023

01/12/2023

10:48 PM Misc #19240: DevMeeting-2023-01-19
- [Feature #19333] Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
ioquatix (Samuel Williams)
07:57 AM Misc #19240: DevMeeting-2023-01-19
* [Bug #18658] Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
* Should we merge openssl-3.0.x into `ruby_3_0` before moving security only maintenance phase?
hsbt (Hiroshi SHIBATA)
08:18 PM Revision 537183cd (git): Fix write barrier order for `klass` to `cme` edge
Previously, the following crashes with
`CFLAGS=-DRGENGC_CHECK_MODE=2 -DRUBY_DEBUG=1 -fno-inline`:
$ ./miniruby -e 'GC.stress = true; Marshal.dump({})'
It crashes with a write barrier (WB) miss assertion on an edge from the
`Hash` c...
alanwu (Alan Wu)
08:09 PM Revision da7e5c7b (git): YJIT: Do not refer to an undefined constant (#7112)
k0kubun (Takashi Kokubun)
03:25 PM Bug #19331 (Feedback): --enable-rpath results in incorrect RPATH in Ruby 3.1.3+
I tried the exactly same commands on Ubuntu 22.04, but couldn't reproduce the result of `grep`.
And the command to build windows_31j.so seems using the expected options.
```
gcc -shared -o .ext/x86_64-linux/enc/windows_31j.so enc/...
nobu (Nobuyoshi Nakada)
03:14 PM Revision 8d3ff663 (git): Enable `clippy` checks for yjit in CI (#7093)
* Add job to check clippy lints in CI
* Address all remaining clippy lints
* Check lints on arm64 as well
* Apply latest clippy lints
* Do not exit 0 on clippy warnings
Ian Ker-Seymer
02:06 PM Revision bfc887f3 (git): Add str_enc_copy_direct
This commit adds str_enc_copy_direct, which is like str_enc_copy but
does not check the frozen status of str1 and does not check the validity
of the encoding of str2. This makes certain string operations ~5% faster.
```ruby
puts(Benchma...
peterzhu2118 (Peter Zhu)
11:49 AM Revision 207f8d00 (git): [ruby/irb] Avoid calling private methods on the main object
(https://github.com/ruby/irb/pull/498)
When the main object is frozen, `IRB` wraps a `SimpleDelegator` around it.
But because `SimpleDelegator` doesn't delegate private methods, methods like
`require_relative` or `const_get` would cause...
st0012 (Stan Lo)
10:34 AM Revision 3faecaaa (git): Update bundled gems list at b7598b535e49d316110aa96542a746 [ci skip]
git[bot]
10:33 AM Revision b7598b53 (git): Bump up typeprof-0.21.4
hsbt (Hiroshi SHIBATA)
10:33 AM Revision 633fde41 (git): Try to use https://github.com/ruby/rbs/pull/1207
hsbt (Hiroshi SHIBATA)
10:30 AM Revision 019c6582 (git): [ruby/irb] Remove redundant argument defaults from some RubyLex
methods
(https://github.com/ruby/irb/pull/502)
* Remove unnecessary parameter defaults
These methods are always called with tokens specified. So their default
`@tokens` value is never used and is misleading.
* Remove unnecessary conte...
st0012 (Stan Lo)
09:40 AM Revision aa665958 (git): [ruby/reline] Update to Unicode 15.0.0
(https://github.com/ruby/reline/pull/437)
* Update to Unicode 14.0.0
* Update to Unicode 15.0.0
elfham
07:14 AM Revision d4a3882c (git): Assert possible hash functions in RHASH_ST_TABLE (#7107)
Because of the function pointer, it's hard to figure out what hash
functions could be used in Hash objects when st_lookup is used.
Having this assertion makes it easier to understand what
hash_stlike_lookup could possibly do. (AR uses o...
k0kubun (Takashi Kokubun)
05:41 AM Revision a8537eae (git): [ruby/mutex_m] Avoid anonymous eval
It makes it hard to locate code when profiling etc.
https://github.com/ruby/mutex_m/commit/8760ab19ec
byroot (Jean Boussier)
05:38 AM Revision 0e21c9f5 (git): [ruby/mutex_m] Drop to support Ruby 2.4
https://github.com/ruby/mutex_m/commit/9245b9a63a hsbt (Hiroshi SHIBATA)
04:41 AM Feature #19322: Support spawning "private" child processes
"kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> 2. Programs doing `waitpid -1` are widely deployed, it would
> be good if, when writing gems, there were APIs we could use
> which offer better is...
Anonymous
02:20 AM Feature #19322: Support spawning "private" child processes
> In the example you shown, I believe it's none of Unicorn's business to reap arbitrary processes
Firstly, I do want to note that I don't think this is just a Unicorn problem. This is the "classic unix" way of writing a preforking poo...
kjtsanaktsidis (KJ Tsanaktsidis)
12:11 AM Feature #19322: Support spawning "private" child processes
"Eregon (Benoit Daloze) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> IMHO this sounds like some code is doing bad stuff and not
> properly caring about its own resources.
>
> In the example you shown, I believe it's none of...
Anonymous
02:11 AM Bug #19334 (Closed): Defining many instance variables and accessing them is slow in Ruby 3.2.0
```
class C
eval("def initialize; #{ (0..100000).map { "@x#{ _1 } = 0; " }.join } end")
attr_reader :x50000
end
p :start
C.new.x50000
```
This script takes less than one second in Ruby 3.1.3, and does more than ten second i...
mame (Yusuke Endoh)
01:46 AM Revision fe11bee5 (git): Suppressing installation messages with test-bundler
Ignoring the following messages:
```
(snip)
-e 'load "spec/bundler/support/bundle.rb"' -- install --gemfile=tool/bundler/dev_gems.rb
Using rake 13.0.6
Using bundler 2.5.0.dev
Using diff-lcs 1.5.0
Usin...
hsbt (Hiroshi SHIBATA)
01:26 AM Bug #19254 (Third Party's Issue): Enabling YJIT configuration option breaks rspec-core test suite
hsbt (Hiroshi SHIBATA)
01:15 AM Revision 617b3f69 (git): enhance build matrix
shyouhei (Shyouhei Urabe)
01:11 AM Feature #19075: Binary searching for the last element
I have thought about this issue and am now leaning toward `bsearch(target: :last)`.
I proposed `bsearch_last` at first, this is because I didn't think of an optional keyword argument for `bsearch`.
Since searching the beginning and t...
kyanagi (Kouhei Yanagita)
12:29 AM Revision cc15963a (git): Strip trailing spaces [ci skip]
nobu (Nobuyoshi Nakada)
12:14 AM Revision 0abb4b63 (git): [ruby/reline] Pass unmodifined lines(that does not include escape
sequence) to check_multiline_prompt
(https://github.com/ruby/reline/pull/458)
* pass unmodified lines to check_multiline_prompt
* Add test to check that output modified by output_modifier_proc is not passed to prompt_proc
tompng (tomoya ishida)

01/11/2023

10:54 PM Revision 048751dd (git): Generate parser-text.rb with bcdc058e50674aedb180eea91e0fdb15bcf529db
hsbt (Hiroshi SHIBATA)
10:52 PM Revision bcdc058e (git): [ruby/racc] Get rid of anonymous eval calls
Things declared in anonymous eval are always annoying to locate.
(profilers, etc)
https://github.com/ruby/racc/commit/f304205256
byroot (Jean Boussier)
10:52 PM Revision 11e15b4d (git): [ruby/racc] Make racc Ractor compatible
https://github.com/ruby/racc/commit/1948de9d1d pocke (Masataka Kuwabara)
10:29 PM Revision 7e283c58 (git): [ruby/irb] Formatting to header styles
https://github.com/ruby/irb/commit/cef125850d hsbt (Hiroshi SHIBATA)
10:29 PM Revision 128398e7 (git): [ruby/irb] After Ruby 2.0, coding is always utf-8
https://github.com/ruby/irb/commit/7a94bc4135 hsbt (Hiroshi SHIBATA)
10:29 PM Revision c7bb8d67 (git): [ruby/irb] Removed Release Version and Revisions for old VCS software
https://github.com/ruby/irb/commit/07fae94862 hsbt (Hiroshi SHIBATA)
10:21 PM Feature #19333 (Open): Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
As it stands, Fiber Locals, Thread Locals and Fiber Storage have no way of deleting key-value associations.
```ruby
100.times do |i|
name = :"variable-#{i}"
Thread.current[name] = 10
end
```
Because of this, dynamically ge...
ioquatix (Samuel Williams)
09:26 PM Revision c693dfd7 (git): [ruby/irb] Drop unused arguments in `RubyLex`
(https://github.com/ruby/irb/pull/504)
* Simplify `RubyLex#set_prompt`
It's optional argument is never used by any caller.
* Remove the optional `p` argument from `RubyLex#set_input`
The argument is only used in a test case, which ca...
st0012 (Stan Lo)
07:39 PM Feature #19322: Support spawning "private" child processes
Also the hacks for MJIT in process.c are already infamous, let's not add on top of it and force every Ruby implementation to have such complexity please. Eregon (Benoit Daloze)
07:38 PM Feature #19322: Support spawning "private" child processes
IMHO this sounds like some code is doing bad stuff and not properly caring about its own resources.
In the example you shown, I believe it's none of Unicorn's business to reap arbitrary processes, it doesn't compose (I could be wrong,...
Eregon (Benoit Daloze)
08:01 AM Feature #19322: Support spawning "private" child processes
So I ran into a pretty serious snag when trying to implement my idea with Linux pidfds - you can make a hidden process which is unwaitable & doesn't raise SIGCHLD, but if that process exec's, those special properties go away and it goes ... kjtsanaktsidis (KJ Tsanaktsidis)
07:12 PM Revision 36420068 (git): YJIT: Add a few asm comments (#7105)
* YJIT: Add a few asm comments
* YJIT: Clarify exiting insns
* YJIT: Fix cargo test
k0kubun (Takashi Kokubun)
06:09 PM Bug #19254: Enabling YJIT configuration option breaks rspec-core test suite
I agree with mame that the test is highly questionable.
The GC does not guarantee collection for all semantically unreachable objects since it's not exact.
Because we scan the native stack for conservative marking, changes in code genera...
alanwu (Alan Wu)
04:33 PM Bug #19254: Enabling YJIT configuration option breaks rspec-core test suite
k0kubun (Takashi Kokubun) wrote in #note-2:
> ```
> ...
I have not hit the issue trying to run just this minimal example
vo.x (Vit Ondruch)
06:01 PM Revision ad5ab0c3 (git): Remove unnecessary set of INVALID_SHAPE_ID in rb_callcache
We don't use this value, so there's no need to set it. jemmai (Jemma Issroff)
05:18 PM Bug #19332: Thread::Queue#pop raises ArgumentError with
Oh thanks Jeremy! schnittchen (Thomas Stratmann)
05:13 PM Bug #19332 (Closed): Thread::Queue#pop raises ArgumentError with
The documentation shows that `non_block` is a positional argument, not a keyword argument. You want `q.pop(true)`. jeremyevans0 (Jeremy Evans)
04:42 PM Bug #19332 (Closed): Thread::Queue#pop raises ArgumentError with
✓ ruby --version
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
✓ irb
Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1
Ignoring rbs-2.8.2 because its extensions are not b...
schnittchen (Thomas Stratmann)
04:06 PM Revision abff5f62 (git): Move classpath to rb_classext_t
This commit moves the classpath (and tmp_classpath) from instance
variables to the rb_classext_t. This improves performance as we no
longer need to set an instance variable when assigning a classpath to
a class.
I benchmarked with the f...
peterzhu2118 (Peter Zhu)
04:06 PM Revision d86833e7 (git): Make variation_count an unsigned char
Since SHAPE_MAX_VARIATIONS is 8, it can easily fit inside an unsigned
char.
peterzhu2118 (Peter Zhu)
03:48 PM Feature #19324: Enumerator.product => Enumerable#product
zverok (Victor Shepelev) wrote in #note-4:
> [I]s there a design plan to change _many_ of the methods (`Array.product` in addition to `Enumerable.product`, `Array.zip`, `Hash.merge`, I dunno, maybe even `Array.concat`?..) to the `Module....
sawa (Tsuyoshi Sawada)
08:47 AM Feature #19324: Enumerator.product => Enumerable#product
First, I just looked through codebases at my disposal, and it seems that for `product` there are at least as many examples where the first argument _has_ a special meaning as those where it doesn't. Examples are like:
```ruby
user_name...
zverok (Victor Shepelev)
03:09 AM Feature #19324: Enumerator.product => Enumerable#product
As @duerst mentioned, it is sometimes noted that `Array#product` and `Array#zip` are ugly and inconvenient due to its asymmetry.
https://bugs.ruby-lang.org/issues/8970
https://bugs.ruby-lang.org/issues/6499
I don't think we have ...
mame (Yusuke Endoh)
02:29 PM Bug #19331 (Feedback): --enable-rpath results in incorrect RPATH in Ruby 3.1.3+
I just updated Ruby from 3.1.2 to 3.1.3 and found out that all .so libraries from the enc directory have wrong RPATH/RUNPATH (when building with `--enable-rpath`). I first hit this on Solaris, but my testing on Linux resulted in the same... Kulikjak (Jakub Kulik)
02:25 PM Revision a4682139 (git): [DOC] Mention the conditional regexp
nobu (Nobuyoshi Nakada)
02:16 PM Revision ac8cf010 (git): Remove check for RCLASS_EXT in variable.c
A class/module should always have a RCLASS_EXT, so we shouldn't need to
check that it exists.
peterzhu2118 (Peter Zhu)
12:41 PM Revision 327cf5ec (git): Skip rbs Encoding#replicate test
Eregon (Benoit Daloze)
12:41 PM Revision 6abe20e8 (git): Remove Encoding#replicate
Eregon (Benoit Daloze)
11:38 AM Revision d831b1d5 (git): [ruby/reline] Reset IOGate in test_reset
https://github.com/ruby/reline/commit/331c1094ef Phillip Hellewell
11:38 AM Revision 4222083c (git): [ruby/reline] Change IOGate back to GeneralIO
Staying with ANSI can cause side effects with other tests.
https://github.com/ruby/reline/commit/ba36067802
Phillip Hellewell
11:00 AM Revision b311c35b (git): Suppressing pending messages with RSpec
hsbt (Hiroshi SHIBATA)
10:08 AM Revision 3161fd43 (git): [ruby/psych] Get rid of anonymous eval calls
Things declared in anonymous eval are always annoying to locate.
https://github.com/ruby/psych/commit/38871ad4e5
byroot (Jean Boussier)
09:26 AM Revision e85ef212 (git): [ruby/set] Avoid the `block or return` pattern to save Proc allocations
Using the block param in a boolean context like this cause it to be
allocated.
Using it with an `if` or `unless` was optimized in 3.2
(https://github.com/ruby/ruby/pull/6286) but using it with `or`
or `and` wasn't.
```ruby
def foo(&blo...
byroot (Jean Boussier)
09:09 AM Revision 8c2b6926 (git): Skip unfixed assertion about objspace/dump_all
```
{"address":"0x7f8c03e9fcf0", "type":"STRING", "shape_id":10, "slot_size":40, "class":"0x7f8c00dbed98", "frozen":true, "embedded":true, "fstring":true, "bytesize":5, "value":"TEST2", "encoding":"US-ASCII", "coderange":"7bit", "memsize...
ko1 (Koichi Sasada)
09:05 AM Revision 2038c5c4 (git): Remove about ext/psych/yaml which is no longer bundled [ci skip]
znz (Kazuhiro NISHIYAMA)
03:12 AM Bug #19330 (Closed): ruby 3.2.0 parameter lack-of-autosplat breaks call using (*args, &block)
rockorequin (rocko requin) wrote:
> The following code in Rails 6.1.7 activerecord relation.rb no longer works with ruby 3.2.0, because the call "instance_exec(*args, &block)" raises an ArgumentException:
> ...
This code is expected to...
jeremyevans0 (Jeremy Evans)
02:37 AM Bug #19330 (Closed): ruby 3.2.0 parameter lack-of-autosplat breaks call using (*args, &block)
The following code in Rails 6.1.7 activerecord relation.rb no longer works with ruby 3.2.0, because the call "instance_exec(*args, &block)" raises an ArgumentException:
```
def _exec_scope(*args, &block) # :nodoc:
@delegate_to_kla...
rockorequin (rocko requin)

01/10/2023

07:12 PM Bug #19316: YJIT crash in 3.2.0
Here is a reproducer for 3.1.3:
```ruby
def foo(_, a, b, c)
a & b & ~c
end
n = 2 ** 64
args = [0, -n, n, n-1]
GC.stress = true
p foo(0, -n, n, n-1)
p foo(0, -n, n, n-1)
p foo(0, -n, n, n-1)
__END__
$ ruby-3.1.3/bin/...
alanwu (Alan Wu)
04:11 PM Bug #19316 (Closed): YJIT crash in 3.2.0
Applied in changeset commit:git|aeddc19340c7116d48fac3080553fbb823857d16.
----------
YJIT: Save PC and SP before calling leaf builtins (#7090)
Previously, we did not update `cfp->sp` before calling the C function of
ISEQs marked with `...
alanwu (Alan Wu)
03:29 AM Bug #19316 (Assigned): YJIT crash in 3.2.0
hsbt (Hiroshi SHIBATA)
06:54 PM Revision 5bf7218b (git): Differentiate T_ARRAY and array subclasses (#7091)
* Differentiate T_ARRAY and array subclasses
This commit teaches the YJIT context the difference between Arrays
(objects with type T_ARRAY and class rb_cArray) vs Array subclasses
(objects with type T_ARRAY but _not_ class rb_cArray). ...
tenderlovemaking (Aaron Patterson)
05:12 PM Feature #19325: YJIT: Windows support lacking.
Sorry my tone seemed to be complaining - I appreciate all the hard work being done and seeing that #18439 is being looked at eases my mind. I will try to contribute with some tooling to help ease the pain since I do use windows at work ... dsisnero (Dominic Sisneros)
05:02 AM Feature #19325: YJIT: Windows support lacking.
Sorry, not intended to change the tracker mame (Yusuke Endoh)
04:25 AM Feature #19325: YJIT: Windows support lacking.
dsisnero (Dominic Sisneros) wrote:
> Also, windows compiler support has matured enough and vcpkg support has evolved enough that it seems it should be possible to finally get a ruby version without having to use msys2.
Well, you can ...
mame (Yusuke Endoh)
03:31 AM Feature #19325: YJIT: Windows support lacking.
The reason Windows being second class is not lack of interest but lack of contributors with extensive experience with (non WSL) Windows platform. Any contributors?
I understand your frustration, but complaining does not improve the situ...
matz (Yukihiro Matsumoto)
03:23 AM Feature #19325 (Assigned): YJIT: Windows support lacking.
nobu (Nobuyoshi Nakada)
03:05 AM Feature #19325: YJIT: Windows support lacking.
> With rust having first class windows support and threading support, is there a reason why yjit is not able to work on windows?
Whether the tool (rustc) used to write a (YJIT) compiler supports a platform and whether the compiler sup...
nobu (Nobuyoshi Nakada)
04:11 PM Revision aeddc193 (git): YJIT: Save PC and SP before calling leaf builtins (#7090)
Previously, we did not update `cfp->sp` before calling the C function of
ISEQs marked with `Primitive.attr! "inline"` (leaf builtins). This
caused the GC to miss temporary values on the stack in case the function
allocates and triggers a...
alanwu (Alan Wu)
04:00 PM Revision 6a585dbd (git): YJIT: Fix a compilation warning with release build (#7092)
warning: unused variable: `start_addr`
--> ../yjit/src/asm/mod.rs:359:39
|
359 | pub fn remove_comments(&mut self, start_addr: CodePtr, end_addr: CodePtr) {
| ^^^^^^^^^^ help: if this ...
k0kubun (Takashi Kokubun)
03:51 PM Feature #18190: Split `Random::Formatter` from securerandom
To clarify, random/formatter is now a stdlib (not loaded by default).
`Random::Formatter` is defined in core but has few methods before `require 'random/formatter'`:
```
$ ruby -e 'puts Random::Formatter.instance_methods(false)'
ra...
Eregon (Benoit Daloze)
02:31 PM Revision be1db1ca (git): Just ignore empty lines in bundled_gems file [ci skip]
nobu (Nobuyoshi Nakada)
01:59 PM Revision 2861c8de (git): Remove ARY_SET_SHARED
We don't need ARY_SET_SHARED since we already have rb_ary_set_shared. peterzhu2118 (Peter Zhu)
12:45 PM Feature #18949 (Closed): Deprecate and remove replicate and dummy encodings
Eregon (Benoit Daloze)
12:18 PM Revision 97f8f2c4 (git): [ruby/reline] Add key binding for Delete
https://github.com/ruby/reline/commit/603eacee22 Phillip Hellewell
11:39 AM Revision 47ca75d3 (git): Remove extra line which causes `make test-bundled-gems-fetch` to fail
Eregon (Benoit Daloze)
09:58 AM Feature #19261: `Data#members` is not important
> But Data randomly lacking some shorthand methods that exist for Struct would make such refactoring harder.
Yes, that was the only reason I preserved the method in `Data`. Don't recall using it myself, but don't see harm in its exis...
zverok (Victor Shepelev)
01:25 AM Feature #19261: `Data#members` is not important
k0kubun (Takashi Kokubun) wrote in #note-2:
> If we were to remove this from Data instances, I'd like Struct instances to not have that method either for consistency. Let's say you replace Struct.new with Data.define for something that'...
fabiormoura (Fabio Moura Maia)
09:35 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
maybe we could add some conditions when the object should be printed instead of the class for NoMethodError?
* if object overwrites `method_missing` and maybe `respond_to_missing` then print the object instead of the class
* if the o...
Hanmac (Hans Mackowiak)
07:04 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
zverok (Victor Shepelev) wrote in #note-26:
> Say, in a complicated algorithm working with nested data structures, `undefined method transform_keys for object Array` is significantly worse than `undefined method transform_keys for [{id:...
mame (Yusuke Endoh)
09:20 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
nobu (Nobuyoshi Nakada) wrote in #note-33:
> Adding `-no_fixup_chains -undefined dynamic_lookup` together will break old compilers.
> ...
Good point. I've updated https://github.com/ruby/ruby/pull/7086.
stanhu (Stan Hu)
08:34 AM Revision 6053624a (git): [DOC] Comments about fields in bundled_gems file
nobu (Nobuyoshi Nakada)
06:53 AM Revision a43f1d90 (git): Merge RubyGems and Bundler master
from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609 hsbt (Hiroshi SHIBATA)
05:27 AM Bug #19266: URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER
The attached patch adds a failing test and a change that fixes it.
The rest of the test suite passes with this patch.
gareth (Gareth Adams)
04:46 AM Feature #18439: YJIT: Support Microsoft x86 calling convention
What's used for compiling YJIT itself, which was changed from a C compiler to `rustc`, wasn't a huge concern for supporting Windows. Given that @usa has an idea for the `mmap` part, the main challenge for supporting Windows would be ABI ... k0kubun (Takashi Kokubun)
03:39 AM Feature #18439 (Assigned): YJIT: Support Microsoft x86 calling convention
YJIT has been rewrote with rust in Ruby 3.2. Should we close this? hsbt (Hiroshi SHIBATA)
04:39 AM Revision 89fb61f9 (git): Update LEGAL sections for pub_grub
hsbt (Hiroshi SHIBATA)
04:13 AM Revision f2fc7519 (git): Removed vendored LICENSE file.
hsbt (Hiroshi SHIBATA)
04:07 AM Revision 90023083 (git): Fixed a typo
hsbt (Hiroshi SHIBATA)
03:58 AM Revision 2e0159c5 (git): [rubygems/rubygems] Fix resolver edge case
Let it deal with legacy gems with equivalent version and different
dependencies.
https://github.com/rubygems/rubygems/commit/b430babe97
deivid (David Rodríguez)
03:30 AM Bug #19255 (Assigned): YJIT: global symbol leakage
hsbt (Hiroshi SHIBATA)
02:20 AM Revision 97d52a8e (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.53 to 0.9.54.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.53...v0.9.54)
---
updated-depende...
dependabot[bot]
01:43 AM Revision 9792d9e4 (git): Revert "Re-enable test_ractor for YJIT"
This reverts commit 650a20a3e1205f47224a987676cdbad7d826d597.
Now that 3.2.0 is released, let's disable flaky tests. Koichi said he'll
rework Ractor implementation for this, and it has not been done yet.
k0kubun (Takashi Kokubun)
12:45 AM Revision df76c54f (git): Allow overriding a gdb command on `make gdb`
With --enable-yjit, you see an annoying warning like this:
warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/k0kubun/src/github.com/ruby/ruby/.ruby/miniruby.
Use `info auto-load python-scripts [RE...
k0kubun (Takashi Kokubun)
12:00 AM Bug #19320 (Closed): Crash during compaction while traversing the stack
Applied in changeset commit:git|72eb33066fa9e7dacb7470cd140b219abe37667e.
----------
Fix off-by-one error in rb_vm_each_stack_value
Applying the following patch to test/erb/test_erb.rb and running that
file will cause Ruby to crash on ...
peterzhu2118 (Peter Zhu)
12:00 AM Revision 72eb3306 (git): Fix off-by-one error in rb_vm_each_stack_value
Applying the following patch to test/erb/test_erb.rb and running that
file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro):
```
--- a/test/erb/test_erb.rb
+++ b/test/erb/test_erb.rb
@@ -7,6 +7,12 @@
class TestERB < Test::...
peterzhu2118 (Peter Zhu)

01/09/2023

11:34 PM Feature #19328 (Rejected): Please bring back the use of Hash objects for keyword arguments
This would mean breaking code working on 3.0/3.1/3.2, of course that's not acceptable.
Adding `**` there is not a big deal and it makes a lot of sense once you understand keyword arguments are now separated from positional arguments.
Eregon (Benoit Daloze)
09:05 PM Feature #19328: Please bring back the use of Hash objects for keyword arguments
jeremyevans0 (Jeremy Evans) wrote in #note-2:
>
> ...
Many developers are working on legacy systems that aren't immediately up to date with the latest version of ruby. To imply this is "established" across the entire community is misle...
randallcoding (Randall Coding)
08:50 PM Feature #19328: Please bring back the use of Hash objects for keyword arguments
Considering:
* That separating keyword and positional arguments was done for good reasons (as explained in the
"Why we're deprecating the automatic conversion" section of the page you linked to),
* That reverting the change would r...
jeremyevans0 (Jeremy Evans)
08:31 PM Feature #19328 (Rejected): Please bring back the use of Hash objects for keyword arguments
The change in 3.0 (linked here https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/) no longer automatically converts Hash objects into keyword arguments. This takes Ruby away from wha... randallcoding (Randall Coding)
11:29 PM Bug #19316: YJIT crash in 3.2.0
Updated the Backport field. Looking at the patch, we probably need to backport this to 3.1 as well (the same logic needs to be rewritten in C for https://github.com/ruby/ruby/blob/v3_1_0/yjit_codegen.c#L3638-L3661). k0kubun (Takashi Kokubun)
11:26 PM Bug #19316: YJIT crash in 3.2.0
Thank you for the report and for providing a reliable repro -- it makes diagnosing the problem that much easier!
We have a [fix](https://github.com/ruby/ruby/pull/7090) in the pipeline now.
alanwu (Alan Wu)
11:03 AM Bug #19316: YJIT crash in 3.2.0
Looks like a SIGABRT, address 0x38. This isn't one I've seen yet. noahgibbs (Noah Gibbs)
10:29 PM Revision 0247ccdd (git): Fix a warning in .gdbinit
Warning: 'set logging on', an alias for the command 'set logging enabled', is deprecated.
Use 'set logging enabled on'.
k0kubun (Takashi Kokubun)
10:14 PM Bug #19329 (Third Party's Issue): "gem install" installs logs and other "noisy", non-reproducible files
Please file it to https://github.com/rubygems/rubygems hsbt (Hiroshi SHIBATA)
09:28 PM Bug #19329 (Third Party's Issue): "gem install" installs logs and other "noisy", non-reproducible files
Hello, Ruby!
When building/installing C extensions via `gem install`, log files produced during the build get installed to the `GEM_VENDOR` location. This is undesirable because these files are not functional and they contain non-rep...
apteryx (Maxim C.)
07:27 PM Misc #19240: DevMeeting-2023-01-19
- [Bug #19289] RbConfig::CONFIG["STRIP"] should keep `rb_abi_version` and `rb_abi_version` should always be part of Ruby
- In dev meeting #18557 it was decided that we would keep `rb_abi_version` on both development and release (so ...
peterzhu2118 (Peter Zhu)
07:27 PM Feature #19261: `Data#members` is not important
If we were to remove this from Data instances, I'd like Struct instances to not have that method either for consistency. Let's say you replace Struct.new with Data.define for something that's already immutable, I don't want that change t... k0kubun (Takashi Kokubun)
07:12 PM Revision 40bf8987 (git): Update yjit.md
Add Alan Wu's keynote & Maxime's talk to the list of YJIT-related talks :) maximecb (Maxime Chevalier-Boisvert)
06:43 PM Revision 93b2de82 (git): [rubygems/rubygems] Bump rb-sys in /test/rubygems/test_gem_ext_cargo_builder/custom_name
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.53 to 0.9.54.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.53...v0.9.54)
---
updated-depende...
dependabot[bot]
04:45 PM Bug #19327 (Closed): Backport commits 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c and 9726736006b3f74635fd8af05814fe0908e2cf84
Please backport commits [3be2acfafd3b3c6168e2266c7c6561d143d7ae5c](https://github.com/ruby/ruby/commit/3be2acfafd3b3c6168e2266c7c6561d143d7ae5c) and [9726736006b3f74635fd8af05814fe0908e2cf84](https://github.com/ruby/ruby/commit/972673600... peterzhu2118 (Peter Zhu)
04:29 PM Revision a7fbdc35 (git): YJIT: Remove old comments for regenerated branches (#7083)
k0kubun (Takashi Kokubun)
01:49 PM Revision 97267360 (git): Set STR_SHARED_ROOT flag on root of string
peterzhu2118 (Peter Zhu)
01:49 PM Revision 2ad081f7 (git): Assert that resizing arrays will re-embed them
peterzhu2118 (Peter Zhu)
01:49 PM Revision 682b45d4 (git): Assert that resizing objects will re-embed them
peterzhu2118 (Peter Zhu)
01:49 PM Revision 3be2acfa (git): Fix re-embedding of strings during compaction
The reference updating code for strings is not re-embedding strings
because the code is incorrectly wrapped inside of a
`if (STR_SHARED_P(obj))` clause. Shared strings can't be re-embedded
so this ends up being a no-op. This means that s...
peterzhu2118 (Peter Zhu)
12:44 PM Revision 29dc9378 (git): mkmf.rb: Refine message from `pkg_config`
nobu (Nobuyoshi Nakada)
12:44 PM Revision 0d7bbfc9 (git): mkmf.rb: Prefer `caller_locations` over parsing `caller`
nobu (Nobuyoshi Nakada)
10:46 AM Revision 0a2bf5f1 (git): [ruby/zlib] Check for functions with arguments and the header
With arguments, mkmf skips compilation check for the function as RHS.
https://github.com/ruby/zlib/commit/9ed9d6d36e
nobu (Nobuyoshi Nakada)
09:58 AM Revision 9d078fe4 (git): [ruby/zlib] Fix the test broken in older versions
https://github.com/ruby/zlib/commit/fc89ff9ef0 nobu (Nobuyoshi Nakada)
09:39 AM Revision f6952a94 (git): [ruby/psych] Fix wrong package name of MSYS2/MINGW dependency
There is no package called "libyaml-devel". "libyaml" is enough. larskanis (Lars Kanis)
03:07 AM Feature #19324: Enumerator.product => Enumerable#product
For `product`, one important issue not yet mentioned here is whether it's calculated on e.g. two or three separate arrays, where making the first of the arrays the receiver, or whether it's calculated on an array of arrays where the firs... duerst (Martin Dürst)
12:17 AM Feature #19324: Enumerator.product => Enumerable#product
>[T]wo methods [...] do completely different things and differ by one letter, both being somewhat vague verbs
`produce` is (most of the time) a verb or (sometimes) a noun. `product` is no doubt a noun.
sawa (Tsuyoshi Sawada)

01/08/2023

11:14 PM Revision 41a947e7 (git): [ruby/uri] [DOC] Enhanced RDoc for URI
(https://github.com/ruby/uri/pull/55)
https://github.com/ruby/uri/commit/89ab4f1407
burdettelamar (Burdette Lamar)
07:31 PM Feature #19326 (Closed): Please add a better API for passing a Proc to a Ractor
Example 1:
```ruby
class Worker
def initialize(&block)
@block = block
end
def run
Ractor.new(@block, &:call)
end
end
worker = Worker.new { 1 }
puts worker.run.take
```
Errors with:
```
<internal:racto...
sdwolfz (Codruț Gușoi)
06:28 PM Feature #19261: `Data#members` is not important
I've attached a patch with the changes to remove the aforementioned method. Also, I run the test suite in `test_data.rb` to validate my changes but there was one test failure that I'm unable to explain. However, the test failure looks to... fabiormoura (Fabio Moura Maia)
06:09 PM Feature #19325 (Assigned): YJIT: Windows support lacking.
Ruby's support on windows has always been second class. With some of the recent decisions, windows support is falling even more behind. Recent developments in mjit and yjit that exclude windows are two glaring issues that should be cor... dsisnero (Dominic Sisneros)
05:11 PM Revision 20b691d6 (git): [ruby/uri] [DOC] Enhanced RDoc for URI.decode_www_form
(https://github.com/ruby/uri/pull/53)
https://github.com/ruby/uri/commit/ce379e6125
burdettelamar (Burdette Lamar)
03:06 PM Feature #19324 (Assigned): Enumerator.product => Enumerable#product
I know it might be too late after introducing a feature and releasing a version, but I find `Enumerator.product` quite confusing, and can't find any justification in #18685.
**Problem 1: It is `Array#product` but `Enumerator.product`*...
zverok (Victor Shepelev)
03:02 PM Revision 8f6a9ad3 (git): Remove no longer used environment variable [ci skip]
nobu (Nobuyoshi Nakada)
01:54 PM Feature #19317: Unicode ICU Full case mapping
Oh, OK, I see where you are coming from (the formal correctness of correspondence to Unicode standard/known standard definitions), while I was operating in vague and informal terms "what the user might've meant".
I still don't know w...
zverok (Victor Shepelev)
01:24 PM Feature #19317: Unicode ICU Full case mapping
zverok (Victor Shepelev) wrote in #note-5:
> Also, I believe that having a formal language code in the API (instead of a small informal list of writing systems supported) creates a false expectation that every language specificity might...
noraj (Alexandre ZANNI)
09:46 AM Feature #19317: Unicode ICU Full case mapping
@noraj I believe the important point here is that [there are many](https://en.wikipedia.org/wiki/Turkic_languages#Members) **turkic** languages, and as far as I understand, more than two of them use "dotless i".
At least Crimean Tata...
zverok (Victor Shepelev)
12:45 AM Feature #19317: Unicode ICU Full case mapping
duerst (Martin Dürst) wrote in #note-3:
> Something like this was discussed. My recollection was that it was rejected because it was overkill for the case at hand, and there was no other functionality in core Ruby that needed it.
May...
noraj (Alexandre ZANNI)
01:16 PM Bug #19323 (Closed): Integer overflow in `Integer#<<`
Applied in changeset commit:git|1cdf8ab07b24ebd16e93621957196e8b1d67f2ba.
----------
[Bug #19323] Raise `RangeError` instead of integer overflow
nobu (Nobuyoshi Nakada)
11:05 AM Bug #19323: Integer overflow in `Integer#<<`
https://github.com/ruby/ruby/pull/7087 nobu (Nobuyoshi Nakada)
11:03 AM Bug #19323 (Closed): Integer overflow in `Integer#<<`
```ruby
require 'rbconfig/sizeof'
char_bit = RbConfig::LIMITS["UCHAR_MAX"].bit_length
size_max = RbConfig::LIMITS["SIZE_MAX"]
size_bit_max = size_max * char_bit
1 << size_bit_max
```
The above code raises an "integer overflow" e...
nobu (Nobuyoshi Nakada)
01:14 PM Revision 1cd4db77 (git): Adjust spec of bundler like as `sync_default_gems` [ci skip]
nobu (Nobuyoshi Nakada)
11:58 AM Revision 60ccd1ca (git): Ignore LICENSE files of libraries vendored in rubygems [ci skip]
nobu (Nobuyoshi Nakada)
11:54 AM Revision 1cdf8ab0 (git): [Bug #19323] Raise `RangeError` instead of integer overflow
nobu (Nobuyoshi Nakada)
10:42 AM Feature #19300: Move public methods from Kernel to Object
Thanks, @mame, it is pretty educative and exactly the answer I was looking for in my first ("historical") question! zverok (Victor Shepelev)
08:09 AM Revision 89546dce (git): [rubygems/rubygems] [DOC] Remove internal document about `Kernel` monkey patch
https://bugs.ruby-lang.org/issues/19285
https://github.com/rubygems/rubygems/commit/1e22219ed4
nobu (Nobuyoshi Nakada)
08:09 AM Revision 55aa1a20 (git): [rubygems/rubygems] `LoadError#path` on the caught exception does not need to protect
https://github.com/rubygems/rubygems/commit/a31f5d1a18 nobu (Nobuyoshi Nakada)
08:09 AM Revision 1a1b653c (git): [rubygems/rubygems] Let RDoc parse the doc of `Kernel#require`
Since RDoc does not parse string literals as documents, `eval` the
entire file instead of embedding in a here-document.
On the contrary, as `gem_original_require` alias is an implementation
detail but not for users, it should not be docu...
nobu (Nobuyoshi Nakada)
07:50 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
Adding `-no_fixup_chains -undefined dynamic_lookup` together will break old compilers.
`-no_fixup_chains` should be checked solely **before** `-undefined dynamic_lookup`, at least.
nobu (Nobuyoshi Nakada)
07:01 AM Bug #19005 (Open): Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
naruse (Yui NARUSE)
07:02 AM Feature #18568 (Feedback): Explore lazy RubyGems boot to reduce need for --disable-gems
naruse (Yui NARUSE)

01/07/2023

07:22 PM Revision fd98169e (git): [ruby/uri] [DOC] Common rdoc (https://github.com/ruby/uri/pull/52)
https://github.com/ruby/uri/commit/be8047028f burdettelamar (Burdette Lamar)
06:55 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
Submitted https://github.com/ruby/ruby/pull/7086. stanhu (Stan Hu)
06:28 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
A possible fix is to squelch this warning via `-no_fixup_chains`:
```diff
diff --git a/configure.ac b/configure.ac
index a2a0c1e387..d653a13bb8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3104,7 +3104,7 @@ AS_IF([test "$rb_c...
stanhu (Stan Hu)
06:20 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
stanhu (Stan Hu)
08:40 AM Bug #19005 (Closed): Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
Ok, I see this was reported in https://bugs.ruby-lang.org/issues/19082. stanhu (Stan Hu)
08:38 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
stanhu (Stan Hu)
08:19 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
I think this problem was "accidentally" fixed in Ruby 2.7.7 and 3.0.5, but it's not working in Ruby 3.1.3 and up due to a simple removal of a dollar sign (https://github.com/ruby/ruby/commit/667aa81219ca080c0a4b9f97d29bb3221bd08a33).
I...
stanhu (Stan Hu)
02:48 PM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
> The old result was incorrect. The new, correct result is due to a bug fix. I'm going to close this. If you can find a result that is incorrect in Ruby 3.1 or 3.2, please post it.
I see, makes sence. Thanks for the explanation
alexandruanca (Alexandru Anca)
06:43 AM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
JFI: it is https://github.com/ruby/bigdecimal/pull/180, which fixed https://github.com/ruby/bigdecimal/issues/70 and #13331. nobu (Nobuyoshi Nakada)
05:37 AM Bug #19321 (Closed): BigDecimal multiplication giving different result since Ruby 3.1
The old result was incorrect. The new, correct result is due to a bug fix. I'm going to close this. If you can find a result that is incorrect in Ruby 3.1 or 3.2, please post it. jeremyevans0 (Jeremy Evans)
04:25 AM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
The newer result seems arithmetically correct. nobu (Nobuyoshi Nakada)
03:46 AM Bug #19321 (Closed): BigDecimal multiplication giving different result since Ruby 3.1
I have this math operation 120.to_d * 0.07 and I noticed that since upgrading to Ruby 3.1 I get different results. I would expect to get the same result as in previous versions.
```
rbenv local 3.0.3
➜ irb
require 'bigdecimal/util.r...
alexandruanca (Alexandru Anca)
01:35 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
It might be interesting to limit the depth or maximum number of fields shown for inspect via some argument/fiber locals (so it'd work to some extent with custom `#inspect`)/etc.
But that should be a separate new proposal then.
Eregon (Benoit Daloze)
01:31 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
zverok (Victor Shepelev) wrote in #note-26:
> Honestly, I would much rather prefer users to be advised "make sure your `#inspect` is efficient" than make everybody suffer.
That's not reasonable to ask. `#inspect` was never meant to b...
Eregon (Benoit Daloze)
01:23 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
> The vast majority of classes out there don't define a custom inspect. So Ruby should do something reasonable for these cases.
+1 My intention with my bug report was to call this out -- `inspect` can get really expensive, and you jus...
ivoanjo (Ivo Anjo)
12:20 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
Spec fixed in https://github.com/ruby/ruby/compare/651a098ea1526b363e85fd8d3f30e9783f6c5de1...28cfc0c116b6c6e40bf3b391f026a51b3b208047, so only RangeError for when above the limit. Eregon (Benoit Daloze)
12:06 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
CRuby actually can give NoMemoryError, RangeError but also ArgumentError (seems a bug:
```
$ ruby -e '1 << (2**67-1)'
-e:1:in `<<': integer overflow: 4611686018427387905 * 4 > 18446744073709551615 (ArgumentError)
```
Eregon (Benoit Daloze)
12:00 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
nobu (Nobuyoshi Nakada) wrote in #note-8:
> It is a test for the development branch and unrelated to users using released versions.
It might not be clear given the original bug report, but the behavior of NoMemoryError vs RangeError on ...
Eregon (Benoit Daloze)
01:58 AM Bug #18518 (Rejected): NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
It is a test for the development branch and unrelated to users using released versions. nobu (Nobuyoshi Nakada)
12:18 PM Revision 28cfc0c1 (git): Only RangeError on CRuby for shift width >= 2**67
* It seems a better exception class too than NoMemoryError. Eregon (Benoit Daloze)
12:13 PM Revision 897cf122 (git): Fix Integer#{<<,>>} specs with large shift width
* The limit depends on the implementation and platform, it seems unavoidable.
* See https://bugs.ruby-lang.org/issues/18518#note-9
Eregon (Benoit Daloze)
11:54 AM Feature #19317: Unicode ICU Full case mapping
Just answering to one part:
noraj (Alexandre ZANNI) wrote:
> ## language-sensitive case mapping
> ...
'turkic' was chosen because it includes both Turkish and Azeri languages (see https://en.wikipedia.org/wiki/Turkic_languages)....
duerst (Martin Dürst)
02:03 AM Feature #19317 (Assigned): Unicode ICU Full case mapping
nobu (Nobuyoshi Nakada)
10:48 AM Feature #19314: String#bytesplice should support partial copy
> That shouldn't cost much compared to copying many bytes.
This proposal shows two use cases: text editor and NAT, which doesn't copy many bytes.
naruse (Yui NARUSE)
09:24 AM Feature #19322: Support spawning "private" child processes
Apologies if I wasn’t clear, but I definitely don’t intend for the proposed interface to be platform specific. It would make use of clone/pdfork if they were available, but the fallback implementation (either the “proxy everything throug... kjtsanaktsidis (KJ Tsanaktsidis)
09:16 AM Feature #19322: Support spawning "private" child processes
I'm not very positive to implement platform specific methods, and rather suggest to create a gem as the first step. nobu (Nobuyoshi Nakada)
09:10 AM Feature #19322: Support spawning "private" child processes
I did think about something in that shape @nobu for unsupported systems, but I think there are two problems -
- SIGCHLD will still be received, which is undesirable on its own
- if a different thread is running `Process.waitpid2(-1)` co...
kjtsanaktsidis (KJ Tsanaktsidis)
08:59 AM Feature #19322: Support spawning "private" child processes
Already possible solution would be a daemon process:
```ruby
IO.popen("-", "r+") do |childio|
if childio
# In parent process
Process.wait(childio.pid)
# `Process.wait` no longer consume the returned status code.
...
nobu (Nobuyoshi Nakada)
07:40 AM Feature #19322 (Open): Support spawning "private" child processes
## Background
The traditional Unix process APIs (`fork` etc) are poorly isolated. If a library spawns a child process, this is not transparent to the program using the library. Any signal handler for `SIGCHLD` in the program will be c...
kjtsanaktsidis (KJ Tsanaktsidis)
08:47 AM Revision 651a098e (git): [ruby/did_you_mean] Keep the deprecated API for another year in case this could break 'bundle install'
https://github.com/ruby/did_you_mean/commit/0f4b0806b7 Yuki Nishijima
08:41 AM Bug #19082: Recent gRPC gem fails to build from the source in already released versions
Ok, this is indeed a bug. While Ruby 2.7.7 and 3.0.5 work, Ruby 3.1.3 and up have reintroduced https://bugs.ruby-lang.org/issues/19005. See https://bugs.ruby-lang.org/issues/19005#note-25. stanhu (Stan Hu)
08:02 AM Revision e537aa65 (git): [ruby/syntax_suggest] Run with the given ruby command
Running the file with shebang has a few issues.
* shebang is an OS dependent feature. Many modern UNIX-like OSes
support it, but not all, e.g., Windows.
* `env` command may not be in `/usr/bin`.
* "ruby" command may not be "ruby", whe...
nobu (Nobuyoshi Nakada)
03:15 AM Revision 69a2687a (git): [ruby/bigdecimal] Fix format specifiers for `size_t`
https://github.com/ruby/bigdecimal/commit/99db3c9754 nobu (Nobuyoshi Nakada)
02:47 AM Revision 41fbcc51 (git): Fix format specifiers for pointer differences
nobu (Nobuyoshi Nakada)

01/06/2023

08:09 PM Bug #19318 (Closed): Float#round rounds incorrectly for some cases
Eregon (Benoit Daloze)
03:27 PM Bug #19318 (Closed): Float#round rounds incorrectly for some cases
This was discovered by @aardvark179.
The following spec in `spec/ruby/core/float/round_spec.rb` fails on CRuby:
```ruby
ruby_bug "", ""..."3.3" do
# These numbers are neighbouring floating point numbers round a
# precise...
Eregon (Benoit Daloze)
07:49 PM Revision 00d58afb (git): YJIT: Make iseq_get_location consistent with iseq.c (#7074)
* YJIT: Make iseq_get_location consistent with iseq.c
* YJIT: Call it "YJIT entry point"
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
k0kubun (Takashi Kokubun)
07:49 PM Revision 311ce917 (git): YJIT: Colorize outlined code differently on --yjit-dump-disasm (#7073)
* YJIT: Colorize outlined code differently
on --yjit-dump-disasm
* YJIT: Reduce the number of escape sequences
k0kubun (Takashi Kokubun)
07:26 PM Bug #19320 (Closed): Crash during compaction while traversing the stack
Fix PR: https://github.com/ruby/ruby/pull/7081
Applying the following patch to test/erb/test_erb.rb and running that file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro):
```diff
--- a/test/erb/test_erb.rb
+++ b/tes...
peterzhu2118 (Peter Zhu)
04:46 PM Bug #19319 (Closed): Crash in rb_str_casemap
Applied in changeset commit:git|d8ef0a98c670449b20436947f5ebbd327ed5ab0d.
----------
[Bug #19319] Fix crash in rb_str_casemap
The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.ca...
peterzhu2118 (Peter Zhu)
03:27 PM Bug #19319 (Closed): Crash in rb_str_casemap
Fix here: https://github.com/ruby/ruby/pull/7080
The following code crashes on my machine:
```ruby
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
I can repro this issue on Ruby 2.7.7, 3.0.5, 3.1...
peterzhu2118 (Peter Zhu)
04:46 PM Revision 66bc6209 (git): Remove unused function `rb_shape_flags_mask`
jemmai (Jemma Issroff)
04:37 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
There's no practical reason to support left shift of greater than integer max, so I would support a fast check and RangeError. It would make more sense than just blowing up memory and raising NoMemoryError for something that should never... headius (Charles Nutter)
03:01 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
So on 32-bit platforms it already behaves as I would expect, from the log in https://bugs.ruby-lang.org/issues/19260?next_issue_id=19259&prev_issue_id=19261#note-1
```ruby
1 << (2**40) #=> RangeError (shift width too big)
```
I thi...
Eregon (Benoit Daloze)
04:36 PM Revision d8ef0a98 (git): [Bug #19319] Fix crash in rb_str_casemap
The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
We need to ensure that the object `buffer_anchor` remains on the stack
so it does not get GC'd.
peterzhu2118 (Peter Zhu)
03:49 PM Feature #19302 (Closed): Non-destructive String#insert
jeremyevans0 (Jeremy Evans)
02:28 PM Feature #19302: Non-destructive String#insert
I think we can close this issue. noraj (Alexandre ZANNI)
03:39 PM Bug #19260: ruby/spec is failed with Ruby 3.3
With `git grep -P '\b3\.3\b'`, I found:
```
lib/did_you_mean.rb:116: # TODO: Remove on 3.3:
lib/did_you_mean.rb:135: # TODO: Remove on 3.3:
```
cc @yuki24
```
re.c:3851: rb_warn_deprecated_to_remove("3.3", "3rd argument...
Eregon (Benoit Daloze)
03:31 PM Bug #19260 (Closed): ruby/spec is failed with Ruby 3.3
All good now, thanks for creating this ticket. Eregon (Benoit Daloze)
02:05 PM Bug #19260: ruby/spec is failed with Ruby 3.3
Going in the order of https://github.com/ruby/ruby/commit/a236661a62dc89173dcdd9e071365929db1201a7
* `Encoding#replicate has been removed FAILED` I'll remove it and adjust guard, it's #18949: https://github.com/ruby/ruby/pull/7079
* `do...
Eregon (Benoit Daloze)
03:34 PM Bug #19293: The new Time.new(String) API is nice... but we still need a stricter version of this
> A trustworthy version of ISO8601 parser method perhaps with another name than .new that accepts strict ISO8601-ish String only
Can we improve `Time.iso8601`?
Alternatively we could introduce a method based on https://www.rfc-edit...
byroot (Jean Boussier)
03:28 PM Revision 2b88dbc6 (git): Add bug number
Eregon (Benoit Daloze)
03:19 PM Feature #18949: Deprecate and remove replicate and dummy encodings
This is all done now, only https://github.com/ruby/ruby/pull/7079 left and I'll merge that when it passes CI.
Overall:
* We deprecated and removed `Encoding#replicate`
* We removed `get_actual_encoding()`
* We limited to 256 encodi...
Eregon (Benoit Daloze)
02:19 PM Feature #18949: Deprecate and remove replicate and dummy encodings
@ko1 did https://github.com/ruby/ruby/pull/6935, great, thank you! Eregon (Benoit Daloze)
03:05 PM Feature #19317 (Assigned): Unicode ICU Full case mapping
As announced in [Case Mapping](https://docs.ruby-lang.org/en/master/case_mapping_rdoc.html#label-Default+Case+Mapping), Ruby support for Unicode case mapping is not complete yet.
Unicode supports in Ruby is pretty awesome, it works by...
noraj (Alexandre ZANNI)
03:03 PM Misc #19240: DevMeeting-2023-01-19
* [Bug #18518] NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large (eregon)
* I would like a decision on this ticket
* I propose to raise `RangeError (shift width too big)` if `shift width` is >= 2**31 (32-bit si...
Eregon (Benoit Daloze)
12:46 PM Misc #19240: DevMeeting-2023-01-19
EDIT: I remove #19315 for this meeting's agenda, let's discuss it at a later meeting. Eregon (Benoit Daloze)
11:19 AM Misc #19240: DevMeeting-2023-01-19
* [Feature #19314] String#bytesplice should support partial copy
* Not only I but also kazuho-san wants this feature: https://twitter.com/kazuho/status/1611279616098070532
* Can the length be omitted in the destination?
shugo (Shugo Maeda)
04:52 AM Misc #19240: DevMeeting-2023-01-19
* [Misc #16671] BASERUBY version policy
* How about my proposal?
hsbt (Hiroshi SHIBATA)
02:35 PM Bug #19316 (Closed): YJIT crash in 3.2.0
When I check out this commit from GitHub, https://github.com/jdashton/aoc2022-ruby/tree/5702dac483cd6e95f7be35bfebaf9d4a654796d8 , and run the following command, `RUBYOPT="-v --yjit" bin/rspec spec/aoc2022/puzzles/unstable_diffusion_spec... jdashton (J Daniel Ashton)
02:33 PM Bug #8973: Allow to configure archlibdir for multiarch
Actually, the real intention here is to get rid of the `${arch}` from the paths. The thing is that `--enable-multiarch` used to make it possible, because this is the implementation:
~~~
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_B...
vo.x (Vit Ondruch)
01:55 PM Bug #8973: Allow to configure archlibdir for multiarch
nobu (Nobuyoshi Nakada) wrote in #note-9:
> @vo.x With your patch and `--with-multiarch --with-archlibdir='${libdir}'`, not only libruby.so but also all standard library extensions are placed under `${libdir}` without `${arch}`.
> ...
...
vo.x (Vit Ondruch)
02:20 PM Revision ddbf7be9 (git): [ruby/uri] [DOC] Enhanced RDoc for common methods
(https://github.com/ruby/uri/pull/50)
https://github.com/ruby/uri/commit/7ff4fb372b
burdettelamar (Burdette Lamar)
01:59 PM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
@duerst Could you take a look at this? It's not fixed yet in 3.2.0. Eregon (Benoit Daloze)
01:17 PM Feature #18598: Add String#bytesplice
shugo (Shugo Maeda) wrote in #note-4:
> > * Do not use String and e.g. use an Array of byte values or a C extension
> ...
The typical approach is to flatten (or convert) the Rope to String before matching (whether the Rope is in Ruby o...
Eregon (Benoit Daloze)
01:14 PM Feature #19314: String#bytesplice should support partial copy
Eregon (Benoit Daloze) wrote in #note-5:
> Now that we have IO::Buffer and there is https://docs.ruby-lang.org/en/master/IO/Buffer.html#method-i-copy, why not use that?
So this does what you want I believe:
```ruby
x = "0123456789"...
Eregon (Benoit Daloze)
01:02 PM Feature #19314: String#bytesplice should support partial copy
Ah, something I missed though is that with lazy substrings, there would still need to be a copy of the bytes to "unshare" the string when writing to it.
That copy would also be needed if the string was shared before (e.g. with .dup), but...
Eregon (Benoit Daloze)
12:54 PM Feature #19314: String#bytesplice should support partial copy
naruse (Yui NARUSE) wrote in #note-3:
> But your proposal: Lazy substrings is not a solution because it also creates an object especially for small strings which is embedded in RVALUE.
Yes it creates a String instance reusing the sam...
Eregon (Benoit Daloze)
12:41 PM Feature #19314: String#bytesplice should support partial copy
I agree that this is a workaround and a VM should solve this as an optimization.
But your proposal: Lazy substrings is not a solution because it also creates an object especially for small strings which is embedded in RVALUE.
I agr...
naruse (Yui NARUSE)
12:20 PM Feature #19314: String#bytesplice should support partial copy
I think this is too hard to read and parse for a human and 5 arguments seems way too much for a core method.
It feels like a full memcpy/arraycopy which I don't think in general is a good idea for String.
The implementation complexity ...
Eregon (Benoit Daloze)
11:06 AM Feature #19314 (Closed): String#bytesplice should support partial copy
String#bytesplice should support partial copy without temporary String objects.
For example, given `x = "0123456789"`, either of the following replaces the contents of `x` with `"0167856789"`:
```ruby
x.bytesplice(2, 3, x, 6, 3)
...
shugo (Shugo Maeda)
12:58 PM Bug #19312 (Closed): SEGV during test_ast.rb: <internal:ast>:76: [BUG] parser_token2id: unknown token -1
Applied in changeset commit:git|cee5beab1d7bf6f99530957494ab9775696d42ce.
----------
[Bug #19312] Return end-of-input at `__END__`
nobu (Nobuyoshi Nakada)
11:35 AM Bug #19312: SEGV during test_ast.rb: <internal:ast>:76: [BUG] parser_token2id: unknown token -1
https://github.com/ruby/ruby/pull/7077
Maybe old versions should use `END_OF_INPUT` instead of 0 and -1.
nobu (Nobuyoshi Nakada)
12:45 PM Feature #19315: Lazy substrings in CRuby
`SHARABLE_MIDDLE_SUBSTRING` was introduced circa 2014 in https://github.com/ruby/ruby/commit/a707ab4bc8a by @nobu.
@nobu maybe you have some insights to share on this topic? Is there a reason you remember why this flag was never enabl...
byroot (Jean Boussier)
12:33 PM Feature #19315: Lazy substrings in CRuby
The documentation of RSTRING_PTR() doesn't specify it returns a \0-terminated `char*`, but it seems assumed in various places and it would likely be a security issue if that's not always \0-terminated.
So RSTRING_PTR() needs to realloc ...
Eregon (Benoit Daloze)
12:30 PM Feature #19315 (Open): Lazy substrings in CRuby
CRuby should implement lazy substrings, i.e., "abcdef"[1..3] must not copy bytes.
Currently CRuby only reuse the char* if the substring is until the end of the buffer.
But it should also work wherever the substring starts and ends.
...
Eregon (Benoit Daloze)
12:13 PM Revision cee5beab (git): [Bug #19312] Return end-of-input at `__END__`
nobu (Nobuyoshi Nakada)
11:00 AM Revision d9520bf2 (git): [DOC] Mention `configure` options earlier, not after failure
The command line arguments to `configure` are stored in `rbconfig.rb`.
Usually these are just useless but harmless after the installation,
however could affect unexpectedly when updating default gems.
nobu (Nobuyoshi Nakada)
11:00 AM Revision 42820a98 (git): [DOC] Specify `shell` format to shell commands
nobu (Nobuyoshi Nakada)
11:00 AM Revision b9465614 (git): mkmf.rb: Refactor splitting configure_args and remove duplicate code
nobu (Nobuyoshi Nakada)
11:00 AM Revision cd7e14da (git): Pass options for extensions via `CONFIGURE_ARGS`
nobu (Nobuyoshi Nakada)
10:15 AM Misc #16671: BASERUBY version policy
What we often tend to write frequently are safe navigation operator and indented here-docs.
So I'll be happy it were 2.3 or later.
nobu (Nobuyoshi Nakada)
04:48 AM Misc #16671: BASERUBY version policy
How about the Ruby version provided by the stable Ubuntu release?
* https://packages.ubuntu.com/search?keywords=ruby
* bionic (18.04LTS): 2.5.1, standard EOL date is 2023/04
* focal (20.04LTS): 2.7, standard EOL date is 2025/04
...
hsbt (Hiroshi SHIBATA)
08:53 AM Revision bdd35045 (git): Fix typos [ci skip]
znz (Kazuhiro NISHIYAMA)
08:49 AM Feature #19300: Move public methods from Kernel to Object
Useless history talk. I once asked matz why Kernel exists. If I remember correctly, matz said the following.
* In the beginning, there was a usage distinction of putting global function-like methods (exit, eval, etc.) in Kernel and me...
mame (Yusuke Endoh)
07:02 AM Revision 1be669d0 (git): Update bundled gems list at 2023-01-06
git[bot]
06:37 AM Revision dcf63b58 (git): [ruby/psych] Strip trailing spaces [ci skip]
https://github.com/ruby/psych/commit/e07b16ad8b nobu (Nobuyoshi Nakada)
06:33 AM Revision f877805a (git): [ruby/psych] Add msys2 dependencies for windows
https://github.com/ruby/psych/commit/9a3816d903 dsisnero (Dominic Sisneros)
05:30 AM Bug #19275 (Closed): Bundled gems extensions are not installed with 3.2.0 release tarball
hsbt (Hiroshi SHIBATA)
05:27 AM Bug #19307 (Closed): Fix `OpenSSL::X509::CertificateError: invalid digest` on CentOS 9 / RHEL 9
https://github.com/ruby/spec/pull/990 has been merged. I'll close this. hsbt (Hiroshi SHIBATA)
03:13 AM Revision dd0b4017 (git): Ensure newline at EOF [ci skip]
Cf. https://github.com/ruby/ruby/pull/7069 nobu (Nobuyoshi Nakada)
01:49 AM Revision 6c618cb7 (git): Use a different name for megamorphic setivar exits
We should differentiate between set and get for megamorphic exits. This
patch fixes the megamorphic exit name in gen_setinstancevariable so that
we can tell the difference between megamorphic get / set sites
tenderlovemaking (Aaron Patterson)
12:53 AM Feature #18814: Ractor: add method to query incoming message queue size
I heard from @ko1 in person that _he_ doesn't need this feature to implement his ractor pool. From what I understand he would have a single ruby-level Queue instance for all incoming messages and instead of pushing those messages to eac... shyouhei (Shyouhei Urabe)
12:22 AM Bug #19262 (Closed): Segmentation fault on RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location
Applied in changeset commit:git|979dd02e2f0a70f3f30d47c6115780d8fac6147e.
----------
Check if the argument is Thread::Backtrace::Location object
[Bug #19262]
yui-knk (Kaneko Yuichiro)
12:22 AM Revision 979dd02e (git): Check if the argument is Thread::Backtrace::Location object
[Bug #19262] yui-knk (Kaneko Yuichiro)
 

Also available in: Atom