Commit graph

8 commits

Author SHA1 Message Date
Takashi Kokubun
eaccdc1941 Rename MJIT filenames to RJIT 2023-03-06 23:44:01 -08:00
Takashi Kokubun
7dcdffebc8 Invalidate blocks on global constant changes 2023-03-05 23:28:59 -08:00
Takashi Kokubun
63d96ccbcd Invalidate everything on GC.compact 2023-03-05 23:28:59 -08:00
Takashi Kokubun
feb60f6f51 Invalidate blocks on constant IC updates 2023-03-05 23:28:59 -08:00
Takashi Kokubun
aba530e23b Implement invalidation after cfunc 2023-03-05 22:41:35 -08:00
Takashi Kokubun
e731ced271 Implement method call 2023-03-05 22:11:20 -08:00
Takashi Kokubun
e4a824f769 Fix broken rebase 2023-03-05 22:11:20 -08:00
Takashi Kokubun
b9332ac8e7
MJIT: Cancel all on disastrous situations (#7019)
I noticed this while running test_yjit with --mjit-call-threshold=1, 
which redefines `Integer#<`. When Ruby is monkey-patched, 
MJIT itself could be broken.

Similarly, Ruby scripts could break MJIT in many different ways. I
prepared the same set of hooks as YJIT so that we could possibly
override it and disable it on those moments. Every constant under
RubyVM::MJIT is private and thus it's an unsupported behavior though.
2022-12-24 01:13:40 -08:00