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*****