@@ -13,12 +13,13 @@
13 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
## Utility package, basic user feedback
14 14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
15 15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## ############# #####################
16 16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
## Requirements
17 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 snit ; # OO system.
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 snit ; # OO system.
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package require vc::tools::mem ; # Memory tracking.
20 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## ############# #####################
22 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
##
23 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
24 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
snit::type ::vc::tools::log {
@@ -136,11 +137,14 @@
136 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
137 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Write handler. Each message is a line.
139 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
140 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
proc OUT/write {system text} {
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts "$system [join [split $text \n] "\n$system "]"
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set m [mlog]
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ regsub -all {[^ ]} $m { } b
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts "$m$system [join [split $text \n] "\n$b$system "]"
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mlimit
142 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
143 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
144 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
145 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Progress handler. Uses \r to return to the beginning of the
146 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# current line without advancing.
@@ -165,12 +169,16 @@
165 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## #############
166 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
167 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
168 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
namespace eval ::vc::tools {
169 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
namespace export log
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ namespace eval log {
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ namespace import ::vc::tools::mem::mlog
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ namespace import ::vc::tools::mem::mlimit
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
170 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
171 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
172 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -----------------------------------------------------------------------------
173 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Ready
174 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
175 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
package provide vc::tools::log 1.0
176 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
177 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!