標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

ISLisp 検証プログラムには不具合があるのでは?

基本、検証コードでエラーがあった場合、(with-handler) でキャッチして NG 判定し、次の項目のテストにすみやかに以降されるようになっているのだが、tp-data-error に関しては catch が抜けているように見える

> OK: (read str nil) -> nil
> TP data error [Invalid condition class]: ($error (read str t) <end-of-stream>)
catch-tag 'tp-data-error' not found
        at throw
        at tp-data-error
        at if
        at tp-$error-prim
        at tp-$error
        at case
        at while
        at let
        at for
        at with-open-input-file
        at with-standard-input
        at tp-main
        at while
        at let
        at for
        at let
        at tp-all
Makefile:93: recipe for target 'verify-verbose' failed
make: *** [verify-verbose] Error 1
exit status 2

tp.lsp:

(defun tp-data-error (errmsg data)
  (tp-output "TP data error [~A]: ~S~%" errmsg data)
  (throw 'tp-data-error nil))

だが、throw に対応する (catch 'tp-data-error …) がどこにも存在しない ( 他の種類の catch-tag は存在する )

まぁ、Lisp処理系側のNG判定される部分を修正して、例外が飛ばないようにすれば問題ないのだが…検証プログラムがとまってしまうのはなんだかなぁ