1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/bootstraptest
Alan Wu d0772632bf YJIT: Fail gracefully while OOM for new entry points
Previously, YJIT crashes with rb_bug() when asked to compile new methods
while out of executable memory.

To handle this situation gracefully, this change keeps track of all the
blocks compiled each invocation in case YJIT runs out of memory in the
middle of a compliation sequence. The list is used to free all blocks in
case compilation fails.

yjit_gen_block() is renamed to gen_single_block() to make it distinct from
gen_block_version(). Call to limit_block_version() and block_t
allocation is moved into the function to help tidy error checking in the
outer loop.

limit_block_version() now returns by value. I feel that an out parameter
with conditional mutation is unnecessarily hard to read in code that
does not need to go for last drop performance. There is a good chance
that the optimizer is able to output identical code anyways.
2021-12-01 12:25: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
test_autoload.rb
test_block.rb
test_class.rb
test_env.rb
test_eval.rb Turn class variable warnings into exceptions 2020-04-10 00:29:05 -07:00
test_exception.rb
test_fiber.rb Replace copy coroutine with pthread implementation. 2021-07-01 11:23:03 +12:00
test_finalizer.rb
test_flip.rb
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
test_gc.rb
test_insns.rb Add one more test example for swap instruction 2021-11-09 16:56:44 +09:00
test_io.rb
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
test_marshal.rb
test_massign.rb
test_method.rb
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
test_struct.rb
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: Fail gracefully while OOM for new entry points 2021-12-01 12:25: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