# If this test were in a .lisp file then the FILE-INFO would hold on # to all function names and so we couldn't show that GC works. . ./subr.sh run_sbcl <name *li* :index))) (fmakunbound 'f) (unintern 'g) (setq * nil ** nil *** nil + nil ++ nil +++ nil / nil // nil /// nil) (gc) ; even changing this to :FULL does not fix the mark-region failure (unless (null (sb-vm::linkage-addr->name *li* :index)) ;; Do not extract WEAK-POINTER-VALUE in this thread, lest it be referenced ;; from the control stack. (sb-thread:join-thread (sb-thread:make-thread (lambda (wp) (let ((obj (weak-pointer-value wp))) (format t "~&Searching for path to ~S (g~D)~%" obj (sb-kernel:generation-of obj)))) :arguments *wp*)) (search-roots *wp* :criterion :static :print t)) (assert (null (sb-vm::linkage-addr->name *li* :index))) (defun foo () (bar)) (compile 'foo) ;; BAR should get the same linkage index as G had (assert (= (sb-vm::fname-linkage-index 'bar) *li*)) EOF if [ $? -eq 0 ] then exit $EXIT_TEST_WIN fi