Ruby 2.3.0 リファレンスマニュアル > 関数一覧 > rb_memerror
void rb_memerror(void)
NoMemoryErrorをraiseする。 しかしraise自体にもメモリ容量を使うため、メモリが足りない状況 ではその途中でまたメモリ不足になる可能性がある。そのため この関数では再帰を検出した場合はraiseではなくexitするように なっている。