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".
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.
16 (in-package "SB!PROFILE")
18 (def!struct (pcounter (:copier nil))
19 (integer 0 :type unsigned-byte)
20 (fixnum 0 :type (and fixnum unsigned-byte)))