FACTDEB parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
Line 16: Line 16:


The meaning of the <var>FACTDEB</var> bits are:
The meaning of the <var>FACTDEB</var> bits are:
<dl>
<table class="wikitable">
<dt>X'01'
<tr><th>X'01'</th>
<dd>Re-compile '''all''' procedures in the subsystem, even if a usable saved compilation is present. Re-compilations resulting from the setting of <code>FACTDEB X'01'</code> are not saved, and any existing saved compilations are not affected. The main reason to use this capability is to force recompilations with non-standard settings of global variables used in dummy strings (<code>?&strings</code>).
<td>Re-compile '''all''' procedures in the subsystem, even if a usable saved compilation is present. Re-compilations resulting from the setting of <code>FACTDEB X'01'</code> are not saved, and any existing saved compilations are not affected. The main reason to use this capability is to force recompilations with non-standard settings of global variables used in dummy strings (<code>?&strings</code>).</td></tr>
</dl>
<th>X'02'</th>
<td>Do not run compilations in the subsystem. That is, all compiled procedures are treated as if they ended with an <code>End Norun</code>. This option is most useful if pre-compiling all procedures in a subsystem via a FACTDEB procedure as indicated by the <code>FACTDEB X'04'</code> bit or if testing all procedures in a subsystem for compilablity, also via a FACTDEB procedure. Since both of these uses require <code>FACTDEB X'04'</code> to be set, and since using this feature without <code>FACTDEB X'04'</code> being set would be guaranteed to result in a compilation loop for a single procedure, it is not permissible to set the <code>FACTDEB X'02'</code> bit without also setting the <code>FACTDEB X'04'</code> bit.</td></tr>
<tr><th>X'04'</th>
<td>Run a special FACTDEB procedure before each standard APSY procedure. The name of this special FACTDEB procedure must be set in a global whose name is the same as the subsystem's communication global (the global that indicates the next subsystem procedure to run) with the string ":FACTDEB" appended to it. So, if the subsystem's communications global is "NEXT", then the FACTDEB procedure is contained in the global named "NEXT:FACTDEB". This allows the FACTDEB procedure to be changed dynamically though typically the procedure name, and so the global, would rarely be changed.</td></tr>
</table>
[[Category:User parameters]]
[[Category:User parameters]]
[[Category:Parameters]]
[[Category:Parameters]]

Revision as of 18:49, 20 November 2012

Summary

Default value
0
Parameter type
User
Where set
User and $Resetn resettable (in subsystem only)
Related products
All
Introduced
Sirius Mods 7.8

Description

This is a bitmask parameter that controls the compilation of subsystem (APSY) procedures. It can only be set if the X'01' bit is set in the SIRAPSYF for the subsystem. This user parameter is unusual in that it can only be set inside a subsystem and is always reset to 0 on exit from a subsystem.

The meaning of the FACTDEB bits are:

X'01' Re-compile all procedures in the subsystem, even if a usable saved compilation is present. Re-compilations resulting from the setting of FACTDEB X'01' are not saved, and any existing saved compilations are not affected. The main reason to use this capability is to force recompilations with non-standard settings of global variables used in dummy strings (?&strings).
X'02' Do not run compilations in the subsystem. That is, all compiled procedures are treated as if they ended with an End Norun. This option is most useful if pre-compiling all procedures in a subsystem via a FACTDEB procedure as indicated by the FACTDEB X'04' bit or if testing all procedures in a subsystem for compilablity, also via a FACTDEB procedure. Since both of these uses require FACTDEB X'04' to be set, and since using this feature without FACTDEB X'04' being set would be guaranteed to result in a compilation loop for a single procedure, it is not permissible to set the FACTDEB X'02' bit without also setting the FACTDEB X'04' bit.
X'04' Run a special FACTDEB procedure before each standard APSY procedure. The name of this special FACTDEB procedure must be set in a global whose name is the same as the subsystem's communication global (the global that indicates the next subsystem procedure to run) with the string ":FACTDEB" appended to it. So, if the subsystem's communications global is "NEXT", then the FACTDEB procedure is contained in the global named "NEXT:FACTDEB". This allows the FACTDEB procedure to be changed dynamically though typically the procedure name, and so the global, would rarely be changed.