Project

General

Profile

Activity

From 03/20/2022 to 03/26/2022

03/26/2022

08:36 PM Bug #17489 (Closed): Ractor segfaults
kirs (Kir Shatrov) wrote in #note-8:
>
> ...
OK, I'll close it.
wanabe (_ wanabe)
09:50 AM Bug #17489: Ractor segfaults
wanabe (_ wanabe) wrote in #note-6:
> It seems be a autoload on non-main Ractor problem [Bug #18120].
> ...
That's great news!
I wish I knew how to close this ticket. Not sure I have permissions to do that...?
kirs (Kir Shatrov)
07:05 PM Bug #18664 (Feedback): Segmentation fault with Ruby 3.1.1 in Rails 7.0.2.3
peterzhu2118 (Peter Zhu)
07:04 PM Bug #18664: Segmentation fault with Ruby 3.1.1 in Rails 7.0.2.3
Thank you for the bug report. Looking at the backtrace, this looks like the same issue as #18627, which has been fixed and will be backported to Ruby 3.1.2. peterzhu2118 (Peter Zhu)
01:45 PM Bug #18664 (Closed): Segmentation fault with Ruby 3.1.1 in Rails 7.0.2.3
https://github.com/tabuchi0919/rails-segfault
This is code to reproduce.
I'm sorry that sample app is not simple and probability of segmentation fault is very low.
Anonymous
05:43 PM Revision 956e57f7 (git): * 2022-03-27 [ci skip]
git[bot]
05:42 PM Revision e699e2d9 (git): Enhanced RDoc for String (#5723)
Treats:
#lstrip
#lstrip!
#rstrip
#rstrip!
#strip
#strip!
Adds section Whitespace in Strings.
burdettelamar (Burdette Lamar)
12:13 PM Revision 300f4677 (git): [DOC] Use simple references to operator methods
Method references is not only able to be marked up as code, also
reflects `--show-hash` option.
The bug that prevented the old rdoc from correctly parsing these
methods was fixed last month.
nobu (Nobuyoshi Nakada)
02:26 AM Bug #18294: error when parsing regexp comment
I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/5721
The basic approach is skip the parse.y checks for regexps, because regexp does the same checks. Modify the regexp code to pass the regexp options to a ...
jeremyevans0 (Jeremy Evans)

03/25/2022

10:49 PM Revision 4acc757d (git): [ruby/psych] Added condition for macOS homebrew
https://github.com/ruby/psych/commit/a876de5a82
Co-authored-by: David Rodríguez <[email protected]>
hsbt (Hiroshi SHIBATA)
10:29 PM Bug #18663: Autoload doesn't work with fiber context switch.
@ioquatix hmmm, let me explain.
The feature in development for a web application is reloading. Ordinary gems using Zeitwerk may autoload in any project they are used, and when you eager load Rails in production you may need to autoloa...
fxn (Xavier Noria)
09:12 PM Bug #18663: Autoload doesn't work with fiber context switch.
@fxn If I understand correctly, autoload is mostly a feature of a development environment, so if we made this a little bit slower in order to improve accuracy (i.e. using a proper mutex), it wouldn't be huge loss right? Ruby's mutex isn'... ioquatix (Samuel Williams)
09:10 PM Bug #18663: Autoload doesn't work with fiber context switch.
Autoload uses a spin lock:
```c
static VALUE
autoload_sleep(VALUE arg)
{
struct autoload_state *state = (struct autoload_state *)arg;
/*
* autoload_reset in other thread will resume us and remove us
* from t...
ioquatix (Samuel Williams)
09:01 PM Bug #18663: Autoload doesn't work with fiber context switch.
```c
/* always on stack, no need to mark */
struct autoload_state {
struct autoload_const *ac;
VALUE result;
VALUE thread;
struct list_head waitq;
};
```
I'm suspicious of `VALUE thread`.
ioquatix (Samuel Williams)
08:39 PM Bug #18663: Autoload doesn't work with fiber context switch.
Pure fiber repro.
```ruby
#!/usr/bin/env ruby
require 'tempfile'
Tempfile.create(['foo', '.rb']) do |file|
file.write(<<~RUBY)
Fiber.yield
class C
end
RUBY
file.close
autoload :C, file.path
3...
ioquatix (Samuel Williams)
08:12 PM Bug #18663 (Closed): Autoload doesn't work with fiber context switch.
As discussed most recently here: https://github.com/ruby/debug/issues/580
The following program appears to work:
```ruby
#!/usr/bin/env ruby
require 'tempfile'
Tempfile.create(['foo', '.rb']) do |file|
file.write(<<~RUBY)...
ioquatix (Samuel Williams)
09:33 PM Revision f79765ab (git): Update NEWS for {Kernel,TracePoint}#binding change
jeremyevans (Jeremy Evans)
08:43 PM Revision 7f93b7dc (git): [DOC] Fix formatting for What's Here in IO (#5719)
* Fix formatting for What's Here in IO
* Repair formatting in What's Heres in numeric.c
* Fix formatting for What's Here in IO
burdettelamar (Burdette Lamar)
08:17 PM Misc #18662: Fiber scheduling and Module#autoload
https://bugs.ruby-lang.org/issues/18663 is the same, human race condition :D. We could close one of the two, at your discretion. fxn (Xavier Noria)
07:50 PM Misc #18662 (Closed): Fiber scheduling and Module#autoload
Looks like Fiber context-switching does not synchronize constant reference access. This script using the `async` gem demonstrates the issue:
```ruby
require 'tempfile'
require 'async'
Tempfile.create(['foo', '.rb']) do |file|
...
fxn (Xavier Noria)
06:48 PM Revision 1a002d9a (git): Fix formatting errors in What's Here for Array, Hash, ENV (#5718)
burdettelamar (Burdette Lamar)
06:14 PM Bug #18658: Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
https://src.fedoraproject.org/rpms/ruby/c/2da7a540e7714777b93c430b4f252838b555b703
https://gitlab.com/redhat/centos-stream/rpms/ruby/-/commit/9b1bf408282ab378b5d8b06ce7d7debd2a5dd1d7
These ^^ are the patches applied in Fedora and c9s...
vo.x (Vit Ondruch)
11:00 AM Bug #18658: Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
This would be particularly useful given it's often impossible to get an older openssl version on a system
(and if one compiles their own, then system packages like databases won't link against the manually-compiled libssl and so typical...
Eregon (Benoit Daloze)
05:16 PM Revision d0b7df81 (git): Fix formatting of What's Here for File (#5717)
burdettelamar (Burdette Lamar)
03:52 PM Revision 52793c00 (git): * 2022-03-26 [ci skip]
git[bot]
03:52 PM Revision f918f6e4 (git): [DOC] Repair format and links in What's Here sections (#5711)
* Repair format and links in What's Here for Comparable and Array
* Repair format for What's Here in enum.c
burdettelamar (Burdette Lamar)
03:17 PM Bug #18373: Bundled gem (RBS, debug) extensions are not properly built
Ah, now I found this commit:git|bac6e8ca5d8f6bc45984d12ddad55d3d876d4324, so it used to be the case. I'll try to take a look what would the rbinstall.rb need to install also the binary extensions. vo.x (Vit Ondruch)
12:09 PM Bug #18373: Bundled gem (RBS, debug) extensions are not properly built
This is even more tricky then I initially thought, at least in the RPM context. The issue that RPM assumes there is "build" step, where everything is build and later "install" step, where everything is move into right location. Unfortuna... vo.x (Vit Ondruch)
01:57 PM Bug #18661 (Open): Net::HTTP behavior changed between 2.6 and 3.1 on windows.
We are upgrading a rails application from Ruby 2.6 to Ruby 3.1 on Windows.
Running rails systems tests hang on Ruby 3.1, while they succeed on Ruby 2.6.
I tracked this down to Ruby 3.1's Net::HTTP using Socket.tcp rather than the ...
jleblanc (Joshua LeBlanc)
12:43 PM Feature #18660 (Closed): Line event flags on instruction in method/block signature
Ruby in question is 3.0.3. Not sure what behavior is on different versions, but presume the same.
It's unclear why operations in signatures are not marked with `Li`, despite they may be a valid and meaningful code. Consider example:
...
hurricup (Alexandr Evstigneev)
11:30 AM Feature #18589 (Closed): Finer-grained constant invalidation
Applied in changeset commit:git|69967ee64eac9ce65b83533a566d69d12a6046d0.
----------
Revert "Finer-grained inline constant cache invalidation"
This reverts commits for [Feature #18589]:
* 8008fb7352abc6fba433b99bf20763cf0d4adb38
"Upd...
nobu (Nobuyoshi Nakada)
11:29 AM Bug #17489: Ractor segfaults
It seems be a autoload on non-main Ractor problem [Bug #18120].
This operation is prohibited after https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/397a509b6d0d1470df8c290d7c4adef78f1532ee and does not result in ...
wanabe (_ wanabe)
11:29 AM Revision 69967ee6 (git): Revert "Finer-grained inline constant cache invalidation"
This reverts commits for [Feature #18589]:
* 8008fb7352abc6fba433b99bf20763cf0d4adb38
"Update formatting per feedback"
* 8f6eaca2e19828e92ecdb28b0fe693d606a03f96
"Delete ID from constant cache table if it becomes empty on ISEQ free"
...
nobu (Nobuyoshi Nakada)
11:27 AM Revision 7ee26740 (git): [ruby/readline-ext] Removed the duplicated dependencies
https://github.com/ruby/readline-ext/commit/324d324427 hsbt (Hiroshi SHIBATA)
10:55 AM Feature #18659: Create a Binding at the time of an exception and make it available to Rescue
This would be a huge overhead, so I don't think it's a good idea.
If you need this data, you could just pass it down yourself (e.g., the inner loop could be a block and then you already have access to all variables, or you could pass da...
Eregon (Benoit Daloze)
02:02 AM Feature #18659 (Open): Create a Binding at the time of an exception and make it available to Rescue
When an exception occurs, create a binding or I assume make a reference to the current binding and then add that to the Exception class via (e.g.) a #binding method. This would allow users to have a more global rescue code but would st... pedz (Perry Smith)
08:00 AM Bug #17382 (Closed): Segfault in String#inspect
Thank you for confirming.
This is not reproduced in 3.0 or later, and it would be better to close this issue, leaving the decision to the backport maintainer.
I'm going to close it.
wanabe (_ wanabe)
06:36 AM Feature #18159: Integrate functionality of syntax_suggest gem into Ruby
duerst (Martin Dürst) wrote in #note-9:
> - The best time to introduce the gem would be once the 3.1 release branch is forked from the master branch. That would be in January next year, or possibly somewhat earlier. Then we would have...
duerst (Martin Dürst)
12:53 AM Revision 033d9796 (git): Disabled cross compile for unknown errors with psych build
hsbt (Hiroshi SHIBATA)
12:53 AM Revision 0292a34c (git): Removed libyaml object files from depends
hsbt (Hiroshi SHIBATA)
12:53 AM Revision bfdceab3 (git): Try to remove yaml sources from depend
hsbt (Hiroshi SHIBATA)
12:53 AM Revision 829754b3 (git): Added libyaml-dev into BASERUBY check
hsbt (Hiroshi SHIBATA)
12:53 AM Revision 8e3fbf94 (git): Merge psych master: Removed the bundled libyaml
hsbt (Hiroshi SHIBATA)
12:40 AM Revision 465edb96 (git): [DOC] Enhanced RDoc for String (#5707)
Treated:
#chomp
#chomp!
#chop
#chop!
burdettelamar (Burdette Lamar)

03/24/2022

09:25 PM Misc #18652: DevMeeting-2022-04-21
* [Feature #18642] Named ripper fields (kddnewton)
* This commit adds a new subclass for ripper that functions similarly to SexpBuilderPP but uses classes with named fields instead of arrays. It additionally includes location informati...
kddnewton (Kevin Newton)
09:23 PM Misc #18652: DevMeeting-2022-04-21
* [Feature #18654] Enhancements to prettyprint (kddnewton)
* PrettyPrint currently immediately pushes content onto the output buffer and then inserts newlines where necessary. This makes it impossible to change the output based on how...
kddnewton (Kevin Newton)
08:27 PM Bug #18631: Range check breaks multiplex backreferences in regular expressions
I don't know much about this code, but the approach described does fix the issue. I submitted a pull request for it: https://github.com/ruby/ruby/pull/5710 jeremyevans0 (Jeremy Evans)
08:27 PM Bug #18658 (Rejected): Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
Ubuntu 22.04 is being released soon and ships with openssl 3. As of now Ruby 2.7.x and 3.0.x are under core support and will not build on Ubuntu 22.04 with openssl (Ruby 3.1.x can compile).
When attempting to compile 3.0.3 on Ubuntu 2...
schneems (Richard Schneeman)
08:24 PM Bug #18657: IRB raises exception when stdout is a pipe
Can you please submit this as a pull request upstream?: https://github.com/ruby/irb/pulls jeremyevans0 (Jeremy Evans)
08:23 PM Bug #18657 (Closed): IRB raises exception when stdout is a pipe
When piping stdout to another process IRB fails:
```
lib/ruby/3.0.0/irb/input-method.rb:42:in `winsize': Inappropriate ioctl for device (Errno::ENOTTY)
```
For example:
```
echo n=1 | irb | cat
```
This bug was introduced...
pjones (Peter Jones)
07:32 PM Bug #18484 (Rejected): Fiber should return it self when blocked by IO
jeremyevans0 (Jeremy Evans)
07:32 PM Bug #18487 (Closed): Kernel#binding behaves differently depending on implementation language of items on the stack
Applied in changeset commit:git|343ea9967e4a6b279eed6bd8e81ad0bdc747f254.
----------
Raise RuntimeError if Kernel#binding is called from a non-Ruby frame
Check whether the current or previous frame is a Ruby frame in
call_trace_func be...
jeremyevans (Jeremy Evans)
07:31 PM Revision 343ea996 (git): Raise RuntimeError if Kernel#binding is called from a non-Ruby frame
Check whether the current or previous frame is a Ruby frame in
call_trace_func before attempting to create a binding for the frame.
Fixes [Bug #18487]
Co-authored-by: Alan Wu <[email protected]>
jeremyevans (Jeremy Evans)
07:11 PM Bug #18628: Link contributing is broken
The underlying problem here is that CONTRIBUTING.md is assuming the use of the RDoc `--page-dir` option, and neither ruby-doc.org nor docs.ruby-lang.org use that option, so you end up with a broken link. It seems best to me to remove th... jeremyevans0 (Jeremy Evans)
04:14 PM Revision 33b13bd9 (git): * 2022-03-25 [ci skip]
git[bot]
04:14 PM Revision 8008fb73 (git): Update formatting per feedback
Co-authored-by: Nobuyoshi Nakada <[email protected]> kddnewton (Kevin Newton)
04:14 PM Revision 8f6eaca2 (git): Delete ID from constant cache table if it becomes empty on ISEQ free
Co-authored-by: John Hawthorn <[email protected]> kddnewton (Kevin Newton)
04:14 PM Revision 62990858 (git): Finer-grained inline constant cache invalidation
Current behavior - caches depend on a global counter. All constant mutations cause caches to be invalidated.
```ruby
class A
B = 1
end
def foo
A::B # inline cache depends on global counter
end
foo # populate inline cache
foo # hit...
kddnewton (Kevin Newton)
04:10 PM Bug #18656 (Rejected): Documentation of Comparable Module: clamp method not mentioned in introduction
It's mentioned in the "What's Here" section: https://ruby-doc.org/core-3.1.1/Comparable.html#module-Comparable-label-What-27s+Here . The formatting looks off (which I'll fix). jeremyevans0 (Jeremy Evans)
02:54 PM Feature #18179: Add Math methods to Numeric
Out of all Math methods:
```
acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, cos, cosh, erf,
erfc, exp, frexp, gamma, hypot, ldexp, lgamma, log, log10, log2, sin,
sinh, sqrt, tan, tanh
```
I think for me only sqrt would m...
Eregon (Benoit Daloze)
07:13 AM Feature #18179: Add Math methods to Numeric
For the Complex Problem, maybe add an optional parameter like `:raise_on_complex` or something so when you try:
`(-2).sqrt` it returns complex,
but `(-2).sqrt(raise_on_complex: true)` makes the old Exception?
Hanmac (Hans Mackowiak)
04:44 AM Feature #18179: Add Math methods to Numeric
mrkn (Kenta Murata) wrote in #note-2:
> I'm negative to this proposal. I don't think `Math.sqrt` is the behavior or the property of a Numeric object. It is the positive square root function that maps from/to the set of non-negative rea...
duerst (Martin Dürst)
02:03 PM Revision 5f10bd63 (git): Add ISEQ_BODY macro
Use ISEQ_BODY macro to get the rb_iseq_constant_body of the ISeq. Using
this macro will make it easier for us to change the allocation strategy
of rb_iseq_constant_body when using Variable Width Allocation.
peterzhu2118 (Peter Zhu)
12:39 PM Revision 04591e1b (git): Update default gems list at 4c4a1e2035e08a627e71efd41d6654 [ci skip]
git[bot]
12:38 PM Revision 4c4a1e20 (git): [ruby/ostruct] v0.5.4
https://github.com/ruby/ostruct/commit/fe19de4644 Marc-Andre Lafortune
12:37 PM Revision ad575416 (git): [ruby/ostruct] Avoid aliasing `block_given?` for JRuby [Fixes #40]
https://github.com/ruby/ostruct/commit/14d04ff694 Marc-Andre Lafortune
11:39 AM Revision 137e69b4 (git): Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://gith...
dependabot[bot]
11:38 AM Revision 9deacb31 (git): Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)
---
updated-dependencies:
- dependency-name:...
dependabot[bot]
11:31 AM Revision 2ec82dd3 (git): Added dependabot configuration for actions dependencies
hsbt (Hiroshi SHIBATA)
11:22 AM Revision 39606a77 (git): [rubygems/rubygems] Maybe this is now fixed
https://github.com/rubygems/rubygems/commit/d9c442e54c deivid (David Rodríguez)
10:08 AM Revision e6c1db1d (git): [DOC] Refine flip-flop
nobu (Nobuyoshi Nakada)
04:23 AM Revision 8dc357fa (git): Add Yuta Saito (katei) as the platform maintainer of WebAssembly/WASI
mame (Yusuke Endoh)
04:16 AM Revision 1bb9e42f (git): extlibs.rb: Add fallback `Colorize`
To get rid of an unnecessary dependency for the case using
in other repositories.
nobu (Nobuyoshi Nakada)
04:16 AM Revision 9ed6875f (git): extlibs.rb: Enclose `Vars` in `ExtLibs` class
To get rid of an unnecessary top-level constant for the case using
as a library.
nobu (Nobuyoshi Nakada)
04:16 AM Revision 247f8ecf (git): extlibs.rb: Extract ExtLibs#process
For the case using this script as a library.
- `ExtLibs#process` reads and processes an extlibs file.
- `ExtLibs#process_under` processes all extlibs files under the
given directory.
- `Extlibs.run` parses `ARGV` and lets an instance p...
nobu (Nobuyoshi Nakada)
03:05 AM Feature #18462: Proposal to merge WASI based WebAssembly support
Just for record: https://github.com/ruby/ruby/pull/5702 mame (Yusuke Endoh)
12:48 AM Bug #14103 (Closed): Regexp absense operator has no chance to ^C
Fixed at 9112cf4ae7f7ea8ab33c282aa02eec812421aeab. mame (Yusuke Endoh)
12:47 AM Revision 9112cf4a (git): regint.h: Reduce the frequency of rb_thread_check_ints
edc8576a65b7082597d45a694434261ec3ac0d9e checks interrupt at every
backtrack, which brought significant overhead.
This change makes the check only once every 128 backtracks.
mame (Yusuke Endoh)
12:21 AM Bug #17382: Segfault in String#inspect
@palkan thank you for the reproducer. That hepls us a lot.
Also thank you @wanabe. I'm :+1: for the "alternative" approach in #note-11.
shyouhei (Shyouhei Urabe)

03/23/2022

11:59 PM Revision 1357b147 (git): Now all extension libraries must consider the ABI header
nobu (Nobuyoshi Nakada)
11:34 PM Revision cccfd653 (git): [DOC] Remove mis-synced bundler directory
nobu (Nobuyoshi Nakada)
10:34 PM Revision d9dd88a6 (git): [rubygems/rubygems] Avoid crash in test teardown
If an exception happens during test `setup` method, the `teardown`
method will still be run for cleaning up, but if some other errors
occurs then, it will hide the original error.
This is happening sometimes in CI where restoring origin...
deivid (David Rodríguez)
10:29 PM Bug #18511 (Closed): ruby in infinite loop consuming 100% CPU
jeremyevans0 (Jeremy Evans)
09:34 PM Bug #18553: Memory leak on compiling method call with kwargs
I did some testing and can confirm this is still a bug in the master branch. From my testing, this isn't related to not freeing the `struct rb_callinfo_kwarg`, it's because compiling a keyword argument method call causes two imemo_calli... jeremyevans0 (Jeremy Evans)
09:16 PM Bug #18656 (Rejected): Documentation of Comparable Module: clamp method not mentioned in introduction
From the comparable docs ( https://ruby-doc.org/core-3.1.1/Comparable.html ): "Comparable uses <=> to implement the conventional comparison operators (<, <=, ==, >=, and >) and the method between?". clamp is not mentioned.
steenslag (siep korteling)
08:32 PM Revision 8b05b5a0 (git): * 2022-03-24 [ci skip]
git[bot]
08:32 PM Revision 13481c1e (git): [rubygems/rubygems] Improve RDoc setup
Completely exclude the full bundler folder. The actual Bundler docs are
excluded anyways by ruby-core (by bundler/lib/bundler/.document,
bundler/lib/bundler/man/.document), I guess because bundler docs are not
in RDoc format?
Running RD...
deivid (David Rodríguez)
05:07 PM Bug #14103 (Open): Regexp absense operator has no chance to ^C
This change degrades the performance of regular expression matching when frequent backtracking occurs.
Before edc8576a65b7082597d45a694434261ec3ac0d9e
```
$ time ./miniruby -ve '/^a*b?a*$/ =~ "a" * 20000 + "x"'
ruby 3.2.0dev (202...
mame (Yusuke Endoh)
02:56 PM Bug #18635 (Closed): Enumerable#inject without block/symbol will return values or raise LocalJumpError
Applied in changeset commit:git|8f1c69f27ce6b3f5ed1c1cf8d2aa62aa9701d636.
----------
Raise ArgumentError when calling Enumberable#inject without block or arguments
Previously, this would work as expected if the enumerable contained
0 o...
jeremyevans (Jeremy Evans)
02:41 PM Bug #18635: Enumerable#inject without block/symbol will return values or raise LocalJumpError
I think either is fine.
I think some methods raise LocalJumpError early, even if they didn't try to use the block yet, so LocalJumpError would also be reasonable.
My view is the general form of #inspect is the block version, and the ...
Eregon (Benoit Daloze)
02:55 PM Revision 8f1c69f2 (git): Raise ArgumentError when calling Enumberable#inject without block or arguments
Previously, this would work as expected if the enumerable contained
0 or 1 element, and would raise LocalJumpError otherwise. That
inconsistent behavior is likely to lead to bugs.
Fixes [Bug #18635]
jeremyevans (Jeremy Evans)
02:38 PM Feature #17837: Add support for Regexp timeouts
mame (Yusuke Endoh) wrote in #note-40:
> @naruse conceived the idea. TBH, I am unsure if it will work well.
@naruse Could you explain why you think Regexp::TimeoutError should inherit from Timeout::Error?
And give an example from ex...
Eregon (Benoit Daloze)
12:21 AM Feature #17837: Add support for Regexp timeouts
Eregon (Benoit Daloze) wrote in #note-38:
> I think it's not a good idea to have Regexp::TimeoutError < Timeout::Error.
@naruse conceived the idea. TBH, I am unsure if it will work well. But I think it is good to try it first, and we...
mame (Yusuke Endoh)
02:31 PM Revision d32fa986 (git): [rubygems/rubygems] Make `rescue` clause more specific
This is hiding a real bundler issue as a "network error". It's more
helpful to get a proper bug report, with stack trace and so on.
So stop re-raising errors when evaluating unmarshaled responses as
network errors, and only raise Mars...
deivid (David Rodríguez)
01:47 PM Feature #18566 (Closed): Merge `io-wait` and `io-nonblock` gems into core IO
Closing in favor of [Feature #18655], since `wait_readable` and `wait_writable` are really the two method I personally care about.
I suggest people who feel strongly about other methods from `io-wait / io-nonblock` open individual fea...
byroot (Jean Boussier)
01:45 PM Feature #18655 (Closed): Copy `IO#wait_readable`, `IO#wait_writable`, `IO#wait_priority` and `IO#wait` into core.
Extracted from [Feature #18566].
The decision was made to consider the methods from `io-wait` and `io-nonblock` one by one.
I think `wait_readable` and `wait_writeable` should be fairly non-controversial. They're quite essential to...
byroot (Jean Boussier)
01:17 PM Bug #18651: oob access in CP51932 -> CP50220 transcoder
As this converter seems to convert JIS0201 to JIS0208 as possible, this part would be intentional.
nobu (Nobuyoshi Nakada)
10:52 AM Bug #18651: oob access in CP51932 -> CP50220 transcoder
Accessing outside the table is definitely a bug.
Before that, SS2+0xA1 which should be JIS0201 is converted to JIS0208.
nobu (Nobuyoshi Nakada)
06:42 AM Feature #18653: Use RE2 for Regexp
duerst (Martin Dürst) wrote in #note-3:
> Aren't there still regular expressions that RE2 can't handle but that may be used as ReDoS
Yes there are. According to TruffleRuby's approach, the interpreter warns a Regexp that RE2 can't ha...
mame (Yusuke Endoh)
02:56 AM Feature #18653: Use RE2 for Regexp
mame (Yusuke Endoh) wrote in #note-2:
> My original motivation was a security measure against ReDoS. If RE2 worked well, we might not have to introduce Regexp.timeout= (#17837).
Aren't there still regular expressions that RE2 can't...
duerst (Martin Dürst)
02:47 AM Feature #18653: Use RE2 for Regexp
vo.x (Vit Ondruch) wrote in #note-1:
> Could you please elaborate what was the motivation for this experiment?
My original motivation was a security measure against ReDoS. If RE2 worked well, we might not have to introduce Regexp.tim...
mame (Yusuke Endoh)
12:37 AM Bug #18649: Enumerable#first breaks out of the incorect block when across threads
Looks like this bug started in Ruby 2.2:
```
$ ruby21 -v t/t55.rb
ruby 2.1.9p490 (2016-03-30 revision 54437) [x86_64-openbsd]
:before
t/t55.rb:34:in `join': unexpected break (LocalJumpError)
from t/t55.rb:34:in `foo'
...
jeremyevans0 (Jeremy Evans)
12:25 AM Bug #18641: UTF-16 surrogate pairs
noraj (Alexandre ZANNI) wrote in #note-3:
> As far as I understand, it's not possible to have a native UTF-16 string it will always be UTF-8 converted to UTF-16 so my only option to write surrogates directly is to use pack?
Or writ...
duerst (Martin Dürst)

03/22/2022

08:55 PM Bug #18635: Enumerable#inject without block/symbol will return values or raise LocalJumpError
The call-seq for inject does not show usage without an argument or block, so I think it is reasonable to consider this as a bug, and it seems more likely to be a code bug than a doc bug. It's problematic that no error is raised when cal... jeremyevans0 (Jeremy Evans)
08:42 PM Feature #18653: Use RE2 for Regexp
Could you please elaborate what was the motivation for this experiment? Was it to evaluate compatibility? Or possible speed gains? vo.x (Vit Ondruch)
08:51 AM Feature #18653 (Rejected): Use RE2 for Regexp
I have tried to use [RE2](https://github.com/google/re2) as Ruby's regular expression engine. As it turns out, it seems difficult to merge it to Ruby right now. But I'd like to share some of my findings for those who may consider doing t... mame (Yusuke Endoh)
08:26 PM Feature #18654 (Closed): Enhancements to prettyprint
This issue mirrors the pull request open at https://github.com/ruby/prettyprint/pull/3.
This pull request adds a bunch of new functionality to the PrettyPrint class. The goal is to enhance the PrettyPrint class enough to support all o...
kddnewton (Kevin Newton)
07:51 PM Revision 0140e6c4 (git): [DOC] Enhanced RDoc for String (#5685)
Treats:
#chars
#codepoints
#each_char
#each_codepoint
#each_grapheme_cluster
#grapheme_clusters
Also, corrects a passage in #unicode_normalize that mentioned module UnicodeNormalize, whose doc (:nodoc:, actually...
burdettelamar (Burdette Lamar)
06:33 PM Bug #18643: test-bundler failed on ruby_3_1 CI
> https://github.com/rubygems/rubygems/pull/5410
The PR was merged in rubygems.
jaruga (Jun Aruga)
10:26 AM Bug #18643: test-bundler failed on ruby_3_1 CI
I am working on this PR to fix this test considering the case that the latest Bundler version on RubyGems is newer than the Bundler bundled in Ruby.
https://github.com/rubygems/rubygems/pull/5410
jaruga (Jun Aruga)
03:58 PM Revision 26aff374 (git): Need to reconfigure and rebuild everything when abi.h changed
nobu (Nobuyoshi Nakada)
03:39 PM Bug #18650: C Extensions Can Segmentation Fault on Ruby 2.7 Compiled with --with-jemalloc and --enabled-shared
shyouhei (Shyouhei Urabe) wrote in #note-1:
> Setting status to closed. Don't get confused, this is a normal process. The bug is fixed -- now is the time for back porting.
OK, that is fine, but shouldn't the "Backport" field for 2....
eviljoel (evil joel)
12:46 AM Bug #18650 (Closed): C Extensions Can Segmentation Fault on Ruby 2.7 Compiled with --with-jemalloc and --enabled-shared
Setting status to closed. Don't get confused, this is a normal process. The bug is fixed -- now is the time for back porting. shyouhei (Shyouhei Urabe)
03:01 PM Revision 2b01d7f2 (git): * 2022-03-23 [ci skip]
git[bot]
03:01 PM Revision 1ff174bf (git): [rubygems/rubygems] Fix a test for `bin/bundle update --bundler` to pass on ruby/ruby.
Consider the case that the latest Bundler version on RubyGems is higher than
the `system_bundler_version` (= `Bundler::VERSION`) in `make test-bundler` on
ruby/ruby.
See <https://bugs.ruby-lang.org/issues/18643>.
https://github.com/rub...
Jun Aruga
01:55 PM Feature #17837: Add support for Regexp timeouts
mame (Yusuke Endoh) wrote in #note-37:
> BTW, we agreed that we do not introduce `Regexp.backtrack_limit=`. It would be "deterministic" for one Ruby version, which is indeed good. However, it would not be "deterministic" over mutiple Ru...
Dan0042 (Daniel DeLorme)
10:12 AM Feature #17837: Add support for Regexp timeouts
mame (Yusuke Endoh) wrote in #note-37:
> To reuse the code that `rescue`s `Timeout::Error`, `Regexp::TimeoutError` should inherit from `Timeout::Error`. For the sake, we need to make timeout gem built-in.
I think it's not a good idea...
Eregon (Benoit Daloze)
06:45 AM Feature #17837: Add support for Regexp timeouts
I discussed this issue with some committers including @matz, @nobu, @akr, and @naruse. In light of the recent increase in ReDoS reports, we agreed as follows.
We will introduce the following new APIs.
* `Regexp.timeout` and `Regexp...
mame (Yusuke Endoh)
01:43 PM Feature #18634 (Closed): Variable Width Allocation: Arrays
Applied in changeset commit:git|a51f30c6712798fc07e57f692d0d0e5ccc59acf1.
----------
[Feature #18634] Implement Arrays on Variable Width Allocation
This commit implements arrays on Variable Width Allocation. This allows
longer arrays t...
peterzhu2118 (Peter Zhu)
01:42 PM Revision a51f30c6 (git): [Feature #18634] Implement Arrays on Variable Width Allocation
This commit implements arrays on Variable Width Allocation. This allows
longer arrays to be embedded (i.e. contents directly follow the object
header) which improves performance through better cache locality.
peterzhu2118 (Peter Zhu)
12:12 PM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
mame (Yusuke Endoh) wrote in #note-16:
> @akr was against to make io/nonblock built-in because it is a old-style interface for nonblock IOs. He recommended `IO#read_nonblock` and `IO#write_nonblock` instead of the gem.
io/nonblock is...
Eregon (Benoit Daloze)
12:02 PM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
Those methods have been in stdlib for a while, I don't think moving them to core is an issue (their name and behavior is established already).
And I think renaming is not on the table either for compatibility (too high effort/too low ga...
Eregon (Benoit Daloze)
11:03 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
My personal opinion is that `wait_readable` and `wait_writable` should be in core IO. All the rest can stay in the gem.
I'll try to submit a PR and feature request for that soon.
byroot (Jean Boussier)
05:23 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
> wait_readable and wait_writable are maybe okay.
> ...
For reading `MSG_OOB` data.
> The name ready? sounds weird because it does not say "what is ready". Maybe renaming is needed. (ready_to_read? or what not?)
Some of this met...
ioquatix (Samuel Williams)
05:20 AM Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO
This issue was discussed at the dev meeting.
The motivating issue of this proposal (the dependency issue of io-wait / net-protocol / net-smtp) is already solved by removing the dependency from net-protocol to io-wait. If so, there is ...
mame (Yusuke Endoh)
10:52 AM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
Yes, that's correct, and that code would also break when migrating to other form of delegations (if not changing `bar` too).
I don't understand why we had these semantics in the first place, I think there are hard to understand for an...
Eregon (Benoit Daloze)
05:31 AM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
As far as I understand, this change will break the following code:
```
def target(a:)
p a
end
# after the patch, ruby2_keywords is requried here
def bar(*args)
target(*args)
end
ruby2_keywords def foo(*args)
bar(*ar...
mame (Yusuke Endoh)
05:35 AM Misc #18652 (Closed): DevMeeting-2022-04-21
# The next dev meeting
**Date: 2022/04/21 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-04-21.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bu...
mame (Yusuke Endoh)
05:35 AM Misc #18591 (Closed): DevMeeting-2022-03-17
mame (Yusuke Endoh)
02:24 AM Revision 414ad771 (git): [DOC] re-count test suites run by `make check` [ci skip]
nobu (Nobuyoshi Nakada)
12:49 AM Revision bbd29fe0 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)

03/21/2022

07:58 PM Revision c129b611 (git): [DOC] Use RDoc inclusions in string.c (#5683)
As @peterzhu2118 and @duerst have pointed out, putting string method's RDoc into doc/ (which allows non-ASCII in examples) makes the "click to toggle source" feature not work for that method.
This PR moves the primary method doc back in...
burdettelamar (Burdette Lamar)
07:30 PM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
Sorry if the description is confusing. This is a general timeout for all non-blocking IO operations, specified per IO instance. ioquatix (Samuel Williams)
05:11 PM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
I guess one way to express it is this new IO#timeout would apply to: blocking IO methods on non-blocking IO instances. Eregon (Benoit Daloze)
04:59 PM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
I'm still confused, in which cases does this timeout apply?
Only non-blocking IO, right?
The issue title says:
> Introduce general `IO#timeout` and `IO#timeout=`for all (non-)blocking operations.
The description says:
> ...
And ...
Eregon (Benoit Daloze)
03:52 PM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
> I'm not sure a timeout per IO instance makes sense,
I think it does for various network clients. See for example [`net-protocol`'s `BufferedIO` class](https://github.com/ruby/net-protocol/blob/088e52609a8768c1e6156fa6c5609bbfadd4432...
byroot (Jean Boussier)
04:48 PM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
Testing Bundler seems to use a Gemfile, so I guess we can just make it point to my branch for testing: https://github.com/ruby/ruby/pull/5684 Eregon (Benoit Daloze)
03:41 PM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
Eregon (Benoit Daloze) wrote in #note-8:
> @jeremyevans0 There is a good chance this is missing `ruby2_keywords` calls in RSpec, could you try with https://github.com/rspec/rspec-mocks/pull/1464?
I'm not sure how to get CI to run wit...
jeremyevans0 (Jeremy Evans)
03:36 PM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
@jeremyevans0 There is a good chance this is missing `ruby2_keywords` calls in RSpec, could you try with https://github.com/rspec/rspec-mocks/pull/1464? Eregon (Benoit Daloze)
03:26 PM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
This cannot be merged yet as it currently causes a couple errors in the Bundler specs:
* https://github.com/rubygems/bundler/blob/master/spec/bundler/friendly_errors_spec.rb#L105
* https://github.com/rubygems/bundler/blob/master/spec...
jeremyevans0 (Jeremy Evans)
02:04 PM Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter
From the [dev meeting log](https://hackmd.io/koJLPz4eRXKzaaDvVqji7w#Bug-18625-ruby2_keywords-does-not-unmark-the-hash-if-the-receiving-method-has-a-rest-parameter-eregon):
Conclusion:
matz: I think it is good to fix
@mame: It ...
Eregon (Benoit Daloze)
04:40 PM Revision 1fd1f7bb (git): Fix Markdown syntax in spec/README.md
Eregon (Benoit Daloze)
04:37 PM Revision 9f828188 (git): [DOC] Move old NEWS files to a separate directory
nobu (Nobuyoshi Nakada)
04:32 PM Revision 35cc7060 (git): * 2022-03-22 [ci skip]
git[bot]
04:32 PM Revision 92ef73a9 (git): [ruby/rdoc] Expand the enclosing tree of the current file
https://github.com/ruby/rdoc/commit/f9f90ef2ff nobu (Nobuyoshi Nakada)
04:32 PM Revision dafe5c13 (git): [ruby/rdoc] Fold files in the page directory
https://github.com/ruby/rdoc/commit/b7b4cdab6c nobu (Nobuyoshi Nakada)
04:32 PM Revision 034c0977 (git): [ruby/rdoc] Add test_generate_page
https://github.com/ruby/rdoc/commit/c870284163 nobu (Nobuyoshi Nakada)
04:03 PM Feature #18619: Reverse the order of GC Compaction cursor movement
eightbitraptor (Matthew Valentine-House) wrote in #note-3:
> Thanks for the quick feedback folks.
> ...
After fixing the bug in heapviz. I determined that there was a bug in the way we were handling unmoveable objects that resulted in ...
eightbitraptor (Matt V-H)
01:35 PM Feature #17548: Need simple way to include symlink directories in Dir.glob
Bump.
Today I just came across a case where I wanted to use this feature.
@nobu according to dev meeting notes you said "will commit", which implies to me this was already coded? Not sure.
Dan0042 (Daniel DeLorme)
07:54 AM Bug #17529 (Closed): Ractor Segfaults with GC enabled
Applied in changeset commit:git|a72b7b898c69a116d754d599e8bb061761015255.
----------
merge revision(s) d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529]
alen should be actions ...
nagachika (Tomoyuki Chikanaga)
07:53 AM Bug #17529: Ractor Segfaults with GC enabled
ruby_3_0 a72b7b898c69a116d754d599e8bb061761015255 merged revision(s) d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa. nagachika (Tomoyuki Chikanaga)
06:47 AM Bug #17529: Ractor Segfaults with GC enabled
I guess that the btest failure of ruby_3_0 branch on icc-x64 env may be fixed by `git cherry-pick d0d6227a0da5925acf946a09191f172daf53baf2 fff1edf23ba28267bf57097c269f7fa87530e3fa`.
(An example of this failure is http://rubyci.s3.amazon...
wanabe (_ wanabe)
12:32 AM Bug #17529: Ractor Segfaults with GC enabled
I confirmed with 3.0.0 that the issue is reproducible.
According to `git bisect`, it seems to be fixed in fff1edf23ba28267bf57097c269f7fa87530e3fa and d0d6227a0da5925acf946a09191f172daf53baf2.
```
$ (git checkout origin/ruby_3_0 && ...
wanabe (_ wanabe)
07:52 AM Revision a72b7b89 (git): merge revision(s) d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529]
alen should be actions number on ractor_select()
alen was number of rs, but it should be actions number
(taking ractors + receiving + yielding).
---
ractor.c | 13 ++++++-------
1 file changed, 6...
nagachika (Tomoyuki Chikanaga)
07:46 AM Revision 1ea12cf5 (git): update common.mk dependency to follow up the previous commit.
nagachika (Tomoyuki Chikanaga)
07:32 AM Revision 1a1701c0 (git): class.c: include gc.h to suppress 'implicit declaration of function' on some environments.
nagachika (Tomoyuki Chikanaga)
07:08 AM Bug #18627: segmentation fault when doing a lot of redundant Module#include
ruby_3_0 e0146e6cc8f3578b02ad5f228f86bf1aef566d16 merged revision(s) 97426e15d721119738a548ecfa7232b1d027cd34. nagachika (Tomoyuki Chikanaga)
06:35 AM Revision e0146e6c (git): merge revision(s) 97426e15d721119738a548ecfa7232b1d027cd34: [Backport #18627]
[Bug #18627] Fix crash when including module
During lazy sweeping, the iclass could be a dead object that has not yet
been swept. However, the chain of superclasses of the iclass could
already have been swept (an...
nagachika (Tomoyuki Chikanaga)
06:27 AM Bug #16922: single quote should be escaped in xml
ruby_3_0 branch includes the changeset git|ddd9704ae9bf884d867b6f57a16c095a79393fff. nagachika (Tomoyuki Chikanaga)
12:51 AM Bug #18651 (Closed): oob access in CP51932 -> CP50220 transcoder
Hello,
while working on a port of Japanese transcoder, I found a potential out of bounds access:
https://github.com/ruby/ruby/blob/73541cdc2f192f856ab19781472cdccbf9c21f71/enc/trans/iso2022.trans#L465
```tbl0208``` has 126 chars
in...
ahorek (Pavel Rosický)

03/20/2022

02:24 PM Feature #18626 (Rejected): 注釈付き代入演算子 ()= の提案
Very interesting proposal both syntax-wise and semantic-wise. But I have decided that we are not going to introduce any kind of syntax annotation in the language, sorry.
Matz.
文法的にも意味論的にも大変興味深い提案ですが、Ruby言語にいかなる形であれ型宣言や型注釈を導入するつもりはあ...
matz (Yukihiro Matsumoto)
01:52 PM Bug #17196: Segmentation Fault with Socket#close in Ractors
I tried to reproduce the problem at hand, but it seems to have already been fixed in the current master.
According to git bisect, it seemed to be fixed by #18117 https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/b...
wanabe (_ wanabe)
06:42 AM Revision 73541cdc (git): [ruby/rdoc] Allow method source code to scroll [ci skip]
https://github.com/ruby/rdoc/commit/1bb0496c53 nobu (Nobuyoshi Nakada)
06:38 AM Revision 20ad09e5 (git): [ruby/rdoc] Use the custom style `details summary` only in `nav-section`
https://github.com/ruby/rdoc/commit/7736d3a89c nobu (Nobuyoshi Nakada)
05:28 AM Revision 7b3fdcdf (git): * 2022-03-20 [ci skip]
git[bot]
05:26 AM Revision 6946263a (git): [DOC] make internally used classes/methods nodoc
Empty class documents are generated even with `:stopdoc:`. nobu (Nobuyoshi Nakada)
 

Also available in: Atom