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.
* Add a benchmark-driver runner for Ractor
* Process.clock_gettime(Process:CLOCK_MONOTONIC) could be slow
in Ruby 3.0 Ractor
* Fetching Time could also be slow
* Fix a comment
* Assert overriding a private method
Thread's are assigned a group at initialization, and no API exists
for them to unassign them from a group without assigning them to
another group.
Fixes [Bug #17505]
Fixed the race condition when replacing `freelist` entry with its
chained next element. At acquiring an entry, hold the entry once
with the special value, then release by replacing it with the next
element again after acquired. If another thread is holding the
same entry at that time, spinning until the entry gets released.
Co-Authored-By: Koichi Sasada <ko1@atdot.net>
This change moves the statement that `Proc#isolate` isn't yet exposed for Ruby users to the first time the method is mentioned. This is so that readers don't waste time trying to look it up in Ruby docs.
There was also unnecessary duplication:
```
Paragraph 1: "Given block will be isolated from outer scope by Proc#isolate."
Paragraph 2: "Given block will be isolated by Proc#isolate method"
```
So I combined the two sentences and slightly improved the wording for clarity.