X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fgc.lisp;h=b477d981c36b5e18ffefacfaca9ad6b5e7f18a7a;hb=f7faed97898dd0e94a18b0d1fca03aaa0fe24ab0;hp=2d2dc84c9981393343c9684930d7f5f14713d911;hpb=6848a92fd4af23d0695eeaaed9efcbdfd9e1d9e5;p=sbcl.git diff --git a/src/code/gc.lisp b/src/code/gc.lisp index 2d2dc84..b477d98 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -157,10 +157,6 @@ run in any thread.") (progn (sb!alien:define-alien-variable ("gc_logfile" %gc-logfile) (* char)) (defun (setf gc-logfile) (pathname) - "Use PATHNAME to log garbage collections. If non-null, the -designated file is opened before and after each collection, and -generation statistics are appended to it. To stop writing the log, use -NIL as the pathname." (let ((new (when pathname (sb!alien:make-alien-string (native-namestring (translate-logical-pathname pathname) @@ -170,12 +166,17 @@ NIL as the pathname." (when old (sb!alien:free-alien old)))) (defun gc-logfile () - "Return the name of the current GC logfile." + #!+sb-doc + "Return the pathname used to log garbage collections. Can be SETF. +Default is NIL, meaning collections are not logged. If non-null, the +designated file is opened before and after each collection, and generation +statistics are appended to it." (let ((val %gc-logfile)) (when val (native-pathname (cast val c-string))))) (declaim (inline dynamic-space-size)) (defun dynamic-space-size () + "Size of the dynamic space in bytes." (sb!alien:extern-alien "dynamic_space_size" os-vm-size-t))) ;;;; SUB-GC @@ -303,13 +304,28 @@ NIL as the pathname." (call-hooks "after-GC" *after-gc-hooks* :on-error :warn)))))) ;;; This is the user-advertised garbage collection function. -(defun gc (&key (gen 0) (full nil) &allow-other-keys) +(defun gc (&key (full nil) (gen 0) &allow-other-keys) #!+(and sb-doc gencgc) - "Initiate a garbage collection. GEN controls the number of generations - to garbage collect." + "Initiate a garbage collection. + +The default is to initiate a nursery collection, which may in turn +trigger a collection of one or more older generations as well. If FULL +is true, all generations are collected. If GEN is provided, it can be +used to specify the oldest generation guaranteed to be collected. + +On CheneyGC platforms arguments FULL and GEN take no effect: a full +collection is always preformed." #!+(and sb-doc (not gencgc)) - "Initiate a garbage collection. GEN may be provided for compatibility with - generational garbage collectors, but is ignored in this implementation." + "Initiate a garbage collection. + +The collection is always a full collection. + +Arguments FULL and GEN can be used for compatibility with GENCGC +platforms: there the default is to initiate a nursery collection, +which may in turn trigger a collection of one or more older +generations as well. If FULL is true, all generations are collected. +If GEN is provided, it can be used to specify the oldest generation +guaranteed to be collected." (when (sub-gc :gen (if full 6 gen)) (post-gc))) @@ -434,8 +450,8 @@ Experimental: interface subject to change." t) (def number-of-gcs-before-promotion "Number of times garbage collection is done on GENERATION before -automatic promotion to the next generation is triggered. Can be assigned to -using SETF. Available on GENCGC platforms only. +automatic promotion to the next generation is triggered. Default is 1. Can be +assigned to using SETF. Available on GENCGC platforms only. Experimental: interface subject to change." t)