Fossil SCM

For the record an alternative design for the main method of the pass manager where the four principal loops (skip, setup, run, and defer) are merged into two (skip/setup) and (run/defer). Not really less code, also more complex to understand and maintain. The fact that 'setup' and 'run' is performed for the same passes is more difficult to see. This code will not be used.

aku 2007-10-13 23:42 trunk
Commit 4df56a9e7eb00cf5f8a7282b1b6ea8eb7f7df6b1
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -95,38 +95,48 @@
9595
}
9696
}
9797
9898
typemethod run {} {
9999
if {$mystart < 0} {set mystart 0}
100
- if {$myend < 0} {set myend [expr {[llength $mypasses] - 1}]}
100
+ if {$myend < 0} {set myend end}
101101
102102
# TODO: Timing statistics for the passes.
103103
# TODO: Artifact manager (clean after pass?. need to know skipped/defered passes ?)
104104
# TODO:
105105
# TODO:
106106
107
- set skipped [lrange $mypasses 0 [expr {$mystart - 1}]]
108
- set run [lrange $mypasses $mystart $myend]
109
- set defered [lrange $mypasses [expr {$myend + 1}] end]
110
-
111
- foreach p $skipped {
112
- log write 0 pass "Skip $p"
113
- Call $p load
114
- }
115
- foreach p $run {
116
- log write 0 pass "Setup $p"
117
- Call $p setup
118
- }
119
- foreach p $run {
120
- log write 0 pass "Begin $p"
121
- Call $p run
122
- log write 0 pass "Done $p"
123
- trouble abort?
124
- }
125
- foreach p $defered {
126
- log write 0 pass "Defer $p"
127
- Call $p discard
107
+ set firstrun [lindex $mypasses $mystart]
108
+ set lastrun [lindex $mypasses $myend]
109
+
110
+ # We have in principle four loops here (skip, setup, run, and
111
+ # defer). These are however merged into two, skip/setup, and
112
+ # run/defer.
113
+
114
+ set skip 1
115
+ foreach p [lrange $mypasses 0 $myend] {
116
+ if {$p eq $firstrun} {set skip 0}
117
+ if {$skip} {
118
+ log write 0 pass "Skip $p"
119
+ Call $p load
120
+ } else {
121
+ log write 0 pass "Setup $p"
122
+ Call $p setup
123
+ }
124
+ }
125
+
126
+ set run 1
127
+ foreach p [lrange $mypasses $mystart end] {
128
+ if {$run} {
129
+ log write 0 pass "Begin $p"
130
+ Call $p run
131
+ log write 0 pass "Done $p"
132
+ trouble abort?
133
+ } else {
134
+ log write 0 pass "Defer $p"
135
+ Call $p discard
136
+ }
137
+ if {$p eq $lastrun} {set run 0}
128138
}
129139
130140
state release
131141
return
132142
}
133143
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -95,38 +95,48 @@
95 }
96 }
97
98 typemethod run {} {
99 if {$mystart < 0} {set mystart 0}
100 if {$myend < 0} {set myend [expr {[llength $mypasses] - 1}]}
101
102 # TODO: Timing statistics for the passes.
103 # TODO: Artifact manager (clean after pass?. need to know skipped/defered passes ?)
104 # TODO:
105 # TODO:
106
107 set skipped [lrange $mypasses 0 [expr {$mystart - 1}]]
108 set run [lrange $mypasses $mystart $myend]
109 set defered [lrange $mypasses [expr {$myend + 1}] end]
110
111 foreach p $skipped {
112 log write 0 pass "Skip $p"
113 Call $p load
114 }
115 foreach p $run {
116 log write 0 pass "Setup $p"
117 Call $p setup
118 }
119 foreach p $run {
120 log write 0 pass "Begin $p"
121 Call $p run
122 log write 0 pass "Done $p"
123 trouble abort?
124 }
125 foreach p $defered {
126 log write 0 pass "Defer $p"
127 Call $p discard
 
 
 
 
 
 
 
 
 
 
128 }
129
130 state release
131 return
132 }
133
--- tools/cvs2fossil/lib/c2f_pass.tcl
+++ tools/cvs2fossil/lib/c2f_pass.tcl
@@ -95,38 +95,48 @@
95 }
96 }
97
98 typemethod run {} {
99 if {$mystart < 0} {set mystart 0}
100 if {$myend < 0} {set myend end}
101
102 # TODO: Timing statistics for the passes.
103 # TODO: Artifact manager (clean after pass?. need to know skipped/defered passes ?)
104 # TODO:
105 # TODO:
106
107 set firstrun [lindex $mypasses $mystart]
108 set lastrun [lindex $mypasses $myend]
109
110 # We have in principle four loops here (skip, setup, run, and
111 # defer). These are however merged into two, skip/setup, and
112 # run/defer.
113
114 set skip 1
115 foreach p [lrange $mypasses 0 $myend] {
116 if {$p eq $firstrun} {set skip 0}
117 if {$skip} {
118 log write 0 pass "Skip $p"
119 Call $p load
120 } else {
121 log write 0 pass "Setup $p"
122 Call $p setup
123 }
124 }
125
126 set run 1
127 foreach p [lrange $mypasses $mystart end] {
128 if {$run} {
129 log write 0 pass "Begin $p"
130 Call $p run
131 log write 0 pass "Done $p"
132 trouble abort?
133 } else {
134 log write 0 pass "Defer $p"
135 Call $p discard
136 }
137 if {$p eq $lastrun} {set run 0}
138 }
139
140 state release
141 return
142 }
143

Keyboard Shortcuts

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