@@ -0,0 +1,74 @@
1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## -*- tcl -*-
2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # # ## ### ##### ######## ############# #####################
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Copyright (c) 2008 Andreas Kupries.
4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # This software is licensed as described in the file LICENSE, which
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # you should have received as part of this distribution.
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # This software consists of voluntary contributions made by many
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # individuals. For exact contribution history, see the revision
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # history and logs, available at http://fossil-scm.hwaci.com/fossil
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # # ## ### ##### ######## ############# #####################
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Utilities for memory tracking
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # # ## ### ##### ######## ############# #####################
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Requirements
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package require Tcl 8.4 ; # Required runtime
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package require struct::list ; # List assignment
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # # ## ### ##### ######## ############# #####################
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ##
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ namespace eval ::vc::tools::mem {
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # # ## ### ##### ######## #############
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Public API, Methods
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {[llength [info commands memory]]} {
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc minfo {} {
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # memory info reduced to the set of relevant numbers in the output
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign [split [memory info] \n] tm tf cpa cba mpa mba
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $tm _ _ tm
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $tf _ _ tf
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $cpa _ _ _ cpa
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $cba _ _ _ cba
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $mpa _ _ _ mpa
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign $mba _ _ _ mba
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return [list $tm $tf $cpa $cba $mpa $mba]
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } else {
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc minfo {} {return {0 0 0 0 0 0}}
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc mlog {} {
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable track ; if {!$track} { return {} }
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lcba
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lmba
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable mid
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct::list assign [minfo] _ _ _ cba _ mba
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set dc [expr $c ba - $lcba] ; set
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # projection: 1 2 3 4 5 6 7 6 8 10
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return "[F [incr mid]] | [F $cba] | [F $dc] | [F $mba] | [F $dm] |=| "
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc mark {} {
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable track ; if {!$track} return
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable mid
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lcba
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ variable lmark
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set dm [expr {$lcba - $lmark}]
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts "[F $mid] | [F $lcba] | [F $dm] | [X %] | [X %] |@| [X %]"
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set lmark $lcba
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc F {n} { format %10d $n }
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc X {c} { string repeat $c 10 }
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc mlimit {} {
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vari