Fossil SCM

Reworked time keeping in the pass manager, the microseconds kept by by the 'time' command flow over after roughly 72 minutes (2^32 microseconds). We now use 'clock seconds' to explicitly keep time. This should flow over only after abuut 136 years. The loss of resolution is ok, the converter does not need it. Seconds are good enough.

aku 2007-12-06 04:05 trunk
Commit 9a763fe59632c27e7ff0e88e5a593763e4e5f354
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -112,12 +112,15 @@
112112
log write 0 pass "Setup $p"
113113
Call $p setup
114114
}
115115
foreach p $run {
116116
log write 0 pass "Begin $p"
117
- Time $p [lindex [time {Call $p run} 1] 0]
117
+ set secbegin [clock seconds]
118
+ Call $p run
119
+ set secstop [clock seconds]
118120
log write 0 pass "Done $p"
121
+ Time $p [expr {$secstop - $secbegin}]
119122
trouble abort?
120123
}
121124
foreach p $defered {
122125
log write 0 pass "Defer $p"
123126
Call $p discard
@@ -131,28 +134,27 @@
131134
typemethod current {} { return $mycurrentpass }
132135
133136
# # ## ### ##### ######## #############
134137
## Internal methods
135138
136
- proc Time {pass useconds} {
139
+ proc Time {pass seconds} {
137140
::variable mytime
138
- lappend mytime $pass $useconds
139
- ShowTime $pass $useconds
141
+ lappend mytime $pass $seconds
142
+ ShowTime $pass $seconds
140143
return
141144
}
142145
143146
proc ShowTimes {} {
144147
::variable mytime
145
- foreach {pass useconds} $mytime {
146
- ShowTime $pass $useconds
148
+ foreach {pass seconds} $mytime {
149
+ ShowTime $pass $seconds
147150
}
148151
return
149152
}
150153
151
- proc ShowTime {pass useconds} {
152
- set sec [format %8.2f [expr {double($useconds)/1e6}]]
153
- log write 0 pass "$sec sec/$pass"
154
+ proc ShowTime {pass seconds} {
155
+ log write 0 pass "[format %8d $seconds] sec/$pass"
154156
return
155157
}
156158
157159
proc Ok? {code label ov {emptyok 1}} {
158160
upvar 1 $ov ok
159161
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -112,12 +112,15 @@
112 log write 0 pass "Setup $p"
113 Call $p setup
114 }
115 foreach p $run {
116 log write 0 pass "Begin $p"
117 Time $p [lindex [time {Call $p run} 1] 0]
 
 
118 log write 0 pass "Done $p"
 
119 trouble abort?
120 }
121 foreach p $defered {
122 log write 0 pass "Defer $p"
123 Call $p discard
@@ -131,28 +134,27 @@
131 typemethod current {} { return $mycurrentpass }
132
133 # # ## ### ##### ######## #############
134 ## Internal methods
135
136 proc Time {pass useconds} {
137 ::variable mytime
138 lappend mytime $pass $useconds
139 ShowTime $pass $useconds
140 return
141 }
142
143 proc ShowTimes {} {
144 ::variable mytime
145 foreach {pass useconds} $mytime {
146 ShowTime $pass $useconds
147 }
148 return
149 }
150
151 proc ShowTime {pass useconds} {
152 set sec [format %8.2f [expr {double($useconds)/1e6}]]
153 log write 0 pass "$sec sec/$pass"
154 return
155 }
156
157 proc Ok? {code label ov {emptyok 1}} {
158 upvar 1 $ov ok
159
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -112,12 +112,15 @@
112 log write 0 pass "Setup $p"
113 Call $p setup
114 }
115 foreach p $run {
116 log write 0 pass "Begin $p"
117 set secbegin [clock seconds]
118 Call $p run
119 set secstop [clock seconds]
120 log write 0 pass "Done $p"
121 Time $p [expr {$secstop - $secbegin}]
122 trouble abort?
123 }
124 foreach p $defered {
125 log write 0 pass "Defer $p"
126 Call $p discard
@@ -131,28 +134,27 @@
134 typemethod current {} { return $mycurrentpass }
135
136 # # ## ### ##### ######## #############
137 ## Internal methods
138
139 proc Time {pass seconds} {
140 ::variable mytime
141 lappend mytime $pass $seconds
142 ShowTime $pass $seconds
143 return
144 }
145
146 proc ShowTimes {} {
147 ::variable mytime
148 foreach {pass seconds} $mytime {
149 ShowTime $pass $seconds
150 }
151 return
152 }
153
154 proc ShowTime {pass seconds} {
155 log write 0 pass "[format %8d $seconds] sec/$pass"
 
156 return
157 }
158
159 proc Ok? {code label ov {emptyok 1}} {
160 upvar 1 $ov ok
161

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button