REPLでのSBCLガベージコレクターの次の動作に少し戸惑っています。2つの関数を定義します。
(defun test-gc ()
(let ((x (make-array 50000000)))
(elt x 0)))
(defun add-one (x) (+ 1 x))
次に実行します
(add-one (test-gc))
元の配列を参照するものはもうないと思います。それでも、(部屋)が報告するように、メモリは解放されません。(test-gc)を直接実行した場合、SLIMEまたはのどこかに参照がスタックしている可能性があることは理解できます。
(list * ** ***)
しかし、ここに当てはまりましたか?ありがとう、アンドレイ。
更新少し前にバグを報告しました。最近確認されました。参照: https ://bugs.launchpad.net/sbcl/+bug/936304