CACAO Manual Page

CACAO is started via the following command:

cacao [-ieee][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 option -ieee is needed for a compliant implementation, the default behaviour of CACAO (aborting in case of floating point exeptions) is both faster and more desirable. The other 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.
[-ieee]
Enables IEEE compliant floating point arithmetic as specified in the JVM specification. The default behavior is aborting CACAO with a floating point exception on overflows.
[-softnull]
Software null pointer check is used instead of hardware null pointer check. Needed for debugging of CACAO.
[-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][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. Works well for javac.
[s(ync)]
Disables synchronization. Only useful for single threaded programs like javac or jBYTEmark.
[-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 21st 1998. Please send mail to cacao@complang.tuwien.ac.at for errors and changes.