Reference

tomr(1)

TOM resolver

NAME

tomr - TOM resolver

SYNOPSIS

tomr [options]

DESCRIPTION

tomr is the TOM resolver. The resolver converts the info files produced by tomc(1) to a C source and accompanying header file. These output files contain information on the on the units being resolved.
The output from the resolver must be compiled and linked with the object files to form a runnable program. The resolver output contains information needed by the TOM runtime library on all classes, extensions, methods, selectors, etc., present in the program or unit.

COMMON OPTIONS

-I dir

Add the directory dir to the search path. A unit foo is searched for in the directories along the search path. If it is not found, it is searched for in the subdirectory foo of every directory along the search path.
The default search path is . (the current directory) and /usr/tom.

-u unit

Name the unit for which to compile. A unit is defined by its unit file, a file with the extension .u.

--version

Output the version information and exit.

TOMR OPTIONS

-1

Resolve only the indicated unit, not all of them. This is needed when creating shared libraries. It also makes resolution faster, since it only has to be done for modified units, instead of all of them.
If this option is specified, all TOM files in the current unit must have been compiled with the -1 flag to tomc(1).

-n

Do not output the definition file; only create the declaration file. This file can be #included into C sources depending on the functionality of the unit.

-static

Statically resolve the unit. This builds the method dispatch tables which thus need not be built at run time. Though this option saves something in the order of a few centi seconds at run time, the time needed by the resolver is increased a factor of 10 or more. In addition, the subsequent run of GCC on the output also takes much longer for a statically resolved unit.
Static resolution is intended for production code, i.e. it can be part of the release procedure of a program; the developer will normally employ dynamic, per-unit, resolution.
It should be noted that, when resolving statically, deferred objects are flagged as such and can not be allocated at run time. This is in contrast with the behaviour of a program built for dynamic resolution, where deferred objects can be allocated, and only the invocation of a deferred method will raise a condition.

-Y

Create the output for dynamic resolution. This causes the method dispatch tables to be built at run time. This option is on by default. It can be switched off by -static.

-y unit

Create output for dynamically loading the unit being resolved into the unit.

-v

Increase verbosity.

-v-deferred

Report the deferred selectors of each object (class or instance). A deferred selector is a selector corresponding to a method declared for or inherited by an object, but not defined. Such methods are declared with the deferred qualifier.

-v-deferred-instances

List the deferred instances. A deferred instance is an instance having at least one deferred selector, either directly or by inheritance.

-v-non-deferred-instances

List all but the deferred instances.

SEE ALSO

gi(1), tomc(1), gcc(1).

AUTHOR

Pieter J. Schoenmakers <[email protected]>
Department of Electrical Engineering, room EH 9.26
Eindhoven University of Technology
P.O. Box 513
NL-5600 MB Eindhoven
the Netherlands

BUG REPORTS

Bugs can be reported to the author, at [email protected].

MORE INFORMATION

For more information, visit the TOM homepage at http://www.gerbil.org/tom/. To subscribe to the TOM mailing list, send mail to [email protected].