Project

General

Profile

Activity

From 12/07/2021 to 12/13/2021

12/13/2021

10:29 PM Feature #18364: Add GC.stat_pool for Variable Width Allocation
> This seems incompatible and might break existing code which expects GC.stat to return a Hash[Symbol,Integer].
Quoting the dev meeting log:
> ...
Personally, I don't have a strong opinion on which route we should take (whether we ...
peterzhu2118 (Peter Zhu)
09:56 PM Feature #18364: Add GC.stat_pool for Variable Width Allocation
peterzhu2118 (Peter Zhu) wrote in #note-10:
> Thank you for the summary @mame! We'll extend `GC.stat` to return a nested data structure.
This seems incompatible and might break existing code which expects `GC.stat` to return a `Hash[...
Eregon (Benoit Daloze)
08:01 PM Feature #18364: Add GC.stat_pool for Variable Width Allocation
Thank you for the summary @mame! We'll extend `GC.stat` to return a nested data structure. peterzhu2118 (Peter Zhu)
09:31 PM Feature #17785: Allow named parameters to be keywords
matheusrich (Matheus Richard) wrote in #note-11:
> Since we have `__method__`, maybe adding something like `__params__`?
I dislike this approach because it will introduce lots of complexity for Ruby implementations, and will likely m...
Eregon (Benoit Daloze)
03:25 AM Feature #17785: Allow named parameters to be keywords
matheusrich (Matheus Richard) wrote in #note-11:
> Since we have `__method__`, maybe adding something like `__params__`?
I really like this idea. Although I would prefer having different names for positional vs keywords, so maybe `__arg...
Dan0042 (Daniel DeLorme)
08:57 PM Feature #18408 (Rejected): Allow pattern match to set instance variables
I expected this to work:
```ruby
42 => @v
```
But instead it raises "syntax error, unexpected instance variable"
Is this intentional?
Dan0042 (Daniel DeLorme)
08:29 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
Dan0042 (Daniel DeLorme) wrote in #note-21:
> austin (Austin Ziegler) wrote in #note-20:
> ...
I would rather call it `keyword-ish`, _as_ it would only be used in cases that are not currently legal syntax in any case. However, I think ...
austin (Austin Ziegler)
08:21 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
austin (Austin Ziegler) wrote in #note-20:
> I would personally prefer `as` over` =>` for this, as it doesn’t _increase_ the number of ways that `=>` gets used in Ruby.
I also like `as`, it's beautifully readable. But it would be a n...
Dan0042 (Daniel DeLorme)
07:43 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
Dan0042 (Daniel DeLorme) wrote in #note-19:
> The syntax `def name(external_name: default_value => internal_name)` has been suggested twice independently (#16460, #18402) so I think that would be fairly intuitive to any rubyist. And if ...
austin (Austin Ziegler)
06:41 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
The syntax `def name(external_name: default_value => internal_name)` has been suggested twice independently (#16460, #18402) so I think that would be fairly intuitive to any rubyist. And if instance variables were allowed as the internal... Dan0042 (Daniel DeLorme)
04:02 PM Bug #18396: An unexpected "hash value omission" syntax error when without parentheses call expr follows
I think this patch will change the meaning of `p x:` as matz said.
```diff
diff --git a/parse.y b/parse.y
index 0ff3ddbb4e..d92decfc1c 100644
--- a/parse.y
+++ b/parse.y
@@ -9290,7 +9290,7 @@ parser_yylex(struct parser_params *p)...
mame (Yusuke Endoh)
09:11 AM Bug #18396: An unexpected "hash value omission" syntax error when without parentheses call expr follows
The current state of things is indeed quite confusing (Wrote a small blog post on it: https://zverok.github.io/blog/2021-12-08-value-omission-debug.html).
As far as I can understand, the kind of old code that would be affected should ...
zverok (Victor Shepelev)
02:56 AM Bug #18396 (Open): An unexpected "hash value omission" syntax error when without parentheses call expr follows
Although it's incompatible, I think it's worth improving. I estimate that the compatibility issue is minimal.
After 3.1 release, we experiment to measure how big the issue is.
Matz.
matz (Yukihiro Matsumoto)
03:20 PM Revision 94494a56 (git): [ci skip] NEWS.md: Update Variable Width Allocation
peterzhu2118 (Peter Zhu)
03:17 PM Bug #18407: Behavior difference between integer and string flags to File creation
Digging just a little bit:
```c
#ifdef O_BINARY
if (oflags & O_BINARY) {
fmode |= FMODE_BINMODE;
}
#endif
```
and:
```ruby
>> File::BINARY
=> 0
```
In short `File::BINARY` is noop on unixes, it's a windows o...
byroot (Jean Boussier)
03:08 PM Bug #18407: Behavior difference between integer and string flags to File creation
Thank you @byroot. deivid (David Rodríguez)
03:07 PM Bug #18407: Behavior difference between integer and string flags to File creation
Reduced test, without open-uri and without changing the default external encoding:
```ruby
Encoding.default_internal = Encoding::UTF_8
f = File.new("/tmp/test.bin", File::CREAT | File::WRONLY | File::TRUNC | File::BINARY)
f.write "...
byroot (Jean Boussier)
02:42 PM Bug #18407 (Closed): Behavior difference between integer and string flags to File creation
Hi!
I was under the impression that these two commands should either both work of both fail, however they behave differently.
```shell-session
$ ruby -ropen-uri -EUTF-8:UTF-8 -e 'f = File.new("foo", "wb"); f.write URI.open("https:...
deivid (David Rodríguez)
03:03 PM Revision 845edc06 (git): * 2021-12-14 [ci skip]
git[bot]
03:03 PM Revision 4926647b (git): NEWS.md: sort [ci skip]
nobu (Nobuyoshi Nakada)
02:53 PM Revision 774b0440 (git): [ci skip] NEWS.md: Add Variable Width Allocation
peterzhu2118 (Peter Zhu)
02:14 PM Bug #18373: Bundled gem (RBS, debug) extensions are not properly built
this only breaks when you run "make install DESTDIR=/some/path"

but it works nicely without. so this is a bug in how DESTDIR is passed
to the rubygems extensions build.

darix

--
Always remember:
Never accept the world as it...
darix (Marcus Rückert)
12:20 PM Revision a08d8180 (git): NEWS.md: One more surrounding brackets for the ticket
nobu (Nobuyoshi Nakada)
11:44 AM Revision 8411e844 (git): [ruby/reline] Remove unnecessary variables, lower_space
The number of lines below the cursor position was known by
"@rest_height" alone, but the problem was caused by adding
"lower_space". Remove "lower_space" as it is unnecessary.
https://github.com/ruby/reline/commit/a575cef6a3
aycabta (aycabta .)
10:56 AM Revision 446a11f2 (git): [DOC] Add call sequences of Random using a range
nobu (Nobuyoshi Nakada)
10:55 AM Revision dc490ace (git): [DOC] Improve Random::Formatter description and example
nobu (Nobuyoshi Nakada)
10:47 AM Revision 6859d175 (git): [DOC] Exclude Bundler only [ci skip]
nobu (Nobuyoshi Nakada)
10:15 AM Revision 7ececae4 (git): NEWS.md: move of Random::Formatter [Feature #18190]
nobu (Nobuyoshi Nakada)
10:14 AM Revision 93f0beca (git): Appveyor: Skip tests on if only document files changed [ci skip]
nobu (Nobuyoshi Nakada)
09:08 AM Revision 914563ae (git): NEWS.md: `ruby -run -e httpd` displays URLs to access [Feature #17847]
gotoken (Kentaro Goto)
08:37 AM Feature #18402: Argument Labels
Well, using keywords is only a bonus side effect of arguments labels.
The main idea / need is to use different names for variables/arguments when calling the method and inside the method itself.
Thanks to you and this link, I was able ...
Lomig (Lomig Enfroy)
05:28 AM Revision c81d7d7c (git): NEWS.md: RFC 3339 UTC for unknown offset local time [Feature #17544]
nobu (Nobuyoshi Nakada)
05:21 AM Revision 47a12c88 (git): LEGAL: mention error_highlight
mame (Yusuke Endoh)
05:20 AM Revision 4ffb0bd6 (git): NEWS.md: Mention `in:` option of Time.new [Feature #17485]
nobu (Nobuyoshi Nakada)
05:19 AM Revision 2c0de392 (git): NEWS.md: `--disable-gems` is now just for debugging. [Feature #17684]
mame (Yusuke Endoh)
05:16 AM Revision ff029f25 (git): [DOC] Get rid of headings in list items
The current RDoc Markdown parser parses the list item starting
with `#` as a heading line.
nobu (Nobuyoshi Nakada)
05:02 AM Revision 0ee127e5 (git): add a NEWS entry for `TracePoint.allow_reenter`
ko1 (Koichi Sasada)
05:01 AM Revision 1da1d747 (git): NEWS.md: `def foo = puts "Hello"` is now allowed [Feature #17398]
mame (Yusuke Endoh)
04:53 AM Revision d463b407 (git): NEWS.md: Mention suspendatble coverage [Feature #18176]
mame (Yusuke Endoh)
04:49 AM Revision a6fb63d2 (git): NEWS.md: Use more descriptive example for error_highlight
mame (Yusuke Endoh)
04:21 AM Revision 9ad34da4 (git): [DOC] Mention RBOOL in extension.rdoc [Feature #13125]
nobu (Nobuyoshi Nakada)
03:53 AM Feature #18406 (Closed): Remove `NODE_DASGN_CURR`
Applied in changeset commit:git|54f0e63a8c53753af7db8653972ac450415eae13.
----------
Remove `NODE_DASGN_CURR` [Feature #18406]
This `NODE` type was used in pre-YARV implementation, to improve
the performance of assignment to dynamic lo...
nobu (Nobuyoshi Nakada)
01:55 AM Feature #18406 (Closed): Remove `NODE_DASGN_CURR`
This `NODE` type was used in pre-YARV implementation, to improve the performance of assignment to dynamic local variable defined at the innermost scope.
It has no longer any actual difference with `NODE_DASGN`, except for the node dump.
nobu (Nobuyoshi Nakada)
03:53 AM Revision 54f0e63a (git): Remove `NODE_DASGN_CURR` [Feature #18406]
This `NODE` type was used in pre-YARV implementation, to improve
the performance of assignment to dynamic local variable defined at
the innermost scope. It has no longer any actual difference with
`NODE_DASGN`, except for the node dump.
nobu (Nobuyoshi Nakada)
02:11 AM Revision d3c8f7b1 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
01:50 AM Feature #11346 (Rejected): New #intern_str or similarly-named method of Symbol to return a cached, frozen string (like "string".freeze)
ko1 (Koichi Sasada)
01:39 AM Feature #17848 (Rejected): inline rbs either by rdoc comments or changing syntax
ko1 (Koichi Sasada)
01:29 AM Revision a692a159 (git): ruby.c: Fix typo
mame (Yusuke Endoh)
01:29 AM Revision 8613c0c6 (git): Introduce an option "--dump=insns_without_opt" for debugging purposes
mame (Yusuke Endoh)
01:24 AM Bug #18405 (Closed): Regression in Struct member setter method parameters
Applied in changeset commit:git|6659253cc6c807641e23d469b425ddcf18de7af4.
----------
Struct setter's parameters == `[:req, :_]`
fix [Bug #18405]
Note that the parameter name `_` is not a spec, so we shouldn't
rely on this behavior.
ko1 (Koichi Sasada)
01:24 AM Revision 84cd3964 (git): * 2021-12-13 [ci skip]
git[bot]
01:23 AM Revision 5164c2b3 (git): Pass UnboundMethod to 2nd arg of define_method
ko1 (Koichi Sasada)
01:23 AM Revision fdfb43b2 (git): fix Struct's setter arity
https://github.com/ruby/ruby/pull/5131/files#diff-b2553d23e6b1fe76e20608d06c25f6acca06279100f1a9c24febcd79a82fac3cR2689 ko1 (Koichi Sasada)
01:23 AM Revision 6659253c (git): Struct setter's parameters == `[:req, :_]`
fix [Bug #18405]
Note that the parameter name `_` is not a spec, so we shouldn't
rely on this behavior.
ko1 (Koichi Sasada)
01:23 AM Revision 4d0cb1a5 (git): add `method_def_aritry()`
ko1 (Koichi Sasada)
12:43 AM Feature #17942: Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars as part of constructor
> If you want really concise class definitions, use `Struct`. It doesn't get much more concise than:
> ...
This construction is bad because:
1. It **looks awkward**, and not consistent with the rest of the classes declarations in the p...
LevLukomskyi (Lev Lukomskyi)

12/12/2021

05:05 PM Bug #18405: Regression in Struct member setter method parameters
https://github.com/ruby/ruby/pull/5252 ko1 (Koichi Sasada)
07:12 AM Revision 2f79d6d3 (git): Update bundled_gems at 2021-12-12
git[bot]
04:05 AM Revision e4b35b15 (git): [ruby/cgi] Check integer overflow in long range
https://hackerone.com/reports/1328463
https://github.com/ruby/cgi/commit/ccaf6027e0
nobu (Nobuyoshi Nakada)

12/11/2021

11:45 PM Revision fbd73370 (git): * 2021-12-12 [ci skip]
git[bot]
11:45 PM Revision 3518b00d (git): YJIT: Edit module documentation for clarity
Add an empty line before the module doc string so RDoc can find it.
While we are at it, edit for clarity. The file should already be
using frozen string literals since c10d5085a247266c6399dc6fb68706d87cbdab05.
[ci skip]
alanwu (Alan Wu)
08:42 PM Misc #18404: 3.1 documentation problems tracking ticket
@ioquatix oh, indeed. And new methods that can/should be supported by the scheduler aren't yet in the `SchedulerInterface` :( zverok (Victor Shepelev)
08:31 PM Misc #18404: 3.1 documentation problems tracking ticket
`IO::Buffer` is also totally undocumented. ioquatix (Samuel Williams)
04:50 PM Misc #18404 (Closed): 3.1 documentation problems tracking ticket
So far, comparing the NEWS.md to actual documentation at https://docs.ruby-lang.org/en/master/, I identified the following problems:
* [Random::Formatter](https://docs.ruby-lang.org/en/master/Random/Formatter.html): the explanations o...
zverok (Victor Shepelev)
08:14 PM Bug #18405 (Closed): Regression in Struct member setter method parameters
Since the [PR optimizing Struct accessors](https://github.com/ruby/ruby/pull/5131) was merged, the behaviour of `Method#parameters` on Struct member setter methods has changed.
**Before:**
```ruby
S = Struct.new(:foo)
S.instance_me...
ufuk (Ufuk Kayserilioglu)
06:53 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
headius (Charles Nutter) wrote in #note-13:
> I would like to see this feature happen in some way, but most of the use cases I considered will want to process and keep the top X frames, where X is variable at runtime depending on what w...
jeremyevans0 (Jeremy Evans)
09:57 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
Sorry I missed all discussions, this has been a pretty busy autumn.
> find_caller is going to find a single entry from call frames. Is it sufficient for OP's demand?
find_caller is one use case, and probably the most common use case. I...
headius (Charles Nutter)
02:07 PM Feature #14794: Primitive arrays (Ruby 3x3)
thanks for your interest @mame!
btw I found a bug in pypy which leads to a slow performance in this benchmark which is now fixed
> performs an experiment with some real-world applications like Rails
based on experiments on TruffleRuby...
ahorek (Pavel Rosický)
02:05 PM Revision d7ef372c (git): Remove the macOS badge [ci skip]
It is disabled for the throughput of CI for now. nobu (Nobuyoshi Nakada)
10:03 AM Bug #18403 (Closed): Backport ecb2ff60507a41c624f59cb9da6a008ab3ec36e1 to ruby_3_0
ecb2ff60507a41c624f59cb9da6a008ab3ec36e1 should be backported into ruby_3_0.
Since the tiny flaw was introduced at the great header split, ruby_2_7 and earlier are not affected.
nagachika (Tomoyuki Chikanaga)
09:05 AM Feature #18402: Argument Labels
Sounds quite similar to [Feature #17785].
The current working solution is:
```ruby
def change_color(to:, for:, until:)
do_something_with(to)
do_something_else_with(binding.local_variable_get(:for), binding.local_variable_ge...
byroot (Jean Boussier)
04:37 AM Feature #18402: Argument Labels
Oh, I think the rightward assignment idea is brilliant; it would make sense and be kind of consistent syntaxically speaking! Lomig (Lomig Enfroy)
01:33 AM Feature #18402: Argument Labels
tentative +1
if/for/until are useful as keyword arguments but almost impossible to use as local variables.
But the suggested syntax makes it look to me like `new_color` is the keyword argument rather than the local alias.
I'd like to ...
Dan0042 (Daniel DeLorme)
01:08 AM Feature #18402 (Open): Argument Labels
As a developer, I mainly program in two languages: Swift and Ruby.
I love Ruby with all my heart, but I came to like a particular feature of Swift: **Argument labels** ; I would love to see them appear in Ruby.
Matz on Twitter sugges...
Lomig (Lomig Enfroy)
05:29 AM Revision b5c4570a (git): [ruby/reline] Prefer wait_readable for fiber scheduler.
https://github.com/ruby/reline/commit/06b4aa31fd Samuel Williams
05:01 AM Revision c91fb5db (git): Update stdlib versions [ci skip]
znz (Kazuhiro NISHIYAMA)

12/10/2021

05:23 PM Revision ecb2ff60 (git): intern/select/posix.h: remove unused parameter from rb_fd_dup
This unused parameter seems to be accidently introduced by https://github.com/ruby/ruby/commit/9e6e39c katei (Yuta Saito)
04:50 PM Revision e5ff030f (git): Enhanced RDoc for String (#5234)
Treated:
#to_i
#to_f
#to_s
#inspect
#dump
#undump
burdettelamar (Burdette Lamar)
04:08 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
matz (Yukihiro Matsumoto) wrote in #note-10:
> `find_caller` is going to find a single entry from call frames. Is it sufficient for OP's demand?
Hopefully @headius can answer that. I assume that finding the first matching entry woul...
jeremyevans0 (Jeremy Evans)
03:13 PM Revision d6817d05 (git): * 2021-12-11 [ci skip]
git[bot]
03:13 PM Revision 1a62a50c (git): [rubygems/rubygems] Add `github` and `ref` options to `bundle add`
https://github.com/rubygems/rubygems/commit/c3e54acab0 Vyacheslav Alexeev
01:19 PM Revision 5f1975a4 (git): [ruby/reline] @convert_meta is true unless 8-bit characters
If Reline::IOGate.encoding contains 7-bit characters, convert-meta will set it On.
Because in readline(3):
> The default is On, but readline will set it to Off if the locale contains eight-bit characters.
As far as I know, 7-bit enco...
ima1zumi (Mari Imaizumi)
01:19 PM Revision 519a945e (git): [ruby/reline] Execute compress_meta_key if convert_meta is on
fix `#357`
When using 8-bit characters, it is better not to use `compress_meta_key`.
I believe not to use `compress_meta_key` unless `set convert-meta on` is written in the `.inputrc`.
The following is a quote from tmtm's comments.
> ...
ima1zumi (Mari Imaizumi)
01:18 PM Revision 3a2ae5bb (git): [ruby/reline] unleash real pasting speed
2700msec -> 410msec
read 80 console inputs at once
https://github.com/ruby/reline/commit/eb3ef7af98
YO4 (Yoshinao Muramatsu)
01:18 PM Revision 74765a5a (git): [ruby/reline] unleash pasting speed
https://github.com/ruby/reline/commit/074e407c62 YO4 (Yoshinao Muramatsu)
01:16 PM Revision aed21d65 (git): [ruby/reline] support input surrogate paird codepoint
support surrogate pair input
https://github.com/ruby/reline/commit/0b4acedc6a
YO4 (Yoshinao Muramatsu)
01:15 PM Revision 66e14e20 (git): [ruby/reline] follow consolemode change
fix 'https://github.com/ruby/reline/issues/300'
https://github.com/ruby/reline/commit/b2cc6805a8
YO4 (Yoshinao Muramatsu)
11:54 AM Revision eb2d3c19 (git): [rubygems/rubygems] Properly fetch Gem#latest_spec_for with multiple sources
https://github.com/rubygems/rubygems/commit/a93ec63df3 Kevin Logan
10:09 AM Revision 0e60bc11 (git): [rubygems/rubygems] Ignore dependencies not actually locked from frozen check
Only needed if there can be no explicit global source (bundler < 3).
https://github.com/rubygems/rubygems/commit/73923f4af5
deivid (David Rodríguez)
09:39 AM Revision 30268d1d (git): Prefer flat_map
nobu (Nobuyoshi Nakada)
09:39 AM Revision a5baf8d6 (git): Revert zero-check for alloca
Something weird results in int-in-bool-context and
stringop-overflow warnings.
nobu (Nobuyoshi Nakada)
08:15 AM Revision 787daea6 (git): Allow configuring TRANSIENT_HEAP_TOTAL_SIZE
Some platforms have memory resource limits, but theap's memory area is
too large for such situations. So allow configuring the size at
build-time.
katei (Yuta Saito)
07:01 AM Revision 0cefc2fb (git): Update bundled_gems at 2021-12-10
git[bot]
05:55 AM Revision 21749f7b (git): Update stdlib versions [ci skip]
znz (Kazuhiro NISHIYAMA)
12:07 AM Bug #18398 (Closed): bundler cannot install digest
hsbt (Hiroshi SHIBATA)
12:07 AM Bug #18400: Cannot require 'prime' in irb @ 3.1.0.preview1
You should add `prime` into your `Gemfile` for using prime via bundler environment. hsbt (Hiroshi SHIBATA)
12:06 AM Bug #18400 (Assigned): Cannot require 'prime' in irb @ 3.1.0.preview1
hsbt (Hiroshi SHIBATA)

12/09/2021

09:00 PM Feature #11689 (Closed): Add methods allow us to get visibility from Method and UnboundMethod object.
Applied in changeset commit:git|27278150685e738f84105d09843d3ba371146c7a.
----------
Add {Method,UnboundMethod}#{public?,private?,protected?}
These methods allow for checking whether the method has that
visibility.
Implements [Feature...
jeremyevans (Jeremy Evans)
08:59 PM Revision 27278150 (git): Add {Method,UnboundMethod}#{public?,private?,protected?}
These methods allow for checking whether the method has that
visibility.
Implements [Feature #11689]
jeremyevans (Jeremy Evans)
08:20 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
+1 for `find_caller` semantics since it allows both search and iteration
```ruby
find_caller{ |c| c.file =~ rx }
find_caller{ |c| list << c; c.file =~ rx }; list
```
Since the entire point of this feature is to stop iterating on...
Dan0042 (Daniel DeLorme)
07:49 AM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
`find_caller` is going to find a single entry from call frames. Is it sufficient for OP's demand?
Besides that, is it worth adding a global Kernel method?
I doubt both. I am not against adding the feature, but first, we have to make ...
matz (Yukihiro Matsumoto)
06:38 PM Revision 74159f7f (git): [DOC] Stop mentioning Qfalse==0 for C extensions
See [Feature #18397] for detail. Follow up for
b859397e1b25a3f7847a380e7dd7db62f94fbe66.
[ci skip]
Co-authored-by: Koichi Sasada <ko1@atdot.net>
alanwu (Alan Wu)
05:41 PM Feature #18401 (Open): Rework `require_relative` to add the "current path" on `$LOAD_PATH`
I think that since inception of `require_relative`, the implementation is wrong and is going against the spirit of `require` functionality. Let me explain.
If there is `require "foo"`, it does something like:
~~~
r = $LOAD_PATH.se...
vo.x (Vit Ondruch)
04:46 PM Feature #16978: Ruby should not use realpath for __FILE__
I wonder what is the situation here given that the #17885 seems to be resolved? vo.x (Vit Ondruch)
04:24 PM Feature #18397 (Closed): Remove documentation that Qfalse == 0 in `extension.rdoc`, instead encourage use of RTEST
Applied in changeset commit:git|b859397e1b25a3f7847a380e7dd7db62f94fbe66.
----------
[DOC] Stop recommending Qfalse==0 assumption to C extensions
Encourage use of RTEST(), direct Qfalse comparison, and remove references to
Qfalse == 0 ...
jemmai (Jemma Issroff)
04:23 PM Revision b859397e (git): [DOC] Stop recommending Qfalse==0 assumption to C extensions
Encourage use of RTEST(), direct Qfalse comparison, and remove references to
Qfalse == 0 in extension documentation.
See [Bug #18397] for detail.
[ci skip]
jemmai (Jemma Issroff)
04:04 PM Revision bcc2bb28 (git): Fix stack buffer overflow
https://hackerone.com/reports/1306859 nobu (Nobuyoshi Nakada)
03:56 PM Feature #15912 (Closed): Allow some reentrancy during TracePoint events
Applied in changeset commit:git|9873af0b1a343dff6d1a8af4c813aa2c9ecc47d5.
----------
`TracePoint.allow_reentry`
In general, while TracePoint callback is running,
other registerred callbacks are not called to avoid
confusion by reentrac...
ko1 (Koichi Sasada)
08:47 AM Feature #15912: Allow some reentrancy during TracePoint events
Thank you. also @byroot and colleagues proposed `TracePoint.allow_reentry`, so I change the name.
Matz also accepted the name and feature, so I'll merge it.
ko1 (Koichi Sasada)
08:16 AM Feature #15912: Allow some reentrancy during TracePoint events
ko1 (Koichi Sasada) wrote in #note-14:
> naming issue:
> ...
I'm not completely sure about what would be at `...`, but maybe `allow_reentry` or `allow_reenter` should also be considered as method names, because they are shorter.
duerst (Martin Dürst)
03:56 PM Revision 9873af0b (git): `TracePoint.allow_reentry`
In general, while TracePoint callback is running,
other registerred callbacks are not called to avoid
confusion by reentrace.
This method allow the reentrace. This method should be
used carefully, otherwize the callback can be easily cal...
ko1 (Koichi Sasada)
03:53 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
vo.x (Vit Ondruch) wrote in #note-5:
> Thanks for looking into this. However, applying these two patches, while fixing i686, it breaks ppc64le :(
> ...
Since I have the PPC at hand, here is the full backtrace:
~~~
$ make gdb-ruby TESTRU...
vo.x (Vit Ondruch)
03:50 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
peterzhu2118 (Peter Zhu) wrote in #note-13:
> Hmmm, that's really odd. I think I can get access to the ppc64 machine on rubyci.org. I'll try to debug this next week.
If you like, you could ping @sharkcz on #fedora-ppc at libera.chat ...
vo.x (Vit Ondruch)
02:21 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
Hmmm, that's really odd. I think I can get access to the ppc64 machine on rubyci.org. I'll try to debug this next week. peterzhu2118 (Peter Zhu)
12:18 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
Heare I am stepping through the `rb_aligned_malloc`
~~~
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /builddir/build/BUILD/ruby-3.0.3/miniruby
Download fail...
vo.x (Vit Ondruch)
11:29 AM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
It seems that the `rb_aligned_malloc` already returns inaccessible pointer:
~~~
Breakpoint 1, heap_page_allocate (objspace=0x1004b1400) at gc.c:1806
1806 page_body = (struct heap_page_body *)rb_aligned_malloc(HEAP_PAGE_ALIGN, HE...
vo.x (Vit Ondruch)
11:19 AM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
~~~
$ gdb --args ./miniruby -I./lib -I. -I.ext/common ./tool/generic_erb.rb -o builtin_binary.inc ./template/builtin_binary.inc.tmpl -- --cross=no
GNU gdb (GDB) Fedora 11.1-6.fc36
Copyright (C) 2021 Free Software Foundation, Inc...
vo.x (Vit Ondruch)
03:45 PM Misc #18399: DevMeeting-2022-01-13
* [Feature #18367] Stop the interpreter from escaping error messages (mame)
* At the previous dev-meeting, we decided to survey the current status of how modern terminal emulators handle untrusted escape sequences.
* I surveyed rxv...
mame (Yusuke Endoh)
01:27 PM Misc #18399: DevMeeting-2022-01-13
* [Feature #18368] `Range#step` semantics for non-`Numeric` ranges (zverok)
* Is there a reason why `(timestamp1...timestamp2).step(3.hours)` is not what `#step` supports?
* If there is, can there be a new method introduced with th...
zverok (Victor Shepelev)
12:31 PM Misc #18399 (Closed): DevMeeting-2022-01-13
# The next dev meeting
**Date: 2022/01/13 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-01-13.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bu...
mame (Yusuke Endoh)
03:38 PM Feature #18351: Support anonymous rest and keyword rest argument forwarding
mame (Yusuke Endoh) wrote in #note-3:
> The concern about `Method#parameters` should be discussed after Ruby 3.1 is released. Now `Method#parameters` of `def foo(...)` returns `[[:rest, :*], [:keyrest, :**], [:block, :&]]`. After this c...
jeremyevans0 (Jeremy Evans)
12:16 PM Feature #18351: Support anonymous rest and keyword rest argument forwarding
@matz basically accepted this proposal for Ruby 3.2.
The concern about `Method#parameters` should be discussed after Ruby 3.1 is released. Now `Method#parameters` of `def foo(...)` returns `[[:rest, :*], [:keyrest, :**], [:block, :&]]...
mame (Yusuke Endoh)
03:37 PM Feature #18367: Stop the interpreter from escaping error messages
I read [the article about the vulnerability](https://marc.info/?l=bugtraq&m=104612710031920&w=2) again.
It clearly insists that this vulnerability should be addressed in the side of terminal emulators.
> The responsibility
> ...
...
mame (Yusuke Endoh)
10:12 AM Feature #18367: Stop the interpreter from escaping error messages
IMHO if there is any vulnerability there it would be a bug of the terminal emulator, not Ruby.
And we'd have the same issue for any puts or logging when shown in a terminal without escaping.
If the attack is a bell sound or changing ...
Eregon (Benoit Daloze)
06:46 AM Feature #18367: Stop the interpreter from escaping error messages
This ticket was discussed at the dev-meeting as a strongly-related topic of #18370.
We need to be careful to remove security measures. We should first check if the vulnerability in question is still valid with modern popular terminal ...
mame (Yusuke Endoh)
03:33 PM Revision 88c804a6 (git): * 2021-12-10 [ci skip]
git[bot]
02:17 PM Bug #18400 (Closed): Cannot require 'prime' in irb @ 3.1.0.preview1
## Description
If I run `ruby script.rb` with `require 'prime'` then it will work fine.
But after entering irb, I can `require 'net/http'` , but with **prime** I get following error.
Problem occurs with:
> The following default ...
chooosen (Piotr Wasiak)
12:51 PM Revision da652e18 (git): Check month overflow when marshal
https://hackerone.com/reports/1244185 nobu (Nobuyoshi Nakada)
12:30 PM Misc #18346 (Closed): DevelopersMeeting20211209Japan
mame (Yusuke Endoh)
12:24 PM Feature #18370: Call Exception#full_message to print exceptions reaching the top-level
This ticket was discussed at today's dev-meeting (https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20211209Japan.md). We need to first decide whether #18367 is acceptable or not.
If we were to accept #18367, this pro...
mame (Yusuke Endoh)
10:08 AM Feature #18370: Call Exception#full_message to print exceptions reaching the top-level
#18367 wants the opposite, i.e., not escape control chars.
As already mentioned, JRuby & TruffleRuby both currently already have the behavior to not escape control chars.
BTW, wouldn't that change even escape \n? (looking at https://...
Eregon (Benoit Daloze)
06:21 AM Feature #18370: Call Exception#full_message to print exceptions reaching the top-level
I think it is a bug that `Exception#full_message` doesn't escape control chars.
https://github.com/nobu/ruby/pull/new/full_message-escape
nobu (Nobuyoshi Nakada)
12:02 PM Feature #18364: Add GC.stat_pool for Variable Width Allocation
This ticket was discussed at today's dev-meeting. Matz had directly asked @tenderlovemaking for a few things. I record them as far as I remember:
* Instead of adding a new method, it looks good for `GC.stat` to return a nested data st...
mame (Yusuke Endoh)
11:27 AM Feature #18190 (Closed): Split `Random::Formatter` from securerandom
Applied in changeset commit:git|12a0a89e22fbc312e4a95a7749bc153532daa855.
----------
[ruby/securerandom] Split Random::Formatter from SecureRandom [Feature #18190]
https://github.com/ruby/securerandom/commit/1e57277b9e
nobu (Nobuyoshi Nakada)
09:50 AM Feature #18190: Split `Random::Formatter` from securerandom
+1, I agree Random::Formatter should be defined in core, along Random which is already core. Eregon (Benoit Daloze)
08:08 AM Feature #18190: Split `Random::Formatter` from securerandom
Accepted.
Matz.
matz (Yukihiro Matsumoto)
11:26 AM Revision 12a0a89e (git): [ruby/securerandom] Split Random::Formatter from SecureRandom [Feature #18190]
https://github.com/ruby/securerandom/commit/1e57277b9e nobu (Nobuyoshi Nakada)
10:48 AM Revision 4258c8df (git): Fixed filename for Open3::VERSION
hsbt (Hiroshi SHIBATA)
10:33 AM Revision b06e37e2 (git): Followed up f5d80c26d493c14241d4e3320437e62d7f54eabb for sync_default_gems.rb
hsbt (Hiroshi SHIBATA)
10:28 AM Revision d74fe206 (git): Adjust gemspec location of default gems
hsbt (Hiroshi SHIBATA)
10:28 AM Revision f5d80c26 (git): Removed JRuby specific helper for open3
hsbt (Hiroshi SHIBATA)
10:28 AM Revision 08016914 (git): [ruby/open3] Use RbConfig's 'host_os'
RUBY_PLATFORM on JRuby is always 'java' so it does not indicate
the host OS.
https://github.com/ruby/open3/commit/d2308040e6
headius (Charles Nutter)
10:28 AM Revision eb06b37c (git): [ruby/open3] Update to match JRuby 9.4
This allows the wrapper functions in the main open3 to be defined
while using our ProcessBuilder logic for the internal popen
implementation.
Note this adds logic to reject redirects from a numeric fd to a
live IO object (or not a Strin...
headius (Charles Nutter)
10:28 AM Revision 01febcab (git): [ruby/open3] Add JRuby's Windows (JDK non-native) Open3 support
This adds JRuby's logic used on platforms where we do not have
native access to posix_spawn and related posix functions needed
to do fully-native subprocess launching and management. The code
here instead uses the JDK ProcessBuilder logi...
headius (Charles Nutter)
10:28 AM Revision 34ebd139 (git): [ruby/open3] Only use JITSupport on CRuby
Fixes #2
https://github.com/ruby/open3/commit/6b7ede69e8
headius (Charles Nutter)
10:28 AM Revision d150b8d0 (git): [ruby/open-uri] gemspec: This gem exposes 0 executables
This just makes that fact more explicit.
https://github.com/ruby/open-uri/commit/ffbfba5d69
olleolleolle (Olle Jonsson)
10:28 AM Revision c41751f1 (git): [ruby/io-wait] Bump up 0.2.1
https://github.com/ruby/io-wait/commit/c97ab9a212 hsbt (Hiroshi SHIBATA)
10:28 AM Revision dd8b9c1d (git): [ruby/English] gemspec: Remove unused "executables" configuration
This gem exposes no executables.
https://github.com/ruby/English/commit/bb1ce0af20
olleolleolle (Olle Jonsson)
10:00 AM Feature #12084: `Class#instance`
> For your information, `NilClass` is not a singleton class. It's a class with only an instance. This is side evidence of this method is confusing. Even the original proposer can misunderstand the concept.
Interesting, I think what co...
Eregon (Benoit Daloze)
07:58 AM Feature #12084: `Class#instance`
* `instance` is NG. For example, `Array.instance => nil` is confusing
* `attached_object` is better, at least for singleton classes. But there's still no real-world use-case.
For your information, `NilClass` is not a singleton class....
matz (Yukihiro Matsumoto)
09:46 AM Feature #16038 (Feedback): Provide a public WeakMap that compares by equality rather than by identity
byroot (Jean Boussier)
09:33 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
Eregon (Benoit Daloze) wrote in #note-22:
> For the deduplication use-case as in the description, `WeakValuesMap` is possible too:
...
> ...
As far as I understand from the description, what byroot wanted is to use the instance itself...
mame (Yusuke Endoh)
09:28 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
> I like you to close the ticket and create another one with self-contained and complete description.
Fair. I'll chat some more with @eregon to make sure we agree on the proposal and do that for next month.
byroot (Jean Boussier)
09:26 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
byroot (Jean Boussier) wrote in #note-24:
> > The use case that we are considering now is only object deduplication?
> ...
What use case do you have for example?
> I posted an updated snippet accommodating Java based VMs:
Well. Y...
mame (Yusuke Endoh)
07:46 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
The current proposal is:
- Two new classes `WeakKeysMap` and `WeakValuesMap`
- Not too sure about the namespace, maybe inside `WeakRef`?
- Equality semantic for keys.
```ruby
Value = Struct.new(:foo)
map = WeakKeysMap.new
...
byroot (Jean Boussier)
07:42 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
I am a bit confusing. Could you summarize the **current** proposal?
Matz.
matz (Yukihiro Matsumoto)
06:51 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
> The use case that we are considering now is only object deduplication?
That's my main use case for it yes, but there are plenty of other use cases.
> ...
I posted an updated snippet accommodating Java based VMs:
```ruby
REGISTRY = W...
byroot (Jean Boussier)
02:49 AM Feature #16038: Provide a public WeakMap that compares by equality rather than by identity
Let me confirm. The use case that we are considering now is only object deduplication? Or, other use cases are also being discussed?
---
As far as I understand, eregon says "JRuby/TruffleRuby cannot implement WeakMap (in which both key...
mame (Yusuke Endoh)
09:16 AM Revision 6ff9fcdf (git): [ruby/rdoc] Support addition Object class when adding methods to top level
https://github.com/ruby/rdoc/commit/23747b4950 aycabta (aycabta .)
09:16 AM Revision 2e50989a (git): [ruby/rdoc] Resolve class and method of the same name correctly
https://github.com/ruby/rdoc/commit/1e16284fe5 aycabta (aycabta .)
09:15 AM Revision fa806cf2 (git): Fix typo of namespace
aycabta (aycabta .)
08:01 AM Feature #17881: Add a Module#const_added callback
Thank you.
> Although I think it's too late for the 3.1 release.
Assuming https://bugs.ruby-lang.org/issues/15912 does make it through for 3.1, then it's no big deal.
byroot (Jean Boussier)
07:59 AM Feature #17881: Add a Module#const_added callback
Accepted. Although I think it's too late for the 3.1 release.
Matz.
matz (Yukihiro Matsumoto)
07:53 AM Bug #18398: bundler cannot install digest
Seems to be resolved. Thank you.
Run `gem install`with `--pre` under bundler ... ok
```
$ bundle exec gem install digest --pre
Fetching digest-3.1.0.pre3.gem
Building native extensions. This could take a while...
Successfully i...
Tietew (Toru Iwase)
05:41 AM Bug #18398: bundler cannot install digest
Can you try it with `--pre` option? We fixed installation issue at `digest-3.1.0.preX`. hsbt (Hiroshi SHIBATA)
05:33 AM Bug #18398 (Closed): bundler cannot install digest
`bundle install` gives up installing `digest` gem
due to trying to write `digest.so` in global site_ruby directory (not writable).
# How to reproduce
In clean directory, create a following Gemfile:
``` ruby
source 'https://rubyg...
Tietew (Toru Iwase)
07:20 AM Bug #18243 (Closed): Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
Applied in changeset commit:git|cce331272b07636d536c8227288ab3fbcf24e2aa.
----------
`Ractor.make_shareable` checks proc's sefl
`Ractor.make_shareable(proc_obj)` raises an `IsolationError`
if the self of `proc_obj` is not a shareable o...
ko1 (Koichi Sasada)
07:20 AM Revision cce33127 (git): `Ractor.make_shareable` checks proc's sefl
`Ractor.make_shareable(proc_obj)` raises an `IsolationError`
if the self of `proc_obj` is not a shareable object.
[Bug #18243]
ko1 (Koichi Sasada)
07:15 AM Feature #14332: Module.used_refinements to list refinement modules
It's too late for 3.1. But after the release, I basically honor @shugo's decision here.
Matz.
matz (Yukihiro Matsumoto)
07:10 AM Feature #12737: Module#defined_refinements
OK, accepted. After 3.1, you can introduce:
* Module#refinements
* Refinment#refined_class
Matz.
matz (Yukihiro Matsumoto)
05:39 AM Bug #17799: Seg fault in rb_class_clear_method_cache
I wonder if https://github.com/ruby/ruby/commit/428227472fc6563046d8138aab17f07bef6af753 solved this problem, though #18282 looks different from this issue. The stack trace in https://gitlab.com/gitlab-org/gitlab/-/issues/326348#note_556... stanhu (Stan Hu)
05:02 AM Feature #18349: Let --jit enable YJIT on supported platforms
> Will --yjit option remain? I prefer the following behaviors.
> ...
I think it's the same as what's proposed here. `--jit` is to automatically choose our latest recommendation, but both `--mjit` and `--yjit` would be still useful for t...
k0kubun (Takashi Kokubun)
04:51 AM Feature #18349: Let --jit enable YJIT on supported platforms
Will `--yjit` option remain? I prefer the following behaviors.
* `--jit` means the best strategy of Ruby JIT selected by Ruby core.
* If users hope to enforce JIT strategy, They can choose `--yjit` or `--mjit` in the future.
I'm n...
hsbt (Hiroshi SHIBATA)
04:40 AM Feature #18349: Let --jit enable YJIT on supported platforms
I agreed with the proposal, including making `mjit` as a fallback.
Matz.
matz (Yukihiro Matsumoto)
03:28 AM Revision c5f68a9a (git): Fix typo in NEWS-2.5.0 [ci skip]
Akihiro Sada

12/08/2021

11:58 PM Revision 45c5794d (git): [rubygems/rubygems] Don't load system rubygems during tests
Since tests are about testing our development copy of rubygems, not
whatever is installed in the system.
https://github.com/rubygems/rubygems/commit/f5e0b68cdd
deivid (David Rodríguez)
09:59 PM Revision 82bb9ced (git): YJIT: Fix leak in compilation loop
Previously, when there are too many blocks in a batch, the last block in
the batch is not tracked in the array of batches and not freed.
alanwu (Alan Wu)
07:47 PM Revision c47e821b (git): [ruby/ostruct] Bump version to 0.5.2
Marc-Andre Lafortune
07:47 PM Revision 9c269316 (git): [ruby/ostruct] `Proc`'s self should be shareable.
To fix the issue https://bugs.ruby-lang.org/issues/18243
we need to make sure the Proc's self is shareable.
These procs are used by `define_method` and it doesn't use
Proc's self, so `nil` is enough.
ko1 (Koichi Sasada)
07:04 PM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
At least we need fix it.
This PR simply prohibits `make_shareable()` if the proc's self is unshareable.
https://github.com/ruby/ruby/pull/5232
ko1 (Koichi Sasada)
06:54 PM Feature #15912: Allow some reentrancy during TracePoint events
implementation: https://github.com/ruby/ruby/pull/5231
> tp.reentrant
It should not be an instance method of `tp` because it doesn't depend on current `tp`.
Also this is danger API, so I want to add `allow_` to make clear the meaning.
ko1 (Koichi Sasada)
06:34 PM Feature #18397 (Closed): Remove documentation that Qfalse == 0 in `extension.rdoc`, instead encourage use of RTEST
Currently, [the extension documentation](https://github.com/ruby/ruby/blob/master/doc/extension.rdoc#label-Convert+VALUE+into+C+Data) states that “Qfalse is false in C (i.e. 0).” Instead, we should encourage the use of RTEST in documenta... jemmai (Jemma Issroff)
06:29 PM Revision 9a2ecddf (git): Enhanced RDoc for String (#5227)
Treats:
#replace
#clear
#chr
#getbyte
#setbyte
#byteslice
#reverse
#reverse!
#include?
burdettelamar (Burdette Lamar)
05:15 PM Misc #18335: openindiana ruby 3.1 --enable-dtrace requires debugflags="-g1"
Patches are welcome to check them without breaking things on other platforms (including Oracle Solaris 11).
I guess that the error/failure only occurs when processing large-scale complex source codes, and simple short source codes cou...
ngoto (Naohisa Goto)
05:03 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
I don't have access to a ppc64 machine. Do you know what the crash is? peterzhu2118 (Peter Zhu)
04:52 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
Unfortunately, the build fails already in miniruby:
~~~
... snip ...
gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS ...
vo.x (Vit Ondruch)
02:16 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
Hey @vo.x, can you check if also backporting this PR fixes the crashes? https://github.com/ruby/ruby/pull/4227
Ruby 3.0 is still using `posix_memalign` to allocate pages. Only memory allocated with `mmap` is allowed to be passed into ...
peterzhu2118 (Peter Zhu)
01:04 PM Bug #18133: LTO: TestGCCompact#test_ast_compacts segfaults on i686
vo.x (Vit Ondruch) wrote in #note-5:
> Thanks for looking into this. However, applying these two patches, while fixing i686, it breaks ppc64le :(
And sometimes aarch64
vo.x (Vit Ondruch)
12:47 PM Bug #18133 (Assigned): LTO: TestGCCompact#test_ast_compacts segfaults on i686
Thanks for looking into this. However, applying these two patches, while fixing i686, it breaks ppc64le :(
~~~
[ 8890/21266] TestGCCompact#test_ast_compacts<internal:gc>:213: [BUG] Couldn't unprotect page 0x0000000140f98000
ruby 3.0...
vo.x (Vit Ondruch)
04:42 PM Feature #18395: Introduce Array#subtract! for performance
Have you benched `array.reject! { |e| array_or_set.include?(e) }`? byroot (Jean Boussier)
04:38 PM Feature #18395: Introduce Array#subtract! for performance
schneems (Richard Schneeman) wrote in #note-2:
> > We have Array#delete already, the only difference from your proposal (other than the receiver) being that it does not accept multiple arguments. I think a better proposal would be to let...
sawa (Tsuyoshi Sawada)
03:26 PM Feature #18395: Introduce Array#subtract! for performance
It would be very helpful if you could write a code example in the description to help us understand your proposal at a glance. I copied (and a bit tweaked) it from the rdoc you write in PR. Feel free to change the example if you don't li... mame (Yusuke Endoh)
02:55 PM Feature #18395: Introduce Array#subtract! for performance
> We have Array#delete already, the only difference from your proposal (other than the receiver) being that it does not accept multiple arguments. I think a better proposal would be to let Array#delete accept multiple arguments.
In orde...
schneems (Richard Schneeman)
05:16 AM Feature #18395: Introduce Array#subtract! for performance
I am strongly against it. It is a practice in Ruby for methods that destructively remove something from the receiver to return the removed value rather than the modified receiver. I also do not think it is worth adding a new method just ... sawa (Tsuyoshi Sawada)
03:30 PM Revision 1966dc7a (git): * 2021-12-09 [ci skip]
git[bot]
03:30 PM Revision 17e72196 (git): ext/ripper/lib/ripper/lexer.rb: Do not deprecate Ripper::Lexer::State#[]
The old code of IRB still uses this method. The warning is noisy on
rails console.
In principle, Ruby 3.1 deprecates nothing, so let's avoid the
deprecation for the while.
I think It is not so hard to continue to maintain it as it is a t...
mame (Yusuke Endoh)
10:11 AM Revision 3021c3ce (git): Add `to_f` to predefined conversion method name to ID table
nobu (Nobuyoshi Nakada)
08:59 AM Revision 454b4da7 (git): [DOC] Integer.try_convert [ci skip]
nobu (Nobuyoshi Nakada)
06:39 AM Bug #18396: An unexpected "hash value omission" syntax error when without parentheses call expr follows
I get it. Thank you for the explanation! koic (Koichi ITO)
04:09 AM Bug #18396 (Rejected): An unexpected "hash value omission" syntax error when without parentheses call expr follows
It is by design.
```
foo key:
bar
```
was parsed as `foo(key: bar)` in Ruby 3.0 or before. It is incompatible to change it to `foo(key: key); bar`.
Except some traditional exceptions like `puts "foo"` and `require "foo"`, it ...
mame (Yusuke Endoh)
03:25 AM Bug #18396 (Open): An unexpected "hash value omission" syntax error when without parentheses call expr follows
## Summary
I encountered an unexpected "hash value omission" syntax error when parentheses call expression follows:
```ruby
% cat example.rb
foo key:
foo arg
```
```console
% ruby -cv /tmp/b.rb
ruby 3.1.0dev (2021-12-07T23...
koic (Koichi ITO)
04:26 AM Revision af6e0883 (git): Skip bind port 1 when ip_unprivileged_port_start<=1
Linux can allow to bind port 1 to user.
And `ip_unprivileged_port_start` is 0 on [lima](https://github.com/lima-vm/lima) default vm.
```
1)
Socket#bind on SOCK_DGRAM socket raises Errno::EACCES when the current user does not have permis...
znz (Kazuhiro NISHIYAMA)

12/07/2021

11:18 PM Revision 4a3e7984 (git): Avoid Array allocation when appending to args array (#5211)
* Use duparray when possible for argspush
ARGSPUSH is the node we see with a single value pushed to the end of a
splatted array. ARGSCAT is similar, but is used when multiple values are
being concatenated to the list.
Previously only A...
jhawthorn (John Hawthorn)
10:59 PM Revision 852ea1e8 (git): [rubygems/rubygems] Remove unnecessary comment
https://github.com/rubygems/rubygems/commit/5e50f12e7a deivid (David Rodríguez)
10:59 PM Revision 76cad137 (git): [rubygems/rubygems] Don't add custom github source to `bundle init` Gemfile
It's provided by bundler.
https://github.com/rubygems/rubygems/commit/25ccaab46b
deivid (David Rodríguez)
10:59 PM Revision f0ef9ffe (git): [rubygems/rubygems] Cancel deprecation of custom git sources
https://github.com/rubygems/rubygems/commit/99cd6e0627 deivid (David Rodríguez)
10:20 PM Revision 6beb05c2 (git): YJIT: Undo add_block_version() in OOM code path
Preivously, [1] failed to undo the effect of applying
add_block_version() to a block, leaving dangling pointers in the iseq
when compilation fails.
[1]: d0772632bf2ff15f73c0d3601d958670a5c77855
alanwu (Alan Wu)
10:20 PM Revision 286c07f0 (git): YJIT: Remove guard_self_is_heap()
It's superseded by functionality added to jit_guard_known_klass().
In weird situations such as the ones in the included test,
guard_self_is_heap() triggered assertions.
Co-authored-by: Jemma Issroff <jemmaissroff@gmail.com>
alanwu (Alan Wu)
09:21 PM Feature #18395 (Open): Introduce Array#subtract! for performance
PR: https://github.com/ruby/ruby/pull/5110#issuecomment-984345309
It is common to use `-=` to modify an array to remove elements. Also, there is `Array#difference` which accepts multiple arguments. Both of these methods allocate an in...
schneems (Richard Schneeman)
07:15 PM Bug #18133 (Closed): LTO: TestGCCompact#test_ast_compacts segfaults on i686
Hi, I was able to debug a core dump for this bug. Backports in #18394 should fix it. Thanks for the bug report! peterzhu2118 (Peter Zhu)
07:14 PM Bug #18394 (Closed): Backports for read barrier for GC compaction for Ruby 3.0
Please backport commits [0130e17a410d60a10e7041ce98748b8de6946971](https://github.com/ruby/ruby/commit/0130e17a410d60a10e7041ce98748b8de6946971) and [32b7dcfb56a417c1d1c354102351fc1825d653bf](https://github.com/ruby/ruby/commit/32b7dcfb5... peterzhu2118 (Peter Zhu)
05:58 PM Bug #18373: Bundled gem (RBS, debug) extensions are not properly built
xtkoba (Tee KOBAYASHI) wrote in #note-2:
> $ grep '^arch_hdrdir' /var/tmp/build/arm64-v8a/lib/ruby/gems/3.1.0/gems/rbs-1.7.0.beta.5/ext/rbs_extension/Makefile
> ...
This is good tip:
~~~
$ grep '^arch_hdrdir' /builddir/build/BUILDR...
vo.x (Vit Ondruch)
04:49 PM Revision e51d0d28 (git): * 2021-12-08 [ci skip]
git[bot]
04:49 PM Revision 1b12ebb9 (git): [rubygems/rubygems] Add require parameter to `bundle add``
Test and ensure "false" is handled
Don't use yield_self to operate on autorequire
Remove duplicate autorequire
Add banner to require option
Don't use json to break down require params
Pass linter
https://github.com/rubygems/rubygem...
Simon Fish
02:27 PM Revision 26303c31 (git): [rubygems/rubygems] Pass "--" to git commands to separate positional and optional args
To make sure git uri's specified in Gemfile are never misinterpreted as
optional arguments, potentially allowing for local code execution.
https://github.com/rubygems/rubygems/commit/90b1ed8b9f
deivid (David Rodríguez)
02:17 PM Bug #16920: TestThread#test_signal_at_join fails on aarch64
Still issue with ruby 3.1.0dev (2021-12-07 master ec878dac90) [aarch64-linux] vo.x (Vit Ondruch)
02:15 PM Feature #18033: Time.new to parse a string
Eregon (Benoit Daloze) wrote in #note-23:
> > `Time.try_convert` feels considerable, but passing the timezone option may not fit.
> ...
Ah, my bad.
The `try_convert` methods are the implicit conversions for duck-typing, i.e, `to_int` ...
nobu (Nobuyoshi Nakada)
02:03 PM Bug #18393 (Closed): TestReadline#test_interrupt_in_other_thread fails on armv7hl
Testing Ruby 3.1 on Fedora, I observe following issue:
~~~
1) Failure:
TestReadline#test_interrupt_in_other_thread [/builddir/build/BUILD/ruby-3.1.0-ec878dac90/test/readline/test_readline.rb:574]:
Unknown failure with exit status...
vo.x (Vit Ondruch)
01:00 PM Revision bb3f17bd (git): More indentation in NEWS.md [ci skip]
The current Markdown implementation of RDoc requires list contents
to be indented 4 columns except for the first paragraph.
Maybe fixed as other implementations in the future.
nobu (Nobuyoshi Nakada)
12:56 PM Bug #18392 (Closed): ObjectSpace::WeakMap#inspect causes BUG
Applied in changeset commit:git|d6c5a30cfdf658280338dbb8c8b17fab3190b928.
----------
ObjectSpace::WeakMap#inspect: check if living object [Bug #18392]
nobu (Nobuyoshi Nakada)
05:01 AM Bug #18392 (Closed): ObjectSpace::WeakMap#inspect causes BUG
```ruby
wmap = ObjectSpace::WeakMap.new
(2**32).times do |i|
wmap[i] = "foo"
wmap.inspect
end
```
```
t.rb:6: [BUG] Segmentation fault
ruby 3.1.0dev (2021-11-05T14:20:50Z master 907aa47527) [x64-mswin64_140]
-- Contro...
ko1 (Koichi Sasada)
12:55 PM Revision a2d4e1cd (git): Fixed the check order in wmap_live_p [Bug #18392]
Check if the object is a pointer to heap before check the flag in
that object.
nobu (Nobuyoshi Nakada)
12:55 PM Revision d6c5a30c (git): ObjectSpace::WeakMap#inspect: check if living object [Bug #18392]
nobu (Nobuyoshi Nakada)
12:31 PM Bug #18391: Error building gems with binary extensions on Ruby 3.1
Thx a lot for the fix. vo.x (Vit Ondruch)
08:38 AM Bug #18391 (Closed): Error building gems with binary extensions on Ruby 3.1
Applied in changeset commit:git|ec878dac90df0ca5f39e72261b8d4e2898486a93.
----------
Move -ljemalloc to DLDLIBS [Bug #18391]
Set the alternative memory management library only as a platform
specific library, without other libraries.
nobu (Nobuyoshi Nakada)
08:30 AM Feature #15912: Allow some reentrancy during TracePoint events
What about:
```ruby
TracePoint.trace(:line) do |tp|
tp.reentrant do
...
end
end
byroot (Jean Boussier)
06:43 AM Feature #15912: Allow some reentrancy during TracePoint events
naming issue:
`TracePoint.allow_reentrance do ... end` ?
`TracePoint.allow_reentrancy do ... end` ?
ko1 (Koichi Sasada)
07:44 AM Feature #12913 (Open): A way to configure the default maximum width of pp
mame (Yusuke Endoh)
03:08 AM Feature #12913 (Closed): A way to configure the default maximum width of pp
Applied in changeset commit:git|dfd9728c87640d9699b1e7c63a6fefb6b2797fbc.
----------
NEWS.md: Describe the change of the default width of `pp`
[Feature #12913]
mame (Yusuke Endoh)
06:43 AM Misc #18346: DevelopersMeeting20211209Japan
* [Feature #18331] Kernel.#Time (sawa)
* Introduce `Kernel.#Time` {instead of/in addition to} extending `Time.new` as in #18033.
* Similar methods like `Kernel#.Integer` are used to parse strings, and this is a good fit for `Ti...
sawa (Tsuyoshi Sawada)
06:07 AM Misc #18346: DevelopersMeeting20211209Japan
* [Feature #18033] https://bugs.ruby-lang.org/issues/18033
* `Time.at("2021-12-09")` instead of `Time.new`.
* Other new methods: `Time.try_convert` or `Time.iso`.
* [Feature #18190] Split `Random::Formatter` from securerandom
* Al...
nobu (Nobuyoshi Nakada)
04:26 AM Misc #18346: DevelopersMeeting20211209Japan
* [Feature #12737] Module#defined_refinements
* Is the name Module#refinements acceptable?
* It's consistent with Module#constants.
* Other candidates: configured_refinements, contained_refinements, defined_refinements
* ...
shugo (Shugo Maeda)
06:20 AM Revision ec878dac (git): Move -ljemalloc to DLDLIBS [Bug #18391]
Set the alternative memory management library only as a platform
specific library, without other libraries.
nobu (Nobuyoshi Nakada)
06:18 AM Bug #14434: IO#reopen fails after EPIPE
I think this is a bug definitely, but non-critical. nobu (Nobuyoshi Nakada)
06:02 AM Revision 91e9d276 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
05:26 AM Bug #14891 (Closed): Pathname#join has different behaviour to File.join
nobu (Nobuyoshi Nakada)
05:21 AM Feature #18351: Support anonymous rest and keyword rest argument forwarding
compare with `...` parameter delegation, the advantage is we can specify with `*` and `**` respectively, like `def foo(*, k1:nil); bar(*, k2: k1); end` ? ko1 (Koichi Sasada)
04:21 AM Revision ad4ac68c (git): [ruby/ostruct] ostruct v0.5.1
Marc-Andre Lafortune
04:21 AM Revision 95d9bcf2 (git): [ruby/ostruct] Alias less methods
Skips methods that do not end with letter (in particular `!~` and `=~`)
For JRuby, also skip `instance_exec`, `instance_eval` and `eval`
Marc-Andre Lafortune
03:07 AM Revision dfd9728c (git): NEWS.md: Describe the change of the default width of `pp`
[Feature #12913] mame (Yusuke Endoh)
01:27 AM Revision 794b9a28 (git): YJIT: Add integrity checks for blockid
Verify that the iseq idx pair for the block is valid in
invalidate_block_version(). While we are at it, bound loop
iterating over instructions to `iseq_body->iseq_size`.
alanwu (Alan Wu)
12:24 AM Revision b7ea66bc (git): YJIT: Fix incomplete invalidation from opt_setinlinecache
As part of YJIT's strategy for promoting Ruby constant expressions into
constants in the output native code, the interpreter calls
rb_yjit_constant_ic_update() from opt_setinlinecache.
The block invalidation loop indirectly calls rb_dar...
alanwu (Alan Wu)
12:16 AM Bug #18390: Enumerator::Lazy#find returns invalid value
Oh that's good to know. I see you have created a ticket for Opal: https://github.com/opal/opal/issues/2367 . Thank you for your report anyway! mame (Yusuke Endoh)
 

Also available in: Atom