So, what’s left to do? Lots, of course. Mainly, I have to run benchmarks and prepare different versions of DrJava for comparison. But on a shorter term, what’s left to develop?
Yesterday I noticed that I actually do not perform any subtyping warnings on predicate checks (@PredicateLink
– and @Combine
-style annotations). I probably did this because it’s not exactly clear which predicates are equivalent and which aren’t, so there may be a lot of false positives. I also noticed that I’m doing subtyping warnings on @OnlyRunBy
annotations, even though I’ve really only worked out a subtyping relation for @NotRunBy
annotations.
I think I am going to reexamine the behavior of @OnlyRunBy
annotation subtyping, and then provide a way to choose either one (or neither) for the predicate annotations. I really believe the static subtyping warnings are important, as they statically point out misunderstandings in the threading discipline.
I also need to provide a way to set timeouts for Concutest-JUnit and to relax the threads that have to have died by the end of the test. In some (many?) cases, my current checks are too stringent.