diff --git a/Makefile b/Makefile index e60e4b4a..a17059b9 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,6 @@ NoMinMax: mvn -DskipTests package cp target/JavaTXcompiler-0.1-jar-with-dependencies.jar target/JavaTXcompiler-0.1-jar-with-dependencies_NoMinMax.jar -NoErase: +NoOpt: mvn -DskipTests package - cp target/JavaTXcompiler-0.1-jar-with-dependencies.jar target/JavaTXcompiler-0.1-jar-with-dependencies_NoErase.jar + cp target/JavaTXcompiler-0.1-jar-with-dependencies.jar target/JavaTXcompiler-0.1-jar-with-dependencies_NoOpt.jar diff --git a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java index 27731c24..b2316fc3 100644 --- a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java +++ b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java @@ -659,7 +659,7 @@ public class TypeUnifyTask extends RecursiveTask>> { //a <. theta, theta <. a oder a =. theta enthalten //statistics - if (finalresult) writeStatistics("\nNumber of Constraints (" + rekTiefe + "): " + topLevelSets.size()); + writeStatistics("\nNumber of Constraints (" + rekTiefe + "): " + topLevelSets.size()); Set> oneElems = new HashSet<>(); oneElems.addAll(topLevelSets.stream() @@ -815,6 +815,8 @@ public class TypeUnifyTask extends RecursiveTask>> { writeLog("nextSet: " + nextSet.toString()); writeLog("nextSetasList: " + nextSetasList.toString()); + + /* staistics Nextvar an Hand Varianzbestimmung auskommentieren Anfang if (variance == 1) { a = oup.max(nextSetasList.iterator()); nextSetasList.remove(a); @@ -831,7 +833,6 @@ public class TypeUnifyTask extends RecursiveTask>> { nextSetasListRest.remove(a_next); } } - writeStatistics("Rest:" + nextSetasListRest.toString()); //Alle maximale Elemente in nextSetasListRest bestimmen //nur für diese wird parallele Berechnung angestossen. @@ -887,6 +888,9 @@ public class TypeUnifyTask extends RecursiveTask>> { } } } + Nextvar an Hand Varianzbestimmung auskommentieren Ende */ + a = nextSetasList.remove(0); //statisticsList + writeStatistics(a.toString()); if (oderConstraint) {//Methodconstraints werden abgespeichert für die Bytecodegenerierung von Methodenaufrufen methodSignatureConstraint.addAll(((Constraint)a).getmethodSignatureConstraint()); @@ -909,11 +913,13 @@ public class TypeUnifyTask extends RecursiveTask>> { /* Wenn bei (a \in theta) \in a zu Widerspruch in oneElems wird * a verworfen und zu nächstem Element von nextSetasList gegangen */ + /* statistics sameEq wird nicht betrachtet ANGFANG if (!oderConstraint && !sameEqSet.isEmpty() && !checkNoContradiction(a, sameEqSet, result)) { a = null; noShortendElements++; continue; } + statistics sameEq wird nicht betrachtet ENDE */ /* Wenn parallel gearbeitet wird, wird je nach Varianz ein neuer Thread * gestartet, der parallel weiterarbeitet. @@ -947,12 +953,15 @@ public class TypeUnifyTask extends RecursiveTask>> { } if (!oderConstraint) { + + /* statistics sameEq wird nicht betrachtet ANGFANG //ueberpruefung ob zu a =. ty \in nSaL in sameEqSet ein Widerspruch besteht if (!sameEqSet.isEmpty() && !checkNoContradiction(nSaL, sameEqSet, result)) { nSaL = null; noShortendElements++; continue; } + statistics sameEq wird nicht betrachtet ENDE */ } else { nextSetasListOderConstraints.add(((Constraint)nSaL).getExtendConstraint()); @@ -1046,12 +1055,14 @@ public class TypeUnifyTask extends RecursiveTask>> { } if (!oderConstraint) { + /* statistics sameEq wird nicht betrachtet ANGFANG //ueberpruefung ob zu a =. ty \in nSaL in sameEqSet ein Widerspruch besteht if (!sameEqSet.isEmpty() && !checkNoContradiction(nSaL, sameEqSet, result)) { nSaL = null; noShortendElements++; continue; } + statistics sameEq wird nicht betrachtet ENDE */ } else { nextSetasListOderConstraints.add(((Constraint)nSaL).getExtendConstraint()); @@ -2609,6 +2620,7 @@ public class TypeUnifyTask extends RecursiveTask>> { } void writeStatistics(String str) { + if (finalresult) { synchronized ( this ) { try { statistics.write(str + "\n"); @@ -2618,6 +2630,6 @@ public class TypeUnifyTask extends RecursiveTask>> { catch (IOException e) { System.err.println("kein StatisticsFile"); } - } + }} } }