| Age | Commit message (Collapse) | Author |
|
caused by 818d6d33368a396d9cd3d1a34a84015a9e76c5c8, for now.
I'll take a look at them tomorrow.
|
|
to improve code locality.
Using benchmark-driver/sinatra with 100 methods JIT-ed,
[Before] 12149.97 rps
1.3M /tmp/_ruby_mjit_p31171u145.so
[After] 12818.83 rps
260K /tmp/_ruby_mjit_p32155u145.so
(VM is 13714.89 rps)
|
|
because we support JIT compaction on it
|
|
Running C compiler for JIT compaction inside a critical section may lock
main thread for a long time when it triggers GC. As I'm planning to
increase this duration a bit, I'd like to make sure this doesn't stop
the world.
For now, I chose to give up unloading units when it's during JIT
compaction, assuming other calls may unload them later.
|
|
Couldn't figure out failed/fixed versions.
|
|
Revert 9948addda67f4b7a6e3575f1eba9025f998811d2.
It is now discussed in https://bugs.ruby-lang.org/issues/16814, and an
assert is added with a217d3cedce3f5aa5c27a1ce6c72b65ec37da057.
It would be good to give it a try.
|
|
|
|
|
|
Even for empty argument list, not to be confusing with a writer
method name.
Notes:
Merged: https://github.com/ruby/ruby/pull/3051
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3051
|
|
This reverts commit 67bcac879a2e0ddfb4e7bbd7cb5e5401422de76a.
Notes:
Merged: https://github.com/ruby/ruby/pull/3051
|
|
Since it is impossible to detect stack overflow of C functions robustly,
the test is a bit unreasonable.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20200421T120018Z.fail.html.gz
|
|
|
|
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20200420T083601Z.fail.html.gz
|
|
The test fails due to unknown reason. Need to debug in future, but
tentatively skipped.
|
|
Only the names are case-sensitive.
Notes:
Merged: https://github.com/ruby/ruby/pull/3041
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3040
|
|
on stack when local_stack_p is enabled.
This fixes `RB_FL_TEST_RAW:"RB_FL_ABLE(obj)"` assertion failure
on power_assert's test with JIT enabled.
|
|
Slightly simplifying 8d6aa06620b316904fd10d0cab1b85e07f2fbf67
|
|
In the last 26-ish hours, it has failed 5 times:
https://travis-ci.org/github/ruby/ruby/jobs/676497718
https://travis-ci.org/github/ruby/ruby/jobs/676480295
https://travis-ci.org/github/ruby/ruby/jobs/676103216
https://travis-ci.org/github/ruby/ruby/jobs/676057967
https://travis-ci.org/github/ruby/ruby/jobs/676055113
and I don't think anybody has been working on it right now. To make CI
result report of s390x-linux useful, let's skip it until the test is
improved to be more stable.
|
|
|
|
The user management on Android seems very different
https://rubyci.org/logs/rubyci.s3.amazonaws.com/android28-x86_64/ruby-master/log/20200416T234122Z.fail.html.gz
|
|
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3033
|
|
|
|
The same bug as 8355a99883 existed in attr_reader too.
|
|
We started to use fastpath on invokesuper when a method is not refinements
since 5c27681813, but we shouldn't have used fastpath for attr_writer either.
`cc->aux_.attr_index` is for an actual receiver class, while we store
its superclass in `cc->klass` and therefore there's no way to properly
invalidate attr_writer's inline cache when it's called by super.
[Bug #16785]
I suspect the same bug also exists in attr_reader. I'll address that in
another commit.
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3025
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
`Dir.entries` returns an array.
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
Notes:
Merged: https://github.com/ruby/ruby/pull/3013
Merged-By: nobu <nobu@ruby-lang.org>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2996
|
|
[Feature #15921]
Notes:
Merged: https://github.com/ruby/ruby/pull/3012
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3009
|
|
JIT support of dd723771c11.
$ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_exivar.yml --repeat-count=4
before: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) [x86_64-linux]
before --jit: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-31T05:57:24Z mjit-exivar 128625baec) +JIT [x86_64-linux]
Calculating -------------------------------------
before before --jit after --jit
mjit_exivar 57.944M 53.579M 54.471M i/s - 200.000M times in 3.451588s 3.732772s 3.671687s
Comparison:
mjit_exivar
before: 57944345.1 i/s
after --jit: 54470876.7 i/s - 1.06x slower
before --jit: 53579483.4 i/s - 1.08x slower
|
|
|
|
Previously, the external encoding was only set correctly for
File::BINARY if keyword arguments were provided. This copies
the logic for the keyword arguments case to the no keyword
arguments case. Possibly it should be refactored into a
separate function.
Fixes [Bug #16737]
Notes:
Merged: https://github.com/ruby/ruby/pull/2985
|
|
|
|
... because it conflicts with test/ruby/test_m17n.rb.
An exception `incompatible character encodings: UTF-8 and UTF-16BE`
occurs when:
* a non-existence relative path is added to $LOAD_PATH,
* ASCII-incompatible encoding is set to default_external, and
* some file is loaded.
```
$LOAD_PATH << "no_existing_dir"
Encoding.default_external = Encoding::UTF_16BE
load "dummy.rb" #=> incompatible character encodings: UTF-8 and UTF-16BE
```
This issue can be actually observed by a combination of out-of-place
build and the following command:
make test-all TESTS="json ruby/m17n -n test_object_inspect_external"
http://ci.rvm.jp/logfiles/brlog.trunk-test-random.20200322-221411
ASCII-incompatible default external encoding assumes that the cwd is the
encoding, and it is attempted to beconcatenated with a non-existence
relative LOAD_PATH UTF-8 string, which causes the exception.
This changeset avoids a relative path.
|
|
|
|
The test is executed with -j8, so printing someting to stdout may break.
|
|
Correctly show defined class for aliases of aliases
Notes:
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
This freezes the clone even if the receiver is not frozen. It
is only for consistency with freeze: false not freezing the clone
even if the receiver is frozen.
Because Object#clone is now partially implemented in Ruby and
not fully implemented in C, freeze: nil must be supported to
provide the default behavior of only freezing the clone if the
receiver is frozen.
This requires modifying delegate and set, to set freeze: nil
instead of freeze: true as the keyword parameter for
initialize_clone. Those are the two libraries in stdlib that
override initialize_clone.
Implements [Feature #16175]
Notes:
Merged: https://github.com/ruby/ruby/pull/2969
|