From 4f07ad793f1a0b3d379ffe412f4cf92a137dccae Mon Sep 17 00:00:00 2001 From: William Harold Newman Date: Fri, 12 Dec 2003 04:34:32 +0000 Subject: [PATCH] 0.8.6.36: tidying... ...fiddling with TRACE docs in anticipation of actually making it do PROFILEing as intended ...small doc/ fixes ...(re-?)deleted FOP-CHARACTER since it's still speculative generality (will presumably be added back when Unicode comes, but isn't helpful now, and would be only infinitesimally helpful then, since it's untested now and so easy to add then) ...MORE LOC: broke some long lines ...stdlog seemed to be unused. --- doc/ffi.xml | 9 ++++--- src/code/fop.lisp | 2 -- src/code/ntrace.lisp | 22 ++++++++------- src/compiler/generic/genesis.lisp | 45 ++++++++++++++++++++++--------- src/runtime/runtime.c | 2 -- version.lisp-expr | 2 +- 6 files changed, 51 insertions(+), 31 deletions(-) diff --git a/doc/ffi.xml b/doc/ffi.xml index a111930e0..c054bb21a 100644 --- a/doc/ffi.xml +++ b/doc/ffi.xml @@ -428,7 +428,7 @@ returns a pointer to the location specified by (sb-alien:cast foreign-value new-type) -The sb-alien:cast +The sb-alien:cast macro converts foreign-value to a new foreign value with the specified new-type. Both types, old and new, must be foreign pointer, array or function types. Note that the resulting Lisp @@ -622,9 +622,10 @@ the operator sb-alien:get-errno to allow Lisp code to read The extern-alien macro returns an alien with the specified type which -points to an externally defined value. name is not evaluated, -and may be either a string or a symbol. type is -an unevaluated alien type specifier. +points to an externally defined value. +name is not evaluated, +and may be either a string or a symbol. +type is an unevaluated alien type specifier. diff --git a/src/code/fop.lisp b/src/code/fop.lisp index 26b72348b..3bedb4c36 100644 --- a/src/code/fop.lisp +++ b/src/code/fop.lisp @@ -123,8 +123,6 @@ #-sb-xc-host (%primitive sb!c:make-other-immediate-type 0 sb!vm:unbound-marker-widetag)) -(define-fop (fop-character 68) - (code-char (read-arg 3))) ;;; CMU CL had FOP-CHARACTER as fop 68, but it's not needed in current ;;; SBCL as we have no extended characters, only 1-byte characters. ;;; (Ditto for CMU CL, actually: FOP-CHARACTER was speculative generality.) diff --git a/src/code/ntrace.lisp b/src/code/ntrace.lisp index 609be520f..03eac599a 100644 --- a/src/code/ntrace.lisp +++ b/src/code/ntrace.lisp @@ -1,4 +1,4 @@ -;;;; a tracing facility based on breakpoints +;;;; a tracing facility ;;;; This software is part of the SBCL system. See the README file for ;;;; more information. @@ -497,8 +497,8 @@ "TRACE {Option Global-Value}* {Name {Option Value}*}* TRACE is a debugging tool that provides information when specified functions are called. In its simplest form: - (trace Name-1 Name-2 ...) - (The Names are not evaluated.) + (TRACE NAME-1 NAME-2 ...) + (The NAMEs are not evaluated.) Options allow modification of the default behavior. Each option is a pair of an option keyword and a value form. Global options are specified before @@ -530,6 +530,7 @@ evaluates to true at the time of the call. :CONDITION-AFTER is similar, but suppresses the initial printout, and is tested when the function returns. :CONDITION-ALL tries both before and after. + This option is not supported with :REPORT PROFILE. :BREAK Form :BREAK-AFTER Form @@ -544,13 +545,14 @@ In addition to the usual printout, the result of evaluating Form is printed at the start of the function, at the end of the function, or both, according to the respective option. Multiple print options cause - multiple values to be printed. + multiple values to be printed. :WHEREIN Names If specified, Names is a function name or list of names. TRACE does nothing unless a call to one of those functions encloses the call to this function (i.e. it would appear in a backtrace.) Anonymous - functions have string names like \"DEFUN FOO\". + functions have string names like \"DEFUN FOO\". This option is not + supported with :REPORT PROFILE. :ENCAPSULATE {:DEFAULT | T | NIL} If T, the tracing is done via encapsulation (redefining the function @@ -563,11 +565,13 @@ :FUNCTION Function-Form This is a not really an option, but rather another way of specifying what function to trace. The Function-Form is evaluated immediately, - and the resulting function is traced. + and the resulting function is instrumented, i.e. traced or profiled + as specified in REPORT. - :CONDITION, :BREAK and :PRINT forms are evaluated in the lexical environment - of the called function; SB-DEBUG:VAR and SB-DEBUG:ARG can be used. The - -AFTER and -ALL forms are evaluated in the null environment." + :CONDITION, :BREAK and :PRINT forms are evaluated in a context which + mocks up the lexical environment of the called function, so that + SB-DEBUG:VAR and SB-DEBUG:ARG can be used. The -AFTER and -ALL forms + are evaluated in the null environment." (if specs (expand-trace specs) '(%list-traced-funs))) diff --git a/src/compiler/generic/genesis.lisp b/src/compiler/generic/genesis.lisp index 485d71bf2..fce01cfd4 100644 --- a/src/compiler/generic/genesis.lisp +++ b/src/compiler/generic/genesis.lisp @@ -716,20 +716,32 @@ (ecase sb!c:*backend-byte-order* (:little-endian (write-wordindexed des sb!vm:complex-double-float-real-slot low-bits) - (write-wordindexed des (1+ sb!vm:complex-double-float-real-slot) high-bits)) + (write-wordindexed des + (1+ sb!vm:complex-double-float-real-slot) + high-bits)) (:big-endian (write-wordindexed des sb!vm:complex-double-float-real-slot high-bits) - (write-wordindexed des (1+ sb!vm:complex-double-float-real-slot) low-bits)))) + (write-wordindexed des + (1+ sb!vm:complex-double-float-real-slot) + low-bits)))) (let* ((imag (imagpart num)) (high-bits (make-random-descriptor (double-float-high-bits imag))) (low-bits (make-random-descriptor (double-float-low-bits imag)))) (ecase sb!c:*backend-byte-order* (:little-endian - (write-wordindexed des sb!vm:complex-double-float-imag-slot low-bits) - (write-wordindexed des (1+ sb!vm:complex-double-float-imag-slot) high-bits)) + (write-wordindexed des + sb!vm:complex-double-float-imag-slot + low-bits) + (write-wordindexed des + (1+ sb!vm:complex-double-float-imag-slot) + high-bits)) (:big-endian - (write-wordindexed des sb!vm:complex-double-float-imag-slot high-bits) - (write-wordindexed des (1+ sb!vm:complex-double-float-imag-slot) low-bits)))) + (write-wordindexed des + sb!vm:complex-double-float-imag-slot + high-bits) + (write-wordindexed des + (1+ sb!vm:complex-double-float-imag-slot) + low-bits)))) des)) ;;; Copy the given number to the core. @@ -1760,12 +1772,14 @@ (ash value -2))) (:lui (setf (bvref-32 gspace-bytes gspace-byte-offset) - (logior (mask-field (byte 16 16) (bvref-32 gspace-bytes gspace-byte-offset)) + (logior (mask-field (byte 16 16) + (bvref-32 gspace-bytes gspace-byte-offset)) (+ (ash value -16) (if (logbitp 15 value) 1 0))))) (:addi (setf (bvref-32 gspace-bytes gspace-byte-offset) - (logior (mask-field (byte 16 16) (bvref-32 gspace-bytes gspace-byte-offset)) + (logior (mask-field (byte 16 16) + (bvref-32 gspace-bytes gspace-byte-offset)) (ldb (byte 16 0) value)))))) (:ppc (ecase kind @@ -1897,7 +1911,9 @@ forms)) (setf (svref *cold-fop-funs* ,code) #',fname)))) -(defmacro clone-cold-fop ((name &key (pushp t) (stackp t)) (small-name) &rest forms) +(defmacro clone-cold-fop ((name &key (pushp t) (stackp t)) + (small-name) + &rest forms) (aver (member pushp '(nil t))) (aver (member stackp '(nil t))) `(progn @@ -1929,8 +1945,6 @@ (define-cold-fop (fop-misc-trap) *unbound-marker*) -(define-cold-fop (fop-character) - (make-character-descriptor (read-arg 3))) (define-cold-fop (fop-short-character) (make-character-descriptor (read-arg 1))) @@ -2806,13 +2820,18 @@ ;; type things. We therefore don't export it, but instead do #!+sparc (when (boundp 'sb!vm::pseudo-atomic-trap) - (format t "#define PSEUDO_ATOMIC_TRAP ~D /* 0x~:*~X */~%" sb!vm::pseudo-atomic-trap) + (format t + "#define PSEUDO_ATOMIC_TRAP ~D /* 0x~:*~X */~%" + sb!vm::pseudo-atomic-trap) (terpri)) ;; possibly this is another candidate for a rename (to ;; pseudo-atomic-trap-number or pseudo-atomic-magic-constant ;; [possibly applicable to other platforms]) - (dolist (symbol '(sb!vm::float-traps-byte sb!vm::float-exceptions-byte sb!vm::float-sticky-bits sb!vm::float-rounding-mode)) + (dolist (symbol '(sb!vm::float-traps-byte + sb!vm::float-exceptions-byte + sb!vm::float-sticky-bits + sb!vm::float-rounding-mode)) (format t "#define ~A_POSITION ~A /* ~:*0x~X */~%" (substitute #\_ #\- (symbol-name symbol)) (sb!xc:byte-position (symbol-value symbol))) diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index 72fc56a9f..18f617f2a 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -175,8 +175,6 @@ BSD-style licenses. See the CREDITS and COPYING files in the\n\ distribution for more information.\n\ ", SBCL_VERSION_STRING); } - -FILE *stdlog; int diff --git a/version.lisp-expr b/version.lisp-expr index 1b6b97255..cd7aefc7a 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.6.35" +"0.8.6.36"