Age | Commit message (Collapse) | Author |
|
|
|
GC.latest_gc_info[:major_by] can return `oldmalloc` because of
last GC status.
|
|
`GC.start(full_mark: false)` can run full GC because of last
GC status. Just after major GC, the possibility to run major GC
next time is too small (not a zero, but too small possibility).
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 0bfee2397ba59112902d2b49f08461db3a637b46.
|
|
https://gist.github.com/ko1/a71f7cbcfbd61ba004bffdfedab9f5f2#file-brlog-trunk-random0-20200302-020213-L2127
|
|
|
|
enc/trans/single_byte is needed to run some tests, however
it will fail to require because $: is empty.
|
|
Fixing SEGVs like:
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744905
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744420
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2741400
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
Test not-implemented method with the dedicated methods, instead of
platform dependent features.
|
|
Some tests need to setup Other class with OtherSetup proc.
|
|
When calling Module#include, if the receiver is a module,
walk the subclasses list and include the argument module in each
iclass.
This does not affect Module#prepend, as fixing that is significantly
more involved.
Fixes [Bug #9573]
Notes:
Merged: https://github.com/ruby/ruby/pull/2936
|
|
This code can generate CC objects so we only need to count
existing String objects.
|
|
`rb_funcallv_public` and `rb_respond_to` require an `ID`, not a
`Symbol`. [Bug #16649]
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2920
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2920
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2920
|
|
So its arity should be -2 instead of -1.
[Bug #16640]
https://bugs.ruby-lang.org/issues/16640#change-84337
|
|
|
|
This patch contains several ideas:
(1) Disposable inline method cache (IMC) for race-free inline method cache
* Making call-cache (CC) as a RVALUE (GC target object) and allocate new
CC on cache miss.
* This technique allows race-free access from parallel processing
elements like RCU.
(2) Introduce per-Class method cache (pCMC)
* Instead of fixed-size global method cache (GMC), pCMC allows flexible
cache size.
* Caching CCs reduces CC allocation and allow sharing CC's fast-path
between same call-info (CI) call-sites.
(3) Invalidate an inline method cache by invalidating corresponding method
entries (MEs)
* Instead of using class serials, we set "invalidated" flag for method
entry itself to represent cache invalidation.
* Compare with using class serials, the impact of method modification
(add/overwrite/delete) is small.
* Updating class serials invalidate all method caches of the class and
sub-classes.
* Proposed approach only invalidate the method cache of only one ME.
See [Feature #16614] for more details.
Notes:
Merged: https://github.com/ruby/ruby/pull/2888
|
|
With refinements, too.
|
|
|
|
GC_DEBUG=1 makes this test fail because it changes the size of struct
RVALUE. I don't think the test is useful then. Let's just skip.
|
|
when the next insn is already compiled by former branches.
|
|
|
|
After the encoding index instance variable is removed when all
instance variables are removed in `obj_free`, then `rb_str_free`
causes uninitialized instance variable warning and nil-to-integer
conversion exception. Both cases result in object allocation
during GC, and crashes.
|
|
me->called_id and me->def->original_id can be different sometimes
so we should compare with called_id, which is mtbl's key.
(fix GH-PR #2869)
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2869
|
|
|
|
As a temporary lock string is hidden, it can not have instance
variables, including non-inlined encoding index.
|
|
Since 9d9aea7fe50f6340829faa105d9ffe08ebaee658, generic instance
variables need `iv_index_tbl` in the object's class. As hidden
objects, however, have no class, access to the variables causes a
segfault. Get rid of that segfault by raising an exception, for
the time being.
|
|
It has global side effect which cannot be reverted.
|
|
This behavior was deprecated in 2.7 and scheduled to be removed
in 3.0.
Calling yield in a class definition outside a method is now a
SyntaxError instead of a LocalJumpError, as well.
Notes:
Merged: https://github.com/ruby/ruby/pull/2901
|
|
If the timer thread is left stopped, memory crash or segfault can
happen.
|
|
As `command_rhs` is always a "value expression", `command_asgn`
does not need the same check.
Notes:
Merged: https://github.com/ruby/ruby/pull/2897
|
|
On Arch, sending a signal in a loop seems hardly to yield the execution.
```
1) Error:
TestThreadQueue#test_queue_with_trap:
Timeout::Error: execution of assert_in_out_err expired timeout (10 sec)
```
https://rubyci.org/logs/rubyci.s3.amazonaws.com/arch/ruby-master/log/20200209T120002Z.fail.html.gz
This change allows the test to pass.
|
|
|
|
|
|
|
|
Against changes of the `assert_separately` prologue code.
|
|
|
|
Retrying after rescued `require` should try to load the same
library again. [Bug #16607]
Notes:
Merged: https://github.com/ruby/ruby/pull/2879
|
|
|
|
These tests assume
Encoding.find('locale') == Encoding.find('external')
and fail if they are distinct.
|
|
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/2874
|