| Age | Commit message (Collapse) | Author |
|
Without doing this, enabling a TracePoint on a method could lead to use
of moved objects. This was found by running
`env RUBY_ISEQ_DUMP_DEBUG=to_binary make test-all`, which sets
orignal_iseq then runs the compaction tests and the tracepoint tests.
Please excuse the lack of tests. I was not able to figure out how to
reliably trigger a move on a specific iseq imemo to make a good
regression test.
To manually confirm the problem and this fix, you can run:
```
env RUBY_ISEQ_DUMP_DEBUG=to_binary make test-all \
TESTOPTS="test/ruby/test_gc_compact.rb \
test/gdbm/test_gdbm.rb \
test/ruby/test_settracefunc.rb"
```
Or the following script:
```ruby
tp = TracePoint.new(:line) {}
1.times do # put it in a block to not keep these objects alive
objects = 10_000.times.map { Object.new }
objects.hash
end
1.times do
# this allocation pattern can realistically happen in an app
# at load time
beek = 10_000.times.map do
eval(<<-RUBY)
def foo
a + b
1.times {
4 + 234234
}
nil + 234
end
RUBY
Object.new
Object.new
end
beek.hash
end
tp.enable(target: self.:foo) { 234 } # allocate original iseq
GC.verify_compaction_references(toward: :empty)
GC.compact
tp.enable(target: self.:foo) { 234234 } # crash
```
[Bug #16098]
Notes:
Merged: https://github.com/ruby/ruby/pull/2391
|
|
|
|
|
|
|
|
Should compare minimum required version, and with the particular
macro defined for each version. Also made the error messages
consistent.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2390
|
|
|
|
The second argument of ioctl seems to be int in Android.
Android is not a supported platform, but this one-line change allows
ruby to build by Android NDK r20.
|
|
|
|
* Drop duplicated sample code
* Drop another style sample
https://github.com/ruby/ruby/pull/2389#issuecomment-522489520
* Update sample list
|
|
* It can invoke test-unit with envutil.rb
* refute_match of test-unit couldn't handle String instance.
|
|
```
sample/observ.rb:30: warning: assigned but unused variable - clock
```
|
|
because it has often hanged like
https://travis-ci.org/ruby/ruby/jobs/573691637,
and we also have almost the same test suite on GitHub Actions now, which
seems to be stable in `make check` so far.
|
|
Kernel#inspect does not call #to_s now
To follow https://github.com/ruby/ruby/commit/fd7dc23d281f38a71fa7f9c32812cd468c4b1788
|
|
|
|
displaying vm info as Linux and FreeBSD.
checking libproc as it is present only from 10.5 version.
https://github.com/ruby/ruby/pull/2384
|
|
|
|
|
|
|
|
|
|
* include/ruby/ruby.h: cast via `unsigned int` explicitly, to get
rid of signed extension by implicit integer promotion.
|
|
|
|
to suppress a waring for "unused variable"
|
|
as it failed randomly https://github.com/ruby/ruby/runs/196712109
|
|
MRI (#2113) [ci skip]
* Make it clear as possible that RubyVM is MRI-specific and only exists on MRI
* See [Bug #15743].
* Use "CRuby VM" instead of "Ruby VM" for clarity.
* Use YARV rather than "CRuby VM" for documenting RubyVM::InstructionSequence
* Avoid introducing a new "CRuby VM" term in documentation
|
|
|
|
|
|
* [Win32] set flag to allow unprivileged users to create symlinks
Notes:
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
It was using the same one as original AppVeyor's notification, but it's
just inconsistent with others like Travis and GitHub Actions.
|
|
by marking continue-on-error.
I dropped it to test Slack notification, and I finished to test it.
|
|
by using toJson with fields.
|
|
for macOS / Windows as well.
Docker-based GitHub Action does not work on these OSes.
|
|
|
|
|
|
This reverts commit d8807e8b1a9d09ee1543e18618b4ef7e8203c616.
We'd need more features. Reverting to customize this later.
|
|
https://github.com/8398a7/action-slack
https://github.com/marketplace/actions/action-slack
|
|
to clarify what's running for every commit.
|
|
|
|
|
|
for consistency. In the pull request, `before_test` was dropped only for
msys2 to fix msys2-only failure. But there's no need to keep it
inconsistent now.
|
|
* appveyor.yml - OpenSSL vc120 -> 1.0.2, vc140 -> 1.1.1
* Try just using build_script
|
|
|
|
|
|
https://github.com/bundler/bundler/commit/8ef571ed4e
|
|
The version we're vendoring actually relaxed this restriction back to
2.3.0+, so we can always use the vendored version.
https://github.com/bundler/bundler/commit/d366cbfe5d
|
|
Instead, make sure we always load the local copy of bundler during
specs, and never end up using the default copy.
https://github.com/bundler/bundler/commit/ac655ffeda
|
|
If we use system bundler, when booting the "outermost" bundler process,
bundler will save the path to the system bundler in BUNDLE_BIN_PATH, and
use it again when booting the "innermost" bundler process (`bundle exec
echo foo`).
That means that second process will use the system bundler path again.
However, we have `-rsupport/hax` in RUBYOPT, so that file will load from
the local copy of bundler, and that file will load `bundler/version`
from the project (not from system), because -Ilib is in the LOAD_PATH.
That will end up causing redefinition errors because the same constant
will be loaded from two different locations.
In general, this is expected behavior, normally you will wrap the
process with `Bundler.with_original_env` to reset the environment.
However, the easiest fix here is to not use system bundler, because it's
not really necessary and thus doesn't help the readability of the spec.
https://github.com/bundler/bundler/commit/a3d72a34ab
|
|
https://github.com/bundler/bundler/commit/789dd1864f
|
|
https://github.com/bundler/bundler/commit/e4cbb91b7d
|