sbcl内部をデバッグするために、sbcl内部パッケージをトレースしてみました。
たとえば、私は試しました
(trace "SB-IMPL")
これにより、コントロールスタックオーバーフローが発生します。SBCLの起動中に制御スタックサイズの起動オプションを変更しようとしましたが、変更されませんでした。
または、次を使用して関数を変更しようとしました:(スニペットのみ)
(setf (symbol-function s)
#'(lambda (&rest args)
;do something
;invoke original function
;do something more))
指定されたパッケージに属するシンボルの場合のみ、do-all-symbolsの下にあります。
それでもオーバーフローエラーが発生します。上記のコードは、バインディングスタックの枯渇エラーを示しています。おそらく誰かがバインディングスタックサイズを制御する方法を説明できますか?
あるいは、誰かがコンパイル中に内部SBCL関数定義を変更する方法を指摘できれば、それも素晴らしいことでしょうか?その場合、そのトリックを使用してソースからSBCLを再コンパイルできます。