Project

General

Profile

Activity

From 01/11/2022 to 01/17/2022

01/17/2022

11:50 PM Feature #18481: Porting YJIT to Rust (request for feedback)
Exciting stuff! This doesn't need to turn into an "all things Rust" thread, but I wanted to highlight some Rust related stuff I'm working on bringing to the Ruby community. Hopefully it's helpful to some.
- [Cargo support in Rubygems fo...
ianks (Ian Ker-Seymer)
03:21 PM Feature #18481: Porting YJIT to Rust (request for feedback)
Thank you for chiming in @Matz :)
We will try to work with the people doing the packages/ports to help them resolve problems if there are any.
We are currently still early in our investigation of the Rust port. I am curious to know...
maximecb (Maxime Chevalier-Boisvert)
11:15 PM Feature #18494: [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically
> https://bugs.ruby-lang.org/issues/18494

Thanks both for the comments.

"ko1 (Koichi Sasada)" wrote:
> Some `RUBY_GC_...` vars do not affect correctly because they are used only on setup.
> We need to document which vars can be ...
normalperson (Eric Wong)
09:11 AM Feature #18494: [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically
> Some RUBY_GC_... vars do not affect correctly because they are used only on setup.
Should we allow to change them at runtime through some `::GC` API? I could see some automatic/dynamic GC tuning gems being implemented using these AP...
byroot (Jean Boussier)
01:38 AM Feature #18494: [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically
Some `RUBY_GC_...` vars do not affect correctly because they are used only on setup.
We need to document which vars can be modified dynamically.
ko1 (Koichi Sasada)
01:08 AM Feature #18494 (Open): [RFC] ENV["RUBY_GC_..."]= changes GC parameters dynamically
This is intended to give Ruby application developers a way to to
improve the out-of-the-box experience for end users running
tools written in Ruby. In most cases, end users are not and
cannot be expected to know how to tune the G...
normalperson (Eric Wong)
10:23 PM Bug #18495: `LC_ALL=C.UTF-8` sets `Encoding.default_external` to `Encoding::US_ASCII`
> This sounds like a bug of the operating system.
Yes that's what I figured after digging into the code.
> ...
Indeed, it doesn't exist on OSX as far as I can tell, and likely wasn't present on the initial reporter system (Fedora, ...
byroot (Jean Boussier)
09:35 PM Bug #18495: `LC_ALL=C.UTF-8` sets `Encoding.default_external` to `Encoding::US_ASCII`
This sounds like a bug of the operating system.
On Fedora 33:
```
$ env LC_ALL=C.UTF-8 locale
LANG=en_US.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="...
Eregon (Benoit Daloze)
12:23 PM Bug #18495 (Closed): `LC_ALL=C.UTF-8` sets `Encoding.default_external` to `Encoding::US_ASCII`
Closing since I now believe it's up to the system to properly define locales. Apologies for the noise. byroot (Jean Boussier)
11:53 AM Bug #18495: `LC_ALL=C.UTF-8` sets `Encoding.default_external` to `Encoding::US_ASCII`
So I dug into the code a bit, and Ruby seem to delegate most of that to the system with `nl_langinfo`
And reading more into it, it seems that `C.UTF-8` while common, isn't POSIX, and my system seem to behave the same:
```bash
$ en...
byroot (Jean Boussier)
11:42 AM Bug #18495 (Closed): `LC_ALL=C.UTF-8` sets `Encoding.default_external` to `Encoding::US_ASCII`
Original bug report on Bootsnap: https://github.com/Shopify/bootsnap/issues/395#issuecomment-1014421271
```bash
$ env LC_ALL=en_US.UTF-8 ruby -e 'p Encoding.default_external'
#<Encoding:UTF-8>
$ env LC_ALL=C.UTF-8 ruby -e 'p Encodi...
byroot (Jean Boussier)
08:39 PM Revision eb98275c (git): * 2022-01-18 [ci skip]
git[bot]
08:39 PM Revision c0d18a1a (git): [ruby/erb] Revert "Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7)"
This reverts commit https://github.com/ruby/erb/commit/5133efa06f0603ae79292f3b2b942957bc8a442e.
While we already handled this deprecation in many libraries, we noticed
that some (e.g. sprockets) relied on the format of `ERB.version` an...
k0kubun (Takashi Kokubun)
04:25 PM Feature #18408: Allow pattern match to set instance variables
Dan0042 (Daniel DeLorme) wrote in #note-13:
> @palkan Wow, thank you for blowing my mind.
> ...
The examples demonstrate a hypothetical situations if we allow binding ivars.
However, we can just drop `@` and get the same behaviour for...
palkan (Vladimir Dementyev)
02:54 PM Feature #18408: Allow pattern match to set instance variables
@palkan Wow, thank you for blowing my mind.
However, is that behavior documented? I can't find it in the docs. I mean, it seems to me that it's relying on the undefined behavior discussed above, so by definition it's not guaranteed to...
Dan0042 (Daniel DeLorme)
07:23 AM Feature #18408: Allow pattern match to set instance variables
Dan0042 (Daniel DeLorme) wrote in #note-11:
> There are a few possible ways to solve these problems right?
> ...
So, we need to scan the whole pattern, reserver stack locations for all *mentioned* variables and resolve them when match ...
palkan (Vladimir Dementyev)
04:09 AM Feature #18408: Allow pattern match to set instance variables
ktsj (Kazuki Tsujimoto) wrote in #note-8:
> If assignment to instance variables (or variables other than local variables) is allowed in pattern matching, there are problems such as:
> ...
There are a few possible ways to solve these pr...
Dan0042 (Daniel DeLorme)
02:19 PM Feature #18491: Drop support for IBM AIX and HP UX
I see. Thanks @ngoto! I'll drop support for HP-UX and keep support for AIX. peterzhu2118 (Peter Zhu)
01:01 PM Feature #18491: Drop support for IBM AIX and HP UX
About HP-UX:
Ruby already dropped support for IA-64 (Itanium) CPU architecture ( Feature #15894 ) on which HP-UX runs.
About older architecture, PA-RISC, end of support date of PA-RISC servers were 2013. (References: https://en.wikiped...
ngoto (Naohisa Goto)
01:53 PM Feature #18490: MakeMakefile.pkg_config should accept multiple options
Pinging @nobu for feedback as he is the primary maintainer of mkmf mdalessio (Mike Dalessio)
12:56 PM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
Yes, this is a fix up of b680b632e5b8. nobu (Nobuyoshi Nakada)
12:49 PM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
@nobu Thanks for the fix. What's the required backport on this, only 3.1? byroot (Jean Boussier)
12:24 PM Bug #18489 (Closed): Segmentation fault with ruby 3.1.0 in `active_decorator`
Applied in changeset commit:git|f3c77bd480834f2835fe6fef5c0475336248dbde.
----------
Fix the placeholder subclass entry skipping [Bug #18489]
nobu (Nobuyoshi Nakada)
10:45 AM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
Thank you very much!!
I can confirm that this issue is fixed.
t_mimura (Tomohiko Mimura)
12:23 PM Revision f3c77bd4 (git): Fix the placeholder subclass entry skipping [Bug #18489]
nobu (Nobuyoshi Nakada)
12:09 PM Revision e53962b9 (git): [ruby/irb] Use require_relative to load extensions/commands
https://github.com/ruby/irb/commit/d5060f7668 st0012 (Stan Lo)
12:05 PM Bug #18429: Configure ruby-3.0.3 on Solaris 10 Unknown keyword 'URL' in './ruby.tmp.pc'
Could you please show the full output of `gcc -v` and check the "Configured with:" line?
On Intel Solaris, it seems that gcc configured with `--with-gnu-as` is needed to compile recent Ruby versions. i.e. gcc configured with `--withou...
ngoto (Naohisa Goto)
10:43 AM Revision 1a0e0e89 (git): lldb_cruby.py: support RVARGC on T_CLASS [ci skip]
nobu (Nobuyoshi Nakada)
08:11 AM Revision 549af505 (git): [ruby/net-http] Remove redundant MJIT condition
ref https://github.com/ruby/ruby/commit/da0f67c0383f57129c7a76255964b1ee739d8db8
https://github.com/ruby/net-http/commit/dbeb5f1c8f
znz (Kazuhiro NISHIYAMA)
06:32 AM Feature #17490: Rename RubyVM::MJIT to RubyVM::JIT
The revert was proposed and implemented at https://bugs.ruby-lang.org/issues/18349. k0kubun (Takashi Kokubun)
06:00 AM Feature #17490: Rename RubyVM::MJIT to RubyVM::JIT
MEMO: This feature reverted at https://github.com/ruby/ruby/commit/1a63468831524f68e73cbb068071652c6486cfc6 without major release. znz (Kazuhiro NISHIYAMA)
05:56 AM Revision b4e362d4 (git): lib/drb/drb.rb: Prevent a "warning: assigned but unused variable"
... by replacing the variable with a underscore-prefixed name mame (Yusuke Endoh)
05:43 AM Misc #18493 (Closed): zverok as a commiter
I've finished to setup zverok's accounts in ruby-lang.org. hsbt (Hiroshi SHIBATA)
05:43 AM Misc #18488 (Closed): Add katei as a commiter
I've finished to setup katei's accounts in ruby-lang.org. hsbt (Hiroshi SHIBATA)
05:23 AM Revision 81b604fb (git): [ruby/irb] Use require_relative to require lib files
1. `require` can mislead Ruby to load system irb's files and cause
constant redefined warnings as other code loads the same module/class
from lib folder.
2. Most files already use `require_relative`.
https://github.com/ruby/irb/co...
st0012 (Stan Lo)
04:49 AM Revision 804a7149 (git): Replace to RBOOL macro
S_H_ (Shun Hiraoka)
01:39 AM Revision 35158673 (git): Removed skip alias in test suite
hsbt (Hiroshi SHIBATA)
01:17 AM Revision ac1bb6b5 (git): [ruby/net-http] Rename `D` to `debug` in `Net::HTTP`
Renames `D` to `debug` in `Net::HTTP` and introduces an alias for
backwards compatibility. This was done for readability reasons, in that
`D` did not clearly reflect what the method was doing and can cause some
confusion.
https://github...
baweaver (Brandon Weaver)

01/16/2022

09:25 PM Feature #18438: Add `Exception#additional_message` to show additional error information
`detailed_message` maybe? (also the term used in https://bugs.ruby-lang.org/issues/18296#note-20)
IMHO `description` is fine and a good term in relation to `message`.
`full_message` is a weird name to me because it includes the backt...
Eregon (Benoit Daloze)
04:58 PM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
Does https://github.com/ruby/ruby/pull/5455 fix it? nobu (Nobuyoshi Nakada)
02:19 PM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
I found the minimal reproduction code.
```ruby
M = Module.new
Object.new.extend(M)
GC.start
M.include(Module.new)
```
For example, you can reproduce this by using active_decorator as follows.
```ruby
module UserDecorator
...
t_mimura (Tomohiko Mimura)
06:01 AM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
We had confirmed that the problem occurs on Linux OS using Docker Container (ruby:3.1.0-alpine3.14, cimg/ruby:3.1.0-browsers), but now we have confirmed that it also occurs on mac OS.
A crash report is attached for additional informatio...
t_mimura (Tomohiko Mimura)
04:56 PM Revision ab11cafe (git): Parenthesize the macro argument
nobu (Nobuyoshi Nakada)
03:26 PM Revision 825e2ffb (git): * 2022-01-17 [ci skip]
git[bot]
03:26 PM Revision 28fad776 (git): Tweak IO documentation for `IO.write('|cmd')` and so on [ci skip]
pocke (Masataka Kuwabara)
02:47 PM Revision 2dff82bf (git): `O_NONBLOCK` is not always a preprocessor constant on all platforms
nobu (Nobuyoshi Nakada)
01:43 PM Revision 4cd6fd33 (git): Weakmap failure is still pending
nobu (Nobuyoshi Nakada)
01:09 PM Revision 15507568 (git): [ruby/reline] Use "Bundler.require" to load Gemfile.lock in multiline_repl
https://github.com/ruby/reline/commit/492bee257a aycabta (aycabta .)
01:09 PM Revision f5e39137 (git): [ruby/reline] Fix incremental search to work correctly even if not last line
https://github.com/ruby/reline/commit/21d75f6d4c aycabta (aycabta .)
01:09 PM Revision 921ff739 (git): [ruby/reline] Insert newline in the middle of buffer just after dialog
https://github.com/ruby/reline/commit/0c76631132 aycabta (aycabta .)
01:09 PM Revision d1e078e7 (git): [ruby/reline] Add a wait for a test because sometimes fails
https://github.com/ruby/reline/commit/da4a7aa932 aycabta (aycabta .)
01:09 PM Revision 2bc6b07a (git): [ruby/reline] Combine common logic into one
https://github.com/ruby/reline/commit/5db9738f17 aycabta (aycabta .)
01:09 PM Revision f94a2adf (git): [ruby/reline] Clear dialog when adding new line to end of buffer
https://github.com/ruby/reline/commit/7d38454327 aycabta (aycabta .)
12:35 PM Revision 5ec34504 (git): Remove outdated skips
nobu (Nobuyoshi Nakada)
12:35 PM Revision a4a7bf2a (git): Use pend for old TODOs
nobu (Nobuyoshi Nakada)
12:35 PM Revision 56b45e8c (git): Let testunit use omit or pend instead of skip
nobu (Nobuyoshi Nakada)
10:52 AM Feature #18408: Allow pattern match to set instance variables
ktsj (Kazuki Tsujimoto) wrote in #note-8:
> If assignment to instance variables (or variables other than local variables) is allowed in pattern matching, there are problems such as:
> ...
In this context, what is the difference between...
palkan (Vladimir Dementyev)
03:18 AM Feature #18408 (Assigned): Allow pattern match to set instance variables
If assignment to instance variables (or variables other than local variables) is allowed in pattern matching, there are problems such as:
1. The value during pattern matching can be observed by other threads
2. The value of the insta...
ktsj (Kazuki Tsujimoto)
08:15 AM Revision 2ae9da23 (git): Check with the latest stable
nobu (Nobuyoshi Nakada)
07:09 AM Revision 6328db3c (git): Separate the tests which fail when load-relative enabled
nobu (Nobuyoshi Nakada)
07:08 AM Revision ab1fc6ef (git): Add continue-on-skipped_tests flag
nobu (Nobuyoshi Nakada)
07:08 AM Revision 41e6f096 (git): Fix typos for multiple skipped_tests
nobu (Nobuyoshi Nakada)
03:20 AM Feature #15559: Logical XOR (^^) operator
hmdne (hmdne -) wrote in #note-6:
> @indirect your example can be written as follows:
> ...
You're just repeating the first comment on this thread. The entire point of this ticket is to have `^^` work on non-booleans, just like `||` and ...
indirect (André Arko)
02:39 AM Feature #15559: Logical XOR (^^) operator
Hm, came into my mind that you may prefer to use this, more readable snippet instead:
```ruby
raise ArgumentError unless [bar, baz].one?
```
hmdne (hmdne -)
02:30 AM Feature #15559: Logical XOR (^^) operator
Since we don't need short-circuit evaluation, we can simply use `^` for that reason. It's already defined on both TrueClass and FalseClass AND NilClass.
@indirect your example can be written as follows:
```ruby
raise ArgumentE...
hmdne (hmdne -)
02:20 AM Feature #15559: Logical XOR (^^) operator
mrkn (Kenta Murata) wrote in #note-1:
> I think `^^` can be useful for the case that both `expr1` and `expr2` are not boolean.
> ...
Yes. Here is an example I encountered today. I have a class initializer that takes one argument: `Foo....
indirect (André Arko)

01/15/2022

09:53 PM Revision 72830409 (git): Update NEWS.md about ERB.new
k0kubun (Takashi Kokubun)
09:46 PM Revision d12a08ab (git): [ruby/erb] Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7)
[Feature #14256]
https://github.com/ruby/erb/commit/5133efa06f
k0kubun (Takashi Kokubun)
08:26 PM Revision 3cfb6fc4 (git): [ruby/erb] Escape the second *
The original code just seems unintentional
https://github.com/ruby/erb/commit/75a0749cb7
k0kubun (Takashi Kokubun)
08:21 PM Revision c37d9682 (git): * 2022-01-16 [ci skip]
git[bot]
08:21 PM Revision b2d15dca (git): [ruby/erb] fix regexp (https://github.com/ruby/erb/pull/6)
https://github.com/ruby/erb/commit/33100a022f ooooooo_q
04:57 PM Feature #16986: Anonymous Struct literal
duerst (Martin Dürst) wrote in #note-43:
> One more point: I haven't seen much examples of similar features in other languages.
Sorry to resurrect an old thread, but I just wanted to mention that this is a feature of the Zig programm...
briankung (Brian Kung)
02:23 PM Misc #18493: zverok as a commiter
@kou @matz @Eregon Thank you!
@kou Information sent
zverok (Victor Shepelev)
06:11 AM Misc #18493: zverok as a commiter
@zverok Could you follow https://bugs.ruby-lang.org/projects/ruby/wiki/CommitterHowto#What-to-do-for-registering-you-as-a-committer ? kou (Kouhei Sutou)
02:48 AM Misc #18493: zverok as a commiter
Approved.
Matz.
matz (Yukihiro Matsumoto)
01:24 PM Revision 4c2d6f76 (git): Test enable-load-relative
Now rubygems has the tests depending on it. nobu (Nobuyoshi Nakada)
11:10 AM Revision f29d7745 (git): * expand tabs. [ci skip]
Tabs were expanded because the file did not have any tab indentation in unedited lines.
Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
git[bot]
09:57 AM Revision c1bcfeec (git): Transfer the responsibility for MJIT options to mjit.c
nobu (Nobuyoshi Nakada)
09:56 AM Revision 670f3e6c (git): [ruby/fcntl] adding few FreeBSD specific flags.
https://github.com/ruby/fcntl/commit/03d9a7937d David CARLIER
09:55 AM Revision d853a788 (git): Define the default JIT feature bit
nobu (Nobuyoshi Nakada)
05:56 AM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
Thanks for the comment.
> Are these segfaults caused by a particular decorator module, or multiple different modules?
Caused by multiple different modules.
> ...
Not use refinements.
There is no C-ext.
These are simple decorat...
t_mimura (Tomohiko Mimura)
05:00 AM Revision 7c70151a (git): [rubygems/rubygems] Fix `gem update --system` for already installed version of rubygems-update
https://github.com/rubygems/rubygems/commit/c167d513a7 loadkpi
04:30 AM Revision 2dc365db (git): Fix spec failures on ruby 3.1
Because Module#const_added is ruby 3.2 feature znz (Kazuhiro NISHIYAMA)
02:55 AM Feature #18481: Porting YJIT to Rust (request for feedback)
Accepted.
To be clear, it's OK to use Rust to implement YJIT (and other optional features in the future), but mainline CRuby will not be implemented in Rust. The Rust implemented Ruby should be an alternative implementation just like ...
matz (Yukihiro Matsumoto)
02:47 AM Feature #18462: Proposal to merge WASI based WebAssembly support
Accepted.
Matz.
matz (Yukihiro Matsumoto)
01:39 AM Bug #16908: Strange behaviour of Hash#shift when used with `default_proc`.
Thank you @jeremyevans0 ioquatix (Samuel Williams)
12:33 AM Revision e40f79da (git): Enhanced RDoc for io.c (#5444)
Treated:
IO#open
IO#sysopen
#open
IO#putc
IO#puts
#p
Kernel#display
burdettelamar (Burdette Lamar)
12:09 AM Revision 8d378fd2 (git): Add Enumerable::Lazy#with_index to NEWS-2.7.0
The behavior of `Enumerable::Lazy#with_index` has changed in Ruby 2.7.
This change was not listed in the Ruby 2.7 news, so I added it.
osyo (manga osyo)

01/14/2022

11:59 PM Revision 49cc7709 (git): [Actions] mingw - use ruby/setup-ruby@v1 again
MSP-Greg (Greg L)
09:51 PM Misc #18493: zverok as a commiter
+1
@matz What do you think about this?
kou (Kouhei Sutou)
07:53 PM Misc #18493: zverok as a commiter
+1 from me, @zverok has done so many documentation improvements and for that I think it makes sense for him to be committer.
And lots of other contributions to Ruby as listed above.
Eregon (Benoit Daloze)
07:32 PM Misc #18493 (Closed): zverok as a commiter
I feel uneasy asking for myself (as far as I can understand, it is normal that other core team member proposes new contributors), but well... I am Ukrainian, and am not exactly subtle.
So... Can I receive a commit rights?
## About ...
zverok (Victor Shepelev)
09:46 PM Bug #18435 (Closed): Calling `protected` on ancestor method changes result of `instance_methods(false)`
Applied in changeset commit:git|58dc8bf8f15df9a33d191074e8a5d4946a3d59d5.
----------
Fix {Method,UnboundMethod}#{public?,private?,protected?} for ZSUPER methods
Add a visibility member to struct METHOD storing the original
method visib...
jeremyevans (Jeremy Evans)
12:56 AM Bug #18435: Calling `protected` on ancestor method changes result of `instance_methods(false)`
I've pushed a simpler fix that doesn't change the semantics of `method`, but still returns the correct visibility for ZSUPER methods, by storing the correct visibility as a member of struct METHOD: https://github.com/ruby/ruby/pull/5356/... jeremyevans0 (Jeremy Evans)
09:46 PM Revision 58dc8bf8 (git): Fix {Method,UnboundMethod}#{public?,private?,protected?} for ZSUPER methods
Add a visibility member to struct METHOD storing the original
method visibility, and use that, instead of taking the visibility
from the stored method entry (which may have different visibility
for ZSUPER methods).
Consider Method/Unbou...
jeremyevans (Jeremy Evans)
09:43 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
I've submitted a pull request for a prototype implementing `Thread.each_caller_location`: https://github.com/ruby/ruby/pull/5445. Hopefully it will be a good starting point to discuss details about how the method should work.
This pro...
jeremyevans0 (Jeremy Evans)
03:25 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
This topic was a little discussed at the dev-meeting. We didn't have enough time to discuss the details. As far as I remember, @matz said the following.
* The name `Thread.each_caller_location` is acceptable.
* But maybe the document...
mame (Yusuke Endoh)
09:10 PM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
What *decorator.rb:78* actually does is basically just a `Module#include`, and `ActiveDecorator::Helpers` module is a simple module that defines one method written in ruby, so we need some more information about the receiver modules to s... matsuda (Akira Matsuda)
09:32 AM Bug #18489: Segmentation fault with ruby 3.1.0 in `active_decorator`
I'm attaching the log because it reproduced several times. t_mimura (Tomohiko Mimura)
05:37 AM Bug #18489 (Closed): Segmentation fault with ruby 3.1.0 in `active_decorator`
Segmentation faults occasionally occur in product code.
We were not able to provide minimal reproducibility of the code. Sorry...
## Console dump
```
/home/circleci/repo/vendor/bundle/ruby/3.1.0/gems/active_decorator-1.4.0/lib/ac...
t_mimura (Tomohiko Mimura)
08:18 PM Bug #16908 (Closed): Strange behaviour of Hash#shift when used with `default_proc`.
Applied in changeset commit:git|a93cc3e23b4044762e80820fc7a45606587e11db.
----------
Make Hash#shift return nil for empty hash
Fixes [Bug #16908]
jeremyevans (Jeremy Evans)
03:01 AM Bug #16908 (Assigned): Strange behaviour of Hash#shift when used with `default_proc`.
Jeremy's approach (make Hash#shift return nil if the hash is empty) was approved by @matz. mame (Yusuke Endoh)
08:17 PM Revision a93cc3e2 (git): Make Hash#shift return nil for empty hash
Fixes [Bug #16908] jeremyevans (Jeremy Evans)
07:36 PM Revision 6b7eff90 (git): Separately allocate class_serial on 32-bit systems
On 32-bit systems, VWA causes class_serial to not be aligned (it only
guarantees 4 byte alignment but class_serial is 8 bytes and requires 8
byte alignment). This commit uses a hack to allocate class_serial
through malloc. Once VWA alloc...
peterzhu2118 (Peter Zhu)
07:00 PM Bug #15928 (Closed): Constant declaration does not conform to JIS 3017:2013
Applied in changeset commit:git|ca3d405242c722c8140944bda7278c2a9e5a7139.
----------
Fix constant assignment evaluation order
Previously, the right hand side was always evaluated before the
left hand side for constant assignments. For...
jeremyevans (Jeremy Evans)
02:59 AM Bug #15928: Constant declaration does not conform to JIS 3017:2013
This was discussed at the dev-meeting, and @matz said it's time for a change. @jeremyevans0 Could you merge your pull request? mame (Yusuke Endoh)
07:00 PM Revision ca3d4052 (git): Fix constant assignment evaluation order
Previously, the right hand side was always evaluated before the
left hand side for constant assignments. For the following:
```ruby
lhs::C = rhs
```
rhs was evaluated before lhs, which is inconsistant with attribute
assignment (lhs.m ...
jeremyevans (Jeremy Evans)
04:29 PM Revision 3cc82ff9 (git): Drop support for OSX 10.3 and earlier
dlopen was introduced in OSX 10.4, which was released in 2005. OSX 10.3
was EOL in 2007.
peterzhu2118 (Peter Zhu)
03:58 PM Revision 64e19ad7 (git): to prevent collection, keep the last result.
Masatoshi SEKI
03:22 PM Revision 82539a3d (git): variable.c: Fix incorrect identation in `const_added`
byroot (Jean Boussier)
03:19 PM Revision f75e871e (git): Try previous ruby-setup-ruby
The commits between db14f2dde9ceeaa8acbcd31884475a7ce97ae9d3 and
11cc84264a91d42bc873f39d70678e44042322d2 seems breaking
OpenSSL::TestConfig#test_s_parse_include.
nobu (Nobuyoshi Nakada)
03:17 PM Bug #18492 (Open): `rb_rescue2` inside `rb_protect` segfaults on Windows
I ran into and interpreter segfault that @peterzhu2118 helped me reduce to s simple test case:
```c
#include <ruby.h>
static VALUE
rescue_return_false(VALUE arg, VALUE e)
{
return Qfalse;
}
static VALUE
try_callback(VALU...
byroot (Jean Boussier)
03:15 PM Revision c54eac66 (git): Show tool versions
nobu (Nobuyoshi Nakada)
03:01 PM Feature #18491 (Closed): Drop support for IBM AIX and HP UX
There's code in Ruby for IBM AIX and HP UX (macros `_AIX` and `__hpux`), but we don't test on these systems nor do we have testing machines. IBM AIX's maintainer is listed as @kanemoto and HP UX does not have a maintainer. Are these syst... peterzhu2118 (Peter Zhu)
03:00 PM Revision d5d958a9 (git): * 2022-01-15 [ci skip]
git[bot]
03:00 PM Revision 7d42b442 (git): [rubygems/rubygems] Support binstubs with `--enable-load-relative` prolog
https://github.com/rubygems/rubygems/commit/32a5e9057a deivid (David Rodríguez)
03:00 PM Revision 044b0ae8 (git): [rubygems/rubygems] Extract a bit of common logic to methods
https://github.com/rubygems/rubygems/commit/9a1b891435 deivid (David Rodríguez)
03:00 PM Revision 3006451f (git): [rubygems/rubygems] Privatize some test utils
https://github.com/rubygems/rubygems/commit/386b3b85ca deivid (David Rodríguez)
03:00 PM Revision 810516ca (git): [rubygems/rubygems] Fix method documentation to be more correct English
https://github.com/rubygems/rubygems/commit/bcffd92c48 deivid (David Rodríguez)
02:52 PM Feature #18490 (Closed): MakeMakefile.pkg_config should accept multiple options
## Summary
When building static libraries it is sometimes necessary to pass multiple flags to `pkg-config`. Currently, `MakeMakefile.pkg_config` does not allow this.
A PR has been submitted at https://github.com/ruby/ruby/pull/5436...
mdalessio (Mike Dalessio)
02:38 PM Revision da0f67c0 (git): [rubygems/rubygems] Remove redundant condition
See https://github.com/rubygems/rubygems/pull/5210#discussion_r784807168
https://github.com/rubygems/rubygems/commit/cd0e961e81
Eregon (Benoit Daloze)
12:58 PM Feature #18368: Range#step semantics for non-Numeric ranges
One way to achieve the same result currently is Enumerator.produce:
```ruby
require 'time'
Enumerator.produce(Time.parse('2021-12-01')) { _1 + 24*60*60 }.take_while { _1 <= Time.parse('2021-12-24') }
```
Somewhat related to https:...
Eregon (Benoit Daloze)
11:41 AM Feature #18368: Range#step semantics for non-Numeric ranges
@mame @matz
I believe that "step implemented with `+`" is clear and useful semantics which might help with much more than time calculations:
```ruby
require 'numo/narray'
p (Numo::NArray[1, 2]..).step(Numo::NArray[0.1, 0.1]).take(5...
zverok (Victor Shepelev)
02:58 AM Feature #18368: Range#step semantics for non-Numeric ranges
This topic was discussed at the dev-meeting yesterday.
A naive implementation (using `begin + step` iteratively) will allow the following behavior.
```
([]..).step([1]).take(3) #=> [[], [1], [1, 1]]
(Set[1]..).step(Set[2])...
mame (Yusuke Endoh)
10:30 AM Feature #17881 (Closed): Add a Module#const_added callback
Applied in changeset commit:git|8d05047d72d0a4b97f57b23bddbca639375bbd03.
----------
Add a Module#const_added callback
[Feature #17881]
Works similarly to `method_added` but for constants.
```ruby
Foo::BAR = 42 # call Foo.const_added...
byroot (Jean Boussier)
08:21 AM Feature #17881: Add a Module#const_added callback
@mame I will today, thank you for the notice. byroot (Jean Boussier)
02:39 AM Feature #17881 (Assigned): Add a Module#const_added callback
@byroot Do you merge your pull request to the HEAD? This proposal is already approved by matz. mame (Yusuke Endoh)
10:30 AM Revision 8d05047d (git): Add a Module#const_added callback
[Feature #17881]
Works similarly to `method_added` but for constants.
```ruby
Foo::BAR = 42 # call Foo.const_added(:FOO)
class Foo::Baz; end # call Foo.const_added(:Baz)
Foo.autoload(:Something, "path") # call Foo.const_added(:Somethin...
byroot (Jean Boussier)
09:33 AM Revision 53a4e101 (git): clear `@result` after `setup_message`
For the remote object `ro`, method chain like `ro.foo.bar` the
result of `ro.foo` is stored in `@result`, but cleared just
before `setup_message` and it seems GCed on specific machine.
```
1) Error:
DRbTests::TestDRbCore#test_05_eq:
R...
ko1 (Koichi Sasada)
08:47 AM Misc #18488: Add katei as a commiter
Approved.
Matz.
matz (Yukihiro Matsumoto)
03:58 AM Misc #18488: Add katei as a commiter
@katei Thanks!
@matz Could you approve him as a committer?
mame (Yusuke Endoh)
03:55 AM Misc #18488: Add katei as a commiter
Of course! I'll do my best as a committer :) katei (Yuta Saito)
03:49 AM Misc #18488 (Closed): Add katei as a commiter
Hi,
@ko1 and I would like to recommend we add katei-san (https://github.com/kateinoigakukun) as a committer.
He has sent [about ten pull requests to ruby](https://github.com/ruby/ruby/pulls?q=author%3Akateinoigakukun), and all of t...
mame (Yusuke Endoh)
07:10 AM Bug #18487: Kernel#binding behaves differently depending on implementation language of items on the stack
Interesting. I created a simpler version.
```
class Magic
define_singleton_method :modify_caller_env!, method(:binding).to_proc >> ->(bndg) { bndg.local_variable_set(:my_var, 42) }
end
my_var = 1
Magic.modify_caller_env!
...
mame (Yusuke Endoh)
06:26 AM Revision ac807888 (git): Update RBS test for Gem::Version#<=> update
nobu (Nobuyoshi Nakada)
05:54 AM Revision d3940a53 (git): Fetch the unmerged revision to test of bundled gems
nobu (Nobuyoshi Nakada)
05:54 AM Revision abc4a460 (git): Get rid of building main again when test-bundled-gems
nobu (Nobuyoshi Nakada)
05:52 AM Bug #18485 (Closed): Even though init a blocking Fiber with Fiber.new(blocking: true) but scheduler is invoked
This is working as intended.
```
f = Fiber.new(blocking: true) do
p '1111111'
sleep(1)
p '2222222'
end
```
does not invoke the `kernel_sleep` hook. Nor does it invoke any IO output hooks (and thus performs blocking IO).
ioquatix (Samuel Williams)
05:49 AM Bug #18484: Fiber should return it self when blocked by IO
```
irb(main):001:1* f = Fiber.new do
irb(main):002:1* sleep(1)
irb(main):003:1* Fiber.yield 123
irb(main):004:0> end
=> #<Fiber:0x000000010d8aa328 (irb):1 (created)>
irb(main):005:0>
irb(main):006:0> p f.resume
123
=> 123
...
ioquatix (Samuel Williams)
04:46 AM Revision c613d79f (git): Suppress unary minus operator to unsigned type warnings
nobu (Nobuyoshi Nakada)
04:46 AM Revision 9fa9cf40 (git): Suppress possible loss of data warnings
nobu (Nobuyoshi Nakada)
04:00 AM Feature #18462: Proposal to merge WASI based WebAssembly support
At the previous dev-meeting, @katei elaborated this proposal and implementation approach himself. The patch is still being checked in detail by @nobu, but we agreed that it looks great.
Because WASI is actively being developed, we wil...
mame (Yusuke Endoh)
02:51 AM Feature #18438: Add `Exception#additional_message` to show additional error information
We discussed this topic yesterday at the dev-meeting. @matz basically liked the API style of `Exception#description`, but disliked the name. `full_message` calls `description`, and `description` calls `message`, which looked awkward to m... mame (Yusuke Endoh)
02:45 AM Feature #18367: Stop the interpreter from escaping error messages
usa (Usaku NAKAMURA) wrote in #note-13:
> BTW, if the target output is not terminal (istty = false), what kind of output is desirable?
I don't think that has much to do with this proposal, but I basically expect the same output.
A...
mame (Yusuke Endoh)
12:00 AM Revision 6dc4c942 (git): File rdoc (#5438)
Treats:
File introduction
File.open
File.new
burdettelamar (Burdette Lamar)

01/13/2022

11:36 PM Bug #18487 (Closed): Kernel#binding behaves differently depending on implementation language of items on the stack
Recently I [discovered] that one could use `Kernel#binding` to capture the
environment of a frame that is not directly below the stack frame for
`Kernel#binding`. I've known that C extensions have this [privilege] for a
while, but did...
alanwu (Alan Wu)
11:16 PM Revision b9b63774 (git): [ruby/net-http] Fix unescaped `.` in Regexp
Use `include?` instead.
https://github.com/ruby/net-http/commit/05022744a9
znz (Kazuhiro NISHIYAMA)
11:11 PM Bug #18444: Trapped TSTP causes a locking deadlock in 3.0.3 onward
I couldn't replicate this behavior in OpenBSD/amd64. On OpenBSD/amd64, sending TSTP prints the Received... string twice, 10 seconds part, followed by the loop printing 1. Windows doesn't support TSTP, so no reason to test there. Can a... jeremyevans0 (Jeremy Evans)
10:44 PM Revision 40d9be51 (git): [ruby/psych] Don't require `strscan` unnecessarily
It does not seem needed, and it's causing issues on Windows when
uninstalling `strscan`, because strscan's shared library being used when
RubyGems tries to remove it (because its loaded through Psych, which
RubyGems uses for loading conf...
deivid (David Rodríguez)
07:12 PM Bug #18486: Enumerable#group_by ordering appears to have changed and doesn't match docs.
> group_by emerged in Ruby 1.8.7, but my RVM can't install it :(
> ...
off-topic: all-ruby is your friend :) https://github.com/akr/all-ruby
```
$ docker run -it --rm rubylang/all-ruby ./all-ruby -e 'p (1..6).to_a.inject({}) { |r, i...
matsuda (Akira Matsuda)
04:34 PM Bug #18486: Enumerable#group_by ordering appears to have changed and doesn't match docs.
I think it is docs bug.
`group_by` emerged in Ruby 1.8.7, but my RVM can't install it :(
The earliest I could check was 1.9.3, and it already has order of keys 1, 2, 0.
I think it is a natural reason of keys being in the order they ...
zverok (Victor Shepelev)
04:33 PM Bug #18486 (Closed): Enumerable#group_by ordering appears to have changed and doesn't match docs.
This was already fixed in commit:1e10099e091 jeremyevans0 (Jeremy Evans)
04:31 PM Bug #18486: Enumerable#group_by ordering appears to have changed and doesn't match docs.
This is only a minor documentation issue. I assume the documentation is a left over from pre-1.9, when hashes were unordered. I'll fix it. jeremyevans0 (Jeremy Evans)
04:05 PM Bug #18486 (Closed): Enumerable#group_by ordering appears to have changed and doesn't match docs.
The documentation for Enumerable#group_by suggests the following:
(1..6).group_by { |i| i%3 } #=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]}
it actually produces this (same values different order). Tested in 2.6.3 and 3.0.2
(1..6).grou...
masukomi@masukomi.org (kay rhodes)
05:35 PM Feature #18438: Add `Exception#additional_message` to show additional error information
> It seem simpler for everyone (including Sentry, Datadog, etc.) to use e.description instead of e.message + "\n" + e.additional_message, and also easier to support older rubies.
Not saying I like that but I think it's generally ok be...
st0012 (Stan Lo)
03:00 PM Revision acd1f45a (git): * 2022-01-14 [ci skip]
git[bot]
02:59 PM Revision a4851526 (git): [rubygems/rubygems] Lock standard.yml to the required ruby version
https://github.com/rubygems/rubygems/commit/1791b5b9e5 searls (Justin Searls)
11:50 AM Bug #18485 (Closed): Even though init a blocking Fiber with Fiber.new(blocking: true) but scheduler is invoked
For example:
```
require 'fiber'
require 'io/nonblock'
class SimpleScheduler
def initialize
@readable = {}
@writable = {}
@waiting = {}
@ready = []
@blocking = 0
@urgent = IO.pipe
end
def ...
jakit (Jakit Liang)
09:59 AM Bug #18472: rb_w32_map_errno is not found on Ruby-3.1.0
I've released a fixed version of serverengine: https://rubygems.org/gems/serverengine/versions/2.2.5
Thanks for your report!
ashie (Takuro Ashie)
09:53 AM Bug #18472: rb_w32_map_errno is not found on Ruby-3.1.0
The error itself was fixed by https://github.com/treasure-data/serverengine/pull/116#issuecomment-1011931598.
There is another error in serverengine using ruby 3.1 but it is unrelated to this issue.
kubo (Takehiro Kubo)
09:57 AM Bug #18484 (Rejected): Fiber should return it self when blocked by IO
Here's an example:
```
f = Fiber.new do
sleep(1)
Fiber.yield 123
end
p f.resume
```
Output:
```
nil
```
Expected output:
```
#<Fiber:0x000000010e825b18@(irb):59 (paused)>
```
========================
...
jakit (Jakit Liang)
09:49 AM Misc #18399: DevMeeting-2022-01-13
We were not able to discuss all of the agenda items. We will continue discussion on 28th Jan. mame (Yusuke Endoh)
09:16 AM Revision d0a06379 (git): [rubygems/rubygems] Use `Fiddle` in `bundle doctor` to check for dynamic library presence
https://github.com/rubygems/rubygems/commit/ecd495ce1b Vyacheslav Alexeev
09:15 AM Revision 98285025 (git): [rubygems/rubygems] Let Version#spaceship accept a String
With this patch, handwriting version comparisons become a little bit easier.
before:
SomeGem.version <=> Gem::Version.new('1.3')
after:
SomeGem.version <=> '1.3'
https://github.com/rubygems/rubygems/commit/7e0dbb79f2
matsuda (Akira Matsuda)
08:45 AM Revision 9de38086 (git): add a NEWS entry of `Proc#dup`.
ko1 (Koichi Sasada)
08:44 AM Bug #17545 (Closed): Calling dup on a subclass of Proc returns a Proc and not the subclass
Applied in changeset commit:git|7e21b77dc6bfefaf331a0dbf89782303b8cda05d.
----------
T#dup (T < Proc) should return T's object
T#dup (T < Proc) returns Proc object (not T) from Ruby 1.9.
[Bug #17545]
ko1 (Koichi Sasada)
08:43 AM Revision 7e21b77d (git): T#dup (T < Proc) should return T's object
T#dup (T < Proc) returns Proc object (not T) from Ruby 1.9.
[Bug #17545]
ko1 (Koichi Sasada)
07:15 AM Feature #18367: Stop the interpreter from escaping error messages
BTW, if the target output is not terminal (istty = false), what kind of output is desirable? usa (Usaku NAKAMURA)
05:48 AM Bug #18465: Make `IO#write` atomic.
I would personally like to simplify `IO` implementation but I'm not sure if major refactor is acceptable especially given the chance for performance regressions.
You are right, if someone holds a lock when writing to `stdout` or `stde...
ioquatix (Samuel Williams)
05:27 AM Feature #18481: Porting YJIT to Rust (request for feedback)
Maintainer of ruby-install here along with @havenwood. By design ruby-install will install all build and runtime dependencies from the system's package manager needed to compile/run a ruby with default configuration options; which is how... postmodern (Hal Brodigan)
12:04 AM Feature #18481: Porting YJIT to Rust (request for feedback)
As a release manager, adding rust to the tool chain is big change. But your proposal is well considered about the problem. While the YJIT support and Rust dependency is optional and it doesn't affect the user experience on the YJIT-disab... naruse (Yui NARUSE)
05:26 AM Feature #18483 (Closed): `RUBY_ON_BUG` feature for ruby release version
Now development version of MRI (`RUBY_DEVEL` macro enabled binary) supports `RUBY_ON_BUG` environment variable.
It kicks the specified process with PID of the Ruby process when `rb_bug()` function is called, like:
```
$ RUBY_ON_BUG=...
ko1 (Koichi Sasada)
02:34 AM Revision 5a75151a (git): [DOC] Mark up the code for Kernel#rand as the same as Random#rand
nobu (Nobuyoshi Nakada)
02:32 AM Revision d1a55851 (git): [DOC] Fix a typo in a doc
nobu (Nobuyoshi Nakada)
01:12 AM Bug #18474: 938e027c seems to have caused a regression in yield handling with concurrent-ruby
Thank you, this is helpful. I'm not sure whether or not concurrent-ruby is the right place to fix this. If someone were doing what your example does in a loop and then joining all of them and making that enumerable, it would be their res... aaronjensen (Aaron Jensen)

01/12/2022

11:08 PM Revision faf79d3a (git): Enhanced RDoc for IO.popen (#5430)
* Enhanced RDoc for IO.popen burdettelamar (Burdette Lamar)
08:56 PM Bug #18482 (Rejected): Fiber can not disable scheduler
Did you read the documentation?
https://rubyapi.org/3.1/o/fiber#method-c-new
ioquatix (Samuel Williams)
05:48 PM Bug #18482 (Rejected): Fiber can not disable scheduler
class Fiber can not disable scheduler with it's parameter.
When parameter is false:
```
require 'fiber'
require 'io/nonblock'
class SimpleScheduler
def initialize
@readable = {}
@writable = {}
@waiting = {}
...
jakit (Jakit Liang)
08:55 PM Revision 2f71f6bb (git): Speed up and avoid kwarg hash alloc in Time.now
Previously Time.now was switched to use Time.new as it added support for
the in: argument. Unfortunately because Class#new is a cfunc this
requires always allocating a Hash.
This commit switches Time.now back to using a builtin time_s_n...
jhawthorn (John Hawthorn)
08:30 PM Feature #18481: Porting YJIT to Rust (request for feedback)
maximecb (Maxime Chevalier-Boisvert) wrote in #note-10:
> Would you be provide some specifics of how difficult it would be to compile rust code while packaging Ruby for Fedora/CS/RHEL? Is there an existing rustc package? Would you be ab...
vo.x (Vit Ondruch)
08:15 PM Feature #18481: Porting YJIT to Rust (request for feedback)
> TBH, with my Fedora/CS/RHEL maintainer hat on, this proposal scares me.
I completely understand. This is a departure from the Ruby tradition so to speak and as such, has to be considered carefully.
> ...
If it makes you feel any ...
maximecb (Maxime Chevalier-Boisvert)
08:01 PM Feature #18481: Porting YJIT to Rust (request for feedback)
maximecb (Maxime Chevalier-Boisvert) wrote in #note-6:
> I'd like to get input from people who are packaging Ruby, and those maintaining Ruby installation scripts.
> ...
Downloading anything (especially binary blobs) or even bundling i...
vo.x (Vit Ondruch)
07:12 PM Feature #18481: Porting YJIT to Rust (request for feedback)
maximecb (Maxime Chevalier-Boisvert) wrote in #note-6:
> I'd like to get input from people who are packaging Ruby, and those maintaining Ruby installation scripts.
The current active maintainers of e.g. `ruby-build` would be @hsbt an...
Eregon (Benoit Daloze)
07:00 PM Feature #18481: Porting YJIT to Rust (request for feedback)
maximecb (Maxime Chevalier-Boisvert) wrote in #note-6:
> > believe that this is trivially supportable with the use of Rust editions, and if they are able to target the 2018 edition, it would ensure maximum compatibility. A schedule coul...
jeremyevans0 (Jeremy Evans)
06:40 PM Feature #18481: Porting YJIT to Rust (request for feedback)
I'd like to get input from people who are packaging Ruby, and those maintaining Ruby installation scripts.
I don't think CRuby should download anything during build. IMO `rustc` should be treated like `gcc`, it's something you should ...
maximecb (Maxime Chevalier-Boisvert)
06:30 PM Feature #18481: Porting YJIT to Rust (request for feedback)
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> Rust is supposed to be fairly backwards compatible for the last few years. As long as the YJIT team commits to supporting a Rust version that was released more than 12 months ago (say Rus...
austin (Austin Ziegler)
06:15 PM Feature #18481: Porting YJIT to Rust (request for feedback)
Eregon (Benoit Daloze) wrote in #note-3:
> jeremyevans0 (Jeremy Evans) wrote in #note-2:
> ...
I don't think that is true, at least not for releases. ruby-3.1.0.tar.gz includes all bundled gems in a `.bundle` directory. `tool/config....
jeremyevans0 (Jeremy Evans)
05:59 PM Feature #18481: Porting YJIT to Rust (request for feedback)
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> I don't think so. Trying to download during a build will result in problems for many packagers.
Yes, for packagers I think they would typically prefer to use an existing Rust package (...
Eregon (Benoit Daloze)
05:03 PM Feature #18481: Porting YJIT to Rust (request for feedback)
Eregon (Benoit Daloze) wrote in #note-1:
> Would it make sense to automatically download a Rust toolchain when building with YJIT?
I don't think so. Trying to download during a build will result in problems for many packagers. Ruby ...
jeremyevans0 (Jeremy Evans)
04:29 PM Feature #18481: Porting YJIT to Rust (request for feedback)
Would it make sense to automatically download a Rust toolchain when building with YJIT?
I assume the Rust code would need a specific version of Rust (newer versions might work but not always, backward compat is not eternal) and so it'...
Eregon (Benoit Daloze)
03:53 PM Feature #18481 (Closed): Porting YJIT to Rust (request for feedback)
TL;DR: The YJIT team wants to explore using Rust to help develop YJIT. The rest of CRuby will continue to build without Rust tools and building YJIT will remain optional.
We’re currently exploring the possibility of porting YJIT to Ru...
maximecb (Maxime Chevalier-Boisvert)
06:22 PM Bug #18475 (Closed): Yielding an element for Enumerator in another thread dumps core
Applied in changeset commit:git|ae5458f228a5477383e9c00425d85d50a3867817.
----------
thread.c: Convert TAG_BREAK to a normal exception at thread top-level
[Bug #18475]
mame (Yusuke Endoh)
08:32 AM Bug #18475: Yielding an element for Enumerator in another thread dumps core
https://github.com/ruby/ruby/pull/5431 mame (Yusuke Endoh)
08:31 AM Bug #18475: Yielding an element for Enumerator in another thread dumps core
This is almost the same issue as #11254. When TAG_BREAK is thrown to the top-level frame, it dumps core. #11254 fixed the case where TAG_BREAK is thrown to the top-level of the main thread, but not of a non-main thread.
I think this p...
mame (Yusuke Endoh)
06:21 PM Revision ae5458f2 (git): thread.c: Convert TAG_BREAK to a normal exception at thread top-level
[Bug #18475] mame (Yusuke Endoh)
06:14 PM Bug #18479 (Third Party's Issue): I encountered a bug in the Ruby interpreter or extension libraries
This is a third-party's issue. See https://github.com/ffi/ffi/issues/864 . You may want to try https://github.com/ffi/ffi/issues/864#issuecomment-875242776 . Or `bundle config --local build.ffi --enable-libffi-alloc`. mame (Yusuke Endoh)
02:33 PM Bug #18479: I encountered a bug in the Ruby interpreter or extension libraries
Can you try using Ruby 2.7.5 or newer? Ruby 2.6 is on security maintenance and will be EOL on March 2022. peterzhu2118 (Peter Zhu)
11:39 AM Bug #18479 (Third Party's Issue): I encountered a bug in the Ruby interpreter or extension libraries
I received a message saying that I encountered a bug in the Ruby interpreter or extension libraries after running the following:
Clone this repo
```
git clone https://github.com/raviriley/agency-jekyll-theme.git
cd agency-jekyll-t...
batool (batool almarzouq)
05:01 PM Revision 59eb02cd (git): * 2022-01-13 [ci skip]
git[bot]
05:00 PM Revision 98fb0ab6 (git): Enable Variable Width Allocation by default
peterzhu2118 (Peter Zhu)
05:00 PM Revision 2d81a718 (git): Make embedded string length a long for VWA
A short (2 bytes) will cause unaligned struct accesses when strings are
used as a buffer to directly store binary data.
peterzhu2118 (Peter Zhu)
02:53 PM Bug #18468 (Closed): Tutorial Link for Optionparser is broken
Applied in changeset commit:git|92630e2346a221fdfeaa484632938a06765bc6e5.
----------
[ruby/optparse] Fix links to the page directory files [Bug #18468]
https://github.com/ruby/optparse/commit/dab72c543d
nobu (Nobuyoshi Nakada)
01:13 PM Bug #18480 (Closed): Dtrace enabled build fails on systems with DTRACE_REBUILD=yes
When building Ruby 3.1 on Solaris, where dtrace requires a recompilation (DTRACE_REBUILD=yes), the compilation fails with the following linking error:
```
linking miniruby
Undefined first referenced
symbol in file
__dtr...
Kulikjak (Jakub Kulik)
12:16 PM Revision e28dbd0f (git): [ruby/optparse] Fix for ruby 3.0 or earlier
https://github.com/ruby/optparse/commit/9e29d86c12 nobu (Nobuyoshi Nakada)
12:16 PM Revision 743a41f7 (git): [ruby/optparse] DidYouMean::PlainFormatter is deprecated
https://github.com/ruby/optparse/commit/0ac9957696 nobu (Nobuyoshi Nakada)
12:16 PM Revision 92630e23 (git): [ruby/optparse] Fix links to the page directory files [Bug #18468]
https://github.com/ruby/optparse/commit/dab72c543d nobu (Nobuyoshi Nakada)
12:16 PM Revision 7d94df63 (git): [ruby/optparse] Add rdoc options
Specify the main page and the page directory. Also in Rakefile,
extract and use the same options from the gemspec file.
https://github.com/ruby/optparse/commit/d182cd60b5
nobu (Nobuyoshi Nakada)
12:16 PM Revision 39bebd76 (git): [ruby/optparse] Add .document files
https://github.com/ruby/optparse/commit/ed283559d4 nobu (Nobuyoshi Nakada)
09:57 AM Bug #18472: rb_w32_map_errno is not found on Ruby-3.1.0
It is because of a change in rubyinstaller-3.1.0-x64.
In https://rubyinstaller.org/2021/12/31/rubyinstaller-3.1.0-1-released.html:
> RubyInstaller-3.1.0-x64 has a changed C-runtime called UCRT replacing the old MSVCRT.
I guess tha...
kubo (Takehiro Kubo)
08:51 AM Revision 26b4aa85 (git): Show JIT options only when supported
nobu (Nobuyoshi Nakada)
08:21 AM Bug #18474: 938e027c seems to have caused a regression in yield handling with concurrent-ruby
I think I understand the issue. When the following code is executed on Ruby 3.0, it prints `"should_not_reach_here"`.
```
def foo
Thread.new do
1.times do
yield
end
p "should_not_reach_here"
end.join
end
...
mame (Yusuke Endoh)
02:02 AM Revision dcb02cb2 (git): [ruby/io-nonblock] Use omit instead of skip for test-unit
https://github.com/ruby/io-nonblock/commit/a7bfbfa049 hsbt (Hiroshi SHIBATA)
01:59 AM Revision 186fd890 (git): [ruby/rinda] Use omit instead of skip for test-unit
https://github.com/ruby/rinda/commit/1d3512aa26 hsbt (Hiroshi SHIBATA)
01:53 AM Revision bf2bd6dc (git): [ruby/io-wait] Use omit instead of skip for test-unit
https://github.com/ruby/io-wait/commit/75543ab1bc hsbt (Hiroshi SHIBATA)
01:53 AM Revision 7f5e0660 (git): [ruby/date] Use omit instead of skip for test-unit
https://github.com/ruby/date/commit/537f3f681e hsbt (Hiroshi SHIBATA)
01:52 AM Revision 236678b8 (git): [ruby/open3] Use omit instead of skip for test-unit
https://github.com/ruby/open3/commit/f6ca124b56 hsbt (Hiroshi SHIBATA)
01:50 AM Revision 8ccbca26 (git): [ruby/win32ole] Use omit() for skip()
https://github.com/ruby/win32ole/commit/2d5dc47ed4 hsbt (Hiroshi SHIBATA)
01:50 AM Revision 5331615d (git): [ruby/win32ole] Use omit instead of skip for test-unit
https://github.com/ruby/win32ole/commit/c0586b2f75 hsbt (Hiroshi SHIBATA)
01:49 AM Revision c02a9994 (git): [ruby/resolv] Use omit instead of skip for test-unit
https://github.com/ruby/resolv/commit/55e42221d4 hsbt (Hiroshi SHIBATA)
01:49 AM Revision d494a16a (git): [ruby/resolv] Support more characters in link local addresses
Implements [Feature #17524]
https://github.com/ruby/resolv/commit/993a1a374f
jeremyevans (Jeremy Evans)
12:45 AM Bug #18471 (Rejected): Regex#match(re, position) with start of a string anchors ^ and \A
jeremyevans0 (Jeremy Evans)

01/11/2022

07:55 PM Feature #18478 (Open): Module#constant_pairs
Let's say I have a module like this:
```ruby
module A
B = 1
class C
end
end
```
I can find out its constants with `constants`:
```ruby
A.constants # => [:B, :C]
```
But if I also want to get the values of the cons...
johansenjaa (Joseph Johansen)
07:28 PM Feature #18477: Float#sqrt and Integer#sqrt
See https://twitter.com/kddnewton/status/1480977779688710145 for why I filed this bug dorianmariefr (Dorian Marié)
07:28 PM Feature #18477: Float#sqrt and Integer#sqrt
Actually maybe not worth it, also there are a lot of methods from the Math module that could be done like that dorianmariefr (Dorian Marié)
07:26 PM Feature #18477 (Open): Float#sqrt and Integer#sqrt
Would be nice to do:
```ruby
10.sqrt # => 3.1622776601683795
3.5.sqrt # => 1.8708286933869707
```
dorianmariefr (Dorian Marié)
07:18 PM Revision 421bb589 (git): * 2022-01-12 [ci skip]
git[bot]
07:17 PM Revision 14967347 (git): YJIT stats documentation additions and updates (#5427)
* YJIT documentation additions and updates
* Update yjit.md
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Noah Gibbs
06:30 PM Bug #18476 (Open): Call to require stuck forever after receiving EAGAIN on writev when running with zeus
# Environment
I'm using Ubuntu 18.04 running on Windows using WSL2:
```
$ uname -a
Linux myhostname 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modu...
JelteF (Jelte Fennema)
06:30 PM Bug #18474: 938e027c seems to have caused a regression in yield handling with concurrent-ruby
Thank you for your report.
I don't yet know exactly what's going on, but as far as I see your repro code, the behavior of `yield "some-value"` is different from `1.times { yield "some-value" }` on Ruby 3.0, and they are the same on Ru...
mame (Yusuke Endoh)
04:06 PM Bug #18474 (Closed): 938e027c seems to have caused a regression in yield handling with concurrent-ruby
I'm sorry for the awful title, I don't know enough about what is going on to describe it better. From a debugging perspective it seems that a very specific set of circumstances causes a `begin` block to be jumped out of when a proc it is... aaronjensen (Aaron Jensen)
06:26 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
Dan0042 (Daniel DeLorme) wrote in #note-19:
> I was thinking what should be the return value of `each_caller{ }` with no `break`. Building and returning an array of frames seems wasteful since in most cases it would never be used (due t...
Eregon (Benoit Daloze)
04:47 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
Sorry, last bikeshed:
I was thinking what should be the return value of `each_caller{ }` with no `break`. Building and returning an array of frames seems wasteful since in most cases it would never be used (due to break), so nil seems a...
Dan0042 (Daniel DeLorme)
06:24 PM Bug #18475 (Closed): Yielding an element for Enumerator in another thread dumps core
I faced [BUG] when investigating #18474
```
def run
Thread.new do
1.times do |value|
yield "some-value"
end
end.join
end
to_enum(:run).first
```
```
$ ruby repro.rb
#<Thread:0x00007fcab26af0c0 repro....
mame (Yusuke Endoh)
06:23 PM Bug #18465: Make `IO#write` atomic.
If the scheduler hook is called under the write lock that sounds like it could cause additional problems including deadlocks, long waits, etc.
So my POV is the fix as originally proposed with the write lock is incomplete and likely to c...
Eregon (Benoit Daloze)
05:24 PM Bug #18465: Make `IO#write` atomic.
"ioquatix (Samuel Williams)" <noreply@ruby-lang.org> wrote:
> By the way, even calling `write` directly is no guarantee of
> synchronous output between threads/processes - on Linux there
> is an informal guarantee of page-sized atomi...
normalperson (Eric Wong)
04:20 PM Feature #18438: Add `Exception#additional_message` to show additional error information
@nobu did you mean that the name "description" is vague or the concept itself? Would you find it less vague if it was named something else? (e.g. "detailed_message" or something) Dan0042 (Daniel DeLorme)
02:38 PM Feature #18438: Add `Exception#additional_message` to show additional error information
@nobu How so? Do you have an example?
The responsibilities for `description` are to call `super` and include it in the return value. That's it, nothing else.
The same goes for `additional_message` and is necessary if there are mult...
Eregon (Benoit Daloze)
05:59 AM Feature #18438: Add `Exception#additional_message` to show additional error information
`Exception#description` seems to add too much flexibility and make responsibilities vague. nobu (Nobuyoshi Nakada)
04:16 PM Feature #16122: Data: simple immutable value object
matz (Yukihiro Matsumoto) wrote in #note-19:
> I like the idea of helpers in https://bugs.ruby-lang.org/issues/16122#note-18.
> ...
Having helpers would definitely provide a nice easy experience. But since the important thing here is t...
Dan0042 (Daniel DeLorme)
07:52 AM Feature #16122: Data: simple immutable value object
@ko1
> It seems not related to "immutability".
Yes, I covered this, too (I know it is a large wall of text, sorry!), in **Concrete proposal** section:
> Class API is copying Structs one (most of the time -- even reuses the imple...
zverok (Victor Shepelev)
07:47 AM Feature #16122: Data: simple immutable value object
zverok (Victor Shepelev) wrote in #note-24:
> @ko1, the initial ticket provides some explanations:
Sorry I found it just after commented.
It seems not related to "immutability".
ko1 (Koichi Sasada)
07:43 AM Feature #16122: Data: simple immutable value object
@ko1, the initial ticket provides some explanations:
> For example, this code snippet shows why `to_a` is problematic:
```ruby
Result = Struct.new(:success, :content)
# Now, imagine that other code assumes `data` could be eithe...
zverok (Victor Shepelev)
07:29 AM Feature #16122: Data: simple immutable value object
I don't use `Enumerable` features of `Struct` classes, but I don't have any trouble by having `Enumerable`.
Why do you want to remove `Enumerable` features?
I can not find any benefits.
ko1 (Koichi Sasada)
02:13 PM Bug #18473 (Open): Raw data in Socket::Option#inspect on Amazon Linux 2
Hello,
I found a weird issue when running attached script. Locally on Ubuntu running kernel 5.11, on CI (GitHub Actions) and through docker image (ruby:3.1.0-alpine3.15), the response is as it should be with all data parsed correctly:...
driv3r (Leszek Zalewski)
02:11 PM Bug #18472 (Closed): rb_w32_map_errno is not found on Ruby-3.1.0
I faced Fiddle::DLError such following.
```
C:/hostedtoolcache/windows/Ruby/3.1.0/x64/lib/ruby/3.1.0/fiddle/import.rb:297:in `import_function': cannot find the function: rb_w32_map_errno() (Fiddle::DLError)
from C:/hostedtoolcache/...
joker1007 (Tomohiro Hashidate)
12:50 PM Revision 34ebf82e (git): [ruby/tmpdir] Use omit instead of skip for test-unit
https://github.com/ruby/tmpdir/commit/40107b59b3 hsbt (Hiroshi SHIBATA)
12:45 PM Revision 9b3dcf19 (git): [ruby/net-http] Use omit instead of skip for test-unit
https://github.com/ruby/net-http/commit/843d4548de hsbt (Hiroshi SHIBATA)
12:40 PM Revision 167121a9 (git): [ruby/find] Use omit instead of skip for test-unit
https://github.com/ruby/find/commit/0ebbd5b852 hsbt (Hiroshi SHIBATA)
12:35 PM Revision 6b87d980 (git): [ruby/zlib] Use omit instead of skip for test-unit
https://github.com/ruby/zlib/commit/5f23cd3009 hsbt (Hiroshi SHIBATA)
12:17 PM Revision f95039af (git): Use omit instead of skip without the default gems tests
hsbt (Hiroshi SHIBATA)
11:20 AM Revision 6d3ee418 (git): [rubygems/rubygems] Markup code with RDoc notations
https://github.com/rubygems/rubygems/commit/c29cd23826 nobu (Nobuyoshi Nakada)
10:58 AM Revision b633c9ac (git): Reduce p_args rules with p_rest
palkan (Vladimir Dementyev)
10:38 AM Feature #18408: Allow pattern match to set instance variables
palkan (Vladimir Dementyev) wrote in #note-6:
> jeremyevans0 (Jeremy Evans) wrote in #note-2:
> ...
Here is a PR: https://github.com/ruby/ruby/pull/5426
palkan (Vladimir Dementyev)
08:21 AM Feature #18408: Allow pattern match to set instance variables
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> I don't think it's a bug that pattern match only supports setting local variables. However, I agree that it would be a useful feature for pattern match to support setting instance variabl...
palkan (Vladimir Dementyev)
08:19 AM Feature #18408: Allow pattern match to set instance variables
baweaver (Brandon Weaver) wrote in #note-4:
> While we're in that domain where would we want to draw the line? Globals, constants, class variables?
> ...
I think, the phrase "variable assignment" draws a line here: any variable (local,...
palkan (Vladimir Dementyev)
07:17 AM Feature #18408: Allow pattern match to set instance variables
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> I don't think it's a bug that pattern match only supports setting local variables. However, I agree that it would be a useful feature for pattern match to support setting instance variabl...
baweaver (Brandon Weaver)
08:55 AM Bug #18471: Regex#match(re, position) with start of a string anchors ^ and \A
`\G` matches.
```ruby
str = "hello world"
/\Gworld/.match(str, 6)
```
znz (Kazuhiro NISHIYAMA)
08:54 AM Bug #18471: Regex#match(re, position) with start of a string anchors ^ and \A
> I [...] expect [...] staring from position 6 in “hello world” [to] be equivalent to staring with position 0 in [the sub-]string “world”
I do not think so. Moving "the position in the string to begin the search" does not mean the strin...
sawa (Tsuyoshi Sawada)
08:14 AM Bug #18471 (Rejected): Regex#match(re, position) with start of a string anchors ^ and \A
Found this. Is it a bug in `Regex#match(re, position)`?
From `Regex#match` docs
> If the second parameter is present, it specifies the position in the string to begin the search.
```rb
str = "hello world"
/^world/.match(str, 6...
vlazar (Vlad Zarakovsky)
08:33 AM Revision b5310b89 (git): Fix compile errors
```
compiling ../ruby.c
../ruby.c:1547:17: error: implicit declaration of function 'setup_yjit_options' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
setup_yjit_options(s, &opt->yjit);
^
../r...
znz (Kazuhiro NISHIYAMA)
08:26 AM Revision 3d675c72 (git): Use `setup_yjit_options` only when supported
nobu (Nobuyoshi Nakada)
07:46 AM Bug #18470 (Closed): Union of two identical sets produces a set with duplicate members
byroot (Jean Boussier)
07:45 AM Bug #18470: Union of two identical sets produces a set with duplicate members
> `Set#reset`
Ah, that's the rehash equivalent I didn't see.
Yeah, I think we can close.
byroot (Jean Boussier)
01:18 AM Bug #18470: Union of two identical sets produces a set with duplicate members
Doesn't the following from https://bugs.ruby-lang.org/issues/16996 address this issue?
> ...
> ...
It seems like this is not a bug and the outcome is expected without a call to `Set#reset`:
```ruby
C = Struct.new :id
a = Set.new
...
ufuk (Ufuk Kayserilioglu)
01:08 AM Bug #18470: Union of two identical sets produces a set with duplicate members
> The main problem is that `Set` doesn't expose a `rehash` method, so there's not really any way to workaround it. Maybe it should?
The rehash works. Should `add` also have a rehash?
```ruby
C = Struct.new :id
a = Set.new
f = C...
smokinggun (John Weir)
05:46 AM Feature #18136: take_while_after
I'd rather choose an obvious name, like `take_until_after`. knu (Akinori MUSHA)
02:49 AM Revision 1c9b5d45 (git): Reject command line option ending with `-`
nobu (Nobuyoshi Nakada)
02:25 AM Feature #17391 (Closed): How about removing File.exists?
Removed at https://github.com/ruby/ruby/commit/bf97415c02b11a8949f715431aca9eeb6311add2 znz (Kazuhiro NISHIYAMA)
01:12 AM Revision 8b585f74 (git): Define YJIT options only when supported
nobu (Nobuyoshi Nakada)
12:11 AM Bug #18468 (Assigned): Tutorial Link for Optionparser is broken
nobu (Nobuyoshi Nakada)
 

Also available in: Atom