The `compile_to_jvm` command

Usage

`compile_to_jvm [options] <Root-Class> [<Root-Procedure>]`

Command `compile_to_jvm` is the SmallEiffel Java byte code generator for the Java Virtual Machine.

Command `compile_to_jvm` must have at least one argument to indicate the starting execution point of the system.

Thus, execution will start in <Root-Procedure> of <Root-Class>. The default <Root-Procedure> is make.

Loading path for Eiffel source files

`compile_to_jvm` uses the technique described in the documentation for command `finder` to locate the Eiffel source files it tries to compile.

Options to select Eiffel compilation modes

As for command `compile_to_c` there are 8 different compilation modes : -boost, -no_check, -require_check, -ensure_check, -invariant_check, -loop_check and -all_check.
Options have the same meaning as for `compile_to_c`. See compile_to_c documentation for details.

Other options

-o <output_name>:
  Place the main output in file <output_name>.class and other class files in directory <output_name>. When this option is not present, the default is <Root-Class>.
-verbose:
  to have information during the compilation (the full path of loaded files is printed, type inference score, created class files, etc).
-version:
  Show the number of the version of SmallEiffel you're using.
-no_style_warning:
  Suppress output for warning messages related to non respect 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 `SmallEiffelRuntime.java` class

The `SmallEiffelRuntime.java` class implements some low level external features. This file is in the directory `SmallEiffel/sys/runtime`. The file `SmallEiffelRuntime.class` must be present to execute the Java byte-code generated by command `compile_to_jvm`. Do not forget to add this class in your Java `CLASSPATH` system environment variable. You can also copy the file `SmallEiffelRuntime.class` in some appropriate directory.

Examples

Example 1
When SmallEiffel is correctly installed, you can simply type the following command to test the hello world program :

  `compile_to_jvm hello_world`

Then, in order to execute the produced Java byte code, you can use command :

  `java hello_world`

Example 2
As for command `compile_to_c` you can add the option -boost to avoid all assertions checks :

  `compile_to_jvm -boost hello_world`

Example 3
To change the name of the output main class, you have to add the option -o :

  `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 what files are loaded, what files are created, or to fix some installation problem :

  `compile_to_jvm -verbose hello_world`

Copyright © Dominique COLNET and Suzanne COLLIN - <colnet@loria.fr>
Last update: 05 June 1999, by DC & OZ.