$ZCO[MPILE] contains a string value composed of one or more qualifiers that control the GT.M compiler. Explicit ZLINKs and auto-ZLINKs use these qualifiers as defaults for any compilations that they perform.
$ZCOMPILE is a read-write Intrinsic Special Variable, 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, separated with a slash (/).
When the logical name GTM$COMPILE is defined, GT.M initializes $ZCOMPILE to the translation of GTM$COMPILE. 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 GTM$COMPILE.
When $ZCOMPILE is null, GT.M uses the default M command qualifiers /IGNORE, /LABEL=LOWER, /NOLIST and /OBJECT. For detailed descriptions of the M command qualifiers, refer to the "Program Development Cycle" chapter of this manual in GT.M Programmer's Guide.
Example:
$ DEFINE GTM$COMPILE "/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 $ SHOW LOGICAL GTM$COMPILE "GTM$COMPILE" = "/LIST/LENGTH=56/SPACE=2"
This uses the logical name GTM$COMPILE to set up $ZCOMPILE. Then it modifies $ZCOMPILE with an M 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 contains errors. After GT.M terminates, the DCL command SHOW LOGICAL demonstrates that the M SET command did not change the logical name equivalence.