@@ -7,9 +7,14 @@ def print_result(result)
7
7
return result
8
8
end
9
9
10
- tex1 = "Pass Proofs & 34376 & 35893 (+4.41\\ \% ) & "
11
- tex2 = "The Rest & 85617 & 87965 (+2.74\\ \% ) & "
12
- tex3 = "Whole & 119993 & 123858 (+3.22\\ \% ) & "
10
+ tex1 = "Pass Proofs & 34,376 & 35,893 (+4.41\\ %) & " #NOTE: NEED CHANGE
11
+ tex2 = "The Rest & 85,617 & 87,965 (+2.74\\ %) & " #NOTE: NEED CHANGE
12
+ tex3 = "Whole & 119,993 & 123,858 (+3.22\\ %) & " #NOTE: NEED CHANGE
13
+
14
+ tex4 = "Pass Proofs & 1,842 &" #NOTE: NEED CHANGE
15
+ tex5 = "The Rest & 260 &" #NOTE: NEED CHANGE
16
+ tex6 = "Whole & 2,102 &" #NOTE: NEED CHANGE
17
+
13
18
14
19
puts "Count MultiComp"
15
20
puts
@@ -39,149 +44,188 @@ def print_result(result)
39
44
40
45
loc = `find . ! -path '*demo/*' #{ UPPERBOUNDS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` . split ( "\n " ) [ -1 ] . split ( " " )
41
46
loc = loc [ 0 ] . to_i + loc [ 1 ] . to_i
42
- tex3 = tex3 + loc . to_s + "(+" + ( ( ( loc /119993.0 ) *100 ) . round ( 2 ) ) . to_s + "\\ \ % ) & 2102 & "
47
+ tex3 = tex3 + loc . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "(+" + ( ( ( loc /119993.0 ) *100 ) . round ( 2 ) ) . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "\\ %) & 80,580 & 160,050 (+98.62 \\ %) & 108,776 & 152,104 (+39.83 \\ %) \\ \\ " #NOTE: NEED CHANGE
43
48
44
49
puts
45
50
puts "<<<PASS_PROOFS>>>"
46
51
puts
47
52
temp = print_result ( `coqwc #{ PASS_PROOFS . join ( " " ) } ` )
48
53
loc = loc -temp
49
- tex1 = tex1 + temp . to_s + "(+" + ( ( ( temp /34376.0 ) *100 ) . round ( 2 ) ) . to_s + "\\ \ % ) & 1842 & "
50
- tex2 = tex2 + loc . to_s + "(+" + ( ( ( loc /85617.0 ) *100 ) . round ( 2 ) ) . to_s + "\\ \ % ) & 260 & "
54
+ tex1 = tex1 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "(+" + ( ( ( temp /34376.0 ) *100 ) . round ( 2 ) ) . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "\\ %) & 21,215 & 52,140 (+145.77 \\ %) \\ hspace{-1.8mm} & 26,466 & 30,572 (+15.51 \\ %) \\ \\ " #NOTE: NEED CHANGE
55
+ tex2 = tex2 + loc . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "(+" + ( ( ( loc /85617.0 ) *100 ) . round ( 2 ) ) . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + "\\ %) & 59,365 & 107,910 (+81.73 \\ %) & 82,312 & 121,532 (+47.65 \\ %) \\ \\ " #NOTE: NEED CHANGE
51
56
52
57
puts
53
58
puts "<<Unreadglob-PASS PROOF>>"
54
59
puts
55
60
temp = print_result ( `coqwc #{ UNREADGLOBPROOFS . map { |i | "demo/unreadglob/" + i + ".v" } . join ( " " ) } ` )
56
- tex1 = tex1 + temp . to_s + " & "
61
+ tex4 = tex4 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
57
62
58
63
puts
59
64
puts "<<Unreadglob-rest>>"
60
65
puts
61
66
temp = print_result ( `find demo/unreadglob #{ UNREADGLOBPROOFS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
62
- tex2 = tex2 + temp . to_s + " & "
67
+ tex5 = tex5 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
63
68
64
69
puts
65
70
puts "<<Unreadglob-whole>>"
66
71
puts
67
72
temp = print_result ( `coqwc demo/unreadglob/*.v` )
68
- tex3 = tex3 + temp . to_s + " & "
73
+ tex6 = tex6 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
69
74
70
75
puts
71
76
puts "<<Mutrec-PASS PROOF>>"
72
77
puts
73
78
temp = print_result ( `coqwc #{ MUTRECPROOFS . map { |i | "demo/mutrec/" + i + ".v" } . join ( " " ) } ` )
74
- tex1 = tex1 + temp . to_s + " & "
79
+ tex4 = tex4 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
75
80
76
81
puts
77
82
puts "<<Mutrec-rest>>"
78
83
puts
79
84
temp = print_result ( `find demo/mutrec #{ MUTRECPROOFS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
80
- tex2 = tex2 + temp . to_s + " & "
85
+ tex5 = tex5 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
81
86
82
87
puts
83
88
puts "<<Mutrec-whole>>"
84
89
puts
85
90
temp = print_result ( `coqwc demo/mutrec/*.v` )
86
- tex3 = tex3 + temp . to_s + " & "
91
+ tex6 = tex6 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
87
92
88
93
puts
89
94
puts "<<Utod-PASS PROOF>>"
90
95
puts
91
96
temp = print_result ( `coqwc #{ UTODPROOFS . map { |i | "demo/utod/" + i + ".v" } . join ( " " ) } ` )
92
- tex1 = tex1 + temp . to_s + " & . \\ \\ "
97
+ tex4 = tex4 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & . \\ \\ "
93
98
94
99
puts
95
100
puts "<<Utod-rest>>"
96
101
puts
97
102
temp = print_result ( `find demo/utod #{ UTODPROOFS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
98
- tex2 = tex2 + temp . to_s + " & . \\ \\ "
103
+ tex5 = tex5 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & . \\ \\ "
99
104
100
105
puts
101
106
puts "<<Utod-whole>>"
102
107
puts
103
108
temp = print_result ( `coqwc demo/utod/*.v` )
104
- tex3 = tex3 + temp . to_s + " & "
109
+ tex6 = tex6 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " & "
105
110
106
111
puts
107
112
puts "<<Adq. w.r.t. C>>"
108
113
puts
109
114
temp = print_result ( `coqwc #{ UPPERBOUNDS . map { |i | "bound/" + i + ".v" } . join ( " " ) } ` )
110
- tex3 = tex3 + temp . to_s + " \\ \\ "
115
+ tex6 = tex6 + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ "
111
116
112
- breakdown = "Interaction Semantics & "
117
+ breakdown = "Interaction Semantics/Properties & "
113
118
puts
114
119
puts "<<Interation Semantics>>"
115
120
puts
116
121
temp = print_result ( `coqwc compose/*.v #{ INTERACTIONS . map { |i | "proof/" + i + ".v" } . join ( " " ) } ` )
117
122
loc = loc -temp
118
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
123
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
119
124
120
- breakdown = breakdown + "Language Semantics & "
125
+ breakdown = breakdown + "Language Semantics/Properties & "
121
126
puts
122
127
puts "<<Language Semantics>>"
123
128
puts
124
129
temp = print_result ( `coqwc #{ LANGUAGE . map { |i | i + ".v" } . join ( " " ) } ` )
125
130
loc = loc -temp
126
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
131
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
127
132
128
133
breakdown = breakdown + "Self Simulation & "
129
134
puts
130
135
puts "<<Self Simulation>>"
131
136
puts
132
137
temp = print_result ( `coqwc selfsim/*.v` )
133
138
loc = loc -temp
134
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
139
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
135
140
136
141
137
- breakdown = breakdown + "CompCert Meta & "
142
+ breakdown = breakdown + "\\ cc{} Meta Theory Extension & "
138
143
puts
139
144
puts "<<CompCert Meta>>"
140
145
puts
141
146
temp = print_result ( `find . ! -path '*demo/*' ! -path '*compose/*' ! -path '*proof/*' ! -path '*bound/*' ! -path '*selfsim/*' -name '*.v' \
142
147
#{ PASS_PROOFS . inject ( "" ) { |sum , i | sum + "! -wholename \' \* " + i + "\' " } } #{ INTERACTIONS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } \
143
148
#{ LANGUAGE . inject ( "" ) { |sum , i | sum + "! -wholename \' \* " + i + ".v\' " } } #{ LOWERBOUNDS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } | xargs coqwc`)
144
149
loc = loc -temp
145
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
150
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
146
151
147
- breakdown = breakdown + "CompCertM Meta & "
152
+ breakdown = breakdown + "\\ icc{} Meta Theory & "
148
153
puts
149
154
puts "<<CompCertM meta>>"
150
155
puts
151
156
temp = print_result ( `find proof -name '*.v' ! -name 'Simulation.v' ! -name 'SemProps.v' ! -name 'ModSemProps.v' | xargs coqwc` )
152
157
loc = loc -temp
153
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
158
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
154
159
155
160
breakdown = breakdown + "Mixed Simulation & "
156
161
puts
157
162
puts "<<Mixed Simulation>>"
158
163
puts
159
164
temp = print_result ( `coqwc proof/Simulation.v` )
160
165
loc = loc -temp
161
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
166
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
162
167
163
168
breakdown = breakdown + "Adq. w.r.t. Asm & "
164
169
puts
165
170
puts "<<Adq. w.r.t. Asm>>"
166
171
puts
167
172
temp = print_result ( `coqwc #{ LOWERBOUNDS . map { |i | "bound/" + i + ".v" } . join ( " " ) } ` )
168
173
loc = loc -temp
169
- breakdown = breakdown + temp . to_s + " \\ \\ \n "
174
+ breakdown = breakdown + temp . to_s . reverse . gsub ( /...(?=.)/ , '\&,' ) . reverse + " \\ \\ \n "
170
175
171
176
puts
172
177
puts "<<WHOLE>>"
173
178
puts
174
179
print_result ( `find . ! -path '*demo/*' #{ UPPERBOUNDS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
175
180
176
- puts "----------------------"
177
- print tex1
178
- puts
179
- print tex2
180
- puts
181
- print tex3
182
- puts
183
- puts "----------------------"
184
- print breakdown
185
- puts
181
+ File . open ( "results_table.tex" , 'w' ) do |file |
182
+ file . puts "\\ begin{table}[t]"
183
+ file . puts "%% \\ footnotesize"
184
+ file . puts "\\ scriptsize"
185
+ file . puts "%% [1.25pt]"
186
+ file . puts "\\ begin{tabu}{l |[1.25pt] r | r | r || r | r || r | r }"
187
+ file . puts "Portion & \\ cc{} 3.5 & \\ cc{}R 3.5 & \\ icc{} pack & \\ cc{} 2.1 & \\ ccc{} & \\ cc{} 3.0 & \\ ccx{} \\ \\ "
188
+ file . puts "\\ hline"
189
+ file . puts tex1
190
+ file . puts tex2
191
+ file . puts tex3
192
+ file . puts "\\ end{tabu}"
193
+ file . puts "\\ vspace{2mm}"
194
+ file . puts "\\ caption{SLOC of \\ icc{} and related works --- compared to its baseline \\ cc{}s, respectively}"
195
+ file . puts "\\ end{table}"
196
+ file . puts "\\ label{table:evaluation-ours}"
197
+ file . puts
198
+ file . puts "\\ youngju{Table is fixed -- by jeehoonkang}"
199
+ file . puts
200
+ file . puts
201
+ file . puts
202
+ file . puts
203
+ file . puts
204
+ file . puts "\\ begin{table}[t]"
205
+ file . puts "\\ scriptsize"
206
+ file . puts "\\ parbox{0.4\\ linewidth}{"
207
+ file . puts "\\ begin{tabu}{l | l}"
208
+ file . puts "Portion & SLOC \\ \\ "
209
+ file . puts "\\ hline"
210
+ file . puts breakdown
211
+ file . puts
212
+ file . puts "\\ end{tabu}"
213
+ file . puts "\\ vspace{2mm}"
214
+ file . puts "\\ caption{Breakdown of \\ \\ "
215
+ file . puts " \\ colorbox{light-gray}{\\ icc{} pack - The Rest}}"
216
+ file . puts "}%"
217
+ file . puts "\\ parbox{0.6\\ linewidth}{"
218
+ file . puts "\\ begin{tabu}{l |[1.25pt] r | r | r | r | r}"
219
+ file . puts "Portion & \\ texttt{Unreadglob} 3.5 & \\ texttt{Unreadglob} pack & \\ texttt{mutual-sum} & \\ texttt{utod} & Adq. w.r.t. C \\ \\ "
220
+ file . puts "\\ hline"
221
+ file . puts tex4
222
+ file . puts tex5
223
+ file . puts tex6
224
+ file . puts "\\ end{tabu}"
225
+ file . puts "\\ vspace{2mm}"
226
+ file . puts "\\ caption{SLOC of Additional Developments}"
227
+ file . puts "}%"
228
+ file . puts "\\ end{table}"
229
+ file . puts "\\ label{table:evaluation-others}"
230
+ end
186
231
puts "CHECKING: #{ loc } must be 0"
187
-
0 commit comments