;;;; 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)))

