I wasn’t able to do much on Tuesday for personal reasons, and today, on Wednesday, I’ve been feeling sick, but I did write the code for the file instrumentor to unpack jars to a temporary directory. That involved more things I expected; when instrumentation strategies took a classpath as parameter, I had to replace references to jar files with references to directories, for example. Interestingly, the unpacking did not improve things at all, in fact it is between 25 to 50 percent slower. I think that may be because now I’m dealing with a lot of small files, and that is actually worse than processing the large jar. To speed things up, I guess I have to read all annotations when I open a class file, but that also means coming up with a better caching strategy. It’s not important enough to think about that now.
One idea I just had was to check out an older version of DrJava, perhaps from Summer 2004 or Spring 2005, and apply the thread checking techniques to it. I think DrJava had more concurrency problems then, and it would be interesting to see some kind of progression.
I also found out that Corky wants me to do another poster for the Corporate Affiliates meeting this year, just like during the last two years. I enjoy making posters, but it is time-consuming; on the other hand, while I still don’t have anything close to final results, I have a lot more to tell than in the past.