X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fntrace.lisp;h=c93e07f95c121b1b0e20b6780699e9e5e386ee0c;hb=b3a419f10ad442a1c59d51edabdc70518f193648;hp=bca29e39c08f3bb05ff7bf3f41e12428d4078202;hpb=104ee7ee303efa16e415f5e75df635ac54dba733;p=sbcl.git diff --git a/src/code/ntrace.lisp b/src/code/ntrace.lisp index bca29e3..c93e07f 100644 --- a/src/code/ntrace.lisp +++ b/src/code/ntrace.lisp @@ -29,7 +29,7 @@ "If the trace indentation exceeds this value, then indentation restarts at 0.") -(defvar *trace-encapsulate-default* :default +(defvar *trace-encapsulate-default* t #+sb-doc "the default value for the :ENCAPSULATE option to TRACE") @@ -154,6 +154,7 @@ (let ((exp (car form))) (if (sb-di:code-location-p loc) (let ((fun (sb-di:preprocess-for-eval exp loc))) + (declare (type function fun)) (cons exp (lambda (frame) (let ((*current-frame* frame)) @@ -183,7 +184,7 @@ (dolist (entry *traced-entries*) (when (cdr entry) (incf depth))) (format t - "~@V,0T~W: " + "~V,0@T~W: " (+ (mod (* depth *trace-indentation-step*) (- *max-trace-indentation* *trace-indentation-step*)) *trace-indentation-step*) @@ -248,7 +249,7 @@ (or (not wherein) (trace-wherein-p frame wherein))))) (when conditionp - (let ((sb-kernel:*current-level* 0) + (let ((sb-kernel:*current-level-in-print* 0) (*standard-output* *trace-output*) (*in-trace* t)) (fresh-line) @@ -275,6 +276,7 @@ ;;; to determine the correct indentation for output. We then check to ;;; see whether the function is still traced and that the condition ;;; succeeded before printing anything. +(declaim (ftype (function (trace-info) function) trace-end-breakpoint-fun)) (defun trace-end-breakpoint-fun (info) (lambda (frame bpt *trace-values* cookie) (declare (ignore bpt)) @@ -287,7 +289,7 @@ (or (cdr entry) (let ((cond (trace-info-condition-after info))) (and cond (funcall (cdr cond) frame))))) - (let ((sb-kernel:*current-level* 0) + (let ((sb-kernel:*current-level-in-print* 0) (*standard-output* *trace-output*) (*in-trace* t)) (fresh-line) @@ -311,6 +313,7 @@ ;;; which we have cleverly contrived to work for our hook functions. (defun trace-call (info) (multiple-value-bind (start cookie) (trace-start-breakpoint-fun info) + (declare (type function start cookie)) (let ((frame (sb-di:frame-down (sb-di:top-frame)))) (funcall start frame nil) (let ((*traced-entries* *traced-entries*))