forked from i21017/JavaCompilerCore
Compare commits
2 Commits
f0022d2b6f
...
c10acc020e
Author | SHA1 | Date | |
---|---|---|---|
|
c10acc020e | ||
|
03b3692724 |
@@ -10,6 +10,7 @@ mkdir $TDIR
|
|||||||
cd $TDIR
|
cd $TDIR
|
||||||
git clone $REPO .
|
git clone $REPO .
|
||||||
git checkout feat/unify-server
|
git checkout feat/unify-server
|
||||||
|
# git checkout 93e1a8787cd94c73f4538f6a348f58613893a584
|
||||||
# git checkout dad468368b86bdd5a3d3b2754b17617cee0a9107 # 1:55
|
# git checkout dad468368b86bdd5a3d3b2754b17617cee0a9107 # 1:55
|
||||||
# git checkout a0c11b60e8c9d7addcbe0d3a09c9ce2924e9d5c0 # 2:25
|
# git checkout a0c11b60e8c9d7addcbe0d3a09c9ce2924e9d5c0 # 2:25
|
||||||
# git checkout 4cddf73e6d6c9116d3e1705c4b27a8e7f18d80c3 # 2:27
|
# git checkout 4cddf73e6d6c9116d3e1705c4b27a8e7f18d80c3 # 2:27
|
||||||
@@ -19,15 +20,14 @@ git checkout feat/unify-server
|
|||||||
# git checkout 1391206dfe59263cdb22f93371cfd1dd5465d97f # 1:29
|
# git checkout 1391206dfe59263cdb22f93371cfd1dd5465d97f # 1:29
|
||||||
|
|
||||||
date "+%Y.%m.%d %H:%M:%S"
|
date "+%Y.%m.%d %H:%M:%S"
|
||||||
|
# sed -i -e 's/source>21/source>23/g' pom.xml
|
||||||
# mvn clean compile -DskipTests package
|
# sed -i -e 's/target>21/target>23/g' pom.xml
|
||||||
## prefix each stderr line with " | "
|
|
||||||
# exec 2> >(trap "" INT TERM; sed 's/^/ | /' >&2)
|
|
||||||
# echo -e "\nMatrix test:\n |"
|
|
||||||
# time java -jar target/JavaTXcompiler-0.1-jar-with-dependencies.jar resources/bytecode/javFiles/Matrix.jav >/dev/null;
|
|
||||||
|
|
||||||
|
|
||||||
mvn clean compile test
|
mvn clean compile -DskipTests package
|
||||||
|
time java -jar target/JavaTXcompiler-0.1-jar-with-dependencies.jar resources/bytecode/javFiles/Matrix.jav;
|
||||||
|
|
||||||
|
# mvn clean compile test
|
||||||
|
|
||||||
|
|
||||||
echo -e "\nCleanup... "
|
echo -e "\nCleanup... "
|
||||||
|
@@ -26,7 +26,7 @@ public class UnifyResultModel {
|
|||||||
this.fc = fc;
|
this.fc = fc;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<UnifyResultListener> listeners = new ArrayList<>();
|
private final List<UnifyResultListener> listeners = new ArrayList<>();
|
||||||
|
|
||||||
public void addUnifyResultListener(UnifyResultListener listenerToAdd) {
|
public void addUnifyResultListener(UnifyResultListener listenerToAdd) {
|
||||||
listeners.add(listenerToAdd);
|
listeners.add(listenerToAdd);
|
||||||
@@ -36,24 +36,30 @@ public class UnifyResultModel {
|
|||||||
listeners.remove(listenerToRemove);
|
listeners.remove(listenerToRemove);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notify(Set<Set<UnifyPair>> eqPrimePrimeSet, UnifyContext context) {
|
private synchronized void announceResult(UnifyResultEvent event) {
|
||||||
Set<Set<UnifyPair>> eqPrimePrimeSetRet = eqPrimePrimeSet.stream().map(x -> {
|
|
||||||
Optional<Set<UnifyPair>> res = new RuleSet(context.placeholderRegistry()).subst(x.stream().map(y -> {
|
|
||||||
if (y.getPairOp() == PairOperator.SMALLERDOTWC) y.setPairOp(PairOperator.EQUALSDOT);
|
|
||||||
return y; //alle Paare a <.? b erden durch a =. b ersetzt
|
|
||||||
}).collect(Collectors.toCollection(HashSet::new)));
|
|
||||||
if (res.isPresent()) {//wenn subst ein Erg liefert wurde was veraendert
|
|
||||||
return new TypeUnifyTask(context).applyTypeUnificationRules(res.get(), fc);
|
|
||||||
}
|
|
||||||
else return x; //wenn nichts veraendert wurde wird x zurueckgegeben
|
|
||||||
}).collect(Collectors.toCollection(HashSet::new));
|
|
||||||
List<ResultSet> newResult = eqPrimePrimeSetRet.stream().map(unifyPairs ->
|
|
||||||
new ResultSet(UnifyTypeFactory.convert(unifyPairs, de.dhbwstuttgart.typeinference.constraints.Pair.generateTPHMap(cons), context.placeholderRegistry())))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
UnifyResultEvent evt = new UnifyResultEvent(newResult);
|
|
||||||
|
|
||||||
for (UnifyResultListener listener : listeners) {
|
for (UnifyResultListener listener : listeners) {
|
||||||
listener.onNewTypeResultFound(evt);
|
listener.onNewTypeResultFound(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void notify(Set<Set<UnifyPair>> eqPrimePrimeSet, UnifyContext context) {
|
||||||
|
context.executor().execute(() -> {
|
||||||
|
Set<Set<UnifyPair>> eqPrimePrimeSetRet = eqPrimePrimeSet.stream().map(x -> {
|
||||||
|
Optional<Set<UnifyPair>> res = new RuleSet(context.placeholderRegistry()).subst(x.stream().map(y -> {
|
||||||
|
if (y.getPairOp() == PairOperator.SMALLERDOTWC) y.setPairOp(PairOperator.EQUALSDOT);
|
||||||
|
return y; //alle Paare a <.? b erden durch a =. b ersetzt
|
||||||
|
}).collect(Collectors.toCollection(HashSet::new)));
|
||||||
|
if (res.isPresent()) {//wenn subst ein Erg liefert wurde was veraendert
|
||||||
|
return new TypeUnifyTask(context).applyTypeUnificationRules(res.get(), fc);
|
||||||
|
}
|
||||||
|
else return x; //wenn nichts veraendert wurde wird x zurueckgegeben
|
||||||
|
}).collect(Collectors.toCollection(HashSet::new));
|
||||||
|
List<ResultSet> newResult = eqPrimePrimeSetRet.stream().map(unifyPairs ->
|
||||||
|
new ResultSet(UnifyTypeFactory.convert(unifyPairs, de.dhbwstuttgart.typeinference.constraints.Pair.generateTPHMap(cons), context.placeholderRegistry())))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
UnifyResultEvent evt = new UnifyResultEvent(newResult);
|
||||||
|
|
||||||
|
this.announceResult(evt);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user