Two compilation switches provide compatibility with Version 3.1:
-C31
|
Causes the compiler to generate code according to the rules used by Version 3.1.
|
-Z31
|
Creates object code that can be run with a Version 3.1 runtime.
|
The following section describes changes that can affect programs originally written with ACUCOBOL-GT Version 3.1.
- The Vision Version 4 indexed file system uses a dual file format. Version 4 files cannot be read by ACUCOBOL-GT Version 3.1
or earlier runtimes. For a complete description of Vision, see
Indexed Files Vision in the ACUCOBOL-GT User's Guide. Note that runtimes beginning with Version 3.2 are able to read any version of Vision file. To continue to use Vision Version
3 indexed files, see the entry for the
V_VERSION configuration variable in
Appendix H.
- Recursive PERFORMs are automatically enabled when you compile your programs with Version 3.2 or later. Recursive PERFORMs
are required for the use of EVENT PROCEDURES. In very rare cases, this can affect the flow of control in a program. A program
would be affected, for example, if it performs paragraph "A", which performs paragraph "B" and then returns from "A" before
returning from "B". If you want, you can disable recursive PERFORMs with either the
-C31 (or earlier) flag or the
-Zr0 flag.
- Beginning with Version 3.2, data in a list box column can no longer overflow into the adjacent column (causing all columns
to shift to the right). Instead, the data is truncated if it doesn't fit in the allotted space for that column. There is no
way to prevent this change.
- Beginning with Version 3.2, list box columns have a small buffer between them, so that the columns do not merge together when
they are full. This can cause partial loss of the last character in a column if your columns are very close together. To correct
this, set the configuration variable COLUMN-SEPARATION to zero.
- Beginning with Version 3.2, in environments that use system messages, such as Microsoft Windows, message processing during
file I/O operations is no longer performed by default. This is due to problems that can occur in programs that use multithreading,
modeless windows, or event procedures. To restore the old behavior, use the FILE-IO-PROCESSES-MESSAGES configuration variable.
Enabling message processing should only be done under certain conditions. For a complete description, see the entry for
FILE_IO_PROCESSES_MESSAGES in
Appendix H.
- The IS NUMERIC test for COMP-3 fields is more rigorous beginning with Version 3.2. In prior versions, any bit pattern was
allowed in the sign field. The runtime treated any bit pattern, other than 0x0D, as indicating a positive value. Starting
with Version 3.2, only signs of 0x0C, 0x0D and 0x0F are treated as legal values in the IS NUMERIC test. These values are the
normal values for signs (there are two positive values to match various other COBOLs). You can suppress this change by compiling
for compatibility with Version 3.1 (i.e.
-C31).
- Beginning with Version 3.2, the DESTROY
handle-1 statement now sets the value of
handle-1 to NULL if the statement succeeds. In prior versions the value of
handle-1 was not changed. You can prevent the setting of
handle-1 to NULL by compiling for compatibility with Version 3.1 (i.e.
-C31).