0.pre7.94:
[sbcl.git] / src / code / debug-int.lisp
index a0d53af..071a476 100644 (file)
                     "no debug information available for ~S~%"
                     (no-debug-info-code-component condition)))))
 
-(define-condition no-debug-function-returns (debug-condition)
-  ((debug-function :reader no-debug-function-returns-debug-function
-                  :initarg :debug-function))
+(define-condition no-debug-fun-returns (debug-condition)
+  ((debug-fun :reader no-debug-fun-returns-debug-fun
+             :initarg :debug-fun))
   #!+sb-doc
   (:documentation
-   "The system could not return values from a frame with DEBUG-FUNCTION since
+   "The system could not return values from a frame with DEBUG-FUN since
     it lacked information about returning values.")
   (:report (lambda (condition stream)
-            (let ((fun (debug-function-function
-                        (no-debug-function-returns-debug-function condition))))
+            (let ((fun (debug-fun-fun
+                        (no-debug-fun-returns-debug-fun condition))))
               (format stream
                       "~&Cannot return values from ~:[frame~;~:*~S~] since ~
                        the debug information lacks details about returning ~
                       fun)))))
 
 (define-condition no-debug-blocks (debug-condition)
-  ((debug-function :reader no-debug-blocks-debug-function
-                  :initarg :debug-function))
+  ((debug-fun :reader no-debug-blocks-debug-fun
+             :initarg :debug-fun))
   #!+sb-doc
-  (:documentation "The debug-function has no debug-block information.")
+  (:documentation "The debug-fun has no debug-block information.")
   (:report (lambda (condition stream)
             (format stream "~&~S has no debug-block information."
-                    (no-debug-blocks-debug-function condition)))))
+                    (no-debug-blocks-debug-fun condition)))))
 
 (define-condition no-debug-vars (debug-condition)
-  ((debug-function :reader no-debug-vars-debug-function
-                  :initarg :debug-function))
+  ((debug-fun :reader no-debug-vars-debug-fun
+             :initarg :debug-fun))
   #!+sb-doc
-  (:documentation "The debug-function has no DEBUG-VAR information.")
+  (:documentation "The DEBUG-FUN has no DEBUG-VAR information.")
   (:report (lambda (condition stream)
             (format stream "~&~S has no debug variable information."
-                    (no-debug-vars-debug-function condition)))))
+                    (no-debug-vars-debug-fun condition)))))
 
 (define-condition lambda-list-unavailable (debug-condition)
-  ((debug-function :reader lambda-list-unavailable-debug-function
-                  :initarg :debug-function))
+  ((debug-fun :reader lambda-list-unavailable-debug-fun
+             :initarg :debug-fun))
   #!+sb-doc
   (:documentation
-   "The debug-function has no lambda-list since argument DEBUG-VARs are
+   "The DEBUG-FUN has no lambda list since argument DEBUG-VARs are
     unavailable.")
   (:report (lambda (condition stream)
             (format stream "~&~S has no lambda-list information available."
-                    (lambda-list-unavailable-debug-function condition)))))
+                    (lambda-list-unavailable-debug-fun condition)))))
 
 (define-condition invalid-value (debug-condition)
   ((debug-var :reader invalid-value-debug-var :initarg :debug-var)
                     (invalid-value-debug-var condition)
                     (invalid-value-frame condition)))))
 
-(define-condition ambiguous-variable-name (debug-condition)
-  ((name :reader ambiguous-variable-name-name :initarg :name)
-   (frame :reader ambiguous-variable-name-frame :initarg :frame))
+(define-condition ambiguous-var-name (debug-condition)
+  ((name :reader ambiguous-var-name-name :initarg :name)
+   (frame :reader ambiguous-var-name-frame :initarg :frame))
   (:report (lambda (condition stream)
             (format stream "~&~S names more than one valid variable in ~S."
-                    (ambiguous-variable-name-name condition)
-                    (ambiguous-variable-name-frame condition)))))
+                    (ambiguous-var-name-name condition)
+                    (ambiguous-var-name-frame condition)))))
 \f
 ;;;; errors and DEBUG-SIGNAL
 
 
 (define-condition unknown-debug-var (debug-error)
   ((debug-var :reader unknown-debug-var-debug-var :initarg :debug-var)
-   (debug-function :reader unknown-debug-var-debug-function
-                  :initarg :debug-function))
+   (debug-fun :reader unknown-debug-var-debug-fun
+             :initarg :debug-fun))
   (:report (lambda (condition stream)
             (format stream "~&~S is not in ~S."
                     (unknown-debug-var-debug-var condition)
-                    (unknown-debug-var-debug-function condition)))))
+                    (unknown-debug-var-debug-fun condition)))))
 
 (define-condition invalid-control-stack-pointer (debug-error)
   ()
             (fresh-line stream)
             (write-string "invalid control stack pointer" stream))))
 
-(define-condition frame-function-mismatch (debug-error)
-  ((code-location :reader frame-function-mismatch-code-location
+(define-condition frame-fun-mismatch (debug-error)
+  ((code-location :reader frame-fun-mismatch-code-location
                  :initarg :code-location)
-   (frame :reader frame-function-mismatch-frame :initarg :frame)
-   (form :reader frame-function-mismatch-form :initarg :form))
+   (frame :reader frame-fun-mismatch-frame :initarg :frame)
+   (form :reader frame-fun-mismatch-form :initarg :form))
   (:report (lambda (condition stream)
             (format
              stream
              "~&Form was preprocessed for ~S,~% but called on ~S:~%  ~S"
-             (frame-function-mismatch-code-location condition)
-             (frame-function-mismatch-frame condition)
-             (frame-function-mismatch-form condition)))))
+             (frame-fun-mismatch-code-location condition)
+             (frame-fun-mismatch-frame condition)
+             (frame-fun-mismatch-form condition)))))
 
 ;;; This signals debug-conditions. If they go unhandled, then signal
 ;;; an UNHANDLED-DEBUG-CONDITION error.
 ;;;; DEBUG-VARs
 
 ;;; These exist for caching data stored in packed binary form in
-;;; compiler debug-functions. Debug-functions store these.
+;;; compiler DEBUG-FUNs.
 (defstruct (debug-var (:constructor nil)
                      (:copier nil))
   ;; the name of the variable
-  (symbol (required-argument) :type symbol)
+  (symbol (missing-arg) :type symbol)
   ;; a unique integer identification relative to other variables with the same
   ;; symbol
-  (id 0 :type sb!c::index)
+  (id 0 :type index)
   ;; Does the variable always have a valid value?
   (alive-p nil :type boolean))
 (def!method print-object ((debug-var debug-var) stream)
   (print-unreadable-object (debug-var stream :type t :identity t)
     (format stream
-           "~S ~D"
+           "~S ~W"
            (debug-var-symbol debug-var)
            (debug-var-id debug-var))))
 
            (:constructor make-compiled-debug-var
                          (symbol id alive-p sc-offset save-sc-offset))
            (:copier nil))
-  ;; Storage class and offset. (unexported).
-  (sc-offset nil :type sb!c::sc-offset)
-  ;; Storage class and offset when saved somewhere.
-  (save-sc-offset nil :type (or sb!c::sc-offset null)))
+  ;; storage class and offset (unexported)
+  (sc-offset nil :type sb!c:sc-offset)
+  ;; storage class and offset when saved somewhere
+  (save-sc-offset nil :type (or sb!c:sc-offset null)))
 
 ;;;; frames
 
-;;; These represent call-frames on the stack.
+;;; These represent call frames on the stack.
 (defstruct (frame (:constructor nil)
                  (:copier nil))
   ;; the next frame up, or NIL when top frame
   ;; to the control stack for the given frame. This lets us get the
   ;; next frame down and the return-pc for that frame.
   (%down :unparsed :type (or frame (member nil :unparsed)))
-  ;; the debug-function for the function whose call this frame
-  ;; represents
-  (debug-function nil :type debug-function)
-  ;; the code-location to continue upon return to frame
+  ;; the DEBUG-FUN for the function whose call this frame represents
+  (debug-fun nil :type debug-fun)
+  ;; the CODE-LOCATION where the frame's DEBUG-FUN will continue
+  ;; running when program execution returns to this frame. If someone
+  ;; interrupted this frame, the result could be an unknown
+  ;; CODE-LOCATION.
   (code-location nil :type code-location)
   ;; an a-list of catch-tags to code-locations
   (%catches :unparsed :type (or list (member :unparsed)))
-  ;; pointer to frame on control stack. (unexported) When this frame
-  ;; is an interpreted-frame, this pointer is an index into the
-  ;; interpreter's stack.
+  ;; pointer to frame on control stack (unexported)
   pointer
   ;; This is the frame's number for prompt printing. Top is zero.
   (number 0 :type index))
 
-#!+sb-doc
-(setf (fdocumentation 'frame-up 'function)
-  "Return the frame immediately above frame on the stack. When frame is
-   the top of the stack, this returns nil.")
-
-#!+sb-doc
-(setf (fdocumentation 'frame-debug-function 'function)
-  "Return the debug-function for the function whose call frame represents.")
-
-#!+sb-doc
-(setf (fdocumentation 'frame-code-location 'function)
-  "Return the code-location where the frame's debug-function will continue
-   running when program execution returns to this frame. If someone
-   interrupted this frame, the result could be an unknown code-location.")
-
 (defstruct (compiled-frame
            (:include frame)
            (:constructor make-compiled-frame
-                         (pointer up debug-function code-location number
+                         (pointer up debug-fun code-location number
                                   &optional escaped))
            (:copier nil))
   ;; This indicates whether someone interrupted the frame.
   (print-unreadable-object (obj str :type t)
     (format str
            "~S~:[~;, interrupted~]"
-           (debug-function-name (frame-debug-function obj))
+           (debug-fun-name (frame-debug-fun obj))
            (compiled-frame-escaped obj))))
-
-(defstruct (interpreted-frame
-           (:include frame)
-           (:constructor make-interpreted-frame
-                         (pointer up debug-function code-location number
-                          real-frame closure))
-           (:copier nil))
-  ;; This points to the compiled-frame for SB!BYTECODE:INTERNAL-APPLY-LOOP.
-  (real-frame nil :type compiled-frame)
-  ;; This is the closed over data used by the interpreter.
-  (closure nil :type simple-vector))
-(def!method print-object ((obj interpreted-frame) str)
-  (print-unreadable-object (obj str :type t)
-    (prin1 (debug-function-name (frame-debug-function obj)) str)))
 \f
-;;;; DEBUG-FUNCTIONs
+;;;; DEBUG-FUNs
 
 ;;; These exist for caching data stored in packed binary form in
-;;; compiler debug-functions. *COMPILED-DEBUG-FUNCTIONS* maps a
-;;; SB!C::DEBUG-FUNCTION to a DEBUG-FUNCTION. There should only be one
-;;; DEBUG-FUNCTION in existence for any function; that is, all
-;;; code-locations and other objects that reference DEBUG-FUNCTIONs
-;;; point to unique objects. This is due to the overhead in cached
-;;; information.
-(defstruct (debug-function (:constructor nil)
-                          (:copier nil))
+;;; compiler DEBUG-FUNs. *COMPILED-DEBUG-FUNS* maps a SB!C::DEBUG-FUN
+;;; to a DEBUG-FUN. There should only be one DEBUG-FUN in existence
+;;; for any function; that is, all CODE-LOCATIONs and other objects
+;;; that reference DEBUG-FUNs point to unique objects. This is
+;;; due to the overhead in cached information.
+(defstruct (debug-fun (:constructor nil)
+                     (:copier nil))
   ;; some representation of the function arguments. See
-  ;; DEBUG-FUNCTION-LAMBDA-LIST.
+  ;; DEBUG-FUN-LAMBDA-LIST.
   ;; NOTE: must parse vars before parsing arg list stuff.
   (%lambda-list :unparsed)
   ;; cached DEBUG-VARS information (unexported).
   (blocks :unparsed :type (or simple-vector null (member :unparsed)))
   ;; the actual function if available
   (%function :unparsed :type (or null function (member :unparsed))))
-(def!method print-object ((obj debug-function) stream)
+(def!method print-object ((obj debug-fun) stream)
   (print-unreadable-object (obj stream :type t)
-    (prin1 (debug-function-name obj) stream)))
+    (prin1 (debug-fun-name obj) stream)))
 
-(defstruct (compiled-debug-function
-           (:include debug-function)
-           (:constructor %make-compiled-debug-function
+(defstruct (compiled-debug-fun
+           (:include debug-fun)
+           (:constructor %make-compiled-debug-fun
                          (compiler-debug-fun component))
            (:copier nil))
-  ;; compiler's dumped debug-function information (unexported)
-  (compiler-debug-fun nil :type sb!c::compiled-debug-function)
+  ;; compiler's dumped DEBUG-FUN information (unexported)
+  (compiler-debug-fun nil :type sb!c::compiled-debug-fun)
   ;; code object (unexported).
   component
-  ;; the :FUNCTION-START breakpoint (if any) used to facilitate
+  ;; the :FUN-START breakpoint (if any) used to facilitate
   ;; function end breakpoints
   (end-starter nil :type (or null breakpoint)))
 
-;;; This maps SB!C::COMPILED-DEBUG-FUNCTIONs to
-;;; COMPILED-DEBUG-FUNCTIONs, so we can get at cached stuff and not
-;;; duplicate COMPILED-DEBUG-FUNCTION structures.
-(defvar *compiled-debug-functions* (make-hash-table :test 'eq))
+;;; This maps SB!C::COMPILED-DEBUG-FUNs to
+;;; COMPILED-DEBUG-FUNs, so we can get at cached stuff and not
+;;; duplicate COMPILED-DEBUG-FUN structures.
+(defvar *compiled-debug-funs* (make-hash-table :test 'eq))
 
-;;; Make a COMPILED-DEBUG-FUNCTION for a SB!C::COMPILER-DEBUG-FUNCTION
+;;; Make a COMPILED-DEBUG-FUN for a SB!C::COMPILER-DEBUG-FUN
 ;;; and its component. This maps the latter to the former in
-;;; *COMPILED-DEBUG-FUNCTIONS*. If there already is a
-;;; COMPILED-DEBUG-FUNCTION, then this returns it from
-;;; *COMPILED-DEBUG-FUNCTIONS*.
-(defun make-compiled-debug-function (compiler-debug-fun component)
-  (or (gethash compiler-debug-fun *compiled-debug-functions*)
-      (setf (gethash compiler-debug-fun *compiled-debug-functions*)
-           (%make-compiled-debug-function compiler-debug-fun component))))
-
-(defstruct (bogus-debug-function
-           (:include debug-function)
-           (:constructor make-bogus-debug-function
-                         (%name &aux (%lambda-list nil) (%debug-vars nil)
-                                (blocks nil) (%function nil)))
+;;; *COMPILED-DEBUG-FUNS*. If there already is a
+;;; COMPILED-DEBUG-FUN, then this returns it from
+;;; *COMPILED-DEBUG-FUNS*.
+(defun make-compiled-debug-fun (compiler-debug-fun component)
+  (or (gethash compiler-debug-fun *compiled-debug-funs*)
+      (setf (gethash compiler-debug-fun *compiled-debug-funs*)
+           (%make-compiled-debug-fun compiler-debug-fun component))))
+
+(defstruct (bogus-debug-fun
+           (:include debug-fun)
+           (:constructor make-bogus-debug-fun
+                         (%name &aux
+                                (%lambda-list nil)
+                                (%debug-vars nil)
+                                (blocks nil)
+                                (%function nil)))
            (:copier nil))
   %name)
 
-(defvar *ir1-lambda-debug-function* (make-hash-table :test 'eq))
+(defvar *ir1-lambda-debug-fun* (make-hash-table :test 'eq))
 \f
 ;;;; DEBUG-BLOCKs
 
   (elsewhere-p nil :type boolean))
 (def!method print-object ((obj debug-block) str)
   (print-unreadable-object (obj str :type t)
-    (prin1 (debug-block-function-name obj) str)))
+    (prin1 (debug-block-fun-name obj) str)))
 
 #!+sb-doc
 (setf (fdocumentation 'debug-block-successors 'function)
-  "Returns the list of possible code-locations where execution may continue
+  "Return the list of possible code-locations where execution may continue
    when the basic-block represented by debug-block completes its execution.")
 
 #!+sb-doc
 (setf (fdocumentation 'debug-block-elsewhere-p 'function)
-  "Returns whether debug-block represents elsewhere code.")
+  "Return whether debug-block represents elsewhere code.")
 
 (defstruct (compiled-debug-block (:include debug-block)
                                 (:constructor
   ;; This is the component in which the breakpoint lies.
   component
   ;; This is the byte offset into the component.
-  (offset nil :type sb!c::index)
+  (offset nil :type index)
   ;; The original instruction replaced by the breakpoint.
   (instruction nil :type (or null (unsigned-byte 32)))
   ;; A list of user breakpoints at this location.
 (def!method print-object ((obj breakpoint-data) str)
   (print-unreadable-object (obj str :type t)
     (format str "~S at ~S"
-           (debug-function-name
-            (debug-function-from-pc (breakpoint-data-component obj)
-                                    (breakpoint-data-offset obj)))
+           (debug-fun-name
+            (debug-fun-from-pc (breakpoint-data-component obj)
+                               (breakpoint-data-offset obj)))
            (breakpoint-data-offset obj))))
 
 (defstruct (breakpoint (:constructor %make-breakpoint
                       (:copier nil))
   ;; This is the function invoked when execution encounters the
   ;; breakpoint. It takes a frame, the breakpoint, and optionally a
-  ;; list of values. Values are supplied for :FUNCTION-END breakpoints
+  ;; list of values. Values are supplied for :FUN-END breakpoints
   ;; as values to return for the function containing the breakpoint.
-  ;; :FUNCTION-END breakpoint hook-functions also take a cookie
+  ;; :FUN-END breakpoint hook-functions also take a cookie
   ;; argument. See COOKIE-FUN slot.
   (hook-function nil :type function)
-  ;; CODE-LOCATION or DEBUG-FUNCTION
-  (what nil :type (or code-location debug-function))
-  ;; :CODE-LOCATION, :FUNCTION-START, or :FUNCTION-END for that kind
+  ;; CODE-LOCATION or DEBUG-FUN
+  (what nil :type (or code-location debug-fun))
+  ;; :CODE-LOCATION, :FUN-START, or :FUN-END for that kind
   ;; of breakpoint. :UNKNOWN-RETURN-PARTNER if this is the partner of
   ;; a :code-location breakpoint at an :UNKNOWN-RETURN code-location.
-  (kind nil :type (member :code-location :function-start :function-end
+  (kind nil :type (member :code-location :fun-start :fun-end
                          :unknown-return-partner))
   ;; Status helps the user and the implementation.
   (status :inactive :type (member :active :inactive :deleted))
   ;; breakpoint for the other one, or NIL if this isn't at an
   ;; :UNKNOWN-RETURN code location.
   (unknown-return-partner nil :type (or null breakpoint))
-  ;; :FUNCTION-END breakpoints use a breakpoint at the :FUNCTION-START
+  ;; :FUN-END breakpoints use a breakpoint at the :FUN-START
   ;; to establish the end breakpoint upon function entry. We do this
   ;; by frobbing the LRA to jump to a special piece of code that
   ;; breaks and provides the return values for the returnee. This slot
   ;; and delete it.
   (start-helper nil :type (or null breakpoint))
   ;; This is a hook users supply to get a dynamically unique cookie
-  ;; for identifying :FUNCTION-END breakpoint executions. That is, if
-  ;; there is one :FUNCTION-END breakpoint, but there may be multiple
+  ;; for identifying :FUN-END breakpoint executions. That is, if
+  ;; there is one :FUN-END breakpoint, but there may be multiple
   ;; pending calls of its function on the stack. This function takes
   ;; the cookie, and the hook-function takes the cookie too.
   (cookie-fun nil :type (or null function))
              "~S~:[~;~:*~S~]"
              (etypecase what
                (code-location what)
-               (debug-function (debug-function-name what)))
+               (debug-fun (debug-fun-name what)))
              (etypecase what
                (code-location nil)
-               (debug-function (breakpoint-kind obj)))))))
-
-#!+sb-doc
-(setf (fdocumentation 'breakpoint-hook-function 'function)
-  "Returns the breakpoint's function the system calls when execution encounters
-   the breakpoint, and it is active. This is SETF'able.")
-
-#!+sb-doc
-(setf (fdocumentation 'breakpoint-what 'function)
-  "Returns the breakpoint's what specification.")
-
-#!+sb-doc
-(setf (fdocumentation 'breakpoint-kind 'function)
-  "Returns the breakpoint's kind specification.")
-
+               (debug-fun (breakpoint-kind obj)))))))
+\f
 ;;;; CODE-LOCATIONs
 
 (defstruct (code-location (:constructor nil)
                          (:copier nil))
-  ;; This is the debug-function containing code-location.
-  (debug-function nil :type debug-function)
+  ;; the DEBUG-FUN containing this CODE-LOCATION
+  (debug-fun nil :type debug-fun)
   ;; This is initially :UNSURE. Upon first trying to access an
-  ;; :unparsed slot, if the data is unavailable, then this becomes t,
+  ;; :UNPARSED slot, if the data is unavailable, then this becomes T,
   ;; and the code-location is unknown. If the data is available, this
-  ;; becomes nil, a known location. We can't use a separate type
+  ;; becomes NIL, a known location. We can't use a separate type
   ;; code-location for this since we must return code-locations before
   ;; we can tell whether they're known or unknown. For example, when
   ;; parsing the stack, we don't want to unpack all the variables and
   ;; blocks just to make frames.
   (%unknown-p :unsure :type (member t nil :unsure))
-  ;; This is the debug-block containing code-location. Possibly toss
-  ;; this out and just find it in the blocks cache in debug-function.
+  ;; the DEBUG-BLOCK containing CODE-LOCATION. XXX Possibly toss this
+  ;; out and just find it in the blocks cache in DEBUG-FUN.
   (%debug-block :unparsed :type (or debug-block (member :unparsed)))
   ;; This is the number of forms processed by the compiler or loader
-  ;; before the top-level form containing this code-location.
-  (%tlf-offset :unparsed :type (or sb!c::index (member :unparsed)))
+  ;; before the top level form containing this code-location.
+  (%tlf-offset :unparsed :type (or index (member :unparsed)))
   ;; This is the depth-first number of the node that begins
-  ;; code-location within its top-level form.
-  (%form-number :unparsed :type (or sb!c::index (member :unparsed))))
+  ;; code-location within its top level form.
+  (%form-number :unparsed :type (or index (member :unparsed))))
 (def!method print-object ((obj code-location) str)
   (print-unreadable-object (obj str :type t)
-    (prin1 (debug-function-name (code-location-debug-function obj))
+    (prin1 (debug-fun-name (code-location-debug-fun obj))
           str)))
 
-#!+sb-doc
-(setf (fdocumentation 'code-location-debug-function 'function)
-  "Returns the debug-function representing information about the function
-   corresponding to the code-location.")
-
 (defstruct (compiled-code-location
            (:include code-location)
            (:constructor make-known-code-location
-                         (pc debug-function %tlf-offset %form-number
+                         (pc debug-fun %tlf-offset %form-number
                              %live-set kind &aux (%unknown-p nil)))
-           (:constructor make-compiled-code-location (pc debug-function))
+           (:constructor make-compiled-code-location (pc debug-fun))
            (:copier nil))
-  ;; This is an index into debug-function's component slot.
-  (pc nil :type sb!c::index)
-  ;; This is a bit-vector indexed by a variable's position in
-  ;; DEBUG-FUNCTION-DEBUG-VARS indicating whether the variable has a
+  ;; an index into DEBUG-FUN's component slot
+  (pc nil :type index)
+  ;; a bit-vector indexed by a variable's position in
+  ;; DEBUG-FUN-DEBUG-VARS indicating whether the variable has a
   ;; valid value at this code-location. (unexported).
   (%live-set :unparsed :type (or simple-bit-vector (member :unparsed)))
   ;; (unexported) To see SB!C::LOCATION-KIND, do
 \f
 ;;;; DEBUG-SOURCEs
 
-;;; Return the number of top-level forms processed by the compiler
+;;; Return the number of top level forms processed by the compiler
 ;;; before compiling this source. If this source is uncompiled, this
 ;;; is zero. This may be zero even if the source is compiled since the
 ;;; first form in the first file compiled in one compilation, for
 ;;; example, must have a root number of zero -- the compiler saw no
-;;; other top-level forms before it.
+;;; other top level forms before it.
 (defun debug-source-root-number (debug-source)
   (sb!c::debug-source-source-root debug-source))
 \f
 ;;;; frames
 
 ;;; This is used in FIND-ESCAPED-FRAME and with the bogus components
-;;; and LRAs used for :function-end breakpoints. When a components
-;;; debug-info slot is :bogus-lra, then the real-lra-slot contains the
+;;; and LRAs used for :FUN-END breakpoints. When a components
+;;; debug-info slot is :BOGUS-LRA, then the REAL-LRA-SLOT contains the
 ;;; real component to continue executing, as opposed to the bogus
 ;;; component which appeared in some frame's LRA location.
 (defconstant real-lra-slot sb!vm:code-constants-offset)
 (defun current-fp () (current-fp))
 (defun stack-ref (s n) (stack-ref s n))
 (defun %set-stack-ref (s n value) (%set-stack-ref s n value))
-(defun function-code-header (fun) (function-code-header fun))
+(defun fun-code-header (fun) (fun-code-header fun))
 (defun lra-code-header (lra) (lra-code-header lra))
 (defun make-lisp-obj (value) (make-lisp-obj value))
 (defun get-lisp-obj-address (thing) (get-lisp-obj-address thing))
-(defun function-word-offset (fun) (function-word-offset fun))
+(defun fun-word-offset (fun) (fun-word-offset fun))
 
 #!-sb-fluid (declaim (inline cstack-pointer-valid-p))
 (defun cstack-pointer-valid-p (x)
        (zerop (logand (sap-int x) #b11))))
 
 #!+x86
-(sb!alien:def-alien-routine component-ptr-from-pc (system-area-pointer)
+(sb!alien:define-alien-routine component-ptr-from-pc (system-area-pointer)
   (pc system-area-pointer))
 
 #!+x86
 (defun component-from-component-ptr (component-ptr)
   (declare (type system-area-pointer component-ptr))
   (make-lisp-obj (logior (sap-int component-ptr)
-                        sb!vm:other-pointer-type)))
+                        sb!vm:other-pointer-lowtag)))
 
 ;;;; X86 support
 
   (let ((component-ptr (component-ptr-from-pc pc)))
     (unless (sap= component-ptr (int-sap #x0))
        (let* ((code (component-from-component-ptr component-ptr))
-             (code-header-len (* (get-header-data code) sb!vm:word-bytes))
+             (code-header-len (* (get-header-data code) sb!vm:n-word-bytes))
              (pc-offset (- (sap-int pc)
                            (- (get-lisp-obj-address code)
-                              sb!vm:other-pointer-type)
+                              sb!vm:other-pointer-lowtag)
                            code-header-len)))
 ;       (format t "c-lra-fpc ~A ~A ~A~%" pc code pc-offset)
         (values pc-offset code)))))
     nil)
    (t
     ;; Check the two possible frame pointers.
-    (let ((lisp-ocfp (sap-ref-sap fp (- (* (1+ sb!vm::ocfp-save-offset) 4))))
-         (lisp-ra (sap-ref-sap fp (- (* (1+ sb!vm::return-pc-save-offset)
+    (let ((lisp-ocfp (sap-ref-sap fp (- (* (1+ ocfp-save-offset) 4))))
+         (lisp-ra (sap-ref-sap fp (- (* (1+ return-pc-save-offset)
                                         4))))
-         (c-ocfp (sap-ref-sap fp (* 0 sb!vm:word-bytes)))
-         (c-ra (sap-ref-sap fp (* 1 sb!vm:word-bytes))))
+         (c-ocfp (sap-ref-sap fp (* 0 sb!vm:n-word-bytes)))
+         (c-ra (sap-ref-sap fp (* 1 sb!vm:n-word-bytes))))
       (cond ((and (sap> lisp-ocfp fp) (cstack-pointer-valid-p lisp-ocfp)
                  (ra-pointer-valid-p lisp-ra)
                  (sap> c-ocfp fp) (cstack-pointer-valid-p c-ocfp)
 ;;; Return the top frame of the control stack as it was before calling
 ;;; this function.
 (defun top-frame ()
-  (/show0 "entering TOP-FRAME")
+  (/noshow0 "entering TOP-FRAME")
   (multiple-value-bind (fp pc) (%caller-frame-and-pc)
-    (possibly-an-interpreted-frame
-     (compute-calling-frame (descriptor-sap fp) pc nil)
-     nil)))
+    (compute-calling-frame (descriptor-sap fp) pc nil)))
 
 ;;; Flush all of the frames above FRAME, and renumber all the frames
 ;;; below FRAME.
 ;;; Return the frame immediately below FRAME on the stack; or when
 ;;; FRAME is the bottom of the stack, return NIL.
 (defun frame-down (frame)
-  (/show0 "entering FRAME-DOWN")
+  (/noshow0 "entering FRAME-DOWN")
   ;; We have to access the old-fp and return-pc out of frame and pass
   ;; them to COMPUTE-CALLING-FRAME.
   (let ((down (frame-%down frame)))
     (if (eq down :unparsed)
-       (let* ((real (frame-real-frame frame))
-              (debug-fun (frame-debug-function real)))
-         (/show0 "in DOWN :UNPARSED case")
+       (let ((debug-fun (frame-debug-fun frame)))
+         (/noshow0 "in DOWN :UNPARSED case")
          (setf (frame-%down frame)
                (etypecase debug-fun
-                 (compiled-debug-function
-                  (let ((c-d-f (compiled-debug-function-compiler-debug-fun
+                 (compiled-debug-fun
+                  (let ((c-d-f (compiled-debug-fun-compiler-debug-fun
                                 debug-fun)))
-                    (possibly-an-interpreted-frame
-                     (compute-calling-frame
-                      (descriptor-sap
-                       (get-context-value
-                        real sb!vm::ocfp-save-offset
-                        (sb!c::compiled-debug-function-old-fp c-d-f)))
+                    (compute-calling-frame
+                     (descriptor-sap
                       (get-context-value
-                       real sb!vm::lra-save-offset
-                       (sb!c::compiled-debug-function-return-pc c-d-f))
-                      frame)
+                       frame ocfp-save-offset
+                       (sb!c::compiled-debug-fun-old-fp c-d-f)))
+                     (get-context-value
+                      frame lra-save-offset
+                      (sb!c::compiled-debug-fun-return-pc c-d-f))
                      frame)))
-                 (bogus-debug-function
-                  (let ((fp (frame-pointer real)))
+                 (bogus-debug-fun
+                  (let ((fp (frame-pointer frame)))
                     (when (cstack-pointer-valid-p fp)
                       #!+x86
                        (multiple-value-bind (ra ofp) (x86-call-context fp)
                        #!-x86
                       (compute-calling-frame
                        #!-alpha
-                       (sap-ref-sap fp (* sb!vm::ocfp-save-offset
-                                          sb!vm:word-bytes))
+                       (sap-ref-sap fp (* ocfp-save-offset
+                                          sb!vm:n-word-bytes))
                        #!+alpha
                        (int-sap
-                        (sap-ref-32 fp (* sb!vm::ocfp-save-offset
-                                          sb!vm:word-bytes)))
+                        (sap-ref-32 fp (* ocfp-save-offset
+                                          sb!vm:n-word-bytes)))
 
-                       (stack-ref fp sb!vm::lra-save-offset)
+                       (stack-ref fp lra-save-offset)
 
                        frame)))))))
        down)))
 #!-x86
 (defun get-context-value (frame stack-slot loc)
   (declare (type compiled-frame frame) (type unsigned-byte stack-slot)
-          (type sb!c::sc-offset loc))
+          (type sb!c:sc-offset loc))
   (let ((pointer (frame-pointer frame))
        (escaped (compiled-frame-escaped frame)))
     (if escaped
 #!+x86
 (defun get-context-value (frame stack-slot loc)
   (declare (type compiled-frame frame) (type unsigned-byte stack-slot)
-          (type sb!c::sc-offset loc))
+          (type sb!c:sc-offset loc))
   (let ((pointer (frame-pointer frame))
        (escaped (compiled-frame-escaped frame)))
     (if escaped
        (sub-access-debug-var-slot pointer loc escaped)
        (ecase stack-slot
-         (#.sb!vm::ocfp-save-offset
+         (#.ocfp-save-offset
           (stack-ref pointer stack-slot))
-         (#.sb!vm::lra-save-offset
+         (#.lra-save-offset
           (sap-ref-sap pointer (- (* (1+ stack-slot) 4))))))))
 
 #!-x86
 (defun (setf get-context-value) (value frame stack-slot loc)
   (declare (type compiled-frame frame) (type unsigned-byte stack-slot)
-          (type sb!c::sc-offset loc))
+          (type sb!c:sc-offset loc))
   (let ((pointer (frame-pointer frame))
        (escaped (compiled-frame-escaped frame)))
     (if escaped
 #!+x86
 (defun (setf get-context-value) (value frame stack-slot loc)
   (declare (type compiled-frame frame) (type unsigned-byte stack-slot)
-          (type sb!c::sc-offset loc))
+          (type sb!c:sc-offset loc))
   (let ((pointer (frame-pointer frame))
        (escaped (compiled-frame-escaped frame)))
     (if escaped
        (sub-set-debug-var-slot pointer loc value escaped)
        (ecase stack-slot
-         (#.sb!vm::ocfp-save-offset
+         (#.ocfp-save-offset
           (setf (stack-ref pointer stack-slot) value))
-         (#.sb!vm::lra-save-offset
+         (#.lra-save-offset
           (setf (sap-ref-sap pointer (- (* (1+ stack-slot) 4))) value))))))
 
-;;; This doesn't do anything in sbcl-0.7.0, since the functionality
-;;; was lost in the switch from IR1 interpreter to bytecode interpreter.
-;;; However, it might be revived someday. (See the FIXME for
-;;; POSSIBLY-AN-INTERPRETED-FRAME.)
-;;;
-;;; (defvar *debugging-interpreter* nil
-;;;   #!+sb-doc
-;;;   "When set, the debugger foregoes making interpreted frames, so you can
-;;;    debug the functions that manifest the interpreter.")
-
-;;; Note: In CMU CL with the IR1 interpreter, this did
-;;;    This takes a newly computed frame, FRAME, and the frame above it
-;;;    on the stack, UP-FRAME, which is possibly NIL. FRAME is NIL when
-;;;    we hit the bottom of the control stack. When FRAME represents a
-;;;    call to SB!BYTECODE::INTERNAL-APPLY-LOOP, we make an interpreted frame
-;;;    to replace FRAME. The interpreted frame points to FRAME.
-;;; But with SBCL's switch to byte-interpreter-only, this is functionality
-;;; wasn't maintained, so this is just a placeholder, and when you
-;;; try to "debug byte code" you end up debugging the byte interpreter
-;;; instead.
-;;; 
-;;; (It might be good to update the old CMU CL functionality so that
-;;; you can really debug byte code instead of seeing a bunch of
-;;; confusing byte interpreter implementation stuff, so I've left the
-;;; placeholder in place. But be aware that doing so is a big messy
-;;; job: grep for 'interpreted-debug-' in the sbcl-0.6.13 sources to
-;;; see what you're getting into. -- WHN)
-(defun possibly-an-interpreted-frame (frame up-frame)
-
-  ;; new SBCL code, not ambitious enough to do anything tricky like
-  ;; hiding the byte interpreter when debugging
-  (declare (ignore up-frame))
-  (/show "doing trivial POSSIBLY-AN-INTERPRETED-FRAME")
-  frame
-
-  ;; old CMU CL code to hide IR1 interpreter when debugging:
-  ;;
-  ;;(if (or (not frame)
-  ;;        (not (eq (debug-function-name (frame-debug-function
-  ;;                                       frame))
-  ;;                 'sb!bytecode::internal-apply-loop))
-  ;;        *debugging-interpreter*
-  ;;        (compiled-frame-escaped frame))
-  ;;    frame
-  ;;    (flet ((get-var (name location)
-  ;;             (let ((vars (sb!di:ambiguous-debug-vars
-  ;;                          (sb!di:frame-debug-function frame) name)))
-  ;;               (when (or (null vars) (> (length vars) 1))
-  ;;                 (error "zero or more than one ~A variable in ~
-  ;;                         SB!BYTECODE::INTERNAL-APPLY-LOOP"
-  ;;                        (string-downcase name)))
-  ;;               (if (eq (debug-var-validity (car vars) location)
-  ;;                       :valid)
-  ;;                   (car vars)))))
-  ;;      (let* ((code-loc (frame-code-location frame))
-  ;;             (ptr-var (get-var "FRAME-PTR" code-loc))
-  ;;             (node-var (get-var "NODE" code-loc))
-  ;;             (closure-var (get-var "CLOSURE" code-loc)))
-  ;;        (if (and ptr-var node-var closure-var)
-  ;;            (let* ((node (debug-var-value node-var frame))
-  ;;                   (d-fun (make-interpreted-debug-function
-  ;;                           (sb!c::block-home-lambda (sb!c::node-block
-  ;;                                                     node)))))
-  ;;              (make-interpreted-frame
-  ;;               (debug-var-value ptr-var frame)
-  ;;               up-frame
-  ;;               d-fun
-  ;;               (make-interpreted-code-location node d-fun)
-  ;;               (frame-number frame)
-  ;;               frame
-  ;;               (debug-var-value closure-var frame)))
-  ;;            frame))))
-  )
-
 ;;; This returns a frame for the one existing in time immediately
 ;;; prior to the frame referenced by current-fp. This is current-fp's
 ;;; caller or the next frame down the control stack. If there is no
-;;; down frame, this returns nil for the bottom of the stack. Up-frame
-;;; is the up link for the resulting frame object, and it is nil when
+;;; down frame, this returns NIL for the bottom of the stack. UP-FRAME
+;;; is the up link for the resulting frame object, and it is null when
 ;;; we call this to get the top of the stack.
 ;;;
 ;;; The current frame contains the pointer to the temporally previous
                (if (fixnump lra)
                    (let ((fp (frame-pointer up-frame)))
                      (values lra
-                             (stack-ref fp (1+ sb!vm::lra-save-offset))))
+                             (stack-ref fp (1+ lra-save-offset))))
                    (values (get-header-data lra)
                            (lra-code-header lra)))
              (if code
                  (values code
                          (* (1+ (- word-offset (get-header-data code)))
-                            sb!vm:word-bytes)
+                            sb!vm:n-word-bytes)
                          nil)
                  (values :foreign-function
                          0
            (compute-calling-frame caller real-lra up-frame))
          (let ((d-fun (case code
                         (:undefined-function
-                         (make-bogus-debug-function
+                         (make-bogus-debug-fun
                           "undefined function"))
                         (:foreign-function
-                         (make-bogus-debug-function
+                         (make-bogus-debug-fun
                           "foreign function call land"))
                         ((nil)
-                         (make-bogus-debug-function
+                         (make-bogus-debug-fun
                           "bogus stack frame"))
                         (t
-                         (debug-function-from-pc code pc-offset)))))
+                         (debug-fun-from-pc code pc-offset)))))
            (make-compiled-frame caller up-frame d-fun
                                 (code-location-from-pc d-fun pc-offset
                                                        escaped)
                                 (if up-frame (1+ (frame-number up-frame)) 0)
                                 escaped))))))
-
 #!+x86
 (defun compute-calling-frame (caller ra up-frame)
   (declare (type system-area-pointer caller ra))
-  (/show0 "entering COMPUTE-CALLING-FRAME")
+  (/noshow0 "entering COMPUTE-CALLING-FRAME")
   (when (cstack-pointer-valid-p caller)
-    (/show0 "in WHEN")
+    (/noshow0 "in WHEN")
     ;; First check for an escaped frame.
     (multiple-value-bind (code pc-offset escaped) (find-escaped-frame caller)
-      (/show0 "at COND")
+      (/noshow0 "at COND")
       (cond (code
-            (/show0 "in CODE clause")
+            (/noshow0 "in CODE clause")
             ;; If it's escaped it may be a function end breakpoint trap.
             (when (and (code-component-p code)
                        (eq (%code-debug-info code) :bogus-lra))
               (setq code (code-header-ref code real-lra-slot))
               (aver code)))
            (t
-            (/show0 "in T clause")
+            (/noshow0 "in T clause")
             ;; not escaped
             (multiple-value-setq (pc-offset code)
               (compute-lra-data-from-pc ra))
 
       (let ((d-fun (case code
                     (:undefined-function
-                     (make-bogus-debug-function
+                     (make-bogus-debug-fun
                       "undefined function"))
                     (:foreign-function
-                     (make-bogus-debug-function
+                     (make-bogus-debug-fun
                       "foreign function call land"))
                     ((nil)
-                     (make-bogus-debug-function
+                     (make-bogus-debug-fun
                       "bogus stack frame"))
                     (t
-                     (debug-function-from-pc code pc-offset)))))
-       (/show0 "returning MAKE-COMPILED-FRAME from COMPUTE-CALLING-FRAME")
+                     (debug-fun-from-pc code pc-offset)))))
+       (/noshow0 "returning MAKE-COMPILED-FRAME from COMPUTE-CALLING-FRAME")
        (make-compiled-frame caller up-frame d-fun
                             (code-location-from-pc d-fun pc-offset
                                                    escaped)
 #!+x86
 (defun find-escaped-frame (frame-pointer)
   (declare (type system-area-pointer frame-pointer))
-  (/show0 "entering FIND-ESCAPED-FRAME")
+  (/noshow0 "entering FIND-ESCAPED-FRAME")
   (dotimes (index *free-interrupt-context-index* (values nil 0 nil))
     (sb!alien:with-alien
        ((lisp-interrupt-contexts (array (* os-context-t) nil) :extern))
-      (/show0 "at head of WITH-ALIEN")
+      (/noshow0 "at head of WITH-ALIEN")
       (let ((context (sb!alien:deref lisp-interrupt-contexts index)))
-       (/show0 "got CONTEXT")
+       (/noshow0 "got CONTEXT")
        (when (= (sap-int frame-pointer)
                 (sb!vm:context-register context sb!vm::cfp-offset))
          (without-gcing
-          (/show0 "in WITHOUT-GCING")
+          (/noshow0 "in WITHOUT-GCING")
           (let* ((component-ptr (component-ptr-from-pc
                                  (sb!vm:context-pc context)))
                  (code (unless (sap= component-ptr (int-sap #x0))
                          (component-from-component-ptr component-ptr))))
-            (/show0 "got CODE")
+            (/noshow0 "got CODE")
             (when (null code)
               (return (values code 0 context)))
             (let* ((code-header-len (* (get-header-data code)
-                                       sb!vm:word-bytes))
+                                       sb!vm:n-word-bytes))
                    (pc-offset
                     (- (sap-int (sb!vm:context-pc context))
                        (- (get-lisp-obj-address code)
-                          sb!vm:other-pointer-type)
+                          sb!vm:other-pointer-lowtag)
                        code-header-len)))
-              (/show "got PC-OFFSET")
+              (/noshow "got PC-OFFSET")
               (unless (<= 0 pc-offset
                           (* (code-header-ref code sb!vm:code-code-size-slot)
-                             sb!vm:word-bytes))
+                             sb!vm:n-word-bytes))
                 ;; We were in an assembly routine. Therefore, use the
                 ;; LRA as the pc.
                 ;;
                 ;; FIXME: Should this be WARN or ERROR or what?
                 (format t "** pc-offset ~S not in code obj ~S?~%"
                         pc-offset code))
-              (/show0 "returning from FIND-ESCAPED-FRAME")
+              (/noshow0 "returning from FIND-ESCAPED-FRAME")
               (return
                (values code pc-offset context))))))))))
 
             (when (symbolp code)
               (return (values code 0 scp)))
             (let* ((code-header-len (* (get-header-data code)
-                                       sb!vm:word-bytes))
+                                       sb!vm:n-word-bytes))
                    (pc-offset
                     (- (sap-int (sb!vm:context-pc scp))
                        (- (get-lisp-obj-address code)
-                          sb!vm:other-pointer-type)
+                          sb!vm:other-pointer-lowtag)
                        code-header-len)))
               ;; Check to see whether we were executing in a branch
               ;; delay slot.
               #!+(or pmax sgi) ; pmax only (and broken anyway)
               (when (logbitp 31 (sb!alien:slot scp '%mips::sc-cause))
-                (incf pc-offset sb!vm:word-bytes))
+                (incf pc-offset sb!vm:n-word-bytes))
               (unless (<= 0 pc-offset
                           (* (code-header-ref code sb!vm:code-code-size-slot)
-                             sb!vm:word-bytes))
+                             sb!vm:n-word-bytes))
                 ;; We were in an assembly routine. Therefore, use the
                 ;; LRA as the pc.
                 (setf pc-offset
   (declare (type (unsigned-byte 32) bits))
   (let ((object (make-lisp-obj bits)))
     (if (functionp object)
-       (or (function-code-header object)
+       (or (fun-code-header object)
            :undefined-function)
-       (let ((lowtag (get-lowtag object)))
-         (if (= lowtag sb!vm:other-pointer-type)
-             (let ((type (get-type object)))
-               (cond ((= type sb!vm:code-header-type)
+       (let ((lowtag (lowtag-of object)))
+         (if (= lowtag sb!vm:other-pointer-lowtag)
+             (let ((widetag (widetag-of object)))
+               (cond ((= widetag sb!vm:code-header-widetag)
                       object)
-                     ((= type sb!vm:return-pc-header-type)
+                     ((= widetag sb!vm:return-pc-header-widetag)
                       (lra-code-header object))
                      (t
                       nil))))))))
 \f
 ;;;; frame utilities
 
-;;; This returns a COMPILED-DEBUG-FUNCTION for code and pc. We fetch
-;;; the SB!C::DEBUG-INFO and run down its function-map to get a
-;;; SB!C::COMPILED-DEBUG-FUNCTION from the pc. The result only needs
-;;; to reference the component, for function constants, and the
-;;; SB!C::COMPILED-DEBUG-FUNCTION.
-(defun debug-function-from-pc (component pc)
+;;; This returns a COMPILED-DEBUG-FUN for COMPONENT and PC. We fetch the
+;;; SB!C::DEBUG-INFO and run down its FUN-MAP to get a
+;;; SB!C::COMPILED-DEBUG-FUN from the PC. The result only needs to
+;;; reference the COMPONENT, for function constants, and the
+;;; SB!C::COMPILED-DEBUG-FUN.
+(defun debug-fun-from-pc (component pc)
   (let ((info (%code-debug-info component)))
     (cond
      ((not info)
       (debug-signal 'no-debug-info :code-component component))
      ((eq info :bogus-lra)
-      (make-bogus-debug-function "function end breakpoint"))
+      (make-bogus-debug-fun "function end breakpoint"))
      (t
-      (let* ((function-map (get-debug-info-function-map info))
-            (len (length function-map)))
-       (declare (simple-vector function-map))
+      (let* ((fun-map (sb!c::compiled-debug-info-fun-map info))
+            (len (length fun-map)))
+       (declare (type simple-vector fun-map))
        (if (= len 1)
-           (make-compiled-debug-function (svref function-map 0) component)
+           (make-compiled-debug-fun (svref fun-map 0) component)
            (let ((i 1)
                  (elsewhere-p
-                  (>= pc (sb!c::compiled-debug-function-elsewhere-pc
-                          (svref function-map 0)))))
+                  (>= pc (sb!c::compiled-debug-fun-elsewhere-pc
+                          (svref fun-map 0)))))
              (declare (type sb!int:index i))
              (loop
                (when (or (= i len)
                          (< pc (if elsewhere-p
-                                   (sb!c::compiled-debug-function-elsewhere-pc
-                                    (svref function-map (1+ i)))
-                                   (svref function-map i))))
-                 (return (make-compiled-debug-function
-                          (svref function-map (1- i))
+                                   (sb!c::compiled-debug-fun-elsewhere-pc
+                                    (svref fun-map (1+ i)))
+                                   (svref fun-map i))))
+                 (return (make-compiled-debug-fun
+                          (svref fun-map (1- i))
                           component)))
                (incf i 2)))))))))
 
-;;; This returns a code-location for the COMPILED-DEBUG-FUNCTION,
+;;; This returns a code-location for the COMPILED-DEBUG-FUN,
 ;;; DEBUG-FUN, and the pc into its code vector. If we stopped at a
 ;;; breakpoint, find the CODE-LOCATION for that breakpoint. Otherwise,
 ;;; make an :UNSURE code location, so it can be filled in when we
 ;;; figure out what is going on.
 (defun code-location-from-pc (debug-fun pc escaped)
-  (or (and (compiled-debug-function-p debug-fun)
+  (or (and (compiled-debug-fun-p debug-fun)
           escaped
           (let ((data (breakpoint-data
-                       (compiled-debug-function-component debug-fun)
+                       (compiled-debug-fun-component debug-fun)
                        pc nil)))
             (when (and data (breakpoint-data-breakpoints data))
               (let ((what (breakpoint-what
 ;;; CODE-LOCATIONs at which execution would continue with frame as the
 ;;; top frame if someone threw to the corresponding tag.
 (defun frame-catches (frame)
-  (let ((catch (descriptor-sap *current-catch-block*))
-       (res nil)
-       (fp (frame-pointer (frame-real-frame frame))))
-    (loop
-      (when (zerop (sap-int catch)) (return (nreverse res)))
-      (when (sap= fp
-                 #!-alpha
-                 (sap-ref-sap catch
-                                     (* sb!vm:catch-block-current-cont-slot
-                                        sb!vm:word-bytes))
-                 #!+alpha
-                 (:int-sap
-                  (sap-ref-32 catch
-                                     (* sb!vm:catch-block-current-cont-slot
-                                        sb!vm:word-bytes))))
-       (let* (#!-x86
-              (lra (stack-ref catch sb!vm:catch-block-entry-pc-slot))
-              #!+x86
-              (ra (sap-ref-sap
-                   catch (* sb!vm:catch-block-entry-pc-slot
-                            sb!vm:word-bytes)))
-              #!-x86
-              (component
-               (stack-ref catch sb!vm:catch-block-current-code-slot))
-              #!+x86
-              (component (component-from-component-ptr
-                          (component-ptr-from-pc ra)))
-              (offset
-               #!-x86
-               (* (- (1+ (get-header-data lra))
-                     (get-header-data component))
-                  sb!vm:word-bytes)
-               #!+x86
-               (- (sap-int ra)
-                  (- (get-lisp-obj-address component)
-                     sb!vm:other-pointer-type)
-                  (* (get-header-data component) sb!vm:word-bytes))))
-         (push (cons #!-x86
-                     (stack-ref catch sb!vm:catch-block-tag-slot)
-                     #!+x86
-                     (make-lisp-obj
-                      (sap-ref-32 catch (* sb!vm:catch-block-tag-slot
-                                                  sb!vm:word-bytes)))
-                     (make-compiled-code-location
-                      offset (frame-debug-function frame)))
-               res)))
-      (setf catch
-           #!-alpha
-           (sap-ref-sap catch
-                               (* sb!vm:catch-block-previous-catch-slot
-                                  sb!vm:word-bytes))
-           #!+alpha
-           (:int-sap
-            (sap-ref-32 catch
-                               (* sb!vm:catch-block-previous-catch-slot
-                                  sb!vm:word-bytes)))))))
-
-;;; If an interpreted frame, return the real frame, otherwise frame.
-(defun frame-real-frame (frame)
-  (etypecase frame
-    (compiled-frame frame)
-    (interpreted-frame (interpreted-frame-real-frame frame))))
+  (let ((catch (descriptor-sap sb!vm:*current-catch-block*))
+       (reversed-result nil)
+       (fp (frame-pointer frame)))
+    (loop until (zerop (sap-int catch))
+         finally (return (nreverse reversed-result))
+         do
+         (when (sap= fp
+                     #!-alpha
+                     (sap-ref-sap catch
+                                  (* sb!vm:catch-block-current-cont-slot
+                                     sb!vm:n-word-bytes))
+                     #!+alpha
+                     (int-sap
+                      (sap-ref-32 catch
+                                  (* sb!vm:catch-block-current-cont-slot
+                                     sb!vm:n-word-bytes))))
+           (let* (#!-x86
+                  (lra (stack-ref catch sb!vm:catch-block-entry-pc-slot))
+                  #!+x86
+                  (ra (sap-ref-sap
+                       catch (* sb!vm:catch-block-entry-pc-slot
+                                sb!vm:n-word-bytes)))
+                  #!-x86
+                  (component
+                   (stack-ref catch sb!vm:catch-block-current-code-slot))
+                  #!+x86
+                  (component (component-from-component-ptr
+                              (component-ptr-from-pc ra)))
+                  (offset
+                   #!-x86
+                   (* (- (1+ (get-header-data lra))
+                         (get-header-data component))
+                      sb!vm:n-word-bytes)
+                   #!+x86
+                   (- (sap-int ra)
+                      (- (get-lisp-obj-address component)
+                         sb!vm:other-pointer-lowtag)
+                      (* (get-header-data component) sb!vm:n-word-bytes))))
+             (push (cons #!-x86
+                         (stack-ref catch sb!vm:catch-block-tag-slot)
+                         #!+x86
+                         (make-lisp-obj
+                          (sap-ref-32 catch (* sb!vm:catch-block-tag-slot
+                                               sb!vm:n-word-bytes)))
+                         (make-compiled-code-location
+                          offset (frame-debug-fun frame)))
+                   reversed-result)))
+         (setf catch
+               #!-alpha
+               (sap-ref-sap catch
+                            (* sb!vm:catch-block-previous-catch-slot
+                               sb!vm:n-word-bytes))
+               #!+alpha
+               (int-sap
+                (sap-ref-32 catch
+                            (* sb!vm:catch-block-previous-catch-slot
+                               sb!vm:n-word-bytes)))))))
 \f
-;;;; operations on DEBUG-FUNCTIONs
+;;;; operations on DEBUG-FUNs
 
-;;; Execute the forms in a context with block-var bound to each
-;;; debug-block in debug-function successively. Result is an optional
-;;; form to execute for return values, and DO-DEBUG-FUNCTION-BLOCKS
+;;; Execute the forms in a context with BLOCK-VAR bound to each
+;;; DEBUG-BLOCK in DEBUG-FUN successively. Result is an optional
+;;; form to execute for return values, and DO-DEBUG-FUN-BLOCKS
 ;;; returns nil if there is no result form. This signals a
-;;; no-debug-blocks condition when the debug-function lacks
-;;; debug-block information.
-(defmacro do-debug-function-blocks ((block-var debug-function &optional result)
-                                   &body body)
+;;; NO-DEBUG-BLOCKS condition when the DEBUG-FUN lacks
+;;; DEBUG-BLOCK information.
+(defmacro do-debug-fun-blocks ((block-var debug-fun &optional result)
+                              &body body)
   (let ((blocks (gensym))
        (i (gensym)))
-    `(let ((,blocks (debug-function-debug-blocks ,debug-function)))
+    `(let ((,blocks (debug-fun-debug-blocks ,debug-fun)))
        (declare (simple-vector ,blocks))
        (dotimes (,i (length ,blocks) ,result)
         (let ((,block-var (svref ,blocks ,i)))
           ,@body)))))
 
-;;; Execute body in a context with var bound to each debug-var in
-;;; debug-function. This returns the value of executing result (defaults to
-;;; nil). This may iterate over only some of debug-function's variables or none
-;;; depending on debug policy; for example, possibly the compilation only
-;;; preserved argument information.
-(defmacro do-debug-function-variables ((var debug-function &optional result)
+;;; Execute body in a context with VAR bound to each DEBUG-VAR in
+;;; DEBUG-FUN. This returns the value of executing result (defaults to
+;;; nil). This may iterate over only some of DEBUG-FUN's variables or
+;;; none depending on debug policy; for example, possibly the
+;;; compilation only preserved argument information.
+(defmacro do-debug-fun-variables ((var debug-fun &optional result)
                                       &body body)
   (let ((vars (gensym))
        (i (gensym)))
-    `(let ((,vars (debug-function-debug-vars ,debug-function)))
+    `(let ((,vars (debug-fun-debug-vars ,debug-fun)))
        (declare (type (or null simple-vector) ,vars))
        (if ,vars
           (dotimes (,i (length ,vars) ,result)
               ,@body))
           ,result))))
 
-;;; Return the Common Lisp function associated with the debug-function. This
-;;; returns nil if the function is unavailable or is non-existent as a user
+;;; Return the object of type FUNCTION associated with the DEBUG-FUN,
+;;; or NIL if the function is unavailable or is non-existent as a user
 ;;; callable function object.
-(defun debug-function-function (debug-function)
-  (let ((cached-value (debug-function-%function debug-function)))
+(defun debug-fun-fun (debug-fun)
+  (let ((cached-value (debug-fun-%function debug-fun)))
     (if (eq cached-value :unparsed)
-       (setf (debug-function-%function debug-function)
-             (etypecase debug-function
-               (compiled-debug-function
+       (setf (debug-fun-%function debug-fun)
+             (etypecase debug-fun
+               (compiled-debug-fun
                 (let ((component
-                       (compiled-debug-function-component debug-function))
+                       (compiled-debug-fun-component debug-fun))
                       (start-pc
-                       (sb!c::compiled-debug-function-start-pc
-                        (compiled-debug-function-compiler-debug-fun
-                         debug-function))))
+                       (sb!c::compiled-debug-fun-start-pc
+                        (compiled-debug-fun-compiler-debug-fun debug-fun))))
                   (do ((entry (%code-entry-points component)
-                              (%function-next entry)))
+                              (%simple-fun-next entry)))
                       ((null entry) nil)
                     (when (= start-pc
-                             (sb!c::compiled-debug-function-start-pc
-                              (compiled-debug-function-compiler-debug-fun
-                               (function-debug-function entry))))
+                             (sb!c::compiled-debug-fun-start-pc
+                              (compiled-debug-fun-compiler-debug-fun
+                               (fun-debug-fun entry))))
                       (return entry)))))
-               (bogus-debug-function nil)))
+               (bogus-debug-fun nil)))
        cached-value)))
 
-;;; Return the name of the function represented by debug-function. This may
+;;; Return the name of the function represented by DEBUG-FUN. This may
 ;;; be a string or a cons; do not assume it is a symbol.
-(defun debug-function-name (debug-function)
-  (etypecase debug-function
-    (compiled-debug-function
-     (sb!c::compiled-debug-function-name
-      (compiled-debug-function-compiler-debug-fun debug-function)))
-    (bogus-debug-function
-     (bogus-debug-function-%name debug-function))))
-
-;;; Return a debug-function that represents debug information for function.
-(defun function-debug-function (fun)
-  (ecase (get-type fun)
-    (#.sb!vm:closure-header-type
-     (function-debug-function (%closure-function fun)))
-    (#.sb!vm:funcallable-instance-header-type
-     (function-debug-function (funcallable-instance-function fun)))
-    ((#.sb!vm:function-header-type #.sb!vm:closure-function-header-type)
-      (let* ((name (%function-name fun))
-            (component (function-code-header fun))
+(defun debug-fun-name (debug-fun)
+  (declare (type debug-fun debug-fun))
+  (etypecase debug-fun
+    (compiled-debug-fun
+     (sb!c::compiled-debug-fun-name
+      (compiled-debug-fun-compiler-debug-fun debug-fun)))
+    (bogus-debug-fun
+     (bogus-debug-fun-%name debug-fun))))
+
+;;; Return a DEBUG-FUN that represents debug information for FUN.
+(defun fun-debug-fun (fun)
+  (declare (type function fun))
+  (ecase (widetag-of fun)
+    (#.sb!vm:closure-header-widetag
+     (fun-debug-fun (%closure-fun fun)))
+    (#.sb!vm:funcallable-instance-header-widetag
+     (fun-debug-fun (funcallable-instance-fun fun)))
+    ((#.sb!vm:simple-fun-header-widetag
+      #.sb!vm:closure-fun-header-widetag)
+      (let* ((name (%simple-fun-name fun))
+            (component (fun-code-header fun))
             (res (find-if
                   (lambda (x)
-                    (and (sb!c::compiled-debug-function-p x)
-                         (eq (sb!c::compiled-debug-function-name x) name)
-                         (eq (sb!c::compiled-debug-function-kind x) nil)))
-                  (get-debug-info-function-map
+                    (and (sb!c::compiled-debug-fun-p x)
+                         (eq (sb!c::compiled-debug-fun-name x) name)
+                         (eq (sb!c::compiled-debug-fun-kind x) nil)))
+                  (sb!c::compiled-debug-info-fun-map
                    (%code-debug-info component)))))
        (if res
-           (make-compiled-debug-function res component)
+           (make-compiled-debug-fun res component)
            ;; KLUDGE: comment from CMU CL:
            ;;   This used to be the non-interpreted branch, but
            ;;   William wrote it to return the debug-fun of fun's XEP
            ;;   appropriate cases. It mostly works, and probably
            ;;   works for all named functions anyway.
            ;; -- WHN 20000120
-           (debug-function-from-pc component
-                                   (* (- (function-word-offset fun)
-                                         (get-header-data component))
-                                      sb!vm:word-bytes)))))))
+           (debug-fun-from-pc component
+                              (* (- (fun-word-offset fun)
+                                    (get-header-data component))
+                                 sb!vm:n-word-bytes)))))))
 
 ;;; Return the kind of the function, which is one of :OPTIONAL,
-;;; :EXTERNAL, TOP-level, :CLEANUP, or NIL.
-(defun debug-function-kind (debug-function)
+;;; :EXTERNAL, :TOPLEVEL, :CLEANUP, or NIL.
+(defun debug-fun-kind (debug-fun)
   ;; FIXME: This "is one of" information should become part of the function
   ;; declamation, not just a doc string
-  (etypecase debug-function
-    (compiled-debug-function
-     (sb!c::compiled-debug-function-kind
-      (compiled-debug-function-compiler-debug-fun debug-function)))
-    (bogus-debug-function
+  (etypecase debug-fun
+    (compiled-debug-fun
+     (sb!c::compiled-debug-fun-kind
+      (compiled-debug-fun-compiler-debug-fun debug-fun)))
+    (bogus-debug-fun
      nil)))
 
-;;; Is there any variable information for DEBUG-FUNCTION?
-(defun debug-var-info-available (debug-function)
-  (not (not (debug-function-debug-vars debug-function))))
+;;; Is there any variable information for DEBUG-FUN?
+(defun debug-var-info-available (debug-fun)
+  (not (not (debug-fun-debug-vars debug-fun))))
 
-;;; Return a list of debug-vars in debug-function having the same name
-;;; and package as symbol. If symbol is uninterned, then this returns
-;;; a list of debug-vars without package names and with the same name
+;;; Return a list of DEBUG-VARs in DEBUG-FUN having the same name
+;;; and package as SYMBOL. If SYMBOL is uninterned, then this returns
+;;; a list of DEBUG-VARs without package names and with the same name
 ;;; as symbol. The result of this function is limited to the
-;;; availability of variable information in debug-function; for
-;;; example, possibly DEBUG-FUNCTION only knows about its arguments.
-(defun debug-function-symbol-variables (debug-function symbol)
-  (let ((vars (ambiguous-debug-vars debug-function (symbol-name symbol)))
+;;; availability of variable information in DEBUG-FUN; for
+;;; example, possibly DEBUG-FUN only knows about its arguments.
+(defun debug-fun-symbol-variables (debug-fun symbol)
+  (let ((vars (ambiguous-debug-vars debug-fun (symbol-name symbol)))
        (package (and (symbol-package symbol)
                      (package-name (symbol-package symbol)))))
     (delete-if (if (stringp package)
                     (stringp (debug-var-package-name var))))
               vars)))
 
-;;; Return a list of debug-vars in debug-function whose names contain
-;;; name-prefix-string as an intial substring. The result of this
+;;; Return a list of DEBUG-VARs in DEBUG-FUN whose names contain
+;;; NAME-PREFIX-STRING as an initial substring. The result of this
 ;;; function is limited to the availability of variable information in
-;;; debug-function; for example, possibly debug-function only knows
+;;; debug-fun; for example, possibly debug-fun only knows
 ;;; about its arguments.
-(defun ambiguous-debug-vars (debug-function name-prefix-string)
+(defun ambiguous-debug-vars (debug-fun name-prefix-string)
   (declare (simple-string name-prefix-string))
-  (let ((variables (debug-function-debug-vars debug-function)))
+  (let ((variables (debug-fun-debug-vars debug-fun)))
     (declare (type (or null simple-vector) variables))
     (if variables
        (let* ((len (length variables))
                               (string= x y :end1 name-len :end2 name-len))))
              :end (or end (length variables)))))
 
-;;; Return a list representing the lambda-list for DEBUG-FUNCTION. The
+;;; Return a list representing the lambda-list for DEBUG-FUN. The
 ;;; list has the following structure:
 ;;;   (required-var1 required-var2
 ;;;    ...
 ;;;    ...
 ;;;   )
 ;;; Each VARi is a DEBUG-VAR; however it may be the symbol :DELETED if
-;;; it is unreferenced in DEBUG-FUNCTION. This signals a
+;;; it is unreferenced in DEBUG-FUN. This signals a
 ;;; LAMBDA-LIST-UNAVAILABLE condition when there is no argument list
 ;;; information.
-(defun debug-function-lambda-list (debug-function)
-  (etypecase debug-function
-    (compiled-debug-function
-     (compiled-debug-function-lambda-list debug-function))
-    (bogus-debug-function
-     nil)))
+(defun debug-fun-lambda-list (debug-fun)
+  (etypecase debug-fun
+    (compiled-debug-fun (compiled-debug-fun-lambda-list debug-fun))
+    (bogus-debug-fun nil)))
 
-;;; Note: If this has to compute the lambda list, it caches it in
-;;; DEBUG-FUNCTION.
-(defun compiled-debug-function-lambda-list (debug-function)
-  (let ((lambda-list (debug-function-%lambda-list debug-function)))
+;;; Note: If this has to compute the lambda list, it caches it in DEBUG-FUN.
+(defun compiled-debug-fun-lambda-list (debug-fun)
+  (let ((lambda-list (debug-fun-%lambda-list debug-fun)))
     (cond ((eq lambda-list :unparsed)
           (multiple-value-bind (args argsp)
-              (parse-compiled-debug-function-lambda-list debug-function)
-            (setf (debug-function-%lambda-list debug-function) args)
+              (parse-compiled-debug-fun-lambda-list debug-fun)
+            (setf (debug-fun-%lambda-list debug-fun) args)
             (if argsp
                 args
                 (debug-signal 'lambda-list-unavailable
-                              :debug-function debug-function))))
+                              :debug-fun debug-fun))))
          (lambda-list)
-         ((bogus-debug-function-p debug-function)
+         ((bogus-debug-fun-p debug-fun)
           nil)
-         ((sb!c::compiled-debug-function-arguments
-           (compiled-debug-function-compiler-debug-fun
-            debug-function))
+         ((sb!c::compiled-debug-fun-arguments
+           (compiled-debug-fun-compiler-debug-fun debug-fun))
           ;; If the packed information is there (whether empty or not) as
           ;; opposed to being nil, then returned our cached value (nil).
           nil)
           ;; Our cached value is nil, and the packed lambda-list information
           ;; is nil, so we don't have anything available.
           (debug-signal 'lambda-list-unavailable
-                        :debug-function debug-function)))))
-
-;;; COMPILED-DEBUG-FUNCTION-LAMBDA-LIST calls this when a
-;;; compiled-debug-function has no lambda-list information cached. It
-;;; returns the lambda-list as the first value and whether there was
-;;; any argument information as the second value. Therefore, nil and t
-;;; means there were no arguments, but nil and nil means there was no
-;;; argument information.
-(defun parse-compiled-debug-function-lambda-list (debug-function)
-  (let ((args (sb!c::compiled-debug-function-arguments
-              (compiled-debug-function-compiler-debug-fun
-               debug-function))))
+                        :debug-fun debug-fun)))))
+
+;;; COMPILED-DEBUG-FUN-LAMBDA-LIST calls this when a
+;;; COMPILED-DEBUG-FUN has no lambda list information cached. It
+;;; returns the lambda list as the first value and whether there was
+;;; any argument information as the second value. Therefore,
+;;; (VALUES NIL T) means there were no arguments, but (VALUES NIL NIL)
+;;; means there was no argument information.
+(defun parse-compiled-debug-fun-lambda-list (debug-fun)
+  (let ((args (sb!c::compiled-debug-fun-arguments
+              (compiled-debug-fun-compiler-debug-fun debug-fun))))
     (cond
      ((not args)
       (values nil nil))
      ((eq args :minimal)
-      (values (coerce (debug-function-debug-vars debug-function) 'list)
+      (values (coerce (debug-fun-debug-vars debug-fun) 'list)
              t))
      (t
-      (let ((vars (debug-function-debug-vars debug-function))
+      (let ((vars (debug-fun-debug-vars debug-fun))
            (i 0)
            (len (length args))
            (res nil)
                 ;; element representing the keyword or optional,
                 ;; which is the previous one.
                 (nconc (car res)
-                       (list (compiled-debug-function-lambda-list-var
+                       (list (compiled-debug-fun-lambda-list-var
                               args (incf i) vars))))
                (sb!c::rest-arg
                 (push (list :rest
-                            (compiled-debug-function-lambda-list-var
+                            (compiled-debug-fun-lambda-list-var
                              args (incf i) vars))
                       res))
                (sb!c::more-arg
                 ;; &KEY arg
                 (push (list :keyword
                             ele
-                            (compiled-debug-function-lambda-list-var
+                            (compiled-debug-fun-lambda-list-var
                              args (incf i) vars))
                       res))))
             (optionalp
          (incf i))
        (values (nreverse res) t))))))
 
-;;; This is used in COMPILED-DEBUG-FUNCTION-LAMBDA-LIST.
-(defun compiled-debug-function-lambda-list-var (args i vars)
+;;; This is used in COMPILED-DEBUG-FUN-LAMBDA-LIST.
+(defun compiled-debug-fun-lambda-list-var (args i vars)
   (declare (type (simple-array * (*)) args)
           (simple-vector vars))
   (let ((ele (aref args i)))
          ((eq ele 'sb!c::deleted) :deleted)
          (t (error "malformed arguments description")))))
 
-(defun compiled-debug-function-debug-info (debug-fun)
-  (%code-debug-info (compiled-debug-function-component debug-fun)))
+(defun compiled-debug-fun-debug-info (debug-fun)
+  (%code-debug-info (compiled-debug-fun-component debug-fun)))
 \f
 ;;;; unpacking variable and basic block data
 
   (make-array 20 :adjustable t :fill-pointer t))
 (defvar *other-parsing-buffer*
   (make-array 20 :adjustable t :fill-pointer t))
-;;; PARSE-DEBUG-BLOCKS, PARSE-DEBUG-VARS and UNCOMPACT-FUNCTION-MAP
+;;; PARSE-DEBUG-BLOCKS and PARSE-DEBUG-VARS
 ;;; use this to unpack binary encoded information. It returns the
 ;;; values returned by the last form in body.
 ;;;
 ) ; EVAL-WHEN
 
 ;;; The argument is a debug internals structure. This returns the
-;;; debug-blocks for debug-function, regardless of whether we have
-;;; unpacked them yet. It signals a no-debug-blocks condition if it
-;;; can't return the blocks.
-(defun debug-function-debug-blocks (debug-function)
-  (let ((blocks (debug-function-blocks debug-function)))
+;;; DEBUG-BLOCKs for DEBUG-FUN, regardless of whether we have unpacked
+;;; them yet. It signals a NO-DEBUG-BLOCKS condition if it can't
+;;; return the blocks.
+(defun debug-fun-debug-blocks (debug-fun)
+  (let ((blocks (debug-fun-blocks debug-fun)))
     (cond ((eq blocks :unparsed)
-          (setf (debug-function-blocks debug-function)
-                (parse-debug-blocks debug-function))
-          (unless (debug-function-blocks debug-function)
+          (setf (debug-fun-blocks debug-fun)
+                (parse-debug-blocks debug-fun))
+          (unless (debug-fun-blocks debug-fun)
             (debug-signal 'no-debug-blocks
-                          :debug-function debug-function))
-          (debug-function-blocks debug-function))
+                          :debug-fun debug-fun))
+          (debug-fun-blocks debug-fun))
          (blocks)
          (t
           (debug-signal 'no-debug-blocks
-                        :debug-function debug-function)))))
+                        :debug-fun debug-fun)))))
 
-;;; This returns a SIMPLE-VECTOR of DEBUG-BLOCKs or NIL. NIL indicates
-;;; there was no basic block information.
-(defun parse-debug-blocks (debug-function)
-  (etypecase debug-function
-    (compiled-debug-function
-     (parse-compiled-debug-blocks debug-function))
-    (bogus-debug-function
-     (debug-signal 'no-debug-blocks :debug-function debug-function))))
+;;; Return a SIMPLE-VECTOR of DEBUG-BLOCKs or NIL. NIL indicates there
+;;; was no basic block information.
+(defun parse-debug-blocks (debug-fun)
+  (etypecase debug-fun
+    (compiled-debug-fun
+     (parse-compiled-debug-blocks debug-fun))
+    (bogus-debug-fun
+     (debug-signal 'no-debug-blocks :debug-fun debug-fun))))
 
 ;;; This does some of the work of PARSE-DEBUG-BLOCKS.
-(defun parse-compiled-debug-blocks (debug-function)
-  (let* ((debug-fun (compiled-debug-function-compiler-debug-fun
-                    debug-function))
-        (var-count (length (debug-function-debug-vars debug-function)))
-        (blocks (sb!c::compiled-debug-function-blocks debug-fun))
+(defun parse-compiled-debug-blocks (debug-fun)
+  (let* ((var-count (length (debug-fun-debug-vars debug-fun)))
+        (compiler-debug-fun (compiled-debug-fun-compiler-debug-fun
+                             debug-fun))
+        (blocks (sb!c::compiled-debug-fun-blocks compiler-debug-fun))
         ;; KLUDGE: 8 is a hard-wired constant in the compiler for the
         ;; element size of the packed binary representation of the
         ;; blocks data.
         (live-set-len (ceiling var-count 8))
-        (tlf-number (sb!c::compiled-debug-function-tlf-number debug-fun)))
-    (unless blocks (return-from parse-compiled-debug-blocks nil))
+        (tlf-number (sb!c::compiled-debug-fun-tlf-number compiler-debug-fun)))
+    (unless blocks
+      (return-from parse-compiled-debug-blocks nil))
     (macrolet ((aref+ (a i) `(prog1 (aref ,a ,i) (incf ,i))))
       (with-parsing-buffer (blocks-buffer locations-buffer)
        (let ((i 0)
                              (live-set (sb!c::read-packed-bit-vector
                                         live-set-len blocks i)))
                          (vector-push-extend (make-known-code-location
-                                              pc debug-function tlf-offset
+                                              pc debug-fun tlf-offset
                                               form-number live-set kind)
                                              locations-buffer)
                          (setf last-pc pc))))
 ;;; there is no variable information. It returns an empty
 ;;; simple-vector if there were no locals in the function. Otherwise
 ;;; it returns a SIMPLE-VECTOR of DEBUG-VARs.
-(defun debug-function-debug-vars (debug-function)
-  (let ((vars (debug-function-%debug-vars debug-function)))
+(defun debug-fun-debug-vars (debug-fun)
+  (let ((vars (debug-fun-%debug-vars debug-fun)))
     (if (eq vars :unparsed)
-       (setf (debug-function-%debug-vars debug-function)
-             (etypecase debug-function
-               (compiled-debug-function
-                (parse-compiled-debug-vars debug-function))
-               (bogus-debug-function nil)))
+       (setf (debug-fun-%debug-vars debug-fun)
+             (etypecase debug-fun
+               (compiled-debug-fun
+                (parse-compiled-debug-vars debug-fun))
+               (bogus-debug-fun nil)))
        vars)))
 
 ;;; VARS is the parsed variables for a minimal debug function. We need
 (defun assign-minimal-var-names (vars)
   (declare (simple-vector vars))
   (let* ((len (length vars))
-        (width (length (format nil "~D" (1- len)))))
+        (width (length (format nil "~W" (1- len)))))
     (dotimes (i len)
       (setf (compiled-debug-var-symbol (svref vars i))
            (intern (format nil "ARG-~V,'0D" width i)
                        (find-package "SB!DEBUG")))))))
 
 ;;; Parse the packed representation of DEBUG-VARs from
-;;; DEBUG-FUNCTION's SB!C::COMPILED-DEBUG-FUNCTION, returning a vector
+;;; DEBUG-FUN's SB!C::COMPILED-DEBUG-FUN, returning a vector
 ;;; of DEBUG-VARs, or NIL if there was no information to parse.
-(defun parse-compiled-debug-vars (debug-function)
-  (let* ((cdebug-fun (compiled-debug-function-compiler-debug-fun
-                     debug-function))
-        (packed-vars (sb!c::compiled-debug-function-variables cdebug-fun))
-        (args-minimal (eq (sb!c::compiled-debug-function-arguments cdebug-fun)
+(defun parse-compiled-debug-vars (debug-fun)
+  (let* ((cdebug-fun (compiled-debug-fun-compiler-debug-fun
+                     debug-fun))
+        (packed-vars (sb!c::compiled-debug-fun-variables cdebug-fun))
+        (args-minimal (eq (sb!c::compiled-debug-fun-arguments cdebug-fun)
                           :minimal)))
     (when packed-vars
       (do ((i 0)
                                                         save-sc-offset)
                                buffer)))))))
 \f
-;;;; unpacking minimal debug functions
-
-(eval-when (:compile-toplevel :execute)
-
-;;; sleazoid "macro" to keep our indentation sane in UNCOMPACT-FUNCTION-MAP
-(sb!xc:defmacro make-uncompacted-debug-fun ()
-  '(sb!c::make-compiled-debug-function
-    :name
-    (let ((base (ecase (ldb sb!c::minimal-debug-function-name-style-byte
-                           options)
-                 (#.sb!c::minimal-debug-function-name-symbol
-                  (intern (sb!c::read-var-string map i)
-                          (sb!c::compiled-debug-info-package info)))
-                 (#.sb!c::minimal-debug-function-name-packaged
-                  (let ((pkg (sb!c::read-var-string map i)))
-                    (intern (sb!c::read-var-string map i) pkg)))
-                 (#.sb!c::minimal-debug-function-name-uninterned
-                  (make-symbol (sb!c::read-var-string map i)))
-                 (#.sb!c::minimal-debug-function-name-component
-                  (sb!c::compiled-debug-info-name info)))))
-      (if (logtest flags sb!c::minimal-debug-function-setf-bit)
-         `(setf ,base)
-         base))
-    :kind (svref sb!c::*minimal-debug-function-kinds*
-                (ldb sb!c::minimal-debug-function-kind-byte options))
-    :variables
-    (when vars-p
-      (let ((len (sb!c::read-var-integer map i)))
-       (prog1 (subseq map i (+ i len))
-         (incf i len))))
-    :arguments (when vars-p :minimal)
-    :returns
-    (ecase (ldb sb!c::minimal-debug-function-returns-byte options)
-      (#.sb!c::minimal-debug-function-returns-standard
-       :standard)
-      (#.sb!c::minimal-debug-function-returns-fixed
-       :fixed)
-      (#.sb!c::minimal-debug-function-returns-specified
-       (with-parsing-buffer (buf)
-        (dotimes (idx (sb!c::read-var-integer map i))
-          (vector-push-extend (sb!c::read-var-integer map i) buf))
-        (result buf))))
-    :return-pc (sb!c::read-var-integer map i)
-    :old-fp (sb!c::read-var-integer map i)
-    :nfp (when (logtest flags sb!c::minimal-debug-function-nfp-bit)
-          (sb!c::read-var-integer map i))
-    :start-pc
-    (progn
-      (setq code-start-pc (+ code-start-pc (sb!c::read-var-integer map i)))
-      (+ code-start-pc (sb!c::read-var-integer map i)))
-    :elsewhere-pc
-    (setq elsewhere-pc (+ elsewhere-pc (sb!c::read-var-integer map i)))))
-
-) ; EVAL-WHEN
-
-;;; Return a normal function map derived from a minimal debug info
-;;; function map. This involves looping parsing
-;;; minimal-debug-functions and then building a vector out of them.
-;;;
-;;; FIXME: This and its helper macro just above become dead code now
-;;; that we no longer use compacted function maps.
-(defun uncompact-function-map (info)
-  (declare (type sb!c::compiled-debug-info info))
-
-  ;; (This is stubified until we solve the problem of representing
-  ;; debug information in a way which plays nicely with package renaming.)
-  (error "FIXME: dead code UNCOMPACT-FUNCTION-MAP (was stub)")
-
-  (let* ((map (sb!c::compiled-debug-info-function-map info))
-        (i 0)
-        (len (length map))
-        (code-start-pc 0)
-        (elsewhere-pc 0))
-    (declare (type (simple-array (unsigned-byte 8) (*)) map))
-    (sb!int:collect ((res))
-      (loop
-       (when (= i len) (return))
-       (let* ((options (prog1 (aref map i) (incf i)))
-              (flags (prog1 (aref map i) (incf i)))
-              (vars-p (logtest flags
-                               sb!c::minimal-debug-function-variables-bit))
-              (dfun (make-uncompacted-debug-fun)))
-         (res code-start-pc)
-         (res dfun)))
-
-      (coerce (cdr (res)) 'simple-vector))))
-
-;;; a map from minimal DEBUG-INFO function maps to unpacked
-;;; versions thereof
-(defvar *uncompacted-function-maps* (make-hash-table :test 'eq))
-
-;;; Return a FUNCTION-MAP for a given COMPILED-DEBUG-info object. If
-;;; the info is minimal, and has not been parsed, then parse it.
-;;;
-;;; FIXME: Now that we no longer use the MINIMAL-DEBUG-FUNCTION
-;;; representation, calls to this function can be replaced by calls to
-;;; the bare COMPILED-DEBUG-INFO-FUNCTION-MAP slot accessor function,
-;;; and this function and everything it calls become dead code which
-;;; can be deleted.
-(defun get-debug-info-function-map (info)
-  (declare (type sb!c::compiled-debug-info info))
-  (let ((map (sb!c::compiled-debug-info-function-map info)))
-    (if (simple-vector-p map)
-       map
-       (or (gethash map *uncompacted-function-maps*)
-           (setf (gethash map *uncompacted-function-maps*)
-                 (uncompact-function-map info))))))
-\f
 ;;;; CODE-LOCATIONs
 
 ;;; If we're sure of whether code-location is known, return T or NIL.
 
 ;;; Store and return BASIC-CODE-LOCATION's debug-block. We determines
 ;;; the correct one using the code-location's pc. We use
-;;; DEBUG-FUNCTION-DEBUG-BLOCKS to return the cached block information
+;;; DEBUG-FUN-DEBUG-BLOCKS to return the cached block information
 ;;; or signal a NO-DEBUG-BLOCKS condition. The blocks are sorted by
 ;;; their first code-location's pc, in ascending order. Therefore, as
 ;;; soon as we find a block that starts with a pc greater than
 ;;; code first in order to see how to compare the code-location's pc.
 (defun compute-compiled-code-location-debug-block (basic-code-location)
   (let* ((pc (compiled-code-location-pc basic-code-location))
-        (debug-function (code-location-debug-function
+        (debug-fun (code-location-debug-fun
                          basic-code-location))
-        (blocks (debug-function-debug-blocks debug-function))
+        (blocks (debug-fun-debug-blocks debug-fun))
         (len (length blocks)))
     (declare (simple-vector blocks))
     (setf (code-location-%debug-block basic-code-location)
                     (cond
                      ((debug-block-elsewhere-p last)
                       (if (< pc
-                             (sb!c::compiled-debug-function-elsewhere-pc
-                              (compiled-debug-function-compiler-debug-fun
-                               debug-function)))
+                             (sb!c::compiled-debug-fun-elsewhere-pc
+                              (compiled-debug-fun-compiler-debug-fun
+                               debug-fun)))
                           (svref blocks (1- end))
                           last))
                      ((< pc
                                  0)))
                       (svref blocks (1- end)))
                      (t last))))
-               (declare (type sb!c::index i end))
+               (declare (type index i end))
                (when (< pc
                         (compiled-code-location-pc
                          (svref (compiled-debug-block-code-locations
 (defun code-location-debug-source (code-location)
   (etypecase code-location
     (compiled-code-location
-     (let* ((info (compiled-debug-function-debug-info
-                  (code-location-debug-function code-location)))
+     (let* ((info (compiled-debug-fun-debug-info
+                  (code-location-debug-fun code-location)))
            (sources (sb!c::compiled-debug-info-source info))
            (len (length sources)))
        (declare (list sources))
        (when (zerop len)
-        (debug-signal 'no-debug-blocks :debug-function
-                      (code-location-debug-function code-location)))
+        (debug-signal 'no-debug-blocks :debug-fun
+                      (code-location-debug-fun code-location)))
        (if (= len 1)
           (car sources)
           (do ((prev sources src)
                (src (cdr sources) (cdr src))
-               (offset (code-location-top-level-form-offset code-location)))
+               (offset (code-location-toplevel-form-offset code-location)))
               ((null src) (car prev))
             (when (< offset (sb!c::debug-source-source-root (car src)))
               (return (car prev)))))))
     ;; did special tricks to debug the IR1 interpreter.)
     ))
 
-;;; Returns the number of top-level forms before the one containing
+;;; Returns the number of top level forms before the one containing
 ;;; CODE-LOCATION as seen by the compiler in some compilation unit. (A
 ;;; compilation unit is not necessarily a single file, see the section
 ;;; on debug-sources.)
-(defun code-location-top-level-form-offset (code-location)
+(defun code-location-toplevel-form-offset (code-location)
   (when (code-location-unknown-p code-location)
     (error 'unknown-code-location :code-location code-location))
   (let ((tlf-offset (code-location-%tlf-offset code-location)))
          (t tlf-offset))))
 
 ;;; Return the number of the form corresponding to CODE-LOCATION. The
-;;; form number is derived by a walking the subforms of a top-level
+;;; form number is derived by a walking the subforms of a top level
 ;;; form in depth-first order.
 (defun code-location-form-number (code-location)
   (when (code-location-unknown-p code-location)
     (compiled-code-location
      (etypecase obj2
        (compiled-code-location
-       (and (eq (code-location-debug-function obj1)
-                (code-location-debug-function obj2))
+       (and (eq (code-location-debug-fun obj1)
+                (code-location-debug-fun obj2))
             (sub-compiled-code-location= obj1 obj2)))
        ;; (There used to be more cases back before sbcl-0.7.0,,
        ;; when we did special tricks to debug the IR1
        ;; interpreter.)
        ))
     ;; (There used to be more cases back before sbcl-0.7.0,,
-    ;; when we did special tricks to debug the IR1
-    ;; interpreter.)
+    ;; when we did special tricks to debug IR1-interpreted code.)
     ))
 (defun sub-compiled-code-location= (obj1 obj2)
   (= (compiled-code-location-pc obj1)
 
 ;;; Fill in CODE-LOCATION's :UNPARSED slots, returning T or NIL
 ;;; depending on whether the code-location was known in its
-;;; debug-function's debug-block information. This may signal a
-;;; NO-DEBUG-BLOCKS condition due to DEBUG-FUNCTION-DEBUG-BLOCKS, and
+;;; DEBUG-FUN's debug-block information. This may signal a
+;;; NO-DEBUG-BLOCKS condition due to DEBUG-FUN-DEBUG-BLOCKS, and
 ;;; it assumes the %UNKNOWN-P slot is already set or going to be set.
 (defun fill-in-code-location (code-location)
   (declare (type compiled-code-location code-location))
-  (let* ((debug-function (code-location-debug-function code-location))
-        (blocks (debug-function-debug-blocks debug-function)))
+  (let* ((debug-fun (code-location-debug-fun code-location))
+        (blocks (debug-fun-debug-blocks debug-fun)))
     (declare (simple-vector blocks))
     (dotimes (i (length blocks) nil)
       (let* ((block (svref blocks i))
         (let ((,code-var (svref ,code-locations ,i)))
           ,@body)))))
 
-;;; Return the name of the function represented by DEBUG-FUNCTION.
+;;; Return the name of the function represented by DEBUG-FUN.
 ;;; This may be a string or a cons; do not assume it is a symbol.
-(defun debug-block-function-name (debug-block)
+(defun debug-block-fun-name (debug-block)
   (etypecase debug-block
     (compiled-debug-block
      (let ((code-locs (compiled-debug-block-code-locations debug-block)))
        (declare (simple-vector code-locs))
        (if (zerop (length code-locs))
           "??? Can't get name of debug-block's function."
-          (debug-function-name
-           (code-location-debug-function (svref code-locs 0))))))
+          (debug-fun-name
+           (code-location-debug-fun (svref code-locs 0))))))
     ;; (There used to be more cases back before sbcl-0.7.0, when we
     ;; did special tricks to debug the IR1 interpreter.)
     ))
 ;;; Returns the value stored for DEBUG-VAR in frame. The value may be
 ;;; invalid. This is SETFable.
 (defun debug-var-value (debug-var frame)
-  (etypecase debug-var
-    (compiled-debug-var
-     (aver (typep frame 'compiled-frame))
-     (let ((res (access-compiled-debug-var-slot debug-var frame)))
-       (if (indirect-value-cell-p res)
-          (value-cell-ref res)
-          res)))
-    ;; (This function used to be more interesting, with more type
-    ;; cases here, before the IR1 interpreter went away. It might
-    ;; become more interesting again if we ever try to generalize the
-    ;; CMU CL POSSIBLY-AN-INTERPRETED-FRAME thing to elide
-    ;; internal-to-the-byte-interpreter debug frames the way that CMU
-    ;; CL elided internal-to-the-IR1-interpreter debug frames.)
-    ))
+  (aver (typep frame 'compiled-frame))
+  (let ((res (access-compiled-debug-var-slot debug-var frame)))
+    (if (indirect-value-cell-p res)
+       (value-cell-ref res)
+       res)))
 
 ;;; This returns what is stored for the variable represented by
 ;;; DEBUG-VAR relative to the FRAME. This may be an indirect value
 ;;; GC, and might also arise in debug variable locations when
 ;;; those variables are invalid.)
 (defun make-valid-lisp-obj (val)
-  (/show0 "entering MAKE-VALID-LISP-OBJ, VAL=..")
-  #!+sb-show (/hexstr val)
   (if (or
        ;; fixnum
        (zerop (logand val 3))
        ;; character
        (and (zerop (logand val #xffff0000)) ; Top bits zero
-           (= (logand val #xff) sb!vm:base-char-type)) ; Char tag
+           (= (logand val #xff) sb!vm:base-char-widetag)) ; char tag
        ;; unbound marker
-       (= val sb!vm:unbound-marker-type)
+       (= val sb!vm:unbound-marker-widetag)
        ;; pointer
        (and (logand val 1)
            ;; Check that the pointer is valid. XXX Could do a better
            ;; routine in the C runtime support code
            (or (< sb!vm:read-only-space-start val
                   (* sb!vm:*read-only-space-free-pointer*
-                     sb!vm:word-bytes))
+                     sb!vm:n-word-bytes))
                (< sb!vm:static-space-start val
                   (* sb!vm:*static-space-free-pointer*
-                     sb!vm:word-bytes))
+                     sb!vm:n-word-bytes))
                (< sb!vm:dynamic-space-start val
                   (sap-int (dynamic-space-free-pointer))))))
       (make-lisp-obj val)
                                  (sb!vm:context-register escaped
                                                          sb!vm::nfp-offset))
                                 #!-alpha
-                                (sb!sys:sap-ref-sap fp (* sb!vm::nfp-save-offset
-                                                          sb!vm:word-bytes))
+                                (sb!sys:sap-ref-sap fp (* nfp-save-offset
+                                                          sb!vm:n-word-bytes))
                                 #!+alpha
                                 (sb!vm::make-number-stack-pointer
-                                 (sb!sys:sap-ref-32 fp (* sb!vm::nfp-save-offset
-                                                          sb!vm:word-bytes))))))
+                                 (sb!sys:sap-ref-32 fp (* nfp-save-offset
+                                                          sb!vm:n-word-bytes))))))
                   ,@body)))
     (ecase (sb!c:sc-offset-scn sc-offset)
       ((#.sb!vm:any-reg-sc-number
          (sb!sys:int-sap val)))
       (#.sb!vm:signed-reg-sc-number
        (with-escaped-value (val)
-         (if (logbitp (1- sb!vm:word-bits) val)
-             (logior val (ash -1 sb!vm:word-bits))
+         (if (logbitp (1- sb!vm:n-word-bits) val)
+             (logior val (ash -1 sb!vm:n-word-bits))
              val)))
       (#.sb!vm:unsigned-reg-sc-number
        (with-escaped-value (val)
       (#.sb!vm:single-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:sap-ref-single nfp (* (sb!c:sc-offset-offset sc-offset)
-                                       sb!vm:word-bytes))))
+                                       sb!vm:n-word-bytes))))
       (#.sb!vm:double-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:sap-ref-double nfp (* (sb!c:sc-offset-offset sc-offset)
-                                       sb!vm:word-bytes))))
+                                       sb!vm:n-word-bytes))))
       #!+long-float
       (#.sb!vm:long-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:sap-ref-long nfp (* (sb!c:sc-offset-offset sc-offset)
-                                     sb!vm:word-bytes))))
+                                     sb!vm:n-word-bytes))))
       (#.sb!vm:complex-single-stack-sc-number
        (with-nfp (nfp)
          (complex
           (sb!sys:sap-ref-single nfp (* (sb!c:sc-offset-offset sc-offset)
-                                        sb!vm:word-bytes))
+                                        sb!vm:n-word-bytes))
           (sb!sys:sap-ref-single nfp (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                        sb!vm:word-bytes)))))
+                                        sb!vm:n-word-bytes)))))
       (#.sb!vm:complex-double-stack-sc-number
        (with-nfp (nfp)
          (complex
           (sb!sys:sap-ref-double nfp (* (sb!c:sc-offset-offset sc-offset)
-                                        sb!vm:word-bytes))
+                                        sb!vm:n-word-bytes))
           (sb!sys:sap-ref-double nfp (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                                        sb!vm:word-bytes)))))
+                                        sb!vm:n-word-bytes)))))
       #!+long-float
       (#.sb!vm:complex-long-stack-sc-number
        (with-nfp (nfp)
          (complex
           (sb!sys:sap-ref-long nfp (* (sb!c:sc-offset-offset sc-offset)
-                                      sb!vm:word-bytes))
+                                      sb!vm:n-word-bytes))
           (sb!sys:sap-ref-long nfp (* (+ (sb!c:sc-offset-offset sc-offset)
                                          #!+sparc 4)
-                                      sb!vm:word-bytes)))))
+                                      sb!vm:n-word-bytes)))))
       (#.sb!vm:control-stack-sc-number
        (sb!kernel:stack-ref fp (sb!c:sc-offset-offset sc-offset)))
       (#.sb!vm:base-char-stack-sc-number
        (with-nfp (nfp)
          (code-char (sb!sys:sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                              sb!vm:word-bytes)))))
+                                              sb!vm:n-word-bytes)))))
       (#.sb!vm:unsigned-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                   sb!vm:word-bytes))))
+                                   sb!vm:n-word-bytes))))
       (#.sb!vm:signed-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:signed-sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                          sb!vm:word-bytes))))
+                                          sb!vm:n-word-bytes))))
       (#.sb!vm:sap-stack-sc-number
        (with-nfp (nfp)
          (sb!sys:sap-ref-sap nfp (* (sb!c:sc-offset-offset sc-offset)
-                                    sb!vm:word-bytes)))))))
+                                    sb!vm:n-word-bytes)))))))
 
 #!+x86
 (defun sub-access-debug-var-slot (fp sc-offset &optional escaped)
   (declare (type system-area-pointer fp))
-  (/show0 "entering SUB-ACCESS-DEBUG-VAR-SLOT, FP,SC-OFFSET,ESCAPED=..")
-  (/hexstr fp) (/hexstr sc-offset) (/hexstr escaped)
   (macrolet ((with-escaped-value ((var) &body forms)
               `(if escaped
                    (let ((,var (sb!vm:context-register
                                 escaped
                                 (sb!c:sc-offset-offset sc-offset))))
-                     (/show0 "in escaped case, ,VAR value=..")
-                     (/hexstr ,var)
                      ,@forms)
                    :invalid-value-for-unescaped-register-storage))
             (escaped-float-value (format)
                    :invalid-value-for-unescaped-register-storage)))
     (ecase (sb!c:sc-offset-scn sc-offset)
       ((#.sb!vm:any-reg-sc-number #.sb!vm:descriptor-reg-sc-number)
-       (/show0 "case of ANY-REG-SC-NUMBER or DESCRIPTOR-REG-SC-NUMBER")
        (without-gcing
        (with-escaped-value (val)
-         (/show0 "VAL=..")
-         (/hexstr val)
          (make-valid-lisp-obj val))))
       (#.sb!vm:base-char-reg-sc-number
-       (/show0 "case of BASE-CHAR-REG-SC-NUMBER")
        (with-escaped-value (val)
         (code-char val)))
       (#.sb!vm:sap-reg-sc-number
-       (/show0 "case of SAP-REG-SC-NUMBER")
        (with-escaped-value (val)
         (int-sap val)))
       (#.sb!vm:signed-reg-sc-number
-       (/show0 "case of SIGNED-REG-SC-NUMBER")
        (with-escaped-value (val)
-        (if (logbitp (1- sb!vm:word-bits) val)
-            (logior val (ash -1 sb!vm:word-bits))
+        (if (logbitp (1- sb!vm:n-word-bits) val)
+            (logior val (ash -1 sb!vm:n-word-bits))
             val)))
       (#.sb!vm:unsigned-reg-sc-number
-       (/show0 "case of UNSIGNED-REG-SC-NUMBER")
        (with-escaped-value (val)
         val))
       (#.sb!vm:single-reg-sc-number
-       (/show0 "case of SINGLE-REG-SC-NUMBER")
        (escaped-float-value single-float))
       (#.sb!vm:double-reg-sc-number
-       (/show0 "case of DOUBLE-REG-SC-NUMBER")
        (escaped-float-value double-float))
       #!+long-float
       (#.sb!vm:long-reg-sc-number
-       (/show0 "case of LONG-REG-SC-NUMBER")
        (escaped-float-value long-float))
       (#.sb!vm:complex-single-reg-sc-number
-       (/show0 "case of COMPLEX-SINGLE-REG-SC-NUMBER")
        (escaped-complex-float-value single-float))
       (#.sb!vm:complex-double-reg-sc-number
-       (/show0 "case of COMPLEX-DOUBLE-REG-SC-NUMBER")
        (escaped-complex-float-value double-float))
       #!+long-float
       (#.sb!vm:complex-long-reg-sc-number
-       (/show0 "case of COMPLEX-LONG-REG-SC-NUMBER")
        (escaped-complex-float-value long-float))
       (#.sb!vm:single-stack-sc-number
-       (/show0 "case of SINGLE-STACK-SC-NUMBER")
        (sap-ref-single fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                               sb!vm:word-bytes))))
+                               sb!vm:n-word-bytes))))
       (#.sb!vm:double-stack-sc-number
-       (/show0 "case of DOUBLE-STACK-SC-NUMBER")
        (sap-ref-double fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                               sb!vm:word-bytes))))
+                               sb!vm:n-word-bytes))))
       #!+long-float
       (#.sb!vm:long-stack-sc-number
-       (/show0 "case of LONG-STACK-SC-NUMBER")
        (sap-ref-long fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 3)
-                             sb!vm:word-bytes))))
+                             sb!vm:n-word-bytes))))
       (#.sb!vm:complex-single-stack-sc-number
-       (/show0 "case of COMPLEX-STACK-SC-NUMBER")
        (complex
        (sap-ref-single fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                sb!vm:word-bytes)))
+                                sb!vm:n-word-bytes)))
        (sap-ref-single fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                                sb!vm:word-bytes)))))
+                                sb!vm:n-word-bytes)))))
       (#.sb!vm:complex-double-stack-sc-number
-       (/show0 "case of COMPLEX-DOUBLE-STACK-SC-NUMBER")
        (complex
        (sap-ref-double fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                                sb!vm:word-bytes)))
+                                sb!vm:n-word-bytes)))
        (sap-ref-double fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 4)
-                                sb!vm:word-bytes)))))
+                                sb!vm:n-word-bytes)))))
       #!+long-float
       (#.sb!vm:complex-long-stack-sc-number
-       (/show0 "case of COMPLEX-LONG-STACK-SC-NUMBER")
        (complex
        (sap-ref-long fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 3)
-                              sb!vm:word-bytes)))
+                              sb!vm:n-word-bytes)))
        (sap-ref-long fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 6)
-                              sb!vm:word-bytes)))))
+                              sb!vm:n-word-bytes)))))
       (#.sb!vm:control-stack-sc-number
-       (/show0 "case of CONTROL-STACK-SC-NUMBER")
        (stack-ref fp (sb!c:sc-offset-offset sc-offset)))
       (#.sb!vm:base-char-stack-sc-number
-       (/show0 "case of BASE-CHAR-STACK-SC-NUMBER")
        (code-char
        (sap-ref-32 fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                            sb!vm:word-bytes)))))
+                            sb!vm:n-word-bytes)))))
       (#.sb!vm:unsigned-stack-sc-number
-       (/show0 "case of UNSIGNED-STACK-SC-NUMBER")
        (sap-ref-32 fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                           sb!vm:word-bytes))))
+                           sb!vm:n-word-bytes))))
       (#.sb!vm:signed-stack-sc-number
-       (/show0 "case of SIGNED-STACK-SC-NUMBER")
        (signed-sap-ref-32 fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                  sb!vm:word-bytes))))
+                                  sb!vm:n-word-bytes))))
       (#.sb!vm:sap-stack-sc-number
-       (/show0 "case of SAP-STACK-SC-NUMBER")
        (sap-ref-sap fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                            sb!vm:word-bytes)))))))
+                            sb!vm:n-word-bytes)))))))
 
 ;;; This stores value as the value of DEBUG-VAR in FRAME. In the
 ;;; COMPILED-DEBUG-VAR case, access the current value to determine if
 ;;; it is an indirect value cell. This occurs when the variable is
 ;;; both closed over and set.
-(defun %set-debug-var-value (debug-var frame value)
-  (etypecase debug-var
-    (compiled-debug-var
-     (aver (typep frame 'compiled-frame))
-     (let ((current-value (access-compiled-debug-var-slot debug-var frame)))
-       (if (indirect-value-cell-p current-value)
-          (value-cell-set current-value value)
-          (set-compiled-debug-var-slot debug-var frame value))))
-    ;; (This function used to be more interesting, with more type
-    ;; cases here, before the IR1 interpreter went away. It might
-    ;; become more interesting again if we ever try to generalize the
-    ;; CMU CL POSSIBLY-AN-INTERPRETED-FRAME thing to elide
-    ;; internal-to-the-byte-interpreter debug frames the way that CMU
-    ;; CL elided internal-to-the-IR1-interpreter debug frames.)
-    )
-  value)
-
-;;; This stores value for the variable represented by debug-var
+(defun %set-debug-var-value (debug-var frame new-value)
+  (aver (typep frame 'compiled-frame))
+  (let ((old-value (access-compiled-debug-var-slot debug-var frame)))
+    (if (indirect-value-cell-p old-value)
+       (value-cell-set old-value new-value)
+       (set-compiled-debug-var-slot debug-var frame new-value)))
+  new-value)
+
+;;; This stores VALUE for the variable represented by debug-var
 ;;; relative to the frame. This assumes the location directly contains
 ;;; the variable's value; that is, there is no indirect value cell
 ;;; currently there in case the variable is both closed over and set.
                                                         sb!vm::nfp-offset))
                                #!-alpha
                                (sap-ref-sap fp
-                                            (* sb!vm::nfp-save-offset
-                                               sb!vm:word-bytes))
+                                            (* nfp-save-offset
+                                               sb!vm:n-word-bytes))
                                #!+alpha
                                (sb!vm::make-number-stack-pointer
                                 (sap-ref-32 fp
-                                            (* sb!vm::nfp-save-offset
-                                               sb!vm:word-bytes))))))
+                                            (* nfp-save-offset
+                                               sb!vm:n-word-bytes))))))
                  ,@body)))
     (ecase (sb!c:sc-offset-scn sc-offset)
       ((#.sb!vm:any-reg-sc-number
       (#.sb!vm:sap-reg-sc-number
        (set-escaped-value (sap-int value)))
       (#.sb!vm:signed-reg-sc-number
-       (set-escaped-value (logand value (1- (ash 1 sb!vm:word-bits)))))
+       (set-escaped-value (logand value (1- (ash 1 sb!vm:n-word-bits)))))
       (#.sb!vm:unsigned-reg-sc-number
        (set-escaped-value value))
       (#.sb!vm:non-descriptor-reg-sc-number
       (#.sb!vm:single-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-single nfp (* (sb!c:sc-offset-offset sc-offset)
-                                     sb!vm:word-bytes))
+                                     sb!vm:n-word-bytes))
               (the single-float value))))
       (#.sb!vm:double-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-double nfp (* (sb!c:sc-offset-offset sc-offset)
-                                     sb!vm:word-bytes))
+                                     sb!vm:n-word-bytes))
               (the double-float value))))
       #!+long-float
       (#.sb!vm:long-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-long nfp (* (sb!c:sc-offset-offset sc-offset)
-                                   sb!vm:word-bytes))
+                                   sb!vm:n-word-bytes))
               (the long-float value))))
       (#.sb!vm:complex-single-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-single
-               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:word-bytes))
+               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:n-word-bytes))
               (the single-float (realpart value)))
         (setf (sap-ref-single
                nfp (* (1+ (sb!c:sc-offset-offset sc-offset))
-                      sb!vm:word-bytes))
+                      sb!vm:n-word-bytes))
               (the single-float (realpart value)))))
       (#.sb!vm:complex-double-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-double
-               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:word-bytes))
+               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:n-word-bytes))
               (the double-float (realpart value)))
         (setf (sap-ref-double
                nfp (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                      sb!vm:word-bytes))
+                      sb!vm:n-word-bytes))
               (the double-float (realpart value)))))
       #!+long-float
       (#.sb!vm:complex-long-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-long
-               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:word-bytes))
+               nfp (* (sb!c:sc-offset-offset sc-offset) sb!vm:n-word-bytes))
               (the long-float (realpart value)))
         (setf (sap-ref-long
                nfp (* (+ (sb!c:sc-offset-offset sc-offset) #!+sparc 4)
-                      sb!vm:word-bytes))
+                      sb!vm:n-word-bytes))
               (the long-float (realpart value)))))
       (#.sb!vm:control-stack-sc-number
        (setf (stack-ref fp (sb!c:sc-offset-offset sc-offset)) value))
       (#.sb!vm:base-char-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                        sb!vm:word-bytes))
+                                        sb!vm:n-word-bytes))
               (char-code (the character value)))))
       (#.sb!vm:unsigned-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                 sb!vm:word-bytes))
+                                 sb!vm:n-word-bytes))
               (the (unsigned-byte 32) value))))
       (#.sb!vm:signed-stack-sc-number
        (with-nfp (nfp)
         (setf (signed-sap-ref-32 nfp (* (sb!c:sc-offset-offset sc-offset)
-                                        sb!vm:word-bytes))
+                                        sb!vm:n-word-bytes))
               (the (signed-byte 32) value))))
       (#.sb!vm:sap-stack-sc-number
        (with-nfp (nfp)
         (setf (sap-ref-sap nfp (* (sb!c:sc-offset-offset sc-offset)
-                                  sb!vm:word-bytes))
+                                  sb!vm:n-word-bytes))
               (the system-area-pointer value)))))))
 
 #!+x86
       (#.sb!vm:sap-reg-sc-number
        (set-escaped-value (sap-int value)))
       (#.sb!vm:signed-reg-sc-number
-       (set-escaped-value (logand value (1- (ash 1 sb!vm:word-bits)))))
+       (set-escaped-value (logand value (1- (ash 1 sb!vm:n-word-bits)))))
       (#.sb!vm:unsigned-reg-sc-number
        (set-escaped-value value))
       (#.sb!vm:single-reg-sc-number
       (#.sb!vm:single-stack-sc-number
        (setf (sap-ref-single
              fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (the single-float value)))
       (#.sb!vm:double-stack-sc-number
        (setf (sap-ref-double
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (the double-float value)))
       #!+long-float
       (#.sb!vm:long-stack-sc-number
        (setf (sap-ref-long
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 3)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (the long-float value)))
       (#.sb!vm:complex-single-stack-sc-number
        (setf (sap-ref-single
              fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (realpart (the (complex single-float) value)))
        (setf (sap-ref-single
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (imagpart (the (complex single-float) value))))
       (#.sb!vm:complex-double-stack-sc-number
        (setf (sap-ref-double
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 2)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (realpart (the (complex double-float) value)))
        (setf (sap-ref-double
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 4)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (imagpart (the (complex double-float) value))))
       #!+long-float
       (#.sb!vm:complex-long-stack-sc-number
        (setf (sap-ref-long
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 3)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (realpart (the (complex long-float) value)))
        (setf (sap-ref-long
              fp (- (* (+ (sb!c:sc-offset-offset sc-offset) 6)
-                      sb!vm:word-bytes)))
+                      sb!vm:n-word-bytes)))
             (imagpart (the (complex long-float) value))))
       (#.sb!vm:control-stack-sc-number
        (setf (stack-ref fp (sb!c:sc-offset-offset sc-offset)) value))
       (#.sb!vm:base-char-stack-sc-number
        (setf (sap-ref-32 fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                        sb!vm:word-bytes)))
+                                        sb!vm:n-word-bytes)))
             (char-code (the character value))))
       (#.sb!vm:unsigned-stack-sc-number
        (setf (sap-ref-32 fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                        sb!vm:word-bytes)))
+                                        sb!vm:n-word-bytes)))
             (the (unsigned-byte 32) value)))
       (#.sb!vm:signed-stack-sc-number
        (setf (signed-sap-ref-32
-             fp (- (* (1+ (sb!c:sc-offset-offset sc-offset)) sb!vm:word-bytes)))
+             fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
+                      sb!vm:n-word-bytes)))
             (the (signed-byte 32) value)))
       (#.sb!vm:sap-stack-sc-number
        (setf (sap-ref-sap fp (- (* (1+ (sb!c:sc-offset-offset sc-offset))
-                                         sb!vm:word-bytes)))
+                                         sb!vm:n-word-bytes)))
             (the system-area-pointer value))))))
 
 ;;; The method for setting and accessing COMPILED-DEBUG-VAR values use
 ;;; this to determine if the value stored is the actual value or an
 ;;; indirection cell.
 (defun indirect-value-cell-p (x)
-  (and (= (get-lowtag x) sb!vm:other-pointer-type)
-       (= (get-type x) sb!vm:value-cell-header-type)))
+  (and (= (lowtag-of x) sb!vm:other-pointer-lowtag)
+       (= (widetag-of x) sb!vm:value-cell-header-widetag)))
 
 ;;; Return three values reflecting the validity of DEBUG-VAR's value
 ;;; at BASIC-CODE-LOCATION:
 (defun compiled-debug-var-validity (debug-var basic-code-location)
   (declare (type compiled-code-location basic-code-location))
   (cond ((debug-var-alive-p debug-var)
-        (let ((debug-fun (code-location-debug-function basic-code-location)))
+        (let ((debug-fun (code-location-debug-fun basic-code-location)))
           (if (>= (compiled-code-location-pc basic-code-location)
-                  (sb!c::compiled-debug-function-start-pc
-                   (compiled-debug-function-compiler-debug-fun debug-fun)))
+                  (sb!c::compiled-debug-fun-start-pc
+                   (compiled-debug-fun-compiler-debug-fun debug-fun)))
               :valid
               :invalid)))
        ((code-location-unknown-p basic-code-location) :unknown)
        (t
         (let ((pos (position debug-var
-                             (debug-function-debug-vars
-                              (code-location-debug-function
+                             (debug-fun-debug-vars
+                              (code-location-debug-fun
                                basic-code-location)))))
           (unless pos
             (error 'unknown-debug-var
                    :debug-var debug-var
-                   :debug-function
-                   (code-location-debug-function basic-code-location)))
+                   :debug-fun
+                   (code-location-debug-fun basic-code-location)))
           ;; There must be live-set info since basic-code-location is known.
           (if (zerop (sbit (compiled-code-location-live-set
                             basic-code-location)
 ;;; This code produces and uses what we call source-paths. A
 ;;; source-path is a list whose first element is a form number as
 ;;; returned by CODE-LOCATION-FORM-NUMBER and whose last element is a
-;;; top-level-form number as returned by
-;;; CODE-LOCATION-TOP-LEVEL-FORM-NUMBER. The elements from the last to
+;;; top level form number as returned by
+;;; CODE-LOCATION-TOPLEVEL-FORM-NUMBER. The elements from the last to
 ;;; the first, exclusively, are the numbered subforms into which to
 ;;; descend. For example:
 ;;;    (defun foo (x)
 ;;;      (let ((a (aref x 3)))
 ;;;    (cons a 3)))
 ;;; The call to AREF in this example is form number 5. Assuming this
-;;; DEFUN is the 11'th top-level-form, the source-path for the AREF
+;;; DEFUN is the 11'th top level form, the source-path for the AREF
 ;;; call is as follows:
 ;;;    (5 1 0 1 3 11)
 ;;; Given the DEFUN, 3 gets you the LET, 1 gets you the bindings, 0
 ;;; table used to detect CAR circularities in FORM-NUMBER-TRANSLATIONS
 (defvar *form-number-circularity-table* (make-hash-table :test 'eq))
 
-;;; This returns a table mapping form numbers to source-paths. A source-path
-;;; indicates a descent into the top-level-form form, going directly to the
-;;; subform corressponding to the form number.
+;;; This returns a table mapping form numbers to source-paths. A
+;;; source-path indicates a descent into the TOPLEVEL-FORM form,
+;;; going directly to the subform corressponding to the form number.
 ;;;
 ;;; The vector elements are in the same format as the compiler's
 ;;; NODE-SOURCE-PATH; that is, the first element is the form number and
-;;; the last is the top-level-form number.
+;;; the last is the TOPLEVEL-FORM number.
 (defun form-number-translations (form tlf-number)
   (clrhash *form-number-circularity-table*)
   (setf (fill-pointer *form-number-temp*) 0)
          (frob)
          (setq trail (cdr trail)))))))
 
-;;; FORM is a top-level form, and path is a source-path into it. This
+;;; FORM is a top level form, and path is a source-path into it. This
 ;;; returns the form indicated by the source-path. Context is the
 ;;; number of enclosing forms to return instead of directly returning
 ;;; the source-path form. When context is non-zero, the form returned
 
 ;;; Return a function of one argument that evaluates form in the
 ;;; lexical context of the BASIC-CODE-LOCATION LOC, or signal a
-;;; NO-DEBUG-VARS condition when the LOC's DEBUG-FUNCTION has no
+;;; NO-DEBUG-VARS condition when the LOC's DEBUG-FUN has no
 ;;; DEBUG-VAR information available.
 ;;;
 ;;; The returned function takes the frame to get values from as its
 ;;; argument, and it returns the values of FORM. The returned function
 ;;; can signal the following conditions: INVALID-VALUE,
-;;; AMBIGUOUS-VARIABLE-NAME, and FRAME-FUNCTION-MISMATCH.
+;;; AMBIGUOUS-VAR-NAME, and FRAME-FUN-MISMATCH.
 (defun preprocess-for-eval (form loc)
   (declare (type code-location loc))
   (let ((n-frame (gensym))
-       (fun (code-location-debug-function loc)))
+       (fun (code-location-debug-fun loc)))
     (unless (debug-var-info-available fun)
-      (debug-signal 'no-debug-vars :debug-function fun))
+      (debug-signal 'no-debug-vars :debug-fun fun))
     (sb!int:collect ((binds)
                     (specs))
-      (do-debug-function-variables (var fun)
+      (do-debug-fun-variables (var fun)
        (let ((validity (debug-var-validity var loc)))
          (unless (eq validity :invalid)
            (let* ((sym (debug-var-symbol var))
            (:valid
             (specs `(,name (debug-var-value ',var ,n-frame))))
            (:unknown
-            (specs `(,name (debug-signal 'invalid-value :debug-var ',var
+            (specs `(,name (debug-signal 'invalid-value
+                                         :debug-var ',var
                                          :frame ,n-frame))))
            (:ambiguous
-            (specs `(,name (debug-signal 'ambiguous-variable-name :name ',name
+            (specs `(,name (debug-signal 'ambiguous-var-name
+                                         :name ',name
                                          :frame ,n-frame)))))))
       (let ((res (coerce `(lambda (,n-frame)
                            (declare (ignorable ,n-frame))
            ;; This prevents these functions from being used in any
            ;; location other than a function return location, so
            ;; maybe this should only check whether frame's
-           ;; debug-function is the same as loc's.
+           ;; DEBUG-FUN is the same as loc's.
            (unless (code-location= (frame-code-location frame) loc)
-             (debug-signal 'frame-function-mismatch
+             (debug-signal 'frame-fun-mismatch
                            :code-location loc :form form :frame frame))
            (funcall res frame))))))
 \f
 ;;; breakpoint object.
 ;;;
 ;;; WHAT and KIND determine where in a function the system invokes
-;;; HOOK-FUNCTION. WHAT is either a code-location or a debug-function.
-;;; KIND is one of :CODE-LOCATION, :FUNCTION-START, or :FUNCTION-END.
+;;; HOOK-FUNCTION. WHAT is either a code-location or a DEBUG-FUN.
+;;; KIND is one of :CODE-LOCATION, :FUN-START, or :FUN-END.
 ;;; Since the starts and ends of functions may not have code-locations
 ;;; representing them, designate these places by supplying WHAT as a
-;;; debug-function and KIND indicating the :FUNCTION-START or
-;;; :FUNCTION-END. When WHAT is a debug-function and kind is
-;;; :FUNCTION-END, then hook-function must take two additional
+;;; DEBUG-FUN and KIND indicating the :FUN-START or
+;;; :FUN-END. When WHAT is a DEBUG-FUN and kind is
+;;; :FUN-END, then hook-function must take two additional
 ;;; arguments, a list of values returned by the function and a
-;;; FUNCTION-END-COOKIE.
+;;; FUN-END-COOKIE.
 ;;;
 ;;; INFO is information supplied by and used by the user.
 ;;;
-;;; FUNCTION-END-COOKIE is a function. To implement :FUNCTION-END
+;;; FUN-END-COOKIE is a function. To implement :FUN-END
 ;;; breakpoints, the system uses starter breakpoints to establish the
-;;; :FUNCTION-END breakpoint for each invocation of the function. Upon
+;;; :FUN-END breakpoint for each invocation of the function. Upon
 ;;; each entry, the system creates a unique cookie to identify the
 ;;; invocation, and when the user supplies a function for this
 ;;; argument, the system invokes it on the frame and the cookie. The
-;;; system later invokes the :FUNCTION-END breakpoint hook on the same
+;;; system later invokes the :FUN-END breakpoint hook on the same
 ;;; cookie. The user may save the cookie for comparison in the hook
 ;;; function.
 ;;;
 ;;; Signal an error if WHAT is an unknown code-location.
 (defun make-breakpoint (hook-function what
-                       &key (kind :code-location) info function-end-cookie)
+                       &key (kind :code-location) info fun-end-cookie)
   (etypecase what
     (code-location
      (when (code-location-unknown-p what)
         ;; interpreter.)
         )
        bpt))
-    (compiled-debug-function
+    (compiled-debug-fun
      (ecase kind
-       (:function-start
+       (:fun-start
        (%make-breakpoint hook-function what kind info))
-       (:function-end
-       (unless (eq (sb!c::compiled-debug-function-returns
-                    (compiled-debug-function-compiler-debug-fun what))
+       (:fun-end
+       (unless (eq (sb!c::compiled-debug-fun-returns
+                    (compiled-debug-fun-compiler-debug-fun what))
                    :standard)
-         (error ":FUNCTION-END breakpoints are currently unsupported ~
+         (error ":FUN-END breakpoints are currently unsupported ~
                  for the known return convention."))
 
        (let* ((bpt (%make-breakpoint hook-function what kind info))
-              (starter (compiled-debug-function-end-starter what)))
+              (starter (compiled-debug-fun-end-starter what)))
          (unless starter
-           (setf starter (%make-breakpoint #'list what :function-start nil))
+           (setf starter (%make-breakpoint #'list what :fun-start nil))
            (setf (breakpoint-hook-function starter)
-                 (function-end-starter-hook starter what))
-           (setf (compiled-debug-function-end-starter what) starter))
+                 (fun-end-starter-hook starter what))
+           (setf (compiled-debug-fun-end-starter what) starter))
          (setf (breakpoint-start-helper bpt) starter)
          (push bpt (breakpoint-%info starter))
-         (setf (breakpoint-cookie-fun bpt) function-end-cookie)
+         (setf (breakpoint-cookie-fun bpt) fun-end-cookie)
          bpt))))))
 
 ;;; These are unique objects created upon entry into a function by a
-;;; :FUNCTION-END breakpoint's starter hook. These are only created
-;;; when users supply :FUNCTION-END-COOKIE to MAKE-BREAKPOINT. Also,
-;;; the :FUNCTION-END breakpoint's hook is called on the same cookie
+;;; :FUN-END breakpoint's starter hook. These are only created
+;;; when users supply :FUN-END-COOKIE to MAKE-BREAKPOINT. Also,
+;;; the :FUN-END breakpoint's hook is called on the same cookie
 ;;; when it is created.
-(defstruct (function-end-cookie
+(defstruct (fun-end-cookie
            (:print-object (lambda (obj str)
                             (print-unreadable-object (obj str :type t))))
-           (:constructor make-function-end-cookie (bogus-lra debug-fun))
+           (:constructor make-fun-end-cookie (bogus-lra debug-fun))
            (:copier nil))
-  ;; a pointer to the bogus-lra created for :FUNCTION-END breakpoints
+  ;; a pointer to the bogus-lra created for :FUN-END breakpoints
   bogus-lra
-  ;; the debug-function associated with the cookie
+  ;; the DEBUG-FUN associated with this cookie
   debug-fun)
 
 ;;; This maps bogus-lra-components to cookies, so that
-;;; HANDLE-FUNCTION-END-BREAKPOINT can find the appropriate cookie for the
+;;; HANDLE-FUN-END-BREAKPOINT can find the appropriate cookie for the
 ;;; breakpoint hook.
-(defvar *function-end-cookies* (make-hash-table :test 'eq))
+(defvar *fun-end-cookies* (make-hash-table :test 'eq))
 
 ;;; This returns a hook function for the start helper breakpoint
-;;; associated with a :FUNCTION-END breakpoint. The returned function
+;;; associated with a :FUN-END breakpoint. The returned function
 ;;; makes a fake LRA that all returns go through, and this piece of
 ;;; fake code actually breaks. Upon return from the break, the code
 ;;; provides the returnee with any values. Since the returned function
 ;;; effectively activates FUN-END-BPT on each entry to DEBUG-FUN's
 ;;; function, we must establish breakpoint-data about FUN-END-BPT.
-(defun function-end-starter-hook (starter-bpt debug-fun)
+(defun fun-end-starter-hook (starter-bpt debug-fun)
   (declare (type breakpoint starter-bpt)
-          (type compiled-debug-function debug-fun))
+          (type compiled-debug-fun debug-fun))
   #'(lambda (frame breakpoint)
       (declare (ignore breakpoint)
               (type frame frame))
       (let ((lra-sc-offset
-            (sb!c::compiled-debug-function-return-pc
-             (compiled-debug-function-compiler-debug-fun debug-fun))))
+            (sb!c::compiled-debug-fun-return-pc
+             (compiled-debug-fun-compiler-debug-fun debug-fun))))
        (multiple-value-bind (lra component offset)
            (make-bogus-lra
             (get-context-value frame
-                               sb!vm::lra-save-offset
+                               lra-save-offset
                                lra-sc-offset))
          (setf (get-context-value frame
-                                  sb!vm::lra-save-offset
+                                  lra-save-offset
                                   lra-sc-offset)
                lra)
          (let ((end-bpts (breakpoint-%info starter-bpt)))
              (setf (breakpoint-data-breakpoints data) end-bpts)
              (dolist (bpt end-bpts)
                (setf (breakpoint-internal-data bpt) data)))
-           (let ((cookie (make-function-end-cookie lra debug-fun)))
-             (setf (gethash component *function-end-cookies*) cookie)
+           (let ((cookie (make-fun-end-cookie lra debug-fun)))
+             (setf (gethash component *fun-end-cookies*) cookie)
              (dolist (bpt end-bpts)
                (let ((fun (breakpoint-cookie-fun bpt)))
                  (when fun (funcall fun frame cookie))))))))))
 
-;;; This takes a FUNCTION-END-COOKIE and a frame, and it returns
+;;; This takes a FUN-END-COOKIE and a frame, and it returns
 ;;; whether the cookie is still valid. A cookie becomes invalid when
 ;;; the frame that established the cookie has exited. Sometimes cookie
 ;;; holders are unaware of cookie invalidation because their
-;;; :FUNCTION-END breakpoint hooks didn't run due to THROW'ing.
+;;; :FUN-END breakpoint hooks didn't run due to THROW'ing.
 ;;;
 ;;; This takes a frame as an efficiency hack since the user probably
 ;;; has a frame object in hand when using this routine, and it saves
 ;;; repeated parsing of the stack and consing when asking whether a
 ;;; series of cookies is valid.
-(defun function-end-cookie-valid-p (frame cookie)
-  (let ((lra (function-end-cookie-bogus-lra cookie))
-       (lra-sc-offset (sb!c::compiled-debug-function-return-pc
-                       (compiled-debug-function-compiler-debug-fun
-                        (function-end-cookie-debug-fun cookie)))))
+(defun fun-end-cookie-valid-p (frame cookie)
+  (let ((lra (fun-end-cookie-bogus-lra cookie))
+       (lra-sc-offset (sb!c::compiled-debug-fun-return-pc
+                       (compiled-debug-fun-compiler-debug-fun
+                        (fun-end-cookie-debug-fun cookie)))))
     (do ((frame frame (frame-down frame)))
        ((not frame) nil)
       (when (and (compiled-frame-p frame)
-                (eq lra
-                    (get-context-value frame
-                                       sb!vm::lra-save-offset
-                                       lra-sc-offset)))
+                 (#-x86 eq #+x86 sap=
+                 lra
+                 (get-context-value frame lra-save-offset lra-sc-offset)))
        (return t)))))
 \f
 ;;;; ACTIVATE-BREAKPOINT
           ;; (There used to be more cases back before sbcl-0.7.0, when
           ;; we did special tricks to debug the IR1 interpreter.)
           )))
-      (:function-start
+      (:fun-start
        (etypecase (breakpoint-what breakpoint)
-        (compiled-debug-function
-         (activate-compiled-function-start-breakpoint breakpoint))
+        (compiled-debug-fun
+         (activate-compiled-fun-start-breakpoint breakpoint))
         ;; (There used to be more cases back before sbcl-0.7.0, when
         ;; we did special tricks to debug the IR1 interpreter.)
         ))
-      (:function-end
+      (:fun-end
        (etypecase (breakpoint-what breakpoint)
-        (compiled-debug-function
+        (compiled-debug-fun
          (let ((starter (breakpoint-start-helper breakpoint)))
            (unless (eq (breakpoint-status starter) :active)
-             ;; may already be active by some other :FUNCTION-END breakpoint
-             (activate-compiled-function-start-breakpoint starter)))
+             ;; may already be active by some other :FUN-END breakpoint
+             (activate-compiled-fun-start-breakpoint starter)))
          (setf (breakpoint-status breakpoint) :active))
         ;; (There used to be more cases back before sbcl-0.7.0, when
         ;; we did special tricks to debug the IR1 interpreter.)
     (declare (type compiled-code-location loc))
     (sub-activate-breakpoint
      breakpoint
-     (breakpoint-data (compiled-debug-function-component
-                      (code-location-debug-function loc))
+     (breakpoint-data (compiled-debug-fun-component
+                      (code-location-debug-fun loc))
                      (+ (compiled-code-location-pc loc)
                         (if (or (eq (breakpoint-kind breakpoint)
                                     :unknown-return-partner)
                             sb!vm:single-value-return-byte-offset
                             0))))))
 
-(defun activate-compiled-function-start-breakpoint (breakpoint)
+(defun activate-compiled-fun-start-breakpoint (breakpoint)
   (declare (type breakpoint breakpoint))
   (let ((debug-fun (breakpoint-what breakpoint)))
     (sub-activate-breakpoint
      breakpoint
-     (breakpoint-data (compiled-debug-function-component debug-fun)
-                     (sb!c::compiled-debug-function-start-pc
-                      (compiled-debug-function-compiler-debug-fun
+     (breakpoint-data (compiled-debug-fun-component debug-fun)
+                     (sb!c::compiled-debug-fun-start-pc
+                      (compiled-debug-fun-compiler-debug-fun
                        debug-fun))))))
 
 (defun sub-activate-breakpoint (breakpoint data)
     (without-interrupts
      (let ((loc (breakpoint-what breakpoint)))
        (etypecase loc
-        ((or compiled-code-location compiled-debug-function)
+        ((or compiled-code-location compiled-debug-fun)
          (deactivate-compiled-breakpoint breakpoint)
          (let ((other (breakpoint-unknown-return-partner breakpoint)))
            (when other
   breakpoint)
 
 (defun deactivate-compiled-breakpoint (breakpoint)
-  (if (eq (breakpoint-kind breakpoint) :function-end)
+  (if (eq (breakpoint-kind breakpoint) :fun-end)
       (let ((starter (breakpoint-start-helper breakpoint)))
        (unless (find-if #'(lambda (bpt)
                             (and (not (eq bpt breakpoint))
       (let ((other (breakpoint-unknown-return-partner breakpoint)))
        (when other
          (setf (breakpoint-status other) :deleted)))
-      (when (eq (breakpoint-kind breakpoint) :function-end)
+      (when (eq (breakpoint-kind breakpoint) :fun-end)
        (let* ((starter (breakpoint-start-helper breakpoint))
               (breakpoints (delete breakpoint
                                    (the list (breakpoint-info starter)))))
          (setf (breakpoint-info starter) breakpoints)
          (unless breakpoints
            (delete-breakpoint starter)
-           (setf (compiled-debug-function-end-starter
+           (setf (compiled-debug-fun-end-starter
                   (breakpoint-what breakpoint))
                  nil))))))
   breakpoint)
 ;;; returns the overwritten bits. You must call this in a context in
 ;;; which GC is disabled, so that Lisp doesn't move objects around
 ;;; that C is pointing to.
-(sb!alien:def-alien-routine "breakpoint_install" sb!c-call:unsigned-long
+(sb!alien:define-alien-routine "breakpoint_install" sb!c-call:unsigned-long
   (code-obj sb!c-call:unsigned-long)
   (pc-offset sb!c-call:int))
 
 ;;; This removes the break instruction and replaces the original
 ;;; instruction. You must call this in a context in which GC is disabled
 ;;; so Lisp doesn't move objects around that C is pointing to.
-(sb!alien:def-alien-routine "breakpoint_remove" sb!c-call:void
+(sb!alien:define-alien-routine "breakpoint_remove" sb!c-call:void
   (code-obj sb!c-call:unsigned-long)
   (pc-offset sb!c-call:int)
   (old-inst sb!c-call:unsigned-long))
 
-(sb!alien:def-alien-routine "breakpoint_do_displaced_inst" sb!c-call:void
+(sb!alien:define-alien-routine "breakpoint_do_displaced_inst" sb!c-call:void
   (scp (* os-context-t))
   (orig-inst sb!c-call:unsigned-long))
 
 ;;;; breakpoint handlers (layer between C and exported interface)
 
-;;; This maps components to a mapping of offsets to breakpoint-datas.
+;;; This maps components to a mapping of offsets to BREAKPOINT-DATAs.
 (defvar *component-breakpoint-offsets* (make-hash-table :test 'eq))
 
-;;; This returns the breakpoint-data associated with component cross
+;;; This returns the BREAKPOINT-DATA object associated with component cross
 ;;; offset. If none exists, this makes one, installs it, and returns it.
 (defun breakpoint-data (component offset &optional (create t))
   (flet ((install-breakpoint-data ()
          (install-breakpoint-data)))))
 
 ;;; We use this when there are no longer any active breakpoints
-;;; corresponding to data.
+;;; corresponding to DATA.
 (defun delete-breakpoint-data (data)
   (let* ((component (breakpoint-data-component data))
         (offsets (delete (breakpoint-data-offset data)
   (values))
 
 ;;; The C handler for interrupts calls this when it has a
-;;; debugging-tool break instruction. This does NOT handle all breaks;
-;;; for example, it does not handle breaks for internal errors.
+;;; debugging-tool break instruction. This does *not* handle all
+;;; breaks; for example, it does not handle breaks for internal
+;;; errors.
 (defun handle-breakpoint (offset component signal-context)
-  (/show0 "entering HANDLE-BREAKPOINT")
   (let ((data (breakpoint-data component offset nil)))
     (unless data
       (error "unknown breakpoint in ~S at offset ~S"
-             (debug-function-name (debug-function-from-pc component offset))
+             (debug-fun-name (debug-fun-from-pc component offset))
              offset))
     (let ((breakpoints (breakpoint-data-breakpoints data)))
       (if (or (null breakpoints)
-             (eq (breakpoint-kind (car breakpoints)) :function-end))
-         (handle-function-end-breakpoint-aux breakpoints data signal-context)
+             (eq (breakpoint-kind (car breakpoints)) :fun-end))
+         (handle-fun-end-breakpoint-aux breakpoints data signal-context)
          (handle-breakpoint-aux breakpoints data
                                 offset component signal-context)))))
 
 ;;; This holds breakpoint-datas while invoking the breakpoint hooks
 ;;; associated with that particular component and location. While they
 ;;; are executing, if we hit the location again, we ignore the
-;;; breakpoint to avoid infinite recursion. Function-end breakpoints
+;;; breakpoint to avoid infinite recursion. fun-end breakpoints
 ;;; must work differently since the breakpoint-data is unique for each
 ;;; invocation.
 (defvar *executing-breakpoint-hooks* nil)
 
-;;; This handles code-location and debug-function :FUNCTION-START
+;;; This handles code-location and DEBUG-FUN :FUN-START
 ;;; breakpoints.
 (defun handle-breakpoint-aux (breakpoints data offset component signal-context)
-  (/show0 "entering HANDLE-BREAKPOINT-AUX")
   (unless breakpoints
     (error "internal error: breakpoint that nobody wants"))
   (unless (member data *executing-breakpoint-hooks*)
       (error "BREAKPOINT-DO-DISPLACED-INST returned?"))))
 
 (defun invoke-breakpoint-hooks (breakpoints component offset)
-  (let* ((debug-fun (debug-function-from-pc component offset))
+  (let* ((debug-fun (debug-fun-from-pc component offset))
         (frame (do ((f (top-frame) (frame-down f)))
-                   ((eq debug-fun (frame-debug-function f)) f))))
+                   ((eq debug-fun (frame-debug-fun f)) f))))
     (dolist (bpt breakpoints)
       (funcall (breakpoint-hook-function bpt)
               frame
                   (breakpoint-unknown-return-partner bpt)
                   bpt)))))
 
-(defun handle-function-end-breakpoint (offset component context)
-  (/show0 "entering HANDLE-FUNCTION-END-BREAKPOINT")
+(defun handle-fun-end-breakpoint (offset component context)
   (let ((data (breakpoint-data component offset nil)))
     (unless data
       (error "unknown breakpoint in ~S at offset ~S"
-             (debug-function-name (debug-function-from-pc component offset))
+             (debug-fun-name (debug-fun-from-pc component offset))
              offset))
     (let ((breakpoints (breakpoint-data-breakpoints data)))
       (when breakpoints
-       (aver (eq (breakpoint-kind (car breakpoints)) :function-end))
-       (handle-function-end-breakpoint-aux breakpoints data context)))))
+       (aver (eq (breakpoint-kind (car breakpoints)) :fun-end))
+       (handle-fun-end-breakpoint-aux breakpoints data context)))))
 
-;;; Either HANDLE-BREAKPOINT calls this for :FUNCTION-END breakpoints
-;;; [old C code] or HANDLE-FUNCTION-END-BREAKPOINT calls this directly
+;;; Either HANDLE-BREAKPOINT calls this for :FUN-END breakpoints
+;;; [old C code] or HANDLE-FUN-END-BREAKPOINT calls this directly
 ;;; [new C code].
-(defun handle-function-end-breakpoint-aux (breakpoints data signal-context)
-  (/show0 "entering HANDLE-FUNCTION-END-BREAKPOINT-AUX")
+(defun handle-fun-end-breakpoint-aux (breakpoints data signal-context)
   (delete-breakpoint-data data)
   (let* ((scp
          (locally
         (frame (do ((cfp (sb!vm:context-register scp sb!vm::cfp-offset))
                     (f (top-frame) (frame-down f)))
                    ((= cfp (sap-int (frame-pointer f))) f)
-                 (declare (type (unsigned-byte #.sb!vm:word-bits) cfp))))
+                 (declare (type (unsigned-byte #.sb!vm:n-word-bits) cfp))))
         (component (breakpoint-data-component data))
-        (cookie (gethash component *function-end-cookies*)))
-    (remhash component *function-end-cookies*)
+        (cookie (gethash component *fun-end-cookies*)))
+    (remhash component *fun-end-cookies*)
     (dolist (bpt breakpoints)
       (funcall (breakpoint-hook-function bpt)
               frame bpt
-              (get-function-end-breakpoint-values scp)
+              (get-fun-end-breakpoint-values scp)
               cookie))))
 
-(defun get-function-end-breakpoint-values (scp)
+(defun get-fun-end-breakpoint-values (scp)
   (let ((ocfp (int-sap (sb!vm:context-register
                        scp
                        #!-x86 sb!vm::ocfp-offset
             results)))
     (nreverse results)))
 \f
-;;;; MAKE-BOGUS-LRA (used for :FUNCTION-END breakpoints)
+;;;; MAKE-BOGUS-LRA (used for :FUN-END breakpoints)
 
 (defconstant bogus-lra-constants
   #!-x86 2 #!+x86 3)
 ;;; instruction.
 (defun make-bogus-lra (real-lra &optional known-return-p)
   (without-gcing
-   (let* ((src-start (foreign-symbol-address "function_end_breakpoint_guts"))
-         (src-end (foreign-symbol-address "function_end_breakpoint_end"))
-         (trap-loc (foreign-symbol-address "function_end_breakpoint_trap"))
+   (let* ((src-start (foreign-symbol-address "fun_end_breakpoint_guts"))
+         (src-end (foreign-symbol-address "fun_end_breakpoint_end"))
+         (trap-loc (foreign-symbol-address "fun_end_breakpoint_trap"))
          (length (sap- src-end src-start))
          (code-object
           (%primitive
        (setf (code-header-ref code-object (1+ real-lra-slot)) offset))
      (setf (code-header-ref code-object known-return-p-slot)
           known-return-p)
-     (system-area-copy src-start 0 dst-start 0 (* length sb!vm:byte-bits))
+     (system-area-copy src-start 0 dst-start 0 (* length sb!vm:n-byte-bits))
      (sb!vm:sanctify-for-execution code-object)
      #!+x86
      (values dst-start code-object (sap- trap-loc src-start))
      #!-x86
      (let ((new-lra (make-lisp-obj (+ (sap-int dst-start)
-                                     sb!vm:other-pointer-type))))
+                                     sb!vm:other-pointer-lowtag))))
        (set-header-data
        new-lra
        (logandc2 (+ sb!vm:code-constants-offset bogus-lra-constants 1)
 \f
 ;;;; miscellaneous
 
-;;; This appears here because it cannot go with the DEBUG-FUNCTION
+;;; This appears here because it cannot go with the DEBUG-FUN
 ;;; interface since DO-DEBUG-BLOCK-LOCATIONS isn't defined until after
-;;; the DEBUG-FUNCTION routines.
+;;; the DEBUG-FUN routines.
 
 ;;; Return a code-location before the body of a function and after all
 ;;; the arguments are in place; or if that location can't be
 ;;; determined due to a lack of debug information, return NIL.
-(defun debug-function-start-location (debug-fun)
+(defun debug-fun-start-location (debug-fun)
   (etypecase debug-fun
-    (compiled-debug-function
+    (compiled-debug-fun
      (code-location-from-pc debug-fun
-                           (sb!c::compiled-debug-function-start-pc
-                            (compiled-debug-function-compiler-debug-fun
+                           (sb!c::compiled-debug-fun-start-pc
+                            (compiled-debug-fun-compiler-debug-fun
                              debug-fun))
                            nil))
     ;; (There used to be more cases back before sbcl-0.7.0, when
     ))
 
 (defun print-code-locations (function)
-  (let ((debug-fun (function-debug-function function)))
-    (do-debug-function-blocks (block debug-fun)
+  (let ((debug-fun (fun-debug-fun function)))
+    (do-debug-fun-blocks (block debug-fun)
       (do-debug-block-locations (loc block)
        (fill-in-code-location loc)
-       (format t "~S code location at ~D"
+       (format t "~S code location at ~W"
                (compiled-code-location-kind loc)
                (compiled-code-location-pc loc))
        (sb!debug::print-code-location-source-form loc 0)