[Anthy-dev 1379] Re: backtrace が出ない

Back to archive index

YamaKen yamak****@bp*****
2004年 11月 12日 (金) 22:39:39 JST


ヤマケンです。

#[Anthy-dev 1378]に対するレスです

TOKUNAGA Hiroyuki tkng****@xem*****
2004年 11月 12日 (金) 18:17:16 JST
> On Fri, 12 Nov 2004 00:23:25 -0800
> Jun Inoue <jun0****@nerds*****> wrote:
> > uim-sh で backtrace が出なくなっています。
> > uim-sh.c の 62-66 行目で変更があったからのようですが、
> > > /* keep verbose level 1 to make (require "foo.scm") returns
> > >  * *foo.scm-loaded* only. This is required to run uim-test-utils.scm
> > >  * correctly.
> > >  */
> > の意味がいまいちよくわかりません。require が返すのは常に
> > *foo.scm-loaded* だけだと思うんですが何か勘違いしてたらすみません。
> > それから、uim-sh からは verbose_level は変えられないようなので、
> > コマンドラインオプションを付けるか、アクセッサを作るかしようと思い
> > ますがいかがでしょう。

verboseという組み込みprocedureがあるのでそれを使ってください。
get/setいずれも可能です。

uim> (verbose)
1
uim> (verbose 5)
5

>  verbose levelが高いと、たしかrequireは読み込んだファイルの中身も返して
> いた様な気がします。

そうです。正確には評価結果が出力されますが、これがuim-test-utils
の実行に悪影響を及ぼすので抑制しました。

自分で回答を書いてて思い付いたんですが、uim-sh.cにverbose level
をハードコーディングするより、uim-test-utils.scm側で
(uim '(verbose 1))かsetenvで設定すべきじゃないかと思います。

>  あと、backtraceは重要な情報なんでverbose levelが1でも出した方がいいん
> じゃないかと思うんですが、他の方はどう思いますか?

反対です。

slib.cを読むとわかりますが、verbose level 1は(print)の出力が初め
て有効になり、かつ余計な情報が出力されないという特別な意味合いを
持っているので、これを変えるとuim-shをinferior processとして利用
するプログラムの実行に不都合が出ます。具体的にはuim-test-utilsで
エラー発生のassertionが書けなくなります。

今は適当に5以上でbacktraceが出るようにしてありますが、これより下
げる場合はslib.cのverbose関連コードを読んで慎重にスレッショルド
を決める必要があると思います。


他にも返答が必要なメールが溜ってますが、ちょっと他にやる事がある
ので反応が遅れます。すいません。多分週明けになると思います。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
Back to archive index