こないだ入れた trace だけど、
書いた再帰がバグってたりすると、無限ループになってスタックオーバーフローが出ることがある。
するとそれ以降は、結果表示のインデントが大幅に狂ってしまうようだ。
いかにもパッチ当てだけど、使えるようにしてみた。
;; mod (defmacro trace (&rest args) (setq *trace-depth* 0) ; add (if (null args) '*trace-function-list* `(let (lst) (dolist (func ',args (reverse lst)) (when (trace-encap func) (setq lst (cons func lst)))))))
本当は unwind-protect とかでやるのが正しいと思うけど、今はこれでいいや。
マクロわかってないとこういうのがつらいなぁ。