


Changes Affecting Version 3.1
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 Version 4, see section 6.1.3, "Indexed Files
(Vision)" in Book 1, "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
MS 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").