@@ -8,6 +8,7 @@ import maf.lattice.interfaces.{BoolLattice, CharLattice, IntLattice, RealLattice
88import maf .util .benchmarks ._
99import maf .util .{Reader , Writer }
1010import maf .language .scheme .primitives .SchemePrelude
11+ import maf .bench .scheme .*
1112
1213import scala .concurrent .duration ._
1314
@@ -20,7 +21,7 @@ abstract class AnalysisComparisonAlt[Num: IntLattice, Rea: RealLattice, Bln: Boo
2021 def analyses : List [(SchemeExp => Analysis , String )]
2122
2223 // and can, optionally, be configured in its timeouts (default: 30min.) and the number of concrete runs
23- def timeout () = Timeout .start(Duration (30 , SECONDS )) // timeout for the analyses
24+ def timeout () = Timeout .start(Duration (5 , MINUTES )) // timeout for the analyses
2425 def runs = 3 // number of runs for the concrete interpreter
2526
2627 // keep the results of the benchmarks in a table
@@ -77,8 +78,15 @@ object AnalysisComparisonAlt1
7778 ConstantPropagation .Sym
7879 ]:
7980 def k = 0
80- lazy val aam : (SchemeExp => Analysis , String ) = (aamAnalysis(_, k), s " $k-CFA AAM " )
81- lazy val dss : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalAnalysis(_, k), s " $k-CFA DSS " )
81+ lazy val aam0 : (SchemeExp => Analysis , String ) = (aamAnalysis(_, 0 ), s " 0-CFA AAM " )
82+ lazy val aam1 : (SchemeExp => Analysis , String ) = (aamAnalysis(_, 1 ), s " 1-CFA AAM " )
83+ lazy val aam2 : (SchemeExp => Analysis , String ) = (aamAnalysis(_, 2 ), s " 2-CFA AAM " )
84+ lazy val dss0 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalAnalysis(_, 0 ), " 0-CFA DSS" )
85+ lazy val dss1 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalAnalysis(_, 1 ), " 1-CFA DSS" )
86+ lazy val dss2 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalAnalysis(_, 2 ), " 2-CFA DSS" )
87+ lazy val dssFS0 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalFSAnalysis(_, 0 ), " 0-CFA FS-DSS" )
88+ lazy val dssFS1 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalFSAnalysis(_, 1 ), " 1-CFA FS-DSS" )
89+ lazy val dssFS2 : (SchemeExp => Analysis , String ) = (SchemeAnalyses .modflocalFSAnalysis(_, 2 ), " 2-CFA FS-DSS" )
8290 // lazy val wdss: (SchemeExp => Analysis, String) = (SchemeAnalyses.modFlocalAnalysisWidened(_, k), s"$k-CFA WDSS")
8391 // lazy val dssFS: (SchemeExp => Analysis, String) = (SchemeAnalyses.modflocalFSAnalysis(_, k), s"$k-CFA DSS-FS")
8492 // lazy val adaptive: List[(SchemeExp => Analysis, String)] = ls.map { l =>
@@ -87,7 +95,11 @@ object AnalysisComparisonAlt1
8795
8896 def aamAnalysis (prg : SchemeExp , k : Int ) = new SchemeAAMGCAnalysis (prg, k)
8997
90- def analyses = aam :: dss :: Nil
98+ def analyses = List (
99+ aam0, aam1, aam2,
100+ dss0, dss1, dss2,
101+ dssFS0, dssFS1, dssFS2
102+ )
91103
92104 def gambit = List (" array1.scm" ,
93105 " deriv.scm" ,
@@ -102,89 +114,52 @@ object AnalysisComparisonAlt1
102114 " paraffins.scm" ,
103115 " sboyer.scm" ,
104116 " sumloop.scm" ,
105- " wc.scm" ,
106- " cat.scm" ,
117+ // "wc.scm",
118+ // "cat.scm",
107119 " diviter.scm" ,
108120 " matrix.scm" ,
109121 " perm9.scm" ,
110122 " scheme.scm" ,
111- " tail.scm" ,
123+ // "tail.scm",
112124 " compiler.scm" ,
113125 " earley.scm" ,
114126 " mazefun.scm" ,
115127 " peval.scm" ,
116128 " slatex.scm" ,
117129 " tak.scm" ,
118- " ctak.scm" ,
119- " fibc.scm" ,
130+
131+ // "ctak.scm",
132+ // "fibc.scm",
120133 " nboyer.scm" ,
121134 " primes.scm" ,
122135 " string.scm" ,
123136 " trav1.scm"
124137 ).map(file => s " test/R5RS/various/ $file" )
125138
139+ def sas2025 =
140+ List (
141+ // "test/R5RS/gambit/deriv.scm",
142+ // "test/R5RS/gambit/tak.scm",
143+ // "test/R5RS/various/grid.scm",
144+ // "test/R5RS/various/regex.scm",
145+ // "test/R5RS/WeiChenRompf2019/rsa.scm"
146+ )
147+
126148 def gabriel = List (
127149 " boyer" ,
128150 " browse" ,
129151 " cpstak" ,
130152 " dderiv" ,
131153 " deriv" ,
132- " destruct " ,
154+ " destruc " ,
133155 " diviter" ,
134156 " divrec" ,
135157 " puzzle" ,
136158 " takl" ,
137- " triangl"
159+ // "triangl"
138160 ).map(name => s " test/R5RS/gabriel/ $name.scm " )
139161
140162 def main (args : Array [String ]) = runBenchmarks(gabriel)
141- /*
142- List(
143- //VARIOUS
144- "test/R5RS/various/collatz.scm",
145- "test/R5RS/various/mceval.scm",
146- "test/R5RS/various/church.scm",
147- "test/R5RS/various/regex.scm",
148- "test/R5RS/various/blur.scm",
149- "test/R5RS/various/bound-precision.scm",
150- "test/R5RS/various/eta.scm",
151- "test/R5RS/various/gcipd.scm",
152- "test/R5RS/various/four-in-a-row.scm",
153- "test/R5RS/various/grid.scm",
154- "test/R5RS/various/mj09.scm",
155- "test/R5RS/various/primtest.scm",
156- "test/R5RS/various/rsa.scm",
157- //GAMBIT
158- "test/R5RS/gambit/array1.scm",
159- "test/R5RS/gambit/deriv.scm",
160- "test/R5RS/gambit/tak.scm",
161- "test/R5RS/gambit/array1.scm",
162- "test/R5RS/gambit/destruc.scm",
163- "test/R5RS/gambit/diviter.scm",
164- "test/R5RS/gambit/lattice.scm",
165- "test/R5RS/gambit/nboyer.scm",
166- "test/R5RS/gambit/paraffins.scm",
167- "test/R5RS/gambit/perm9.scm",
168- "test/R5RS/gambit/perm.scm",
169- //"test/R5RS/gambit/earley.scm",
170- //"test/R5RS/gambit/matrix.scm",
171- //"test/R5RS/gambit/mazefun.scm",
172- //"test/R5RS/gambit/nqueens.scm",
173- //"test/R5RS/gambit/peval.scm",
174- //"test/R5RS/scp1/flatten.scm",
175- //"test/R5RS/icp/icp_1c_multiple-dwelling.scm",
176- //"test/R5RS/icp/icp_1c_ontleed.scm",
177- //"test/R5RS/icp/icp_1c_prime-sum-pair.scm",
178- //"test/R5RS/icp/icp_2_aeval.scm",
179- //"test/R5RS/icp/icp_3_leval.scm",
180- //"test/R5RS/icp/icp_5_regsim.scm",
181- //"test/R5RS/icp/icp_7_eceval.scm",
182- //"test/R5RS/icp/icp_8_compiler.scm",
183- //"test/R5RS/various/lambda-update.scm",
184- "test/R5RS/various/strong-update.scm"
185- )
186- )
187- */
188163
189164 override def parseProgram (txt : String ): SchemeExp =
190165 val parsed = SchemeParser .parse(txt)
0 commit comments