Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/rdoc/commit/3d3616cb94
|
|
https://github.com/ruby/rdoc/commit/b1e7129e05
|
|
This is to avoid SEGV on a CC reference in a normal compilation
https://github.com/ruby/ruby/runs/1586578023
|
|
to avoid SEGV on mjit_recompile and compact_all_jit_code.
For some reason, ISeqs on stack are sometimes GC-ed (why?) and therefore
it may run mjit_recompile on a GC-ed ISeq, which I expected d07183ec85d
to fix but apparently it may refer to random things if already GC-ed.
Marking active_units would workaround the situation.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3292740
Also, while compact_all_jit_code was executed, we saw some SEGVs where
CCs seemed to be already GC-ed, meaning their owner ISeq was not marked
properly. Even if units are still in active_units, it's not guaranteed
that their ISeqs are in use. So in this case we need to mark active_units
for a legitimate reason.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293277
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293090
|
|
The original motivation of this marking was https://github.com/k0kubun/yarv-mjit/issues/20.
As wanabe said, there are multiple options to mitigate the issue, and
Eric Wong introduced another fix at 143776f6fe by checking unit->iseq
inside the lock.
Therefore this particular condition has been covered in two ways, and
the script given by wanabe no longer crashes without mjit_mark().
|
|
Because unfreeze Ractor::MovedObject at
https://github.com/ruby/ruby/commit/76e88480371469400346fca609efe67096813915
|
|
|
|
https://bugs.ruby-lang.org/issues/17413
|
|
|
|
It was my bad, the exception that actually raises is rb_eNoMemError.
[ci skip]
|
|
`@exception` is an alias of `@throw`. It might suite Ruby's document
because ruby uses `raise` terminology instead of `throw`. [ci skip]
|
|
|
|
Notes:
Merged-By: mrkn <[email protected]>
|
|
It should raise an error if the same thread tris to call
receive/receive_if.
Notes:
Merged: https://github.com/ruby/ruby/pull/3949
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3951
|
|
from rb_ractor_make_copy_shareable().
|
|
|
|
|
|
|
|
|
|
To check shareable-ness, rb_ractor_shareable_p() is needed
for Class/Module objects isntead of checking flags.
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Co-Authored-By: Dāvis Mosāns <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Not to interfer in class variables.
|
|
|
|
|
|
testing
|
|
https://github.com/ruby/irb/commit/bcd96834c7
|
|
https://github.com/ruby/reline/commit/723c6e191a
|
|
You can use "measure" command to check performance in IRB like below:
irb(main):001:0> 3
=> 3
irb(main):002:0> measure
TIME is added.
=> nil
irb(main):003:0> 3
processing time: 0.000058s
=> 3
irb(main):004:0> measure :off
=> nil
irb(main):005:0> 3
=> 3
You can set "measure :on" by "IRB.conf[:MEASURE] = true" in .irbrc, and, also,
set custom performance check method:
IRB.conf[:MEASURE_PROC][:CUSTOM] = proc { |context, code, line_no, &block|
time = Time.now
result = block.()
now = Time.now
puts 'custom processing time: %fs' % (Time.now - time) if IRB.conf[:MEASURE]
result
}
https://github.com/ruby/irb/commit/3899eaf2e2
|
|
https://github.com/ruby/irb/commit/f3c8edad2a
|
|
* ruby:ext/rbconfig/exts.mk
* ruby:ext/rbconfig/sizeof/Makefile
* ruby:ext/rbconfig/sizeof/depend
* ruby:ext/rbconfig/sizeof/mkmf.log
* ruby:ext/win32/depend
* ruby:ext/win32/exts.mk
* ruby:ext/win32/resolv/depend
* ruby:lib/racc/pre-setup
|
|
|
|
for leaf_without_check_ints insns.
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-20T05:02:18Z master 02b3555874) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-20T05:36:00Z master 3f58de4eab) +JIT [x86_64-linux]
last_commit=Check mjit_call_p only when interrupted
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 84.50647332260259 85.85057800433144 fps
91.17796644338372 92.09930605656054
91.29346683444497 93.01336611323687
91.50322318568884 93.07234029037433
91.66560903214686 93.22773241529644
91.82315142636172 93.37032901061119
92.15066379608260 93.83701526141679
92.37897097456643 93.86032792681507
92.53049815524908 93.91211970920320
92.78414507914283 94.09109196967890
92.90299756525958 94.40107239595325
93.70279428858790 95.01326369371263
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RCLASS_CONST_TBL() is shared resource so we need to sync with
other ractors.
Notes:
Merged: https://github.com/ruby/ruby/pull/3944
|
|
Notes:
Merged-By: soutaro <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3942
|
|
This reverts commit cacdf2681dcc7c431973f33a18979b10566ec2f9.
Notes:
Merged: https://github.com/ruby/ruby/pull/3942
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3942
|
|
|
|
|