Project

General

Profile

Activity

From 01/05/2024 to 01/11/2024

01/11/2024

11:53 PM Revision 37125677 (git): Anonymous rest nodes should increase the local table size
When we calculate the local table size, we need to account for anonymous
"rest" parameters. Since they don't have a name, they won't be in the
"locals" table that Prism provides, but we need to reserve room for them
anyway.
Fixes: http...
tenderlovemaking (Aaron Patterson)
09:46 PM Bug #19983 (Closed): Nested `*` seems incorrect
This was fixed in Ruby 3.3:
```
$ ruby -v -e 'def m(*); ->(*) { p(*) }; end; m(1).call(2)'
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-openbsd]
-e:1: anonymous rest parameter is also used within block
-e: compile error (Sy...
jeremyevans0 (Jeremy Evans)
08:59 PM Bug #19990 (Closed): Could we reconsider the second argument to Kernel#load?
Applied in changeset commit:git|eb8df2fa7aa7b008bd8dbce765694635a564e8f9.
----------
Update Kernel#load documentation to remove phrase related to protection
Code loaded via Kernel#load can modify the global namespace even
if the wrap p...
jeremyevans (Jeremy Evans)
08:58 PM Revision eb8df2fa (git): Update Kernel#load documentation to remove phrase related to protection
Code loaded via Kernel#load can modify the global namespace even
if the wrap parameter is provided.
Fixes [Bug #19990]
jeremyevans (Jeremy Evans)
08:52 PM Revision 76a207e5 (git): [ruby/prism] Fix nested default value error
https://github.com/ruby/prism/commit/ef26b283de kddnewton (Kevin Newton)
07:59 PM Revision 44d0c5ae (git): [PRISM] Raise syntax errors when found
kddnewton (Kevin Newton)
07:58 PM Revision 45dd8edf (git): [PRISM] Fix splat inside of aset
Fixes ruby/prism#2146. peterzhu2118 (Peter Zhu)
07:31 PM Revision f2149dc0 (git): [PRISM] Support repeated required parameter names.
Fixes: https://github.com/ruby/prism/issues/2062
This patch only fixes positional parameters, we still need to fix the
other cases spelled out in test/prism/fixtures/repeat_parameters.txt
tenderlovemaking (Aaron Patterson)
07:27 PM Revision 72be7860 (git): [ruby/prism] Allow fsl comment to set to false
https://github.com/ruby/prism/commit/b4db7bb703 kddnewton (Kevin Newton)
07:14 PM Revision 242dc537 (git): [ruby/prism] Exclude encodings that are dynamic
https://github.com/ruby/prism/commit/6749146c0e kddnewton (Kevin Newton)
06:36 PM Revision 6ff9f1aa (git): [ruby/prism] Provide ability to format errors
https://github.com/ruby/prism/commit/27985b0e7e kddnewton (Kevin Newton)
05:27 PM Bug #20078 (Closed): StringIO cannot be moved between Ractors
jeremyevans0 (Jeremy Evans)
05:18 PM Bug #20078: StringIO cannot be moved between Ractors
I think this ticket can be closed as I've updated the docs to reflect the current situation and it's been merged. luke-gru (Luke Gruber)
05:14 PM Bug #20168: Process won't exit when Ractor.select waiting a Ractor
Patch here: https://github.com/ruby/ruby/pull/9492 luke-gru (Luke Gruber)
04:36 PM Bug #20158: Ractor affects Coverage results
It sounds like this bug is related to https://bugs.ruby-lang.org/issues/19112 luke-gru (Luke Gruber)
03:41 AM Bug #20158 (Assigned): Ractor affects Coverage results
Thanks, I reproduce the problem successfully with rspec + Ractor + TracePoint (without coverage).
```ruby
# test_spec.rb
if ENV["RACTOR"] == "1"
Ractor.new { nil }
p :ractor_enabled
else
p :ractor_disabled
end
$tp = Tr...
mame (Yusuke Endoh)
03:09 PM Revision 057df437 (git): Free environ when RUBY_FREE_AT_EXIT
The environ is malloc'd, so it gets reported as a memory leak. This
commit adds ruby_free_proctitle which frees it during shutdown when
RUBY_FREE_AT_EXIT is set.
STACK OF 1 INSTANCE OF 'ROOT LEAK: <calloc in ruby_init_setproctitle>'...
peterzhu2118 (Peter Zhu)
01:44 PM Revision 4e0c2f05 (git): [ruby/pp] Add TruffleRuby in CI
* Only 2 cyclic tests are failing, with the ... in a slightly different place in the output.
https://github.com/ruby/pp/commit/6e5c7d741e
Eregon (Benoit Daloze)
01:44 PM Revision 1ed3b603 (git): [ruby/pp] Fix pretty printing a Data subclass instance when the subclass is anonymous
* It would be "#<data a=42>" (double space) instead of "#<data a=42>" (like #inspect).
https://github.com/ruby/pp/commit/bed72bfcb8
Eregon (Benoit Daloze)
01:44 PM Revision 62382a43 (git): [ruby/pp] Use .class.members for pretty printing Data
* Data#members might not be defined, instead it might be defined
on Data subclasses or a module included there. This is notably the
case on TruffleRuby which defines it there for optimization purposes.
In fact the mere presence of ...
Eregon (Benoit Daloze)
01:44 PM Revision 3b9cc225 (git): [ruby/pp] Use a proper feature check to check if Data is defined
https://github.com/ruby/pp/commit/ed602b9f2b Eregon (Benoit Daloze)
01:38 PM Revision 80f1c1e2 (git): Remove a unused variable in i_print_name_entry (#9468)
A warning for this is shown when `ONIG_DEBUG_COMPILE` is enabled. make_now_just (Hiroya Fujinami)
10:35 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
I would also like to try this again for 3.4, if we do it early, the potential remaining issue will have a chance to be noticed with the first preview release. byroot (Jean Boussier)
10:30 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
Also given the efforts of @byroot in https://bugs.ruby-lang.org/issues/18576#note-21 and the offer from @matz in https://bugs.ruby-lang.org/issues/18576#note-19, I'd like to do exactly what matz said:
> If you (or someone) estimate the ...
Eregon (Benoit Daloze)
10:26 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
@naruse Do you have evidence of (latest release and not ancient) gems or applications comparing `encoding.name` to `'ASCII-8BIT'`?
I think it's so obviously a bad idea to compare the encoding name as a String, AFAIK there was never a va...
Eregon (Benoit Daloze)
10:27 AM Misc #20075: DevMeeting-2024-01-17
* [Feature #18576] Rename `ASCII-8BIT` encoding to `BINARY` (eregon)
* Can we experiment for 3.4 by making ASCII-8BIT the alias? If we have pushback based on actual code then let's go more conservative, but otherwise I think we should...
Eregon (Benoit Daloze)
09:46 AM Revision 3d3bc029 (git): Reject encodings determined at runtime as source code encodings
The encodings determined at runtime are affected by the runtime
environment, such as the OS and locale, while the file contents are
not.
nobu (Nobuyoshi Nakada)
09:28 AM Revision 0480c073 (git): Remove printf z modifier check [ci skip]
VC2013 is no longer supported. nobu (Nobuyoshi Nakada)
08:59 AM Revision 2b608349 (git): Omit test_session_reuse_but_expire if OpenSSL 3.2.0
nobu (Nobuyoshi Nakada)
08:59 AM Revision 21a9b182 (git): Omit a broken https test on MinGW
This started to reliably fail on MinGW at an irrelevant commit:
https://github.com/ruby/ruby/actions/runs/6981002841/job/18997302124
https://github.com/ruby/ruby/actions/runs/6981946473/job/19000104223
https://github.com/ruby/ruby/action...
k0kubun (Takashi Kokubun)
08:46 AM Revision 7cc8d58c (git): Remove duplicate function `nd_st_key_val`
nobu (Nobuyoshi Nakada)
08:39 AM Revision d6741572 (git): [ruby/rdoc] Undo accidentally deleted lines
https://github.com/ruby/rdoc/commit/4e14158255 nobu (Nobuyoshi Nakada)
08:36 AM Revision b10aa775 (git): Disable to add latest label when running with --no-dry-run option
hsbt (Hiroshi SHIBATA)
08:04 AM Revision 78cd5b36 (git): Prevent syntax warnings in test/ruby/test_regexp.rb
mame (Yusuke Endoh)
08:04 AM Revision 48619a0d (git): * 2024-01-11 [ci skip]
git[bot]
08:03 AM Revision 3ed6ddb8 (git): No longer download zlib source
Although zlib package in vcpkg is still 1.2.12, it should be no
problem in ruby tests.
nobu (Nobuyoshi Nakada)
08:03 AM Revision 4e7b2fb3 (git): Bump up net-http to 0.3.0.1
hsbt (Hiroshi SHIBATA)
08:03 AM Revision db2f0a75 (git): [ruby/net-http] Renew test certificates
The private key is replaced with a public known test key published at
[RFC 9500].
Also lifetime has been extended to 10 years from 4 years.
[RFC 9500]: https://www.rfc-editor.org/rfc/rfc9500.html
https://github.com/ruby/net-http/commi...
sorah (Sorah Fukumori)
08:03 AM Revision 452691a1 (git): Bump up net-imap to 0.2.4
hsbt (Hiroshi SHIBATA)
08:03 AM Revision 88ab2e3b (git): Bump up net-smtp to 0.3.1.1
hsbt (Hiroshi SHIBATA)
08:03 AM Revision 5f56a163 (git): Bump up net-ftp to 0.1.4
hsbt (Hiroshi SHIBATA)
08:03 AM Revision 60844ecf (git): Prevent a warning: ambiguous first argument
mame (Yusuke Endoh)
07:12 AM Revision 40882806 (git): Bump actions/upload-artifact from 3.1.3 to 4.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3...
dependabot[bot]
06:57 AM Revision 563f6110 (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
06:55 AM Revision 7558625b (git): [ruby/rdoc] Respect modeline to detect parser
https://github.com/ruby/rdoc/commit/485468f06f nobu (Nobuyoshi Nakada)
06:41 AM Revision c26fdce9 (git): Bump ruby/setup-ruby from 1.160.0 to 1.165.1
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.160.0 to 1.165.1.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/036ef458ddccddb148a2b9fb67e95a22fd...
dependabot[bot]
06:37 AM Revision 1a66828a (git): Bump lewagon/wait-on-check-action from 1.3.1 to 1.3.3
Bumps [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) from 1.3.1 to 1.3.3.
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases)
- [Commits](https://github.com/lewagon/wait-on-check-a...
dependabot[bot]
06:21 AM Revision 505ac323 (git): Try to fixup ad3db6711c4aa48c82f4091342aab7394ee45736
directory value may be not support glob files from subdirectories hsbt (Hiroshi SHIBATA)
06:02 AM Revision 0ebc3f79 (git): Revert "Update files under .github other than workflows"
This reverts commit ad3db6711c4aa48c82f4091342aab7394ee45736.
Above commit break dependabot update since Nov, 2023.
hsbt (Hiroshi SHIBATA)
04:51 AM Revision f4a347b9 (git): [rubygems/rubygems] Fix Bundler daily CI
There is another place artifice usage was making the copy of vendored
http in ruby-core be loaded instead of the one under test.
Remove unnecessary usage of artifice.
https://github.com/rubygems/rubygems/commit/d2488199b0
deivid (David Rodríguez)
04:51 AM Revision 0156b741 (git): [rubygems/rubygems] Always avoid "Updating rubygems-update" message
The fact that under the hood the upgrade is done through a
rubygems-update gem is an implementation detail that does not really
help users to know.
Plus, it reads a bit weird.
https://github.com/rubygems/rubygems/commit/0fa5c50258
deivid (David Rodríguez)
04:51 AM Revision 3980cebd (git): [rubygems/rubygems] Make `gem update --system` respect ruby version constraints
https://github.com/rubygems/rubygems/commit/36052abbe2 deivid (David Rodríguez)
04:51 AM Revision aa908aa0 (git): [rubygems/rubygems] Remove old condition no longer necessary
https://github.com/rubygems/rubygems/commit/701980b240 deivid (David Rodríguez)
04:51 AM Revision ef0705b3 (git): [rubygems/rubygems] Fix development dependency not being added if introduced by two gemspecs
https://github.com/rubygems/rubygems/commit/adc05bf1c3 deivid (David Rodríguez)
04:51 AM Revision b8f859f0 (git): Complete missing specs for platforms after resolution
If two platform specific variants have different dependencies, then
resolution may fallback to the non platform specific variant. However,
the platform specific variants that have the same dependencies as the
non specific one can still b...
deivid (David Rodríguez)
04:51 AM Revision 580d4a40 (git): [rubygems/rubygems] Show diff on source control errors
https://github.com/rubygems/rubygems/commit/d728fa1b04 deivid (David Rodríguez)
04:51 AM Revision 7f0dbfc9 (git): [rubygems/rubygems] Move resetting the spec set to where it becomes necessary
https://github.com/rubygems/rubygems/commit/a8b547c6b1 deivid (David Rodríguez)
04:51 AM Revision 51d2a8e9 (git): [rubygems/rubygems] Extract a couple of helper methods
https://github.com/rubygems/rubygems/commit/880a4eae7f deivid (David Rodríguez)
04:51 AM Revision ab1936fa (git): [rubygems/rubygems] Remove methods to clarify what they do
https://github.com/rubygems/rubygems/commit/1d15d8a8ff deivid (David Rodríguez)
04:51 AM Revision e9008144 (git): [rubygems/rubygems] Make private helper private
https://github.com/rubygems/rubygems/commit/de9dc90026 deivid (David Rodríguez)
04:51 AM Revision 76916217 (git): [rubygems/rubygems] Extract `SpecSet#reset!` helper
https://github.com/rubygems/rubygems/commit/41f9b4d940 deivid (David Rodríguez)
04:51 AM Revision acdc6abc (git): [rubygems/rubygems] Disable false positive correction
https://github.com/rubygems/rubygems/commit/e75cca9496 hsbt (Hiroshi SHIBATA)
04:51 AM Revision 0e8b1973 (git): [rubygems/rubygems] bin/rubocop -A --only Style/RedundantReturn
https://github.com/rubygems/rubygems/commit/ade728914f hsbt (Hiroshi SHIBATA)
04:51 AM Revision a1d5c655 (git): [rubygems/rubygems] bin/rubocop -A --only Layout/ExtraSpacing
https://github.com/rubygems/rubygems/commit/39be5cd236 hsbt (Hiroshi SHIBATA)
04:51 AM Revision 983ca8e9 (git): [rubygems/rubygems] bin/rubocop -A --only Layout/SpaceBeforeFirstArg
https://github.com/rubygems/rubygems/commit/cfcc33d480 hsbt (Hiroshi SHIBATA)
04:51 AM Revision 888a8f43 (git): [rubygems/rubygems] bin/rubocop -A --only Style/StringLiteralsInInterpolation
https://github.com/rubygems/rubygems/commit/2333f5f9c5 hsbt (Hiroshi SHIBATA)
04:51 AM Revision ea31461b (git): [rubygems/rubygems] bin/rubocop -A --only Style/StringLiterals
https://github.com/rubygems/rubygems/commit/f25013bcc0 hsbt (Hiroshi SHIBATA)
04:51 AM Revision 443e4178 (git): [rubygems/rubygems] bin/rubocop -A --only Style/RedundantParentheses
https://github.com/rubygems/rubygems/commit/7cc647c8f3 hsbt (Hiroshi SHIBATA)
04:51 AM Revision ff011935 (git): [rubygems/rubygems] bin/rubocop -A --only Performance/StringInclude
https://github.com/rubygems/rubygems/commit/34df962cf4 hsbt (Hiroshi SHIBATA)
04:38 AM Bug #19387 (Open): ObjectSpace.each_objects only returns shareable objects after starting a Ractor
jeremyevans0 (Jeremy Evans)
03:34 AM Bug #19387: ObjectSpace.each_objects only returns shareable objects after starting a Ractor
It happened again :( I notified the committer of the mistake. Please reopen, thanks! luke-gru (Luke Gruber)
02:12 AM Bug #19387 (Closed): ObjectSpace.each_objects only returns shareable objects after starting a Ractor
Applied in changeset commit:git|76a8c963c7ad975b7bbfc1c4979bf7a2de15af27.
----------
Add a test for what happens with concurent calls to waitpid
Ruby 3.1 and 3.2 have a bug in their _implementation_, for which I'm
backporting a fix. Ho...
Anonymous
04:21 AM Revision 08e22c64 (git): [rubygems/rubygems] Use cache_home instead of data_home in default_spec_cache_dir
https://github.com/rubygems/rubygems/commit/d2801fcfde Kenta Murata
04:19 AM Bug #20172 (Closed): Socket.addrinfo failing randomly
Applied in changeset commit:git|1bd98c820da46a05328d2d53b8f748f28e7ee8f7.
----------
Remove setaffinity of pthread for getaddrinfo
It looks like `sched_getcpu(3)` returns a strange number on some
(virtual?) environments.
I decided to ...
mame (Yusuke Endoh)
02:17 AM Bug #20172: Socket.addrinfo failing randomly
I investigated the issue by using the VM access Michael gave me. (Thank you!) And I understand the issue.
It looks like `sched_getcpu(3)` returns an unexpected number in the environment. Since the number of CPUs in the VM is 2, I expe...
mame (Yusuke Endoh)
04:19 AM Revision 94e1d3f3 (git): [rubygems/rubygems] include MatchMetadata in Bundler::LazySpecification
I'm running into a case in my plugin where matches_current_metadata? is
getting called on a lazy specification, and adding this fixes it
https://github.com/rubygems/rubygems/commit/24f962cb42
Cody Cutrer
03:38 AM Revision 1bd98c82 (git): Remove setaffinity of pthread for getaddrinfo
It looks like `sched_getcpu(3)` returns a strange number on some
(virtual?) environments.
I decided to remove the setaffinity mechanism because the performance
does not appear to degrade on a quick benchmark even if removed.
[Bug #20172]
mame (Yusuke Endoh)
03:28 AM Bug #20169: `GC.compact` can raises `EFAULT` on IO
Another idea is to unembed the string (undesirable) or copy the buffer (on the stack, preferably). Since embedded strings should be small I think this should work. This won't prevent C extensions from calling IO with embedded ruby string... luke-gru (Luke Gruber)
03:26 AM Revision a9712294 (git): Fixed return values for some node types in nd_st_key function
S_H_ (Shun Hiraoka)
02:12 AM Revision 76a8c963 (git): Add a test for what happens with concurent calls to waitpid
Ruby 3.1 and 3.2 have a bug in their _implementation_, for which I'm
backporting a fix. However, the current development branch doesn't have
the issue (because the MJIT -> RJIT change refactored how waitpid worked
substantially). I do ho...
KJ Tsanaktsidis
01:40 AM Revision 27688b6a (git): [rubygems/rubygems] Update comment for minitest helper
https://github.com/rubygems/rubygems/commit/77b0805474 hsbt (Hiroshi SHIBATA)
01:40 AM Revision 9f784915 (git): [rubygems/rubygems] bin/rubocop -A test/rubygems/helper.rb
https://github.com/rubygems/rubygems/commit/07ebc9f844 hsbt (Hiroshi SHIBATA)
01:40 AM Revision bd954881 (git): [rubygems/rubygems] Removed redundant block
https://github.com/rubygems/rubygems/commit/d059b9ec4d hsbt (Hiroshi SHIBATA)
12:51 AM Revision d5e83a06 (git): [rubygems/rubygems] Update documentation to use squiggly heredoc
https://github.com/rubygems/rubygems/commit/4691b959ad Brave Hager
12:25 AM Bug #20064: Inconsistent behavior between array splat *nil and hash splat **nil
I submitted a pull request to support `**nil`: https://github.com/ruby/ruby/pull/9477 jeremyevans0 (Jeremy Evans)
12:21 AM Revision a6ba45e9 (git): Remove unnecessary semicolons (#9469)
S_H_ (Shun Hiraoka)
12:02 AM Bug #20111 (Closed): `defined?` returns `expression` for assignment operators combined with fully qualified constants
Applied in changeset commit:git|ef751252711ca7ecabb3e4ad9214fa0d1d63608a.
----------
Make defined? for op asgn expressions to constants use "assignment"
Previously, it used "expression", as that was the default. However,
op asgn expre...
jeremyevans (Jeremy Evans)
12:02 AM Revision ef751252 (git): Make defined? for op asgn expressions to constants use "assignment"
Previously, it used "expression", as that was the default. However,
op asgn expressions to constants use the NODE_OP_CDECL, so recognize
that node type as assignement.
Fixes [Bug #20111]
jeremyevans (Jeremy Evans)

01/10/2024

11:45 PM Bug #18795 (Closed): Verbose GC debug output with -DRGENGC_DEBUG=5 causes a crash
Applied in changeset commit:git|25f5b83689fc6dd137d45b634a0cd6e8bd024728.
----------
Fix crash when printing RGENGC_DEBUG=5 output from GC
I was trying to debug an (unrelated) issue in the GC, and wanted to turn
on the trace-level GC o...
Anonymous
11:44 PM Revision 25f5b836 (git): Fix crash when printing RGENGC_DEBUG=5 output from GC
I was trying to debug an (unrelated) issue in the GC, and wanted to turn
on the trace-level GC output by compiling it with -DRGENGC_DEBUG=5.
Unfortunately, this actually causes a crash in newobj_init() because the
code there tries to log...
KJ Tsanaktsidis
11:39 PM Bug #20169: `GC.compact` can raises `EFAULT` on IO
I did a bit of experimentation with the `userfaultfd(2)` system call here: https://gist.github.com/KJTsanaktsidis/40e2a8e23012bf16af823db9ff9a890e
The SIGBUS/SIGSEGV handling we currently do only traps userspace accesses to memory, but ...
kjtsanaktsidis (KJ Tsanaktsidis)
11:06 PM Feature #20177 (Open): Optimized $LOADED_FEATURES.include?
I'd like to propose adding the optimized `$LOADED_FEATURES.include?` (not the one provided by the Array class) for faster feature checks in large codebases (when there are thousands of entries in the features list). I hit this problem wh... palkan (Vladimir Dementyev)
10:46 PM Feature #20024: SyntaxError subclasses
kddnewton (Kevin Newton) wrote in #note-14:
> In this case we would need to design the shape of a `SyntaxError::Diagnostic` class. I would imagine it would have the same fields that @yui-knk is proposing, something like:
> ...
I thin...
palkan (Vladimir Dementyev)
10:32 PM Feature #20164: Add Exception#deconstruct_keys
+1 for making exceptions pattern-matching friendly. The example above demonstrates the use case pretty well (class + message matching).
The question is what keys must be supported for each standard exception class? The plain Ruby impl...
palkan (Vladimir Dementyev)
10:02 PM Bug #20111: `defined?` returns `expression` for assignment operators combined with fully qualified constants
I submitted a pull request to fix this: https://github.com/ruby/ruby/pull/9476 jeremyevans0 (Jeremy Evans)
08:36 PM Revision 5906f6a5 (git): Add a GitHub workflow for prism btests
kddnewton (Kevin Newton)
08:24 PM Revision 8333845b (git): [ruby/prism] Unary symbols that cannot be binary should drop @
https://github.com/ruby/prism/commit/d139af033f kddnewton (Kevin Newton)
07:48 PM Bug #20175 (Feedback): Broken File.dirname(__FILE__) in eval blocks
jeremyevans0 (Jeremy Evans)
02:18 PM Bug #20175: Broken File.dirname(__FILE__) in eval blocks
`__dir__ || "." ` is good enough? mame (Yusuke Endoh)
12:25 PM Bug #20175: Broken File.dirname(__FILE__) in eval blocks
I see why `__FILE__` was an intended change, I'm going to change all my codes inside eval that depends on its value, thanks for pointing it out.
However, as `__dir__` returns nil instead of a string, it requires some changes to replac...
kiskoza (Zsolt Kozaroczy)
11:10 AM Bug #20175: Broken File.dirname(__FILE__) in eval blocks
mame (Yusuke Endoh) wrote in #note-1:
> You may want to replace `File.dirname(__FILE__)` with `__dir__`.
Note that `__dir__` will return `nil` not a string in that case.
nobu (Nobuyoshi Nakada)
10:26 AM Bug #20175: Broken File.dirname(__FILE__) in eval blocks
Changing `__FILE__` is an intended change, so it is basically unavoidable. I think it is very accidental that `File.dirname("(eval)")` returns `"."`. Please do not depend on it.
You may want to replace `File.dirname(__FILE__)` with `_...
mame (Yusuke Endoh)
09:59 AM Bug #20175 (Feedback): Broken File.dirname(__FILE__) in eval blocks
Since #19755 eval use caller location by default, however, it broke `File.dirname(__FILE__)` in some cases.
```ruby
# eval.rb
eval('puts file: __FILE__, dirname: File.dirname(__FILE__)')
```
Up to Ruby 3.2.2 it gave back the sam...
kiskoza (Zsolt Kozaroczy)
07:29 PM Bug #20158: Ractor affects Coverage results
Hi @mame!
As mentioned in the ticket, i could not reproduce it with a smaller setup.
Maybe problems only begin at a certain size, or when there is some `require` hierarchy?
I've now forked my affected repository to demonstrate t...
janosch-x (Janosch Müller)
07:26 PM Bug #20165: Ractors moving a Struct breaks beyond the first 3 fields
I sent a fix for this here https://github.com/ruby/ruby/pull/9910/
Also, currently Ractors are not working well on Ruby 3.3, if you're working with them I suggest staying on 3.2 for now.
luke-gru (Luke Gruber)
06:56 PM Bug #20174: Ruby 3.2 jit_cont_free segfault with YJIT enabled
Yes, it's how you mark a commit for backport (closed ticket with the backport field filled) byroot (Jean Boussier)
06:55 PM Bug #20174: Ruby 3.2 jit_cont_free segfault with YJIT enabled
byroot (Jean Boussier) wrote in #note-1:
> Thanks for the report. Editing the issue to mark this commit for backport.
> ...
This being my first bug - did you mean to make it status Closed?
ziggythehamster (Keith Gable)
09:21 AM Bug #20174 (Closed): Ruby 3.2 jit_cont_free segfault with YJIT enabled
Thanks for the report. Editing the issue to mark this commit for backport.
Commit to backport: `e07e9f8491d9ab8b22d2bdf6a8aeba834dac7eef`
byroot (Jean Boussier)
05:55 AM Bug #20174 (Closed): Ruby 3.2 jit_cont_free segfault with YJIT enabled
Ruby 3.2 segfaults reproducibly for us on aarch64 (Graviton2) and x86_64 with YJIT enabled ... however all of my attempts to make a minimal reproducible test case have failed. The control frame of the segfault isn't consistent, but the C... ziggythehamster (Keith Gable)
06:32 PM Revision 51061b66 (git): [PRISM] Don't increment argc for PM_ASSOC_SPLAT_NODE
Fixes ruby/prism#2087. peterzhu2118 (Peter Zhu)
06:19 PM Bug #20162 (Closed): Memory leak when duplicating too complex object
Applied in changeset commit:git|82b57d7bfeefd717c10f7a5a3484aca6b3e708a3.
----------
Fix memory leak when duplicating too complex object
[Bug #20162]
Creating a ST table then calling st_replace leaks memory because the
st_replace over...
peterzhu2118 (Peter Zhu)
06:19 PM Revision 015b0e2e (git): YJIT: Fix unused warnings
```
warning: unused import: `condition::Condition`
--> src/asm/arm64/arg/mod.rs:13:9
|
13 | pub use condition::Condition;
| ^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused imp...
alanwu (Alan Wu)
04:25 PM Feature #20176: Array#pack: support offset kwarg
There's also `String#prepend`. Not sure if more efficient than `str.insert(0, ` (and if not, what was the argument for adding it back then?), but that's certainly another argument, in that, by reusing the `offset` kwarg from `String.unpa... chucke (Tiago Cardoso)
02:24 PM Feature #20176: Array#pack: support offset kwarg
I don't think this could be implemented more efficiently than doing `buffer.insert offset, array.pack(format)`.
Notably because in general the length of the produced string is unknown before packing.
So then I think this is not worth a...
Eregon (Benoit Daloze)
12:46 PM Feature #20176 (Open): Array#pack: support offset kwarg
I was changing some code to use ruby 3.3's new `buffer` kwarg (great addition btw!) when using `Array#pack`. There are a few cases however, where I could perform the change, as not all my usages rely on appending; in some, I'm actually p... chucke (Tiago Cardoso)
04:20 PM Revision 82b57d7b (git): 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
memory. This commit changes it to use st_copy instead.
For example:
RubyVM::S...
peterzhu2118 (Peter Zhu)
03:24 PM Revision f165fa09 (git): [ruby/prism] address feedback
https://github.com/ruby/prism/commit/ed183ad30c tenderlovemaking (Aaron Patterson)
03:24 PM Revision 881c5a18 (git): [ruby/prism] Add a "repeated flag" to parameter nodes
It's possible to repeat parameters in method definitions like so:
```ruby
def foo(_a, _a)
end
```
The compiler needs to know to adjust the local table size to account for
these duplicate names. We'll use the repeated parameter flag to...
tenderlovemaking (Aaron Patterson)
02:46 PM Revision 8940922d (git): [DOC] Improve doc for GC.latest_compact_info
peterzhu2118 (Peter Zhu)
12:04 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
There's [`spec.required_rubygems_version`](https://guides.rubygems.org/specification-reference/#required_rubygems_version) to enforce compatibility. On rubygems versions before the feature a dependency would then resolve to the last one ... lloeki (Loic Nageleisen)
11:39 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
I don't think it makes it useless. For now gems can do both (dummy makefile and `skip-build` file).
And in a few years, as older versions become deprecated, we'll be able to only do the `skip-build`.
byroot (Jean Boussier)
10:19 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> Another possibility would be if there is no Makefile created by extconf.rb, then RubyGems would not call make
One problem with that though is it would not work on older RubyGems, so if any gem uses that it would fail on existing Rub...
Eregon (Benoit Daloze)
10:04 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
I tried implementing this idea in `rubygems` https://github.com/rubygems/rubygems/pull/7372.
I still think it would be nice for `mkmf` to provide a `skip_compilation` helper that would generate the dummy makefile (for backward compati...
byroot (Jean Boussier)
09:26 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
+1 this would be useful for the ddtrace gem as well, we also do the "if (a bunch of conditions) generate an empty makefile" [dance](https://github.com/DataDog/dd-trace-rb/blob/fd56a11a252f5887b31b783f96fc8505b74b703c/ext/ddtrace_profilin... ivoanjo (Ivo Anjo)
09:22 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> I agree that this isn't a mkmf/extconf.rb issue. This is a rubygems issue.
Sounds like so to me as well (although it may need a bit of support from the ruby side to be solved cleanly)
> ...
Not too fond of that.
>> Another possibili...
lloeki (Loic Nageleisen)
10:40 AM Bug #20096: Ruby 3.2.2 win32/registry: Junk appended to Windows Registry String Value
Backport PR's:
* https://github.com/ruby/ruby/pull/9470
* https://github.com/ruby/ruby/pull/9471
kjtsanaktsidis (KJ Tsanaktsidis)
10:32 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
@ioquatix do we want to do anything about this?
This really did stem from a real bug in somebody's code it seems (https://github.com/socketry/async/issues/99) so I guess it would be good to do something. The "something"s we cooked up...
kjtsanaktsidis (KJ Tsanaktsidis)
10:07 AM Feature #20057 (Closed): Change behaviour of rb_register_postponed_job for Ruby 3.3
This was merged for Ruby 3.3 - f8effa209adb3ce050c100ffaffe6f3cc1508185 kjtsanaktsidis (KJ Tsanaktsidis)
10:04 AM Bug #20101 (Closed): rb_file_open and rb_io_fdopen don't perform CRLF -> LF conversion when encoding is set
Fix merged in 31371b2e24b03ccb0a03b622faf8c65e6cf6a31a kjtsanaktsidis (KJ Tsanaktsidis)
10:02 AM Revision 31371b2e (git): Fix CRLF -> LF conversion on read for rb_io_fdopen & rb_file_open
When opening a file with `File.open`, and then setting the encoding with
`IO#set_encoding`, it still correctly performs CRLF -> LF conversion on
Windows when reading files with a CRLF line ending in them (in text
mode).
However, the fil...
KJ Tsanaktsidis
09:50 AM Bug #20172: Socket.addrinfo failing randomly
mame (Yusuke Endoh) wrote in #note-2:
> Yeah, it is probably due to the change of #19965. I cannot debug it soon because I don't have a gentoo environment. I suspect `pthread_create` is somehow failing. Does `10000.times { Thread.new {}...
mwaldvogel (Michael Waldvogel)
08:43 AM Bug #20172: Socket.addrinfo failing randomly
We can at least exclude that it is due to heavy load. I will provide you access to one of the VMs by tomorrow. That way it should be easier to analyze. mwaldvogel (Michael Waldvogel)
03:46 AM Bug #20172: Socket.addrinfo failing randomly
Incidentally, our Arch Linux CI also uses glibc 2.38, and it is working fine. So I guess either that it is a Gentoo-specific problem, or that your machine is so heavily loaded that it cannot `pthread_create`. mame (Yusuke Endoh)
03:24 AM Bug #20172: Socket.addrinfo failing randomly
Yeah, it is probably due to the change of #19965. I cannot debug it soon because I don't have a gentoo environment. I suspect `pthread_create` is somehow failing. Does `10000.times { Thread.new {}.join }` work successfully on your machine? mame (Yusuke Endoh)
08:28 AM Revision c4051d5f (git): Update bundled gems list at 1500946ce4ed7d89ed33059e3629e5 [ci skip]
git[bot]
08:28 AM Revision 1500946c (git): Added mutex_m to bundled gems
hsbt (Hiroshi SHIBATA)
08:28 AM Revision d16f992e (git): Extract mutex_m as bundled gems
hsbt (Hiroshi SHIBATA)
05:28 AM Bug #20173 (Closed): Backport 597955a, 8b65d15
hsbt (Hiroshi SHIBATA)
05:08 AM Bug #20173 (Closed): Backport 597955a, 8b65d15
please backport!
make_now_just (Hiroya Fujinami)
05:06 AM Revision e59a7304 (git): `st_index_t` is not `VALUE`
nobu (Nobuyoshi Nakada)
04:49 AM Revision 48fd3117 (git): Constify
nobu (Nobuyoshi Nakada)
04:43 AM Revision 3ecfea60 (git): Need newline after changes list
hsbt (Hiroshi SHIBATA)
04:40 AM Revision 8b65d15f (git): Fix test case for `test_match_cache_with_peek_optimization` (#9466)
make_now_just (Hiroya Fujinami)
03:58 AM Revision a1949df5 (git): Remove unnecessary semicolon and add break
S_H_ (Shun Hiraoka)
02:22 AM Revision 597955aa (git): Fix to work match cache with peek next optimization (#9459)
make_now_just (Hiroya Fujinami)
01:30 AM Misc #20170: Drop support for GCC < 11
As jeremy pointed out, one potential drawback for dropping support for
older GCC may be that ruby could not be compiled on certain platforms
anymore. Personally I think the more platforms (and compilers) for ruby
to run on, the better...
rubyFeedback (robert heiler)
01:17 AM Feature #20163: Introduce #bit_count method on Integer
I like `popcount` but I also like `count_ones` because it sounds friendlier, however I have no strong preferences for the chosen name.
Also, I want to share my performance tests in case they are helpful for the discussion. As you can s...
garrison (Garrison Jensen)
12:18 AM Revision 1817d644 (git): mkmf.rb: use kwargs
nobu (Nobuyoshi Nakada)

01/09/2024

10:56 PM Bug #20172 (Closed): Socket.addrinfo failing randomly
I've recently updated one of my linux systems (Gentoo) to glibc 2.38 (that was the only change). After the update most of the time the below error happens. Among other things this breaks rubygems for me. I've reinstalled ruby 3.2.2 with ... mwaldvogel (Michael Waldvogel)
08:25 PM Misc #20170: Drop support for GCC < 11
In regard of compilers, we should look at not only the maintenance status of the upstream but also the one of major package distributions. I have investigated some distributions with long maintenance periods:
* RHEL8 (maintenance supp...
mame (Yusuke Endoh)
03:30 PM Misc #20170: Drop support for GCC < 11
OpenBSD/sparc64 (and maybe some other OpenBSD arches) build Ruby using GCC 8.4 (as Clang/LLVM sparc64 support isn't mature enough yet). So if possible, I would prefer to not drop support for GCC 8.4 yet. jeremyevans0 (Jeremy Evans)
01:41 PM Misc #20170: Drop support for GCC < 11
(For added context: https://gcc.gnu.org/gcc-10/) kddnewton (Kevin Newton)
01:40 PM Misc #20170 (Closed): Drop support for GCC < 11
Right now, CI compiles everything from GCC 7+. However, GCC 7-10 are all end-of-life and no longer supported. We should drop support for the end-of-life compilers. kddnewton (Kevin Newton)
07:13 PM Revision c06745fe (git): [DOC] Enhance documentation for `Array#zip`
the_spectator (Akshay Birajdar)
07:02 PM Revision 80da9b15 (git): [ruby/prism] Clarify __END__ comment
https://github.com/ruby/prism/commit/3e36d5eabc kddnewton (Kevin Newton)
06:30 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
I'm not sure if the following is relevant, but maybe just food for thought...
Before Jeremy submitted this patch I had toyed with the idea of optimizing `*rest` and `**kwrest` arguments by freezing them. The idea is that with
```ruby...
Dan0042 (Daniel DeLorme)
05:02 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Dan0042 (Daniel DeLorme) wrote in #note-15:
> I'm not sure this is worth worrying about, but:
> ...
That's a good point. Note that similar things are already possible:
```ruby
def a(**)
b(**)
end
def b(**kw)
p kw
end
op...
jeremyevans0 (Jeremy Evans)
04:39 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
I'm not sure this is worth worrying about, but:
```ruby
def a(**)
@opts[:x] = 2
b(**)
end
def b(**kw)
p kw
end
opts = @opts = {x: 1}
a(**opts) # normally prints {:x=>1}, now prints {:x=>2}
```
Dan0042 (Daniel DeLorme)
01:17 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Happy I found an example that revealed an issue :)
> Switch ... argument forwards to not use ruby2_keywords
> ...
Awesome, I think this is much cleaner, and what TruffleRuby already does.
(and this kind of details tends to leak into...
Eregon (Benoit Daloze)
04:30 AM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
I've decided to remove the 6th optimization, and updated the pull request to do so. In addition to being by far the most complex and invasive optimization, it's also incorrect if the anonymous splat is passed to multiple methods that ac... jeremyevans0 (Jeremy Evans)
12:37 AM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
jeremyevans0 (Jeremy Evans) wrote in #note-11:
> Dan0042 (Daniel DeLorme) wrote in #note-10:
> ...
It's related to the 6th optimization (the most invasive). Fix:
```
diff --git a/vm_args.c b/vm_args.c
index a19169de13..f22c3ad3db ...
jeremyevans0 (Jeremy Evans)
12:25 AM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Dan0042 (Daniel DeLorme) wrote in #note-10:
> > I thought it might not hold for:
> ...
Thanks for testing. I'm fairly sure @Eregon was checking Ruby's current behavior, not the branch. That is a regression in the branch. I'll fix it.
jeremyevans0 (Jeremy Evans)
12:08 AM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
> I thought it might not hold for:
> ...
Ok, I'm not sure what's going on, but I just tried compiling jeremy's branch and the above is not working for me
```
jeremy/bin/ruby -e 'def g(*,**h); h; end; def m(h); h[:a] = 2; p h; end; d...
Dan0042 (Daniel DeLorme)
06:30 PM Feature #16142: Implement code_range in Proc and Method
> So what would be a good name?
What about `position`? I think it goes well together with `location`.
byroot (Jean Boussier)
03:43 PM Feature #16142: Implement code_range in Proc and Method
Hi I noticed we didn't get any conclusion on this topic.
I agree that method name should be something different. It follows the Matz's question: "What do we need from the method? line numbers? offset? whatever?
"
https://docs.ruby-l...
okuramasafumi (Masafumi OKURA)
05:45 PM Bug #20171 (Open): ri -i ruby interactive pressing tab does not autocomplete
When typing a Object or Object with a method, the tab button does not pull up autocomplete options.
This issue is not present in ruby 3.2.2
Ex
Type
- ri - i
- String.cap
Press.
- "Tab"
What is expected
- autoc...
Mystorium (Josh Goldfarb)
05:24 PM Revision 55b71213 (git): [PRISM] Frozen string literals should be fstrings
Frozen string literals should not just be frozen, but deduplicated as an
fstring so that two string literals with the same contents are the exact
same object.
Fixes ruby/prism#2095.
peterzhu2118 (Peter Zhu)
04:36 PM Feature #18948 (Closed): Add `with_private_method` option to `private_constant`
jeremyevans0 (Jeremy Evans)
04:01 PM Feature #18948: Add `with_private_method` option to `private_constant`
I'm convinced by Jeremy's argument. Please someone close this issue. okuramasafumi (Masafumi OKURA)
04:07 PM Revision 7015cb24 (git): [ruby/abbrev] Provide a 'Changelog' link on rubygems.org/gems/abbrev
By providing a 'changelog_uri' in the metadata of the gemspec a
'Changelog' link will be shown on https://rubygems.org/gems/abbrev
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details ...
Mark Young
03:16 PM Bug #20159 (Closed): Prism assertion failure even if it is executed with --parser=parse.y
This is now fixed by 88d7838445ec84b1cc630ce3bd97bb71cd0aefd4 kddnewton (Kevin Newton)
10:23 AM Bug #20159: Prism assertion failure even if it is executed with --parser=parse.y
@kddnewton I could reproduce the issue with no `RUBYOPT`. The error occurs because SyntaxSuggest uses `Prism.lex_compat`
```
$ cat a.rb
<<A+%
A
$ ruby -v a.rb
ruby 3.4.0dev (2024-01-09T08:14:55Z master 149373ce7f) [x86_64-linux...
mame (Yusuke Endoh)
10:21 AM Bug #20159: Prism assertion failure even if it is executed with --parser=parse.y
I found that this is because syntax_suggest is using prism.
It's not caused by iseq loading, I now think this is not a bug.
```
% (echo "<<A+%"; echo "A") > a.rb
% ruby a.rb
Assertion failure
% ruby --disable-gems a.rb
SyntaxErr...
tompng (tomoya ishida)
03:15 PM Revision 88d78384 (git): [ruby/prism] Fix assertion on spanning heredocs
https://github.com/ruby/prism/commit/e190308845 kddnewton (Kevin Newton)
02:41 PM Revision 02d8bad6 (git): Fix memory leak in parser for invalid syntax
The strterm is leaked when there is invalid syntax.
For example:
10.times do
100_000.times do
begin
RubyVM::InstructionSequence.compile('private def foo = puts "Hello"')
rescue SyntaxError
en...
peterzhu2118 (Peter Zhu)
02:40 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
I believe that if something complex is needed, `RakeBuilder` could be used instead:
https://github.com/rubygems/rubygems/blob/master/lib/rubygems/ext/rake_builder.rb
Just FTR, these are currently supported builders:
https://gith...
vo.x (Vit Ondruch)
11:05 AM Bug #20169: `GC.compact` can raises `EFAULT` on IO
I need to think about this a bit more, but I wonder if we can fix this on Linux at least by using `userfaultfd` instead of registering SIGBUS/SIGSEGV handlers… kjtsanaktsidis (KJ Tsanaktsidis)
10:37 AM Bug #20169 (Closed): `GC.compact` can raises `EFAULT` on IO
1. `GC.compact` introduces read barriers to detect read accesses to the pages.
2. I/O operations release GVL to pass the control while their execution, and another thread can call `GC.compact` (or auto compact feature I guess, but not c...
ko1 (Koichi Sasada)
10:24 AM Feature #20163: Introduce #bit_count method on Integer
I also think `popcount` makes sense. Yes it's a bit of a cryptic name, but if you are dealing with bits, you are likely to be familiar with that name. byroot (Jean Boussier)
10:02 AM Feature #20163: Introduce #bit_count method on Integer
GCC has `__builtin_popcount` and Ruby defines `rb_popcount` function family internally. nobu (Nobuyoshi Nakada)
05:34 AM Feature #20163: Introduce #bit_count method on Integer
count_ones could be something different from what the OP wants, because (-19).bit_count is expected to be 3.
PS. `i64::count_ones(-19)` is `62` for Rust.
PPS. There is no such thing like a 64bit signed integer in ruby.
shyouhei (Shyouhei Urabe)
10:22 AM Feature #16137 (Closed): Add === to UnboundMethod
byroot (Jean Boussier)
09:18 AM Feature #16137: Add === to UnboundMethod
Now that we have had pattern match for a while, I agree with Eregon, we can utilize it more rather than adding new methods.
I cannot change its status so I hope someone will do so instead of me.
okuramasafumi (Masafumi OKURA)
09:48 AM Bug #20167: Code execution isn't recorded in Ractor
At this time, the coverage library should be able to only measure coverage for Ractor that invoked `Coverage.start`. (I have not tried but invoking `Coverage.start` in multiple Ractors may cause fatal problems.)
To improve this situat...
mame (Yusuke Endoh)
09:08 AM Bug #20167 (Assigned): Code execution isn't recorded in Ractor
## reproduction code
```ruby
# frozen-string-literal: true
require "coverage"
Coverage.start
require_relative "./some_lib"
# # some_lib.rb
# class C
# def hoge(i)
# i
# end
# end
r = Ractor.new do
loop do...
shia (Sangyong Sim)
09:47 AM Revision 38bc107f (git): Convert a series of `else if` lines to a `switch`
nobu (Nobuyoshi Nakada)
09:36 AM Bug #20158: Ractor affects Coverage results
@janosch-x Could you explain the complete reproduction procedure? I couldn't reproduce the issue by the following configuration.
test.rb
```ruby
Ractor.new { nil }
require "coverage"
Coverage.start
load "test2.rb"
foo
p...
mame (Yusuke Endoh)
09:29 AM Bug #20168 (Closed): Process won't exit when Ractor.select waiting a Ractor
## Reproduction code
```ruby
trap(:INT) do
puts "SIGINT"
exit
end
trap(:TERM) do
puts "SIGTERM"
exit
end
r = Ractor.new do
loop do
sleep 1
end
end
Ractor.select(r) # stucked.
# SIGINT/SIGTERM sent ...
shia (Sangyong Sim)
08:17 AM Bug #20166 (Closed): Backport 149373c to Ruby 3.3
https://github.com/ruby/ruby/pull/9457 hsbt (Hiroshi SHIBATA)
08:14 AM Revision 149373ce (git): racc is extracted at Ruby 3.3, not 3.4
hsbt (Hiroshi SHIBATA)
08:12 AM Revision 23345cc6 (git): Add Visual Studio 2015 job on GitHub Actions (#9452)
[[Feature #19982]](https://bugs.ruby-lang.org/issues/19982) k0kubun (Takashi Kokubun)
07:42 AM Revision 7285b165 (git): outdate-bundled-gems.rb: Make platform and version options optional
nobu (Nobuyoshi Nakada)
07:42 AM Revision 1288e7e9 (git): outdate-bundled-gems.rb: Remove timestamp files for revisions to test
nobu (Nobuyoshi Nakada)
07:42 AM Revision 60cd5230 (git): outdate-bundled-gems.rb: Sort outputs in depth order
nobu (Nobuyoshi Nakada)
07:42 AM Revision 72a78ecd (git): outdate-bundled-gems.rb: Add `--all` option
Unless this option is given, keep other gems that may be used by
`test-bundled-gems`.
nobu (Nobuyoshi Nakada)
07:42 AM Revision bf108636 (git): outdate-bundled-gems.rb: Add `--only={all,curdir,srcdir}` option
nobu (Nobuyoshi Nakada)
07:42 AM Revision 963131a2 (git): outdate-bundled-gems.rb: Pass platform and version explicitly
For different version baseruby, use the target platform and version
instead of the info of baseruby.
nobu (Nobuyoshi Nakada)
07:42 AM Revision 8f61617a (git): outdate-bundled-gems.rb: Do not clean the same directory twice
nobu (Nobuyoshi Nakada)
07:07 AM Revision db476cc7 (git): Introduce NODE_SYM to manage symbol literal
`:sym` was managed by `NODE_LIT` with `Symbol` object.
This commit introduces `NODE_SYM` so that
1. Symbol literal is detectable from AST Node
2. Reduce dependency on ruby object
yui-knk (Kaneko Yuichiro)
05:53 AM Revision f82a6172 (git): Avoid the duplicated entries of GitHub releases
hsbt (Hiroshi SHIBATA)
04:10 AM Bug #20151: Can't build Ruby 3.1 on FreeBSD 14.0
This has to be related: https://github.com/freebsd/freebsd-src/commit/af3c78886fd8d4ca5eebdbe581a459a6f6d29d6a
Because `ruby_qsort` is now a macro that ultimately expands to a `_Generic`, which is an expression, which cannot exist at ...
shyouhei (Shyouhei Urabe)
04:05 AM Revision 4b01983b (git): Simplify empty hahs with DSTAR
nobu (Nobuyoshi Nakada)
04:04 AM Revision a4406bc8 (git): Extract repeating NODE references as a local variable
nobu (Nobuyoshi Nakada)
01:25 AM Feature #19908: Update to Unicode 15.1
@janosch-x You are correct, thanks! I noticed it a few days ago, but didn't yet get around to write about that here. You beat me to that! duerst (Martin Dürst)
01:16 AM Misc #20075: DevMeeting-2024-01-17
- [Feature #20093] Syntax or keyword to reopen existing classes/modules, never to define new classes/modules
- To make monkey-patching code more explicitly
tagomoris (Satoshi Tagomori)
12:50 AM Bug #20161 (Closed): Memory leak in regexp grapheme clusters
Applied in changeset commit:git|37ed86fd3c798e298fad9db6e7df1f3f45e1e03b.
----------
Fix memory leak in regexp grapheme clusters
[Bug #20161]
The cc->mbuf gets overwritten, so we need to free it to not leak memory.
For example:
...
peterzhu2118 (Peter Zhu)
12:50 AM Revision 37ed86fd (git): Fix memory leak in regexp grapheme clusters
[Bug #20161]
The cc->mbuf gets overwritten, so we need to free it to not leak memory.
For example:
str = "hello world".encode(Encoding::UTF_32LE)
10.times do
1_000.times do
str.grapheme_clusters
end
...
peterzhu2118 (Peter Zhu)
12:01 AM Bug #20157 (Closed): Regression in GC.measure_total_time
jeremyevans0 (Jeremy Evans)

01/08/2024

11:55 PM Bug #20153 (Closed): Backport 7f9c174102 to fix --yjit-stats with RubyVM::YJIT.enable
jeremyevans0 (Jeremy Evans)
11:55 PM Bug #20149 (Closed): Fix memory leak in IPSocket rb_getaddrinfo
jeremyevans0 (Jeremy Evans)
11:54 PM Bug #20150 (Closed): Memory leak in grapheme clusters
Fixed by commit:b3d612804946e841e47d14e09b6839224a79c1a4 jeremyevans0 (Jeremy Evans)
11:52 PM Bug #20145 (Closed): Memory leak when duplicating identhash
jeremyevans0 (Jeremy Evans)
11:51 PM Revision 0a30fc62 (git): Remove obsoleted lldb_yjit.py
which clearly seems to be written for Ruby 3.1 YJIT that was not
rewritten in Rust yet. Since it has been left there as is, I don't think
anybody is actively using this script. We could add a new one if we need
it again.
k0kubun (Takashi Kokubun)
10:42 PM Revision 5ecf2d28 (git): Use `strcmp` to compare strings
yui-knk (Kaneko Yuichiro)
10:19 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Eregon (Benoit Daloze) wrote in #note-6:
> Something else is one might want to observe what is the value of `*` or `**` or `&` in the debugger.
> ...
Honestly, I didn't consider either of these. I don't see how you could do it with Tr...
jeremyevans0 (Jeremy Evans)
10:04 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Eregon (Benoit Daloze) wrote in #note-5:
> jeremyevans0 (Jeremy Evans) wrote in #note-4:
> ...
Close, `m` duplicates the hash callee-side. There was a bug in Ruby 3.0-3.2 where it would not (#20012), but I fixed it in Ruby 3.3 after f...
jeremyevans0 (Jeremy Evans)
09:57 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> The positional and keyword splats currently always allocate up front. Maybe a similar approach could work for those (`getsplatparamproxy`/`getkwsplatparamproxy`), but it would assuredly be...
Dan0042 (Daniel DeLorme)
09:54 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Something else is one might want to observe what is the value of `*` or `**` or `&` in the debugger.
And if that's somehow available then it becomes a way to mutate them, unless that way always makes a copy.
Notably it's not uncommon f...
Eregon (Benoit Daloze)
09:49 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> The nice part of the Allocationless Anonymous Splat Forwarding optimization is that it recognizes that you cannot modify the anonymous parameters
Interesting.
I thought it might not ho...
Eregon (Benoit Daloze)
09:32 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Dan0042 (Daniel DeLorme) wrote in #note-3:
> The thing is, I don't understand how is this different from the `def f(&b)` situation.
> ...
Proc-activation works differently. Before Ruby 2.5, Ruby always allocated a Proc object in such ...
jeremyevans0 (Jeremy Evans)
09:19 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
The thing is, I don't understand how is this different from the `def f(&b)` situation.
```ruby
def f(&block)
foo(bar)
g(&block)
end
```
Here above, `foo` may be `eval` and `bar` may be a string referencing `block`. So how does the ...
Dan0042 (Daniel DeLorme)
08:02 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
Dan0042 (Daniel DeLorme) wrote in #note-1:
> These are very nice optimizations, though they lead me to wonder: would it be possible to also optimize `def foo(**x) = bar(**x)` in the same way that `def foo(&x) = bar(&x)` is currently opt...
jeremyevans0 (Jeremy Evans)
07:31 PM Feature #20066: Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats
These are very nice optimizations, though they lead me to wonder: would it be possible to also optimize `def foo(**x) = bar(**x)` in the same way that `def foo(&x) = bar(&x)` is currently optimized? If a named block param can be optimize... Dan0042 (Daniel DeLorme)
09:45 PM Revision 544c87d0 (git): [rubygems/rubygems] Refer to underscores as underscores
https://github.com/rubygems/rubygems/commit/aa3ae5d245 Avdi Grimm
09:39 PM Feature #20163: Introduce #bit_count method on Integer
The name sounds too close to `#bit_length`, and `length` and `count` are often quite close in Ruby
(e.g. Enumerable#count without arguments is the same as #size/#length after Enumerable#to_a or on an Array, Hash, etc).
I think `count...
Eregon (Benoit Daloze)
08:50 PM Feature #20163 (Open): Introduce #bit_count method on Integer
This feature request is to implement a method called #bit_count on Integer that returns the number of ones in the binary representation of the absolute value of the integer.
```
n = 19
n.bit_count #=> 3
(-n).bit_count #=> 3
```
Thi...
garrison (Garrison Jensen)
09:02 PM Bug #20165 (Closed): Ractors moving a Struct breaks beyond the first 3 fields
Experimenting with Ractors on ruby 3.3.0, and I'm seeing a bug where if you move a struct between ractors, all but the first 3 fields are set to nil.
``` ruby
Foo = Struct.new(:a,:b,:c,:d,:e,:f)
r = Ractor.new {
foo = Foo[0,0,0...
codekitchen (Brian Palmer)
08:56 PM Feature #20164 (Open): Add Exception#deconstruct_keys
It would be convenient to perform pattern matching with exception classes. So `Exception#deconstruct_keys` should return a hash with `:message` (original_message) as well as any other keys specific to the exception subclass.
Examples:...
Dan0042 (Daniel DeLorme)
08:43 PM Revision 41dd1594 (git): fix `rb_thread_wait_for_single_fd` on non MN case
`rb_thread_wait_for_single_fd(fd)` waits until `fd` is ready.
Without MN it shouldn't use `thread_io_wait_events()` for the
retry checking (alwasy false if MN is not active).
ko1 (Koichi Sasada)
07:55 PM Revision 47ff4a16 (git): [PRISM] Blocks should track the found local depth
Rather than rely purely on local depth offset. This is because we can't
assume a specific depth offset for all variable accesses happening
within a block in the same way that we can for rescue/ensure/for or
other nodes that push scopes.
...
eightbitraptor (Matt V-H)
07:40 PM Revision 94a98ce6 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.85 to 0.9.86.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.85...v0.9.86)
---
updated-depende...
dependabot[bot]
07:40 PM Revision 4c3c5b64 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.85 to 0.9.86.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.85...v0.9.86)
---
updated-depende...
dependabot[bot]
06:47 PM Revision c39c49cb (git): [ruby/prism] Add missing comment key
https://github.com/ruby/prism/commit/723480a107 Matthew Healy
06:47 PM Revision eef74d83 (git): [ruby/prism] Fix spacing in documentation comment
https://github.com/ruby/prism/commit/8408961e76
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
matthew healy
06:47 PM Revision d02455af (git): [ruby/prism] Add comments documenting RangeNode fields
https://github.com/ruby/prism/commit/e6aef6499b Matthew Healy
06:47 PM Revision 1e7d1da3 (git): [ruby/prism] Clarify keys and values in AssocNode must be non-void
https://github.com/ruby/prism/commit/0caca53a2c
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
matthew healy
06:47 PM Revision b57c5e56 (git): [ruby/prism] Add comments for AssocSplatNode fields
https://github.com/ruby/prism/commit/a0fd874848 Matthew Healy
06:47 PM Revision 04ae8fb3 (git): [ruby/prism] Add comments for AssocNode fields
https://github.com/ruby/prism/commit/fb60072a1e Matthew Healy
06:47 PM Revision 7e09dd43 (git): [ruby/prism] Add comments for HashNode fields
https://github.com/ruby/prism/commit/649e209519 Matthew Healy
05:34 PM Revision a0eecfb5 (git): YJIT: Fallback Integer#<< if a shift amount varies (#9426)
* YJIT: Fallback Integer#<< if a shift amount varies
* YJIT: Do not fallback lshift in the first chain
k0kubun (Takashi Kokubun)
05:27 PM Misc #20075: DevMeeting-2024-01-17
* [Feature #20066] Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats (jeremyevans0)
* This is a collection of 5 optimizations, some of which are independent.
* The 4th and 5th allow for a performance optimizati...
jeremyevans0 (Jeremy Evans)
04:37 PM Bug #20162 (Closed): Memory leak when duplicating too complex object
GitHub PR: https://github.com/ruby/ruby/pull/9449
Creating a ST table then calling st_replace leaks memory because the st_replace overwrites the ST table without freeing any of the existing memory. This commit changes it to use st_cop...
peterzhu2118 (Peter Zhu)
04:30 PM Revision 85a7da74 (git): [DOC] Escape File in documentation
peterzhu2118 (Peter Zhu)
04:18 PM Feature #20160: rescue keyword for case expressions
lloeki (Loic Nageleisen) wrote in #note-7:
> > If #parse is defined as:
> ...
It does not. A parse wrapper *could* be written, just as I did with `get` in the URI example.
> b) parse to handle every possible exception (including wha...
austin (Austin Ziegler)
04:04 PM Feature #20160: rescue keyword for case expressions
> If #parse is defined as:
This requires:
a) parse to be in your control
b) parse to handle every possible exception (including whatever it calls) for which one would want a rescuing clause to control flow.
> ...
A somewhat generic al...
lloeki (Loic Nageleisen)
03:48 PM Feature #20160: rescue keyword for case expressions
> If it were consistent with case/when it would jump to the else case if it did not match. If it were consistent with begin/else it would jump to the else case if no error was raised.
The idea is that:
- `else` applies when no case...
lloeki (Loic Nageleisen)
03:21 PM Feature #20160: rescue keyword for case expressions
```ruby
case (parsed = parse(input))
when Integer then handle_int(parsed)
when Float then handle_float(parsed)
rescue ParseError
# ...
rescue ArgumentError
# ...
else
# ... fallthrough for all re...
kddnewton (Kevin Newton)
03:18 PM Feature #20160: rescue keyword for case expressions
Note that I find this example:
when Float then handle_float(parsed)
rescue ParseError
Easier to read than:
case (parsed = parse(input))
rescue ParseError
when Integer then handle_int(parsed)
I am also n...
rubyFeedback (robert heiler)
03:12 PM Feature #20160: rescue keyword for case expressions
lloeki (Loic Nageleisen) wrote:
> ```
> ...
I don't think that this would be necessarily more readable than a standard case or the new pattern matching case.
If `#parse` is defined as:
```ruby
def parse(input)
# parsing logic
rescue ...
austin (Austin Ziegler)
02:21 PM Feature #20160: rescue keyword for case expressions
Some clarifications. lloeki (Loic Nageleisen)
01:58 PM Feature #20160 (Rejected): rescue keyword for case expressions
It is frequent to find this piece of hypothetical Ruby code:
```
case (parsed = parse(input))
when Integer then handle_int(parsed)
when Float then handle_float(parsed)
end
```
What if we need to handle `par...
lloeki (Loic Nageleisen)
03:18 PM Bug #20161 (Closed): Memory leak in regexp grapheme clusters
GitHub PR: https://github.com/ruby/ruby/pull/9447
The cc->mbuf gets overwritten, so we need to free it to not leak memory.
For example:
```ruby
str = "hello world".encode(Encoding::UTF_32LE)
10.times do
1_000.times do
...
peterzhu2118 (Peter Zhu)
02:59 PM Misc #20156: C99 updates
I was going based on https://github.com/ruby/ruby/wiki/C99-Usage-Guidelines. Maybe this documentation needs to be updated.
> b75828fdfadaff6c5e09e42be32dff1216ed8fb1 says:
> ...
The title of that commit is `Support C89 if possible`...
kddnewton (Kevin Newton)
02:53 PM Bug #20159: Prism assertion failure even if it is executed with --parser=parse.y
I'm having difficulty reproducing this.
```
$ ruby -v
ruby 3.4.0dev (2024-01-07T16:23:58Z master 8b86d6f0c1) [arm64-darwin23]
$ (echo "<<A+%"; echo "A") > a.rb
$ ruby --parser=parse.y a.rb
a.rb: a.rb:1: unterminated string meets end of ...
kddnewton (Kevin Newton)
02:34 PM Revision d1d50a05 (git): [ruby/prism] Handle parsing a line break in a receiver of a method
https://github.com/ruby/prism/commit/4d5f43ecbc kddnewton (Kevin Newton)
02:14 PM Revision b3d61280 (git): Fix memory leak in grapheme clusters
[Bug #20150]
String#grapheme_cluters and String#each_grapheme_cluster leaks memory
because if the string is not UTF-8, then the created regex will not
be freed.
For example:
str = "hello world".encode(Encoding::UTF_32LE)
10.t...
peterzhu2118 (Peter Zhu)
02:11 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> Another possibility would be if there is no Makefile created by extconf.rb, then RubyGems would not call make
I quite like that one.
byroot (Jean Boussier)
01:30 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
jeremyevans0 (Jeremy Evans) wrote in #note-10:
> I agree that this isn't a `mkmf`/`extconf.rb` issue. This is a rubygems issue. I think the easiest way to fix this would be for rubygems to check for a `skip-compilation-RUBY_ENGINE` fi...
Eregon (Benoit Daloze)
12:42 PM Revision 8f4eda50 (git): [ruby/irb] Make SourceFinder ignore binary sources
(https://github.com/ruby/irb/pull/836)
https://github.com/ruby/irb/commit/73b35bb7f4
st0012 (Stan Lo)
09:48 AM Revision 41e2d180 (git): Do not convert NODE_STR to NODE_LIT when the string is hash key
parse.y converted NODE_STR when the string is hash key like
```
h1 = {"str1" => 1}
m1("str2" => 2)
m2({"str3" => 3})
```
This commit stop the conversion.
`static_literal_node_p` needs to know the node is for hash key or not
for the opt...
yui-knk (Kaneko Yuichiro)
05:02 AM Revision 7ffff3e0 (git): Change numeric node value functions argument to `NODE *`
Change the argument to align with other node value functions
like `rb_node_line_lineno_val`.
yui-knk (Kaneko Yuichiro)
03:26 AM Revision d9bad91c (git): [DOC] Fix docs for GC.compact
GC.compact returns GC.latest_compact_info and not GC.latest_gc_info. peterzhu2118 (Peter Zhu)
02:57 AM Revision 95270937 (git): Fix numeric node print by `-y` option
These nodes are not NOTE_LIT, so need to treat separately. yui-knk (Kaneko Yuichiro)

01/07/2024

07:01 PM Bug #20159 (Closed): Prism assertion failure even if it is executed with --parser=parse.y
Prism fails to parse this code with assertion failed. Reported at https://github.com/ruby/prism/issues/1616
~~~ruby
<<A+%
A
~~~
Ruby exits with assertion failed even if it's run with option `--parser=parse.y`
~~~
# ruby -v
ruby...
tompng (tomoya ishida)
06:48 PM Revision 11286ac4 (git): Fix memory leak in autoload_data
If the autoload_data has autoload_const and the autoload_data is freed
before the autoload_const, then the autoload_data will leak.
This commit changes it so that when the autoload_data is freed, it will
clear the whole linked list of a...
peterzhu2118 (Peter Zhu)
06:10 PM Bug #20154: aarch64: configure overrides `-mbranch-protection` if it was set in CFLAGS via environment
Right, the `configure.ac` should respect user given CFLAGS as much as possible.
I will make follow-up fixes to avoid overriding the option, but I don't think we can get it merged in 3.3.x branch since the overriding issue is not an obvi...
katei (Yuta Saito)
04:23 PM Revision 8b86d6f0 (git): Suppress unused-but-set-variable warning in ripper
`set_yylval_node` in ripper does not use the argument at all. nobu (Nobuyoshi Nakada)
03:50 PM Revision 5b6167c2 (git): * expand tabs. [ci skip]
Please consider using misc/expand_tabs.rb as a pre-commit hook. git[bot]
03:50 PM Revision c30b8ae9 (git): Adjust styles and indents [ci skip]
nobu (Nobuyoshi Nakada)
03:33 PM Revision 76c20b06 (git): Add `MakeMakefile["C"]`
nobu (Nobuyoshi Nakada)
03:12 PM Bug #20158 (Assigned): Ractor affects Coverage results
I have a large rspec test suite. I found that if I call a Ractor, the Coverage results are strongly affected, i.e. almost all files appear to be uncovered. This happens even if I only ever call a Ractor before the library or rspec are re... janosch-x (Janosch Müller)
03:05 PM Revision 189c8077 (git): Label memory leak test
peterzhu2118 (Peter Zhu)
12:49 PM Revision bca14938 (git): [DOC] Documentation of mkmf.rb
nobu (Nobuyoshi Nakada)
12:16 PM Revision ad7aee35 (git): Remove unneeded rb_parser_config_struct struct properties for Universal Parser
S_H_ (Shun Hiraoka)
11:39 AM Revision 7fcc6f04 (git): [ruby/rdoc] Visibility should begin from `public` for each scope
Even for singleton class definition such as `class << self` that
shares the same container with the outer scope, its visibility is
separated and set to `public` by default.
https://github.com/ruby/rdoc/commit/baf26363b9
nobu (Nobuyoshi Nakada)
11:39 AM Revision 2325b72c (git): [ruby/rdoc] Singleton method visibility should be isolated
Each singleton method definition of the form `def recv.method` has
visibility separate from the outer scope and is set to `public` by
default.
https://github.com/ruby/rdoc/commit/810913a7ea
nobu (Nobuyoshi Nakada)
07:18 AM Revision 83c98ead (git): Do not remove hash duplicated keys in parse.y
When hash keys are duplicated, e.g. `h = {k: 1, l: 2, k: 3}`,
parser changes node structure for correct compilation.
This generates tricky AST. This commit removes AST manipulation
from parser to keep AST structure simple.
yui-knk (Kaneko Yuichiro)
05:32 AM Revision 9d3dcb86 (git): Check hash key duplication for `__LINE__` and `__FILE__`
yui-knk (Kaneko Yuichiro)
04:54 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
Also fixes my issue from 2014: https://bugs.ruby-lang.org/issues/9725
I'm glad we finally have dealt with this one.
headius (Charles Nutter)
01:28 AM Bug #20146: Code using Ractor with env `RUBY_MAX_CPU=1` ends with unreachable
It seems any shared thread created when max cpu = 1 without enabled_mn_threads.
I suspect native_thread_check_and_create_shared, which always reject create shared thread.
Ref: https://github.com/ruby/ruby/blob/e4a9a73931072458f2bc13b29a...
shia (Sangyong Sim)
12:24 AM Revision e4a9a739 (git): Skip some RBS test
S_H_ (Shun Hiraoka)
12:24 AM Revision 1b8d0113 (git): Introduce Numeric Node's
S_H_ (Shun Hiraoka)
12:10 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
nobu (Nobuyoshi Nakada) wrote in #note-5:
> byroot (Jean Boussier) wrote in #note-2:
> ...
I agree that this isn't a `mkmf`/`extconf.rb` issue. This is a rubygems issue. I think the easiest way to fix this would be for rubygems to ch...
jeremyevans0 (Jeremy Evans)

01/06/2024

09:38 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
byroot (Jean Boussier) wrote in #note-8:
> > OTOH, IMO it's not a big ask for devs/users to install make when they are installing gems.
> ...
Really? https://rubyinstaller.org/ provides MSYS2 integration by "Devkit". It provides `make`.
kou (Kouhei Sutou)
01:51 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> This is not something mkmf can do on its own, it would need changes in RubyGems
Thanks for the info, as I said, I'm quite unfamiliar with how these pieces fit together.
> ...
Or look for a specially named file? This way `mkmf` co...
byroot (Jean Boussier)
12:00 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
This is not something mkmf can do on its own, it would need changes in RubyGems, and it seems not so easy for RubyGems to know.
When one uses `spec.extensions = ["ext/mygem/extconf.rb"]` in a `.gemspec` file, RubyGems will:
1. Run `...
Eregon (Benoit Daloze)
08:50 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> Does skip_compilation just make a Makefile does nothing?
I don't know, I'm unfamiliar with the internals of `mkmf` and not well versed in all this tooling.
I'm just requesting the capability of skipping compilation from `extconf....
byroot (Jean Boussier)
07:43 AM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
byroot (Jean Boussier) wrote in #note-2:
> This would be called in `extconf.rb`
Does `skip_compilation` just make a Makefile does nothing?
Then it won't be able to fix the issue that `make` is needed, since `make` is called outside ...
nobu (Nobuyoshi Nakada)
09:28 PM Feature #19908: Update to Unicode 15.1
Is not [this](https://www.unicode.org/reports/tr29/tr29-43.html#Regex_Definitions) the updated regular expression?
```diff
ccs-base := [\p{L}\p{N}\p{P}\p{S}\p{Zs}]
ccs-extend := [\p{M}\p{Join_Control}]
extended_base := ...
janosch-x (Janosch Müller)
06:26 PM Revision 76afbda5 (git): [ruby/net-http] Tweak to Net::HTTP What's Here
https://github.com/ruby/net-http/commit/3bf641ca63 burdettelamar (Burdette Lamar)
06:25 PM Revision 8cad6fc9 (git): Tweak to Integer What's Here
burdettelamar (Burdette Lamar)
06:24 PM Revision 4a44bf8c (git): Tweak to Float What's Here
burdettelamar (Burdette Lamar)
06:24 PM Revision 7b615bfd (git): Tweak to Float What's Here
burdettelamar (Burdette Lamar)
06:23 PM Revision 54e8901f (git): Tweak for ENV doc
burdettelamar (Burdette Lamar)
05:15 PM Revision 4bdfc907 (git): [ruby/irb] Refactor exit command
(https://github.com/ruby/irb/pull/835)
* Remove unnecessary code from the exit command's implementation
1. The parameters of `IRB.irb_exit` were never used. But there are some
libraries seem to call it with arguments + it's declared...
st0012 (Stan Lo)
04:43 PM Revision d96fe5e4 (git): [DOC] Fix indentation in Numeric#step
peterzhu2118 (Peter Zhu)
03:43 PM Revision e168dbda (git): [DOC] Simply use `--` / `++` instead of `:stopdoc:` / `:startdoc:`
nobu (Nobuyoshi Nakada)
02:34 PM Revision 0831d960 (git): [DOC] Fix typo in call-seq for Float#round
peterzhu2118 (Peter Zhu)
12:19 PM Revision 9b78ef75 (git): [DOC] Load options and parse files from srcdir
RDoc options that do not change and can be written in `.rdoc_options`
file are moved, so that they match when called without `make`.
Get rid of parsing the files in `page_dir` twice (as relative paths
and absolute paths).
nobu (Nobuyoshi Nakada)
12:16 PM Revision 3dac2789 (git): [ruby/irb] Require Reline v0.4.2+
(https://github.com/ruby/irb/pull/834)
https://github.com/ruby/irb/commit/eff8d0d46a
st0012 (Stan Lo)
10:54 AM Misc #20156: C99 updates

kddnewton (Kevin Newton) wrote:
> Now that we require Visual Studio 2015 and Oracle Developer Studio 12.5, we can do a couple of things to clean up:
> ...
b75828fdfadaff6c5e09e42be32dff1216ed8fb1 says:
> Fix compile error with Ora...
nobu (Nobuyoshi Nakada)
10:23 AM Revision d1de2a34 (git): [ruby/rdoc] Rename and move the tests for `--locale` option [ci skip]
https://github.com/ruby/rdoc/commit/b2a35ee39d nobu (Nobuyoshi Nakada)
10:17 AM Revision f6847e94 (git): [ruby/rdoc] Ignore `locale` at `write_options`
`@locale` is set from `@locale_name` and loaded from `@locale_dir`
after `write_options`, and `RDoc::I18n::Locale` does not seem to
expected to be loaded.
https://github.com/ruby/rdoc/commit/fd610f7023
nobu (Nobuyoshi Nakada)
06:49 AM Bug #20157 (Open): Regression in GC.measure_total_time
kjtsanaktsidis (KJ Tsanaktsidis)
06:49 AM Bug #20157: Regression in GC.measure_total_time
Backport PR: https://github.com/ruby/ruby/pull/9428 kjtsanaktsidis (KJ Tsanaktsidis)
06:39 AM Bug #20157 (Closed): Regression in GC.measure_total_time
PR above has been merged - thank you again. kjtsanaktsidis (KJ Tsanaktsidis)
04:27 AM Bug #20157: Regression in GC.measure_total_time
I've proposed a fix here: https://github.com/ruby/ruby/pull/9427 rianmcguire (Rian McGuire)
04:14 AM Bug #20157 (Closed): Regression in GC.measure_total_time
Setting `GC.measure_total_time = false` is no longer disabling GC time measurement in Ruby 3.3.0.
Reproduction script:
``` ruby
puts RUBY_DESCRIPTION
GC.measure_total_time = false
puts "measure_total_time is now false"
puts "...
rianmcguire (Rian McGuire)
06:36 AM Revision 913b26d0 (git): Add test case for GC.measure_total_time
rianmcguire (Rian McGuire)
06:36 AM Revision 7db35e10 (git): Fix GC.measure_total_time regression
Commit 93ac7405b80cc61930d73da04441fa09af1851e1 introduced a regression
where measurements would still be taken after setting
GC.measure_total_time = false.
Fixes [Bug #20157]
rianmcguire (Rian McGuire)
04:49 AM Misc #20107 (Closed): Update required Oracle Solaris Studio version to 12.5
Now that we have lost a (RubyCI) machine to check the behavior, I don't know if we can check whether the features work on 12.6 or not. But I think #note-2 was a "yes" from the platform maintainer to update the policy ([the wiki](https://... k0kubun (Takashi Kokubun)
04:47 AM Revision 4112585b (git): Too much nestings make editors confused
Get rid of nested double quotes inside nested interpolations. Also,
remove comments that are no longer needed by the documents.
nobu (Nobuyoshi Nakada)
12:32 AM Revision 54a12365 (git): Add ruby_debug_print functions to vm_debug.h
yui-knk (Kaneko Yuichiro)
12:32 AM Revision 0c990994 (git): Add a shorthand for ruby_debug_print_node
yui-knk (Kaneko Yuichiro)
12:32 AM Revision da23f8fe (git): Print node id and location by ruby_debug_print_node
yui-knk (Kaneko Yuichiro)

01/05/2024

11:11 PM Misc #20156 (Closed): C99 updates
Now that we require Visual Studio 2015 and Oracle Developer Studio 12.5, we can do a couple of things to clean up:
* We should be able to remove our custom `stdbool.h` (added in VS2015 and Oracle SS 12.3)
* Remove our usage of `__res...
kddnewton (Kevin Newton)
11:00 PM Misc #20107: Update required Oracle Solaris Studio version to 12.5
Oh sorry I was going based on https://github.com/ruby/ruby/wiki/C99-Usage-Guidelines. If we no longer test with these, then I think this issue can be closed? Is there any other documentation or tests that need to be updated? kddnewton (Kevin Newton)
10:37 PM Misc #20107: Update required Oracle Solaris Studio version to 12.5
I'm not sure what you mean. We already removed Solaris from [Ruby CI](https://rubyci.org/) from Oct 2023.
Can you point what is the old CI tasks?
hsbt (Hiroshi SHIBATA)
07:02 PM Misc #20107: Update required Oracle Solaris Studio version to 12.5
Is that something we can address within Ruby or is it entirely outside of our control?
@hsbt do you want to remove the old CI tasks or should I?
kddnewton (Kevin Newton)
10:14 PM Bug #20155 (Assigned): Using value of rb_fiber_scheduler_current() crashes Ruby
While trying to manually block/unblock fibers from an extension using the Fiber Scheduler,
I noticed that using the return value of `rb_fiber_scheduler_current()` crashes Ruby.
I've created a minimal extension gem called "fiber_block...
paddor (Patrik Wenger)
09:27 PM Bug #20154: aarch64: configure overrides `-mbranch-protection` if it was set in CFLAGS via environment
I have looked at other aspects of the options and inspected the assembly outputted with -mbranch-protection={standard,pac-ret} in Fedora PR's workaround https://src.fedoraproject.org/rpms/ruby/pull-request/167 jprokop (Jarek Prokop)
09:25 PM Bug #20154 (Closed): aarch64: configure overrides `-mbranch-protection` if it was set in CFLAGS via environment
Recently a GH PR was merged <https://github.com/ruby/ruby/pull/9306> For PAC/BTI support on ARM CPUs for Coroutine.S.
Without proper compilation support in configure.ac it segfaults Ruby with fibers on CPUs where PAC is supported: htt...
jprokop (Jarek Prokop)
07:24 PM Bug #20153 (Assigned): Backport 7f9c174102 to fix --yjit-stats with RubyVM::YJIT.enable
k0kubun (Takashi Kokubun)
07:20 PM Bug #20153 (Closed): Backport 7f9c174102 to fix --yjit-stats with RubyVM::YJIT.enable
Ruby 3.3.0 ignores `--yjit-stats` when `RubyVM::YJIT.enable` (no argument) is used, which is an unintended behavior.
commit:7f9c174102d0e2369befc7b88f2c073becaa7560 should be backported to ruby_3_3.
Backport PR: https://github.com/...
k0kubun (Takashi Kokubun)
07:08 PM Revision 7f9c1741 (git): YJIT: Let RubyVM::YJIT.enable respect --yjit-stats (#9415)
k0kubun (Takashi Kokubun)
06:09 PM Feature #14602: Version of dig that raises error if a key is not present
Following what @mame explained about Matz expectations, I would like to (*humbly*) suggest another option:
* `dig_expected`
(and a my +1 to `dig_strict`)
edmz (Ed Mz)
05:06 PM Bug #11526 (Closed): Streaming HTTP requests are not idempotent and should not be retried
jeremyevans0 (Jeremy Evans)
04:51 PM Revision 4d031400 (git): [ruby/net-http] Don't invoke response block more than once due to retry
If a socket error occurs while performing a streaming download via
the response block provided to transport_request, avoid calling
the response block again as this would result in duplicate data
received by the client.
Fixes https://git...
jeremyevans (Jeremy Evans)
04:07 PM Revision 37657c79 (git): [ruby/uri] Make URI#to_s prepend relative path with / if there is a host or port
Otherwise, the path could be considered part of the host or port.
This is better than modifying the path to make it absolute when
a host or port is set. We could also raise for invalid paths
when a host or port is set using check_path,...
jeremyevans (Jeremy Evans)
04:06 PM Feature #18035: Introduce general model/semantic for immutability.
I understand the advantages of immutability, but I worry about the overall direction this is taking us. So I'll just quote something @mame wrote previously, as it reflects my own opinion.
mame (Yusuke Endoh) wrote in #16153#note-6:
>...
Dan0042 (Daniel DeLorme)
04:06 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
Prism would use this as well: https://github.com/ruby/prism/blob/829ac0ed3f449313584aae35db98fd7614eb9d63/ext/prism/extconf.rb#L47-L56 kddnewton (Kevin Newton)
04:03 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
In case you meant which gems would use this, then I think the 3 I listed as example would make a good use of it, and I'm certain there are some more that are in similar cases. byroot (Jean Boussier)
01:29 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
> Where will this be used?
I'm not sure I understand the question.
This would be called in `extconf.rb`
byroot (Jean Boussier)
12:58 PM Feature #20152: mkmf / extconf: Add a proper way to not compile the extension
byroot (Jean Boussier) wrote:
> It would be very useful to have some proper first class API to skip compiling the extension.
> ...
Where will this be used?
nobu (Nobuyoshi Nakada)
10:53 AM Feature #20152 (Open): mkmf / extconf: Add a proper way to not compile the extension
### Context
There are various gems that ship with a native extension as a way to speedup part of the gem, but also ship with a pure Ruby version of these methods as a fallback. So they only want to compile the extension if the platfor...
byroot (Jean Boussier)
02:33 PM Revision 557f1a57 (git): Update default gems list at 99933751c1c99488b7207449179dcb [ci skip]
git[bot]
02:32 PM Revision 99933751 (git): [ruby/reline] Bump version to v0.4.2
(https://github.com/ruby/reline/pull/633)
https://github.com/ruby/reline/commit/5b59e48070
st0012 (Stan Lo)
02:11 PM Bug #20148: Sorting not working as expected on Urdu words.
As Martin says Ruby's `Array<String>#sort` just uses simple Unicode scalar value sort, which is not what you expect.
For the use case which considers the knowledge of the language, you need to use "Collation".
RDB sometimes implement...
naruse (Yui NARUSE)
12:25 AM Bug #20148 (Rejected): Sorting not working as expected on Urdu words.
The characters involved (shown right-to-left in most environments) are:
U+0627 ا ARABIC LETTER ALEF
U+00628 ب ARABIC LETTER BEH
U+0062A ت ARABIC LETTER TEH
U+00679 ٹ ARABIC LETTER TTEH
U+0067E پ ARABIC LETTER PEH
The first three ch...
duerst (Martin Dürst)
01:54 PM Revision 634d4e29 (git): Update net-* gems for Ruby 3.3 (#9418)
* Bump up net-ftp to 0.3.4
* Bump up net-smtp to 0.4.0.1
* Bump up net-imap to 0.4.9.1
* [ruby/net-http] Renew test certificates
The private key is replaced with a public known test key published at
[RFC 9500].
Also lifetime has bee...
hsbt (Hiroshi SHIBATA)
09:29 AM Revision 900fb48e (git): Support Feature and Bug tickets for release note generator
hsbt (Hiroshi SHIBATA)
09:21 AM Revision 3bd9adad (git): Bump up net-http to 0.4.1
hsbt (Hiroshi SHIBATA)
09:21 AM Revision 671fd2a6 (git): [ruby/net-http] Renew test certificates
The private key is replaced with a public known test key published at
[RFC 9500].
Also lifetime has been extended to 10 years from 4 years.
[RFC 9500]: https://www.rfc-editor.org/rfc/rfc9500.html
https://github.com/ruby/net-http/commi...
sorah (Sorah Fukumori)
09:21 AM Revision 041448de (git): Bump up net-imap to 0.3.4.1
hsbt (Hiroshi SHIBATA)
09:21 AM Revision 152eadd3 (git): Bump up net-smtp to 0.3.4
hsbt (Hiroshi SHIBATA)
09:21 AM Revision 01d63a45 (git): Bump up net-ftp to 0.2.1
hsbt (Hiroshi SHIBATA)
09:14 AM Revision f75302b8 (git): Update bundled gems list at 185abff6260c100cbb1022c8ee8bbb [ci skip]
git[bot]
09:13 AM Revision 185abff6 (git): Use released versions of net-imap and net-smtp
hsbt (Hiroshi SHIBATA)
09:06 AM Bug #20106 (Closed): Backport d3933fc753187a055a4904af82f5f3794c88c416 to fix net-http test errors
I submit PRs for fixing them.
* Ruby 3.3 https://github.com/ruby/ruby/pull/9418
* Ruby 3.2 https://github.com/ruby/ruby/pull/9419
* Ruby 3.1 https://github.com/ruby/ruby/pull/9420
hsbt (Hiroshi SHIBATA)
08:25 AM Revision f4b05961 (git): Update default gems list at 75a8b48fba5392019bf7be82eab247 [ci skip]
git[bot]
08:25 AM Revision 75a8b48f (git): [ruby/net-http] Bump version to 0.4.1
https://github.com/ruby/net-http/commit/21e226c0bc hsbt (Hiroshi SHIBATA)
06:58 AM Revision 7b2b1e61 (git): Update bundled gems list as of 2024-01-05
git[bot]
03:14 AM Bug #20151 (Closed): Can't build Ruby 3.1 on FreeBSD 14.0
I couldn't install Ruby 3.1.3 on FreeBSD 14.0.
```
compiling util.c
util.c:255:1: error: expected identifier or '('
ruby_qsort(void* base, const size_t nel, const size_t size, cmpfunc_t *cmp, void *d)
^
./include/ruby/util.h:12...
hsbt (Hiroshi SHIBATA)
03:14 AM Revision 6d67dfc9 (git): Add test cases for duplicated `when\' clause warnings
Add test cases for `__LINE__` and `__FILE__` because
they were managed by NODE_LIT and NODE_STR but changed to
be managed by dedicated NODE now.
yui-knk (Kaneko Yuichiro)
02:06 AM Revision 098d97e9 (git): [rubygems/rubygems] Quote Etag in `If-None-Match` header of compact index request
https://github.com/rubygems/rubygems/commit/d26bcd7551 martinemde (Martin Emde)
01:55 AM Bug #20147: FreeBSD libyaml
I could install Ruby 3.2.2 on FreeBSD 14.0 with `ruby-build` and the following configuration.
```
./configure "--prefix=$HOME/.rbenv/versions/3.1.3" --enable-shared --with-readline-dir=/usr/local --with-libffi-dir=/usr/local --with-liby...
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom