+;;;; PCOUNTERs
+;;;;
+;;;; a PCOUNTER is used to represent an unsigned integer quantity which
+;;;; can grow bigger than a fixnum, but typically does so, if at all,
+;;;; in many small steps, where we don't want to cons on every step.
+;;;; Such quantities typically arise in profiling, e.g.
+;;;; total system consing, time spent in a profiled function, and
+;;;; bytes consed in a profiled function are all examples of such
+;;;; quantities. The name is an abbreviation for "Profiling COUNTER".
+
+;;; This stuff is implemented in the SB!PROFILE package because the
+;;; profiling code is currently the only code which wants to poke
+;;; around in the implementation details. This needs to be done on the
+;;; host for type information.
+
+(in-package "SB!PROFILE")
+
+(def!struct (pcounter (:copier nil))
+ (integer 0 :type unsigned-byte)
+ (fixnum 0 :type (and fixnum unsigned-byte)))
+