Skip to content

Commit d224a53

Browse files
committed
Added missing declarations for native compilation
Minor cleanup Fix in SVCOMPRunner.java which referenced old method
1 parent d54fd82 commit d224a53

6 files changed

Lines changed: 29 additions & 17 deletions

File tree

dartagnan/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@
253253
</buildArgs>
254254
<initializeAtBuildTime>
255255
<!-- Every class should also be registered in OptionsInfo and reflect-config.json -->
256+
<className>com.dat3m.dartagnan.verification.TaskSolver</className>
256257
<className>com.dat3m.dartagnan.wmm.RelationNameRepository</className>
257258
<className>com.dat3m.dartagnan.configuration.OptionNames</className>
258259
<className>com.dat3m.dartagnan.wmm.axiom.Acyclicity</className>

dartagnan/src/main/java/com/dat3m/dartagnan/Dartagnan.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,15 @@ public static void main(String[] args) throws Exception {
113113
}
114114
output.addResult(summary);
115115
}
116-
output.toStdOut(isBatchMode);
116+
117+
output.toStdOut();
117118
// Running batch mode results in normal termination independent of the individual results
118119
System.exit((isBatchMode ? NORMAL_TERMINATION : summary.code()).asInt());
119120
}
120121

121122
// ----------------------------------------------------------------------------------------------------
122123

123-
private static void printOptions() {
124+
public static void printOptions() {
124125
OptionInfo.stream().sorted().forEach(System.out::print);
125126
}
126127

@@ -186,16 +187,16 @@ private static List<File> getProgramFiles(Path path) {
186187
}
187188
}
188189

189-
private static WitnessGraph getWitnessGraph(Dartagnan o, boolean isBatchMode) throws IOException {
190-
if (!o.runValidator()) {
190+
private static WitnessGraph getWitnessGraph(BaseOptions options, boolean isBatchMode) throws IOException {
191+
if (!options.runValidator()) {
191192
return new WitnessGraph();
192193
}
193194

194195
if (isBatchMode) {
195196
throw new IllegalArgumentException("Cannot run validator in batch mode.");
196197
}
197-
logger.info("Witness path: {}", o.getWitnessPath());
198-
return new ParserWitness().parse(new File(o.getWitnessPath()));
198+
logger.info("Witness path: {}", options.getWitnessPath());
199+
return new ParserWitness().parse(new File(options.getWitnessPath()));
199200
}
200201

201202
private static String getWitnessFileName(Program program, Dartagnan o) {

dartagnan/src/main/java/com/dat3m/dartagnan/configuration/OptionInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.dat3m.dartagnan.solver.caat4wmm.coreReasoning.CoreReasoner;
1010
import com.dat3m.dartagnan.utils.options.BaseOptions;
1111
import com.dat3m.dartagnan.utils.printer.Printer;
12+
import com.dat3m.dartagnan.verification.TaskSolver;
1213
import com.dat3m.dartagnan.verification.solving.ModelChecker;
1314
import com.dat3m.dartagnan.verification.solving.RefinementSolver;
1415
import com.dat3m.dartagnan.wmm.RelationNameRepository;
@@ -37,6 +38,7 @@ public static Stream<OptionInfo> stream() {
3738

3839
private static Stream<Class<?>> classes() {
3940
return Stream.of(
41+
TaskSolver.class,
4042
RelationNameRepository.class,
4143
OptionNames.class,
4244
Acyclicity.class,

dartagnan/src/main/java/com/dat3m/dartagnan/utils/printer/OutputLogger.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ public void addResult(ResultSummary result) {
2626
results.add(result);
2727
}
2828

29-
public void toStdOut(boolean batchMode) {
30-
if (batchMode) {
29+
public void toStdOut() {
30+
if (results.isEmpty()) {
31+
return;
32+
}
33+
34+
if (results.size() == 1) {
35+
System.out.println(results.get(0));
36+
} else {
3137
System.out.println("================ Configuration ==================");
3238
System.out.println("cat = " + modelFile);
3339
System.out.print(config.asPropertiesString()); // it already contains its own \n
3440
System.out.println("=================================================");
35-
}
36-
for (ResultSummary r : results) {
37-
if (batchMode) {
41+
for (ResultSummary r : results) {
3842
System.out.println();
43+
System.out.println(r);
3944
}
40-
System.out.println(r);
4145
}
4246
}
4347

dartagnan/src/main/resources/META-INF/native-image/com.dat3m.dartagnan/dartagnan/reflect-config.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
[
2+
{
3+
"name":"com.dat3m.dartagnan.verification.TaskSolver",
4+
"allDeclaredFields": true,
5+
"queryAllDeclaredMethods": true
6+
},
27
{
38
"name": "com.dat3m.dartagnan.wmm.RelationNameRepository",
49
"allDeclaredFields": true,

svcomp/src/main/java/com/dat3m/svcomp/SVCOMPRunner.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.dat3m.svcomp;
22

3+
import com.dat3m.dartagnan.Dartagnan;
34
import com.dat3m.dartagnan.parsers.witness.ParserWitness;
45
import com.dat3m.dartagnan.utils.options.BaseOptions;
56
import com.dat3m.dartagnan.witness.graphml.WitnessGraph;
@@ -69,7 +70,7 @@ private void property(String p) {
6970
public static void main(String[] args) throws Exception {
7071

7172
if(Arrays.asList(args).contains("--help")) {
72-
collectOptions();
73+
Dartagnan.printOptions();
7374
return;
7475
}
7576

@@ -98,9 +99,8 @@ public static void main(String[] args) throws Exception {
9899
return;
99100
}
100101

101-
WitnessGraph witness = new WitnessGraph();
102102
if(r.witnessPath != null) {
103-
witness = new ParserWitness().parse(new File(r.witnessPath));
103+
WitnessGraph witness = new ParserWitness().parse(new File(r.witnessPath));
104104
if(!fileProgram.getName().equals(Paths.get(witness.getProgram()).getFileName().toString())) {
105105
System.out.println("The witness was generated from a different program than " + fileProgram);
106106
System.exit(WRONG_WITNESS_FILE.asInt());
@@ -161,9 +161,8 @@ private static boolean isExternalError(int exitCode) {
161161
}
162162

163163
private static List<String> filterOptions(Configuration config) {
164-
165164
List<String> skip = Arrays.asList(PROPERTYPATH, NATIVE);
166-
165+
167166
return Arrays.stream(config.asPropertiesString().split("\n")).
168167
filter(p -> skip.stream().noneMatch(s -> s.equals(p.split(" = ")[0]))).
169168
map(p -> "--" + p.split(" = ")[0] + "=" + p.split(" = ")[1]).

0 commit comments

Comments
 (0)