The compile_to_jvm Command The compile_to_jvm command is the SmartEiffel Java byte code generator for the Java Virtual Machine. There are two invocation modes: traditional and ACE. In traditional mode, a variety of compiler options can be specified on the command line. In ACE mode, these options are not permitted; it is presumed that the required compiler options are listed in the ACE file. Usage Traditional mode compile_to_jvm [options] [] ACE mode compile_to_jvm [general_options] In traditional mode, the compile_to_jvm command must be given at least one argument to indicate the starting execution point of the system. Thus your program will start in of . The default is make. In ACE mode, the name of the ACE file must end with the .ace suffix. For examples of how to use ACE files, have a look in the SmartEiffel/tutorial/ace directory. Load Path for Eiffel Source Files compile_to_jvm uses the technique described in the documentation for the [1]finder command to locate the Eiffel source files it tries to compile. Note that what actually happens depends on the invocation mode (traditional or ACE). General Options -help: Display a brief summary of the command-line syntax and a complete list of compiler options. -verbose: Print system information during the compilation (full path of files loaded, type inference score, removed files, etc.). -version: Display the version number of the SmartEiffel release you're using. -loadpath : Adds a loadpath file for class lookup. See details in the [2]finder man page. Options to Select Eiffel Compilation Modes (traditional mode only) As with the compile_to_c command, there are 8 different compilation modes: -boost, -no_check, -require_check, -ensure_check, -invariant_check, -loop_check, -all_check and -debug_check. These options have the same meaning as with compile_to_c. See the [3]compile_to_c documentation for details. Other Options (traditional mode only) -o : Place the main output in .class and other class files in the directory . When this option is absent, the default is . -no_style_warning: Suppress output for warning messages related to the non-respecting of standard Eiffel style guidelines (for example, ItEm will not trigger a warning). -case_insensitive: Switch case-insensitive mode on. For example, when this mode is selected, the Eiffel parser considers that the following identifiers refer to the same feature: item, ITEM, ItEm, ... -no_warning: Suppress output for all warning messages. (Error messages are still printed.) The SmartEiffelRuntime.java class The SmartEiffelRuntime.java class implements some low-level external features. This file is in the directory SmartEiffel/sys/runtime. The file SmartEiffelRuntime.class must be present to execute the Java byte-code generated by the compile_to_jvm command. Don't forget to add this class to your Java CLASSPATH system environment variable. You can also copy the file SmartEiffelRuntime.class to some appropriate directory. Examples Example 1 When SmartEiffel is correctly installed, you can type the following command to test the hello world program : compile_to_jvm hello_world Then, in order to execute the Java byte code produced, you can use the command: java hello_world Example 2 As for the compile_to_c command you can add the option -boost to omit all assertion checking: compile_to_jvm -boost hello_world Example 3 To change the name of the generated main class, you have to add the -o option: compile_to_jvm -boost -o out hello_world Then, you can run the Java byte code with: java out Note that the name used for the class files directory is also changed (this directory is also named out). Example 4 Finally, the -verbose option may be useful to check which files are loaded, which files are created, or to fix some installation problem: compile_to_jvm -verbose hello_world [Line] Copyright © Dominique COLNET and Suzanne COLLIN - [4] Last modified: Tue Feb 11 12:14:05 CET 2003 References 1. file://localhost/users/miro/colnet/SmartEiffel/man/finder.html 2. file://localhost/users/miro/colnet/SmartEiffel/man/finder.html 3. file://localhost/users/miro/colnet/SmartEiffel/man/compile_to_c.html 4. mailto:SmartEiffel@loria.fr