Project

General

Profile

Activity

From 10/26/2019 to 11/01/2019

11/01/2019

11:55 PM Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments
It's conceivable that it can be done without a keyword, there are other way to refer to special values.
However what do you have against a null coalescing operator? It's needed regardless of this issue, || and ||= are inadequate becau...
bughit (bug hit)
09:55 PM Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments
bughit (bug hit) wrote:
> The value would be `missing`. Adding something like `missing` to the language would need to be coupled with a null coalescing operator which would cover both nil and missing (but not false). Something like `??`...
jeremyevans0 (Jeremy Evans)
09:33 PM Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments
> Other than arity, it seems like you would want to use the new argument forwarding syntax
I didn't know about new syntax, is that in 2.7? However, I don't think that's general enough. In javascript you can forward individual argument...
bughit (bug hit)
07:21 PM Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments
Other than arity, it seems like you would want to use the new argument forwarding syntax:
```ruby
def foo(default1 = some_expression)
end
def bar(...)
foo(...)
end
def foobar(...)
bar(...)
end
```
The major issue ...
jeremyevans0 (Jeremy Evans)
07:02 PM Feature #11660: a falsy value (similar to js undefined) that facilitates forwarding of default arguments
Compared to javascript default arg values are far less useful in ruby because of the lack of this forwarding capability.
This issue is 4 years old, can ruby core at least consider this?
bughit (bug hit)
11:37 PM Feature #16150: Add a way to request a frozen string from to_s
This issue is also fixed on Rails 5.2 and will be released in the next version of Rails.
Users of any version of Rails below 5.2 are already abandoned. The Rails core team don't support those versions anymore. So, they already need to...
rafaelfranca (Rafael França)
11:16 PM Feature #16150: Add a way to request a frozen string from to_s
>So if that issue is caused by Rails, it should be fixed before any stable release of Ruby 2.7 comes out.
This change affects many developers, company and applications with upgrading work. How about Rails 5.2 and 5.1 users? Do we aban...
hsbt (Hiroshi SHIBATA)
05:56 PM Feature #16150: Add a way to request a frozen string from to_s
@rafaelfranca told me Rails 6.0.1 is scheduled for November 5, way before the Ruby 2.7 release (see https://weblog.rubyonrails.org/2019/10/31/Rails-6-0-1-rc1-released/).
So if that issue is caused by Rails, it should be fixed before any...
Eregon (Benoit Daloze)
05:43 PM Feature #16150: Add a way to request a frozen string from to_s
hsbt (Hiroshi SHIBATA) wrote:
> This change must be reverted.
I don't think it's fair to decide that on your own, from apparently just one issue.
Could you detail the situation, i.e., in which place the problem occurs and why can'...
Eregon (Benoit Daloze)
08:54 AM Feature #16150: Add a way to request a frozen string from to_s
OK, frozen `Symbol#to_s` should be reverted. Maybe we can challenge in the future (with the deprecation process first).
Matz.
matz (Yukihiro Matsumoto)
12:55 AM Feature #16150: Add a way to request a frozen string from to_s
This change must be reverted.
I got the issue report from Heroku users.
https://github.com/heroku/heroku-buildpack-ruby/issues/833#issuecomment-548592514
When Rails 6.0.0 and old version users specified Ruby 2.7, Their applicati...
hsbt (Hiroshi SHIBATA)
07:20 PM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
How about https://github.com/ruby/ruby/pull/2637? kachick (Kenichi Kamiya)
06:02 PM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
I think everyone agrees this is too breaking (just look at how many call sites need to be changed in Rails and other gems),
and it's very easy to deprecate the old behavior by warning when passing `nil` in Ruby 2.7.
The only question...
Eregon (Benoit Daloze)
04:05 PM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
The detailed situation.
Rails and other libraries and codebases rely on `/regex/.match?(nil)` to return false. This change is making that method to raise an error in that situation.
Changing this behavior on Ruby 2.7 means that app...
rafaelfranca (Rafael França)
08:51 AM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
Thank you for the input. If you can provide a more detailed situation, it would be better.
Matz.
matz (Yukihiro Matsumoto)
03:44 AM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
+1 for deprecation too. My text editor had been broken by this change, and Vim was needed to fix it. shugo (Shugo Maeda)
02:46 AM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
+1 for deprecation. The removal is too harsh. shyouhei (Shyouhei Urabe)
02:41 AM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
I am 100% with Rafael here, this is a very risky change, Rails and Sprockets are only a couple of projects, there will be tons of stuff that will not be caught.
Why not deprecate this for now and then next release it can be removed?
sam.saffron (Sam Saffron)
04:14 PM Bug #16288: Segmentation fault with finalizers, threads
A little bit more data:
I added some more debugging statements, and I found that the main thread goes from being marked with the THREAD_KILLED status to THREAD_STOPPED_FOREVER
This appears to happen in thread_join_sleep in thread.c...
davidw (David Welton)
03:50 PM Bug #16286 (Closed): DateTime.parse timezone errors
jeremyevans0 (Jeremy Evans)
03:15 PM Revision e6f0fd8a (git): * 2019-11-02 [ci skip]
git[bot]
03:11 PM Revision ea979336 (git): Use prompt_list to calculate height by lines
aycabta (aycabta .)
01:56 PM Feature #16153: eventually_frozen flag to gradually phase-in frozen strings
Since returning a frozen string from Symbol#to_s [was reverted](https://bugs.ruby-lang.org/issues/16150#change-82420), it looks like this proposal is still relevant.
Is it realistic to wish for this in 2.7? The sooner the better imho.
Dan0042 (Daniel DeLorme)
01:26 PM Feature #16289: Reduce duplicated warnings for the change of Ruby 3 keyword arguments
> It leads a memory leak.
Theoretically, yes. Even if iseqs of caller or callee are free'd, the corresponding records are not free'd. But honestly I don't think it is worth elaborating the feature for some reasons:
(1) in practic...
mame (Yusuke Endoh)
07:03 AM Feature #16289: Reduce duplicated warnings for the change of Ruby 3 keyword arguments
It leads a memory leak.
And different warnings won't be suppressed too?
nobu (Nobuyoshi Nakada)
04:38 AM Feature #16289: Reduce duplicated warnings for the change of Ruby 3 keyword arguments
Definite +1 for me. I thought there was already an issue about this but looks I was mistaken. marcandre (Marc-Andre Lafortune)
03:29 AM Feature #16289 (Closed): Reduce duplicated warnings for the change of Ruby 3 keyword arguments
## Problem
Currently, the interpreter emits 200 lines of warnings against the following program.
```ruby
def foo(**opt); end
100.times { foo({kw:1}) }
```
```
$ ./miniruby -e 'def foo(**opt); end; 100.times { foo({kw:1}) }'
...
mame (Yusuke Endoh)
09:40 AM Revision 10c2a085 (git): Clean up implementation of SOCKSSocket, its confusing and undocumented
Justin McNally
09:39 AM Revision 68e0bfcd (git): Prefer libsocksd over libsocks
Justin McNally
09:39 AM Revision b8004103 (git): Support libsocksd socks library for SOCKSSocket
Justin McNally
09:37 AM Revision c56d8dea (git): Mention correct class name in uninitialized error
I think this meant to mention `MatchData`? This is a breaking change, but
should be a minor one.
alanwu (Alan Wu)
09:33 AM Revision cc8116b0 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
08:30 AM Revision 6abf4c48 (git): [ruby/date] Added update-zonetab target
https://github.com/ruby/date/commit/9bc6e30a82 nobu (Nobuyoshi Nakada)
08:30 AM Revision b2126d3f (git): [ruby/date] Remove unneeded line in update-abbr
https://github.com/ruby/date/commit/ae14e5f293 jeremyevans (Jeremy Evans)
08:30 AM Revision 46954530 (git): [ruby/date] Add more timezone abbreviations
This gets the time zone abbreviations from
https://www.timeanddate.com/time/zones/, and adds unambiguous time
zones not already present in zonetab.list. See bin/update-abbr
for the program used.
This regenerates zonetab.h using prereq....
jeremyevans (Jeremy Evans)
07:59 AM Revision 51825c04 (git): * 2019-11-01 [ci skip]
git[bot]
07:58 AM Revision 72f997ed (git): mark functions that do not return NULL as such.
Apply __attribute__((__returns_nonnull__)) when available. shyouhei (Shyouhei Urabe)
07:58 AM Revision f5e40632 (git): ruby_mimmalloc can return NULL
malloc can fail. Should treat such situations. shyouhei (Shyouhei Urabe)
07:58 AM Revision fb495b29 (git): rb_aligned_malloc can return NULL
Looking at gc.c, rb_aligned_malloc contains `return NULL;` so it
has to be taken care of. Note however that posix_memalign(3posix)
does _not_ set errno.
shyouhei (Shyouhei Urabe)
07:58 AM Revision 2c889e9b (git): RUBY_ATTR_ALOC_SIZE for clang
clang also supports __attribute__((__alloc_size__)) so why not use
it when the compiler says it does.
shyouhei (Shyouhei Urabe)
02:42 AM Feature #16276: For consideration: "private do...end" / "protected do...end"
I can think of other cursed usages of private taking a block.
```ruby
class Foo
Bar = proc do
Baz = 1
def foo
Baz
end
end
end
class Bar
private(&Foo::Bar)
end
```
Should what happen?
- Possi...
shyouhei (Shyouhei Urabe)
01:54 AM Feature #16276: For consideration: "private do...end" / "protected do...end"
Oh! Looks like I missed that part of the proposal! Now the `def o.hello; end` question makes a lot more sense. Sorry, Alan.
If we break this down a bit, this proposal can potentially set the visibility (within the block) for
1. ins...
Dan0042 (Daniel DeLorme)

10/31/2019

11:02 PM Bug #16288 (Closed): Segmentation fault with finalizers, threads
Hi,
This is a tricky one and I am still working on narrowing it down, but I will report what I have so far.
I compiled a version of 2_6_6 from github: ruby 2.6.6p116 (2019-10-02 revision 67825) [x86_64-linux]
I have a minimal Ra...
davidw (David Welton)
10:37 PM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
I know this change is to make the code consistent but this is a backward incompatible change and I don't think it should be applied to Ruby 2.7 without deprecation. The fact that we need to change Rails and many other gems to make this w... rafaelfranca (Rafael França)
07:30 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
The extra complication comes from this part of the original proposal:
```ruby
private do
def self.some_private_class_method
puts "I'm also private - principle of least surprise"
end
end
```
This is different from the no...
alanwu (Alan Wu)
07:11 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
> There is no problem with fibers/threads currently, because the visibility is stored in the scope (not in the class itself). You stated `When the private method toggles the visibility state of the current class/module`, implying this w... Dan0042 (Daniel DeLorme)
06:08 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
Dan0042 (Daniel DeLorme) wrote:
> Ok, but how is this different from the regular syntax? The exact same issue applies to this:
> ...
Are you sure? You can test this by using queues to synchronize:
```ruby
class A
end
Q1 = Queu...
jeremyevans0 (Jeremy Evans)
05:43 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
Ok, but how is this different from the regular syntax? The exact same issue applies to this:
```ruby
class A
end
Thread.new do
class A
def pub; end
end
end
class A
private
def priv; end
end
```
If there'...
Dan0042 (Daniel DeLorme)
03:10 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
Dan0042 (Daniel DeLorme) wrote:
> Also I'd like to ask how fibers are relevant to this? When the `private` method toggles the visibility state of the current class/module, does that have anything to do with fibers?
```ruby
class A
...
jeremyevans0 (Jeremy Evans)
01:35 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
I don't see why all the opposition to this. It's a very simple, very intuitive and clear syntax. It fits well with the rest of ruby and the usage of blocks in general.
alanwu (Alan Wu) wrote:
> ```ruby
> ...
I think @adh1003 was pr...
Dan0042 (Daniel DeLorme)
05:27 AM Feature #16276: For consideration: "private do...end" / "protected do...end"
adh1003 (Andrew Hodgkinson) wrote:
> duerst (Martin Dürst) wrote:
> ...
I'm not advocating any particular coding style. There are many coding styles that make it clear that `private` applies to a range of methods. There are not many ...
duerst (Martin Dürst)
05:03 AM Feature #16276: For consideration: "private do...end" / "protected do...end"
I have no strong opinion against this issue. In #7019, I just said that it was too late to introduce the feature into Ruby 2.0 because I was the release manager for 2.0.
I'm curious about Rails developers' opinion. I hear that they ...
mame (Yusuke Endoh)
07:03 PM Bug #16286: DateTime.parse timezone errors
shyouhei (Shyouhei Urabe) wrote:
> Curious where were those abbreviation from. According to `git log -G`, It was introduced in this commit https://github.com/ruby/ruby/commit/dc9cd6a8c22ad04baa7498fd0cbc5d519ed73be0 but no description ...
jeremyevans0 (Jeremy Evans)
02:25 AM Bug #16286: DateTime.parse timezone errors
Curious where were those abbreviation from. According to `git log -G`, It was introduced in this commit https://github.com/ruby/ruby/commit/dc9cd6a8c22ad04baa7498fd0cbc5d519ed73be0 but no description came with it.
Maybe it's better t...
shyouhei (Shyouhei Urabe)
12:46 AM Bug #16286 (Closed): DateTime.parse timezone errors
Trying to parse a DateTime using Australian time zone abbreviations doesn't work:
```
>> DateTime.parse('2019-10-31 10:49:52.36400 AEST')
=> #<DateTime: 2019-10-31T10:49:52+00:00 ((2458788j,38992s,364000000n),+0s,2299161j)>
# offse...
matt17r (Matthew LS)
07:02 PM Feature #10911: IPAddr.new should ignore zone identifiers
Dan0042 (Daniel DeLorme) wrote:
> So "fe80::1%fxp0" is not even recognized as an IP address. This could result in unpleasantness in cases like this:
> ...
Good point. We would probably want to fix socket to support this before adding ...
jeremyevans0 (Jeremy Evans)
06:37 PM Feature #10911: IPAddr.new should ignore zone identifiers
Looks like this testcase was in the original IPAddr commit from 2002:
```
commit 9ec0a96ad4235f2054976eab6c04efbe62b3c703
Author: knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Mon Dec 23 17:07:49 2002 +0000
* MANIFEST...
Dan0042 (Daniel DeLorme)
04:23 PM Feature #10911: IPAddr.new should ignore zone identifiers
I don't think this is a bug. The decision to not support zone identifiers seems deliberate as there are tests that using a zone identifier raises an exception:
```ruby
assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("fe80::1%...
jeremyevans0 (Jeremy Evans)
05:38 PM Bug #16285 (Closed): Setting mtime to zero on Zlib::GzipWriter does nothing
jeremyevans0 (Jeremy Evans)
05:12 PM Bug #14119: IPAddr#include? does not seem to support the subnet mask
I'm not sure this is a bug, but it certainly seems like a bug to me. `IPAddr#include?` must consider the netmask of the receiver in order to work, for it not to consider the netmask of the argument seems wrong.
Attached is a patch th...
jeremyevans0 (Jeremy Evans)
04:51 PM Bug #11531: IPAddr#== implements wrong logic
I am not sure whether this is a bug. `eql?` considers the netmask, but `==` does not. So if you want to consider the netmask, you can currently use `eql?`. Changing `==` to be the same as `eql?` could cause backwards compatibility issue... jeremyevans0 (Jeremy Evans)
01:47 PM Feature #16287: Proposal to add .second and .third in particular to class Array
If I need such repeating accesses, I'll use `values_at` instead.
Probably, the word `first` is misleading.
If it were `head` or `lead`, the meaning would be clear.
nobu (Nobuyoshi Nakada)
12:23 PM Feature #16287 (Open): Proposal to add .second and .third in particular to class Array
I meant to suggest this earlier, but then I think I did not; if I actually did, then please excuse my forgetfulness and
close the issue request here. I am very unorganized (also in reallife).
Anyway - I will be as short as possible h...
shevegen (Robert A. Heiler)
01:24 PM Revision 63f70eb6 (git): [ruby/zlib] Removed no longer used variables
https://github.com/ruby/zlib/commit/3e98e4cac3 nobu (Nobuyoshi Nakada)
01:23 PM Revision 0aaa15f6 (git): [ruby/zlib] Fix setting mtime to zero in GzipWriter
Before this change, it was not possible to write out zero for the
timestamp part of a Gzip file's header, as calling GzipWriter#mtime with
zero was ignored.
Judging from the docs for `GzipWriter#mtime=`, it should be possible to
indicat...
alanwu (Alan Wu)
09:33 AM Bug #16284: Net/HTTP consuming multiple times more memory compared to other libraries
Hey Yusuke, thanks for checking this out. I have tried this out on my friends machines and one of them has exactly the same results as I, but other has the results that are matching yours. All three of us are using MacBooks (although dif... zogash (Milovan Zogovic)
08:55 AM Bug #16281 (Closed): `irb -w` issues warning
This is fixed by commit:d6ed7a984c8fd991ce2614d2f228239f8eb490b5. Thank you for reporting and patch! aycabta (aycabta .)
08:51 AM Revision d6ed7a98 (git): Fix verbose warning being emitted
Fixes Ruby Bug 16281. jeremyevans (Jeremy Evans)
08:11 AM Revision 5f6fbf87 (git): spec: Fix syntax errors
Follow up of 473882e01f7e55753733e2607ace633b5041f11f mame (Yusuke Endoh)
07:50 AM Revision 473882e0 (git): Skip tainted examples for stringio
hsbt (Hiroshi SHIBATA)
07:24 AM Revision ebc88446 (git): [ruby/stringio] Remove taint support
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/stringio/commit/60ee9ccd95
jeremyevans (Jeremy Evans)
06:51 AM Revision 3895e548 (git): [ruby/date] Revert "Simplify #inspect"
This reverts commit af01edd7d8575f544f647dbe8cde5b6ae535d459.
Revert requested by Yui Naruse.
https://github.com/ruby/date/commit/875d563557
jeremyevans (Jeremy Evans)
06:51 AM Revision fce940aa (git): [ruby/date] introduce Date::Error, raise Date::Error for every
"invalid <anything>" type of exception
https://github.com/ruby/date/commit/3e55c09ba4
glaszig
06:41 AM Revision e4cd0d72 (git): [ruby/fileutils] Remove use of untaint on Ruby 2.7 to avoid deprecation warnings
https://github.com/ruby/fileutils/commit/5ac9a8a1f7 jeremyevans (Jeremy Evans)
06:34 AM Revision 39281d57 (git): [ruby/gdbm] Use Gemfile instead of Gem::Specification#add_development_dependency.
https://github.com/ruby/gdbm/commit/bd2e7f6647 hsbt (Hiroshi SHIBATA)
06:34 AM Revision b93ab7d6 (git): [ruby/gdbm] Remove taint support
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/gdbm/commit/f9aaa1a08d
jeremyevans (Jeremy Evans)
06:34 AM Revision 290903db (git): [ruby/zlib] Remove taint support
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/zlib/commit/21711ed0ce
jeremyevans (Jeremy Evans)
06:29 AM Feature #16272 (Closed): Update Unicode Emoji version to 12.1
It turned out that for Ruby, the only thing that changed was that there are some more tests.
Implemented with https://github.com/ruby/ruby/commit/c54635c08b, NEWS updated with https://github.com/ruby/ruby/commit/bc7fbb6f02.
duerst (Martin Dürst)
06:19 AM Revision bc7fbb6f (git): Mention update to Unicode Emoji version 12.1 in NEWS.
Also fixed some grammatical errors. [ci skip] duerst (Martin Dürst)
06:14 AM Misc #15843: Make "trunk" a symbolic-ref of "master" on git.ruby-lang.org
For people who haven't yet switched from trunk to master, when you push, you'll get a message saying:
```
remote: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
remote: @ WARNING: THE TRUNK BRANCH OF RUBY.GIT IS DEPRE...
duerst (Martin Dürst)
04:23 AM Feature #6362: Modular exponentiation/inverse
FYI:
* Modular exponentiation is implemented in Ruby 2.5 . https://ruby-doc.org/core/Integer.html#method-i-pow
* I created a patch gem to calculate a usual/modular multiplicative inverse. https://www.rubydoc.info/gems/numeric_inver...
msnm (Masahiro Nomoto)
01:19 AM Revision c38ba757 (git): Fixed the sync task for json
* Ignode to change ext/json/depend
* Fixed to ignore json_pure files
hsbt (Hiroshi SHIBATA)
01:05 AM Revision 79d96b42 (git): Revert "Fix zero free objects assertion"
This reverts commit e1bf29314feee6aaf535917da0178e868e7ff3fa.
I'm not sure why this broke stuff, I need to investigate later.
tenderlovemaking (Aaron Patterson)
12:28 AM Revision e1bf2931 (git): Fix zero free objects assertion
This commit is to attempt fixing this error:
http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sky1/2353281
Each non-full heap_page struct contains a reference to the next page
that contains free slots. Compaction could fill any page, ...
tenderlovemaking (Aaron Patterson)

10/30/2019

11:39 PM Revision e08f2e47 (git): Also ignore mswin platform
hsbt (Hiroshi SHIBATA)
11:39 PM Revision 8540efd3 (git): Ignore test_racc_command with linux platform
hsbt (Hiroshi SHIBATA)
11:39 PM Revision 1c03026e (git): Try to run assert_output_unchanged with racc tests
hsbt (Hiroshi SHIBATA)
11:11 PM Feature #16275: Revert `.:` syntax
`.:` has special power in that one cannot change its semantics by redefining a
method. It other words, it's a fundamental operation in the language like
`class << object` and `def object.method_name; end`. I think a fundamental
operat...
alanwu (Alan Wu)
09:14 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
For the following:
```ruby
class Foo
private do
o = Object.new
def o.hello; end
end
end
```
Would `o.hello` be private? Also, I assume you want the visibility change to
be fiber local, to follow the principle of lea...
alanwu (Alan Wu)
08:04 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
adh1003 (Andrew Hodgkinson) wrote:
> There seems to be a general agreement that this proposed extension would be a good thing
I'm not seeing general agreement that this would be a good thing to add. In this ticket:
@shevegen : mo...
jeremyevans0 (Jeremy Evans)
07:08 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
shyouhei (Shyouhei Urabe) wrote:
> Yes, I agree we don't copy C++ / Java. What I wonder is _any_ other language who have such syntax. Swift? no. Python? no. TypeScript? no. AFAIK no one on this planet have such thing so far. It se...
adh1003 (Andrew Hodgkinson)
01:42 AM Feature #16276: For consideration: "private do...end" / "protected do...end"
Yes, I agree we don't copy C++ / Java. What I wonder is _any_ other language who have such syntax. Swift? no. Python? no. TypeScript? no. AFAIK no one on this planet have such thing so far. It seems to me that IDEs are not the answer... shyouhei (Shyouhei Urabe)
08:54 PM Feature #16131: Remove $SAFE, taint and trust
Most of the pull requests to fix taint/$SAFE issues have been merged. These are the remaining ones that haven't been merged yet:
Bundled gems with external upstreams:

* rake: https://github.com/ruby/rake/pull/329 (Can one of the ...
jeremyevans0 (Jeremy Evans)
07:30 PM Feature #15123: Enumerable#compact proposal
@matz: Its presence in Array and Hash make it more of a common interface that I could see being defined for Enumerable in general, though the immediate usecases are around Lazy. As mentioned above, sometimes one wants to use Enumerators ... baweaver (Brandon Weaver)
06:06 PM Bug #16285 (Closed): Setting mtime to zero on Zlib::GzipWriter does nothing
Run the following script to observe the issue
```ruby
require 'zlib'
def write_gzip_file(content, mtime)
File.open('archieve.gz', 'w') do |f|
gz = Zlib::GzipWriter.new(f)
gz.mtime = mtime
gz.write(content)
gz....
alanwu (Alan Wu)
03:38 PM Revision 5f8795a0 (git): * 2019-10-31 [ci skip]
git[bot]
03:37 PM Revision 4c7f789e (git): Allow only one argument for keyword_init struct
```
irb(main):001:0> RUBY_VERSION
=> "2.6.5"
irb(main):002:0> S = Struct.new(:foo, keyword_init: true)
=> S(keyword_init: true)
irb(main):003:0> S.new({foo: 23424}, 234) # I don't think this is intentional
=> #<struct S foo=23424>
irb(ma...
alanwu (Alan Wu)
02:10 PM Bug #16284: Net/HTTP consuming multiple times more memory compared to other libraries
Thank you for the report. Unfortunately, I cannot reproduce the issue. The result on my Linux machine is completely opposite against yours.
```
$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
$ ruby t.rb EXC...
mame (Yusuke Endoh)
12:14 PM Bug #16284 (Closed): Net/HTTP consuming multiple times more memory compared to other libraries
I have an issue where Net/HTTP library is causing very high memory usage when requesting for medium to large sized content.
Here is the script to reproduce the issue:
```
gem 'excon'
require 'uri'
require 'net/http'
require ...
zogash (Milovan Zogovic)
12:36 PM Revision 6c3ed0d7 (git): Update the latest versions from upstream repository of racc
hsbt (Hiroshi SHIBATA)
12:02 PM Revision e6d611ad (git): Regenerate the output results for test fixtures of racc
hsbt (Hiroshi SHIBATA)
12:00 PM Revision d3272fcb (git): Update the latest structure for racc upstream
hsbt (Hiroshi SHIBATA)
07:27 AM Bug #16283: A fork in transaction of PG cause Segmentation fault
FYI:
```
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.5
BuildVersion: 18F132
```
doloopwhile@gmail.com (健司 小本)
02:46 AM Feature #16122: Data: simple immutable value object
zverok (Victor Shepelev) wrote:
> So, considering all the points above, it could be either _multiple_ settings: `immutable: true, enumerable: false, hash_accessors: false`
I think that's a great idea. That way it's possible for every...
Dan0042 (Daniel DeLorme)

10/29/2019

11:25 PM Revision c54635c0 (git): Update Unicode Emoji version from 12.0 to 12.1.
This update does not add any new codepoint assignments, it just
expands the range of emoji codepoint sequences recommended for
public interchange.
Depending on how emoji data files are cached, this commit may
require manual intervention...
duerst (Martin Dürst)
09:51 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
Eregon (Benoit Daloze) wrote:
> Also worth noting that `private def` actually defines two methods, one public and then a copy of it as private, overriding the public one in the method table.
I don't think this is true. `private :met...
jeremyevans0 (Jeremy Evans)
09:17 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
I kind of like this idea as it would make it clear which methods are private by indentation.
`private` alone is indeed hard to notice as soon as there are a few methods in the class.
OTOH, using this to change a method from private t...
Eregon (Benoit Daloze)
08:38 PM Feature #16276: For consideration: "private do...end" / "protected do...end"
shevegen (Robert A. Heiler) wrote:
> > As noted in the pseudocode above, we can clean up some of the issues around
> ...
Agree with all you said and appreciate the detailed feedback - but on this, and in many ways on the use of `send...
adh1003 (Andrew Hodgkinson)
06:28 PM Bug #16283 (Third Party's Issue): A fork in transaction of PG cause Segmentation fault
This looks like the Mac OS getaddrinfo bug. See the part of the C-level backtrace before the crash:
```
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x1d) [0x7fff7cbf8b5d]
/usr/lib/system/libsystem_trace.dylib(_os_log_preferen...
jeremyevans0 (Jeremy Evans)
09:42 AM Bug #16283: A fork in transaction of PG cause Segmentation fault
Pretty sure that's the OSX specific bug that got fixed in 2.6.4 or 2.6.5 (This one IIRC but I might be wrong https://bugs.ruby-lang.org/issues/15887).
Can you try with 2.6.5 ?
byroot (Jean Boussier)
03:55 AM Bug #16283 (Third Party's Issue): A fork in transaction of PG cause Segmentation fault
Call Kernel#fork in transaction of Postgres and call some Socket method in fork's block, then ruby on the child process abort with segmentation fault.
Conceptual code:
```
MGModel.connection.transaction do
# Do something
...
doloopwhile@gmail.com (健司 小本)
03:14 PM Revision 92c13380 (git): * 2019-10-30 [ci skip]
git[bot]
03:13 PM Revision 22dbbbeb (git): Compacting the heap can cause GC, so disable it
When we compact the heap, various st tables are updated, particularly
the table that contains the object id map. Updating an st table can
cause a GC to occur, and we need to prevent any GC from happening while
moving or updating referen...
tenderlovemaking (Aaron Patterson)
01:40 PM Revision fee5cde0 (git): Fix tests for CVE-2018-6914
Since the current working directory is not involved in `Tempfile`
and `Dir.mktmpdir` (except for the last resort), it is incorrect
to derive the traversal path from it. Also, since the rubyspec
temporary directory is created under the b...
nobu (Nobuyoshi Nakada)
11:05 AM Feature #16275: Revert `.:` syntax
Jeremy – I’m sorry for the overreach in that clumsy wording. Let me rephrase: what I saw here was a fair number of comments supporting the removal of an already-implemented feature of 2.7 that I felt had good potential and that I was per... timriley (Tim Riley)
07:38 AM Revision ad4da866 (git): Check for nonnull attribute in configure
nobu (Nobuyoshi Nakada)
07:05 AM Revision 9195ed18 (git): Revert "Check for nonnull attribute in configure"
This reverts commit 54eb51d72bc43f90b595f0d7ffb5069ebf1a56d9.
Windows build failure. See also https://github.com/ruby/ruby/runs/278718805
shyouhei (Shyouhei Urabe)
05:40 AM Revision 7bf51ced (git): test/rubygems/test_gem.rb: early failure when there is /tmp/Gemfile
Some test cases in rubygems assume that /tmp/Gemfile does not exist.
If it does, they fail with very difficult-to-understand message:
```
[ 149/2108] TestGemBundlerVersionFinder#test_bundler_version_with_bundle_update_bundler = 0.00
1...
mame (Yusuke Endoh)
04:16 AM Revision 79a7fd91 (git): Revert "Revert "[ruby/rdoc] Use omit of test-unit instead of skip of minitest""
This reverts commit ca5812fe4516a10cc687281f9e47e1a08449f1ab.
Now tool/lib/minitest provides "omit", so it should work.
mame (Yusuke Endoh)
04:15 AM Revision 1820aeee (git): tool/lib/minitest/unit.rb: add "omit" as an alias to "skip"
According to rdoc, test-unit provides omit instead of skip.
This is a compatibility layer to make it work with both test-unit and
tool/lib/minitest.
mame (Yusuke Endoh)
03:57 AM Revision ca5812fe (git): Revert "[ruby/rdoc] Use omit of test-unit instead of skip of minitest"
This reverts commit b4da6fc1c277190bbd10e795ebf3be45772038e8.
`make test-all` uses minitest, which led to "undefined method `omit'"
mame (Yusuke Endoh)
03:34 AM Revision 9525541d (git): [ruby/rdoc] Use Dir.glob to convert short path of Dir.tmpdir to long path
https://github.com/ruby/rdoc/commit/ba16e44572 aycabta (aycabta .)
03:34 AM Revision c8ce37d4 (git): [ruby/rdoc] Support different drive latters in include paths
https://github.com/ruby/rdoc/commit/946d2592e2 aycabta (aycabta .)
03:34 AM Revision b4da6fc1 (git): [ruby/rdoc] Use omit of test-unit instead of skip of minitest
https://github.com/ruby/rdoc/commit/1c5bf2ae1d aycabta (aycabta .)
03:12 AM Revision 54eb51d7 (git): Check for nonnull attribute in configure
nobu (Nobuyoshi Nakada)
03:07 AM Revision b86e5c9f (git): Clang can also use C call cache
Previously this was restricted to only gcc because of the
GCC_VERSION_SINCE check (which explicitly excludes clang).
GCC 3.3.0 is quite old so I feel relatively safe assuming that all
reasonable versions of clang support this.
jhawthorn (John Hawthorn)
02:32 AM Revision 85b88c1d (git): Let the arrays for the singleton and instance method reflection helpers be initialized to the methods count
methodmissing (Lourens Naudé)
02:32 AM Revision fecaa6e9 (git): Let the backtrace array constructed in backtrace_collect be initialized with the size already given
methodmissing (Lourens Naudé)
02:31 AM Revision 00953629 (git): Right size the vm_default_params hash
methodmissing (Lourens Naudé)
02:31 AM Revision 0e68913f (git): Right size the Enumerator internal lazy_use_super_method hash
methodmissing (Lourens Naudé)
02:31 AM Revision 4480d689 (git): Right size the compile option hash
methodmissing (Lourens Naudé)
02:30 AM Revision 65744fb1 (git): Right size the iseq coverage branches tmp array - initializes with 5 elements
methodmissing (Lourens Naudé)
01:35 AM Revision 05476277 (git): Version 0.0.4
aycabta (aycabta .)
12:01 AM Feature #16282: Add "call data" wrapper IMEMO object so inline cache can be updated
Actually, I think this makes performance worse because it removes the "define". So there will be only one. I will fix it to maintain the macro. tenderlovemaking (Aaron Patterson)

10/28/2019

11:58 PM Revision b4229c0a (git): Restore `in_kwarg` flag properly
nobu (Nobuyoshi Nakada)
11:26 PM Feature #16282 (Open): Add "call data" wrapper IMEMO object so inline cache can be updated
Hi,
Currently the compactor will invalidate all inline caches. I would like to update references in inline caches so we don't have to invalidate. Most inline caches are reachable from instruction sequences, but one cache is not:
...
tenderlovemaking (Aaron Patterson)
11:14 PM Revision da3774e5 (git): Revert "Protect finalizer references during execution"
This reverts commit 60a7f9f446604571f8a81499080c57c47baf0e6b.
We can't have Ruby objects pointing at T_ZOMBIE objects otherwise we get
an error in the GC. We need to find a different way to update
references.
tenderlovemaking (Aaron Patterson)
09:50 PM Revision 60a7f9f4 (git): Protect finalizer references during execution
When we run finalizers we have to copy all of the finalizers to a new
data structure because a finalizer could add another finalizer and we
need to keep draining the "real" finalizer table until it's empty.
We don't want Ruby programs to...
tenderlovemaking (Aaron Patterson)
08:09 PM Revision 6147fa82 (git): Fix continuation mark / compact
tenderlovemaking (Aaron Patterson)
07:15 PM Revision bbf3de22 (git): Pin labels during disassembly
We need to ensure that labels are pinned while disassembling. If the
compactor runs during disassembly, references to these labels could go
bad, so this commit just ensures that the labels can't move until we're
done.
tenderlovemaking (Aaron Patterson)
06:47 PM Revision 339a891c (git): Pin keys of this st_table
tenderlovemaking (Aaron Patterson)
06:19 PM Revision a51583b6 (git): * 2019-10-29 [ci skip]
git[bot]
06:18 PM Revision aec16b75 (git): Marshal is calling functions that should pin things
tenderlovemaking (Aaron Patterson)
01:05 PM Revision 6e0b40af (git): Try out-of-place build
nobu (Nobuyoshi Nakada)
12:59 PM Feature #16029: Expose fstring related APIs to C-extensions
> What about rb_str_fstring_lookup and rb_str_fstring_lookup_enc?
I don't think a lookup would be enough for what I'd like to do.
A typical use case would be a JSON document with lots of duplicated strings.
If we only lookup t...
byroot (Jean Boussier)
10:14 AM Revision 48f982ab (git): test-bundled-gems.rb: fixed for out-of-place build
nobu (Nobuyoshi Nakada)
09:15 AM Revision 07b5fec0 (git): Clean mjit and timestamp directories
nobu (Nobuyoshi Nakada)
07:53 AM Revision 3e83f1f0 (git): Add more matrix info to slack payload
znz (Kazuhiro NISHIYAMA)
05:38 AM Revision cc5580f1 (git): fix bug in keyword + protected combination
Test included for the situation formerly was not working. shyouhei (Shyouhei Urabe)
03:20 AM Revision a72cb6b1 (git): * 2019-10-28 [ci skip]
git[bot]
03:19 AM Revision d8d581bf (git): add assertion for mutex_lock.
After do_mutex_lock(mutex), the mutex should be owned by the current
thread. Adding an assertion for this assumption.
ko1 (Koichi Sasada)

10/27/2019

11:09 PM Bug #15834: Mutating the result of SortedSet.to_a mutates the original set, potentially violating the set's guarantees
Attached is a patch with a test for fixing this. jeremyevans0 (Jeremy Evans)
10:38 PM Bug #14325 (Closed): Set#reset raise RuntimeError instead of FrozenError
Fixed in commit:afd68cd87114fb49158462f1594cacfd2b765e9b. jeremyevans0 (Jeremy Evans)
10:32 PM Bug #16187 (Closed): Hash#replace no longer rehashes keys for small (array table) hashes
jeremyevans0 (Jeremy Evans)
10:30 PM Bug #16281: `irb -w` issues warning
Pull request submitted to fix this: https://github.com/ruby/reline/pull/62 jeremyevans0 (Jeremy Evans)
08:41 PM Bug #16278: Potential memory leak when an hash is used as a key for another hash
Thanks both @jeremyevans0 @alanwu for the rich and clear explanations! cristiangreco (Cristian Greco)
11:19 AM Revision 85d966af (git): Add ubuntu-16.04 to matrix of GitHub Actions
znz (Kazuhiro NISHIYAMA)
10:45 AM Feature #14145: Proposal: Better Method#inspect
This PR provides method parameters inspect: https://github.com/ruby/ruby/pull/2618
Implementation is most probably not optimal (to say the least), I am ready to fix it by comments. At least the tests and implementation should handle all...
zverok (Victor Shepelev)
10:41 AM Misc #16188: What are the performance implications of the new keyword arguments in 2.7 and 3.0?
I want to expand on my semantics concern, for the performance concern I should get some numbers first.
jeremyevans0 (Jeremy Evans) wrote:
> Technically, `**hash` automatically converts a positional hash to keywords. So I definitely ...
Eregon (Benoit Daloze)
09:57 AM Revision 417369e0 (git): Improve Enumerator.produce docs
* Add to NEWS;
* Add examples of while-alike cycles with practical tasks.
zverok (Victor Shepelev)
01:41 AM Revision aba23d83 (git): Fix documentation for Fiber#transfer [ci skip]
Fiber#transfer prevents calling Fiber#resume on the receiver of the
transfer method, not the fiber calling transfer.
Transfering back to a fiber does not allow later calling resume on
the fiber. Once transfer has been called on a fiber...
jeremyevans (Jeremy Evans)

10/26/2019

08:33 PM Revision 4fe89e08 (git): Add entry for Feature #13083 in NEWS
* Move Unicode changes under String / Unicode for consistency with the rest. Eregon (Benoit Daloze)
08:23 PM Feature #13083: Regexp#{match,match?} with a nil argument are deprecated and will raise a TypeError in Ruby 3.0
There are PRs to fix those: https://github.com/rails/rails/pull/37504 Eregon (Benoit Daloze)
06:53 PM Revision 664e96b1 (git): Update to ruby/spec@28a728b
Eregon (Benoit Daloze)
06:52 PM Revision 3eb0d50c (git): Update to ruby/mspec@e171725
Eregon (Benoit Daloze)
05:24 PM Revision 9c5a9623 (git): * 2019-10-27 [ci skip]
git[bot]
05:24 PM Revision 62212482 (git): Improve Net::HTTP docs:
* Make links from Net::GenericHTTPRequest work;
* Document +dest+ param of HTTPResponse#read_body;
* Slightly improve reference to particular response
classes from HTTPResponse class docs.
zverok (Victor Shepelev)
05:24 PM Revision f93cb690 (git): OptionParser: document into: argument
zverok (Victor Shepelev)
05:24 PM Revision a24bff46 (git): open-uri: change global docs to reflect that URI.open syntax is preferred
zverok (Victor Shepelev)
05:24 PM Revision de147bb7 (git): Net::FTP: fix formatting problems for #status method
zverok (Victor Shepelev)
05:24 PM Revision 4fe06f46 (git): IRB: Document command evaluation history.
zverok (Victor Shepelev)
05:24 PM Revision 2746fd5d (git): Update StringIO docs:
* More explanations/examples in class docs;
* Fix links to other methods (remove
zverok (Victor Shepelev)
05:24 PM Revision f6f1377a (git): Update ERB docs
* Actualize Notes about other templating engines;
* Document #location= method.
zverok (Victor Shepelev)
04:31 PM Bug #16278: Potential memory leak when an hash is used as a key for another hash
The GC scans the native stack for Ruby's C code to find values to retain.
Pointers to Ruby's heap objects can end up on the native stack for a variety
of reasons, and this is mostly up to the C compiler. Whether a pointer ends up
on t...
alanwu (Alan Wu)
03:23 PM Bug #16278 (Rejected): Potential memory leak when an hash is used as a key for another hash
cristiangreco (Cristian Greco) wrote:
> Hi Jeremy, thanks for these details!
> ...
It is eventually collected when Ruby's GC can no longer find a reference to it. The reason it may be retained even though there is no direct reference ...
jeremyevans0 (Jeremy Evans)
12:44 PM Bug #16278: Potential memory leak when an hash is used as a key for another hash
Hi Jeremy, thanks for these details!
I don’t know the details of ruby’s GC, seems to me it might behave unpredictably sometimes. I guess what confuses me now is that although that object is retained we don’t observe unbounded memory g...
cristiangreco (Cristian Greco)
04:13 AM Bug #16278: Potential memory leak when an hash is used as a key for another hash
Adding this method and calling it after `create` clears the output.
```ruby
def garbage
h1 = h2 = h3 = h4 = h5 = h6 = h7 = h8 = h9 = h10 = nil
end
```
So a “shadow” seems staying on the VM stack.
nobu (Nobuyoshi Nakada)
02:21 AM Bug #16278: Potential memory leak when an hash is used as a key for another hash
Here's a modified version of your script, fixing the issue where `$id_h4 = h3.object_id`, and showing the actual contents of the objects found with those ids:
```ruby
require 'objspace'
class Klass; end
def create
h1 = { :a ...
jeremyevans0 (Jeremy Evans)
12:42 PM Misc #16262: DevelopersMeeting20191128Japan
(Sorry for being over-active. On the bright side, it could be a final bunch from me)
Carry-over from tickets with feedback:
* [Feature #16122] `Struct::Value`: simple immutable value object. First version of the proposal was not clea...
zverok (Victor Shepelev)
12:09 PM Feature #16275: Revert `.:` syntax
> with several core team members agreeing on this
At the end of the day you only need to find pro/con arguments for matz. :)
Once a syntax is picked, though, it may be mutually exclusive to other syntax
and follow-up ideas buildin...
shevegen (Robert A. Heiler)
07:17 AM Feature #16275: Revert `.:` syntax
zverok (Victor Shepelev) wrote:
> OK, with several core team members agreeing on this (and even PR prepared), I believe this is already a lost cause, but I'd still like to put some perspective here, if just for reference and future disc...
nobu (Nobuyoshi Nakada)
07:02 AM Feature #16275: Revert `.:` syntax
timriley (Tim Riley) wrote:
> I’m opposed to this reversion. I was looking forward to using `.:` in 2.7. I felt I should say this as a representative of perhaps a “silent majority” of Ruby users.
If you think your opinion represents...
jeremyevans0 (Jeremy Evans)
02:44 AM Feature #16275: Revert `.:` syntax
matz (Yukihiro Matsumoto) wrote:
> I am for adding syntax sugar for method reference. But I don't like proposed syntax (e.g. ->).
> ...
So clearly the syntax sugar for method reference is something that we *will* have. Eventually if no...
Dan0042 (Daniel DeLorme)
11:54 AM Bug #15528: Bundler stdlib is not documented
https://github.com/bundler/bundler/pull/7394 zverok (Victor Shepelev)
09:09 AM Bug #8855: {Single}Forwardable#def_delegators が、Stringでメソッド名を渡された時だけ __id__ と __send__ が取り除かれる
merged into ruby core at d00551a7bb1d5dbabb0a8c95d6bd2d9d4e86934a nagachika (Tomoyuki Chikanaga)
07:27 AM Revision ad9c7137 (git): Make `(#methodname)` a link with --hyperlink-all option
aycabta (aycabta .)
06:48 AM Revision d70fdeed (git): Make `(#methodname)` a link
nobu (Nobuyoshi Nakada)
06:35 AM Revision 5aacb304 (git): refactor assign variables
For readability. Requested by ko1.
See: https://github.com/ruby/ruby/commit/356e203a3acd4d3d20ba12f956fd22e17b6363e9#r35661401
shyouhei (Shyouhei Urabe)
05:58 AM Revision bddb31bb (git): Documentation improvements for Ruby core
* Top-level `return`;
* Documentation for comments syntax;
* `rescue` inside blocks;
* Enhance `Object#to_enum` docs;
* Make `chomp:` option more obvious for `String#each_line` and
`#lines`;
* Enhance `Proc#>>` and `#<<` docs;
* Enhanc...
zverok (Victor Shepelev)
03:52 AM Revision cf934413 (git): Raise on end-exclusive ranges [Feature #14784]
Raises an error on end-exclusive ranges unless endless, regardless
the receiver.
nobu (Nobuyoshi Nakada)
12:26 AM Revision f14b7541 (git): [ruby/forwardable] Use Gemfile instead of Gem::Specification#add_development_dependency.
https://github.com/ruby/forwardable/commit/1e7123a81b hsbt (Hiroshi SHIBATA)
12:25 AM Revision f625a4be (git): [ruby/forwardable] Fix NoMethodError on ruby 2.4 or earlier
https://github.com/ruby/forwardable/runs/242918994#step:5:12
```
Error: test_obj_single_delegators_send_id(TestForwardable): NoMethodError: private method `attr_reader' called for #<Class:#<Object:0x00005605af501f58>>
```
https://github...
znz (Kazuhiro NISHIYAMA)
12:25 AM Revision 00989770 (git): [ruby/forwardable] Remove string allocation in def_{instance,single}_delegators
https://github.com/ruby/forwardable/commit/1a994c90e1 jeremyevans (Jeremy Evans)
12:25 AM Revision d00551a7 (git): [ruby/forwardable] Make def_{instance,single}_delegators skip :__send__ and :__id__
Previously, __send__ and __id__ were skipped if provided as strings,
but not skipped if provided as symbols.
Fixes Ruby Bug 8855.
https://github.com/ruby/forwardable/commit/2e61c8c66c
jeremyevans (Jeremy Evans)
12:25 AM Revision b15e0983 (git): [ruby/forwardable] Update spec.files
https://github.com/ruby/forwardable/commit/1b6991e589 hsbt (Hiroshi SHIBATA)
12:24 AM Revision b25ab383 (git): [ruby/forwardable] Extracted VERSION constant for gemspec
https://github.com/ruby/forwardable/commit/387758d45a hsbt (Hiroshi SHIBATA)
 

Also available in: Atom