If the revision of bundled gems is specified for ruby master (and
`git` is usable), checkout that revision and build a snapshot gem, and
use it for `test-spec` instead of the downloaded release version.
There are various targets such as `install-bin`, `install-ext`, etc.,
but since then, the number of installation types has increased too
much to add all the targets.
The implementation of Namespace#current_details shows warning about
use of snprintf directive arguments (only in gcc environments?).
This method will be useless when the current namespace management
will be updated.
A finalizer registerred in Ractor A can be invoked in B.
```ruby
require "tempfile"
r = Ractor.new{
10_000.times{|i|
Tempfile.new(["file_to_require_from_ractor#{i}", ".rb"])
}
}
sleep 0.1
```
For example, above script makes tempfiles which have finalizers
on Ractor r, but at the end of the process, main Ractor will invoke
finalizers and it violates belonging check. This patch just ignore
the belonging check to avoid CI failure.
Of course it violates Ractor's isolation and wrong workaround.
This issue will be solved with Ractor local GC.
This used to be protected because all shape code was
under a lock, but now that the shape tree is lock-free
we still need to lock around the red-black cache.
Co-Authored-By: Luke Gruber <luke.gruber@shopify.com>
Now `rp(obj)` doesn't work if the `obj` is out-of-heap because
of `asan_unpoisoning_object()`, so this patch solves it.
Also add pointer information and type information to show.
Currently ruby-dev installs an incorrect gemspec for rdoc, that does not
declare its dependency on psych.
This seems like a ruby-core bug, but it seems best for Bundler to ignore
it, go with the remote specification instead, and print a warning.
https://github.com/rubygems/rubygems/commit/227cafd657
Make them more consistent and not silently pass even if something
regresses. These specs had a typo that made the assertion be that the
`erb --version` output includes the empty string which is always
obviously true.
https://github.com/rubygems/rubygems/commit/451e07c305
If the `ref` option is a specific commit SHA, we can check to see if
it's already fetched locally. If it is, then we don't need to re-fetch
it from the remote.
The `ref` option might not be a commit SHA, so we're using the `#commit`
method which returns the full SHA if it's a commit ref, or the locked
revision, or nil.
This is a small improvement that will make `bundle update` slightly
faster in cases for git-sourced gems pinned to a specific commit.
https://github.com/rubygems/rubygems/commit/f434c2e66c
This commit adds tests to capture the current behavior of `#checkout`.
They are not exhaustive, but they cover cases cloning and fetching the
repository with different ref types. This will make it easier to change
the caching behavior in a subsequent commit.
https://github.com/rubygems/rubygems/commit/f637a412a6