1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool
Koichi Sasada b9007b6c54 Introduce disposable call-cache.
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.
2020-02-22 09:58:59 +09:00
..
lib Expose assert_no_memory_leak for weakref 2020-02-11 13:29:23 +09:00
m4 do not assume GCC for __builtin_setjmp 2020-02-06 11:46:51 +09:00
ruby_vm Introduce disposable call-cache. 2020-02-22 09:58:59 +09:00
test
actions-commit-info.sh
asm_parse.rb
bisect.sh
build-transcode
checksum.rb
colors
darwin-cc
downloader.rb
enc-emoji-citrus-gen.rb
enc-emoji4unicode.rb
enc-unicode.rb
eval.rb
expand-config.rb
extlibs.rb
fake.rb
fetch-bundled_gems.rb Test the bundled version minitest instead of master 2019-12-31 17:49:26 +09:00
file2lastrev.rb
format-release fix typo 2019-12-25 17:01:26 +09:00
gem-unpack.rb
gen-mailmap.rb
gen_dummy_probes.rb
gen_ruby_tapset.rb
generic_erb.rb
git-refresh
gperf.sed
id2token.rb
ifchange
insns2vm.rb
install-sh
leaked-globals
make-snapshot
make_hgraph.rb
mdoc2man.rb
merger.rb
mjit_archflag.sh
mk_builtin_binary.rb
mk_builtin_loader.rb Separate builtin initialization calls 2019-12-29 12:34:55 +09:00
mk_call_iseq_optimized.rb Introduce disposable call-cache. 2020-02-22 09:58:59 +09:00
mkconfig.rb
mkrunnable.rb
node_name.rb
parse.rb
prereq.status
probes_to_wiki.rb
pure_parser.rb Workaround for bison provided by scoop on mswin environment 2020-02-15 21:20:25 +09:00
rbinstall.rb UnpackedInstaller on rbinstall.rb is inherited from Gem::Installer. 2020-02-01 11:31:46 +09:00
rbuninstall.rb
redmine-backporter.rb Redmine /projects/ruby-trunk is now redirected 2019-12-31 22:06:19 -08:00
release.sh fix version regexp 2019-12-25 18:02:53 +09:00
rmdirs
run-gcov.rb
run-lcov.rb
runruby.rb
strip-rdoc.rb
sync_default_gems.rb Fixed net-pop, smtp, protocol and imap task for sync tool 2020-02-21 21:30:04 +09:00
test-bundled-gems.rb Test bundled gems with timeout 2020-01-19 11:35:10 +09:00
test-coverage.rb
transcode-tblgen.rb more on NULL versus functions. 2020-02-07 14:24:19 +09:00
transform_mjit_header.rb Unnamed groups are not captured when named groups are used 2020-01-30 11:31:48 +09:00
travis_disable_ipv6.sh Disable IPv6 on Travis s390x case. (#2819) 2020-01-07 12:23:04 +09:00
travis_retry.sh
update-deps
vtlh.rb
ytab.sed