@@ -70,10 +70,15 @@
70 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typemethod run {} {
73 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Pass manager interface. Executed to perform the
74 74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# functionality of the pass.
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set len [string length [project::rev num]]
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set myatfmt %${len}s
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ incr len 12
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set mycsfmt %${len}s
75 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cyclebreaker savecmd [myproc SaveTimestamps]
77 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
78 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
state transaction {
79 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LoadSymbolChangesets
@@ -105,22 +110,26 @@
105 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
106 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
proc SaveTimestamps {graph at cset} {
107 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set cid [$cset id]
108 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set date [GetTime [lindex [$graph node get $cset timerange] 1] \
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- [struct::set contain $mysymchangesets $cset]]
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ [struct::set contain $mysymchangesets $cset] \
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ message]
111 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- log write 4 atopsort "Changeset @ $at: [$cset str]"
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ log write 4 atopsort "Changeset @ [format $myatfmt $at]: [format $mycsfmt [$cset str]]$message"
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
113 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
state run {
114 121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
INSERT INTO cstimestamp (cid, pos, date)
115 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
VALUES ($cid, $at, $date)
116 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
117 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
118 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
119 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc GetTime {stamp expectchange} {
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc GetTime {stamp expectchange mv} {
121 128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
::variable mylasttimestamp
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ upvar 1 $mv message
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set message ""
122 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$stamp > $mymaxtimestamp} {
123 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# A timestamp in the future is believed to be bogus and
124 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# shifted backwars in time to prevent it from forcing
125 134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# other timestamps to be pushed even further in the
126 135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# future.
@@ -133,22 +142,25 @@
133 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# have been committed, even if other changesets with even
134 143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# earlier timestamps depend on this one.
135 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
136 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
incr mylasttimestamp
137 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {!$expectchange} {
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- log write 4 atopsort "Timestamp [clock format $stamp] is in the future; shifted back to [clock format $mylasttimestamp]"
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set message " Timestamp [clock format $stamp] is in the future; shifted back to [clock format $mylasttimestamp] ([expr {$mylasttimestamp - $stamp}])"
139 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
140 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} elseif {$stamp < ($mylasttimestamp)+1} {
141 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
incr mylasttimestamp
142 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {!$expectchange} {
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- log write 4 atopsort "Timestamp [clock format $stamp] adjusted to [clock format $mylasttimestamp]"
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set message " Timestamp [clock format $stamp] adjusted to [clock format $mylasttimestamp] (+[expr {$mylasttimestamp - $stamp}])"
144 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
145 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
146 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set mylasttimestamp $stamp
147 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return $mylasttimestamp
149 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typevariable myatfmt ; # Format for log output to gain better alignment of the various columns.
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typevariable mycsfmt ; # Ditto for the changesets.
150 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
151 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typevariable mysymchangesets {} ; # Set of the symbol changesets.
152 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typevariable mylasttimestamp 0 ; # Last delivered timestamp.
153 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typevariable mymaxtimestamp
154 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
155 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!