yarv-dev:378
From: shudo computer.org
Date: Mon, 13 Dec 2004 19:47:57 +0900
Subject: [yarv-dev:378] Re: Exception Problem with Register Allocated Variable
ささださん、皆様、首藤です。 > > 例外発生時でも拡張ライブラリからは普通に return してもらって、 > > その際の返り値なり何なりで例外の発生を伝えてもらった方がなんぼか... > > それ(2辺戻値法)だと,拡張ライブラリが若干書きづらくなるん > ですよね.それが出来ればどれだけ楽か. Java の C/C++ 言語インタフェースである JNI みたいに ハンドル (JNIEnv *) があれば、 ハンドル中に例外についての情報を入れることもできるんですけどねー よきにつけ悪しきにつけ、レガシーですね。 > > って、C で書かれた拡張ライブラリを呼ぶ直前に setjmp しておく、 > > ってことはできないんでしょうか。 > > そうすることで、戻った後で PC を得られませんか? > > それは可能ですが,「longjmp する可能性のある関数呼び出し」の > 前すべてで setjmp するとえらいコストになりそうです.基本的に > Ruby C API ではたいてい例外発生する可能性がありますから. longjmp で戻るのではなくて、 何らかの方法で C のスタックを巻き戻すことで大域脱出するとか :) Kazuyuki Shudo/首藤一幸 私をたばねないで あらせいとうの花のように shudo computer.org http://www.shudo.net/ -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
366 2004-12-11 02:51 [ko1 atdot.net ] Exception Problem with Register Allocated Variable 368 2004-12-11 10:08 ┗[nobu.nokada softhome] 369 2004-12-11 11:34 ┗[ko1 atdot.net ] 373 2004-12-12 22:25 ┗[shudo computer.org ] 374 2004-12-13 01:05 ┗[maeda-yarv atusi.org] 375 2004-12-13 14:46 ┗[ko1 atdot.net ] 376 2004-12-13 18:13 ┗[shudo computer.org ] 377 2004-12-13 18:18 ┗[ko1 atdot.net ] -> 378 2004-12-13 19:47 ┗[shudo computer.org ]