X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fpurify.lisp;h=82cc7cd7f5e0dcf0be80908e7a40ab7579d3d9ca;hb=6ddaf294e5a7e3b1792ed1d9c342894c38538773;hp=4ff9fc0f9228591cc5bc8183f815febf47dd6e7b;hpb=3bb2fb5b9ecdeebecaded4ac6e5af0f653be8867;p=sbcl.git diff --git a/src/code/purify.lisp b/src/code/purify.lisp index 4ff9fc0..82cc7cd 100644 --- a/src/code/purify.lisp +++ b/src/code/purify.lisp @@ -21,17 +21,17 @@ ((zerop n) (let ((old-ie (car *info-environment*))) (setq *info-environment* - (list* (make-info-environment :name "Working") - (compact-info-environment (first *info-environment*) - :name name) - (rest *info-environment*))) + (list* (make-info-environment :name "Working") + (compact-info-environment (first *info-environment*) + :name name) + (rest *info-environment*))) (shrink-vector (sb!c::volatile-info-env-table old-ie) 0))) (t (compact-environment-aux name (1- n)) 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 (ignored-generation-arg) - (%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)))