Kazuki Tsujimoto
kazuk****@callc*****
2006年 4月 2日 (日) 03:52:35 JST
辻本です。 Subject: [Gauche-devel-jp] Re: test-moduleの拡張 From: Shiro Kawai <shiro****@lava*****> Date: Fri, 31 Mar 2006 23:55:22 -1000 (HST) message-id: <20060****@lava*****> > test-moduleで未定義のグローバル変数参照を拾い出すのを試して > いるのですが、ちょっと問題が出ました。 > > (snip) > > 今のところの解決策は「その関数がサポートされない場合は#fに束縛しておく」 > で、それだとこんなふうにコードを書いておけます。 > > (if foo > ( ... code that use function foo ... ) > ( ... code that doesn't use function foo .. )) > > この方針で行こうかなと思っているのですが、今まで > global-variable-bound? もしくは symbol-bound? で判断していたような > コードはtest時にfailすることになるので、そのような拡張モジュールが > あれば教えて下さい。あまりに影響が大きいようなら何らかのオプションで > 未定義のグローバル変数参照のチェックをon/offできるようにします。 > > また、この問題の解決に関して他のアイディアはありませんか。 難しいですね。 チェックから除外する変数を、あらかじめtest-moduleへの引数にするなどして テストスクリプト中で指定しておくというのはどうでしょうか。テストの目的を 意図しないtypoの検出に置くならば、意図してチェックから除外するのも構わないと 思います。このテストのためだけにダミーの束縛を作らなければならず、またコードの 構成も変更しなければならないとなるとユーザへの負担が大きくなってしまうのでは ないでしょうか。 この方式のメリットはテストスクリプトだけに影響を抑えることができる点ですが、 逆にデメリットには対象変数を指定するときにシンボルしか与えない場合、除外すべき identifier/glocオブジェクトをきちんと識別できるか分からないということが挙げられます。 多分大丈夫だとは思うのですが、考えが浅いかもしれません。 ---- Kazuki Tsujimoto