@@ -15,7 +15,10 @@ def print_result(result)
15
15
puts
16
16
17
17
UNREADGLOBPROOFS = [ "UnreadglobproofC" ]
18
- UNREADGLOBPROOFS
18
+
19
+ MUTRECPROOFS = [ "MutrecAproof" , "MutrecBproof" , "MutrecABproof" ]
20
+
21
+ UTODPROOFS = [ "DemoSpecProof" ]
19
22
20
23
PASS_PROOFS = [ "cfrontend/Cstrategyproof" , "cfrontend/SimplExprproof" , "cfrontend/SimplLocalsproof" , "cfrontend/Cshmgenproof" , "cfrontend/Cminorgenproof" ,
21
24
"backend/Selectionproof" , "backend/RTLgenproof" , "backend/Tailcallproof" , "backend/Inliningproof" , "backend/Renumberproof" , "backend/Constpropproof" ,
@@ -24,7 +27,17 @@ def print_result(result)
24
27
25
28
PASS_PROOFS . map! { |i | i + "C.v" }
26
29
27
- loc = `find . ! -path '*demo/*' -name '*.v' ! -name 'UpperBound_AExtra.v' ! -name 'UpperBound_A.v' ! -name 'UpperBound_B.v' | xargs coqwc` . split ( "\n " ) [ -1 ] . split ( " " )
30
+ UPPERBOUNDS = [ "UpperBound_AExtra" , "UpperBound_A" , "UpperBound_B" ]
31
+
32
+ INTERACTIONS = [ "SemProps" , "ModSemProps" ]
33
+
34
+ LANGUAGE = [ "cfrontend/CsemC" , "cfrontend/CstrategyC" , "cfrontend/ClightC" , "cfrontend/CsharpminorC" ,
35
+ "backend/CminorC" , "backend/CminorSelC" , "backend/RTLC" , "backend/LTLC" , "backend/LinearC" ,
36
+ "backend/MachC" , "backend/MachExtra" , "x86/AsmC" , "x86/AsmExtra" ]
37
+
38
+ LOWERBOUNDS = [ "LinkingC2" , "LowerBoundExtra" , "LowerBound" ]
39
+
40
+ loc = `find . ! -path '*demo/*' #{ UPPERBOUNDS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` . split ( "\n " ) [ -1 ] . split ( " " )
28
41
loc = loc [ 0 ] . to_i + loc [ 1 ] . to_i
29
42
tex3 = tex3 + loc . to_s + "(+" + ( ( ( loc /119993.0 ) *100 ) . round ( 2 ) ) . to_s + "\\ \% ) & 2102 & "
30
43
@@ -45,7 +58,7 @@ def print_result(result)
45
58
puts
46
59
puts "<<Unreadglob-rest>>"
47
60
puts
48
- temp = print_result ( `find demo/mutrec #{ UNREADGLOBPROOFS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
61
+ temp = print_result ( `find demo/unreadglob #{ UNREADGLOBPROOFS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } -name '*.v' | xargs coqwc` )
49
62
tex2 = tex2 + temp . to_s + " & "
50
63
51
64
puts
@@ -54,8 +67,6 @@ def print_result(result)
54
67
temp = print_result ( `coqwc demo/unreadglob/*.v` )
55
68
tex3 = tex3 + temp . to_s + " & "
56
69
57
- MUTRECPROOFS = [ "MutrecAproof" , "MutrecBproof" , "MutrecABproof" ]
58
-
59
70
puts
60
71
puts "<<Mutrec-PASS PROOF>>"
61
72
puts
@@ -74,8 +85,6 @@ def print_result(result)
74
85
temp = print_result ( `coqwc demo/mutrec/*.v` )
75
86
tex3 = tex3 + temp . to_s + " & "
76
87
77
- UTODPROOFS = [ "DemoSpecProof" ]
78
-
79
88
puts
80
89
puts "<<Utod-PASS PROOF>>"
81
90
puts
@@ -97,23 +106,22 @@ def print_result(result)
97
106
puts
98
107
puts "<<Adq. w.r.t. C>>"
99
108
puts
100
- temp = print_result ( `coqwc bound/UpperBound_AExtra.v bound/UpperBound_A.v bound/UpperBound_B.v ` )
109
+ temp = print_result ( `coqwc #{ UPPERBOUNDS . map { | i | " bound/" + i + ".v" } . join ( " " ) } ` )
101
110
tex3 = tex3 + temp . to_s + " \\ \\ "
102
111
103
112
breakdown = "Interaction Semantics & "
104
113
puts
105
114
puts "<<Interation Semantics>>"
106
115
puts
107
- temp = print_result ( `coqwc compose/*.v` )
116
+ temp = print_result ( `coqwc compose/*.v #{ INTERACTIONS . map { | i | "proof/" + i + ".v" } . join ( " " ) } ` )
108
117
loc = loc -temp
109
118
breakdown = breakdown + temp . to_s + " \\ \\ \n "
110
119
111
120
breakdown = breakdown + "Language Semantics & "
112
121
puts
113
122
puts "<<Language Semantics>>"
114
123
puts
115
- temp = print_result ( `coqwc cfrontend/CsemC.v cfrontend/CstrategyC.v cfrontend/ClightC.v cfrontend/CsharpminorC.v \
116
- backend/CminorC.v backend/CminorSelC.v backend/RTLC.v backend/LTLC.v backend/LinearC.v backend/MachC.v x86/AsmC.v`)
124
+ temp = print_result ( `coqwc #{ LANGUAGE . map { |i | i + ".v" } . join ( " " ) } ` )
117
125
loc = loc -temp
118
126
breakdown = breakdown + temp . to_s + " \\ \\ \n "
119
127
@@ -125,16 +133,22 @@ def print_result(result)
125
133
loc = loc -temp
126
134
breakdown = breakdown + temp . to_s + " \\ \\ \n "
127
135
128
- breakdown = breakdown + "CompCert Meta & FILL_THIS \\ \\ \n "
136
+
137
+ breakdown = breakdown + "CompCert Meta & "
129
138
puts
130
- puts "<<CompCert Meta: the Rest >>"
139
+ puts "<<CompCert Meta>>"
131
140
puts
141
+ temp = print_result ( `find . ! -path '*demo/*' ! -path '*compose/*' ! -path '*proof/*' ! -path '*bound/*' ! -path '*selfsim/*' -name '*.v' \
142
+ #{ PASS_PROOFS . inject ( "" ) { |sum , i | sum + "! -wholename \' \* " + i + "\' " } } #{ INTERACTIONS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } \
143
+ #{ LANGUAGE . inject ( "" ) { |sum , i | sum + "! -wholename \' \* " + i + ".v\' " } } #{ LOWERBOUNDS . inject ( "" ) { |sum , i | sum + "! -name \' " + i + ".v\' " } } | xargs coqwc`)
144
+ loc = loc -temp
145
+ breakdown = breakdown + temp . to_s + " \\ \\ \n "
132
146
133
147
breakdown = breakdown + "CompCertM Meta & "
134
148
puts
135
149
puts "<<CompCertM meta>>"
136
150
puts
137
- temp = print_result ( `find proof -name '*.v' ! -name 'Simulation.v' | xargs coqwc` )
151
+ temp = print_result ( `find proof -name '*.v' ! -name 'Simulation.v' ! -name 'SemProps.v' ! -name 'ModSemProps.v' | xargs coqwc` )
138
152
loc = loc -temp
139
153
breakdown = breakdown + temp . to_s + " \\ \\ \n "
140
154
@@ -150,16 +164,15 @@ def print_result(result)
150
164
puts
151
165
puts "<<Adq. w.r.t. Asm>>"
152
166
puts
153
- temp = print_result ( `coqwc bound/LinkingC2.v bound/LowerBoundExtra.v bound/LowerBound.v ` )
167
+ temp = print_result ( `coqwc #{ LOWERBOUNDS . map { | i | " bound/" + i + ".v" } . join ( " " ) } ` )
154
168
loc = loc -temp
155
169
breakdown = breakdown + temp . to_s + " \\ \\ \n "
156
170
157
171
puts
158
172
puts "<<WHOLE>>"
159
173
puts
160
- print_result ( `find . ! -path '*demo/*' -name '*.v' ! -name 'UpperBound_AExtra.v' ! -name 'UpperBound_A.v' ! -name 'UpperBound_B .v' | xargs coqwc` )
174
+ print_result ( `find . ! -path '*demo/*' #{ UPPERBOUNDS . inject ( "" ) { | sum , i | sum + " ! -name \' " + i + ".v \' " } } -name '* .v' | xargs coqwc` )
161
175
162
- breakdown . sub! 'FILL_THIS' , loc . to_s
163
176
puts "----------------------"
164
177
print tex1
165
178
puts
@@ -169,4 +182,6 @@ def print_result(result)
169
182
puts
170
183
puts "----------------------"
171
184
print breakdown
185
+ puts
186
+ puts "CHECKING: #{ loc } must be 0"
172
187
0 commit comments