SIRCOMP parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (l)
m (more conversion cleanup)
Line 14: Line 14:
</dl>
</dl>
==Description==
==Description==
This is a bitmask parameter that controls some User Language compilation options.
This is a bitmask parameter that controls some [[SOUL]] compilation options.
The meaning of the <var>SIRCOMP</var> bits are:
The meaning of the <var>SIRCOMP</var> bits are:
<dl>
<table class="thJustBold">
<dt>X'01'
<tr><th>X'01'</th>
<dd>Html/Text statements should compile literals onto an internal $list
<td>Html/Text statements should compile literals onto an internal [[$lists|$list]] rather than STBL.
rather than STBL.
Of course, for a pre-compiled procedure, this $list will be shared among
Of course, for a pre-compiled procedure, this $list will be shared among
all users of the procedure.
all users of the procedure.
Line 25: Line 24:
literal text inside <var>Html</var> or <var>Text</var> blocks, at the cost of slightly more
literal text inside <var>Html</var> or <var>Text</var> blocks, at the cost of slightly more
disk buffer pool usage.
disk buffer pool usage.
<p>
Access to these string literals stored in CCATEMP is highly optimized,
Access to these string literals stored in CCATEMP is highly optimized,
so it might have little or no CPU cost compared to storing them in STBL &mdash; in
so it might have little or no CPU cost compared to storing them in STBL &mdash; in
fact, there might be some CPU benefits in storing them in CCATEMP.
fact, there might be some CPU benefits in storing them in CCATEMP. </p></td></tr>
<dt>X'02'
 
<dd>If a compilation that was started inside a procedure (the <var>Begin</var> statement
<tr><th>X'02'</th>
was in a procedure) is still active when the last Included procedure is closed
<td>If a compilation that was started inside a procedure (the <var>Begin</var> statement was in a procedure) is still active when the last Included procedure is closed (return to command prompt on an interactive thread), the compilation is terminated with an error. </td></tr>
(return to command prompt on an interactive thread), the compilation is terminated
 
with an error.
<tr><th>X'04'</th>
<dt>X'04'
<td>If a compilation that was started inside a procedure is still active when the procedure that contained the Begin is closed, the compilation is terminated with an error. </td></tr>
<dd>If a compilation that was started inside a procedure is still active
</table>
when the procedure that contained the Begin is closed, the compilation
is terminated with an error.
</dl>


The X'02'and X'04' settings are intended to minimize the problems or annoyances
The X'02'and X'04' settings are intended to minimize the problems or annoyances
associated with a forgotten End statement in a <var class="product">User Language</var> procedure, or, more
associated with a forgotten <var>End</var> statement in a <var class="product">SOUL</var> procedure, or, more commonly, unmatched quotes resulting in an <var>End</var> statement being
commonly, unmatched quotes resulting in an <var>End</var> statement being
"swallowed" as part of a literal (producing the well-known
"swallowed" as part of a literal (producing the well-known
<code>M204.1248: LOOKING FOR CLOSE QUOTE</code> message).
<code>M204.1248: LOOKING FOR CLOSE QUOTE</code> message).

Revision as of 18:58, 14 January 2015

Sirius compilation flags

Summary

Default value
X'00'
Parameter type
User
Where set
User resettable
Related products
All
Introduced
Before Sirius Mods 6.7

Description

This is a bitmask parameter that controls some SOUL compilation options. The meaning of the SIRCOMP bits are:

X'01' Html/Text statements should compile literals onto an internal $list rather than STBL.

Of course, for a pre-compiled procedure, this $list will be shared among all users of the procedure. This reduces STBL requirements for requests with large quantities of literal text inside Html or Text blocks, at the cost of slightly more disk buffer pool usage.

Access to these string literals stored in CCATEMP is highly optimized, so it might have little or no CPU cost compared to storing them in STBL — in fact, there might be some CPU benefits in storing them in CCATEMP.

X'02' If a compilation that was started inside a procedure (the Begin statement was in a procedure) is still active when the last Included procedure is closed (return to command prompt on an interactive thread), the compilation is terminated with an error.
X'04' If a compilation that was started inside a procedure is still active when the procedure that contained the Begin is closed, the compilation is terminated with an error.

The X'02'and X'04' settings are intended to minimize the problems or annoyances associated with a forgotten End statement in a SOUL procedure, or, more commonly, unmatched quotes resulting in an End statement being "swallowed" as part of a literal (producing the well-known M204.1248: LOOKING FOR CLOSE QUOTE message). A compilation ended because of the SIRCOMP X'02' or X'04' setting also automatically closes any unclosed quotes or unclosed comment blocks.

The difference between the X'02' bit and the X'04' bit is that the X'02' bit (when the X'04' bit is not set) allows an Including procedure to contain the End statement for a Begin that was in an Included procedure. Unless this unusual structure is used, the X'04' bit is probably a better choice for most sites. If the X'04' bit is set, the setting of the X'02' bit has no effect.