KOGURO, Naoki
naoki****@kogur*****
2008年 4月 6日 (日) 16:40:41 JST
小黒です。 glint (codecheck モジュール) 0.1.2 をリリースしました。 以下のサイトからダウンロードできます。 http://homepage.mac.com/naoki.koguro/prog/codecheck/index-j.html glint は Gauche 用のコードチェックツールで、文法の誤り や未定義のシンボルや型の誤りといったエラーを検出することができます (とはいえ、まだ実験的なものなのでエラーを見過ごしたり、正しい コードに対してエラーを報告してしまうことがあるかもしれませ ん)。 例えば、以下のようなコードがあった場合、 (let (a 1) (print (+ a 2))) (define (fact n) (if (= n 1) 1 (* n (fact (- m 1))))) (define (hash-table->alist tbl) (hash-table-map cons tbl)) glintを使うと以下のようなエラーを報告してくれます。 % glint wrong.scm wrong.scm:2: error: syntax-error: malformed let: (let (a 1) (print (+ a 2))) wrong.scm:8: error: m(user) referenced but not defined wrong.scm:11: error: wrong type for argument 1 of #<closure hash-table- map>: <hash-table> required, but got #<subr cons> なお、glintは静的なチェックを行いますが、トップレベルの defineやimportされたモジュールについては実際に評価して しまいます。そのため、glintで以下のようなコードをチェッ クするのはやめたほうがいいです。 (use module.has.dangerous.side.effects) (define a (format-your-hard-drive)) -- KOGURO, Naoki <naoki****@kogur*****>