| Age | Commit message (Collapse) | Author |
|
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
|
|
This environment variable can show additional message on BUG.
|
|
should not mutate test data.
|
|
should remove pathname.
|
|
This reverts commit 4d132fa130e16eeb4af4177cfaccc00e05e2f864.
There are discussions about using srand() in tests.
I'll write a ticket about it and continue to discuss.
|
|
This reverts commit 65768c80beb64a14c3e918f8ed5e41e9349025d0.
|
|
Dir.tmpdir can return same directory because of rand() value,
so we shouldn't rely on different name.
|
|
|
|
[Bug #15177]
|
|
|
|
test_rand.rb calls srand() several times, however it change global
rand-sequence (and --seeds doesn't have meaning). This patch makes
such tests run in other processes.
Notes:
Merged: https://github.com/ruby/ruby/pull/2865
|
|
|
|
ruby/test_time_tz.rb (not sure only this file affects) changes TZ
and it seems to change internal state. This internal state change
fails test_2038 and test_timegm on 2nd time execution.
At this time I have no idea how to fix this issue, so I skips these
tests on 2nd trial.
You can try this failure with the following command without this patch.
$ make test-all TESTS='--repeat-count=2 ruby/require ruby/time ruby/time_tz'
|
|
Another test defines Object::A, but it will fail 2nd test.
|
|
Remove Structs to avoid redefinition warnings.
|
|
need to remove Constants.
|
|
need to redefine some classes.
|
|
Give up to support multi-run:
* test_method_should_use_refinements
* test_instance_method_should_use_refinements
I hope someone can revisit it.
|
|
Mysterious error:
`remove_method(:foo) if method_defined?(:foo)` raise an exception
`method `foo' not defined in #<Class:#<TestProc:0x000055d12ff154e0>>`
This patch rename the method name foo to foo_arity to solve it.
|
|
add cleanup code in some tests.
|
|
need to restore a method.
|
|
need to remove Constants.
|