vimのif_rubyにSEGVで落ちるバグがありました。

rubyはスタックの先頭から最後までgcのときに見ます。
スタックの先頭はruby_initが呼ばれたときのスタックの位置に設
定されます。スタックの最後はgcが呼ばれたときのスタックの位置
です。

vimでは最初にruby(rubydo, rubyfile)コマンドが実行されたとき
にruby_initを呼びますが、スタックの深い位置で呼ばれることも
あります。そしてgcが発生したときのスタックの位置がruby_init
で設定されたスタックの先頭よりも浅いときに落ちます。

解決策はvimのmainの中でrubyのスタックの先頭を設定することです。
Init_stackスタックに渡したアドレスがスタックの先頭になります。
Init_stack(&argc);