ruby/bootstraptest
Alan Wu 13d1ded253 YJIT: Make block invalidation more robust
This commit adds an entry_exit field to block_t for use in
invalidate_block_version(). By patching the start of the block while
invalidating it, invalidate_block_version() can function correctly
while there is no executable memory left for new branch stubs.

This change additionally fixes correctness for situations where we
cannot patch incoming jumps to the invalidated block. In situations
such as Shopify/yjit#226, the address to the start of the block
is saved and used later, possibly after the block is invalidated.

The assume_* family of function now generate block->entry_exit before
remembering blocks for invalidation.

RubyVM::YJIT.simulate_oom! is introduced for testing out of memory
conditions. The test for it is disabled for now because OOM triggers
other failure conditions not addressed by this commit.

Fixes Shopify/yjit#226
2021-11-22 18:23:28 -05:00
..
pending.rb Moved already resolved test 2020-04-27 10:39:07 +09:00
runner.rb Rename RubyVM::MJIT to RubyVM::JIT 2021-01-13 22:46:51 -08:00
test_attr.rb * bootstraptest/test_attr.rb: moved test for [ruby-core:14641]. 2008-01-17 16:59:23 +00:00
test_autoload.rb * bootstraptest/test_autoload.rb, bootstraptest/test_method.rb: 2013-06-13 02:01:42 +00:00
test_block.rb vm_insnhelper.c: break from nested rescue 2015-01-23 14:57:08 +00:00
test_class.rb vm.c: initialize defined_module_hash early 2013-10-13 11:59:27 +00:00
test_env.rb fallback env encoding to ASCII-8BIT 2018-09-26 17:24:00 +00:00
test_eval.rb Turn class variable warnings into exceptions 2020-04-10 00:29:05 -07:00
test_exception.rb error.c: bypass Exception.new 2018-02-20 10:08:27 +00:00
test_fiber.rb Replace copy coroutine with pthread implementation. 2021-07-01 11:23:03 +12:00
test_finalizer.rb * gc.c (rb_gc_call_finalizer_at_exit): self-referencing finalizers 2008-08-06 11:48:30 +00:00
test_flip.rb * bootstraptest/test_flip.rb: new test for flip-flop operator. 2007-07-10 06:57:56 +00:00
test_flow.rb Make proc/Proc.new without block an error instead of warning 2020-06-10 17:49:54 -07:00
test_fork.rb bootstraptest/test_fork.rb: Stop too restrict NPROC test temporarily 2018-01-09 08:05:40 +00:00
test_gc.rb * bootstraptest/test_gc.rb: added tests based on [ruby-dev:39484] 2009-10-16 09:42:20 +00:00
test_insns.rb Add one more test example for swap instruction 2021-11-09 16:56:44 +09:00
test_io.rb bootstraptest update test_io.rb [Bug #15060] [Fix GH-1495] 2018-09-04 05:28:38 +00:00
test_jump.rb Make yield in singleton class definitions in methods a SyntaxError 2020-02-11 12:44:23 -08:00
test_literal.rb st.c (rb_hash_bulk_insert_into_st_table): avoid out-of-bounds write 2019-01-15 14:19:19 +00:00
test_literal_suffix.rb parse.y: more token names 2019-01-21 10:24:56 +00:00
test_load.rb * file.c (file_load_ok): checks if regular file. [ruby-dev:38097] 2009-02-27 06:49:43 +00:00
test_marshal.rb bootstraptest/test_marshal.rb: test updated 2008-03-01 04:07:26 +00:00
test_massign.rb * insns.def (expandarray): fix stack inc. 2008-01-23 17:17:23 +00:00
test_method.rb relax error message format 2015-10-24 06:42:22 +00:00
test_objectspace.rb Use a monotonically increasing number for object_id 2019-11-07 09:31:07 -08:00
test_proc.rb Make proc/Proc.new without block an error instead of warning 2020-06-10 17:49:54 -07:00
test_ractor.rb rb_id_serial_to_id: return unregistered ID as an internal ID 2021-11-07 12:40:27 +09:00
test_string.rb * string.c (str_discard): does not free for STR_NOFREE string. 2015-02-13 13:06:58 +00:00
test_struct.rb * bootstraptest/test_struct.rb: some test moved from test to shut 2008-03-13 16:40:33 +00:00
test_syntax.rb Turn class variable warnings into exceptions 2020-04-10 00:29:05 -07:00
test_thread.rb should check pending interrupts correctly. 2020-04-09 12:51:51 +09:00
test_yjit.rb YJIT: Make block invalidation more robust 2021-11-22 18:23:28 -05:00
test_yjit_30k_ifelse.rb * append newline at EOF. [ci skip] 2021-10-21 08:12:53 +09:00
test_yjit_30k_methods.rb * append newline at EOF. [ci skip] 2021-10-21 08:12:53 +09:00