X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpurify.lisp;h=162b86c73b70a65da4cc891b10bfdd6cc30d24b1;hb=860543cc7ba0266e41e1d41ac9b6a208f3795f1a;hp=4d27fe5e51b548f1e7f6c2545cdce4017f3f409b;hpb=e0814eee6f6dea52db010b45a330100f2fe65832;p=sbcl.git diff --git a/src/code/purify.lisp b/src/code/purify.lisp index 4d27fe5..162b86c 100644 --- a/src/code/purify.lisp +++ b/src/code/purify.lisp @@ -9,9 +9,9 @@ (in-package "SB!KERNEL") -(sb!alien:define-alien-routine ("purify" %purify) sb!c-call:void - (static-roots sb!c-call:unsigned-long) - (read-only-roots sb!c-call:unsigned-long)) +(sb!alien:define-alien-routine ("purify" %purify) sb!alien:void + (static-roots sb!alien:unsigned-long) + (read-only-roots sb!alien:unsigned-long)) ;;; Compact the info environment. This is written with gratuitous ;;; recursion to make sure that our (and compact-info-environment's) @@ -31,7 +31,7 @@ n))) (defun purify (&key root-structures (environment-name "Auxiliary")) - #!+sb-doc + ;; #!+sb-doc "This function optimizes garbage collection by moving all currently live objects into non-collected storage. ROOT-STRUCTURES is an optional list of objects which should be copied first to maximize locality. @@ -45,19 +45,5 @@ supplied, then environment compaction is inhibited." (when environment-name (compact-environment-aux environment-name 200)) - - (let ((*gc-notify-before* - (lambda (notify-stream bytes-in-use) - (declare (ignore bytes-in-use)) - (write-string "[doing purification: " notify-stream) - (force-output notify-stream))) - (*internal-gc* - (lambda () - (%purify (get-lisp-obj-address root-structures) - (get-lisp-obj-address nil)))) - (*gc-notify-after* - (lambda (notify-stream &rest ignore) - (declare (ignore ignore)) - (write-line "done]" notify-stream)))) - (gc)) - nil) + (%purify (get-lisp-obj-address root-structures) + (get-lisp-obj-address nil)))