This past week was a bit chaotic. Fortunately, the problems about the new interpreter that I had bemoaned in the last posting are going away at a fast pace. Dan really dug into his work on DrJava again, so I’m not worried that we’ll still be plagued by embarrassing bugs in the Interactions Pane anymore by the time we make the next release.
There were also three problems with unintended commits to the trunk that should have gone into a branch. I reverted one of them immediately, but against my gut feeling, the consensus about the other commits was that we don’t revert but instead try to fix it. We’re making progress, but I still have an uneasy feeling. In the case of an unintended large commit, the best thing to do, in my opinion, is always a quick revert. Now, five days later, it would of course be a lot of work to backtrack to the point where the unintended commit was made, and then redo all the changes that were intended, but I have this lingering feeling that, while we’re probably running very close to our intended path, we may not actually be on it.
Out of the three problems, at least one of them seems to have gone away, at least when I run it on Windows in a VM on my MacBook. When I get home from the office, I’ll re-run the tests on a real Windows machine.
There was also a very strange problem with dozens of reported
RejectedExecutionExceptions. Corky managed to find out that this was a bug known to Sun. I’m still not sure if it’s good to leave our code in a state where these exceptions can occur, even though they are not our fault. Before the unintended commits, these problems did not occur. I am going with the group consensus, though, and will try to not worry too much.
I have also begun to update the documentation for DrJava, in preparation of the new release. I don’t exactly know what other developers should add to the documentation (and it’s unlikely they’ll add anythin — in close to three years, I’m the only one to ever have updated it), but here are the new features I introduced since the last stable, features that have to be documented:
- Auto-Import in the Interactions Pane
- Detachable Tabbed Panes
- Detachable Debug Panel
- In the “Auto-Complete” dialog, there is now a button to complete the class with the fully qualified class name, e.g.
java.lang.Objectinstead of just
- The External Process facility in all its glory, including the string substitution language I developed for it. This will be a long and major addition to the documentation.
- The “Follow File” operation and pane
- The “Check for New Version” dialog
- The “Send System Information to DrJava Developers” dialog