Scroll to navigation

ozc(1) General Commands Manual ozc(1)

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:

Prints out information on all legal options, then exits
`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.
`ozc -e FILE.oz' compiles and executes the statement in file FILE.oz. This is the default mode of operation.
`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.
`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.
`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:

Display all compiler messages
Inhibit compiler messages
Instead of executing, write a list of dependencies to stdout
Write output to FILE (- for stdout)
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.
Uses the header given above in the description of --execheader, except that ozengine is replaced by STRING.
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.
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.
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.
Define macro NAME. Code source may have `\ifdef NAME' conditional directives that tests whether macro NAME is defined.
Undefines macro NAME
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.
Adds DIR to the head of OZPATH which is used to locate files to \insert.
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.
Limit the number of errors reported to N.
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:

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
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.
Use functional pattern-matching.