Project

General

Profile

Activity

From 07/02/2024 to 07/08/2024

07/08/2024

11:36 PM Feature #20610: Float::INFINITY as IO.select timeout argument
ioquatix (Samuel Williams) wrote in #note-2:
> Please note that `nil` timeout can mean use the default timeout.
> ...
I see.
`Regexp.new(timeout: nil)` means `Regexp.new(timeout: Regexp.timeout)`.
Thank you.
Such a use case sh...
akr (Akira Tanaka)
10:04 AM Feature #20610: Float::INFINITY as IO.select timeout argument
There is another issue with accepting Float::INFINITY, it means it needs to be checked explicitly in places where the timeout needs to be converted to a finite duration, to be treated as "no timeout", otherwise that conversation would ra... Eregon (Benoit Daloze)
09:54 AM Feature #20610: Float::INFINITY as IO.select timeout argument
Regarding the general timeout loop, I would write it like this:
```ruby
# timeout is an optional argument. nil means no timeout.
def method(..., timeout: nil)
if timeout
now = Process.clock_gettime(Process::CLOCK_MONOTONIC)
dea...
Eregon (Benoit Daloze)
01:14 AM Feature #20610: Float::INFINITY as IO.select timeout argument
I'm okay with this proposal but I think we should clearly implement:
> If we want to change the timeout of many methods, we would wish to new C-level API similar to rb_time_interval but can return NULL.
I previously discussed some ...
ioquatix (Samuel Williams)
11:28 PM Revision be1089c8 (git): v3.3.4
k0kubun (Takashi Kokubun)
11:09 PM Bug #20570: Nokey behavior changed since 3.3.
ruby_3_3 commit:17e21d815583ef7d6be03f29e90a219602497626 merged revision(s) commit:fc33559c. k0kubun (Takashi Kokubun)
11:09 PM Bug #20570: Nokey behavior changed since 3.3.
I _think_ I managed to fix the conflict. I'd appreciate a backport PR next time though. k0kubun (Takashi Kokubun)
10:46 PM Bug #20570: Nokey behavior changed since 3.3.
The patch doesn't apply to Ruby 3.3 cleanly. Could anybody file a backport PR to `ruby_3_3` branch? k0kubun (Takashi Kokubun)
11:08 PM Revision 17e21d81 (git): merge revision(s) fc33559c: [Backport #20570]
clear `kw_flag` if given hash is nil
https://bugs.ruby-lang.org/issues/20570 is caused I missed to
clear the `kw_flag` even if `keyword_hash` is nil.
k0kubun (Takashi Kokubun)
11:04 PM Bug #20239: Segmentation fault when using Regex on a large String
ruby_3_3 commit:df8a08fb6a1f173a9c25db15fbe390096f39c2ff merged revision(s) commit:75aaeb35b82da26359b9418d2963384d0c55839c. k0kubun (Takashi Kokubun)
11:04 PM Revision df8a08fb (git): merge revision(s) 75aaeb35b82da26359b9418d2963384d0c55839c: [Backport #20239]
[Bug #20239] Fix overflow at down-casting k0kubun (Takashi Kokubun)
11:01 PM Bug #20605: PRs with backported fix for https://github.com/ruby/ruby/pull/11036 to Ruby 3.3 and 3.2
Both PRs have been merged. Thank you! k0kubun (Takashi Kokubun)
10:59 PM Bug #20573: Warning.warn shouldn't be called for disabled warnings
ruby_3_3 commit:a3eb5e5c70eaee12964cdd807b8f19950003141f. k0kubun (Takashi Kokubun)
10:58 PM Bug #20592: Interrupting Addrinfo causes Segmentation fault on alpine
ruby_3_3 commit:9d583dd43a24354e8ae58c089cf091c1243e6e60 merged revision(s) commit:fba8aff7, commit:d8c6e91748871ab2287d7703347847fe18a292d2. k0kubun (Takashi Kokubun)
10:58 PM Revision 9d583dd4 (git): merge revision(s) fba8aff7, d8c6e91748871ab2287d7703347847fe18a292d2: [Backport #20592]
[Bug #20592] Fix segfault when sending NULL to freeaddrinfo
On alpine freeaddrinfo does not accept NULL pointer
Fix dangling `else`
k0kubun (Takashi Kokubun)
10:57 PM Bug #20598: Corruption of internal encoding string
ruby_3_3 commit:291cc913503475a204c93a53a2f470c8cc6bfca2. k0kubun (Takashi Kokubun)
10:56 PM Bug #20595: Corruption of encoding name string
ruby_3_3 commit:291cc913503475a204c93a53a2f470c8cc6bfca2. k0kubun (Takashi Kokubun)
10:55 PM Bug #20468: Segfault on safe navigation in for target
ruby_3_3 commit:8a2e41d34b135046957e1195a5d4f4967a82a965 merged revision(s) commit:2dd46bb82ffc4dff01d7ea70922f0e407acafb4e. k0kubun (Takashi Kokubun)
10:55 PM Revision 8a2e41d3 (git): merge revision(s) 2dd46bb82ffc4dff01d7ea70922f0e407acafb4e: [Backport #20468]
[Bug #20468] Fix safe navigation in `for` variable k0kubun (Takashi Kokubun)
10:54 PM Bug #20585: Size of memory allocated by String.new(:capacity) is different from the specified value
ruby_3_3 commit:d1ffd5ecfa62a049b7c508f30b6912a890de1b32. k0kubun (Takashi Kokubun)
10:52 PM Bug #20581: Ruby 3.3.3 install has missing deps for bundled net-pop gem
ruby_3_3 commit:01762837b7f98934e402c6888e15de32a673b0fd. k0kubun (Takashi Kokubun)
10:42 PM Bug #20562: Categorize `RUBY_FREE_AT_EXIT` warning
ruby_3_3 commit:a40645e115e6cd6328bb302dfc78b16f6ad45938 merged revision(s) commit:01b13886. k0kubun (Takashi Kokubun)
10:42 PM Revision a40645e1 (git): merge revision(s) 01b13886: [Backport #20562]
[Bug #20562] Categorize `RUBY_FREE_AT_EXIT` warning as experimental k0kubun (Takashi Kokubun)
10:40 PM Revision 9a8454ea (git): Fix malformed JSON in macOS CI
k0kubun (Takashi Kokubun)
09:43 PM Revision e500222d (git): fix last commit
`th` is gone. ko1 (Koichi Sasada)
08:57 PM Revision ffc69eec (git): `struct rb_thread_sched_waiting`
Introduce `struct rb_thread_sched_waiting` and `timer_th.waiting`
can contain other than `rb_thread_t`.
ko1 (Koichi Sasada)
08:47 PM Revision a9f6bd02 (git): Add make target shared-gc
Allows building shared GC using `make shared-gc SHARED_GC=gc_impl` peterzhu2118 (Peter Zhu)
08:41 PM Bug #20618 (Closed): ruby uses 1/2 (7 out of 16) cores for 16 ractors
According to `top`, the below code uses 7/16 cores (700%) of my AMD Ryzen 7 5800HS:
```
#!/usr/bin/env ruby
16.times {
Ractor.new {
10_000.downto(1) { |i|
100_000.downto(1) { |j|
i * j
}
}
}
}...
skorobogatydmitry (Dmitry Skorobogaty)
08:02 PM Revision 3be9ce3c (git): YJIT: `dump-disasm`: Print comments and bytes in release builds
This change implements a fallback mode for the `--yjit-dump-disasm`
development command-line option to make it usable in release builds.
Previously, using the option with release builds of YJIT yielded only
a warning asking the user to b...
alanwu (Alan Wu)
07:22 PM Feature #20443: Allow Major GC's to be disabled
ko1 (Koichi Sasada) wrote in #note-22:
> > Introduce GC.config, currently with a single key full_mark.
> ...
I prefer `config` for the following reasons
- `configure` is a verb and therefore implies taking an action. as @byroot says...
eightbitraptor (Matt V-H)
06:17 PM Feature #20443: Allow Major GC's to be disabled
> but not sure config or configure or other word? (English issue).
Given `GC.config` returns the current configuration, I can't be `.configure`.
It could be `.configuration`, or any other concept. We can add it to the upcoming dev...
byroot (Jean Boussier)
05:47 PM Feature #20443: Allow Major GC's to be disabled
> Introduce GC.config, currently with a single key full_mark.
I'm okay to introduce it but not sure `config` or `configure` or other word? (English issue).
ko1 (Koichi Sasada)
06:56 PM Bug #20587: dir.c calls blocking filesystem APIs/system calls while holding the GVL
@ivoanjo Can you be specific about which places this affects? I examined all `opendir` calls in `dir.c`:
* Called in `nogvl_opendir`
* Called in `opendir_without_gvl` when VM is not initialized
* Called in `nogvl_opendir_at`
* Cal...
jeremyevans0 (Jeremy Evans)
06:49 PM Bug #20602 (Closed): RangeError: integer 128496650801200 too big to convert to 'int' without YJIT since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce
jeremyevans0 (Jeremy Evans)
06:43 PM Bug #20602: RangeError: integer 128496650801200 too big to convert to 'int' without YJIT since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce
I think this is fixed since https://github.com/ruby/ruby/pull/11086 was merged. I haven't seen it on the Rails CI nightly, nor can I reproduce locally. eileencodes (Eileen Uchitelle)
06:44 PM Bug #20616 (Feedback): <jemalloc>: Error in munmap(): Invalid argument
alanwu (Alan Wu)
05:50 PM Bug #20616: <jemalloc>: Error in munmap(): Invalid argument
You could try running with the jemalloc `MALLOC_CONF='abort:true'` environment variable to get a crash when the munmap() error happens. That might get you more information with a different backtrace.
I would also check if the code run...
alanwu (Alan Wu)
02:59 PM Bug #20616 (Feedback): <jemalloc>: Error in munmap(): Invalid argument
Good day!
Description:
I am getting the following error randomly. I run the offending code every 10 minutes and some times it crashes and some it doesn't, I am clueless.
The error states:
```
<jemalloc>: Error in munmap(): I...
damuz91 (David Muñoz)
06:42 PM Bug #20617 (Closed): /\pArabic/ character property doesn't match certain Arabic characters
The "Arabic" property is a "scripts" property, which doesn't include punctuations: https://www.unicode.org/standard/supported.html
Ruby documentation for Unicode properties is here: https://docs.ruby-lang.org/en/3.3/regexp/unicode_pro...
alanwu (Alan Wu)
05:06 PM Bug #20617 (Closed): /\pArabic/ character property doesn't match certain Arabic characters
I am not sure this is a bug.
On some occasions I have Arabic text, but the Arabic character property rejects it as being Arabic.
Example:
```
str = "شغل مرحلة أولى ، جداً؟"
/^\p{Arabic}$/.match(str).inspect
# => nil
str.ch...
kytrinyx (Katrina Owen)
06:35 PM Revision a57b4340 (git): Doc fixes
burdettelamar (Burdette Lamar)
06:33 PM Bug #20615 (Closed): [Regexp] Incorrect match result for Regexp including unicode property
jeremyevans0 (Jeremy Evans)
02:47 PM Bug #20615: [Regexp] Incorrect match result for Regexp including unicode property
This regexp pattern is invalid.
Sorry for my mistake.
taichi730 (Taichi Ishitani)
02:34 PM Bug #20615 (Closed): [Regexp] Incorrect match result for Regexp including unicode property
A regex pattern including an unicode property is not matched correctly.
``` ruby
/\A *\z/.match?('') # => true
/\Ap{White_Space}*\z/.match?('') # => false
```
I think both of these patterns should be matched but the later patter...
taichi730 (Taichi Ishitani)
05:13 PM Misc #20574: DevMeeting-2024-07-11
* [Feature #20594] A new String method to append bytes while preserving encoding (byroot)
* When working with binary (messagepack, protobuf) or mixed encoding protocols (Redis, Memcached, etc), it's common to assemble string with diff...
byroot (Jean Boussier)
04:41 PM Misc #20574: DevMeeting-2024-07-11
- [Feature #20612] Introduce new Epsilon (no-op) GC
- Idea taken from [this Java implementation](https://openjdk.org/jeps/318)
- Used for testing and experimentation only, with the recently merged modular GC work
- We'd like to i...
eightbitraptor (Matt V-H)
05:06 PM Revision ae6a2d06 (git): [rubygems/rubygems] Fix wrong version is comment
This RubyGems feature is being released as 3.5.15, so we can stop
monkeypatching RubyGems once support for the previous version is
dropped.
https://github.com/rubygems/rubygems/commit/36f146840d
deivid (David Rodríguez)
05:06 PM Revision 39826f38 (git): [rubygems/rubygems] Backport binstub race condition fix to Bundler
https://github.com/rubygems/rubygems/commit/b07e46820d deivid (David Rodríguez)
04:13 PM Bug #20604: Performance regression in C++ extensions due to lack of optimization flags by default since Ruby 2.7
This can be reproduced with the following benchmark script:
``` ruby
# frozen_string_literal: true
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'benchmark-ips'
gem 'bootstrap', '~> 5.3'
gem ...
ntkme (Natsuki Natsume)
02:20 PM Bug #20611 (Closed): Ruby 3.3: Tempfile#size returns 0 when file is not empty
jeremyevans0 (Jeremy Evans)
06:26 AM Bug #20611: Ruby 3.3: Tempfile#size returns 0 when file is not empty
I just realised now that Tempfile is atually a separate gem. Looking there I can see that the size method is using its internal buffer length if the file is not closed, otherwise it falls back on File.size. Now it's become clear to me th... jbw (Jerry W)
06:16 AM Bug #20611: Ruby 3.3: Tempfile#size returns 0 when file is not empty
Sorry there is a double pipe on the tap call of the first code block - that was a mis-paste by me & I'm unable to edit to correct it.
The code I used was the same everywhere (but no double || :-) )::
ff = Tempfile.new('foo'); puts ...
jbw (Jerry W)
06:06 AM Bug #20611 (Closed): Ruby 3.3: Tempfile#size returns 0 when file is not empty
Hi
I searched to see if this was reported already, or if it was somehow intentional but I'm having an issue with Ruby 3.3.3. I run under rbenv 2.7.6 on amd64 linux (debian 6.6.13-1 kernel). For me, ruby 3.3.3 exhibits some oddness wit...
jbw (Jerry W)
01:08 PM Revision 0c61e212 (git): Rename rb_gc_impl_verify_internal_consistency to gc_verify_internal_consistency
It's an internal function so we can drop the rb_gc_impl peterzhu2118 (Peter Zhu)
01:06 PM Revision e148db70 (git): Make rb_gc_impl_verify_internal_consistency static
The function is not used outside of this file. peterzhu2118 (Peter Zhu)
12:11 PM Bug #20614 (Rejected): Integer#size returns incorrect values on 64-bit Windows
According to the ruby/spec, `0.size` should return size of the machine word in bytes, but on x64-mswin64_140 (both release 3.3.3 and git revision 02c4f0c89d) it doesn't. Following example:
``` ruby
a, b = 0.size, [0].pack('J').length...
surusek (Łukasz Sur)
11:48 AM Feature #20613 (Open): Implement shadow stack (part of CET) for coroutines
To fully enable CET, shadow stack needs to be implemented for coroutines. The initial implementation was proposed [here](https://github.com/ruby/ruby/pull/5895) by @ioquatix as part of #18061 vo.x (Vit Ondruch)
11:44 AM Feature #20612 (Open): Introduce new Epsilon (no-op) GC
## Summary
[[Github PR 11122]](https://github.com/ruby/ruby/pull/11122)
This ticket proposes the introduction of a new GC, modelled on the [Epsilon collector introduced in Java 11](https://openjdk.org/jeps/318). This collector is a...
eightbitraptor (Matt V-H)
11:00 AM Revision 02c4f0c8 (git): Reverts related commits with https://github.com/ruby/open-uri/pull/37
It caused Timeout failure with RJIT and chkbuild
http://rubyci.s3.amazonaws.com/debian11/ruby-master/log/20240708T063006Z.fail.html.gz
https://github.com/ruby/ruby/actions/runs/9836594303/job/27152644853
hsbt (Hiroshi SHIBATA)
10:24 AM Feature #19236 (Closed): Allow to create hashes with a specific capacity from Ruby
Applied in changeset commit:git|9594db0cf28d7bc10bfc46142239191a11f1dbbe.
----------
Implement Hash.new(capacity:)
[Feature #19236]
When building a large hash, pre-allocating it with enough
capacity can save many re-hashes and signifi...
byroot (Jean Boussier)
10:24 AM Revision 9594db0c (git): Implement Hash.new(capacity:)
[Feature #19236]
When building a large hash, pre-allocating it with enough
capacity can save many re-hashes and significantly improve
performance.
```
/opt/rubies/3.3.0/bin/ruby --disable=gems -rrubygems -I./benchmark/lib ./benchmark/b...
byroot (Jean Boussier)
08:58 AM Revision bfb8cad7 (git): Expand RJIT timeout to 60min
hsbt (Hiroshi SHIBATA)
08:05 AM Revision a5f40147 (git): Load net-http explicitly for SimpleHTTPProxyServer
hsbt (Hiroshi SHIBATA)
06:18 AM Revision b903d9f0 (git): [ruby/tempfile] typofix
https://github.com/ruby/tempfile/commit/82a74b017e hsbt (Hiroshi SHIBATA)
06:15 AM Revision 4658d652 (git): Load socket explicitly for TCPServer
hsbt (Hiroshi SHIBATA)
06:15 AM Revision 95bf9049 (git): Load OpenSSL on TestOpenURIUtils for with_https
hsbt (Hiroshi SHIBATA)
05:38 AM Revision e4825a51 (git): [rubygems/rubygems] Fix another race condition
We also need to protect prior removal of the binstub, otherwise it can
happen that:
* Process A removes prior binstub FOO.
* Process B removes prior binstub FOO (does nothing actually because Process A already removed it).
* Process A w...
deivid (David Rodríguez)
05:38 AM Revision d90a930e (git): [rubygems/rubygems] Properly protect writing binstubs with a file lock
There's an issue when multiple processes try to write the same binstub.
The problem is that our file locking mechanism is incorrect because
files are truncated _before_ they are locked. So it can happen that:
* Process A truncates binst...
deivid (David Rodríguez)
05:38 AM Revision da12d634 (git): [rubygems/rubygems] Scope rescuing `Errno::ENOLCK` to just `File.open`
https://github.com/rubygems/rubygems/commit/2a9d347d29 deivid (David Rodríguez)
05:38 AM Revision 7cf7e7e2 (git): [rubygems/rubygems] Add missing blank line after method documentation
https://github.com/rubygems/rubygems/commit/2df7560ade deivid (David Rodríguez)
05:38 AM Revision 6db1c53f (git): [rubygems/rubygems] Remove unnecessary FileUtils usage
All other `chmod` usages in the file use `File.chmod`, so keep it
consistent.
https://github.com/rubygems/rubygems/commit/3dc0cf8703
deivid (David Rodríguez)
04:53 AM Revision dcc8e542 (git): [ruby/open-uri] Don't use Base64 library
https://github.com/ruby/open-uri/commit/c8c0452d53 hsbt (Hiroshi SHIBATA)
04:53 AM Revision bf898057 (git): [ruby/open-uri] Test with Windows
https://github.com/ruby/open-uri/commit/2606892a43 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 71490d23 (git): [ruby/open-uri] Move certificates under the TestOpenURIUtils
https://github.com/ruby/open-uri/commit/a28c2da5d2 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 3d78e633 (git): [ruby/open-uri] Load stringio with the correct files
https://github.com/ruby/open-uri/commit/cb17a907a2 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 09c52b91 (git): [ruby/open-uri] Removed needless class definition and variables
https://github.com/ruby/open-uri/commit/ab0e916997 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 61e00856 (git): [ruby/open-uri] Don't use URI library
https://github.com/ruby/open-uri/commit/15989970b6 hsbt (Hiroshi SHIBATA)
04:53 AM Revision e6b6c2ba (git): [ruby/open-uri] support CONNECT method for SimpleHTTPProxy
https://github.com/ruby/open-uri/commit/2e36793bd5 hsbt (Hiroshi SHIBATA)
04:53 AM Revision b7829064 (git): [ruby/open-uri] Added SimpleHTTPSServer by TCPServer and OpenSSL
https://github.com/ruby/open-uri/commit/57c80e1576 hsbt (Hiroshi SHIBATA)
04:53 AM Revision debcf108 (git): [ruby/open-uri] Added SimpleHTTPProxyServer by TCPServer
https://github.com/ruby/open-uri/commit/ad47529306 hsbt (Hiroshi SHIBATA)
04:53 AM Revision a574e290 (git): [ruby/open-uri] Extract SimpleHTTPServer and with_http to TestOpenURIUtils module for other tests
https://github.com/ruby/open-uri/commit/489a1e9006 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 7a74dced (git): [ruby/open-uri] Added SimpleHTTPSServer by TCPServer
https://github.com/ruby/open-uri/commit/a2b1ebe465 hsbt (Hiroshi SHIBATA)
04:53 AM Revision a105bf81 (git): [ruby/open-uri] Removed needless setup and teardown, tmpdir variables
https://github.com/ruby/open-uri/commit/b2d7fc4ff3 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 846c45c2 (git): [ruby/open-uri] Extract FTP tests from test_open-uri.rb
https://github.com/ruby/open-uri/commit/324111eb41 hsbt (Hiroshi SHIBATA)
04:53 AM Revision 6fb482d4 (git): [ruby/open-uri] Extract HTTP Proxy tests from test_open-uri.rb
https://github.com/ruby/open-uri/commit/e9e6bd2779 hsbt (Hiroshi SHIBATA)
03:54 AM Revision 6d24bc49 (git): Bump actions/upload-artifact from 4.3.3 to 4.3.4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/654628...
dependabot[bot]
03:15 AM Revision 6ac03098 (git): Bump ruby/setup-ruby from 1.184.0 to 1.185.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.184.0 to 1.185.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](http...
dependabot[bot]
01:15 AM Revision 8ede84aa (git): Move the file location of launchable.rb
ono-max (Naoto Ono)
01:15 AM Revision 5b789254 (git): Integrate Launchable into make btest
ono-max (Naoto Ono)

07/07/2024

12:37 PM Bug #18061 (Closed): Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
Applied in changeset commit:git|3381c60836ae499899179f454c6bb1dd3b0891ba.
----------
Ensure CFLAGS are passed to probes.o generation
The dtrace python script from systemtap on Linux actually looks at the
CFLAGS environment variable whe...
Anonymous
12:37 PM Bug #20601 (Closed): Configuration flags are not properly propagated to assembler
Applied in changeset commit:git|b18701a7ae0a71c339906ef0db4910fb43645b45.
----------
Remove $(ASFLAGS) from build system and assemble with $(CFLAGS) instead
We already assemble our assembly files using the $(CC) compiler driver,
rather...
Anonymous
12:37 PM Revision dface442 (git): Also export CC for dtrace's benefit as well
The CFLAGS might contain flags that only work with the specified CC KJ Tsanaktsidis
11:28 AM Bug #20162: Memory leak when duplicating too complex object
ruby_3_2 commit:c97a632363a170879b9755c5a123e92533908039 merged revision(s) commit:82b57d7bfeefd717c10f7a5a3484aca6b3e708a3. nagachika (Tomoyuki Chikanaga)
11:26 AM Bug #20311: Struct.new("A") memory leak?
ruby_3_2 commit:bd5df1693c89d389471d145fc19b487c708912b1 merged revision(s) commit:e626da82eae3d437b84d4f9ead0164d436b08e1a, commit:f3af5ae7e6c1c096bbfe46d69de825a02b1696cf. nagachika (Tomoyuki Chikanaga)
10:58 AM Misc #20574: DevMeeting-2024-07-11
* [Feature #20610] Float::INFINITY as IO.select timeout argument (akr)
* Float::INFINITY is useful for timeout computation.
akr (Akira Tanaka)
10:14 AM Revision 8ec67052 (git): Do not define SHSTK feature for amd64 Context.S
We do not implement CET shadow-stack switching in amd64 Context.S. If
you compile Ruby with `-fcf-protection=full` and run it with
`GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK` exported, it will crash with a
control flow exception.
Configure ...
KJ Tsanaktsidis
10:14 AM Revision 3381c608 (git): Ensure CFLAGS are passed to probes.o generation
The dtrace python script from systemtap on Linux actually looks at the
CFLAGS environment variable when invoking gcc to make the probes.o file.
If we don't pass the CFLAGS we're using, this probes.o file can wind up
without the required ...
KJ Tsanaktsidis
10:14 AM Revision b940de83 (git): Revert autoconf macros defining RUBY_AARCH64_{BTI|PAC}_ENABLED
This partially reverts https://github.com/ruby/ruby/pull/10944; now that
we decided to pass CFLAGS to $(CC) when assembling .S files, we don't
need these autoconf macros that capture the state of
__ARM_FEATURE{PAC|BTI}_DEFAULT.
[Bug #20...
KJ Tsanaktsidis
10:14 AM Revision b18701a7 (git): Remove $(ASFLAGS) from build system and assemble with $(CFLAGS) instead
We already assemble our assembly files using the $(CC) compiler driver,
rather than the actual $(AS) assembler. This means that
* The C preprocessor gets run on the assembly file
* It's valid to pass gcc-style flags to it, like e.g.
-...
KJ Tsanaktsidis
07:46 AM Revision c97a6323 (git): merge revision(s) 82b57d7bfeefd717c10f7a5a3484aca6b3e708a3: [Backport #20162]
Fix memory leak when duplicating too complex object
[Bug #20162]
Creating a ST table then calling st_replace leaks memory because the
st_replace overwrites the ST table without freeing any of the existing
...
nagachika (Tomoyuki Chikanaga)
07:44 AM Revision bd5df169 (git): merge revision(s) e626da82eae3d437b84d4f9ead0164d436b08e1a, f3af5ae7e6c1c096bbfe46d69de825a02b1696cf: [Backport #20311]
Don't pin named structs defined in Ruby
[Bug #20311]
`rb_define_class_under` assumes it's called from C and that the
reference might be held in a C global variable, so it adds the
class to the VM root.
...
nagachika (Tomoyuki Chikanaga)
07:43 AM Bug #19907: Method calls with keyword arguments in eval leaks callcache and callinfo objects
Backporting 1c97abaabae6844c861705fd07f532292dcffa74 into ruby_3_2 branch introduces MJIT test failures (TestMJIT#test_compile_insn_invokesuper).
https://github.com/nagachika/ruby/actions/runs/9825009796/job/27124625737
I gave up to ...
nagachika (Tomoyuki Chikanaga)
05:51 AM Bug #20145: Memory leak when duplicating identhash
My trial backpoting to ruby_3_2 introduce Segmentation fault. See https://github.com/nagachika/ruby/actions/runs/9824962371/job/27124518333
I gave up to backport this to ruby_3_2.
nagachika (Tomoyuki Chikanaga)
05:24 AM Bug #20228: Memory leak in Regexp timeout
I gave up to make a clean patch for ruby_3_2 branch. Please make PR if you want to backport. nagachika (Tomoyuki Chikanaga)
04:09 AM Revision 087b461c (git): [DOC] Fix typo `with` -> `wish`
cdfzo
02:01 AM Feature #20610: Float::INFINITY as IO.select timeout argument
This is an experimental patch (IO.select only).
akr (Akira Tanaka)
01:26 AM Feature #20610 (Closed): Float::INFINITY as IO.select timeout argument
I propose IO.select accepts Float::INFINITY as a timeout argument.
It behaves the same as nil which means IO.select will block indefinitely.
Motivation:
Currently, the Ruby convention to indicate no timeout is using nil.
This pra...
akr (Akira Tanaka)
01:41 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
I'm really looking forward to this feature being available via a Ruby interface. ❤️ shan (Shannon Skipper)

07/06/2024

05:55 PM Revision d76332e5 (git): Update default gems list at abaa1b913d6ac15ab1cb6c639a9b8b [ci skip]
git[bot]
05:55 PM Revision abaa1b91 (git): [ruby/irb] Bump version to v1.14.0
(https://github.com/ruby/irb/pull/980)
https://github.com/ruby/irb/commit/6a9e129714
st0012 (Stan Lo)
05:32 PM Feature #20609: Nested module namespace misses fallback to top level
This is expected. When you do:
```ruby
module A::B
end
```
Understand that in Ruby, this is a general form of:
```ruby
module (expression)::B
end
```
Ruby resolves `expression` (e.g. constant lookup for `A`), then defin...
jeremyevans0 (Jeremy Evans)
02:10 PM Feature #20609 (Open): Nested module namespace misses fallback to top level

Currently, Ruby falls back to the top-level constants if it cannot find the Module in the local scope. This can cause it to behave unintuitively.
```ruby
module A
module B
MY_CONST = 'defined in A::B'
end
end
module ...
abdullah.arif (Abdullah Arif)
10:07 AM Bug #20606 (Closed): Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
Applied in changeset commit:git|7f1fe5f091db3b05c3970e7b7a7c602922729642.
----------
Raise a TypeError for Thread#thread_variable{?,_get} for non-symbol
Previously, a TypeError was not raised if there were no thread
variables, because ...
jeremyevans (Jeremy Evans)
10:07 AM Revision 7f1fe5f0 (git): Raise a TypeError for Thread#thread_variable{?,_get} for non-symbol
Previously, a TypeError was not raised if there were no thread
variables, because the conversion to symbol was done after that
check. Convert to symbol before checking for whether thread
variables are set to make the behavior consistent...
jeremyevans (Jeremy Evans)
07:20 AM Revision 2a4469ea (git): [Backport #11036 to 3.2] Add explicit compiler fence when pushing frames to ensure safe profiling
**What does this PR do?**
This PR tweaks the `vm_push_frame` function to add an explicit compiler
fence (`atomic_signal_fence`) to ensure profilers that use signals
to interrupt applications (stackprof, vernier, pf2, Datadog profiler)
c...
ivoanjo (Ivo Anjo)
07:19 AM Bug #20305: commit 1d2d25dcadda0764f303183ac091d0c87b432566 breaks grapheme_clusters
ruby_3_2 commit:a67b43d99e24dc7c2a9e134a65f28f968fe124c1 merged revision(s) commit:3a04ea2d0379dd8c6623c2d5563e6b4e23986fae. nagachika (Tomoyuki Chikanaga)
07:19 AM Bug #20239: Segmentation fault when using Regex on a large String
ruby_3_2 commit:2b35d80834f14011f7d313f8fac7855dc9949f70 merged revision(s) commit:75aaeb35b82da26359b9418d2963384d0c55839c. nagachika (Tomoyuki Chikanaga)
06:55 AM Revision 2b35d808 (git): merge revision(s) 75aaeb35b82da26359b9418d2963384d0c55839c: [Backport #20239]
[Bug #20239] Fix overflow at down-casting nagachika (Tomoyuki Chikanaga)
06:54 AM Revision a67b43d9 (git): merge revision(s) 3a04ea2d0379dd8c6623c2d5563e6b4e23986fae: [Backport #20305]
[Bug #20305] Fix matching against an incomplete character
When matching against an incomplete character, some `enclen` calls are
expected not to exceed the limit, and some are expected to return the
required leng...
nagachika (Tomoyuki Chikanaga)
06:36 AM Bug #20288: `rb_fiber_scheduler_close` exceptions are not handled in `rb_fiber_scheduler_set`.
ruby_3_2 commit:89de66dbb0d8454c9d69faa331d6e35f8b315cce merged revision(s) commit:78d9fe69479d32214a52ad7291c3973f1b6b7f6f, commit:04729fe68dceddab045be7324e26c2bb15aa62c7. nagachika (Tomoyuki Chikanaga)
06:35 AM Bug #20393: `after_fork_ruby` clears all pending interrupts for both parent and child process.
Thanks! ioquatix (Samuel Williams)
06:34 AM Bug #20393: `after_fork_ruby` clears all pending interrupts for both parent and child process.
ruby_3_2 commit:5577e5d396cc8f062833b67d6280db6cc8501e7a merged revision(s) commit:a7ff264477105b5dc0ade6facad4176a1b73df0b. nagachika (Tomoyuki Chikanaga)
06:35 AM Bug #20286: TracePoint does not emit `thread_end` event when thread exits with exception
ruby_3_2 commit:89de66dbb0d8454c9d69faa331d6e35f8b315cce merged revision(s) commit:78d9fe69479d32214a52ad7291c3973f1b6b7f6f, commit:04729fe68dceddab045be7324e26c2bb15aa62c7. nagachika (Tomoyuki Chikanaga)
05:14 AM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
> So either the metadata should signal just IBT
in the meanwhile I've done this in https://github.com/ruby/ruby/pull/11112
kjtsanaktsidis (KJ Tsanaktsidis)
04:27 AM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
I wonder if distributors who want shadow-stack support should just compile Ruby with `--with-coroutine=ucontext` to use the `swapcontext(3)` based implementation of fibers instead of the assembly language one. I've spent the morning look... kjtsanaktsidis (KJ Tsanaktsidis)
04:35 AM Revision 89de66db (git): merge revision(s) 78d9fe69479d32214a52ad7291c3973f1b6b7f6f, 04729fe68dceddab045be7324e26c2bb15aa62c7: [Backport #20286] [Backport #20286]
Ensure that exiting thread invokes end-of-life behaviour. (#10039)
Fix exception handling in `rb_fiber_scheduler_set`. (#10042)
nagachika (Tomoyuki Chikanaga)
04:26 AM Revision 5577e5d3 (git): merge revision(s) a7ff264477105b5dc0ade6facad4176a1b73df0b: [Backport #20393]
Don't clear pending interrupts in the parent process. (#10365) nagachika (Tomoyuki Chikanaga)
02:24 AM Bug #20413: Enumerator can block fiber scheduler.
Sorry, I accidentally handled a different ticket (#20414).
ruby_3_2 commit:2f8f17e842666abb05ca522d6072c957fab0e12e merged revision(s) commit:5d1702e01a36e11b183fe29ce10780a9b1a41cf0.
nagachika (Tomoyuki Chikanaga)
02:22 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
Sorry, I accidentally changed a different ticket. nagachika (Tomoyuki Chikanaga)
02:20 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
ruby_3_2 commit:2f8f17e842666abb05ca522d6072c957fab0e12e merged revision(s) commit:5d1702e01a36e11b183fe29ce10780a9b1a41cf0. nagachika (Tomoyuki Chikanaga)
02:13 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
I think this change seems somewhat like a spec change. Could this change potentially reveal latent errors in the application and affect its operation?
Additionally, regardless of the case, I believe the ruby_version_is guard in rubysp...
nagachika (Tomoyuki Chikanaga)
02:16 AM Revision 2f8f17e8 (git): merge revision(s) 5d1702e01a36e11b183fe29ce10780a9b1a41cf0: [Backport #20414]
Enumerator should use a non-blocking fiber, change `rb_fiber_new` to be non-blocking by default. (#10481) nagachika (Tomoyuki Chikanaga)
02:01 AM Bug #20499: Ruby builds on macOS store absolute paths for AR and NM in rbconfig since Ruby 3.2.3/3.3.0
ruby_3_2 commit:5141d72fde2528721663ddbc0554ac81ddc0656f merged revision(s) commit:1e08a9f0e9058186db18f29efc6458c00f10a856. nagachika (Tomoyuki Chikanaga)
02:01 AM Revision 5141d72f (git): merge revision(s) 1e08a9f0e9058186db18f29efc6458c00f10a856: [Backport #20499]
[Bug #20499] Use Xcode owned tools for Xcode clang
Xcode has its own version tools that may be incompatible with genuine
LLVM tools, use the tools in the same directory.
nagachika (Tomoyuki Chikanaga)

07/05/2024

10:38 PM Revision e240fc9c (git): [DOC] yjit.md: Markdown fixes for RDoc
It now renders properly on both GitHub and with RDoc's darkfish theme. alanwu (Alan Wu)
06:18 PM Bug #20608 (Assigned): Hash#find always allocates each iterated pair
I have prototyped a patch that delays the array allocation of multiple arguments for `Enumerable#find`, `#any?` etc.
https://github.com/ruby/ruby/pull/11110
```
$ ./miniruby bench.rb
ruby 3.4.0dev (2024-07-05T17:35:30Z lazy-alloc...
mame (Yusuke Endoh)
10:32 AM Bug #20608: Hash#find always allocates each iterated pair
> I personally don't like the idea of manually copying many Enumerable methods into Hash...
It is indeed annoying. On the good side, they could be implemented with Ruby code -- e.g. implementing `find` using `any?`. This would even op...
ivoanjo (Ivo Anjo)
10:07 AM Bug #20608: Hash#find always allocates each iterated pair
As you've probably noticed from reading the source, there is no `Hash#find` method. `Enumerable#find` is. It cannot know that `#each` yields a two-element array, so it is not easy to optimize it.
We could define Hash#find method as a ...
mame (Yusuke Endoh)
08:49 AM Bug #20608 (Closed): Hash#find always allocates each iterated pair
Hey there!
Recently I ran into this sharp edge in `Hash#find`:
```ruby
puts RUBY_DESCRIPTION
def allocated_now = GC.stat(:total_allocated_objects)
dummy_hash = 10_000.times.each_with_index.to_h
before_allocs = allocated_n...
ivoanjo (Ivo Anjo)
06:05 PM Revision 3fede665 (git): Update GitHub actions for shared GC
peterzhu2118 (Peter Zhu)
06:05 PM Revision e2ceded2 (git): Change external GC to use directory at configure
This commit changes the external GC API to use `--with-shared-gc=DIR` at
configure time with a directory of the external GC and uses
`RUBY_GC_LIBRARY` environment variable to load the external GC at
runtime.
peterzhu2118 (Peter Zhu)
06:05 PM Revision 8fd2df52 (git): Revert "Load external GC using command line argument"
This reverts commit 8ddb1110c283c5cb59b6582383f36fdbcc43ab19. peterzhu2118 (Peter Zhu)
05:51 PM Revision 32ba86c9 (git): [ruby/irb] Return only commands when completing help command's
argument
(https://github.com/ruby/irb/pull/973)
The command only takes command names as arguments, so we should only
return command names as candidates.
This will help users find a command faster as completion will be
another useful hi...
st0012 (Stan Lo)
05:17 PM Misc #20574: DevMeeting-2024-07-11
* [Bug #20505] Reassigning the block argument in method body keeps old block when calling super with implicit arguments (jeremyevans0)
* This makes behavior when reassigning block argument inconsistent with reassigning positional/keyw...
jeremyevans0 (Jeremy Evans)
04:29 PM Bug #20606: Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
Eregon (Benoit Daloze) wrote in #note-4:
> > I'm not opposed to changing the behavior, but raising an exception when one was not previously raised presents backwards compatibility issues. We would probably have to warn in 3.4 and not ra...
jeremyevans0 (Jeremy Evans)
03:13 PM Revision f811f79b (git): Refine macOS CI (#11107)
Update macos runners with latest environments.
* Use macos-14 instead of macos-arm-oss
* Removed macos-11 and added macos-13
hsbt (Hiroshi SHIBATA)
01:15 PM Revision 1afcaa3e (git): Fix flaky test_stat_heap_all
We only collect GC.stat_heap(nil, stat_heap_all)
once, outside of the loop, but assert_equal could
allocate objects which can cause a GC to run and
cause stat_heap_all to be out-of-sync.
peterzhu2118 (Peter Zhu)
12:20 PM Revision 685a4e5b (git): VM barrier needs to store GC root
On the VM barrier waiting, it needs to store machine context
as a GC root.
Also it needs to wait for barrier synchronization correctly
by `while` (for continuous barrier sync by another ractor).
This is why GC marking misses are occerr...
ko1 (Koichi Sasada)
09:37 AM Revision 2dfaa00e (git): Added macos-13 and removed macos-11
hsbt (Hiroshi SHIBATA)
09:02 AM Revision 88a2a46e (git): [rubygems/rubygems] Restrict generic `arm` to only match 32-bit arm
https://github.com/rubygems/rubygems/commit/14c4c16e96 ntkme (Natsuki Natsume)
03:51 AM Revision cd1ea98b (git): Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compar...
dependabot[bot]
03:10 AM Revision 3b48a5a1 (git): Use macos-14 instead of macos-arm-oss
Unfortunately, we can't use macos-arm-oss with enterprise account hsbt (Hiroshi SHIBATA)
02:24 AM Revision bbb4da78 (git): [rubygems/rubygems] Use preferred add_dependency instead of add_runtime_dependency
https://github.com/rubygems/rubygems/commit/9a08043858 jeromedalbert (Jerome Dalbert)

07/04/2024

07:35 PM Feature #20405: Inline comments
This could be particularly useful for projects like `rbs-inline`. pabloh (Pablo Herrero)
05:40 PM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
fweimer (Florian Weimer) wrote in #note-48:
> The change in https://github.com/ruby/ruby/pull/11081/files does not look correct to me because it enables shadow stack and indirect branch tracking in the ELF markup. But the changes to `Co...
vo.x (Vit Ondruch)
07:28 AM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
The change in https://github.com/ruby/ruby/pull/11081/files does not look correct to me because it enables shadow stack and indirect branch tracking in the ELF markup. But the changes to `Context.S` merely enable indirect branch tracking... fweimer (Florian Weimer)
07:20 AM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
ioquatix (Samuel Williams) wrote in #note-46:
> BTW, IIUC, if we can use CET instead of the shadow stack, it's a far simpler and more efficient solution, so I'm strongly in favour of that direction (assuming it's viable).
If I understan...
vo.x (Vit Ondruch)
01:25 PM Revision c480dec1 (git): Fix RUBY_FREE_AT_EXIT with ASAN
When Ruby is built with ASAN and RUBY_FREE_AT_EXIT is enabled, the
following error occurs:
READ of size 8 at 0x74c666610020 thread T0
#0 0x593b6712ecc6 in RB_BUILTIN_TYPE include/ruby/internal/value_type.h:191:30
#1 ...
peterzhu2118 (Peter Zhu)
11:00 AM Misc #20574: DevMeeting-2024-07-11
* [Bug #20606] `Thread#thread_variable_get` and `Thread#thread_variable?` don't raise `TypeError` exception for incorrect argument value when thread-local variable storage is not initialised yet
* These methods raise `is not a symbol ...
andrykonchin (Andrew Konchin)
10:02 AM Bug #20606: Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
> I'm not opposed to changing the behavior, but raising an exception when one was not previously raised presents backwards compatibility issues. We would probably have to warn in 3.4 and not raise until 3.5 (or later).
I don't think a...
Eregon (Benoit Daloze)
09:46 AM Bug #20606: Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
@jeremyevans0 The specs were added in https://github.com/ruby/spec/pull/1127 (so not written by Andrii, but reviewed by him).
Adding specs is how we discover this kind of strange behavior.
But it's not always clear if intentional or no...
Eregon (Benoit Daloze)
03:33 AM Revision 478ada0e (git): [rubygems/rubygems] Handle OpenSSL::SSL::SSLError in local https server
https://github.com/rubygems/rubygems/commit/ccbbe84d77 hsbt (Hiroshi SHIBATA)
03:33 AM Revision ba4495d7 (git): [rubygems/rubygems] Align code styles with rubocop and others.
https://github.com/rubygems/rubygems/commit/c31a1592ee hsbt (Hiroshi SHIBATA)
03:33 AM Revision 7e69d747 (git): [rubygems/rubygems] Correctly handling fetcher leak
https://github.com/rubygems/rubygems/commit/c538558522 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 318af23b (git): [rubygems/rubygems] Removed needless variable
https://github.com/rubygems/rubygems/commit/29f71ee6d2 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 2cd270ae (git): [rubygems/rubygems] YAML is always enabled
https://github.com/rubygems/rubygems/commit/c755bcde62 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 16e1565d (git): [rubygems/rubygems] Removed unused gzip code
https://github.com/rubygems/rubygems/commit/ee45ebb5c3 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 6a2c7997 (git): [rubygems/rubygems] Rewrite WEBrick server with TCPServer and Proxy
https://github.com/rubygems/rubygems/commit/3ae4358024 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 0cb82a81 (git): [rubygems/rubygems] Rewrite WEBrick server with TCPServer and OpenSSL::SSL::SSLServer
https://github.com/rubygems/rubygems/commit/21319eccac hsbt (Hiroshi SHIBATA)
03:33 AM Revision b3e53495 (git): [rubygems/rubygems] Cleanup needless code from HTTP/HTTPS tests
https://github.com/rubygems/rubygems/commit/69bd962b56 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 7e12b5e2 (git): [rubygems/rubygems] Split HTTP tests and HTTPS tests
https://github.com/rubygems/rubygems/commit/43f98b787b hsbt (Hiroshi SHIBATA)
03:33 AM Revision f6aa774a (git): [rubygems/rubygems] Extract tests with local HTTP/HTTPS server from TestGemRemoteFetcher
https://github.com/rubygems/rubygems/commit/52db9fd501 hsbt (Hiroshi SHIBATA)
03:33 AM Revision 127221d8 (git): [rubygems/rubygems] Extract tests with S3 resources from TestGemRemoteFetcher
https://github.com/rubygems/rubygems/commit/d3ee8d2d3b hsbt (Hiroshi SHIBATA)
03:11 AM Revision 0fe024d0 (git): Fix the return value of `Integer#downto` called with a block
As the document states, it should return `self`, not `nil`.
Fix up of f4b313f7338f5fbe37f73aae29f70aeb474f7f5b.
nobu (Nobuyoshi Nakada)
02:55 AM Revision 70be2f47 (git): Bump ruby/setup-ruby from 1.183.0 to 1.184.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.183.0 to 1.184.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](http...
dependabot[bot]

07/03/2024

11:40 PM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
BTW, IIUC, if we can use CET instead of the shadow stack, it's a far simpler and more efficient solution, so I'm strongly in favour of that direction (assuming it's viable). ioquatix (Samuel Williams)
11:39 PM Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
Thanks, I agree with your proposed change. ioquatix (Samuel Williams)
12:10 AM Bug #18061 (Assigned): Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
hsbt (Hiroshi SHIBATA)
11:37 PM Revision d9398ac4 (git): Use `__CET__` macro to enable IBT support. (#11081)
According to the GCC documentation [1], the macro `__CET__` is dfined
when `-fcf-protection` compiler option is used. Therefore use this macro
to enable IBT support instead of special casing for `__OpenBSD__`.
[1]: https://gcc.gnu.org/o...
Vít Ondruch
11:10 PM Revision b160a78d (git): YJIT: Remove done TODO, fix indent
Type check now done in rb_iseqw_to_iseq(). alanwu (Alan Wu)
11:01 PM Bug #20597: `eval('break if false')` should raise SyntaxError but retuns nil
I submitted a pull request to fix this (but prism still needs a related fix) https://github.com/ruby/ruby/pull/11099 jeremyevans0 (Jeremy Evans)
08:35 PM Bug #20606: Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
This change would be simple to implement, and I agree the fiber/thread variable inconsistency seems odd. There are specs for the current behavior. However, I checked and the specs appear to be added by you only a couple days ago. It se... jeremyevans0 (Jeremy Evans)
03:56 PM Bug #20606 (Closed): Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
The `Thread#thread_variable_get`, `Thread#thread_variable?` and `Thread#[]` methods handle the `key` parameter that is not a String or a Symbol in different way but I would expect them to be consistent and raise an exception.
When no ...
andrykonchin (Andrew Konchin)
08:34 PM Bug #20607: Exception messages are inconsistent when thread-local variables are accessed
I submitted a pull request to make the error message consistent: https://github.com/ruby/ruby/pull/11097 jeremyevans0 (Jeremy Evans)
04:41 PM Bug #20607 (Closed): Exception messages are inconsistent when thread-local variables are accessed
`Thread`'s methods to manipulate thread-local variables raise `TypeError` exceptions with slightly different messages when the `key` argument is not a String or a Symbol. The message is either `is not a symbol` or `is not a symbol nor a ... andrykonchin (Andrew Konchin)
08:00 PM Revision f5dfadf3 (git): [DOC] Doc for Integer#floor (#11077)
burdettelamar (Burdette Lamar)
07:32 PM Revision b974c846 (git): Move Array#map to Ruby
Improves activerecord by about 1% on the interpreter:
```
before: ruby 3.4.0dev (2024-07-03T18:40:10Z master f88841b8f3) [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T18:41:14Z ruby-map 6c0df4eb32) [arm64-darwin23]
------------ --...
tenderlovemaking (Aaron Patterson)
06:45 PM Revision 6ac05ddb (git): Remove unused gc_raw_obj_info_basic
peterzhu2118 (Peter Zhu)
06:44 PM Revision 05f840d6 (git): Remove unused obj_info_basic
peterzhu2118 (Peter Zhu)
06:40 PM Revision f88841b8 (git): Fix ASAN builds
peterzhu2118 (Peter Zhu)
06:32 PM Revision 4c9134d2 (git): Move Array#select to Ruby
This speeds up the mail benchmark by about 7% on the interpreter:
```
before: ruby 3.4.0dev (2024-07-03T17:01:41Z master f4b313f733) [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T17:45:50Z ruby-select de282cacd5) [arm64-darwin23]
-...
tenderlovemaking (Aaron Patterson)
06:26 PM Bug #20605 (Closed): PRs with backported fix for https://github.com/ruby/ruby/pull/11036 to Ruby 3.3 and 3.2
jeremyevans0 (Jeremy Evans)
01:42 PM Bug #20605 (Closed): PRs with backported fix for https://github.com/ruby/ruby/pull/11036 to Ruby 3.3 and 3.2
Hey! I work for Datadog on the Ruby profiler part of the [datadog (previously ddtrace)](https://github.com/datadog/dd-trace-rb) gem.
Recently we merged a very small tweak to master to make ensure compilers did the right thing always: ...
ivoanjo (Ivo Anjo)
06:21 PM Bug #20603 (Closed): Rails Active Job test gets segmentation fault
jeremyevans0 (Jeremy Evans)
06:19 PM Bug #20599 (Closed): TypeError: #<BaseMailer:0x00000000008070> is not a symbol nor a string since 4cbc41d5e5cb6793174d5964975fdb4470323ca1 with YJIT enabled
jeremyevans0 (Jeremy Evans)
12:10 AM Bug #20599 (Assigned): TypeError: #<BaseMailer:0x00000000008070> is not a symbol nor a string since 4cbc41d5e5cb6793174d5964975fdb4470323ca1 with YJIT enabled
hsbt (Hiroshi SHIBATA)
05:17 PM Revision 7fe5f0a1 (git): [ruby/irb] Introduce cd command
(https://github.com/ruby/irb/pull/971)
It's essentially a combination of pushws and popws commands that are
easier to use.
Help message:
```
Usage: cd ([target]|..)
IRB uses a stack of workspaces to keep track of context(s), with `pu...
st0012 (Stan Lo)
05:01 PM Revision f4b313f7 (git): move Integer#downto to Ruby
Speeds up ChunkyPNG.
The interpreter is about 70% faster:
```
before: ruby 3.4.0dev (2024-07-03T15:16:17Z master 786cf9db48) [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T15:32:25Z ruby-downto 0b8b744ce2) [arm64-darwin23]
--------...
tenderlovemaking (Aaron Patterson)
04:56 PM Revision b2be36ef (git): [Backport #11036] Add explicit compiler fence when pushing frames to ensure safe profiling (#11090)
**What does this PR do?**
This PR tweaks the `vm_push_frame` function to add an explicit compiler
fence (`atomic_signal_fence`) to ensure profilers that use signals
to interrupt applications (stackprof, vernier, pf2, Datadog profiler)
c...
ivoanjo (Ivo Anjo)
03:48 PM Revision cbc40aca (git): Fix compilation with RGENGC_CHECK_MODE=2
peterzhu2118 (Peter Zhu)
03:39 PM Bug #20601: Configuration flags are not properly propagated to assembler
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-4:
> and in fact I would go a step furthre and delete `$ASFLAGS` in `configure.ac` and `Makefile.in` entirely. It's late now but I'll try and put up a PR for this tomorrow or Friday.
I ...
vo.x (Vit Ondruch)
11:58 AM Bug #20601: Configuration flags are not properly propagated to assembler
Just one more thing: I was worried for a moment that trying to assemble with `$CFLAGS` would cause problems if you had some C-language specific things in cflags, but actually it seems to work fine - even if you have something like `-std=... kjtsanaktsidis (KJ Tsanaktsidis)
11:47 AM Bug #20601: Configuration flags are not properly propagated to assembler
OK, I poked at this a bit tonight. I have quite a few thoughts but they're kind of disorganised.
The short version of this is: I think you're right; we should pass the full set of `$CFLAGS $CPPFLAGS` when calling `$(CC)` on a .S file, a...
kjtsanaktsidis (KJ Tsanaktsidis)
08:54 AM Bug #20601: Configuration flags are not properly propagated to assembler
Is something like that really needed? From my POV, the issue is that originally, there were `.s` files processed by Assembler, therefore the `$(ASFLAGS)` were needed. But now we have `.S` files pre-processed by compiler:
https://githu...
vo.x (Vit Ondruch)
04:21 AM Bug #20601: Configuration flags are not properly propagated to assembler
I think we should do what we did for the pac-ret stuff, that Florian recommended, right? Run tests against CFLAGS in configure.ac, and then define special macros?
https://github.com/ruby/ruby/blob/93b19d56de64fdee790a96ddf96fcd08d889a...
kjtsanaktsidis (KJ Tsanaktsidis)
03:16 PM Feature #20470 (Closed): Extract Ruby's Garbage Collector
Applied in changeset commit:git|51bd816517941798c63e587a5a9f3caf69cd510e.
----------
[Feature #20470] Split GC into gc_impl.c
This commit splits gc.c into two files:
- gc.c now only contains code not specific to Ruby GC. This includes...
peterzhu2118 (Peter Zhu)
03:16 PM Revision 786cf9db (git): array.c: Remove outdated assertions
Following [Feature #20589] it can happen that we change the
capacity of a frozen array, so these assertions no longer make
sense.
Normally we don't hit them because `Array#freeze` shrinks the
array, but if somehow the Array was frozen u...
byroot (Jean Boussier)
02:31 PM Feature #20589 (Closed): Resize array in `rb_ary_freeze` and use `rb_ary_freeze` internally for arrays
Closing given https://github.com/ruby/ruby/pull/11030 was merged yesterday.
However it caused some assertions failures in corner cases, so I opened a followup: https://github.com/ruby/ruby/pull/11092
byroot (Jean Boussier)
01:03 PM Revision 5f20957b (git): Move ruby_load_external_gc_from_argv to gc.h
peterzhu2118 (Peter Zhu)
01:03 PM Revision 9d7c9df4 (git): [Feature #20470] Add shared GC workflow to compilers
peterzhu2118 (Peter Zhu)
01:03 PM Revision 9d3a58f3 (git): [Feature #20470] Update dependencies
peterzhu2118 (Peter Zhu)
01:03 PM Revision ae8ef065 (git): [Feature #20470] Implement support for USE_SHARED_GC
This commit implements support to load Ruby's current GC as a DSO. peterzhu2118 (Peter Zhu)
01:03 PM Revision 51bd8165 (git): [Feature #20470] Split GC into gc_impl.c
This commit splits gc.c into two files:
- gc.c now only contains code not specific to Ruby GC. This includes
code to mark objects (which the GC implementation may choose not to
use) and wrappers for internal APIs that the implementa...
peterzhu2118 (Peter Zhu)
10:15 AM Revision 9aa62bda (git): [ruby/shellwords] [DOC] Beautify links and formats
https://github.com/ruby/shellwords/commit/53e6ef2e71 nobu (Nobuyoshi Nakada)
10:15 AM Revision 777fcd18 (git): [ruby/shellwords] Satisfy `rdoc -C`
https://github.com/ruby/shellwords/commit/fa50d40a33 nobu (Nobuyoshi Nakada)
10:15 AM Revision 7a431474 (git): [ruby/shellwords] Exclude unnecessary files from the packages
https://github.com/ruby/shellwords/commit/08c87a964e nobu (Nobuyoshi Nakada)
09:08 AM Revision 64fef3b8 (git): Add explicit compiler fence when pushing frames to ensure safe profiling
**What does this PR do?**
This PR tweaks the `vm_push_frame` function to add an explicit compiler
fence (`atomic_signal_fence`) to ensure profilers that use signals
to interrupt applications (stackprof, vernier, pf2, Datadog profiler)
c...
ivoanjo (Ivo Anjo)
08:54 AM Revision 4d4ac001 (git): [ruby/openssl] Add SSLSocket#readbyte
Companion to getbyte but raise EOFError
Similar to https://github.com/ruby/openssl/pull/438
https://github.com/ruby/openssl/commit/c40f70711a
lwoggardner (Grant Gardner)
12:59 AM Revision 93b19d56 (git): Add regression test for mutating pack's format string
It doesn't look like there was a test added for this bug, so I'm adding
it.
Code is from here:
https://web.archive.org/web/20160908192307/http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/24445
tenderlovemaking (Aaron Patterson)
12:11 AM Bug #20462 (Assigned): Native threads are no longer reused
hsbt (Hiroshi SHIBATA)

07/02/2024

10:20 PM Revision d9487dd0 (git): Speed up chunkypng benchmark (#11087)
* Speed up chunkypng benchmark
Since d037c5196a14c03e72746ccdf0437b5dd4f80a69 we're seeing a slowdown
in ChunkyPNG benchmarks in YJIT bench. This patch addresses the
slowdown. Making the thread volatile speeds up the benchmark by 2 or 3...
tenderlovemaking (Aaron Patterson)
09:53 PM Bug #20603: Rails Active Job test gets segmentation fault
Confirmed b2b8306b46 addresses this issue. Thanks for the fix.
```
$ ruby -v
ruby 3.4.0dev (2024-07-02T18:48:43Z master b2b8306b46) [x86_64-linux]
$ AJ_ADAPTER=test bin/test "test/cases/test_helper_test.rb" -n "/^(?:PerformedJobsTe...
yahonda (Yasuo Honda)
05:37 PM Bug #20603: Rails Active Job test gets segmentation fault
I opened a fix https://github.com/ruby/ruby/pull/11086 eileencodes (Eileen Uchitelle)
01:05 PM Bug #20603 (Closed): Rails Active Job test gets segmentation fault
Rails Active Job test sometimes gets segmentation fault.
https://buildkite.com/rails/rails-nightly/builds/723#01906af3-7abc-4f9a-bfd7-c3ff49bbf6cf/1363-1370
This segmentation fault does not always reproduce so I have not found which ...
yahonda (Yasuo Honda)
07:55 PM Revision 3407565d (git): YJIT: Use a special breakpoint address if one isn't explicitly supplied in order to support natural line stepping. (#11083)
Use a special breakpoint address if one isn't explicitly supplied in order to support natural line stepping.
ARM64 will not increment the program counter (PC) upon hitting a breakpoint instruction. Consequently, stepping through code wi...
Kevin Menard
07:54 PM Revision 2830a6ae (git): [rubygems/rubygems] Only allow valid values for --test, --ci, and --linter options
https://github.com/rubygems/rubygems/commit/d4360c9032 jeromedalbert (Jerome Dalbert)
07:53 PM Revision cd57c129 (git): [rubygems/rubygems] Only remove current platform when added right before resolution
If it has been explicitly added by `bundle lock --add-platform`, we
don't want to remove it.
https://github.com/rubygems/rubygems/commit/09cf921dd6
deivid (David Rodríguez)
07:53 PM Revision c36eb10d (git): [rubygems/rubygems] Normalize dummy test server name
https://github.com/rubygems/rubygems/commit/18b38ca6b4 deivid (David Rodríguez)
07:53 PM Revision 7fc04276 (git): [rubygems/rubygems] Refactor previous fix a bit
https://github.com/rubygems/rubygems/commit/1c80c6072f deivid (David Rodríguez)
07:53 PM Revision d5500e62 (git): [rubygems/rubygems] Feature add_dependency more prominently
https://github.com/rubygems/rubygems/commit/0236cb6191 jeromedalbert (Jerome Dalbert)
06:48 PM Revision b2b8306b (git): Fix forwarding for optimized send
Always treat forwarding as a complex call. eileencodes (Eileen Uchitelle)
06:48 PM Revision cc8c4a60 (git): Calling into a C func shouldn't fast path when forwarding
When we forward calls to C functions if the callsite is a forwarding
site it might not always be a splat, so we can't use the fast path.
Fixes:
[ruby-core:118418]
eileencodes (Eileen Uchitelle)
06:34 PM Revision 4d94d28a (git): YJIT: Inline simple ISEQs with unused keyword parameters
This commit expands inlining for simple ISeqs to accept
callees that have unused keyword parameters and callers
that specify unused keywords. The following shows 2 new
callsites that will be inlined:
```ruby
def let(a, checked: true) = ...
Gabriel Lacroix
05:34 PM Revision d25b74b3 (git): Resize arrays in `rb_ary_freeze` and use it for freezing arrays
While working on a separate issue we found that in some cases
`ary_heap_realloc` was being called on frozen arrays. To fix this, this
change does the following:
1) Updates `rb_ary_freeze` to assert the type is an array, return if
alread...
eileencodes (Eileen Uchitelle)
05:18 PM Bug #20604 (Rejected): Performance regression in C++ extensions due to lack of optimization flags by default since Ruby 2.7
I found a significant performance regression in `sassc` gem when comparing Ruby 2.6 and later, that the extension is running more than 10x slower.
I have tracked it down to this commit: https://github.com/ruby/ruby/commit/733aa2f8b578...
ntkme (Natsuki Natsume)
12:42 PM Bug #20602 (Closed): RangeError: integer 128496650801200 too big to convert to 'int' without YJIT since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce
I have opened https://bugs.ruby-lang.org/issues/20588 and the test case has been fixed via 4cbc41d5e5cb6793174d5964975fdb4470323ca1 , It looks like there are another test case that still reproduces against the latest master branch like c... yahonda (Yasuo Honda)
12:38 PM Bug #20601: Configuration flags are not properly propagated to assembler
This might be the medicine:
~~~patch
$ git diff
diff --git a/template/Makefile.in b/template/Makefile.in
index 2d232d7925..31e5ae5edb 100644
--- a/template/Makefile.in
+++ b/template/Makefile.in
@@ -449,7 +449,7 @@ $(srcdir)/enc...
vo.x (Vit Ondruch)
12:24 PM Bug #20601 (Closed): Configuration flags are not properly propagated to assembler
Looking into #18061, one of the issues is that the `.S` files are not processed with the correct flags. For example to have the CET enabled, the `-fcf-protection` should be used to preprocess the `coroutine/amd64/Context.S`.
First I t...
vo.x (Vit Ondruch)
11:33 AM Revision cee62c67 (git): Update to ruby/spec@f8987ac
andrykonchin (Andrew Konchin)
11:24 AM Bug #20573: Warning.warn shouldn't be called for disabled warnings
As a small note on this, it's typically better to check `$VERBOSE` level and if the category is enabled before even generating/formatting the message String, for performance reasons.
So if that's always done the check in Warning.warn wou...
Eregon (Benoit Daloze)
10:15 AM Revision d7af8afe (git): [ruby/rdoc] Group code object files into the same directory
(https://github.com/ruby/rdoc/pull/1114)
It's hard to distinguish code object classes by their file names alone.
And given that we have 18 such classes, it'd make the codebase a lot
easier to understand if we grouped them into a single ...
st0012 (Stan Lo)
09:33 AM Revision 1ab31eb4 (git): [ruby/fiddle] Pick ruby/ruby changes for
`test/fiddle/test_function.rb`
(https://github.com/ruby/fiddle/pull/141)
https://github.com/ruby/ruby/pull/11048#issuecomment-2185630854
---------
https://github.com/ruby/fiddle/commit/a245f19763
Co-authored-by: Yusuke Endoh <mame@ru...
hsbt (Hiroshi SHIBATA)
06:00 AM Bug #20592: Interrupting Addrinfo causes Segmentation fault on alpine
@nagachika @k0kubun When you backport this patch, please backport commit:d8c6e91748871ab2287d7703347847fe18a292d2 as well. FYI. mame (Yusuke Endoh)
04:47 AM Misc #20600 (Closed): @ruby-lang.org has been migrated to Cloudflare
@ruby-lang.org has been migrated to Cloudflare, because ruby-lang.org was migrated from Google Domains to Squarespace, and Squarespace's e-mail forwarding doesn't work with custom MX records including subdomains:(
I and Shibata-san ar...
shugo (Shugo Maeda)
03:39 AM Revision 4688b92a (git): [win32] Fallback release date when revision.h is not present
nobu (Nobuyoshi Nakada)
 

Also available in: Atom