Skip to content

Commit 986d228

Browse files
committed
Fix to print tex
1 parent e3f64d9 commit 986d228

File tree

2 files changed

+83
-38
lines changed

2 files changed

+83
-38
lines changed

scripts/line_count.sh

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ elif [ "$1" == "tex" ]; then
6565
cd ../
6666
ruby CompCertM-linking-tex.rb
6767
rm CompCertM-linking-tex.rb
68+
mv results_table.tex scripts/
6869
cd scripts
6970
else
7071
echo "Use one arguments [CompCert_v2.1 / CompCert_v3.0.1 / CompCert_v3.5 / CompCertX / CompComp / CompCertM / CompCertM-linking/ tex]"

scripts/line_count/CompCertM-linking-tex.rb

+82-38
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ def print_result(result)
77
return result
88
end
99

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+
1318

1419
puts "Count MultiComp"
1520
puts
@@ -39,149 +44,188 @@ def print_result(result)
3944

4045
loc=`find . ! -path '*demo/*' #{UPPERBOUNDS.inject(""){|sum, i| sum + "! -name \'" + i + ".v\' "}} -name '*.v' | xargs coqwc`.split("\n")[-1].split(" ")
4146
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
4348

4449
puts
4550
puts "<<<PASS_PROOFS>>>"
4651
puts
4752
temp=print_result(`coqwc #{PASS_PROOFS.join(" ")}`)
4853
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
5156

5257
puts
5358
puts "<<Unreadglob-PASS PROOF>>"
5459
puts
5560
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 + " & "
5762

5863
puts
5964
puts "<<Unreadglob-rest>>"
6065
puts
6166
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 + " & "
6368

6469
puts
6570
puts "<<Unreadglob-whole>>"
6671
puts
6772
temp=print_result(`coqwc demo/unreadglob/*.v`)
68-
tex3=tex3 + temp.to_s + " & "
73+
tex6=tex6 + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " & "
6974

7075
puts
7176
puts "<<Mutrec-PASS PROOF>>"
7277
puts
7378
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 + " & "
7580

7681
puts
7782
puts "<<Mutrec-rest>>"
7883
puts
7984
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 + " & "
8186

8287
puts
8388
puts "<<Mutrec-whole>>"
8489
puts
8590
temp=print_result(`coqwc demo/mutrec/*.v`)
86-
tex3=tex3 + temp.to_s + " & "
91+
tex6=tex6 + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " & "
8792

8893
puts
8994
puts "<<Utod-PASS PROOF>>"
9095
puts
9196
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 + " & . \\\\"
9398

9499
puts
95100
puts "<<Utod-rest>>"
96101
puts
97102
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 + " & . \\\\"
99104

100105
puts
101106
puts "<<Utod-whole>>"
102107
puts
103108
temp=print_result(`coqwc demo/utod/*.v`)
104-
tex3=tex3 + temp.to_s + " & "
109+
tex6=tex6 + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " & "
105110

106111
puts
107112
puts "<<Adq. w.r.t. C>>"
108113
puts
109114
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 + " \\\\ "
111116

112-
breakdown = "Interaction Semantics & "
117+
breakdown = "Interaction Semantics/Properties & "
113118
puts
114119
puts "<<Interation Semantics>>"
115120
puts
116121
temp=print_result(`coqwc compose/*.v #{INTERACTIONS.map{|i| "proof/" + i + ".v"}.join(" ")}`)
117122
loc=loc-temp
118-
breakdown = breakdown + temp.to_s + " \\\\ \n"
123+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
119124

120-
breakdown = breakdown + "Language Semantics & "
125+
breakdown = breakdown + "Language Semantics/Properties & "
121126
puts
122127
puts "<<Language Semantics>>"
123128
puts
124129
temp=print_result(`coqwc #{LANGUAGE.map{|i| i + ".v"}.join(" ")}`)
125130
loc=loc-temp
126-
breakdown = breakdown + temp.to_s + " \\\\ \n"
131+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
127132

128133
breakdown = breakdown + "Self Simulation & "
129134
puts
130135
puts "<<Self Simulation>>"
131136
puts
132137
temp=print_result(`coqwc selfsim/*.v`)
133138
loc=loc-temp
134-
breakdown = breakdown + temp.to_s + " \\\\ \n"
139+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
135140

136141

137-
breakdown = breakdown + "CompCert Meta & "
142+
breakdown = breakdown + "\\cc{} Meta Theory Extension & "
138143
puts
139144
puts "<<CompCert Meta>>"
140145
puts
141146
temp=print_result(`find . ! -path '*demo/*' ! -path '*compose/*' ! -path '*proof/*' ! -path '*bound/*' ! -path '*selfsim/*' -name '*.v' \
142147
#{PASS_PROOFS.inject(""){|sum, i| sum + "! -wholename \'\*" + i + "\' "}} #{INTERACTIONS.inject(""){|sum, i| sum + "! -name \'" + i + ".v\' "}} \
143148
#{LANGUAGE.inject(""){|sum, i| sum + "! -wholename \'\*" + i + ".v\' "}} #{LOWERBOUNDS.inject(""){|sum, i| sum + "! -name \'" + i + ".v\' "}} | xargs coqwc`)
144149
loc=loc-temp
145-
breakdown = breakdown + temp.to_s + " \\\\ \n"
150+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
146151

147-
breakdown = breakdown + "CompCertM Meta & "
152+
breakdown = breakdown + "\\icc{} Meta Theory & "
148153
puts
149154
puts "<<CompCertM meta>>"
150155
puts
151156
temp=print_result(`find proof -name '*.v' ! -name 'Simulation.v' ! -name 'SemProps.v' ! -name 'ModSemProps.v' | xargs coqwc`)
152157
loc=loc-temp
153-
breakdown = breakdown + temp.to_s + " \\\\ \n"
158+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
154159

155160
breakdown = breakdown + "Mixed Simulation & "
156161
puts
157162
puts "<<Mixed Simulation>>"
158163
puts
159164
temp=print_result(`coqwc proof/Simulation.v`)
160165
loc=loc-temp
161-
breakdown = breakdown + temp.to_s + " \\\\ \n"
166+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
162167

163168
breakdown = breakdown + "Adq. w.r.t. Asm & "
164169
puts
165170
puts "<<Adq. w.r.t. Asm>>"
166171
puts
167172
temp=print_result(`coqwc #{LOWERBOUNDS.map{|i| "bound/" + i + ".v"}.join(" ")}`)
168173
loc=loc-temp
169-
breakdown = breakdown + temp.to_s + " \\\\ \n"
174+
breakdown = breakdown + temp.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse + " \\\\ \n"
170175

171176
puts
172177
puts "<<WHOLE>>"
173178
puts
174179
print_result(`find . ! -path '*demo/*' #{UPPERBOUNDS.inject(""){|sum, i| sum + "! -name \'" + i + ".v\' "}} -name '*.v' | xargs coqwc`)
175180

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
186231
puts "CHECKING: #{loc} must be 0"
187-

0 commit comments

Comments
 (0)