Fortnight-and-Changely Log 02/24 to 03/10

On February 25, I got attributes working; they modify the output of variables. For instance, you can tell a variable that returns a file to make that file relative to some directory.

I spent the remaining days fixing small things that had gone wrong, like the escaping behavior for the quote-balancing tokenizer. I changed the escape character from backslash (\) to dollar ($), and then reversed the behavior of quotes and keywords that start with the escape character: Some text is considered a quote or a keyword unless it is prefixed with the escape character (e.g. ${foo}). Before, the first character was considered an escape character, so to get the quote ${foo}, you had to write $${foo}, and that’s just dumb. This problem is similar to the grep vs. egrep situation.

I also changed the way makeRelativeTo works on Windows: If the file is on a different drive than the directory it should be made relative to, then the absolute path of the file on its drive is returned. That’s not a relative path, but it’s as relative as it can get. The “Execute External Process” variables now work correctly on Windows, too.

Over Spring break, unfortunately I got sick, so I didn’t get as much done as I had wanted. On Tuesday, March 4, I think I finally got the behavior for properties and attributes right.

I then embarked on a small side project: I separated the “maximum heap size” settings for the Main and the Interactions VM from the JVM\_ARGS settings and created settings for the sizes of their own. This also involves “sanitizing” the JVM\_ARGS lines and removing or copying the size into the correct property. I just committed this.

Now we can catch exceptions like com.sun.jdi.VMOutOfMemoryException and java.lang.OutOfMemoryError and directly ask the user to increase the memory size.


About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in DrJava. Bookmark the permalink.

Leave a Reply