Project

General

Profile

Activity

From 05/06/2020 to 05/12/2020

05/12/2020

11:42 PM Revision 9cfa811b (git): Do not try ffi_closure_alloc if libffi is <= 3.1
Maybe due to e1855100e46040e73630b378974c17764e0cccee, CentOS, RHEL, and
Fedora CIs have started failing with SEGV. Try to avoid
ffi_closure_alloc on those environments.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos8/ruby-mast...
mame (Yusuke Endoh)
10:54 PM Revision 777b5b4f (git): Bump version to use RSpec 3.8+
hsbt (Hiroshi SHIBATA)
10:54 PM Revision cecd3433 (git): Skip the examples for bundle exec with gem installation
hsbt (Hiroshi SHIBATA)
10:54 PM Revision f61dbb92 (git): Marked the some examples that are not working with the ruby repository
hsbt (Hiroshi SHIBATA)
10:54 PM Revision aecbb785 (git): Use relative path in ruby core repository
hsbt (Hiroshi SHIBATA)
10:54 PM Revision 143872bf (git): Unmask the some of examples with ruby_repo label
hsbt (Hiroshi SHIBATA)
10:54 PM Revision ca892e69 (git): Skip the example to use rake command
hsbt (Hiroshi SHIBATA)
10:54 PM Revision ea517cfe (git): skip lockfile_spec.rb:33 because it cleanup the .bundle repo
hsbt (Hiroshi SHIBATA)
10:54 PM Revision fcb5a9ee (git): Resolved the file path of gemspec for ruby core repository
hsbt (Hiroshi SHIBATA)
10:54 PM Revision cf961908 (git): Bump version to use Rake 13 in bundler examples
hsbt (Hiroshi SHIBATA)
10:54 PM Revision 5b634afe (git): Added test_gems.rb for setup dependencies
hsbt (Hiroshi SHIBATA)
10:54 PM Revision a7c1791c (git): Partly reverted bundler.gemspec for ruby core testing
hsbt (Hiroshi SHIBATA)
10:54 PM Revision 0e60b59d (git): Update the bundler version with master branch
hsbt (Hiroshi SHIBATA)
10:21 PM Feature #16792: Make Mutex held per Fiber instead of per Thread
I think it seems difficult to implement it.
If an interpreter manages everything, it is easy (at least I can image how to implement it).
(1) API
I'm not sure we can implement Mutex scheduling with the hooks introduced at #10.
If there ...
ko1 (Koichi Sasada)
10:00 PM Feature #16786: Light-weight scheduler for improved concurrency.
Sorry for late response.
First of all, I agree to merge it and try before next release (please wait Matz's comment for merging).
There are several considerations.
# non-blocking fiber creation API
For me, the name `Fiber()` is ...
ko1 (Koichi Sasada)
08:52 PM Bug #16852 (Closed): Refining Enumerable fails with ruby 2.7
When using [rspec](https://github.com/rspec/rspec-core) and ruby 2.7 I am unable to refine `Enumerable`. I have created an [issue in rspec](https://github.com/rspec/rspec-core/issues/2727) but I'm wondering if there's an underlying ruby ... parker (Parker Finch)
08:41 PM Misc #16803: Discussion: those internal macros reside in public API headers
Please respect current convention `rb_`/`RB_` are called in ruby interpreter (such as `rb_str_new()`) and `ruby_`/`RUBY_` can be called from outside of ruby interpreter (such as `ruby_xmalloc()`). `RUBY3_...` are already renamed, but I w... ko1 (Koichi Sasada)
07:18 PM Feature #16847: Cache instruction sequences by default
> This kind of technique can cause something strange behavior
Can you tell me what kind of behavior you are thinking of? I don't think that was ever a problem with bootsnap (it has a few corner cases, but none that I can think of for ...
byroot (Jean Boussier)
06:39 PM Feature #16847: Cache instruction sequences by default
isn't it enough to use libraries such as bootsnap for it?
This kind of technique can cause something strange behavior and users may know what they are doing. Using a library is good opt-in method, IMO.
ko1 (Koichi Sasada)
09:55 AM Feature #16847: Cache instruction sequences by default
> I mean, that can also be achieved when you compile your ruby script into an shared object ahead-of-time.
Sure, but then it's no longer "by-default", as in all users get it for free without having to configure anything nor changing ...
byroot (Jean Boussier)
08:39 AM Feature #16847: Cache instruction sequences by default
byroot (Jean Boussier) wrote in #note-4:
> > isn't that also true for instruction sequence caches?
> ...
I mean, that can also be achieved when you compile your ruby script into an shared object ahead-of-time. Basically there must be...
shyouhei (Shyouhei Urabe)
08:12 AM Feature #16847: Cache instruction sequences by default
> isn't that also true for instruction sequence caches?
No, caching instruction sequence can be done without any functional change for users.
> ...
That depend of the storage mechanism. But assuming you have 1 cache file for each ...
byroot (Jean Boussier)
07:54 AM Feature #16847: Cache instruction sequences by default
byroot (Jean Boussier) wrote in #note-2:
> @shyouhei that would be a radical change in how Ruby is deployed.
Agreed, however isn't that also true for instruction sequence caches?
> ...
This point is valid, and makes me wonder how ...
shyouhei (Shyouhei Urabe)
07:38 AM Feature #16847: Cache instruction sequences by default
@shyouhei that would be a radical change in how Ruby is deployed.
Also boot performance is particularly important during development, where AOT doesn't make sense.
byroot (Jean Boussier)
07:21 AM Feature #16847: Cache instruction sequences by default
Why not compile into native binary then? I have recently learnt that Emacs is moving from its .elc bitecodes to .eln native shared object https://arxiv.org/abs/2004.02504
Because we already have JIT it seems now possible for us to AOT.
shyouhei (Shyouhei Urabe)
06:46 PM Feature #16848: Allow callables in $LOAD_PATH
> How to implement the gem_path_resolver?
By simply walking down the directories in the loadpath.
In the context of Bundler/Rubygems it could directly be done post install, in the case of Bootsnap it's done on the fly on cache mis...
byroot (Jean Boussier)
06:30 PM Feature #16848: Allow callables in $LOAD_PATH
Just curious:
How to implement the `gem_path_resolver`? `gem_path_resolver` should know the set of existing files in the gem install directories.
What happens if a new file is created in a gem directory after installation? I understand...
ko1 (Koichi Sasada)
06:23 PM Feature #16848: Allow callables in $LOAD_PATH
@mame yes, your example fits my proposal.
But note that I'm also open to other solutions, as long as it allows to resolve paths of the `$LOAD_PATH`.
byroot (Jean Boussier)
02:15 PM Feature #16848: Allow callables in $LOAD_PATH
As far as my understanding, this is a self-contained simple example to demonstrate the proposal (to make dev-meeting discussion easy)
```ruby
gem_path_resolver = -> feature do
case feature
when "bar" then "/gems/bar/bar.rb"
...
mame (Yusuke Endoh)
10:06 AM Feature #16848: Allow callables in $LOAD_PATH
@nobu indeed. I initially only focused on solving the performance problem of having a large `$LOAD_PATH`, but maybe it's the occasion to also allow for alternative storage mechanisms.
In such case it can be interesting to look at how ...
byroot (Jean Boussier)
02:52 AM Feature #16848: Allow callables in $LOAD_PATH
byroot (Jean Boussier) wrote:
> ### Proposal
> ...
This seems similar to my proposal in several years ago, to allow loading from archived libraries.
It was not callable but calling a particular method, I don't remember accurately now ...
nobu (Nobuyoshi Nakada)
06:26 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
> But it doesn't seem right for other NameError
@eregon Absolutely, but my ticket is only about `uninitialized constant`. If my description or my PR made you think otherwise, it's a misunderstanding and / or a bug in my PR.
byroot (Jean Boussier)
04:04 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Right, I agree it makes sense for missing constants NameError's, since the user expect a "constant path" including the missing constant.
But it doesn't seem right for other NameError such as:
```
$ ruby -e foobar
Traceback (most re...
Eregon (Benoit Daloze)
03:33 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
+1 for using #name and falling back to #inspect
Rails is correct in extending inspect to return more useful human-readable information, and a NameError should tell you about the problem name (including namespace), not about extra info...
Dan0042 (Daniel DeLorme)
09:53 AM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
> (also #name can be nil, and calling #name on arbitrary objects could easily be worse than #inspect).
So the issue title is no longer relevant. Since then I dug more into this issue, and I think the behavior should be similar to `rb_...
byroot (Jean Boussier)
09:39 AM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Nice work on that PR :)
I think whoever overrides `#inspect` should make sure it's easy to identify which object it is.
In other words, I don't think we should special-case here for Module & Class (also #name can be `nil`, and callin...
Eregon (Benoit Daloze)
07:01 AM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
https://github.com/ruby/ruby/pull/3090 is simply a weird limitation I discovered while studying that behavior.
I still think we should try to display the actual class path.
byroot (Jean Boussier)
03:29 AM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
https://github.com/ruby/ruby/pull/3090 was merged. Can we close this ticket? (using `#name` instead of `#inspect`). ko1 (Koichi Sasada)
06:19 PM Feature #16851: Ruby hashing algorithm could be improved using Tabulation Hashing
This seems interesting. I'd suggest running the hash related benchmarks included in ruby's repo: https://github.com/ruby/ruby/tree/master/benchmark
byroot (Jean Boussier)
05:55 PM Feature #16851 (Feedback): Ruby hashing algorithm could be improved using Tabulation Hashing
I have implemented Linear Probing and Simple tabulation in Ruby: https://github.com/Ana06/ruby/compare/master...Ana06:tabulation
I tested it using the following code:
https://github.com/Ana06/ruby-tabulation/blob/master/benchmark_tab...
ana06 (Ana Maria Martinez Gomez)
06:17 PM Bug #16850: Object#hash doesn't behave as documented
That looks good to me :+1: I may add String as well (such as Integer and String). ana06 (Ana Maria Martinez Gomez)
05:48 PM Bug #16850: Object#hash doesn't behave as documented
I consider this an implementation detail. It never makes sense to override the hash calculation for the cases where Ruby uses the built-in calculation instead of calling #hash, so I don't think Ruby should change behavior to increase con... jeremyevans0 (Jeremy Evans)
05:25 PM Bug #16850 (Closed): Object#hash doesn't behave as documented
From [Ruby 2.7 Object class documentation](https://ruby-doc.org/core-2.7.0/Object.html#method-i-hash):
>The hash value is used along with eql? by the Hash class to determine if two objects reference the same hash key.
From this I exp...
ana06 (Ana Maria Martinez Gomez)
04:24 PM Revision 68224651 (git): * 2020-05-13 [ci skip]
git[bot]
04:17 PM Revision e1855100 (git): ext/fiddle/extconf.rb: check if ffi_closure_alloc is available
to define HAVE_FFI_CLOSURE_ALLOC.
The macro is used in closure.c, so have_func check is needed.
If pkg-config is not installed, extconf.rb fails to detect the version
of libffi, and does not add "-DUSE_FFI_CLOSURE_ALLOC=1" even when sys...
mame (Yusuke Endoh)
02:19 PM Revision 1c4eb706 (git): Build auxiliary program files early
nobu (Nobuyoshi Nakada)
02:07 PM Revision 2383cdab (git): builtin_binary.inc: should be updated even if no changes [ci skip]
As this rule does not use a separate timestamp file, the target
will be rebuilt every time once it is outdated.
nobu (Nobuyoshi Nakada)
01:59 PM Revision 02cb643d (git): Added String#split benchmark for empty regexp
| |compare-ruby|built-ruby|
|:--------------|-----------:|---------:|
|re_chars-1 | 169.230k| 973.855k|
| | -| 5.75x|
|re_chars-10 | 25.536k| 107.598k|
| | ...
nobu (Nobuyoshi Nakada)
10:58 AM Revision 693f7ab3 (git): Optimize String#split
Optimized `String#split` with `/ /` (single space regexp) as
simple string splitting. [ruby-core:98272]
| |compare-ruby|built-ruby|
|:--------------|-----------:|---------:|
|re_space-1 | 432.786k| 1.539M|
| ...
nobu (Nobuyoshi Nakada)
08:48 AM Revision 2e7d8863 (git): test/lib/jit_support.rb: Let JIT tests skip on centos8
It has the same issue as RHEL 8. k0kubun said he will fix later mame (Yusuke Endoh)
08:15 AM Revision b16acf8b (git): .github: use actions/checkout@v2 again
shyouhei (Shyouhei Urabe)
07:35 AM Feature #15771: Add `String#split` option to set `split_type string` with a single space separator
znz (Kazuhiro NISHIYAMA) wrote in #note-8:
> How about optimization `split(/ /)` (when regexp is single space only) instead of changing `split(" ")`?
Sounds nice. https://github.com/ruby/ruby/pull/3103
nobu (Nobuyoshi Nakada)
03:21 AM Feature #15771: Add `String#split` option to set `split_type string` with a single space separator
How about optimization `split(/ /)` (when regexp is single space only) instead of changing `split(" ")`? znz (Kazuhiro NISHIYAMA)
12:23 AM Feature #15771: Add `String#split` option to set `split_type string` with a single space separator
My guess is that, perhaps, even now, it is very rare to use a single space string argument with the expectation to match single or multiple spaces. In such use cases, normally, `split` is used without an argument, or with a regex argumen... sawa (Tsuyoshi Sawada)
07:34 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
naruse (Yui NARUSE) wrote in #note-12:
> NDEBUG is not acceptable.
NDEBUG is not my invention. Please file a bug report to upstream (ISO/IEC JTC1/SC22/WG14).
I'm not against defining it by default, though.
shyouhei (Shyouhei Urabe)
07:27 AM Revision ee518cf0 (git): Revert "Sync did_you_mean"
This reverts commit 946dadd3f479198e87873a863d15c7660a8e2b56,
which broke `TestGemRequire` and others.
nobu (Nobuyoshi Nakada)
06:57 AM Revision 317fdd6d (git): fiddle: share the same config tools
nobu (Nobuyoshi Nakada)
06:57 AM Revision 3150b97d (git): extlibs.rb: links in extracted directory
Allow to create symbolic links (if available) to share same or
updated files.
nobu (Nobuyoshi Nakada)
06:57 AM Revision d1748484 (git): extlibs.rb: added variable references
Reduce duplicate parts such as package name and version numbers. nobu (Nobuyoshi Nakada)
04:58 AM Misc #16747 (Assigned): Repository reorganization request
`mainsrc` is WIP name for migrating this issue. nobu said we can rename `src` from `mainsrc` after that. hsbt (Hiroshi SHIBATA)
04:25 AM Revision 1d2fc912 (git): Add missing `,`
znz (Kazuhiro NISHIYAMA)
03:56 AM Feature #9758 (Closed): Allow setting SSLContext#extra_chain_cert in Net::HTTP
Applied in changeset commit:git|31af0dafba6d3769d2a39617c0dddedb97883712.
----------
Expose SSLContext#extra_chain_cert in Net::HTTP
Currently, Net::HTTP can only send a single SSL certificate when it
establishes a connection. Some use...
Anonymous
03:55 AM Revision 31af0daf (git): Expose SSLContext#extra_chain_cert in Net::HTTP
Currently, Net::HTTP can only send a single SSL certificate when it
establishes a connection. Some use-cases involve sending an entire
certificate chain to the destination; for this, SSLContext supports
assigning to #extra_chain_cert=.
...
Stephen Touset
03:25 AM Revision 946dadd3 (git): Sync did_you_mean
yuki24 (Yuki Nishijima)
02:46 AM Revision 7cc55f4b (git): Thread#backtrace may return nil [ci skip]
znz (Kazuhiro NISHIYAMA)
02:30 AM Feature #16815: Implement Fiber#backtrace
+1 ko1 (Koichi Sasada)
01:23 AM Revision 237bee9d (git): Removed extra stringization
Argument of RUBY_ASSERT_FAIL is already stringized message, so no
more extra stringization should be applied.
nobu (Nobuyoshi Nakada)
01:02 AM Revision 3fcf7f02 (git): win32/mkexports.rb: do not export internal symbols
Functions using `rb_thread_t` and `rb_execution_context_t` are
internal use only.
nobu (Nobuyoshi Nakada)

05/11/2020

06:42 PM Feature #16848: Allow callables in $LOAD_PATH
Also alternatively the callable could be responsible for actually loading the code rather than return an absolute path.
This would allow for more flexibility in implementing alternative code loaders, e.g. read the source from an archi...
byroot (Jean Boussier)
06:27 PM Feature #16848: Allow callables in $LOAD_PATH
Right.
I always thought RubyGems should be smarter and when requiring `foo/bar.rb` it could look for a gem named `foo` first, and not look in all gems if the file exist.
This feature could help achieve some of that, instead of going ...
Eregon (Benoit Daloze)
02:50 PM Feature #16848: Allow callables in $LOAD_PATH
@eregon only if you did actually require it. My explanation is probably a bit confusing.
```ruby
$LOAD_PATH = [
"stdlib/"
]
Bootsnap.setup
# Bootsnap see `delegate.rb` in the stdlib, so cache as `{"delegate.rb" => "/stdlib/delegate.rb...
byroot (Jean Boussier)
01:58 PM Feature #16848: Allow callables in $LOAD_PATH
There is a now a spec for that as we replicated that caching in TruffleRuby:
https://github.com/oracle/truffleruby/commit/30024ed8c8f0900cf03bdc7fdf3fa7b4776837ac
Eregon (Benoit Daloze)
01:56 PM Feature #16848: Allow callables in $LOAD_PATH
> The other, more important difficulty, is that you also have to invalidate the cache whenever you add or delete a file in one of the $LOAD_PATH members, otherwise if you shadow or unshadow another file that is farther in the $LOAD_PATH,... Eregon (Benoit Daloze)
11:26 AM Feature #16848: Allow callables in $LOAD_PATH
I just realized I made a mistake in my benchmark, I also both instruction sequence and load path caching enabled.
With instruction sequence disabled, the speedup is only 17% for Redmine:
```
$ RAILS_ENV=production time bin/rails r...
byroot (Jean Boussier)
11:21 AM Feature #16848 (Feedback): Allow callables in $LOAD_PATH
Make it easier to implement `$LOAD_PATH` caching, and speed up application boot time.
I benchmarked it on Redmine's master using bootsnap with only the optimization enabled:
```ruby
if ENV['CACHE_LOAD_PATH']
require 'bootsnap'
...
byroot (Jean Boussier)
05:53 PM Revision 7a7854d8 (git): Some I/O in test doesn't have "position"
Just returns column 1 for ambiguous width because this I/O is not tty and can't
seek.
aycabta (aycabta .)
05:53 PM Revision d39be242 (git): Also use pipe for input in test
aycabta (aycabta .)
05:14 PM Revision 42abad24 (git): numeric.c: optimize `float ** 2` case by fastpath
It would be a relatively frequent case. It is still slower than
`float * float` because `*` has a dedicated VM instruction (opt_mult),
though.
mame (Yusuke Endoh)
04:46 PM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
I want Ruby 2.8/3.0 is faster than 2.7 by default.
NDEBUG is not acceptable.
I think Microsoft's _DEBUG approach is more reasonable.
naruse (Yui NARUSE)
04:15 PM Revision 95ac2355 (git): * 2020-05-12 [ci skip]
git[bot]
04:15 PM Revision 1258a0fb (git): Remove the 65 size limit for name_err_mesg_to_str
This limit was introduced on Nov 20 1996
in 554b989ba1623b9f6a0b76f00824c83a23fbcbc1
Apparently to protect from a buffer overflow:
* eval.c (f_missing): オブジェクトの文字列表現が長すぎる時バッファ
を書き潰していた
However I tested that path with very ...
byroot (Jean Boussier)
04:07 PM Bug #16849 (Closed): ObjectSpace.trace_object_allocations_stop fails if called before ObjectSpace.trace_object_allocations_start
The error is easy to reproduce:
e.g. on Ruby 2.3:
```
$ ruby -robjspace -e 'ObjectSpace.trace_object_allocations_stop'
-e:1:in `trace_object_allocations_stop': wrong argument type false (expected tracepoint) (TypeError)
from -e...
byroot (Jean Boussier)
11:42 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16847] Cache instruction sequences by default (byroot)
* This make code loading about 30% faster.
* All it's needed is to agree on where and how to store the cache.
* [Feature #16848] Allow callables in `$LOAD_PATH` (b...
byroot (Jean Boussier)
12:55 AM Misc #16775: DevelopersMeeting20200514Japan
* [Misc #16803] Discussion: those internal macros reside in public API headers (ko1)
* confirm the discussion.
ko1 (Koichi Sasada)
10:16 AM Feature #16847 (Closed): Cache instruction sequences by default
Instruction sequence caching is available since Ruby 2.3, and on recent rubies it speeds up code loading by about 30%.
I just benchmarked it on Redmine's master, using bootsnap with only that optimization enabled:
```ruby
if ENV['...
byroot (Jean Boussier)
07:47 AM Revision 15e97734 (git): more on NULL versus functions
Function pointers are not void*. See also
115fec062ccf7c6d72c8d5f64b7a5d84c9fb2dd8
ce4ea956d24eab5089a143bba38126f2b11b55b6
8427fca49bd85205f5a8766292dd893f003c0e48
shyouhei (Shyouhei Urabe)
07:47 AM Revision 4fbb3441 (git): fix sunpro pragma
SunPro's #pragma does_not_return(...) needs an argument. That does not
fit the attribute syntax we employ.
shyouhei (Shyouhei Urabe)
05:56 AM Revision 233c2018 (git): drop varargs.h support
This header file is simply out of date (for decades since at least
1989). It's the 21st century. Just stop using it.
shyouhei (Shyouhei Urabe)
02:07 AM Revision 534277fa (git): rb_str_new: hoist RB_CONSTANT_P out of function
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html says:
> GCC never returns 1 when you call the inline function with a string
> ...
Because rb_str_new and familiy take string constants, it was a bad idea
for them to contain RB_CONS...
shyouhei (Shyouhei Urabe)
12:24 AM Revision 9e41a752 (git): sed -i 's|ruby/impl|ruby/internal|'
To fix build failures. shyouhei (Shyouhei Urabe)
12:24 AM Revision b85fd1d6 (git): mv include/ruby/{impl,internal}
Devs do not love "impl". shyouhei (Shyouhei Urabe)
12:24 AM Revision 0d88fe3a (git): spaces in comments [ci skip]
shyouhei (Shyouhei Urabe)
12:24 AM Revision 122f96c3 (git): sed -i s/ruby3/rbimpl/g
shyouhei (Shyouhei Urabe)
12:24 AM Revision 97672f66 (git): sed -i s/RUBY3/RBIMPL/g
Devs do not love "3". The only exception is RUBY3_KEYWORDS in parse.y,
which seems unrelated to our interests.
shyouhei (Shyouhei Urabe)
12:24 AM Revision d7f4d732 (git): sed -i s|ruby/3|ruby/impl|g
This shall fix compile errors. shyouhei (Shyouhei Urabe)
12:24 AM Revision dca234a5 (git): mv include/ruby/{3,impl}
Devs do not love "3". shyouhei (Shyouhei Urabe)

05/10/2020

11:55 PM Bug #16844 (Third Party's Issue): I want to upgrade ruby for metasploit environment. Now Ruby version 2.5.0 .I want to upgrade 2.7.1 ..But i can’t. SO here is some bug ..It wants for rake 12.3.2 ..and i install it successfully..It has not been resolved yet...
The Ruby interpreter of metasploit framework is embedded package. So, you can ask your issue to the tracker of metasploit at first.
https://github.com/rapid7/metasploit-framework
hsbt (Hiroshi SHIBATA)
10:49 PM Bug #16844: I want to upgrade ruby for metasploit environment. Now Ruby version 2.5.0 .I want to upgrade 2.7.1 ..But i can’t. SO here is some bug ..It wants for rake 12.3.2 ..and i install it successfully..It has not been resolved yet...
How did you install ruby there? One-click installer? If so then I am not sure
why you attempt to install rvm. I don't think that is necessary; back when I
used ruby on windows sometimes, the one-click installer worked.
Either way, this ...
shevegen (Robert A. Heiler)
06:20 PM Bug #16845 (Closed): Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
Applied in changeset commit:git|c89c3801b985916b6fb6726aab966d28371dfaaa.
----------
BASERUBY have to be 1.9 or later at least [Bug #16845]
Many tools under tool directory haven't worked with ruby 1.8.
nobu (Nobuyoshi Nakada)
06:20 PM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
OK, since e1f62d7f0e3, if `HAVE_BASERUBY=yes` then `file2lastrev.rb` must succeed. nobu (Nobuyoshi Nakada)
03:58 PM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
Maybe I am missing something, but I get the same result with `-p`. Log is attached.
The `tar` manpage suggests `-p` is about preserving permissions, not timestamps.
And it looks like the timestamps are preserved even if I don't u...
ErikSwan (Erik Swan)
03:09 PM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
The timestamps in tarball are aligned to avoid to remake files which need BASERUBY.
But extracting **without** `-p` option disables it.
```
04:48 PM [eswan@rndssh1(RnD):/tmp/eswan]$ tar -xJvf ruby-2.7.1.tar.xz
```
nobu (Nobuyoshi Nakada)
07:56 AM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
It sounds to me that the root cause of this problem is released tarball having BASERUBY dependency. shyouhei (Shyouhei Urabe)
12:33 AM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
I have updated the title and description to correct where the syntax error is located. It is located in `./tool/lib/vcs.rb`, which is ***called*** by `./tool/file2lastrev.rb`.
From looking at the related issue that Shibata-san linked, i...
ErikSwan (Erik Swan)
06:19 PM Revision c89c3801 (git): BASERUBY have to be 1.9 or later at least [Bug #16845]
Many tools under tool directory haven't worked with ruby 1.8. nobu (Nobuyoshi Nakada)
05:41 PM Revision 4a24cd8e (git): Suppress probably impossible maybe-uninitialized warning
nobu (Nobuyoshi Nakada)
03:40 PM Revision 5d430c1b (git): Added more NORETURN declarations
nobu (Nobuyoshi Nakada)
03:40 PM Revision a1e1fdca (git): Fallback MAKE to make
nobu (Nobuyoshi Nakada)
03:22 PM Bug #16846 (Closed): Commit - win32ole: separate global variable declarations and definitions - backport?
The below commit fixes building win32ole using MinGW gcc 10.1.0. New Ruby releases (patch/teeny) are normally done with a current MSYS2 installation, so backporting this would be helpful for 2.5, 2.6, & 2.7. Not sure about the status o... MSP-Greg (Greg L)
03:19 PM Revision 27efe3f7 (git): * 2020-05-11 [ci skip]
git[bot]
03:18 PM Revision 3fa4fd47 (git): Pass MAKE value to configure for non-default name case
GNU make does not export it by default. nobu (Nobuyoshi Nakada)
02:17 PM Feature #16786: Light-weight scheduler for improved concurrency.
I recently did a deep dive into this approach and how it would fit into the Ruby ecosystem as part of my work on TruffleRuby.
I think what is being proposed here looks like a very practical idea for improving concurrency on Ruby, for ...
chrisseaton (Chris Seaton)
12:37 PM Revision f1699314 (git): win32ole: separate global variable declarations and definitions
https://gcc.gnu.org/gcc-10/changes.html#c
> * GCC now defaults to `-fno-common`. As a result, global
> ...
> silently merged during linking.
nobu (Nobuyoshi Nakada)
09:40 AM Revision dd830fab (git): Fixed a typo
nobu (Nobuyoshi Nakada)
08:28 AM Revision 42e8de8d (git): Fix for cross_compiling
`RubyVM.each_builtin` is not defined when cross compiling. nobu (Nobuyoshi Nakada)
07:59 AM Revision 967ae627 (git): Run rb_syswait on exec failure
not only when !w but also when w == WAITPID_LOCK_ONLY.
See also: f7c0cc36920a4ed14a3ab1ca6cfdf18ceff1e5d5 and a2264342063260d660b99872eaf5080f6ab08e81.
We thought this change was an oversight in the latter commit.
Without this change, t...
k0kubun (Takashi Kokubun)
07:51 AM Revision 50a6d292 (git): nmake doesn't understand $<
Fix MSVC build error. shyouhei (Shyouhei Urabe)
07:51 AM Revision 4fca592e (git): delete mk_builtin_binary.rb
To generate what is necessary via generic_erb.rb instead. shyouhei (Shyouhei Urabe)
07:51 AM Revision 191cfcc4 (git): delete mk_call_iseq_optimized.rb
To generate what is necessary via generic_erb.rb instead. shyouhei (Shyouhei Urabe)
05:36 AM Revision a6f85899 (git): Workaround a zombie process created by Open3
with MJIT worker enabled
The problem:
```
$ ruby -ropen3 --jit -e 'Open3.capture2e("cmake") rescue nil;binding.irb'
irb(main)[01:0]> Process.waitall
=> [[10656, #<Process::Status: pid 10656 exit 127>]]
$ ruby -ropen3 -e 'Open3.capture...
k0kubun (Takashi Kokubun)
05:19 AM Revision 18f22490 (git): * 2020-05-10 [ci skip]
git[bot]
05:18 AM Revision 3bf0d2bb (git): test/rubygems/test_gem_ext_cmake_builder.rb: make sure cmake available
just for a case. In addition, this change suppresses unused variable
warning.
mame (Yusuke Endoh)
01:53 AM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
Thank you for your explanation. With your hint and reading [the implementation code](https://github.com/ruby/ruby/blob/761528e8aa7c54ec92c90335fe26a584b992918b/ext/pathname/pathname.c#L1131-L1161) solved my question.
Dan0042 (Daniel D...
jnchito (Junichi Ito)
12:34 AM Bug #16843: A bug with floating point multiplication
Just as an add-on:
Go has similar effects to those reported here for Ruby, see e.g. https://stackoverflow.com/questions/33640943/golang-float-arithmetic.
@FedorKK, if you can find out *why* e.g. `fmt.Println(0.29 * 100 == 29.0)` prints...
duerst (Martin Dürst)
12:27 AM Bug #16843 (Rejected): A bug with floating point multiplication
hsbt (Hiroshi SHIBATA)
12:22 AM Misc #16839: Unicode.org - downloads & tests
Additional information: Unicode is still recovering from a VM crash last month. Mirroring of the Unicode Character Database on github might eventually happen, but not direct hosting. duerst (Martin Dürst)

05/09/2020

11:11 PM Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
From looking through the ChangeLog, it seems there have been a few changes regarding whether `file2lastrev.rb` needs to be run with `BASERUBY` or not, and what version `BASERUBY` is expected to be:
```
doc/ChangeLog-2.3.0
34-Thu Dec...
ErikSwan (Erik Swan)
10:32 PM Bug #16845 (Closed): Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
Hello,
I am trying to build Ruby 2.7.1 from source on a RHEL 6.9 system, which has ruby 1.8.7 as the existing system Ruby. When I run `make`, I get an error about a syntax error in `./tool/lib/vcs.rb`, which is called by `./tool/file2...
ErikSwan (Erik Swan)
06:38 PM Bug #16843: A bug with floating point multiplication
Ok, let's close it. It's really doesn't make any sense to improve the standard representation. But still:
``` go
func main() {
fmt.Println(0.29 * 100 == 29.0)
}
true
```
``` ruby
irb(main):001:0> 0.29 * 100 == 29.0
=...
FedorKK (Fedor Koshel)
05:57 PM Bug #16843: A bug with floating point multiplication
as well in Ruby:
```ruby
"%f" % (0.29 * 100) # => "29.000000"
"%f" % (0.28 * 100) # => "28.000000"
"%f" % (0.27 * 100) # => "27.000000"
```
sawa (Tsuyoshi Sawada)
05:45 PM Bug #16843: A bug with floating point multiplication
Yes, but for example in Go:
``` go
func main() {
fmt.Printf("%f", 0.29 * 100)
fmt.Println()
fmt.Printf("%f", 0.28 * 100)
fmt.Println()
fmt.Printf("%f", 0.27 * 100)
}
29.000000
28.000000
27.000000
```
FedorKK (Fedor Koshel)
05:36 PM Bug #16843: A bug with floating point multiplication
FYI:
```python
$ python
Python 2.7.17 (default, Apr 15 2020, 17:20:14)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0.29 * 100
28.999999999999996
> ...
28.999999999999996
>>>...
ko1 (Koichi Sasada)
04:50 PM Bug #16843: A bug with floating point multiplication
The behaviour is super unpredictable. I mean, the problem with floats is known, but it usually happens with precision values, or huge numbers. In this case, if you try to get an integer from 0.29*100 you'll get 28. Which is strange.
I...
FedorKK (Fedor Koshel)
04:05 PM Bug #16843: A bug with floating point multiplication
What is the bug? sawa (Tsuyoshi Sawada)
03:49 PM Bug #16843 (Rejected): A bug with floating point multiplication
I've reproduced it with both currently stable versions: 2.6.6 and 2.7.1.
``` ruby
irb(main):001:0> 0.29 * 100
=> 28.999999999999996
irb(main):002:0> 0.29 * 100.0
=> 28.999999999999996
irb(main):003:0> 0.28 * 100
=> 28.0000000000...
FedorKK (Fedor Koshel)
05:25 PM Feature #16254: MRI internal: Define built-in classes in Ruby with `__intrinsic__` syntax
Eregon (Benoit Daloze) wrote in #note-9:
> > My conclusion is it is bad idea to share the same code between interpreters.
> ...
It is one big advantage. I have no objection if it does not hurt MRI development.
There are several concerns...
ko1 (Koichi Sasada)
05:04 PM Bug #16844 (Third Party's Issue): I want to upgrade ruby for metasploit environment. Now Ruby version 2.5.0 .I want to upgrade 2.7.1 ..But i can’t. SO here is some bug ..It wants for rake 12.3.2 ..and i install it successfully..It has not been resolved yet...
C:\Users\annon>cd..
C:\Users>cd..
C:\>cd metasploit
C:\metasploit>console.bat
The system cannot find the path specified.
C:\metasploit>gem install rvm
Could not find rake-12.3.2 in any of the sources
Run `bundle install` t...
alamin (Al AMIN)
02:35 PM Bug #16842 (Closed): `inspect` prints the UTF-8 character U+0085 (NEXT LINE) verbatim even though it is not printable
The UTF-8 character U+0085 (NEXT LINE) is not printable, but `inspect` prints the character verbatim (within double quotation):
```ruby
0x85.chr(Encoding::UTF_8).match?(/\p{print}/) # => false
0x85.chr(Encoding::UTF_8).inspect
#=> ...
sawa (Tsuyoshi Sawada)
01:24 PM Revision 889b0fe4 (git): .github/workflows/compilers.yml: GCC 10.1 released
shyouhei (Shyouhei Urabe)
12:03 PM Feature #16791: Shortcut for Process::Status.exitstatus
nobu (Nobuyoshi Nakada) wrote in #note-7:
> It may be acceptable to let `exit` accept a `SystemExit` instance though.
I think that would be useful.
I'd guess it would behave as something like:
```ruby
# useful if terminated by a s...
Eregon (Benoit Daloze)
07:22 AM Feature #16791: Shortcut for Process::Status.exitstatus
Dan0042 (Daniel DeLorme) wrote in #note-6:
> nobu (Nobuyoshi Nakada) wrote in #note-4:
> ...
I don't know such systems actually too, just only the rationale of `EXIT_SUCCESS` and `EXIT_FAILURE` in the C standard.
> Although thanks t...
nobu (Nobuyoshi Nakada)
11:51 AM Bug #16680: Symlink folder in $LOAD_PATH does not work with autoload
Maybe a solution is to always resolve symlinks in the cache of `$LOAD_PATH`?
One issue is that `$LOAD_PATH` entries might not necessarily exist.
Eregon (Benoit Daloze)
10:47 AM Bug #16680: Symlink folder in $LOAD_PATH does not work with autoload
Sorry, any update on this?
zw963 (Wei Zheng)
11:28 AM Misc #16839 (Closed): Unicode.org - downloads & tests
Closed upon request. I will try to ask people at Unicode about hosting or mirroring Unicode data on github. But I suspect that won't happen so quickly; there are quite a few aspects of the current management of that data that would have ... duerst (Martin Dürst)
11:13 AM Revision 883214f8 (git): Use %w instead of %i not to create unused IDs
nobu (Nobuyoshi Nakada)
11:07 AM Revision 595e74ae (git): test/io/console/test_io_console.rb: Rescue Errno::ENXIO for Solaris
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200509T100003Z.fail.html.gz
```
1) Failure:
TestIO_Console#test_failed_path [/export/home/users/chkbuild/cb-gcc/tmp/build/20200509T100003Z/ruby/test/io/con...
mame (Yusuke Endoh)
08:05 AM Revision be575a6e (git): [ruby/io-console] Use sys_fail_fptr macro
https://github.com/ruby/io-console/commit/2b8ba023c8 nobu (Nobuyoshi Nakada)
07:58 AM Revision 7df6eaf2 (git): Addeed missing RSpec namespace
hsbt (Hiroshi SHIBATA)
07:08 AM Bug #16677: Negative integer powered (**) to a float number results in a complex
sawa (Tsuyoshi Sawada) wrote in #note-25:
> > A space after `-` means same things.
> ...
Really?
It feels counter-motivation to me.
nobu (Nobuyoshi Nakada)
07:07 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16828] Introduce find patterns (ktsj)
* I implemented it as matz wanted it. Please discuss it on the dev-meeting.
mame (Yusuke Endoh)
05:51 AM Revision 581763d1 (git): [ruby/io-console] Fails with EBADF on mingw
https://github.com/ruby/io-console/commit/530cec574c nobu (Nobuyoshi Nakada)
05:46 AM Revision d7a59e2f (git): [ruby/io-console] Expanded expected errors
May fail with ENOTTY instead of ENODEV.
https://github.com/ruby/io-console/commit/fe117b89e0
nobu (Nobuyoshi Nakada)
05:22 AM Revision 0a86679a (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
05:22 AM Revision 4314c053 (git): Fix typos
znz (Kazuhiro NISHIYAMA)
04:57 AM Revision cc9bc145 (git): [ruby/io-console] Added test for failed path
https://github.com/ruby/io-console/commit/06a540f9b4 nobu (Nobuyoshi Nakada)
04:56 AM Revision 0ce45db1 (git): [ruby/io-console] Show path name at error
https://github.com/ruby/io-console/commit/6a4b1c1a6d nobu (Nobuyoshi Nakada)
04:46 AM Revision 5eb446d1 (git): mjit_worker.c: compile_compact_jit_code is not used on mingw
nobu (Nobuyoshi Nakada)
04:45 AM Revision 1181edd5 (git): rbuninstall.rb: show paths without destdir as well as rbinstall.rb
nobu (Nobuyoshi Nakada)
04:23 AM Feature #15921: R-assign (rightward-assignment) operator
I do not have any particularly strong opinion either way, but I would like to point out
that the example given by duerst made the most sense to me personally, from all the
examples given above as to the potential usefulness. :)
I wo...
shevegen (Robert A. Heiler)

05/08/2020

04:54 PM Feature #16791: Shortcut for Process::Status.exitstatus
nobu (Nobuyoshi Nakada) wrote in #note-4:
> It is not a good idea to compare `exitstatus` with 0 from the point of portability.
Can I ask why that is? 0 is success and non-0 is failure; I don't know of any system where things are dif...
Dan0042 (Daniel DeLorme)
04:43 PM Revision e88bb6a2 (git): rbuninstall.rb: get rid of errors when prefix ends with "/."
nobu (Nobuyoshi Nakada)
04:40 PM Revision 8830d60d (git): rbuninstall.rb: print output record separator instead of $\
nobu (Nobuyoshi Nakada)
04:25 PM Revision 72106038 (git): * 2020-05-09 [ci skip]
git[bot]
04:22 PM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
I don't think those can have consistent results, because Pathname#glob is equivalent to using the `base` option of `Dir.glob` and then joining the paths, which is not the same as joining the paths into a glob and then invoking `Dir.glob`... Dan0042 (Daniel DeLorme)
04:22 PM Revision 3333d023 (git): rbinstall.rb: get rid of installing duplicate files
Should not overwrite ext/rubyvm/lib/forwardable/impl.rb by
lib/forwardable/impl.rb.
nobu (Nobuyoshi Nakada)
04:04 PM Bug #16677: Negative integer powered (**) to a float number results in a complex
nobu (Nobuyoshi Nakada) wrote in #note-23:
> A space after `-` means same things.
Thank you for the information. That further strengthens the motivation for the proposal.
sawa (Tsuyoshi Sawada)
02:53 PM Bug #16677: Negative integer powered (**) to a float number results in a complex
nobu (Nobuyoshi Nakada) wrote in #note-23:
> A space after `-` means same things.
Wow! So `-2.to_s` is different from `- 2.to_s` !?!?!
I find this really amazing. I'm just not sure if it's amazing in a good or a bad way.
Dan0042 (Daniel DeLorme)
03:55 PM Revision cc3352cc (git): rbinstall.rb: record bundled gem files
nobu (Nobuyoshi Nakada)
03:29 PM Feature #15771: Add `String#split` option to set `split_type string` with a single space separator
I've often thought that the default behavior should be tied to nil rather than " ", but in terms of compatibility I don't really think it's worth the change.
The proposed option makes it easy to avoid special-casing the " " separator; i...
Dan0042 (Daniel DeLorme)
12:23 PM Revision 8a504b22 (git): Added GC guard for splatted array
nobu (Nobuyoshi Nakada)
11:30 AM Bug #16841 (Closed): Some syntax errors are thrown from compile.c
`compile.c` has a few places where it raises `SyntaxError`. Because of that `ruby -c`, Ripper and `RubyVM::AbstractSyntaxTree` don't catch them:
```sh
> ruby -vce 'class X; break; end'
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) ...
ibylich (Ilya Bylich)
09:55 AM Bug #16777: IRB in Ruby 2.7 hangs on pasting long here document
I found the same issue is reported here https://github.com/ruby/irb/issues/43 , so you can close this.
jnchito (Junichi Ito) wrote:
> IRB in Ruby 2.7 hangs on pasting long here document. Here is an example when I copy and paste the s...
jnchito (Junichi Ito)
08:19 AM Bug #16801 (Closed): The default Struct constructor improperly handle keyword arguments
Applied in changeset commit:git|adf709a78534c1483ba851ccb0490464ca31503c.
----------
Classes made from Struct should have default `new` singleton method.
[Bug #16465] [Bug #16801]
[Fix GH-2795] [Fix GH-2944] [Fix GH-3045] [Fix GH-3093]...
Anonymous
08:19 AM Bug #16465 (Closed): False keyword warning against Struct#initialize
Applied in changeset commit:git|adf709a78534c1483ba851ccb0490464ca31503c.
----------
Classes made from Struct should have default `new` singleton method.
[Bug #16465] [Bug #16801]
[Fix GH-2795] [Fix GH-2944] [Fix GH-3045] [Fix GH-3093]...
Anonymous
08:18 AM Revision adf709a7 (git): Classes made from Struct should have default `new` singleton method.
[Bug #16465] [Bug #16801]
[Fix GH-2795] [Fix GH-2944] [Fix GH-3045] [Fix GH-3093]
Note: Backporting shouldn't modify object.h and instead can use
struct_new_kw which is basically a duplicate implementation of
rb_class_new_instance_pass_...
Marc-Andre Lafortune
07:56 AM Misc #16803: Discussion: those internal macros reside in public API headers
OK then, let's move the directory from `impl` to `internal`. Will update the pull request. shyouhei (Shyouhei Urabe)
07:34 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
nobu (Nobuyoshi Nakada) wrote in #note-10:
> As `str` is an argument variable and `RUBY3_CONSTANT_P(str)` is always false here,
Well, thank you pointing this out. As I wrote in `include/ruby/3/constant_p.h`, you can apply `__builtin...
shyouhei (Shyouhei Urabe)
02:46 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
Not only assertions, some optimizations can no longer be applied.
For instance, `rb_str_new_cstr` was defined as following in 2.7,
```C
#define rb_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \
(__builtin_constant_p(str)) ? \
...
nobu (Nobuyoshi Nakada)
05:27 AM Revision da345adc (git): `Open3.capture2e` raises exception when the command is not present.
hsbt (Hiroshi SHIBATA)
05:13 AM Feature #15921: R-assign (rightward-assignment) operator
At https://bugs.ruby-lang.org/issues/16775#change-85434, Eregon (Benoit Daloze) wrote:
>>>>
- Could matz and other committers clarify the motivation to introduce this? There is no pipeline operator currently so it seems of limited usag...
duerst (Martin Dürst)
05:13 AM Revision ac2c07e9 (git): Revert "[rubygems/rubygems] Remove unneeded global teardown"
This reverts commit 93d1588c782ab9d61699f98b6c64d7f0ab8121c0. hsbt (Hiroshi SHIBATA)
05:13 AM Revision ceacb063 (git): Revert "[rubygems/rubygems] Remove unneeded teardown"
This reverts commit 0da416ab170dbe1cbd530a5a7c5e8128910014b2. hsbt (Hiroshi SHIBATA)
05:13 AM Revision 20971d0d (git): Revert "[rubygems/rubygems] Use a local temporary directory"
This reverts commit e98455f289047c43a733e61ac6317fb74b68de82. hsbt (Hiroshi SHIBATA)
05:13 AM Revision 07d4ad93 (git): [rubygems/rubygems] Remove unneeded teardown
Tests using credentials shouldn't be leaving side effects.
https://github.com/rubygems/rubygems/commit/975bcafdfc
deivid (David Rodríguez)
05:13 AM Revision 93293043 (git): [rubygems/rubygems] Remove unneeded global teardown
Instead, make each test cleanup after itself.
https://github.com/rubygems/rubygems/commit/e0aba9d64f
deivid (David Rodríguez)
05:13 AM Revision b9031b10 (git): [rubygems/rubygems] Restore the old .gemrc example for compatible tests
https://github.com/rubygems/rubygems/commit/c45d65a06d hsbt (Hiroshi SHIBATA)
05:13 AM Revision 4e436e60 (git): [rubygems/rubygems] Removed needless setup to clear credential
https://github.com/rubygems/rubygems/commit/4f694f4fb7 hsbt (Hiroshi SHIBATA)
05:13 AM Revision ab1b31ff (git): [rubygems/rubygems] Also added credential_setup to the some of tests
https://github.com/rubygems/rubygems/commit/2ac557d008 hsbt (Hiroshi SHIBATA)
05:13 AM Revision 58af4c0a (git): [rubygems/rubygems] Split credential helper as credential_setup and use it
https://github.com/rubygems/rubygems/commit/b0c55c76ca hsbt (Hiroshi SHIBATA)
05:13 AM Revision 18ac783e (git): [rubygems/rubygems] Revert adding loaded specs to `Gem::Specification.stubs` and `Gem::Specification.stubs_for`
The rationale is that:
* The change has caused realworld issues. See for example
https://github.com/ruby/did_you_mean/issues/117 and specifically [this
comment](https://github.com/ruby/did_you_mean/issues/117#issuecomment-482733159)
for...
deivid (David Rodríguez)
05:13 AM Revision 46462200 (git): [rubygems/rubygems] Test that two calls to `stub_for` returns the same (cached) instance.
https://github.com/rubygems/rubygems/commit/00b3f55562 Vít Ondruch
05:13 AM Revision acc86570 (git): [rubygems/rubygems] Let `@@stubs_by_name` to be incrementally populated again.
Originally, the call to `.stubs_for` allowed to incrementally populate
the `@@stubs_by_name` (especially see the `"#{name}-*.gemspec"` pattern
in 4fa03bb7aac9f25f44394e818433fdda9962ae8d). Now it looks like it
expects that all stubs are ...
Vít Ondruch
05:13 AM Revision 15a4b7d7 (git): [rubygems/rubygems] Remove unnecessary code
This list of exceptions is no longer rescued since
1f03275ff3faa1c808d3a3b89ef5db62dc2eb2ba.
https://github.com/rubygems/rubygems/commit/6e71e7be67
deivid (David Rodríguez)
05:13 AM Revision c832e3fa (git): [rubygems/rubygems] Require open3 before using it
Otherwise if this test file is run in isolation, this test will fail.
https://github.com/rubygems/rubygems/commit/79da003948
deivid (David Rodríguez)
05:13 AM Revision 5df60827 (git): [rubygems/rubygems] Improve gzip errors logging
By default, the `Zlib::GzipFile::Error` does not include the actual data
that was not in gzip format that caused the error.
However, its `#inspect` method includes it.
I think this can be helpful to troubleshoot errors.
https://github...
deivid (David Rodríguez)
05:13 AM Revision b24f7dbc (git): [rubygems/rubygems] Update util.rb
Remove unused module variable.
https://github.com/rubygems/rubygems/commit/98135bb3d8
Samuel Williams
05:13 AM Revision 0e195c82 (git): [rubygems/rubygems] Remove old `gauntlet_rubygems` file on rubygems upgrade
The file was removed at
https://github.com/rubygems/rubygems/commit/65b709b095b8354ac2620d1a5d7d537e539f6498,
shipped with rubygems 2.6.5.
https://github.com/rubygems/rubygems/commit/739159a120
deivid (David Rodríguez)
05:13 AM Revision c982c5ef (git): [rubygems/rubygems] Skip flaky tests on jruby
I believe these are most certainly due to a problem outside of rubygems.
I'm skipping these at least until webrick officially supports jruby
(defining "officially" as "webrick's CI passes on jruby").
https://github.com/rubygems/rubygems...
deivid (David Rodríguez)
05:13 AM Revision ce88e2a8 (git): [rubygems/rubygems] Suppress warnings coming from `jar-dependencies`
This is a default gem on jruby, which ships with a rubygems plugin,
which prints warnings all over the place during our tests.
This plugin is unnecessary from our tests, so I disable it through the
`JARS_SKIP` environment variable provi...
deivid (David Rodríguez)
05:13 AM Revision 314d7f89 (git): Remove `builder` gem requirement for `gem regenerate_index`
This requirement was introduced 14 years ago in
7ce7039b390440754954df5efea619e9f57ef823, and I don't think it's
necessary anymore. I made several tests introducing UTF-8 characters in
gemspec files and generating indexes out of them, an...
deivid (David Rodríguez)
05:13 AM Revision b5a0db8b (git): [rubygems/rubygems] Remove unnecessary code from remote fetcher tests
This code is not necessary and has the bad side effect of causing
test failures in cascade once a single test inside the file fails.
See https://github.com/rubygems/rubygems/runs/538978838 for an example.
https://github.com/rubygems/ru...
deivid (David Rodríguez)
05:13 AM Revision a433b82f (git): [rubygems/rubygems] Now `Dir.tmpdir` is fixed and there's never such a folder
https://github.com/rubygems/rubygems/commit/44ebbded12 deivid (David Rodríguez)
05:13 AM Revision 2efe7419 (git): [rubygems/rubygems] Use a local temporary directory
To make tests more deterministic, since `Dir.tmpdir` sometimes will
return the current directory dependending on the writability of other
paths, and in that case since the current directory is changed by our
tests, tests can fail.
Force...
deivid (David Rodríguez)
05:13 AM Revision fca24dd1 (git): [rubygems/rubygems] No longer necessary
Fixed in
https://github.com/ruby/ruby/commit/45df1c24d269f93a2bc1e7a6fe0ffcecc1193051,
released with ruby 2.3
https://github.com/rubygems/rubygems/commit/f8f67f3952
deivid (David Rodríguez)
05:13 AM Revision 7fb694fd (git): [rubygems/rubygems] Show gemspec location when a Gem::MissingSpecError is raised while trying to activate a gem
https://github.com/rubygems/rubygems/commit/4da54a8e8b bronzdoc
05:13 AM Revision b454b4e3 (git): [rubygems/rubygems] Make MissingSpecError accept an extra error message
https://github.com/rubygems/rubygems/commit/b23d2421df bronzdoc
05:13 AM Revision 4a417b08 (git): [rubygems/rubygems] Fix incorrect bundler version being required
In ruby 2.7.0, there's a slight change in bundler's default gemspec file
where the executable folder of the bundler gem is `libexec` instead of
`exe`. I made that change in https://github.com/ruby/ruby/pull/2380 to
try to simplify the in...
deivid (David Rodríguez)
05:13 AM Revision 82500001 (git): [rubygems/rubygems] Extract logic to a local variable for later reuse
https://github.com/rubygems/rubygems/commit/dc715888d4 deivid (David Rodríguez)
05:13 AM Revision 6e80cabb (git): [rubygems/rubygems] Specify explicit separator not to be affected by $;
https://github.com/rubygems/rubygems/commit/1cea3d4dce nobu (Nobuyoshi Nakada)
05:13 AM Revision 241950b1 (git): [rubygems/rubygems] Properly look for man pages
When bundler is installed as a default gem (either by ruby's or by
rubygems' installer), bundler man pages wouldn't be properly found.
https://github.com/rubygems/rubygems/commit/0831b40492
deivid (David Rodríguez)
05:13 AM Revision a453f26b (git): [rubygems/rubygems] Extract a local variable
https://github.com/rubygems/rubygems/commit/445c9da2ac deivid (David Rodríguez)
05:13 AM Revision ece16901 (git): [rubygems/rubygems] Install man files when bundler installed as a default gem
https://github.com/rubygems/rubygems/commit/28d6d77d81 deivid (David Rodríguez)
05:13 AM Revision 64e89713 (git): [rubygems/rubygems] Extract a `remove_file_list` helper
https://github.com/rubygems/rubygems/commit/8cc6087590 deivid (David Rodríguez)
05:13 AM Revision c74d306b (git): [rubygems/rubygems] Only need to call helper once
https://github.com/rubygems/rubygems/commit/6ddbf5bcab deivid (David Rodríguez)
05:13 AM Revision d2087f1c (git): [rubygems/rubygems] Extract an `install_file_list` helper
https://github.com/rubygems/rubygems/commit/5106ea4582 deivid (David Rodríguez)
05:13 AM Revision 41b28847 (git): [rubygems/rubygems] Move helper to private section
https://github.com/rubygems/rubygems/commit/fb824b7a81 deivid (David Rodríguez)
05:13 AM Revision 5400811d (git): [rubygems/rubygems] Refactor dummy file creation
https://github.com/rubygems/rubygems/commit/665099fe53 deivid (David Rodríguez)
05:13 AM Revision 74867e2d (git): [rubygems/rubygems] Fix super weird code style
https://github.com/rubygems/rubygems/commit/f1a5815896 deivid (David Rodríguez)
05:13 AM Revision ed1e4504 (git): [rubygems/rubygems] Follow the pattern of other test files for foo.pem
https://github.com/rubygems/rubygems/commit/a43cffddad deivid (David Rodríguez)
05:13 AM Revision 10904563 (git): [rubygems/rubygems] Move helper methods to private section of the test file
https://github.com/rubygems/rubygems/commit/b85db66e2d deivid (David Rodríguez)
05:13 AM Revision d59b9222 (git): [rubygems/rubygems] Rename method to clarify
https://github.com/rubygems/rubygems/commit/6dc76146ad deivid (David Rodríguez)
05:13 AM Revision 53b548f4 (git): [rubygems/rubygems] Install existing gems as regular gems
https://github.com/rubygems/rubygems/commit/a0880d78a8 deivid (David Rodríguez)
05:13 AM Revision 6438c584 (git): [rubygems/rubygems] Remove misleading comments
`site_dir`, or `vendor_dir`, is the location where the default version
of bundler & rubygems gets installed. These folders are placed directly
in the LOAD_PATH, so they cannot hold any nested gem directory
structure. So a single copy of ...
deivid (David Rodríguez)
05:13 AM Revision 373d01bb (git): [rubygems/rubygems] Remove unnecessary line
https://github.com/rubygems/rubygems/commit/1d0981809a deivid (David Rodríguez)
05:13 AM Revision 0d7e0eb2 (git): [rubygems/rubygems] Prefer `tr` to `gsub` when replacing path separators
This is not detected by the `Performance/StringReplacement` cop, I guess
because of using constants. But still seems like a good change.
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/...
deivid (David Rodríguez)
05:13 AM Revision de57d389 (git): [rubygems/rubygems] Shortcuit method earlier
If the class variable is set, we can skip the whole thing from the
beginning.
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/commit/83abf3a3d4
deivid (David Rodríguez)
05:13 AM Revision c58d69e6 (git): [rubygems/rubygems] Condense some artificially broken lines
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/commit/5f390478c7
deivid (David Rodríguez)
05:13 AM Revision a49a1311 (git): [rubygems/rubygems] Extract `gem_make_out` contents to a variable
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com>
https://github.com/rubygems/rubygems/commit/5f2b7474eb
deivid (David Rodríguez)
05:13 AM Revision b1541606 (git): [rubygems/rubygems] Fix incorrect `gem uninstall --all` message
Currently `gem uninstall --all` shows the following incorrect message
after completion:
```
INFO: Uninstalled all gems in
```
Now it shows something that actually makes sense like:
```
INFO: Uninstalled all gems in /home/deivid/Code...
deivid (David Rodríguez)
05:13 AM Revision 22030fe5 (git): [rubygems/rubygems] Refactor duplicate metadata logic
https://github.com/rubygems/rubygems/commit/1e5ef177ac Thomas McDonald
05:13 AM Revision 856f2f31 (git): [rubygems/rubygems] Remove unnecessary code
`@host` _could_ be `nil` at this point, but only if all the conditions
above for setting `@host` were `nil`. In that case, it is guaranteed
to `default_gem_server` metadata is `nil` since it's one of the
branches in that condition. So th...
Thomas McDonald
05:13 AM Revision 12ac0fa9 (git): [rubygems/rubygems] Simplify host switching logic
This block was a branch and variable heavy way of saying use the
user-provided host if available, or fall-back to the default host if
none of the other options match. IMO the resultant single-if condition
is clearer in intentions
https:...
Thomas McDonald
05:13 AM Revision acb793b7 (git): [rubygems/rubygems] Make cmake tests less verbose on jruby
These tests work on jruby, but the flags to the system command used to
detect whether `cmake` is present seem to be ignored on jruby and the
output is printed to screen instead of being sent to /dev/null. This
results in very verbose tes...
deivid (David Rodríguez)
05:13 AM Revision 676d816e (git): [rubygems/rubygems] Refactor ruby command line building for tests
https://github.com/rubygems/rubygems/commit/43819b6973 deivid (David Rodríguez)
05:13 AM Revision 16353943 (git): [rubygems/rubygems] Update test_realworld_default_gem to use rubygems project sources
https://github.com/rubygems/rubygems/commit/7506f7eb07 Brandon Fish
05:13 AM Revision 90427875 (git): [rubygems/rubygems] Remove unnecessary `@@ruby` variable
https://github.com/rubygems/rubygems/commit/5f20647ec1 deivid (David Rodríguez)
05:13 AM Revision c6979feb (git): [rubygems/rubygems] Remove unneeded explicit requires
https://github.com/rubygems/rubygems/commit/583316bf49 deivid (David Rodríguez)
05:13 AM Revision df39476a (git): [rubygems/rubygems] Remove unneeded dups
https://github.com/rubygems/rubygems/commit/2f072e3dc7 deivid (David Rodríguez)
05:13 AM Revision fd5e4ca4 (git): [rubygems/rubygems] Remove unneeded untainting
https://github.com/rubygems/rubygems/commit/ff223d8489 deivid (David Rodríguez)
05:13 AM Revision 1039c32d (git): [rubygems/rubygems] Simplify nested require exceptions
https://github.com/rubygems/rubygems/commit/7fbef2f0e3 deivid (David Rodríguez)
05:13 AM Revision 43daf4d2 (git): [rubygems/rubygems] Fix ruby warning about unused local variables
https://github.com/rubygems/rubygems/commit/cca2fccd95 deivid (David Rodríguez)
05:13 AM Revision 2ece4d96 (git): [rubygems/rubygems] Fix ruby warnings about a shadowed variable
https://github.com/rubygems/rubygems/commit/5cfb3252d9 deivid (David Rodríguez)
05:13 AM Revision a0c4d14a (git): [rubygems/rubygems] Fix symlink RubyGems test problems for non-admin user.
https://github.com/rubygems/rubygems/commit/75f672ff0e retro (Josef Šimánek)
05:13 AM Revision 3315ce69 (git): [rubygems/rubygems] Fix race condition on bundler's parallel installer
When installing in parallel, bundler creates several `Gem::Installer`
instances that run in parallel. These installers access the `@@all` class
variable of `Gem::Specification` concurrently.
If a concurrent thread calls `Gem::Specificat...
deivid (David Rodríguez)
05:13 AM Revision 03fe7da1 (git): [rubygems/rubygems] Allow spaces in file headers during octal check
https://github.com/rubygems/rubygems/commit/e9e25731d8 Dmytro Shyrshov

05/07/2020

10:54 PM Revision 7574b836 (git): Add T_IMEMO support to lldb
I'm trying to find why a reference to an IMEMO object isn't being
updated
tenderlovemaking (Aaron Patterson)
10:46 PM Revision ce91c561 (git): Fix typo in test name
peterzhu2118 (Peter Zhu)
10:38 PM Revision 427eb2b9 (git): [rubygems/rubygems] Remove unnecessary DIR constant
We have `__dir__` which is the same thing.
https://github.com/rubygems/rubygems/commit/f89776427f
deivid (David Rodríguez)
10:38 PM Revision 1ede0c15 (git): [rubygems/rubygems] Move stuff to the instance level
I don't know why it was living at the class level. At first I thought it
would be to reuse some server instances between tests, but they seem to
be cleaned up after every test anyways, so I don't think any of it is
needed.
https://githu...
deivid (David Rodríguez)
10:38 PM Revision 0b40279d (git): Normalize heredoc case in rubygems code base
deivid (David Rodríguez)
10:38 PM Revision 2205ae8a (git): Normalize heredoc delimiters
deivid (David Rodríguez)
10:38 PM Revision 31663e9e (git): [rubygems/rubygems] These specs seem to work just fine on jruby
https://github.com/rubygems/rubygems/commit/a0219b9f27 Eregon (Benoit Daloze)
10:38 PM Revision fe2b83e2 (git): [rubygems/rubygems] Fix platform comparison bug in #contains_requirable_file?
* One should not compare RUBY_ENGINE and Gem::Platform.
* Introduced in https://github.com/rubygems/rubygems/pull/2672
https://github.com/rubygems/rubygems/commit/0e62c3be91
Eregon (Benoit Daloze)
10:38 PM Revision 1464719f (git): [rubygems/rubygems] Only run the $SAFE test on MRI < 2.7
* Other Ruby implementations don't support $SAFE.
https://github.com/rubygems/rubygems/commit/9a4ba16efa
Eregon (Benoit Daloze)
10:38 PM Revision bb3d80bb (git): [rubygems/rubygems] Autoload name_tuple.rb before use
- Resolver asked Molinillo to resolve-then-activate, which led to using Gem::NameTuple before any require had been passed
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
https://github.com/rubygems/rubygems/commit/e11782b0c8
olleolleolle (Olle Jonsson)
10:38 PM Revision 39322317 (git): [rubygems/rubygems] Do not use set.
https://github.com/rubygems/rubygems/commit/1a72c8796f retro (Josef Šimánek)
10:38 PM Revision 832a7b04 (git): [rubygems/rubygems] Add gem build test to check for removed methods.
https://github.com/rubygems/rubygems/commit/c07b9cf4f1 retro (Josef Šimánek)
10:38 PM Revision 856cbbdd (git): [rubygems/rubygems] Track removed methods calls and warn during build time.
move rubyforge_project= to removed methods
https://github.com/rubygems/rubygems/commit/223f7fd470
retro (Josef Šimánek)
10:38 PM Revision 4dd46dba (git): [rubygems/rubygems] Deprecate rubyforge_project attribute only during build time.
https://github.com/rubygems/rubygems/commit/c44eb21648 retro (Josef Šimánek)
10:38 PM Revision 60cafe8e (git): [rubygems/rubygems] Revert deprecation of deprecate method for now.
https://github.com/rubygems/rubygems/commit/965eee1741 retro (Josef Šimánek)
10:38 PM Revision 0e85a39d (git): [rubygems/rubygems] Restore and deprecate old deprecate method
https://github.com/rubygems/rubygems/commit/024267fa60 bronzdoc
10:38 PM Revision 7db538a7 (git): [rubygems/rubygems] Rename version horizon deprecation methods
https://github.com/rubygems/rubygems/commit/6afd914fda bronzdoc
10:38 PM Revision 361ed8d0 (git): [rubygems/rubygems] Avoid "ambiguous first argument" warning
https://github.com/rubygems/rubygems/commit/984bb9b815 bronzdoc
10:38 PM Revision 80163db9 (git): [rubygems/rubygems] Add next_rubygems_major_version method
https://github.com/rubygems/rubygems/commit/db5bb65baf bronzdoc
10:38 PM Revision ff37dd7e (git): [rubygems/rubygems] Modify files to use new version horizon deprecations
https://github.com/rubygems/rubygems/commit/4fe5bb5bf3 bronzdoc
10:38 PM Revision 42c91de9 (git): [rubygems/rubygems] Use the next major version as default for deprecations
https://github.com/rubygems/rubygems/commit/b679ab27af bronzdoc
10:38 PM Revision feb29740 (git): [rubygems/rubygems] Remove deprecation methods by date
https://github.com/rubygems/rubygems/commit/3a14635cf5 bronzdoc
10:38 PM Revision a7a7e7be (git): [rubygems/rubygems] Make the deprecate_command method recieve a Rubygems version instead of a date
https://github.com/rubygems/rubygems/commit/bf95b1de78 bronzdoc
10:38 PM Revision 2f7865bb (git): [rubygems/rubygems] Make the deprecate method recieve a Rubygems version instead of a date
https://github.com/rubygems/rubygems/commit/f0e098a1b7 bronzdoc
10:38 PM Revision 1fe2b7f4 (git): Workaround for Minitest5
hsbt (Hiroshi SHIBATA)
10:38 PM Revision 7050f86a (git): [rubygems/rubygems] Removed deprecated methods for Minitest5
It was migrated on ruby core repository too.
https://github.com/ruby/ruby/commit/e5db3da9d34f0a7595208863301c044b612adbed
https://github.com/rubygems/rubygems/commit/848bbe3c76
hsbt (Hiroshi SHIBATA)
10:38 PM Revision e29c94e8 (git): [rubygems/rubygems] Minitest::Test is works fine with the ruby core repository
https://github.com/rubygems/rubygems/commit/afa01a29a3 hsbt (Hiroshi SHIBATA)
10:38 PM Revision 3041e262 (git): [rubygems/rubygems] Revert https://github.com/rubygems/rubygems/pull/3445
These changes completely broke the test suite on ruby core repository.
https://github.com/rubygems/rubygems/commit/84b0bea3e1
hsbt (Hiroshi SHIBATA)
10:38 PM Revision 32564803 (git): [rubygems/rubygems] Don't swallow gem activation exception
Our tests are now guaranteed to not work on older versions of minitest,
so I don't think we should swallow this activation error because it will
make it very clear for the user what the problem is if she has a
minitest version not satisf...
deivid (David Rodríguez)
10:38 PM Revision 2396f703 (git): [rubygems/rubygems] Update minitest version in `Gem.install` docs
https://github.com/rubygems/rubygems/commit/aec3887d9c deivid (David Rodríguez)
10:38 PM Revision b8ef5ed8 (git): [rubygems/rubygems] Remove minitest compatibility code
https://github.com/rubygems/rubygems/commit/24213b97d8 deivid (David Rodríguez)
10:38 PM Revision f4022f94 (git): [rubygems/rubygems] [rubygems/rubygems] Require minitest `~> 5.13`
https://github.com/rubygems/rubygems/commit/f2cc5d7033
https://github.com/rubygems/rubygems/commit/ae5b4e2043
deivid (David Rodríguez)
10:38 PM Revision b72c5668 (git): [rubygems/rubygems] Use newer module Minitest name
https://github.com/rubygems/rubygems/commit/2890622479 deivid (David Rodríguez)
09:50 PM Bug #16658: `method__cache__clear` DTrace hook was dropped without replacement
ko1 (Koichi Sasada) wrote in #note-6:
> Thanks, I think there is no chance to invoke this hook on current master.
Could you please adjust the probes.d then? Thx.
vo.x (Vit Ondruch)
09:46 PM Bug #16658: `method__cache__clear` DTrace hook was dropped without replacement
Thanks, I think there is no chance to invoke this hook on current master. ko1 (Koichi Sasada)
06:56 PM Bug #16658: `method__cache__clear` DTrace hook was dropped without replacement
> > When this hook was invoked?
> ...
Hm, this does not appear to really work, since the vm_method.c is collapsed. Anyway, this used to be the invocation place:
https://github.com/ruby/ruby/blob/f2286925f08406bc857f7b03ad6779a5d61443...
vo.x (Vit Ondruch)
06:51 PM Bug #16658: `method__cache__clear` DTrace hook was dropped without replacement
ko1 (Koichi Sasada) wrote in #note-3:
> Sorry. what `method__cache__clear` did?
I don't really know. @tenderlovemaking is the author AFAIK. But this is the comment from probes.d:
~~~
ruby:::method-cache-clear(class, filename...
vo.x (Vit Ondruch)
07:14 AM Bug #16658: `method__cache__clear` DTrace hook was dropped without replacement
Sorry. what `method__cache__clear` did?
When this hook was invoked?
ko1 (Koichi Sasada)
09:32 PM Misc #16839: Unicode.org - downloads & tests
@duerst
Martin,
Thanks for the reply.
As to CI caching, Actions, AppVeyor, and Travis all support it, but there currently is one exception, and that is Actions cron (scheduled) jobs. Of course, ruby-loco runs as a cron job on Act...
MSP-Greg (Greg L)
08:41 PM Misc #16839: Unicode.org - downloads & tests
The tests are valuable at least for me when upgrading to a new Unicode version. Because the code affected is relatively independent and stable, the value for the average CI is probably not too high. But my guess is that this applies to a... duerst (Martin Dürst)
05:00 PM Misc #16839 (Closed): Unicode.org - downloads & tests
For quite a while, one can optionally download files from unicode.org, and the files enable additional tests.
Are these tests worthwhile? Some CI uses them, others not.
If above is true:
For the second time in a few weeks, down...
MSP-Greg (Greg L)
09:19 PM Revision 56c6d520 (git): Add T_MOVED support to lldb
tenderlovemaking (Aaron Patterson)
08:59 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
> In the case we exceed the limit, I think we could call rb_class_name() for Module/Class
IMO we should all that in priority over `inspect` as it's more likely to return an useful class path.
> ...
I actually submitted a PR to rem...
byroot (Jean Boussier)
07:54 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Right, `name_err_mesg_to_str` does this.
And TruffleRuby actually replicated that logic but I didn't think about it for this issue:
https://github.com/oracle/truffleruby/blob/e8270af20bc4fae74be7f78d3d474e271768b943/src/main/ruby/truff...
Eregon (Benoit Daloze)
07:40 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Actually I found the older history. It was introduced in https://github.com/ruby/ruby/commit/554b989ba1623b9f6a0b76f00824c83a23fbcbc1 version 0.99.4-961224 (December 1996)
And I think the changelog is
* eval.c (f_missing): オブジェク...
byroot (Jean Boussier)
07:30 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
I tried to look for the reason for this 65 size limit, but it was present in the initial commit dated from 1998, so I have no idea why this limitation is here. byroot (Jean Boussier)
07:20 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Ok, so after digging into it, it's not caused by an error, but by the length on the string returned by `#inspect`:
```ruby
module OK
class << self
def inspect
"a" * 65
end
end
end
module BAD
class << sel...
byroot (Jean Boussier)
07:03 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
> Because inspect is called with rb_protect and fail in this context, so Ruby fallback to rb_obj_as_string.
Actually, I'm really unsure about that one. It doesn't appear to fail. I'll try to dig the root cause.
byroot (Jean Boussier)
06:57 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
> why don't we see uninitialized constant `Shipit::Stack(id: integer, environment: string, ...)::Foo`?
Because `inspect` is called with `rb_protect` and fail in this context, so Ruby fallback to `rb_obj_as_string`.
> ...
That's ...
byroot (Jean Boussier)
08:02 PM Feature #16816: Prematurely terminated Enumerator should stay terminated
I agree this seems a bug, the `expected` of the example by @mame makes sense.
For @ko1's example, yes, because the exception will reach the end of the Enumerator (and Fiber), so there is nothing to Fiber.yield/Enumerator#next after.
Eregon (Benoit Daloze)
08:25 AM Feature #16816: Prematurely terminated Enumerator should stay terminated
A simpler code for dev-meeting:
```
g = Enumerator.new { raise "error" }
p((g.next rescue $!)) #=> "error" (as expected)
p((g.next rescue $!)) #=> actual: "error", expected: StopIteration
```
mame (Yusuke Endoh)
08:17 AM Feature #16816: Prematurely terminated Enumerator should stay terminated
Do you propose that the following your example:
```ruby
Enumerator.new {
2.times {|i| raise i.to_s }
}.tap {|f|
p 2.times.map { f.next rescue $!.message }
}
```
should outputs `["0", "iteration reached an end"]` ?
ko1 (Koichi Sasada)
06:42 PM Revision 2d27632c (git): Add compaction support for backtrace objects
This just introduces compaction support for backtrace objects. tenderlovemaking (Aaron Patterson)
06:42 PM Revision ff4f9cf9 (git): Allow global variables to move
This patch allows global variables that have been assigned in Ruby to
move. I added a new function for the GC to call that will update
global references and introduced a new callback in the global variable
struct for updating references...
tenderlovemaking (Aaron Patterson)
06:15 PM Bug #16840 (Closed): Decrease in Hash#[]= performance with object keys
I was playing around with Ruby hashing and I have discovered something strange/surprising.
The file ``test.rb`` looks like:
```ruby
require 'benchmark'
$N = 100000
class Ana
end
objects = Array.new($N) { Ana.new() }
ha...
ana06 (Ana Maria Martinez Gomez)
05:36 PM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #15921] R-assign (rightward-assignment) operator (eregon)
* Could matz and other committers clarify the motivation to introduce this? There is no pipeline operator currently so it seems of limited usage.
* Changing syntax ...
Eregon (Benoit Daloze)
05:03 PM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16254] MRI internal: Define built-in classes in Ruby with `__intrinsic__` syntax (eregon)
* Thoughts on using `Primitive.name(a, b)` instead of `__builtin_name(a, b)`?
* I think this is an important opportunity to share...
Eregon (Benoit Daloze)
08:31 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16827] C API for writing custom random number generator that can be used as Random objects (mrkn)
* I need such a feature to implement custom RNGs in an extension library
mrkn (Kenta Murata)
08:15 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16837] Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions? (k0kubun)
* Do we have a policy on what kind of assertions should be always enabled and what should be CI-only, especially when it has impact on perf...
k0kubun (Takashi Kokubun)
07:52 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #8661] Add option to print backtrace in reverse order (stack frames first and error last) (mame)
* matz, could you check the spec of `--suppress-backtrace`? And should we change the name to `--backtrace-limit` or something?
mame (Yusuke Endoh)
05:34 PM Feature #16746: Endless method definition
Is it intended to allow multi-line definitions in this style?
I think we should not, and only single-line expressions should be allowed.
I think that's not the original purpose of this ticket and rather an incorrect usage of this new...
Eregon (Benoit Daloze)
05:08 PM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
> I would like to suggest that if a user really favor speed over sanity check, they should just compiler everything with -DNDEBUG. This has been the standard C manner since long before Ruby's birth.
Got it. I'll consider using -DNDEBU...
k0kubun (Takashi Kokubun)
12:48 PM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
I have a question concerning one point mentioned above.
k0kubun wrote:
> Provide .so for an assertion-enabled mode? (ko1's idea)
Could someone briefly explain the general idea behind this? I assume for a .so
file the ruby user ...
shevegen (Robert A. Heiler)
09:38 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
If you recompile everything using `./configure cppflags=-DNDEBUG`, then those assertions are eliminated, to let compilers inline `rb_array_len` again. shyouhei (Shyouhei Urabe)
09:22 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
Some analysis of the slowdown.
Looking at the generated binary and `perf` output, the slowdown is because some functions are not inlined. Might depend on compilers, but for me `rb_array_len()` is one of such victim:
```
zsh % gdb -bat...
shyouhei (Shyouhei Urabe)
09:14 AM Feature #16837: Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
I would like to suggest that if a user really favor speed over sanity check, they should just compiler everything with `-DNDEBUG`. This has been the _standard_ C manner since long before Ruby's birth. shyouhei (Shyouhei Urabe)
08:11 AM Feature #16837 (Closed): Can we make Ruby 3.0 as fast as Ruby 2.7 with the new assertions?
## Problem
How can we make Ruby 3.0 as fast as (or faster than) Ruby 2.7?
### Background
* Split ruby.h https://github.com/ruby/ruby/pull/2991 added some new assertions
* While it has been helpful for revealing various bugs, it als...
k0kubun (Takashi Kokubun)
04:58 PM Feature #15771: Add `String#split` option to set `split_type string` with a single space separator
Since splitting on whitespace is the default (ignoring `$;` which is deprecated in 2.7), maybe we could make `split(" ")` not special longer-term? Eregon (Benoit Daloze)
04:33 PM Feature #16838: Enumerator::ArithmeticSequence missing allocator for #clone and #dup
After I filed this, al203-cr on #ruby IRC pointed out this seems intentional since `rb_undef_alloc_func(rb_cArithSeq);` is manually undefined here: https://github.com/ruby/ruby/blob/v2_7_1/enumerator.c#L4068
Treating it as immutable m...
shan (Shannon Skipper)
04:12 PM Feature #16838 (Open): Enumerator::ArithmeticSequence missing allocator for #clone and #dup
In Ruby 2.5, with an Enumerator:
``` ruby
1.step.clone
#=> Enumerator
```
In Ruby 2.6, with an Enumerator::ArithmeticSequence:
``` ruby
1.step.clone
#!> TypeError (allocator undefined for Enumerator::ArithmeticSequence)
``...
shan (Shannon Skipper)
04:22 PM Revision 7ded8fd2 (git): Fix a typo [ci skip]
znz (Kazuhiro NISHIYAMA)
04:03 PM Feature #16761: Add an API to move the entire heap, as to make testing GC.compact compatibility easier
We currently have this functionality, but the API isn't as nice as what you propose (and the naming isn't great either).
You can do `GC.verify_compaction_references(toward: :empty, double_heap: true)`. It will double the size of the ...
tenderlovemaking (Aaron Patterson)
04:00 PM Bug #16834: rb_profile_frame_classpath only recognize class singleton methods, not module singleton methods
I've merged this in cbe4f75ef802f13d05f94e42274b65a062bd3666. It's been a bug for a while so I'm going to mark back port for 2.5, 2.6, and 2.7. 🙇🏻‍♂️ tenderlovemaking (Aaron Patterson)
03:46 PM Revision cbe4f75e (git): Fix rb_profile_frame_classpath to handle module singletons
Right now `SomeClass.method` is properly named, but `SomeModule.method`
is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes
profiling annoying.
byroot (Jean Boussier)
03:44 PM Revision 00698f26 (git): `T_MOVED` should never be pushed on the mark stack
No objects should ever reference a `T_MOVED` slot. If they do, it's
absolutely a bug. If we kill the process when `T_MOVED` is pushed on
the mark stack it will make it easier to identify which object holds a
reference that hasn't been ...
tenderlovemaking (Aaron Patterson)
03:19 PM Revision 1084b679 (git): Restore the external and internal encodings of STDIN, STDOUT, and STDERR
IRB::ReadlineInputMethod#initialize changes them via IRB.set_encoding. mame (Yusuke Endoh)
03:15 PM Revision 3b147c42 (git): test/irb/test_cmd.rb: clear IRB.@CONF on setup
It caches a path to .irbrc file, which has caused random failure:
```
1) Failure:
TestIRB::ExtendCommand#test_irb_info_multiline [/home/mame/work/ruby/test/irb/test_cmd.rb:49]:
Expected /
Ruby\sversion: .+\n
IRB\sversi...
mame (Yusuke Endoh)
03:13 PM Revision 00a3b8f7 (git): * 2020-05-08 [ci skip]
git[bot]
03:12 PM Revision 22b1e824 (git): Check encodings of STDIN,STDOUT,STDERR too
znz (Kazuhiro NISHIYAMA)
02:01 PM Bug #16677: Negative integer powered (**) to a float number results in a complex
sawa (Tsuyoshi Sawada) wrote in #note-21:
> ```ruby
> ...
A space after `-` means same things.
nobu (Nobuyoshi Nakada)
05:38 AM Bug #16677: Negative integer powered (**) to a float number results in a complex
As an argument for this proposal, unary operators like `-@` and `+@` look very similar to splat operators `*`, `**`, and `&` in the sense that they are located at the front-most position of an expression. Since the splat operators have t... sawa (Tsuyoshi Sawada)
05:26 AM Bug #16677: Negative integer powered (**) to a float number results in a complex
matz (Yukihiro Matsumoto) wrote in #note-20:
> @sawa Are you proposing something new? I couldn't read the concrete behavior proposed.
My proposal (which I have suggested not so clearly in my previous comment) is this:
```ruby
-2.itself...
sawa (Tsuyoshi Sawada)
03:22 AM Bug #16677: Negative integer powered (**) to a float number results in a complex
@Dan0042 To rephrase, I vote for changing nothing, keeping the current behavior. It may be inconsistent but not worth breaking existing code.
@sawa Are you proposing something new? I couldn't read the concrete behavior proposed.
Ma...
matz (Yukihiro Matsumoto)
09:01 AM Bug #14367: Wrong interpretation of backslash C in regexp literals
It looks inconsistency handling between regexp and Ruby's for `\c\xff`:
```
% LC_ALL=C ruby -ve 'p (/\c\xff/ =~ "\x1f")'
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
0
```
naruse (Yui NARUSE)
08:49 AM Feature #16818: Rename `Range#%` to `Range#/`
I borrowed the idea of `Range#%` from numo-narray.
When I first looked `Range#%` in numo-narray, I felt it is natural.
I refer one expression from the above example sawa showed:
> ```
> ...
You can see the 0th array of the result...
mrkn (Kenta Murata)
08:31 AM Bug #16819 (Assigned): Line reporting off by one when reporting line of a hash?
Yes, it is intentional behavior because the first instruction of the `A = { ... }` expression is line 9 (`a: 1`).
Each line number attribute is attached to the instruction and there is no instruction at the line 8 for the performance, f...
ko1 (Koichi Sasada)
08:20 AM Revision f38c6419 (git): LEGAL: add legal situation of parse.h [ci skip]
There is parse.h apart from parse.c these days. shyouhei (Shyouhei Urabe)
08:20 AM Revision b5db3234 (git): LEGAL: add legal situation of ext/pty/pty.c [ci skip]
This file is not under Ruby's license. shyouhei (Shyouhei Urabe)
08:20 AM Revision 637a1145 (git): LEGAL: add legal situation of enc/trans/ucm [ci skip]
IBM holds their copyrights. Whether they are free software or not is
uncler. But arguably they are, given we have copied them from glibc.
shyouhei (Shyouhei Urabe)
08:20 AM Revision 4d3e5ab4 (git): LEGAL: win32/win32.h no longer exists [ci skip]
The file was moved. shyouhei (Shyouhei Urabe)
08:20 AM Revision 2cc9f4f3 (git): LEGAL: add missing entries for enc [ci skip]
Some files were missing. shyouhei (Shyouhei Urabe)
08:20 AM Revision 0501e832 (git): LEGAL: add legal situation of benchmarks [ci skip]
It is no longer obvious what were the original license of so_*
benchmarks, because the original was lost.
shyouhei (Shyouhei Urabe)
08:20 AM Revision eb10be2c (git): LEGAL: add legal situation of addr2line.c [ci skip]
This file includes BSD printf. shyouhei (Shyouhei Urabe)
08:20 AM Revision 8f8358d2 (git): LEGAL: add legal situation of aclocal.m4 [ci skip]
FSF holds its copyright. shyouhei (Shyouhei Urabe)
07:29 AM Bug #16782: `lock': deadlock; recursive locking (ThreadError) in 2.7.1
> deadlock; recursive locking
seems not difficult error, the same thread tries to lock a mutex twice without unlocking.
can you check it?
ko1 (Koichi Sasada)
07:23 AM Bug #6087: How should inherited methods deal with return values of their own subclass?
Eregon (Benoit Daloze) wrote in #note-14:
> Much like all Enumerable methods return `Array` and (of course) do not copy instance variables, I think Array methods should do the same.
+1
ko1 (Koichi Sasada)
07:17 AM Bug #16836 (Feedback): configure-time LDFLAGS leak into ruby pkg-config file
When building ruby with e.g. `-Wl,-rpath=/ro/ruby-amd64-2.7.1-6/lib` (to make it hermetic, see my work-in-progress post at https://website-review.zekjur.net/pull/hermetic/posts/2020-05-04-distri-hermetic-packages/), I noticed that the re... stapelberg (Michael Stapelberg)
05:56 AM Revision 6300e6d3 (git): Remove test of ruby-mode.el
Because ruby-mode.el already removed at f03e68edb80dca962290d1fb3a6d49dabdbb911e znz (Kazuhiro NISHIYAMA)
05:36 AM Feature #16744: Flag to load current bundle without using bundle exec
I rarely run `bundle exec ruby`.
Usually I run something like `bundle exec rake`, `bundle exec rails`, `bundle exec rspec`, `bundle exec script/foo` and so on.
I think `ruby -G` sounds nonsense.
naruse (Yui NARUSE)
03:26 AM Revision a5073c05 (git): Always correct sp on leave cancel
Even if local stack optimization is not used and values are written to
VM stack, the stack pointer itself may not be moved properly. So this
should be always moved on JIT cancellation.
By the way it's hard to write a test for this becau...
k0kubun (Takashi Kokubun)
03:24 AM Revision 0244f91e (git): Remove OPT_CHECKED_RUN code
Now this one is actually not in use because we override entire leave
definition for JIT.
k0kubun (Takashi Kokubun)

05/06/2020

11:33 PM Feature #16786: Light-weight scheduler for improved concurrency.
> My big concern here is that this does not cover why #13618 was deficient and this complete greenfield implementation solves the issues it had?
This proposal is really an evolution of #13618. The reasons why that proposal did not mov...
ioquatix (Samuel Williams)
11:25 PM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
nobu (Nobuyoshi Nakada) wrote in #note-1:
> Actually `.` and `..` entries are kept.
> ...
That's true, but I feel the following code should have consistent results:
``` ruby
require 'pathname'
pathname = Pathname.pwd
Pathname...
jnchito (Junichi Ito)
06:40 AM Bug #16831: Running `Pathname#glob` with `File::FNM_DOTMATCH` option loses `.` and `..`
Actually `.` and `..` entries are kept.
Just `Pathname("/Users/jnito/dev/..")` is cleaned up as `Pathname("/Users/jnito")`.
nobu (Nobuyoshi Nakada)
10:42 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
From your example, why don't we see `uninitialized constant Shipit::Stack(id: integer, environment: string, ...)::Foo`?
I feel calling `name` here is a hack, if people return a useless String for `inspect` that's the bug, `inspect` is...
Eregon (Benoit Daloze)
01:01 PM Feature #16832: Use #name rather than #inspect to build "uninitialized constant" error messages
Nobu recommended creating an issue request here, so I won't comment on that in
itself - but I would like to point out that ruby users may wonder why/if/how
to use #name rather than #inspect, if applicable, so that should be considered
...
shevegen (Robert A. Heiler)
11:38 AM Feature #16832 (Closed): Use #name rather than #inspect to build "uninitialized constant" error messages
While debugging a bug in Rails (https://github.com/rails/rails/pull/37632#issuecomment-623387954) I noticed `NameError` calls `inspect` on the `const_get` receiver to build its error message.
The problem is that some libraries such as...
byroot (Jean Boussier)
10:32 PM Bug #16835: SIGCHLD + system new behavior on 2.6
Oh that's definitely interesting. Both on my mac and on a freebsd server I spot-checked on it outputs nothing. But evidently there isn't a settled "correct" answer for how this should behave. maths22 (Jacob Burroughs)
10:18 PM Bug #16835: SIGCHLD + system new behavior on 2.6
If I compile that program on OpenBSD, it outputs `Handler`. So system(3) behavior appears to be operating-system (or libc) specific. jeremyevans0 (Jeremy Evans)
10:01 PM Bug #16835: SIGCHLD + system new behavior on 2.6
Also I have tested and the old behavior (not calling the CLD signal handler) does appear to match the glibc behavior
``` c
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void proc_exit()
{
pr...
maths22 (Jacob Burroughs)
09:39 PM Bug #16835: SIGCHLD + system new behavior on 2.6
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> I agree that based on a review of the commit message, this change was unintended, and since the issue was not known previously, it was not documented.
> ...
Going by https://github.com/ru...
maths22 (Jacob Burroughs)
09:06 PM Bug #16835: SIGCHLD + system new behavior on 2.6
I agree that based on a review of the commit message, this change was unintended, and since the issue was not known previously, it was not documented.
However, I think the new behavior makes more sense. `system` creates a child proces...
jeremyevans0 (Jeremy Evans)
08:16 PM Bug #16835 (Rejected): SIGCHLD + system new behavior on 2.6
In rubies < 2.5, the `system` command did not trigger sigchld signal traps. On ruby >= 2.6 it does. This appears to have been introduced by https://github.com/ruby/ruby/commit/054a412d540e7ed2de63d68da753f585ea6616c3 . To observe the ... maths22 (Jacob Burroughs)
07:55 PM Feature #16833: Add Enumerable#empty?
sawa wrote:
> If that was what you meant, then that is not the case. Array mixes-in
> ...
Happens to me as well a lot - I always mix these two up. May be because
the name is so similar. :)
To the suggestion itself: I have no part...
shevegen (Robert A. Heiler)
04:44 PM Feature #16833: Add Enumerable#empty?
Enumerators can behave very differently than arrays. Some have side-effects. What's supposed to happen with those?
```
require 'stringio'
s = StringIO.new("first\nsecond\nthird\nlast").each_line
s.first # => "first"
s.first # => "...
marcandre (Marc-Andre Lafortune)
04:40 PM Feature #16833: Add Enumerable#empty?
Your use case is not clear. Why can't you do this?
```ruby
table_rows = [{ data: ['First', 'Second', 'Third'], config: {} }, { data: [4, 5, 6], config: { color: 'red' } }].to_enum
table_rows.to_a.dig(0, :data) # => ["First", "Second", "...
sawa (Tsuyoshi Sawada)
04:34 PM Feature #16833: Add Enumerable#empty?
Not sure what you mean by
>Enumerator, something mixed into Array
Do you mean this?
> ...
If that was what you meant, then that is not the case. `Array` mixes-in `Enumerable`, not `Enumerator`.
Even if that was the case, it is not cl...
sawa (Tsuyoshi Sawada)
02:09 PM Feature #16833 (Assigned): Add Enumerable#empty?
It was surprising to me that Enumerator, something mixed into Array, does not include `#empty?`. I think it is reasonable to assume people may have to guard iterating and other logic based on the emptiness of an enumerator, such was my c... f3ndot (Justin Bull)
05:58 PM Revision 545d2ab7 (git): leakchecker.rb: try `lsof`
nobu (Nobuyoshi Nakada)
05:53 PM Revision ce00fda9 (git): Suffixed memory leak tests as "memory_leak"
So that `TEST_EXCLUDES` option in common.mk works. nobu (Nobuyoshi Nakada)
05:51 PM Revision 01e0e4c4 (git): Cut down warm-up loops and gain main/warm-up ratio
nobu (Nobuyoshi Nakada)
05:50 PM Revision eb012595 (git): Share logically equivalent functions
nobu (Nobuyoshi Nakada)
05:49 PM Revision 2273af56 (git): * 2020-05-07 [ci skip]
git[bot]
05:47 PM Revision 1e3c910b (git): Enable OPT_CHECKED_RUN on MJIT for debugging
Trying to debug errors like
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/2921397
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/2894526
k0kubun (Takashi Kokubun)
05:25 PM Bug #16834 (Closed): rb_profile_frame_classpath only recognize class singleton methods, not module singleton methods
Proposed patch: https://github.com/ruby/ruby/pull/3084
Right now `SomeClass.method` is properly named, but `SomeModule.method`
is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes
profiling annoying.
This particularl...
byroot (Jean Boussier)
11:40 AM Misc #16775: DevelopersMeeting20200514Japan
* [Feature #16832] Use `#name` rather than `#inspect` to build "uninitialized constant" error messages (byroot)
* As `#name` on `Module` and `Class` is more likely to return a proper constant name than `#inspect`
byroot (Jean Boussier)
07:06 AM Revision 46b93175 (git): Fakes IPSocket.getaddress in the whole method
To get rid of calling `getaddrinfo`, which may keep FDs
internally.
nobu (Nobuyoshi Nakada)
05:09 AM Revision de3f7259 (git): Makes nil-safe
nobu (Nobuyoshi Nakada)
04:47 AM Revision b247ac08 (git): Ignore FDs kept by system library
`getaddrinfo` on macOS seems keeping FDs to query host names
internally.
nobu (Nobuyoshi Nakada)
03:45 AM Revision 7397b9f7 (git): Fixed leaked fds
nobu (Nobuyoshi Nakada)
01:09 AM Revision 039a8ef7 (git): leakchecker.rb: search /dev/fd too
It is more popular than /proc/self/fd. nobu (Nobuyoshi Nakada)
12:51 AM Revision 3a6dad9d (git): [DOC] Removed no longer meaningful part [ci skip]
As now `Object#===` document is separated from `rb_equal`, this note
no longer makes sense.
nobu (Nobuyoshi Nakada)
12:47 AM Revision b0498caa (git): Removed unnecessary duplicate code
`rb_equal` may be inlined in `case_equal` and actually same code
is generated twice.
nobu (Nobuyoshi Nakada)
 

Also available in: Atom