| Age | Commit message (Collapse) | Author |
|
When providing a single array to a block that takes a splat, pass the
array as one argument of the splat instead of as the splat itself,
even if the block also accepts keyword arguments. Previously, this
behavior was only used for blocks that did not accept keywords.
Implements [Feature#16166]
Notes:
Merged: https://github.com/ruby/ruby/pull/2502
|
|
As `String#split` with the default argument drops trailing newline
as a separator, preceding `String#chomp` is futile.
|
|
|
|
ar_table can be converted to st_table just after `ar_do_hash()`
function which calls `#hash` method. We need to check
the representation to detect this mutation.
[Bug #16676]
|
|
|
|
|
|
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.
|