NAME
ozc - compile oz code
SYNOPSIS
ozc [mode] options ...
MODES
The ‘ozc’ compiler can operate in one of several mutually exclusive
modes selected by the options below:
-h, -?, --help
Prints out information on all legal options, then exits
-c, --dump
‘ozc -c FILE.oz’ compiles and evaluates the expression in file
FILE.oz, then pickles the resulting value into the output file,
FILE.ozf by default.
-e, --feedtoemulator
‘ozc -e FILE.oz’ compiles and executes the statement in file
FILE.oz. This is the default mode of operation.
-E, --core
‘ozc -E FILE.oz’ translates the statement in file FILE.oz into
the core language, then writes this expanded form into the
output file, FILE.ozi by default.
-S, --outputcode
‘ozc -S FILE.oz’ compiles the statement in file FILE.oz into the
assembly bytecode format, then writes it to the output file,
FILE.ozm by default.
-x, --executable
‘ozc -x FILE.oz’ much like -c, compiles and evaluates the
expression in file FILE.oz, then writes the resulting value into
the output file, by default: FILE (no extension) under Unix or
FILE.exe under Windows. Additionally, it makes the output file
executable. Thus, if Foo.oz contains an application functor:
‘ozc -x Foo.oz’ creates the file Foo (Foo.exe under Windows),
which is executable and can be invoked directly from the shell.
However, you can always run an application functor as follows:
‘ozengine url args ...’ where url is a URL or pathname that
references the application functor.
OPTIONS
Additionally, the compiler understands the following general options:
-v, --verbose
Display all compiler messages
-q, --quiet
Inhibit compiler messages
-M, --makedepend
Instead of executing, write a list of dependencies to stdout
-o FILE, --outputfile=FILE
Write output to FILE (- for stdout)
--execheader=STRING
When invoked with option -x the compiler first outputs a header
so that the output file may be interpreted by the operating
system as an executable. Under Unix, the default behaviour is to
use the following as header:
#!/bin/sh
exec ozengine $0 "$@"
The --execheader option allows you to specify a different
header.
--execpath=STRING
Uses the header given above in the description of --execheader,
except that ozengine is replaced by STRING.
--execfile=FILE
Reads in FILE and uses this as header. Under Windows, the
default behaviour is to use the file provided in
ozhome/bin/ozwrapper.bin, where ozhome is Mozart’s installation
folder. ozwrapper.bin is a Windows executable that launches
ozengine.
--execwrapper=FILE
Reads in ozhome/bin/FILE and uses it as header for executable
files. Apart from ozwrapper.bin, an ozwrapperw.bin is supplied
that launches ozenginew instead of ozengine. This option
provides a convenient way to use this alternative wrapper.
-z N, --compress=N
Pickles may be written in a compressed format. By default they
are not compressed. ‘-z N’ selects a compression level: N is an
integer between 1 and 9. Compressing a pickle may improve
loading/downloading time.
-D NAME, --define=NAME
Define macro NAME. Code source may have ‘\ifdef NAME’
conditional directives that tests whether macro NAME is defined.
-U NAME, --undefine=NAME
Undefines macro NAME
-l MODULES, --environment=MODULES
ozc -l Baz=$HOME/baz.ozf -c Foo.oz
Makes MODULES, a comma-separated list of pairs VAR=URL,
available in the environment. For each VAR=URL, the module
available through the functor at URL is obtained and VAR is
bound to it. The file Foo.oz being compiled can then reference
variable VAR.
-I DIR, --incdir=DIR
Adds DIR to the head of OZPATH which is used to locate files to
\insert.
--include=FILE
Compile and execute the statement in FILE before processing the
remaining options. This can be used e. g. to extend the
compilation environment by executing a declare.
--maxerrors=N
Limit the number of errors reported to N.
--baseurl=STRING
Set the base URL to resolve imports of computed functors to
STRING.
SWITCHES
Finally, phases of the compiler can be controlled by the compiler
switches below:
-g, --(no)debuginfo
Emits code with debugging information. Use this option if you
want to take advantage of The Mozart Debugger. The -g option is
actually an abbreviation for the combination of
--controlflowinfo and --staticvarnames.
--(no)controlflowinfo
Include control flow information
--(no)staticvarnames
Include static variable name information
-p, --(no)profile
Emits code with profiling information. Use this option if you
want to take advantage of The Mozart Profiler.
--(no)gump
Allow Gump definitions.
--(no)compilerpasses
Show compiler passes.
--(no)warnredecl
Warn about top-level redeclarations.
--(no)warnshadow
Warn about all redeclarations.
--(no)warnunused
Warn about unused variables.
--(no)warnunusedformals
Warn about unused variables and formals.
--(no)warnforward
Warn about oo forward declarations.
--(no)warnopt
Warn about missed optimizations.
--(no)expression
Expect expressions, not statements.
--(no)allowdeprecated
Allow use of deprecated syntax.
--(no)staticanalysis
Run static analysis.
--(no)realcore
Output the real non-fancy core syntax.
--(no)debugvalue
Annotate variable values in core output.
--(no)debugtype
Annotate variable types in core output.
--functionalpatterns
Use functional pattern-matching.
ozc(1)