COMPOPT parameter

From m204wiki
Revision as of 21:20, 20 October 2024 by Goff (talk | contribs) (Update to reflect 00982784 fix)
Jump to navigation Jump to search

Compiler options

Summary

Default value
X'00'
Parameter type
System
Where set
User 0 CCAIN parameters
Related products
All
Introduced
Before Sirius Mods 6.7

Description

The system parameter COMPOPT facilitates migration to mixed-case SOUL. COMPOPT is a Model 204 bitmask parameter that must be set in the CCAIN (User 0 input) stream. The bits in COMPOPT have the following meanings:

X'01' If on, all procedures start out in Sirius Case ToUpper mode, whether or not they begin with a mixed-case Begin statement. Sirius Case ToUpper mode translates all unquoted tokens to uppercase, so SOUL statements, keywords, variable names, etc. may be written in mixed case. By setting the COMPOPT X'01' bit, a site is essentially enabling mixed-case SOUL almost everywhere.
X'02' If on, Sirius Case Leave compiler directives are to be ignored: if Sirius Case ToUpper is in effect, it remains in effect even if a Sirius Case Leave directive is encountered. Setting the COMPOPT X'02' bit along with the X'01' bit enables mixed-case SOUL everywhere, thus ensuring consistent language processing throughout an Online.
X'04' If on, image or image-item names, either literal or in variables, are to be automatically converted to uppercase before being used in methods or $functions. Since mixed-case SOUL is accomplished by translating unquoted tokens to uppercase, this case conversion for image or image-item names is the runtime equivalent of the compiler mixed-case support.

Setting the COMPOPT X'04' bit enables image and image-item names that appear as literals in SOUL programs to be entered in mixed case. The only time this might be a problem is if there are true mixed-case image or image-item names in an application. A true mixed-case image or image-item name is one written in mixed case, either inside quotation marks (image and image-item names can indeed be put in quotes) or without Sirius Case ToUpper in effect. In general, neither of these is too likely, so true mixed-case image or image-item names are not likely in most applications.

X'08' Only applicable in for Model 204 8.0 to enable transparency mode.

Setting the COMPOPT X'08' bit applies an implicit NAMESAVE to every global image. So, if a large global image did not have NAMESAVE specified, but COMPOPT X’08’ is set, that image's FSCB requirements will go up at runtime. Otherwise, there should be no change to FSCB requirements. The amount of extra space required is 7 bytes for each image item plus the sum of the length of the names of the image items.

If the image is not global, any increase might also increase runtime FSCB usage, and if it’s global it will increase runtime GTBL usage.

See also