Open sevenc-nanashi opened 1 year ago
気付いたのですがこれをやるためには #541 を、少なくとも「panic=abort
のまますべてをextern "C-unwind"
にする」という形でやらないといけませんね。やらない場合、「絶対にコールバックからunwindするな」という注意書きを書くことになります。
extern "C"
からC++の例外を発射することは例えpanic=abort
下であってもUBです。これを防ぐにはコールバックが呼ばれうるすべての関数をextern "C-unwind"
にする他ありません。
panic runtime ABI panic
-unwindUnforced foreign unwind panic=unwind
"C-unwind"
unwind unwind panic=unwind
"C"
-likeabort UB panic=abort
"C-unwind"
panic!
abortsabort panic=abort
"C"
-likepanic!
aborts (no unwinding occurs)UB
このissueですが、 #545 から一旦外しました。 (後で入れてもおそらくbreaking changeではないので)
内容
タイトル通りです。
Pros 良くなる点
C FFIのラッパーがそれぞれの言語にあった形(Loggerなど)でログを出せるようになる
Cons 悪くなる点
ないはず?
実現方法
VOICEVOXのバージョン
0.15.0(vvm-async-api)
OSの種類/ディストリ/バージョン
その他
(なし)