Harmonia
Home 
Research
   Programming by Voice
   Inteactive Transformations
Publications
   Harmonia
   Ensemble
   Pan
Projects
   Framework
   Languages
   Tools
   Harmonia  Mode
   Eclipse
   Applications
  
People
Sponsors
Help Wanted!

Private Area
 Harmonia-Mode User's Guide Printer-Friendly Version  
Manual Contents

  • Introduction

  • Features

  • Reference
  • Harmonia-Java

    Our Java implementation is much newer than the implementation for Cool and is more complex. Therefore, a few extra things should be said about it.

    What it will do

    Harmonia assumes the standard directory layout defined in Section 7.2.1 of the Java Language Specification.

    When opening a file, harmonia also opens all the other files upon which it depends. The first time that it does so, it caches the semantic data. Therefore, you should expect a much longer delay the first time Harmonia consults a particular library file.

    The directory ".", (the current directory) does not make much sense when you are in an editor. Therefore, the directory "." is interpreted as the directory containing the particular file being examined if it is not in a named package, and is the directory up the directory hierachy as many levels as there is package levels for named packages. This attempts to approximate as well as possible the behavior of javac.

    At this time, there is no provision for "projects". Thus, all open files are considered for semantic information for all other open files. This can lead to strange results at times, with things being defined when one would not think they ought to be. If something seems to not acting in the standard behavior, check all other open buffers. Another consequense is that you must manually change classpaths if you have two sets of files with the same classes defined.

    Bugs

    There are two bugs that you may encounter while using Harmonia. First, Harmonia does not check proper use of compile time constants versus other expressions, definite assignment, or some dataflow information. Also, the mutual shadowing of local variables and types is incorrect. However, please report any other bugs you find with M-x report-harmonia-bug.

    Next Section: Crash Recovery and Bug reporting