http://ci.rvm.jp/logfiles/brlog.trunk-test.20210216-182358
```
1)
$LOAD_PATH.resolve_feature_path raises LoadError if feature cannot be found FAILED
Expected LoadError but no exception was raised (nil was returned)
/tmp/ruby/v3/src/trunk-test/spec/ruby/language/predefined_spec.rb:1275:in `block (3 levels) in <top (required)>'
/tmp/ruby/v3/src/trunk-test/spec/ruby/language/predefined_spec.rb:1259:in `block in <top (required)>'
/tmp/ruby/v3/src/trunk-test/spec/ruby/language/predefined_spec.rb:1258:in `<top (required)>'
```
If the use of the ruby namespace isn't prepended by `::` to make it
explicit that the global ruby namespace is referenced here, it can
clash with other non-global namespace named ruby, e.g.
```
// declaration
namespace myproject {
namespace ruby {
// my ruby classes
}
}
// implementation
using namespace myproject;
[...]
rb_define_method(...);
[...]
```
leads to the following error:
```
../ruby/choice.cc: In function 'void {anonymous}::do_register_choice()':
../ruby/choice.cc:342:9: error: reference to 'ruby' is ambiguous
342 | rb_define_method(c_choices, "each", RUBY_FUNC_CAST(&choices_each), 0);
| ^~~~~~~~~~~~~~~~
In file included from ../ruby/choice.cc:20:
../ruby/paludis_ruby.hh:53:15: note: candidates are: 'namespace paludis::ruby { }'
53 | namespace ruby
| ^~~~
In file included from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/backward/2/stdalign.h:23,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/defines.h:77,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/ruby.h:23,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby.h:38,
from ../ruby/paludis_ruby.hh:44,
from ../ruby/choice.cc:20:
/usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/internal/stdalign.h:92:11: note: 'namespace ruby { }'
92 | namespace ruby {
| ^~~~
In file included from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/internal/anyargs.h:83,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/ruby.h:24,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby.h:38,
from ../ruby/paludis_ruby.hh:44,
from ../ruby/choice.cc:20:
../ruby/choice.cc:342:9: error: '::define' has not been declared
342 | rb_define_method(c_choices, "each", RUBY_FUNC_CAST(&choices_each), 0);
| ^~~~~~~~~~~~~~~~
../ruby/choice.cc:344:9: error: reference to 'ruby' is ambiguous
344 | rb_define_method(c_choices, "find_by_name_with_prefix", RUBY_FUNC_CAST(&choices_find_by_name_with_prefix), 1);
| ^~~~~~~~~~~~~~~~
```
To uniform directory structures, sometimes files are gathered in
different directory than the upstreams, executable files in
`libexec` for instance. Re-map these files to consistent with the
upstreams.
Because unexpected names are listed in gemspec files.
* "Fix gemspec only case"
fc56b96b09
* "Refined installation of gemspecs placed other than ext and lib"
31f4dec637
There is no real reason to carry these around, since they can be
generated during the installation. The `Gem::Installer` generates up to
date date stubs, where the racc stubs were of older format and
regenerated anyway.
Use UnpackedInstaller for installation of default gems similarly it is
already used to install bundled gems.
This allows to reuse RubyGems functionality instead of custom code full
of exceptions.
This patch improves the performance of sequential and parallel
execution of rb_equal() (and rb_eql()).
[Bug #17497]
rb_equal_opt (and rb_eql_opt) does not have own cd and it waste
a time to initialize cd. This patch introduces opt_equality_by_mid()
to check equality without cd.
Furthermore, current master uses "static" cd on rb_equal_opt
(and rb_eql_opt) and it hurts CPU caches on multi-thread execution.
Now they are gone so there are no bottleneck on parallel execution.
Check for cyclic prepend before making any changes. This requires
scanning the module ancestor chain twice, but in general modules
do not have large numbers of ancestors.