CACAO Manual Page

CACAO is started via the following command:

cacao [options] classname [program arguments]

The method main of the class classname is executed. Method main must have the signature public static void main(String[] argv). The program arguments are passed to method main in the string array argv. The environment variable CLASSPATH must contain the directory of the Java class files. Class archives in zip format are not supported. The options for cacao are in most cases identical to the options of the java interpreter of SUN's JDK, with some additions and minor changes.

Currently recognized options are:

[-classpath path]
Defines the search path for class files. Usually the environment variable CLASSPATH specifies the search path, but this option overides the value of the environment variable.
[-Dpropertyname=value]
Assigns a value to an entry of the system property list.
[-ms initmem{[k|m]}]
Specicfies the heap size at program start. If this size has been used garbage collection is started.
[-mx maxmem{[k|m]}]
Specifies maximal heap size. Default size is 16 MB.
[-oss stacksize{[k|m]}]
no effect, compatibility option
[-ss stacksize{[k|m]}]
no effect, compatibility option
[-noasyncgc]
no effect, compatibility option
[-noverify]
no effect, compatibility option
[-v,-verbose]
CACAO prints a log message of every class loaded.
[-verbosegc]
CACAO prints a log message for each garbage collection.
[-verbosecall]
CACAO prints a log message for each method call.
[-time]
Gives statistics about run time after the program has completed.
[-stat]
Gives detailed statistics about the compiled program.
[-log logfile]
Specifies the logfile. Default is stdout.
[-c(heck){[b][f][n][s]}]
Disables different run time checks. These options improves the run time of programs. But instead of throwing an exception the program crashes. These options should only be used for completely debugged programs.
[b(ounds)]
Disables array bound checks.
[f(loats)]
Allows incorrect floating point results due to NAN's or infinite values.
[n(ull)]
Disables NullPointerException in method calls or object accesses.
[s(ync)]
Disables synchronization. Only useful for single threaded programs like javac.
[-l]
Loads the class files into the CACAO system without calling method main. Used for debugging of CACAO.
[-old]
Use the old JIT compiler instead the new one. Used for debugging and comparison of the two JIT compilers.
[-all]
Compiles all methods without calling them. Used for cross compilation and debugging of CACAO.
[-m methodname]
Compiles the specified method without calling it. Used for debugging of CACAO.
[-sig signature]
specifies the signature of the method specified with the -m option. Used for debugging of CACAO.
[-s(how){[a][c][i][m][s][u]}]
The following options are used for debugging of the CACAO system. The compiler gives the values of internal data structures in readable form:
[a(ssembler)]
Gives an assembles listing of all compiled methods.
[c(onstant)]
Gives a listing of all constant pool entries.
[i(ntermediate)]
Gives the intermediate code of all compiled methods.
[m(ethod)]
Gives a description of all fields and methods of a class.
[s(tack)]
Gives the JavaVM stack for every compiled instruction.
[u(nicode)]
Gives the complete hash table with all unicode symbols.

Last updated by Andreas Krall on September 11th 1998. Please send mail to cacao@complang.tuwien.ac.at for errors and changes.