1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/internal
Koichi Sasada e7fc353f04 enable constant cache on ractors
constant cache `IC` is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.

This patch enables it by introducing `imemo_constcache` and allocates
it by every re-fill of const cache like `imemo_callcache`.
[Bug #17510]

Now `IC` only has one entry `IC::entry` and it points to
`iseq_inline_constant_cache_entry`, managed by T_IMEMO object.

`IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and
`rb_mjit_after_vm_ic_update()` is not needed.
2021-01-05 02:27:58 +09:00
..
array.h
bignum.h
bits.h
class.h
compar.h
compile.h
compilers.h Update compilers.h [ci skip] 2021-01-05 01:06:07 +09:00
complex.h
cont.h
dir.h
enc.h
encoding.h
enum.h
enumerator.h
error.h Switch rb_category_warn{,ing} to accept an rb_warning_category_t 2020-12-18 09:54:11 -08:00
eval.h
file.h
fixnum.h
gc.h Narrowed down unaligned member access region in RB_OBJ_WRITE 2020-12-13 11:57:05 +09:00
hash.h
imemo.h enable constant cache on ractors 2021-01-05 02:27:58 +09:00
inits.h
io.h
load.h
loadpath.h
math.h
missing.h
numeric.h Allow inlining Integer#-@ and #~ 2020-12-22 22:32:19 -08:00
object.h
parse.h
proc.h
process.h
random.h
range.h
rational.h
re.h
sanitizers.h
scheduler.h
serial.h
signal.h
static_assert.h
string.h
struct.h
symbol.h
thread.h
time.h
transcode.h
util.h
variable.h tuning ivar set 2020-12-16 13:06:13 +09:00
vm.h Optimize calls to Kernel#hash (#3987) 2020-12-25 02:08:12 +09:00
warnings.h