Compiler Configuration File
The Compiler Configuration File describes compiler behaviors, and is checked by the compiler cobc
at compile time.
The default compiler configuration file, default.conf
, is located in $COBOLITDIR/config
on Windows-based systems, and on $COBOLITDIR/share/COBOL-it/config
on UNIX/Linux-based systems.
When modifying compiler configuration flags included in any of the compiler configuration files provided at installation time, care must be taken when upgrading the COBOL-IT compiler, as these files will be overwritten at installation time. This problem can be avoided by renaming files which have been modified, and using the -conf=<myconf.conf>
compiler flag.
COBOL-IT also provides a number of sample compiler configuration files, which contain settings that enhance compatibility with different COBOLs.
These include:
COBOL | Configuration File |
---|---|
Bs2000 | bs2000.conf |
COBOL 2002 | COBOL2002.conf |
COBOL 85 | COBOL85.conf |
IBM | ibm.conf |
Micro Focus | mf.conf |
MVS | mvs.conf |
The compiler can be directed to use any of these files by using the -std
compiler flag. The -std
compiler flag will recognize the filename (without extension) of any of the provided compiler configuration files as a parameter, as follows:
>cobc -std=bs2000 sample.cbl
You may create your own compiler configuration file, and name it whatever you wish.
To direct the compiler to reference a renamed compiler configuration file, locate your renamed compiler configuration file in the $COBOLITDIR/config
on Windows-based systems, and on $COBOLITDIR/share/config
on UNIX/Linux-based systems., and use the -conf
compiler flag as follows:
>cobc -conf=myconf.conf
To facilitate the creation of your own compiler configuration file, you may use the include
phrase to indicate that you wish to include all of the settings of a named compiler configuration file, as follows:
include “default.conf”
assign-clause=mf
binary-byteorder=native
Some compiler configuration flags may also be configured using the $SET statement within the COBOL source. See the $SET Compiler Configuration Flags
section below for a list.
Compiler Configuration Flags
Brief descriptions, and valid settings of supported compiler configuration flags are documented below:
77-opt:[yes/no]
Default is: 77-opt:no
When set to yes:
Optimizes the use of integers stored in USAGE DISPLAY
or PACKED
fields in level 77 data items. The 77-opt
optimizations are enabled by use of the -O
compiler flag.
accept-but-ignore-comp6-signed:[yes/no]
Default is: accept-but-ignore-comp6-signed: no
Affects compilation of data items described as signed, with usage COMP-6
.
When set to yes:
COMP-6
defined as signed (PIC S9)
are compiled as non signed.
accept-with-auto:[yes/no]
Default is: accept-with-auto:no
When set to yes:
Causes the WITH AUTO
clause to be assumed by default on a field-level ACCEPT
statement.
When set to no:
The WITH TAB
clause is assumed by default on a field-level ACCEPT
statement.
accept-with-update:[yes/no]
Default is: accept-with-update:no
When set to yes:
All field-level ACCEPT
statements are interpreted as containing the WITH UPDATE
clause.
align-8:[yes/no]
Default is: align-8:no
On HP Itanium based systems this flag is always enabled
When set to yes:
Aligns 01-level and 77-level data on 8 byte boundaries.
When set to no:
Aligns 01-level and 77-level data on 4-byte boundaries.
all-external-call:[yes/no]
Default is: all-external-call:no
Internal use only. Causes all CALL
statements to be considered EXTERNAL
. This should not be changed.
all-external-link:[yes/no]
Default is: all-external-link:no
When set to yes:
Causes the targets of the CALL
statement to all be assumed to be external-links.
This can improve performance at runtime by optimizing the resolution of the CALL
statement.
alloc-unused-linkage:[yes/no]
Default is: alloc-unused-linkage:no
When set to yes:
Causes the compiler to allocate static memory for level 01 fields in the Linkage Section that are not used in either a USING
clause or an ENTRY
clause.
When set to no:
If level 01 fields in the Linkage Section are not used in either a USING
clause or an ENTRY
clause, these fields are initialized to NULL
, and no memory is allocated for them.
Note that usage of a field for which no static memory has been allocated will provoke a Memory Fault. For cases such as described above, where static memory has not been allocated at compile time, it is possible to programmatically allocate static memory to an unused linkage field using the SET [ linkage field ]
to ADDRESS OF [ data-pointer ]
statement, and avoid the Memory Fault condition.
as400-like :[yes/no]
Default is: as400-like:no
Causes the LIKE
clause to act compatibly with the AS400 implementation of the LIKE
clause.
When set to yes:
A field declared with the LIKE
clause is assumed to be described as PIC X
(other field's byte size).
assign-clause: [ COBOL2002 / mf / ibm / external ]
Default is: assign-clause:mf
Improves compatibility with named COBOL on compilation of ASSIGN
clause.
When set to external:
Targets of all all ASSIGN
causes are considered to be EXTERNAL
.
auto-initialize:[yes/no]
Default is: auto-initialize:yes
Affects automatic initialization behavior.
When set to yes:
Working-storage is automatically initialized when the program is loaded into memory.
auto-load-symb:[yes/no]
Default is: auto-load-symb:yes
When set to yes:
Provides additional control, as regards static symbol definition, by causing the static.symb
and user.symb
files to be automatically loaded with the compiler configuration file.
static.symb
is provided with the compiler distribution, and should not be changed by the user. Static.symb
includes symbols declared by Pro*Cob and Tuxedo. Note that it is overwritten when the compiler is updated.
user.symb
is user-definable and may be placed in the config directory of the COBOL-IT installation, or in the current directory. If user.symb
is missing, no error is generated.
Both static.symb
and user.symb
files may include static-link declarations.
autolock:[yes/no]
Default is: autolock:no
When set to yes:
Sets default for SELECT to LOCK MODE IS AUTOMATIC
bdb:[yes/no]
Default is: bdb:no
When set to yes:
Activates the usage of Oracle Berkeley DB isam files.
bin-opt:[yes/no]
Default is: bin-opt:no
When set to yes:
Enables binary operation optimization. The -bin-opt
optimizations are enabled by use of the -O
compiler flag.
bin-opt-strict:[yes/no]
When set to yes:
Causes -fbin-opt
binary operation optimization to be strictly respected.
binary-byteorder: native / big-endian
Default is: binary-byteorder:big-endian
Defines the binary byte order of USAGE COMPUTATIONAL
data items.
On little-endian platforms like x86, binary-byteorder should be set to "native".
Note that Big-Endian refers to a convention for the storage of integers in memory in which the most significant bytes are stored in the bytes with the lower addresses. The integer 256 is stored in Big- Endian format, as follows: 00000001 00000000
.
Little-Endian refers to a convention of or the storage of integers in memory in which the least significant bytes are stored in the bytes with the lower addresses. The integer 256 is stored in Little-Endian format, as follows: 00000000 00000001
.
The Native option provides the ability to use the "Endianness" of the native processor.
"Endianness" is determined by the Processor of your computer. A simple rule of thumb is that if you have an x86 processor, your platform has a little-endian data storage convention. Otherwise, you most likely have a big-endian data storage convention. Check with your system administrator if you have any questions.
binary-size: 2-4-8 / 1-2-4-8 / 1-8
Default is: binary-size:1-2-4-8
Describes relationship between PIC
description and storage bytes of a binary data item.
Binary byte size defines the allocated bytes according to number associated with PIC 9
clause.
Value: | signed | unsigned | bytes |
---|---|---|---|
'2-4-8' | 1-4 | 1 -4 | 2 |
5-9 | 5 -9 | 4 | |
10-18 | 10 -18 | 8 | |
'1-2-4-8' | 1-2 | 1 -2 | 1 |
3-4 | 3 -4 | 2 | |
5-9 | 5 -9 | 4 | |
10-18 | 10 -18 | 8 | |
'1--8' | 1-2 | 1 - 2 | 1 |
3-4 | 3 - 4 | 2 | |
5-6 | 5 - 7 | 3 | |
7-9 | 8 - 9 | 4 | |
10-11 | 10 - 12 | 5 | |
12-14 | 13 - 14 | 6 | |
15-16 | 15 - 16 | 7 | |
17-18 | 17 - 18 | 8 |
binary-truncate:[yes/no]
Default is: binary-truncate:yes
Governs the behavior of the runtime when binary data is truncated.
When set to yes:
The default value of yes corresponds to the behavior of the TRUNC
compiler directive. The TRUNC
compiler directive causes truncation to be governed by the number of digits in the PICTURE
clause, when moving data into data items described as COMP
, BINARY
, or COMP-4
.
When set to no:
The value of no corresponds to the behavior of the NOTRUNC
compiler directive. The NOTRUNC
compiler directive causes truncation to be governed by the capacity of allocated storage when moving data into data items described as COMP
, BINARY
, or COMP-4
.
bitfield-first-is-lsb: [yes/no]
Default is: bitfield-first-is-lsb:no
call-comp5-as-comp:[yes/no]
Default is: call-comp5-as-comp:no
When set to yes:
Affects the behavior of the CALL
statement. On little-endian platform (intel Linux, Windows) when a call USING
clause contains a literal. When set to yes, causes the literal to be copied as a COMPUTATIONAL
value, rather than as a COMP-5
value.
Example:
In the statement:
CALL "subprogram" USING 1234.
The literal 1234
is passed as a COMP
value when call-comp5-as-comp
is set to yes. Otherwise, the literal 1234
is passed as a COMP-5
value.
call-lowercase: [yes/no]
Default is: call-lowercase:no
The call-lowercase compiler configuration flag affects the handling of literals that are the target of a CALL
statement. As an example, consider the literal "MyProg"
in the statement: CALL "MyProg"
.
When set to yes:
All of the characters in the literal "MyProg"
are converted to lowercase
When set to no (the default):
This setting is ignored.
call-opt: [yes/no]
Default is: call-opt:no
When set to yes:
Enables CALL
statement optimization. Programs containing CANCEL
statements should not be compiled with call-opt:yes
.
call-uppercase: [yes/no]
Default is: call-uppercase:no
The call-uppercase compiler configuration flag affects the handling of literals that are the target of a
CALL
statement. As an example, consider the literal "MyProg"
in the statement: CALL "MyProg"
.
When set to yes:
All of the characters in the literal "MyProg"
are converted to uppercase
When set to no (the default):
This setting is ignored.
carealia-sign: [yes/no ]
Default is: carealia-sign:no
When set to yes:
The carealia-sign
compiler configuration flag causes signed (PIC S9)
variables to be stored according to CA-REALIA
sign storage conventions. For more detail, see -fcarealia-sign compiler flag documentation.
C-cmd-line:[yes/no]
Default is: C-cmd-line:no
When set to yes:
When used with -x
, causes the program to receive command line parameters as though they were given in C. In this case, command line parameters are read as they would be through a "C" interface.
For example: (int argc , char **argv)
C-data-init:[yes/no] [ Internal use only ]
Default is: C-data-init:no
Controls if the C data structure created by the compiler is initialized in the source (at compilation time) or at runtime. This should not be changed.
check-linkage-bound: [yes/no]
Default is: check-linkage-bound:yes
checkpoint: [yes/no]
Default is: checkpoint:no
When set to yes:
Enables setting of checkpoints. Program state is saved at checkpoints, and can be reloaded. For more details on the usage of the checkpoint flag, see the Guidelines for use of Checkpoints.
cics: [yes/no]
Default is: cics:no
When set to yes:
The compiler generates CICS-compliant code.
cmp-inline:[yes/no]
Default is: cmp-inline:no
When set to yes:
Causes comparisons to be inlined in the C code instead of through calls to the runtime library when possible.
cmp-opt:[yes/no]
Default is: cmp-opt:yes
The cmp-opt
compiler flag activates optimizations when comparing literals with variables.
When set to no: This functionality is disabled.
cobol-lines: [yes/no]
Default is: cobol-lines: no
When set to yes:
When compiling with gcc, line directives corresponding to COBOL source code line numbers are added to the "C" source code.
codepage: <codepage-id>
Names the default codepage to be used.
Example: codepage:1252
See compiler option -codepage for more details.
comp5-byteorder: [native/big-endian]
Default is: comp5-byteorder:native
Sets the byte ordering used for COMP-5
data.
When set to native:
A little-endian byte ordering is set.
When set to big-endian:
A big-endian byte ordering is set.
compat-display-to-int:[yes/no]
Default is: compat-display-to-int:no
When set to yes:
Provides compatibility with older versions of COBOL-IT Compiler Suite (prior to version 3.10.5) as regards display to int functionality.
complex-odo:[yes/no]
Default is: complex-odo:no
The compiler flag complex-odo
is now obsolete. OCCURS DEPENDING ON
is always considered to be complex.
compute-ibm:[yes/no]
Default is: compute-ibm:no
Beginning with version 3.7.20 the -fcompute-ibm
compiler flag is used by default.
When set to yes:
Causes arithmetic expressions (like a+B*c) in COMPUTE
statements, and comparisons to use IBM COBOL defined rules for determining the number of decimals used in intermediate results. For details, please consult IBM documentation.LINK?
When set to no:
Causes the maximum number of decimals (machine-dependent, up to 37) to be used in intermediate results of arithmetic expressions in COMPUTE
statements and comparisons.
compute-ibm-trunc: [yes/no]
When compute-ibm
is set to yes:
Causes intermediate results to be truncated (default).
console-is-sysfile: [yes/no]
Default is: console-is-sysfile:no
When set to yes:
Causes DISPLAY .... UPON CONSOLE
statements to be redirected to <file>
when the compiler flag -sysout=<file>
is used. This allows users to maintain a pre-2.11 behavior, which was determine to be defective.
constant: "key=value"
Provides a way to define constants that can be tested for purposes of conditional compilation. When using the constant "key=value"
compiler flag, the conditional compilation below will test true.
$if key=value
$else
$end
continuation-line
Default is: continuation-line:no
When set to yes:
Allows a hyphen in column 7, with no following text, to be recognized as not being a continuation line. When set to yes, a hyphen in column 7, with no following text in quotes is not recognized as a continuation line.
!!! Note A hyphen in column 7, with following text, in quotes, is always recognized as a continuation line. For rules on the handling of continuation lines, see Line Continuations in the COBOL-IT COBOL Reference Manual.LINK
copy-default-leading:[yes/no]
Default is: copy-default-leading:no
When set to yes:
Affects the behavior of the COPY REPLACING
statement.
When copy-default-leading
is set to yes and when using the ==xxx==
notation in a COPY REPLACING
statement, the LEADING
phrase is assumed by default. The LEADING
phrase indicates that only the LEADING
characters identified will be replaced if they match text in the copy file.
copy-exec-replace[yes/no]
Default is: copy-exec-replace:no
When set to yes:
Affects the behavior of the COPY REPLACING
statement. When set to yes, and when a COPY REPLACING == xxx ==
statement is performed, text inside EXEC
/END- EXEC
blocks are also replaced if applicable.
copy-mark: [yes/no]
Default is: copy-mark:no
When set to yes:
Adds mark for begin/end of COPY
In listing and preprocessed file
The copy marks are:
*++SCOPY .\copy/sample.CPY ( beginning of COPY file )
[ COPY file is listed here ]
*--SCOPY .\copy/sample.CPY ( end of COPY file )
copy-partial-replace:[yes/no]
Default is: copy-partial-replace:no
When set to yes:
The copy-partial-replace
compiler configuration flag increases the compatibility of the COPY REPLACING
behavior with Micro Focus compiler behaviors.
When a pattern like COPY FIC1 REPLACING == WJXX- == BY == WJ03- ==
is processed:
- If this flag is on, the preprocessor uses a partial replacement as defined by MF and ANSI2002 standard.
- If it is off (the default) the IBM mainframe and ANSI85 standard is used.
The copy-partial-replace
compiler compiler configuration flag corresponds to the compiler flag:
-fcopy-partial-replace
crtstatus-map:[cit-value] [user-value]
Allows the user to create their own CRT STATUS Map, as described below.
When crt-status-var
is declared as UNSIGNED-INT
, the runtime copies user-value directly into the crt-status-var
. For this case, if you wish to remap the first four function keys, from CIT-Values of 1001 through 1004 to single digits 1 through 4, you would add the entries:
crtstatus-map: 1001 1
crtstatus-map: 1002 2
crtstatus-map: 1003 3
crtstatus-map: 1004 4
The use of hex notation (x00 through x127) to describe characters in user-value is supported. For this case, if you wish to remap the first four function keys, from CIT-Values of 1001 through 1004 to single digits 1 through 4, you would add the entries:
crtstatus-map: 1001 x31
crtstatus-map: 1002 x32
crtstatus-map: 1003 x33
crtstatus-map: 1004 x34
Hex notations permit the user to use values that fall outside of the normal alphanumeric range. More than one character can be represented using hex notation. For example, if you wish to map the cit-value of 1004 to the user-value of 1234 using hex notation, you would add the entry:
crtstatus-map 1004 x31323334
In the example above, in the description of the user-value, after the "x", the values "31", "32", "33", "34" are concatenated to represent the string "1234". When using hex notations, it is recommended that the receiving field be described as PIC X(4)
.
If no crtstatus-map
is defined, CRT STATUS
values are converted to PIC 9(4)
and copied into the crt-status-var
.
ctree: [yes/no]
Default is: ctree:no
When set to yes:
Activates the usage of C-tree isam files.
ctree-field-numbering: [yes/no]
Default is: ctree-field-numbering:no
When set to yes:
Causes the CTREE XDD generator to generate a prefix F <field-number>
before field names. Use with the -fgen-xdd
compiler flag.
ctree-no-full-qualification: [yes/no]
Default is: ctree-no-full-qualification:no
When set to yes:
Affects the behavior of the gen-xdd
compiler flag, causing it to not generate the fully qualified data names in the XDD description of the file. When using the ctree-no-full-qualification
compiler flag with the gen-xdd
compiler flag, the field name generated is:
xxx_<Field_Name>
Where:
xxx
is a unique number (position in the structure),<Field_Name>
is the name of the data field, without any other prefix or suffix.
Use with the gen-xdd
compiler flag.
curdir-include: [yes/no]
Default is: curdur-include:yes
When set to yes:
Causes COPY
files to first be searched for in the current directory, before locations described with the -I <path>
, or with environment variables. The COPY
search is performed for files with default extensions, and with extensions described with the -ext
compiler compiler flag. This is a default behavior.
When set to no:
Causes the search for a COPY
file to not search for COPY
file in the current directory, unless that directory is named by an -I
compiler flag, or by a COB_COPY_DIR
, or COBCPY
environment variable.
datacompress: <integer>
Default is: datacompress:0
To enable compression in VBISAM, you must add:
$SET DATACOMPRESS "x"
before the SELECT
statement.
"x" is a numeric integer literal, ranging from 1 to 9. Higher values produce better compression, at the expense of performance. A setting of 1 provides the best performance, a setting of 9 the best compression.
All users of an indexed file created with compression must re-compile their programs with the DATACOMPRESS
compiler directive and use then same compression setting.
To disable compression (after having enabled it):
$SET NODATACOMPRESS
debug-exec: [yes/no]
Default is: debug-exec:no
When set to yes:
Affects the tracing of EXEC
statements when debugging code that has been compiled with the integrated pre-processor (-preprocess
). When using the Integrated Preprocessor Interface, the default behavior of the debugger is to -not- trace
(display) the code generated by the external preprocessor. Only the original source EXEC
statements are shown. The -fdebug-exec
compiler flag enables the tracing (debugging) of the generated code.
debugging-line:[yes/no]
Default is: debugging-line:no
When set to yes:
Enables support for debugging lines. (Source lines that contain 'D' in indicator column)
debug-parser: [yes/no]
Default is: debug-parser:no
When set to yes:
Allows for the debugging of the parser. (maintainer use only).
decimal-optimize:[yes/no]
Default is: decimal-optimize:no
When set to yes:
Optimizes the conversion from DISPLAY
/COMP-3
to binary values in COMPUTE
statements. When several COMPUTE
statement are in the same paragraph, the compiler will minimize the conversions from DISPLAY
/COMP-3
to binary values for fields that are used (and not modified) in different statements in the same paragraph. Decimal-optimize
is set to yes by default when using either the -O
or -O2
compiler flags.
defaultbyte:[any integer]
Default is: defaultbyte:0
Corresponds to the DEFAULTBYTE
directive. Sets the character used to initialize undeclared Working-Storage.
If specified, the integer value is the ASCII Value of default byte that will be used to fill memory of data items that have been declared in Working-Storage, and which do not have an VALUE
declared. For example, to set the DEFAULTBYTE
to an ASCII SPACE, the setting would be: defaultbyte: 32
.
Note
The compiler configuration flag defaultbyte:[integer]
requires that the use-defaultbyte:yes
compiler configuration flag also be set.
defaultcall:[any integer]
Default is: defaultcall:0
Designates default call-convention used when no CALL-CONVENTION
is mentioned in a CALL
statement.
The integer value for defaultcall
is a numeric literal representing the call convention. The call convention number is a 16-bit number defined as follows:
Bit | Meaning |
---|---|
0-1 | Unsupported |
2 | = 0 - RETURN-CODE is updated on exit |
= 1 - RETURN-CODE is not updated on exit | |
3 | = 0 -CALL is resolved dynamically at run time |
= 1 -CALL is resolved statically at compilation time | |
4-5 | Unsupported |
6 | Windows Only = 0 -CALL use standard C call conventions |
= 1 -CALL use "STDCALL" WINAPI call conventions (used to call Windows standard API) |
Typical values are:
4 Do not modify RETURN-CODE
72 Windows API Call.
disam:[yes/no]
Default is: disam:yes
When set to yes:
Activates the usage of DISAM files.
display-dos:[yes/no]
Default is: display-dos:no
When set to yes:
Causes DISPLAY
statements to use CR
/LF
.
display-ibm:[yes/no]
Default is: display-ibm:no
When set to yes:
Affects the output of the DISPLAY
Statement for numeric fields to be more compatible with IBM mainframe.
displaynumeric-edited-mf50: [yes/no]
Default is: displaynumeric-edited-mf50:yes
displaynumeric-mf50:yes
Used with:
move-spaces-to-display-numeric:yes
causes numeric-edited fields to be allowed to be initialized to spaces.
displaynumeric-mf50:[yes/no]
Default is: displaynumeric-mf50:no
Enhances compatibility with Micro Focus behaviors for MOVE
and INITIALIZE
of data items described as USAGE DISPLAY NUMERIC
.
When set to yes, the following are implied:
move-picx-to-pic9:mf50
move-spaces-to-displaynumeric:yes
When set to yes, compatibility with Micro Focus MOVE
, INITIALIZE
behaviours are enhanced.
Consider an example:
...
77 NUMERIC-FLD PIC 99.
...
INITIALIZE NUMERIC-FLD TO SPACE (NUMERIC_FLD: “<sp><sp>)
MOVE ZERO TO NUMERIC-FLD. (NUMERIC-FLD: “<sp>0\”)
div-check: [yes/no]
Default is: div-check:yes
When set to yes:
Enables the checking of divide operations when binary optimizations are turned on with the use of the -fbin-opt
, or -O
compiler flags. The effect is to cause divide-by-0
operations to generate an exception.
emulate-vms [yes/no]
Default is: emulate-vms:no
When set to yes:
Causes spaces to be stripped from filenames and adds suffix .DAT
if needed.
exception checking
Runtime exception checking is enabled when compiling with -debug
, for the following compiler configuration flags. For details about the Runtime Exception Checking flags, see the file exception.def
, which is located in $COBOLITDIR\include\libcob
, in your distribution.
EC-ALL:[yes/no]
EC-ARGUMENT:[yes/no]
EC-ARGUMENT-FUNCTION:[yes/no]
EC-ARGUMENT-IMP:[yes/no]
EC-BOUND:[yes/no]
EC-BOUND-IMP:[yes/no]
EC-BOUND-ODO:[yes/no]
EC-BOUND-OVERFLOW:[yes/no]
EC-BOUND-PTR:[yes/no]
EC-BOUND-REF-MOD:[yes/no]
EC-BOUND-SET:[yes/no]
EC-BOUND-SUBSCRIPT:[yes/no]
EC-BOUND-TABLE-LIMIT:[yes/no]
EC-DATA:[yes/no]
EC-DATA-CONVERSION:[yes/no]
EC-DATA-IMP:[yes/no]
EC-DATA-INCOMPATIBLE:[yes/no]
EC-DATA-INFINITY:[yes/no]
EC-DATA-INTEGRITY:[yes/no]
EC-DATA-NEGATIVE-INFINITY:[yes/no]
EC-DATA-NOT_A_NUMBER:[yes/no]
EC-DATA-PTR-NULL:[yes/no]
EC-FLOW:[yes/no]
EC-FLOW-GLOBAL-EXIT:[yes/no]
EC-FLOW-GLOBAL-GOBACK:[yes/no]
EC-FLOW-IMP:[yes/no]
EC-FLOW-RELEASE:[yes/no]
EC-FLOW-REPORT:[yes/no]
EC-FLOW-RETURN:[yes/no]
EC-FLOW-SEARCH:[yes/no]
EC-FLOW-USE:[yes/no]
EC-FUNCTION:[yes/no]
EC-FUNCTION-NOT-FOUND:[yes/no]
EC-FUNCTION-PTR-INVALID:[yes/no]
EC-FUNCTION-PTR-NULL:[yes/no]
EC-I-O:[yes/no]
EC-I-O-AT-END:[yes/no]
EC-I-O-EOP:[yes/no]
EC-I-O-EOP-OVERFLOW:[yes/no]
EC-I-O-FILE-SHARING:[yes/no]
EC-I-O-IMP:[yes/no]
EC-I-O-INVALID-KEY:[yes/no]
EC-I-O-LINAGE:[yes/no]
EC-I-O-LOGIC-ERROR:[yes/no]
EC-I-O-PERMANENT-ERROR:[yes/no]
EC-I-O-RECORD-OPERATION:[yes/no]
EC-IMP:[yes/no]
EC-IMP-ACCEPT:[yes/no]
EC-IMP-DISPLAY:[yes/no]
EC-LOCALE:[yes/no]
EC-LOCALE-IMP:[yes/no]
EC-LOCALE-INCOMPATIBLE:[yes/no]
EC-LOCALE-INVALID:[yes/no]
EC-LOCALE-INVALID-PTR:[yes/no]
EC-LOCALE-MISSING:[yes/no]
EC-LOCALE-SIZE:[yes/no]
EC-OO:[yes/no]
EC-OO-CONFORMANCE:[yes/no]
EC-OO-EXCEPTION:[yes/no]
EC-OO-IMP:[yes/no]
EC-OO-METHOD:[yes/no]
EC-OO-NULL:[yes/no]
EC-OO-RESOURCE:[yes/no]
EC-OO-UNIVERSAL:[yes/no]
EC-ORDER:[yes/no]
EC-ORDER-IMP:[yes/no]
EC-ORDER-NOT-SUPPORTED:[yes/no]
EC-OVERFLOW:[yes/no]
EC-OVERFLOW-IMP:[yes/no]
EC-OVERFLOW-STRING:[yes/no]
EC-OVERFLOW-UNSTRING:[yes/no]
EC-PROGRAM:[yes/no]
EC-PROGRAM-ARG-MISMATCH:[yes/no]
EC-PROGRAM-ARG-OMITTED:[yes/no]
EC-PROGRAM-CANCEL-ACTIVE:[yes/no]
EC-PROGRAM-IMP:[yes/no]
EC-PROGRAM-NOT-FOUND:[yes/no]
EC-PROGRAM-PTR-NULL:[yes/no]
EC-PROGRAM-RECURSIVE-CALL:[yes/no]
EC-PROGRAM-RESOURCES:[yes/no]
EC-RAISING:[yes/no]
EC-RAISING-IMP:[yes/no]
EC-RAISING-NOT-SPECIFIED:[yes/no]
EC-RANGE:[yes/no]
EC-RANGE-IMP:[yes/no]
EC-RANGE-INDEX:[yes/no]
EC-RANGE-INSPECT-SIZE:[yes/no]
EC-RANGE-INVALID:[yes/no]
EC-RANGE-PERFORM-VARYING:[yes/no]
EC-RANGE-PTR:[yes/no]
EC-RANGE-SEARCH-INDEX:[yes/no]
EC-RANGE-SEARCH-NO-MATCH:[yes/no]
EC-REPORT:[yes/no]
EC-REPORT-ACTIVE:[yes/no]
EC-REPORT-COLUMN-OVERLAP:[yes/no]
EC-REPORT-FILE-MODE:[yes/no]
EC-REPORT-IMP:[yes/no]
EC-REPORT-INACTIVE:[yes/no]
EC-REPORT-LINE-OVERLAP:[yes/no]
EC-REPORT-NOT-TERMINATED:[yes/no]
EC-REPORT-PAGE-LIMIT:[yes/no]
EC-REPORT-PAGE-WIDTH:[yes/no]
EC-REPORT-SUM-SIZE:[yes/no]
EC-REPORT-VARYING:[yes/no]
EC-SCREEN:[yes/no]
EC-SCREEN-FIELD-OVERLAP:[yes/no]
EC-SCREEN-IMP:[yes/no]
EC-SCREEN-ITEM-TRUNCATED:[yes/no]
EC-SCREEN-LINE-NUMBER:[yes/no]
EC-SCREEN-STARTING-COLUMN:[yes/no]
EC-SIZE:[yes/no]
EC-SIZE-ADDRESS:[yes/no]
EC-SIZE-EXPONENTIATION:[yes/no]
EC-SIZE-IMP:[yes/no]
EC-SIZE-OVERFLOW:[yes/no]
EC-SIZE-TRUNCATION:[yes/no]
EC-SIZE-UNDERFLOW:[yes/no]
EC-SIZE-ZERO-DIVIDE:[yes/no]
EC-SORT-MERGE:[yes/no]
EC-SORT-MERGE-ACTIVE:[yes/no]
EC-SORT-MERGE-FILE-OPEN:[yes/no]
EC-SORT-MERGE-IMP:[yes/no]
EC-SORT-MERGE-RELEASE:[yes/no]
EC-SORT-MERGE-RETURN:[yes/no]
EC-SORT-MERGE-SEQUENCE:[yes/no]
EC-STORAGE:[yes/no]
EC-STORAGE-IMP:[yes/no]
EC-STORAGE-NOT-ALLOC:[yes/no]
EC-STORAGE-NOT-AVAIL:[yes/no]
EC-USER:[yes/no]
EC-VALIDATE:[yes/no]
EC-VALIDATE-CONTENT:[yes/no]
EC-VALIDATE-FORMAT:[yes/no]
EC-VALIDATE-IMP:[yes/no]
EC-VALIDATE-RELATION:[yes/no]
EC-VALIDATE-VARYING:[yes/no]
EC-XML:[yes/no]
EC-XML-CODESET:[yes/no]
EC-XML-CODESET-CONVERSION:[yes/no]
EC-XML-COUNT:[yes/no]
EC-XML-DOCUMENT-TYPE:[yes/no]
EC-XML-IMPLICIT-CLOSE:[yes/no]
EC-XML-INVALID:[yes/no]
EC-XML-NAMESPACE:[yes/no]
EC-XML-RANGE:[yes/no]
EC-XML-STACKED-OPEN:[yes/no]
Compiling with the -debug
compiler configuration flag enables all of the exception checks.
When not compiling with -debug
, you can enable specific exception checks by setting the associated compiler configuration flag to yes in the compiler configuration file.
exclusivelock: [yes/no]
Default is: exclusivelock:no
Causes all files with no LOCK MODE
clause in their SELECT
statement to be declared Implicitly as LOCK MODE is EXCLUSIVE
. For details on other compiler flags related to the treatment of LOCK MODE
, see Guidelines for modifying default handling of the LOCK MODE.
exec-check: [yes/no]
Default is: exec-check:no
When set to yes:
Used with -fsyntax-only
, checks the EXEC SQL
/CICS
/DLI
syntax.
exit-program-forced:[yes/no]
Default is: exit-program-forced:yes
Affects behavior of the EXIT PROGRAM
statement.
When set to yes:
The execution of the EXIT PROGRAM
statement is forced, creating compatibility with non-ISO-standard behavior used by some COBOL compilers.
Note that ISO standards state that the EXIT PROGRAM
should be ignored if the currently running program was not CALL
'ed by a COBOL main program. However, many proprietary COBOL compilers never ignore the EXIT PROGRAM
statement
When set to no:
The EXIT PROGRAM
statement behaves according to ISO standards, which state that the EXIT PROGRAM
should be ignored if the currently running program was not CALL
'ed by a COBOL main program.
expand-exec-copy:[yes/no]
Default is: expand-exec-copy:no
When set to yes:
Causes the compiler to expand COBOL COPY
statements inside EXEC ... END-EXEC
blocks. This applies to both EXEC SQL
and EXEC CICS
blocks.
expand-sql-include:[yes/no]
Default is: expand-sql-include:no
When set to yes:
Used with -E
, expands 'EXEC SQL INCLUDE <File name> END-EXEC
in the -E
output.
external-link: <function name>
Causes [function name]
to be declared as an external non-COBOL symbol.
Usage:
external-link: functionName
Using the compiler configuration flag external-link will cause the code "CALL 'function-name' "
to generate more efficient code.
external-mapping:[yes/no]
Default is: external-mapping:yes
Allows files declared as EXTERNAL
to be resolved using environment variables.
When set to yes:
File names of files declared as EXTERNAL
are resolved at run time using environment variables. See filename-mapping for detail about name-mapping.
fast-figurative-move: [yes/no]
Default is: fast-figurative-move:yes
When set to yes:
Optimizes the performance of the MOVE
of figurative constants (default).
fast-op: [yes/no]
Default is: fast-op:no
When set to yes:
Enables the runtime to use faster operations when manipulating data items declared as USAGE DISPLAY
or USAGE COMP-3
. Fast-op
is set to yes by default when using either the -O
or -O2
compiler flag.
fcdreg: [yes/no]
Default is: fcdreg:no
When set to yes:
Corresponds to the FCDREG
compiler directive. This compiler flag provides functionality in applications that are using the EXTFH file system interface. For more detail see the description of the -ffcdreg compiler flag.
fdclear:[yes/no]
Default is: fdclear:no
When set to yes:
Causes the record to be INITIALIZE
'd after each WRITE
.
file-auto-external:[yes/no]
Default is: file-auto-external:yes
The -file-auto-external
compiler flag affects the way that the compiler treats variables describing file-names for files described as EXTERNAL
. For more detail, see the description of the -ffile-auto-external compiler flag.
filename-mapping:[yes/no]
Default is: filename-mapping: yes
Allows file names to be resolved at runtime using environment variables.
When set to yes:
File names are resolved at run time, checking for environment variables.
For example, given ASSIGN TO "DATAFILE"
, the actual file name will be
- the value of environment variable
DD_DATAFILE
or - the value of environment variable
dd_DATAFILE
or - the value of
environment
- the literal
"DATAFILE"
When set to no:
The value of the ASSIGN
clause is treated as the filename.
first-tab-width:[any integer]
Default is: first-tab-width:8
Allows the user to define the size of the first tab.
Note
This is done to support the RM/COBOL standard that defines the first tab as 8 characters, and following tabs as 6 characters. To mimic this standard, you would set tab-width: 6
, and first- tab-width: 8
.
flat-extfh: <DRIVER NAME>
INFORMATION MISSING?
flat-extfh-lib: <library to use for this extfh driver>
The configuration file flags flat-extfh
and flat-extfh-lib
enable the usage of EXTFH drivers for Sequential and Relative files.
Note
When used, they should be used together.
fold-copy-lower: [yes/no]
Default is: fold-copy-lower:no
When set to yes:
Folds COPY
file names to lower case.
fold-copy-upper:[yes/no]
Default is: fold-copy-upper:no
When set to yes:
Folds COPY
file names to upper case.
fp-opt:[yes/no]
Default is: fp-opt:no
When set to yes:
Causes COMP-2
operations to be inlined in C, and maximizes the use of the CPU Floating Point unit.
free-thread-safe-data: [yes/no]
Default is: free-thread-safe-data:no
When set to yes:
When used with -thread-safe
compiler flag, frees data in modules after a CANCEL
event that is not a FULL-CANCEL
.
fstatus-map:[cit-status] = [custom-status]
Allows COBOL-IT to map file IO statuses to custom values.
Example:
fstatus-map: 22 = 67
In the example above, when the file system returns status 22, the value will be translated to 67 before returning to the application. This flag may be repeated as many as needed for all expected translation.
full-cancel:[yes/no]
Default is: full-cancel:no
Affects the behavior of the CANCEL
statement which, by default, causes a "Logical Cancel" to be implemented.
When set to yes:
All CANCEL
statements performed in the running program cause a "Full Cancel" to be implemented.
This behavior can also be achieved by setting the runtime environment variable
COB_FULL_CANCEL to Y
Clarifications on the difference between a "Logical Cancel" and "Full Cancel":
- In a "Logical Cancel", the Working-Storage Section is reset to its initial values. Working-Storage initial values are the values set the first time the module was loaded in memory.
- In a "Full Cancel", the Working-Storage Section is reset to its initial values, and the module binary is unloaded, if possible, from memory. Unloading the module binary from memory is only possible if the module is not being used in another region/thread, and it has been loaded by a
CALL STATEMENT
(not by a preload of a shared library).
functions-all:[yes/no]
Default is: functions-all:no
When set to yes:
Allows use of intrinsic functions without the FUNCTION
keyword.
Note
The mf.conf
configuration file, which contains compiler configuration flags designed to match Micro Focus default behaviours, includes the setting functions-all: yes
. Micro Focus users that require the use of the FUNCTION
keyword should re-set this option to functions-all: no
.
functions-all-intrinsic:[yes/no]
Default is: functions-all-intrinsic:no
When set to yes:
Allows use of intrinsic functions without the FUNCTION
keyword.
gcc:[yes/no]
Default: no for all UNIX platforms
Default: yes for Linux platforms
When set to yes:
Generates gcc-compliant
C code. The -fgcc
compiler flag is enabled when COB_CC=gcc
.
gcc-O-bug:[yes/no]
Default is: gcc-O-bug:no
When set to yes:
When using -O
, some versions of gcc generate incorrect code. This bug is avoided by using the -gcc-O-bug
compiler flag.
gcc-bug:[yes/no]
Default is: gcc-bug:no
When set to yes:
When using a gcc compiler on very large source files, the gcc compiler could enter an infinite loop. This bug is avoided by using the -gcc-bug
compiler flag.
gcc-goto:[yes/no]
Default is: gcc-goto:no
When set to yes:
Generates gcc-computed goto code. The -fgcc-goto
compiler flag is enabled when using the -fgcc
compiler flag, or when COB_CC=gcc
UNFINSHED SENTENCE?
gcos-mode:[yes/no]
Default is: gcos-mode:no
When set to yes:
Causes the compiler to more closely emulate GCOS operations.
gen-xdd:[yes/no]
Default is: gen-xdd:no
When set to yes:
Causes the compiler to generate a c-TreeACE.xdd
file.
global-typedef:[yes/no]
Default is: global-typedef:yes
When set to yes:
Causes TYPEDEF
s to be GLOBAL
for all nested program. If not set, TYPEDEF
s are local to the current program.
ibm-listing-macro:[yes/no]
Default is: ibm-listing-macro:yes
When set to yes:
Enables IBM listing extensions (TITLE, SKIP1/2/3, EJECT ...) (default).
ibm-mainframe:[yes/no]
Default is: ibm-mainframe:no
When set to yes:
Causes the compiler and runtime to operate in an IBM Mainframe compatible mode.
ibm-sync:[yes/no]
Default is: ibm-sync:yes
When set to yes:
Applies SYNC
attribute to group item if first elementary field is described with the SYNC
attribute. (default).
When set to no:
The SYNC
attribute is not applied to a group item if the first elementary field in the group item is described with the SYNC
attribute.
identifier-length:<max-length>
Default is: identifier-length:0
The identifier-length
compiler configuration flag allows compatibility to be achieved with other compilers, as regards the maximum length of a variable name.
When set to 0
:
COBOL-IT has no limit on the length of a variable name, and will never test for this, or generate an error.
When set to a positive, non-zero value:
COBOL-IT will generate an error if the length of a variable name exceeds the the max-length named by identifier-length.
To achieve compatibility with the IBM COBOL compiler, for example, which generates an error when a variable name exceeds 30 characters, set identifier-length: 30
.
ignore-global-in-local-storage: [yes/no]
Default is: ignore-global-in-local-storage:no
ignore-with-rollback: [yes/no]
Default is: ignore-with-rollback:no
implicit-init: [yes/no]
Default is: implicit-init:no
When set to yes:
Initializes the COBOL runtime system at runtime start-up.
Include-main: [yes/no]
Default is: include-main:no
When set to yes:
Causes main symbol to be included in module object when compiled with -c. For more details, see the documentation of the -finclude-main compiler flag.
incomplete-subscript:[yes/no]
Default is: incomplete-subscript:yes
Affects the behavior of MOVE
s to table items.
When set to yes:
Consider a data item declared as 01 TABLE OCCURS 10 PIC X
.
The phrase MOVE SPACE TO TABLE
is equivalent to MOVE ALL SPACE TO TABLE
.
index-optimize:[yes/no]
Default is: index-optimize:no
Improves performance where indexes in tables are evaluated and USAGE DISPLAY
fields are used as indexes. In these cases, the index values are cached in a C integer field to improve performance.
As an example, consider the usage of the follow code:
…
01 IxdA PIC 999 USAGE DISPLAY.
01 IxdB PIC 999 USAGE DISPLAY.
…
MOVE FLD-ARRAY(IxdA, ixdB) TO …
MOVE FLD-ARRAY(IxdA, ixdB) TO …
IF (FLD-ARRAY(IxdA, ixdB) …
When set to yes:
Benefits the performance of these MOVE
and IF
statements by keeping the actual value of the index in a binary C cache, thus avoiding conversion from DISPLAY
(or COMP-3
) to a binary value each time the index is evaluated in a statement. index-optimize
is set to yes by default when using the -O
or -O2
compiler flags.
indirect-redefines:[yes/no]
Default is: indirect-redefines:yes
Enables the REDEFINES
of a variable that REDEFINES
another variable.
When set to yes:
Redefines of a redefining variable is allowed.
When set to no:
Redefines of a redefining variable is not allowed.
Example of a redefines of a redefining variable:
10 VALA PIC 99.
10 VALB PIC XX REDEFINES VALA.
10 VALC PIC 99 REDEFINES VALB.
initcall:<program-name>
The initcall
compiler configuration flag names modules to be called immediately before the first statement of a program is executed.
Initialize-fd:[yes/no]
Default is: initialize-fd:no
When set to yes:
Causes records declared in the FD section to be initialized when the program is initially loaded in memory.
initialize-filler:[yes/no]
Default is: initialize-filler:no
Affects whether the INITIALIZE
statement does or does not initialize fields declared as FILLER
.
When set to yes:
When performing an INITIALIZE
statement, FILLER
fields defined in elementary fields are initialized to the default value or to data of the VALU
E clause (depending on initialize-to-value.
When set to no:
When performing an INITIALIZE
statement, FILLER
fields are left unchanged.
initialize-opt:[yes/no]
Default is: initialize-opt:no
When set to yes:
Optimizes the implementation of the initial field initialization at runtime startup and the execution of the INITIALIZE
statement by grouping field initializations wherever possible.
initialize-pointer:[yes/no]
Default is: initialize-pointer:yes
Affects whether elementary fields described as USAGE INDEX
, USAGE POINTER
, USAGE PROGRAM POINTER
are initialized by the INITIALIZE
verb.
When set to yes:
Elementary fields described as USAGE INDEX
, USAGE POINTER
, USAGE PROGRAM-POINTER
are initialized by the INITIALIZE
verb.
When set to no:
Elementary fields described as USAGE INDEX
, USAGE POINTER
, USAGE PROGRAM-POINTER
are not initialized by the INITIALIZE
verb.
initialize-to-value:[yes/no]
Default is: initialize-to-value:no
Affects the behavior of the INITIALIZE
statement.
When set to yes, when performing an INITIALIZE
statement:
If a data element contains a VALUE
clause, then the INITIALIZE
statement causes the data element to be INITIALIZE
'd to the value defined in it's VALUE
clause.
If a data element contains no VALUE
clause, then the INITIALIZE
statement causes the data element to be INITIALIZE
'd using the defaults.
initial-2:[yes/no]
Default is: initial-2:no
When set to yes:
A program marked as IS INITIAL, on program entry, Working-Storage items with a VALUE clause are initialized, and Working-Storage items without a VALUE clause are undefined.
The default is for a program marked as IS INITIAL, on program entry, to reinitialize all values in Working-Storage.
isam-extfh: <DRIVER NAME>
INFORMATION MISSING?
isam-extfh-lib: <library to use for this extfh driver>
The configuration file flags isam-extfh
and isam-extfh-lib
enable the usage of EXTFH drivers for Indexed ISAM files.
Note
When used, they should be used together.
Usage: isam-extfh: <DRIVER NAME>
isam-extfh-lib: <library to use for this extfh driver>
keep-copy-statement:[yes/no]
Default is: keep-copy-statement:no
When set to yes:
Causes listings and preprocessed files to keep COPY
statements.
keep-org-src-line:[yes/no]
Default is: keep-org-src-line:yes
When set to yes:
For use with the integrated pre-processor (-preprocess
). Causes errors to be reported on the original source line.
keep-unused:[yes/no]
Default is keep-unused:yes
When set to yes:
Causes memory to be allocated for the field tree of level-01 and level-77 data items that are declared which contain sub-fields and in which none of these sub-fields is used.
When set to no:
Causes memory to not be allocated for the field tree of level-01 and level-77 data items that are declared which contain sub-fields and in which none of these sub-fields is used.
key-dup-always-22:[yes/no]
Default is: key-dup-always-22:no
Forces the runtime to return a file status of 22 on a duplicate key condition.
When set to yes:
When adding a record to an INDEXED
file that is open in OUTPUT
mode if a duplicate key condition is detected, the runtime will return a file status 22.
keycompress: [integer between 0 and 9 ]
Default is: keycompress:0
To enable key compression in VBISAM, you must add:
$SET KEYCOMPRESS "x"
before the SELECT
statement.
"x" is a numeric integer literal, ranging from 1 to 9. Higher values produce better compression, at the expense of performance. A setting of 1 provides the best performance, a setting of 9 the best compression.
All users of an indexed file created with compression must re-compile their programs with the KEYCOMPRESS
compiler directive and use the same compression setting.
To disable compression (after having enabled it):
$SET NOKEYCOMPRESS
larger-redefines-ok:[yes/no]
Default is: larger-redefines-ok:yes
Allows a larger variable to redefine a smaller variable
When set to yes:
Larger variables may redefine smaller variables.
When set to no:
Larger variables may not redefine smaller variables.
line-seq-dos:[yes/no]
Default is: line-seq-dos:no
Determines the end-of-record delimiter used on line sequential files.
When set to yes:
Line sequential records are terminated by a CR/LF.
When set to no:
Line sequential records are terminated by a CR.
line-seq-mf:[yes/no]
Default is: line-seq-mf:yes
Affects the storage of bytes with values less than 0x20 in line sequential files.
When set to yes:
Line sequential files preface bytes with values less than 0x20 with 0x00. Thus, when you write the bytes X"1F", X"20" to a line sequential file, they will be recorded in the file as: X"00" X"1F" X"20"
.
line-seq-notrunc:[yes/no]
Default is: line-seq-notrunc:no
The line-seq-notrunc
compiler configuration flag affects the behavior of the runtime when a line sequential record is read that is longer than the declared record length.
When set to yes:
The part of the record that exceeds the declared record length is returned as the next record.
When set to no (the default):
The record is truncated.
line-seq-recording-mode:[yes/no]
Default is: line-seq-recording-mode:no
Affects the interpretation of the RECORDING MODE F
clause on line sequential files.
When set to yes:
The record is written to disk including all trailing spaces.
When set to no:
Trailing spaces are removed from the record before writing it to disk.
line-seq-unix:[yes/no]
Default is: line-seq-linux:no
Obsolete INFORMATION MISSING?
link-only: [yes/no]
Default is: link-only:no
When set to yes:
Causes the main( ) symbol to not be generated, when used with -x
. For use when the program entry point (main) is provided by an external object or library.
listing-sources: [yes/no]
Default is: listing-sources:no
When set to yes:
Informs the compiler that source is the result of program listing option (-t <file>
).
local-storage-guard: 8 (internal use only)
Default is: local-storage-guard:8
This setting is for internal use only, and should not be changed.
loosy-comment[yes/no]
Default is: loosy-comment:no
When set to yes:
The compiler allows a * in column 8 to be used to mark a comment.
ls-expand-tab:[yes/no]
Default is: ls-expand-tab:yes
Implements the expansion of the tab character in line sequential files in a manner that is compatible with Micro Focus COBOL.
When set to yes:
Tab characters not preceded by a 0 are expanded to spaces. The tab stop is fixed to 8 characters.
ls-ignore-record-size:[yes/no]
Default is: ls-ignore-record-size:no
Determines whether or not trailing spaces are stripped from a line sequential file before writing it to disk.
When set to yes,
The RECORD SIZE clause for LINE SEQUENTIAL files is ignored. Trailing white spaces are stripped before WRITEing a record to disk.
When set to no:
The RECORD SIZE
clause for LINE SEQUENTIAL
files is used to determine the number of bytes written to disk on a WRITE
statement. Trailing spaces are not stripped.
ls-utf16:[yes/no]
Default is: ls-utf16:no
Activates support for UTF16 storage, which affects the reading and writing of line sequential files.
When set to yes:
Line sequential file are read/stored in UTF16 format. When UTF16 Storage is active, end-of-record is read/written in UTF16 format in accordance with the setting of the -futf16-le compiler flag.
When used, the -futf16-le
compiler flag causes fields declared as PIC N
to be stored as UTF16-LE
(Little Endian). Note that by default, fields declared as PIC N
are stored as UTF16-BE
(Big Endian).
X'000A'
is the end-of-record for BE
storage and X'0A00'
is the end-of-record for LE
storage.
The ls-utf16
compiler configuration flag may be set in source using the meta comment $SET
before the SELECT
statement:
$SET LSUTF16
Activate UTF16 storage
$SET NOLSUTF16
Deactivate UTF16 storage
main:[yes/no]
Default is: main:yes
When set to yes:
Generates main() symbol when used with -x
(default).
main-as-object:[yes/no]
Default is: main-as-object:yes
When set to yes:
Generates main() symbol as object not in library (unix only) (default).
mainframe-vb:[yes/no]
Default is: mainframe-vb:no
When set to yes:
Causes WRITE
s and READ
s of Variable Blocked files to assume formats compatible with the Mainframe Z/OS COBOL Format.
makesyn: oldvalue=newvalue
Provides a way to make a reserved word a synonym for another reserved word. The first word, represented by "oldvalue" becomes a synonym of the second word, represented by "newvalue". A common usage is to make COMP
a synonym of COMP-5
.
The entry makesyn: comp=comp-5
corresponds to the compiler flag -makesyn
, used as follows:
>cobc -makesyn comp=comp-5 hello.cbl
The -makesyn: oldvalue=newvalue
compiler flag provides compatibility with the MAKESYN
directive.
A COBOL verb or field-name may be used as "old-value". The COBOL-IT compiler will replace all instances of this "old-value" with the "new-value" when compiling.
Caution
While this provides an equivalent capability to the implementation of the MAKESYN
directive in other COBOLs, the order of the parameters is reversed. COBOL-IT requires that the "old-value" be listed first, and followed by the "new-value".
makesyn-patch-preprocess: [yes/no]
Default is: makesyn-patch-preprocess:no
When set to yes:
Causes the makesyn
compiler flag to change the output of pre-processed files
manuallock: [yes/no]
Default is: manuallock:no
When set to yes:
Causes all files with no LOCK MODE
clause in their SELECT
statement to be declared Implicitly as LOCK MODE is MANUAL
unless a SHARING
clause in the SELECT
statement or in the OPEN
statement indicates otherwise. For details on other -f compiler flags related to the treatment of LOCK MODE
, see Guidelines for modifying default handling of the LOCK MODE.
max-literal-expand: 32 (internal use only)
Default is: max-literal-expand:32
This setting is for internal use only, and should not be changed.
mem-info: [yes/no]
Default is: mem-info:no
When set to yes:
Enables Dump of Working-Storage when runtime aborts.
mem-info: yes
is enabled by the -g
compiler flag and by the -debug
compiler flag.
mfcomment: [yes/no]
Default is: mfcomment:yes
Treats lines with '*' or '/' in column 1 as comments.
mf-compat-parser: [yes/no]
Default is: mf-compat-parser:yes
When set to yes:
Causes COBOL-IT to match certain Micro Focus behaviors. These include:
- Parsing of line continuation characters
- Relaxed syntax check on
RECORD CONTAINS
phrase in the FD - Allowing level-66 and level-88 data names to have the same name as a paragraph or section
When set to no:
The compiler generates errors in these situations.
mf-ctrl-escaped-parser: [yes/no]
Default is: mf-ctrl-escaped-parser:yes
When set to yes:
Syntax parser is MF compatible with control character escaped by 0 (default).
mf-file-optional:[yes/no]
Default is: mf-file-optional:no
When set to yes:
Affects the file-status codes returned on files declared as OPTIONAL
and OPEN in EXTEND
.
The mf-file-optional: yes
compiler configuration flag causes files declared as OPTIONAL
and OPEN EXTEND
to return file-status code "05" if the file is created and file-status code "00" if the file exists.
The mf-file-optional: yes
compiler flag improves consistency with Micro Focus behaviors.
When set to no:
Files declared as OPTIONAL
and OPEN EXTEND
return file-status code "00" in both the case where the file did not exist, and was created, and the case where the file did exist.
The -mf-file-optional
compiler configuration flag corresponds to setting -fmf-file-optional
compiler flag.
mf-gnt: [yes/no]
Default is: mf-gnt:no
When set to yes:
Causes shared objects generated by the compiler to be created with the .gnt
extension.
Note
The generated object IS NOT compatible with the .gnt
objects produced by Micro Focus. This option is only used to reduce change in existing compilation scripts by causing object code to be generated with the same extensions.
mf-hostnumcompare:[yes/no]
Default is: mf-hostnumcompare:no
The mf-hostnumcompare
compiler configuration entry provides compatibility with Micro Focus in cases where the HOST-NUMCOMPARE
directive is used. The mf-hostnumcompare
compiler configuration entry affects comparisons of USAGE DISPLAY
numeric data items when one of the numeric data items in the comparison contain non-numeric data.
When set to yes:
The field containing numeric data redefined as an alphanumeric item of the same length, and this redefined data item is compared with the non-numeric value of the other numeric data item.
When set to no (the default):
The contents of the field containing numeric data are moved to an intermediate alphanumeric data item that is the same size as the field containing nonnumeric data before the comparison is performed. The content of this intermediate alphanumeric item is then compared to the non-numeric value of the other numeric data item.
mf-int:[yes/no]
Default is: mf-int:no
When set to yes:
Causes shared objects generated by the compiler to be created with the .int
extension.
Note
The generated object IS NOT compatible with the .int
objects produced by Micro Focus. This option is only used to reduce change in existing compilation scripts by causing object code to be generated with the same extensions.
mf-relativefile:[yes/no]
Default is: mf-relativefile:no
Allows for compatibility with Micro Focus relative files.
When set to yes:
The COBOL-IT runtime assumes the Micro Focus format for relative files for both READ
and WRITE
operations.
The end-of-record
marker for relative files is consistent with the setting of the compiler configuration flag line-seq-dos
.
When line-seq-dos: yes
, the end of record setting is CR/LF
When line-seq-dos: no
, the end of record setting is LF
module-load-priority:[yes/no]
Default is: module-load-priority:no
Affects the manner in which the runtime resolves the target of a CALL
statement, so that shared libraries are searched before linked symbols.
When set to no:
To resolve "myprog" in the phrase CALL "myprog"
, the default behavior is first to look for the symbol "myprog"
in the linked library. Then if the symbol is not found, the runtime searches for a shared library (myprog.cit
, myprog.dll
(Windows) or myprog.so
(Linux/UNIX)) and searches for the symbol myprog
in the shared library.
When set to yes:
The search order is reversed. The runtime first looks for the shared library and if the symbol is not found, it then looks into the linked symbols.
The same effect can be achieved at runtime by setting the COB_LOAD_PRIORITY
environment variable as follows:
export COB_LOAD_PRIORITY=1
The compiler option -fthread-safe
enables this option.
module-name-entry:[yes/no]
Default is: module-name-entry:yes
When set to yes:
Generates source module as alternate entry (default).
module-uppercase:[yes/no]
Default is: module-uppercase:no
When set to yes:
Causes the output file name to be created in upper-case, when used with the -m
compiler flag.
move-all-edited:[yes/no]
Default is: move-all-edited:no
When set to yes:
Causes MOVE ALL "X" TO
an edited field to take care of the picture.
move-high-low-to-displaynumeric [error/zero/value]
Default is: move-high-low-to-displaynumeric:value
The move-high-low-to-displaynumeric
compiler configuration flag affects the behavior of:
MOVE HIGH-VALUES TO
(usage display numeric data item) and
MOVE LOW-VALUES TO
(usage display numeric data item).
When set to:
error
: trigger an error at compilation "Invalid MOVE statement"zero
: moves zeroes to display numeric itemvalue
: moves high-values or low-values to display numeric item
move-picx-to-pic9:[cit / mf50 / mf40 / mvs / raw / iso / none]
Default is: move-picx-to-pic9:none
Defines the runtime behaviour when moving alphanumeric (PIC X(n) USAGE DISPLAY
), to non-signed display numeric data items (PIC 9(n) USAGE DISPLAY
).
When set to cit
:
The target field is filled with '0's. Then the source's alphanumeric field value is checked for validity as a numeric value. If the check passes, the value is transferred truncated according to the rules associated with a COBOL MOVE from display numeric to display numeric.
When set to mf50
:
The source field value is copied, with truncation on the high end of the data item. No validation is done.
When set to mf40
:
The source field is copied, right-justified. Upper half-bytes are replaced with 0x30. As a result, a MOVE PIC X(3) VALUE "ABC" to a PIC 9(3)
field stores "123" in the PIC 9(3)
field. This is the Micro Focus 4.0 default behavior.
When set to mvs
:
The source field value is copied with truncation at the high end of the data item. Then the last character is checked. If that last character is a valid EBCDIC sign character , that last character is replaced by the corresponding value (0-9).
When set to raw
:
The data is copied with no conversion and no validation, and with RIGHT-JUSTIFY
. It is equivalent to a MOVE of a PIC X
field to a PIC X
field where both PIC X
fields are RIGHT-JUSTIFIED
.
When set to iso
(when displaynumeric-mf50:yes
):
When MOVEing a PIC X
field padded with SPACES
to a PIC 9
field, the padding SPACES
are converted to 0s. As an example, when MOVE
ing a PIC XX VALUE "2"
field to a PIC 99
field, the PIC 99
field would store the target as "02".
move-spaces-to-comp3:[error/space/zero]
Default is: move-spaces-to-comp3:zero
The move-spaces-to-comp3
compiler configuration flag affects the behavior of the compiler and runtime when SPACES are moved to a COMP-3
data item.
The default setting is "zero". When set to zero, the compiler does not issue an error. At runtime ZEROES
are moved to the COMP-3
data item.
When set to space
:
The compiler does not issue an error. At runtime, SPACES
are moved to the COMP-3
data item.
When set to error
:
The compiler issues an error below.
Error: Invalid MOVE statement
move-spaces-to-displaynumeric:[yes/no/error]
Default is: move-spaces-to-displaynumeric:error
Enables MOVE SPACES
to a numeric USAGE DISPLAY
data item (PIC 9(n) USAGE DISPLAY
)
When set to yes:
The MOVE
of SPACES
to a PIC 9 USAGE DISPLAY
field is allowed.
move-to-group-separated:[yes/no]
Default is: move-to-group-separated:no
Affects the behaviour of a MOVE
of SPACES
or ZEROES
to a group item, as when compiling the instruction:
MOVE SPACE TO GRP-XXX
MOVE ZERO TO GRP-XXX
where GRP-XXX
is a group item.
When set to yes:
The MOVE
is generated for each field and sub-field of the group.
When set to no:
The MOVE
treats the group-item as a single alphanumeric data item.
name:[any string]
Default value: "COBOL-IT"
Purely used for purposes of commentary.
no-cbl-error-proc:[yes/no]
Default is: no-cbl-error-proc:no
When set to yes:
Prevents the execution of CBL_ERROR_PROC
.
no-realpath:[yes/no]
Default is: no-realpath:no
When set to yes:
Causes file names to NOT be extended to a fully qualified path.
By default, when processing file names, the compiler retrieves the fully qualified path (from the root) and processes the compilation using that extended name. That full name is also stored as the source file name for debugging purposes.
non-ibm-5.2-syntax:[(ok or yes)/(error or no)/warning]
Default is: non-ibm-5.2-syntax:ok
When set to ok or yes:
Non-ibm 5.2 syntax is not checked, and no action is taken. When set error or no, non-ibm 5.2 syntax generates a compilation error.
When set to warning:
Non-ibm-5.2 syntax generates a warning, but the compilation continues.
nostrip:[yes/no]
Default is: nostrip:no
When set to yes:
Causes objects and object and executable files to NOT be stripped.
Stripping an object or an executable is the action of removing system level debugging information
notrunc:[yes/no]
Default is: notrunc:no
When set to yes:
Causes truncation of binary fields to NOT be made according to the PICTURE
clause while performing intermediate computations.
not-reserved:[any reserved word]
Allows the removal of words from the reserved word list.
As an example, if you want the reserved word INCLUDE
to not be considered a reserved word by the compiler, make an entry in the compiler configuration file as follows:
not-reserved:INCLUDE
null-param: [yes/no]
Default is: null-param:no
When set to yes:
Causes an extra NULL
pointers to be passed as the last argument on CALL
statements.
numeric-compare: [yes/no]
Default is: numeric-compare:no
When set to yes:
Causes the comparison of a numeric field with a PIC X
field to interpret the value of the PIC X
vfield using its numeric value.
numeric-group: [yes/no/warning]
Default is: numeric-group:yes
Determines the behavior of the compiler when an IS
/IS NOT
NUMERIC clause is applied to a group item.
When set to yes:
The compiler supports the syntax, and the clause does not produce a compiler error.
When set to no:
The compiler aborts with the error message:
Error: IS NUMERIC not allowed on group
When set to warning:
The compiler continues, but produces a warning:
Warning: IS NUMERIC not allowed on group
numval-validate:[yes/no]
Default is: numval-validate:no
When set to yes:
Validates argument 1 of the NUMVAL
function.
obj-cit:[yes/no]
Default is obj-cit:no
When set to yes:
Causes the compiled object to be generated with a .cit
extension instead of .dll
(windows) or .so
(unix/linux). The COBOL-IT runtime recognizes the .cit
extension as an executable extension. The default behavior of the CALL
statement has been changed, so that in a CALL "myprog"
statement, the runtime will look first for a compiled object with a .cit
extension, before searching for a .dll
( Windows ) or a .so
( Linux/UNIX ).
odo-slide:[yes/no]
Default is: odo-slide:no
When set to yes:
Affects data items that appear after a variable-length table in the same record; that is, after an item with an OCCURS DEPENDING
clause, but not subordinate to it.
If the odo-slide
compiler flag is set, these items always immediately follow the table, whatever the current size of the table. Note that the internal addresses of these data items change as the table's size changes.
If the odo-slide
compiler flag is not set, these items have fixed addresses, and begin after the end of the space allocated for the table at its maximum length.
Note
The mf.conf
configuration file, which contains compiler configuration flags designed to match Micro Focus default behaviours, includes the setting odo-slide:no
. If you are using the mf.conf
configuration file, and your code depends on odo-slide
being set to yes, please add odo-slide:yes
to your configuration file or add -fodo-slide
odo-slide? to your compilation command line.
optimize-move: [yes/no]
Default is: optimize-move:yes
When set to yes:
Causes MOVE
operations to be optimized that are performed by the INITIALIZE
verb in cases where target fields are USAGE DISPLAY NUMERIC
, or USAGE NATIONAL
. Causes MOVE
operations to be optimized by -fmem-info
where the source and target fields have identical declarations.
When set to no:
The optimizations are deactivated.
optimize-move-call:[yes/no]
Default is: optimize-move-call:no
When set to yes:
Causes MOVE
operations to be optimized by pre-selecting the internal runtime library routines used for the MOVE
when possible. Optimize-move-call
is set to yes by default when using either the -O
or -O2
compiler flag.
optional-file:[yes/no]
Default is: optional-file:no
When set to yes:
Causes all SELECT
statements that do not specify OPTIONAL
or NOT OPTIONAL
to be considered OPTIONAL
.
pack-comp-4:[yes/no]
Default is: pack-comp-4:no
Affects the storage of `COMP-4 data items.
When set to yes:
COMP-4
fields are stored in the minimal possible amount of data space. This is the equivalent of applying "binary-size = 1 - - 8" to the COMP-4
data items.
When set to no:
COMP-4
is considered equivalent to USAGE COMPUTATIONAL
with memory storage calculated accordingly.
perform-osvs:[yes/no]
Default is: perform-osvs:no
Enhances compatibility with OSVS COBOL PERFORM
statements.
The $SET
perform type settings of COB370
, ENTCOBOL
, OSVS
and VSC2
are emulated with the setting perform-osvs:yes
.
When set to yes:
The exit point of any currently executing perform is recognized if reached.
PERFORM
statements with the same exit point can be nested to a depth of two (one inner and one outer). If they are nested deeper, they do not return correctly. The end of a section is regarded as a separate point from the end of its last paragraph.
The example below is included to illustrate a possible consequence of setting perform-osvs
to 'yes', where an infinite loop results that would otherwise be avoided.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST-PERFORM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SW PIC X VALUE '1'.
01 ABORT-PRG PIC X(3) VALUE 'NO'.
PROCEDURE DIVISION.
BEGIN.
DISPLAY "BEGIN".
PERFORM A THRU A-EX UNTIL ABORT-PRG = 'YES'.
DISPLAY"END".
STOP RUN.
C.
DISPLAY "I AM IN C".
A.
IF SW = '1'
PERFORM D THRU D-EX
ELSE
MOVE 'YES' TO ABORT-PRG.
A-EX.
EXIT.
B.
DISPLAY "I AM IN B".
MOVE '0' TO SW.
GOTO C.
D.
IF SW = '1'
GOTO B.
D-EX.
EXIT.
When perform-osvs
is set to 'no', the source above produces the following result:
BEGIN
I AM IN B
I AM IN C
END
prepro_cut_line: [yes/no]
Defaut is: prepro_cut_line:yes
When set to yes:
When preparing file for preprocess, cuts output to 72 columns (default).
When set to no:
When preparing file for preprocess, does not cut output to 72 columns.
pretty-display:[yes/no]
Default is: pretty-display:no
MORE INFO? Showing only here not in document??
printer-crlf:[yes/no]
Default is: printer-crlf:no
When set to yes:
Files declared with ASSIGN TO PRINTER
file names are generated with compatibility for DOS printers. This will change the End Of Record to CR/LF (instead of LF).
profiling:[yes/no]
Default is: profiling:no
When set to yes:
The compiler generates paragraph profiling code. The output produced by the profiler includes separate counts for CPU and real elapsed times. For more details on using COBOL-IT's built in Profiler, see the Guidelines for use of Profiler section.
protect-linkage:[yes/no]
Default is: protect-linkage:no
When set to yes:
Generates code at the entry point of a program containing a USING xxx
clause.
This allows for the passing of parameters that are NULL
pointers. In these cases, where NULL
pointers are passed, the compiler creates a "fake" field of the same definition in WORKING-STORAGE
, and substitutes it as a reference for the parameter. Doing this will avoid a SIGVEC
error if NULL
pointers passed through linkage are targets of a READ
or WRITE
statement.
quote:[any single character]
Default is: quote:"
Defines the value of the QUOTE
reserved word.
raw-by-value: [yes/no]
Default is: raw-by-value:yes
When set to yes:
CALL BY VALUE [PIC X Fld]
does not convert [PIC X Fld]
to numeric COMP-5
(default).
raw-compare: [yes/no]
Default is: raw-compare:yes
raw-pic9-display: [yes/no]
Default is: raw-pic9-display:no
When set to yes:
DISPLAY PIC 9(X)
(no sign, no decimal) as it is in memory.
read-at-end-mf:[yes/no]
Default is: read-at-end-mf:no
Affects the interpretation of the AT END
/NOT AT END
clauses used with a READ
statement.
When set to yes:
For INDEXED
files, when compiling a READ
statement:
If an AT END
and/or NOT AT END
clause is defined in a READ
statement and no NEXT
or PREVIOUS
clause is specified, then the NEXT
clause is implied.
read-into-copy: [yes/no]
Default is: read-into-copy:no
When set to yes:
Causes the READ INTO
statement to COPY
data rather than performing a MOVE
.
ready-trace:[y/n]
Default is ready-trace:no
Enables paragraph tracing between READY TRACE
and RESET TRACE
procedural COBOL statements.
When set to yes:
In the interval between the READY TRACE
and RESET TRACE
statements, paragraph tracing output is written to the console in the format:
PROGRAM-ID: [program-id]: [paragraph name]
recmode-f:[yes/no]
Default is: recmode-f:no
When set to yes:
Causes all unspecified RECORDING MODE
clauses to be interpreted as RECORDING MODE F
.
recmode-osvs:[yes/no]
Improves compatiblility with OSVS COBOL
, as regards the RECORDING MODE
phrase.
Default is: recmode-osvs:no
When set to yes:
Compatibility with OSVS COBOL is improved, as regards the RECORDING MODE
phrase.
recmode-v:[yes/no]
Default is: recmode-v:no
When set to yes:
Causes all unspecified RECORDING MODE
clauses to be interpreted as RECORDING MODE V
.
record-depending-iso:[yes/no]
Default is: record-depending-iso:no
When set to yes:
The record-depending-iso
compiler configuration flag causes a RECORD DEPENDING ON <FIELD>
clause to be handled in an ISO-compatible manner. More specifically, the record-depending-iso:yes
compiler configuration flag causes files declared with a RECORD DEPENDING ON <FIELD>
clause, without any FROM
or TO
value, to assume a FROM
and TO
value of the maximum record size.
When set to no:
The clause is ignored.
redefine-identifier: [ error / warning / ok ]
Default is: redefine-identifier:ok
The redefine-identifier
compiler configuration entry has been added to the "Dialect Features" component of the compiler configuration file. The redefine-identifier
compiler configuration flag affects compiler behavior when ambiguous identifiers exist in the source code.
As an example, if your Working-Storage Section contained two identical declarations:
77 field-1 pic x(10).
77 field-1 pic x(10).
When set to ok:
The compiler does not generate an error.
When set to warning:
The compiler generates a warning
When set to error:
The compiler generates an error
region0: [yes/no]
Default is: region0:no
When set to yes:
Causes the program to always switch to region 0 when executing. Setting region0:yes
lets you specify that the module will always execute in region 0 even if called from another region. When called from another region, the module will switch to region 0 on entry and switch back to the calling region at exit.
relativefile-bigendian:[yes/no]
Default is: relativefile-bigendian:no
When set to yes:
Causes the record header of relative files to be stored in BigEndian format.
relax-bounds-check:[yes/no]
Default is: relax-bounds-check:yes
Affects bounds-checking in reference-modified notations.
When set to yes:
In a reference-modified expression like mystring (x:*length*)
, the variable length is not checked for an out-of-bounds condition.
relax-level-hierarchy:[yes/no]
Default is: relax-level-hierarchy:yes
Affects compiler's handling of non-matching level numbers.
When set to yes:
Non-matching level numbers are allowed.
relaxed-syntax-check:[yes/no]
Default is: relaxed-syntax-check:yes
Affects strictness of syntax checking rules applied by the compiler.
When set to yes:
Relaxed syntax checking rules are applied by the compiler.
replace-additive:[yes/no]
Default is: replace-additive:no
When set to yes:
Allows for the use of the REPLACE ADD
verb, which has the effect of nesting a REPLACE
statement inside an existing REPLACE
statement. Nested REPLACE
statements are executed before outer REPLACE
statements in COBOL-IT's precompile phase. Note that a REPLACE
stack can be cleared with the REPLACE OFF
statement.
return-opt:[yes/no]
Default is: return-opt:no
When set to yes:
Generates optimized PERFORM
return code. The -freturn-opt
compiler flag is ignored when using the -fgcc
compiler flag.
round-fp:[yes/no]
Default is: round-fp:no
When set to yes:
Controls the way COMP-1
or COMP-2
are "moved" into non-COMP-1
or COMP-2
target fields when the target field has fewer decimal places than the source field. If the -fround-fp
compiler flag is used, the value is rounded to the number of decimal of the target field. Otherwise, the value is truncated.
rtncode-size: <integer>
Default is: rtncode-size:0
When set to a non-zero value:
Sets the size, and memory alignment of the return-code register.
Possible values are:
Value | Size | Alignment |
---|---|---|
2 | 2 bytes | Align on 2-byte boundary |
4 | 4 bytes | Align on 4-byte boundary |
8 | 8 bytes | Align on 8-byte boundary |
rw-after-preprocess:[yes/no]
Default is: rw-after-preprocess:no
When set to yes:
Causes SPCRW2
to be run after the -preprocess
script. By default SPCRW2
is run before the -preprocess
script.
rw-mode-nopf:[yes/no]
Default is: rw-mode-nopf:no
When set to yes:
rw-mode-nopf
is the equivalent to setting MODE NOPF
for a Report Section report. MODE NOPF
causes the Report Writer to emulate an external print driver that does not generate printer control characters, like FF. When set to yes, the report file is written as a standard LINE SEQUENTIAL
file.
rw-mode-nopf-dos:[yes/no]
Default is: rw-mode-nopf-dos:no
When set to yes:
rw-mode-nopf-dos
is the equivalent to setting MODE NOPF
for a Report Section report. MODE NOPF
causes the Report Writer to emulate an external print driver that does not generate printer control characters, like FF. When set to yes, the report file is generated with fixed-length lines that are padded with SPACES
and use the CR/LF record delimiter.
safe-linkage:[yes/no]
Default is: safe-linkage:no
When set to yes:
Generates code at the entry point of a program containing a USING xxx
clause.
This allows for the omission of parameters. Doing this will avoind a SIGVEC
being returned by the debugger when all linkage parameters are not provided.
screen-exceptions:[yes/no]
Default is: screen-exceptions:no
Mimics the behavior of the environment variable COB_SCREEN_EXCEPTIONS
.
When set to yes:
Causes the runtime to behave as if the environment variable is COB_SCREEN_EXCEPTIONS=Y
.
Enables use of the Page Up, Page Down, Up Arrow, and Down Arrow keys on Field-level ACCEPT
statements. Also enables use of the Esc key, if the environment variable is COB_SCREEN_ESC=Y
. When these keys are pressed, the COBOL-IT runtime will return the CRT Status values as described in the table below. Note that the Page Up, Page Down, Up Arrow, and Down Arrow are enabled by default when ACCEPT
'ing a Screen:
Condition | Key Pressed | Cit Value returned to CRT-STATUS-VAR |
---|---|---|
On ACCEPT <Screen> or on ACCEPT <Field> where the environment variable COB_SCREEN_EXCEPTIONS=Y or the compiler configuration flag Screen-exceptions:Y |
Page Up | 2001 |
Page Down | 2002 | |
Up Arrow | 2003 | |
Down Arrow | 2004 | |
When COB_SCREEN_ESC=Y |
Escape Key | 2005 |
2006 |
screen-raw-keys:[yes/no]
Default is: screen-raw-keys:no
Mimics the behavior of the environment variable COB_SCREEN_RAW_KEYS
.
When set to yes:
Causes the runtime to behave as if the environment variable is COB_SCREEN_RAW_KEYS=Y
.
Note
The "raw keys" are the Home, End, Insert, Delete, and Erase EOL keys. When one of these keys is pressed, the COBOL-IT runtime will return CRT Status values as described in the table below:
Condition | Key Pressed | Cit Value returned to CRT-STATUS-VAR |
---|---|---|
Where the environment variable COB_SCREEN_RAW_KEYS=Y orthe compiler configuration flag screen-raw-keys:Y |
Home | 2007 |
End | 2008 | |
Ins | 2009 | |
Del | 2010 | |
EraseEOL | 2011 |
sequential-line:[yes/no]
Default is: sequential-line:no
When set to yes:
Causes all non-qualified SEQUENTIAL
files to be declared as LINE SEQUENTIAL
. Files declared as RECORD SEQUENTIAL
are not affected.
share-all-autolock:[yes/no]
Default is: share-all-autolock:no
When set to yes:
Causes all files with a SHARE WITH ALL
clause in their SELECT
statement to be declared implicitly as LOCK MODE IS AUTOMATIC
. For details on other -f
compiler flags related to the treatment of LOCK MODE
. See the Guidelines for modifying default handling of the LOCK MODE section.
share-all-default:[yes/no]
Default is :share-all-default:no
When set to yes:
Causes all files to be declared implicitly as SHARE WITH ALL
.
For details on other compiler flags related to the treatment of LOCK MODE
, see the Guidelines for modifying default handling of the LOCK MODE section.
share-all-manulock:[yes/no]
Default is: share-all-manulock:no
When set to yes:
Causes all files with a SHARE WITH ALL
clause in their SELECT
statement to bedeclared implicitly as LOCK MODE IS MANUAL
.
For details on other compiler flags related to the treatment of LOCK MODE
, see the Guidelines for modifying default handling of the LOCK MODE section.
sign-ascii:[yes/no]
Default is: sign-ascii:no
When set to yes:
Corresponds to the SIGN "ASCII" directive. Causes numeric DISPLAY
items that include signs are interpreted according to the ASCII sign convention (default on ASCII machines).
sign-ebcdic:[yes/no]
Default is: sign-ebcdic:no
When set to yes:
Corresponds to the SIGN"EBCDIC"
directive. Causes numeric DISPLAY
items that include signs are interpreted according to the EBCDIC sign convention (default on EBCDIC machines).
sign-leading:[yes/no]
Default is: sign-leading:no
When set to yes:
Makes SIGN IS LEADING
the default.
sign-separate:[yes/no]
Default is: sign-separate:no
When set to yes:
Makes SIGN IS SEPARATE
the default.
signed-comp6-as-comp3:[yes/no]
Default is: signed-comp6-as-comp3:no
Affects treatment of data items described as comp-6.
When set to yes:
Signed COMP-6
data items are treated as COMP-3
data items.
simple-trace:[yes/no]
Default is: simple-trace:no
When set to yes:
Generates trace output at runtime for executed SECTION
/PARAGRAPH
s.
source-location:[yes/no]
Default is: source-location:no
When set to yes:
Generates source location code, enabling information to be dumped on source location when the runtime aborts.
source-location:yes
is enabled by the -g
compiler flag and by the -debug
compiler flag.
split-debug-mark:[yes/no]
Default is: split-debug-mark:yes
When set to yes:
DEBUG
marks respect max 72 characters (default).
spzero:[yes/no]
Default is: spzero:no
Affects the handling of space characters in numeric fields.
When set to yes:
Space characters moved to NUMERIC USAGE
fields are converted to '0's.
stack-check:[yes/no]
Default is: stack-check:no
When set to yes:
Enables the stack checking debug function. The stack checking debug function allows the user to trace back through the stack of calling programs to the currently running line of source in a program.
stack-check:yes
is enabled by the -g
compiler flag and by the -debug
compiler flag.
static-call:[yes/no]
Default is: static-call:no
When set to yes:
Causes static C function calls to be generated for the CALL
statement.
This implies that all CALL
'ed programs are C function that are linked with the current program. When using the -fstatic-call
compiler flag, no external dynamic resolution is performed at run-time.
static-link:[function-name]
Improves performance of the CALL statement for statically linked routines.
The string value represents a symbol to link statically when encountered as an argument of a CALL. This improves the performance of the call. Mainly used for linked C function libraries.
Example:
static-link:myfunc
Note that Oracle symbols are provided in the file "oracle.symb", and can be included in your compiler configuration file as follows:
include "oracle.symb"
Tuxedo symbols are provided in the file "tuxedo.symb", and can be included in your compiler configuration file as follows:
include "tuxedo.symb"
sticky-linkage:[yes / no / fixed / variable]
Default is: sticky-linkage:no
Affects allocation of linkage section items not listed as parameters
When set to yes, or fixed:
The called program fills in any parameter not actually passed by the caller.
When set to no, or variable:
Non-parameter linkage-section items remain allocated between invocations.
strict-compare-low: [yes/no]
Default is: strict-compare-low:no
When set to yes:
Causes display of numeric variables containing low values not equal to zero or spaces when compared.
strict-record-contains:[yes/no]
Default is: strict-record-contains:yes
The strict-record-contains
compiler configuration entry affects the handling of the RECORD CONTAINS xx CHARACTERS
clause in file systems using then EXTFH interface, when the actual record size has fewer characters than are named in the clause.
When set to yes (the default):
COBOL-IT sends the number of characters stated in the clause as both MIN-RECORD-SIZE
and MAX-RECORD-SIZE
.
When set to no:
COBOL-IT detects the smaller actual record size, and passes it through as the MIN-RECORD-SIZE
, while passing the number of characters stated in the clause as the MAX-RECORD-SIZE
.
Note
The strict-record-contains compiler configuration flag has no effect on VBISAM files, as they do not use the EXTFH interface.
synchronized-double-word-bound:[yes/no]
Default is: synchronized-doube-word-bound:no
Affects the alignment of data items declared as USAGE BINARY
, which also contain the SYNC
clause. The default behavior is consistent with the behaviors of the IBM and Micro Focus compilers. Specifically, when the SYNC
clause is used, binary fields are aligned either on 2- or 4- byte boundaries, depending on the size of the field.
- Fields of 1-2 bytes in size are aligned on 2-byte boundaries.
- Fields greater than 2-bytes in size are aligned on 4-byte boundaries.
When set to yes:
Binary fields are aligned on 2- or 4- or 8-byte boundaries, depending on the size of the field. This was the default COBOL-IT behavior prior to version 3.7.9.
- Fields of 1-2 bytes in size are aligned on 2-byte boundaries.
- Fields of 3-4 bytes in size are aligned on 4-byte boundaries.
- Fields greater than 4 bytes in size are aligned on 8-byte boundaries.
synchronized-propagate-to-occurs: [yes/no] (Internal Use Only)
Default is: synchronized-propagate-to-occurs:yes
This setting is for internal use only, and should not be changed.
synchronized-propagate-to-occurs-with-group-size: [yes/no] (Internal Use Only)
Default is: synchronized-propagate-to-occurs-with-group-size: no
This setting is for internal use only and should not be changed.
syntax-only:[yes/no]
Default is: syntax-only:no
When set to yes:
Performs syntax error checking only. Output is limited to results of syntax check.
syntax-support:[ok / archaic / obsolete / skip / ignore / unconformable / error]
Allows users to choose for the compiler to support, warn, or reject listed phrases which are included in some COBOL dialects. The meaning of the different syntax support options:
Syntax | Meaning |
---|---|
ok | Accept the dialect |
archaic, obsolete,unconformable | Emit warning messages |
skip | Construction is ignored |
ignore | Produces a warning message |
error | Produces a syntax error |
unconformable | Produces an 'unconformable' error message |
The phrases entered by default in the compiler configuration file with syntax support options:
# Dialect features
# Value: 'ok', 'archaic', 'obsolete', 'skip', 'ignore', 'unconformable'
author-paragraph: obsolete
memory-size-clause: obsolete
multiple-file-tape-clause: obsolete
label-records-clause: obsolete
value-of-clause: obsolete
data-records-clause: obsolete
top-level-occurs-clause: ok
synchronized-clause: ok
goto-statement-without-name: obsolete
stop-literal-statement: obsolete
support-debugging-line: obsolete
padding-character-clause: obsolete
next-sentence-phrase: archaic
eject-statement: skip
entry-statement: ok
move-noninteger-to-alphanumeric: error
odo-without-to: ok
move-spaces-to-displaynumeric: error
synchronized-clause: ok
synchronized-clause-on-group: ok
synchronized-group-align-size: skip
synchronized-occurs-align-size: skip
tab-width:[integer]
Default value: tab-width:8
Affects interpretation of tab characters in source code.
tally-register:[yes/no]
Default is: tally-register:yes
Affects the creation of the internal TALLY
register.
When set to no:
The creation of the TALLY
register is disabled.
text-column:[integer]
Default is: text-column:72
Defines number of columns used for COBOL text.
For Fixed source format only. Causes the compiler to ignore characters after the column marked by "text-column + 6".
thread-safe:[yes/no]
Default is: thread-safe:no
When set to yes:
Generates thread-safe executables. For more details, see the Guidelines on operating in a thread-safe environment section.
trace:[yes/no]
Default is: trace:no
When set to yes:
Generates trace output at runtime, listing the SECTION
/PARAGRAPH
names as they are executed.
trace-ts: [yes/no]
Default is: trace-ts:no
When set to yes:
Causes trace output to include timestamp.
trace-upon-systout: [yes/no]
Default is: trace-upon-sysout:no
When set to yes:
Causes trace output to to be written upon sysout, instead of the default writing upon syserr.
traceall:[yes/no]
Default is: traceall:no
When set to yes:
Generates trace output at runtime, listing SECTION
/PARAGRAPH
/STATEMENTS
names as they are executed.
trap-unhandled-exception:[yes/no]
Default is: trap-unhandled-exception:no
When set to yes:
Is useful in cases where certain EC compiler configuration file flags are set to yes, yet ON EXCEPTION
/ONSIZE ERROR
/ON OVERFLOW
language is not present in the COBOL program. In these cases, using the -ftrap-unhandled-exception
compiler flag causes the information made available to the user to be enhanced when the program aborts.
For more details, see the documentation of the -ftrap-unhandled-exception compiler flag.
truncate-listing:[yes/no]
Default is: truncate-listing:no
When set to yes:
Causes output of the -t <file>
compiler flag to be truncated at column 76.
unstring-use-move:[yes/no]
Default is: unstring-use-move:no
Affects the behavior of the UNSTRING
verb.
When set to yes:
If the target of an UNSTRING INTO
operation is described as PIC 9
, then the operation will be performed using a MOVE
operation instead of raw copy operation. Then rules defined by the move-picx-to-pic9
compiler configuration flag are used for conversion.
use-defaultbyte:[yes/no]
Default is: use-defaultbyte:no
Enables defaultbyte
use.
When set to yes:
The defaultbyte
compiler configuration file flag may be used.
utf16-le:[yes/no]
Default is: utf16-le:no
Determines whether fields declared as PIC N
are stored in UTF16-LE
(Little Endian) or UTF16-BE
(Big Endian) format.
When set to yes:
Causes fields declared as PIC N
to be stored in UTF16-LE
(Little Endian) format.
When set to no:
Causes fields declared as PIC N
are stored in UTF16-BE
(Big Endian) format.
utf-8:[yes/no]
Default is: utf-8:no
When set to yes:
Instucts the compiler that the source file, and literals are UTF-8
encoded. The utf-8
compiler configuration file flag can be used with, or without the codepage compiler configuration flag.
If the utf-8
compiler configuration flag is used and the codepage compiler configuration flag is not specified, then codepage utf-8
is assumed.
If, however, you wish to compile your source with another codepage (for example, the LATIN1
codepage), you should explicitly include that codepage declaration:
codepage:latin1
validate-dep-on: [yes/no]
Default is: validate-dep-on:no
When set to yes:
Causes the value of DEPENDING ON
to be checked at runtime.
validate-odo:[yes/no]
Default is: validate-odo:yes
validate-only:[yes/no]
Default is: validate-only:no
When set to yes:
Causes the compilation of source to ignore all EXEC
statements, and produce no compiled objects. Compiler errors are produced, and can be captured in an error file, (using -err
, for example).
value-of-id-priority: [yes/no]
Default is: value-of-id-priority:no
When set to yes:
The literal or data element that is the target of the VALUE OF FILE-ID
clause in the FD overrides target of the ASSIGN
clause for the file
When set to no (the default):
This setting is ignored.
value-size-is-auto: [yes/no]
Default is: value-size-is-auto:no
When set to yes:
The CALL .. USING BY VALUE :
default SIZE IS
clause will be AUTO
(current default is SIZE IS 4
). REWRITE TO BE CLEARER?
variable-rec-pad-mf:[yes/no]
Default is: variable-rec-pad-mf:no
Affects padding rules applied to variable length sequential records.
When set to yes:
Variable size RECORD SEQUENTIAL
records (REC MODE 'V'
) are stored with padding characters at the end to ensure that the next record starts on a 4 byte boundary.
vbisam: [yes/no]
Default is: vbisam:no
When set to yes:
Causes VBISAM to be used as the default indexed file system.
vms-error-handler: [yes/no]
Default is: vms-error-handler:no
When set to yes:
Causes the default IO error handler to always abort (emulation of VMS behavior).
when-compiled-function-all: [yes/no]
Default is: when-compiled-function-all:no
When set to yes, and when functions-all: yes
Then WHEN-COMPILED
can be called without using the FUNCTION
keyword.REWRITE TO BE CLEARER?
wnone:[yes/no]
Default is: wnone: no
When set to yes:
Causes warnings turned on by default to be turned off.
xparse-event:[yes/no]
Default is: xparse-event:no
When set to yes:
Causes the XML PARSE
statement to generate START-OF-DOCUMENT
and END-OF-DOCUMENT XML-EVENTS
.
zero-length-trim:[yes/no]
Default is: zero-length-trim:yes
When set to yes:
Allows the LENGTH
intrinsic function to return a zero-length of a string that has been operated on by the TRIM
intrinsic function.
$SET Compiler Configuration Flags
The following compiler configuration parameters may be set directly within the COBOL source using the $SET
statement.
$SET Compiler Configuration Flag |
---|
CONSTANT string |
CICS |
DATACOMPRESS integer |
DEFAULTBYTE integer |
DEFAULTCALL integer |
INITCALL procedure-name |
INSERTNULL [ON | OFF] |
KEYCOMPRESS integer |
LINESEQDOS |
LINESEQMF |
LS-MODE [OFF] |
LSUTF16 |
NODATACOMPRESS |
NOINITCALL |
NOINSERTNULL |
NOKEYCOMPRESS |
NOLINESEQDOS |
NOLINESEQMF |
NOLSUTF16 |
NOTRUNC |
ODOSLIDE |
PERFORM-TYPE [OSVS | MF | VSC2 | ENTCOBOL | COB370] |
RECMODE [OSVS | V | F ] |
STICKY-LINKAGE integer |
SEQUENTIAL [LINE] |
SPZERO |
SOURCEFORMAT [FREE | FIXED] |
TEXT-COLUMN integer |
TRUNC |