1.0.21.35: fix build / SAVE-LISP-AND-DIE on non-GENCGC platforms
[sbcl.git] / src / code / early-pcounter.lisp
1 ;;;; PCOUNTERs
2 ;;;;
3 ;;;; a PCOUNTER is used to represent an unsigned integer quantity which
4 ;;;; can grow bigger than a fixnum, but typically does so, if at all,
5 ;;;; in many small steps, where we don't want to cons on every step.
6 ;;;; Such quantities typically arise in profiling, e.g.
7 ;;;; total system consing, time spent in a profiled function, and
8 ;;;; bytes consed in a profiled function are all examples of such
9 ;;;; quantities. The name is an abbreviation for "Profiling COUNTER".
10
11 ;;; This stuff is implemented in the SB!PROFILE package because the
12 ;;; profiling code is currently the only code which wants to poke
13 ;;; around in the implementation details. This needs to be done on the
14 ;;; host for type information.
15
16 (in-package "SB!PROFILE")
17
18 (def!struct (pcounter (:copier nil))
19   (integer 0 :type unsigned-byte)
20   (fixnum 0 :type (and fixnum unsigned-byte)))
21