$ZCO[MPILE] contains a string value composed of one or more qualifiers that control the GT.M run-time compiler. ZCOMPILE, explicit ZLINKs and auto-ZLINKs use these qualifiers as defaults for any compilations they perform.
$ZCOMPILE is a read-write ISV, that is, it can appear on the left side of the equal sign (=) in the argument to the SET command. A $ZCOMPILE value has the form of a list of M command qualifiers each separated by a space ( ).
When the gtmcompile environment variable is defined, GT.M initializes $ZCOMPILE to the translation of $gtmcompile. Otherwise GT.M initializes $ZCOMPILE to null. Changes to the value of $ZCOMPILE during a GT.M invocation only last for the current invocation and do not change the value of the $gtmcompile environment variable.
When $ZCOMPILE is null, GT.M uses the default M command qualifiers -IGNORE, -LABEL=LOWER, -NOLIST, and -OBJECT. See Chapter 3: “Development Cycle” for detailed descriptions of the M command qualifiers.
Example:
$ export gtmcompile="-LIST -LENGTH=56 -SPACE=2" $ gtm GTM>WRITE $ZCOMPILE -LIST -LENGTH=56 -SPACE=2 GTM>SET $ZCOMPILE="-LIST -NOIGNORE" GTM>WRITE $ZCOMPILE -LIST -NOIGNORE GTM>ZLINK "A.m" GTM>HALT $ echo $gtmcompile -LIST -LENGTH=56 -SPACE=2
This example uses the environment variable gtmcompile to set up $ZCOMPILE. Then it modifies $ZCOMPILE with the SET command. The ZLINK argument specifies a file with a .m extension (type), which forces a compile. The compile produces a listing for routine A.m and does not produce an object module if A.m contains compilation errors. After GT.M terminates, the shell command echo $gtmcompile demonstrates that the SET command did not change the environment variable.