Changes Affecting Version 1.3

If you are upgrading directly from Version 1.3, then several changes affect you. These changes are the same as those you encounter when you move from Version 1.3 to Version 1.4, except that the current runtime does not support linked object files produced by the Version 1.3 compiler.

Compiler Changes

The following changes affect programs when they are re-compiled. You can specify the -C3 option to suppress these differences. Note that specifying -C3 also implies the -C4 flag discussed above. You can also produce Version 1.3 object files with the -Z3 compile-time option.

  • Under Version 1.3, a line sequential file accessed by a program compiled with RM/COBOL compatibility mode automatically has short records padded with spaces to fill the record area. Beginning with Version 2.0, only line sequential files with automatic trailing space removal have their records padded with spaces. This change was made to accommodate the behavior of RM/COBOL-85.
  • A numeric data item that is the object of a DISPLAY statement with the CONVERT option is left-justified when RM/COBOL compatibility mode is used under any version since 2.1. In Version 1.3, the data item is right-justified. This change was made to accommodate the behavior of RM/COBOL-85.
  • Under Version 1.3, the default SIZE of an ACCEPT field is always equal to the number of assignable character positions in the data item, plus 1 if the data item is signed, and plus another 1 if the data item contains digits to the right of the decimal point. Beginning with Version 2.0, this amount is used only if the destination is numeric or edited and the CONVERT phrase is used. Otherwise, the default SIZE is the physical size of the receiving field. The difference is subtle and is unlikely to affect any current programs. This change was made to better simulate the behavior of RM/COBOL.
  • In RM/COBOL compatibility mode, a field accepted with the ECHO phrase is redisplayed in a converted form only if the UPDATE phrase is also used. In Version 1.3, the field is redisplayed in a converted form only if the CONVERT phrase is used. This change was made to better simulate the behavior of RM/COBOL.
  • Certain line sequential files now have automatic trailing-space removal applied to them. This depends on the device type specified in the file’s ASSIGN clause. This will generally not affect existing programs except that files with automatic trailing space removal may not be opened for I/O (due to the unpredictable record size). This affects only those programs that do REWRITEs on sequential files. If you have a program that does REWRITEs on a sequential file, you should check to make sure that the device type is not one that specifies automatic trailing space removal. See File-Control Paragraph in the ACUCOBOL-GT Reference Manual for more information.

Runtime changes

The following changes occur when the latest runtime is installed. These changes can generally be compensated for by various configuration options.

  • Since Version 3.0, the runtime does not support linked object files produced by the Version 1.3 compiler. If you have any linked object files, then you must convert them to the library format introduced in Version 1.4. Note that the normal object files produced by the 1.3 compiler are still supported.
  • The default keyboard configuration has changed. The new default is very similar to the default RM/COBOL configuration. Also, the KEY-MAP and EDIT-MODE configuration variables are no longer supported. These have been replaced by the more powerful KEYBOARD and KEYSTROKE entries. Most users of Version 1.3 ACUCOBOL-85 reconfigured the keyboard with the KEY-MAP variable to simulate the RM/COBOL keyboard. Most will not need to make any changes since this is the new default.
  • Users who used the default ACUCOBOL-85 keyboard under Version 1.3 will have to reconfigure the keyboard to meet the Version 1.3 standard. Other users may need to make minor changes to match their previous configuration. See Redefining the Keyboard in the ACUCOBOL-GT User’s Guide for details on the new default configuration and the KEYBOARD and KEYSTROKE variables. Also, see the sample configuration file supplied with the compiler.
  • Under Version 1.3, files opened with the EXTEND phrase are automatically created if they do not exist. Beginning with Version 2.1, they are not. This change was made to match the ANSI standard. You can maintain the Version 1.3 behavior by setting the configuration variable EXTEND-CREATES to 1 in the configuration file.
  • In VAX COBOL compatibility mode, a missing file opened for I/O is not automatically created. Under Version 1.3, it was. This change was made because the most recent release of the VAX COBOL compiler was changed this way.
  • Several VAX COBOL file status codes have been changed. This change was made to match changes made to the VAX COBOL compiler.
  • When you are using the RM/COBOL-85 or RM/COBOL version 2 file status codes, a corrupted indexed file is now returned as file error 98 instead of file error 30.
  • A single DISPLAY may now wrap around more than one screen row. Under Version 1.3, lines are truncated. If the 1.3 behavior is desired, set the configuration variable WRAP to the value 0.
  • An ACCEPT or DISPLAY statement that references a row past the bottom edge of the window now causes that window to scroll. Under Version 1.3, the statement is (largely) ignored. You can cause a similar effect by setting the configuration variable SCROLL to 0.
  • The syntax of the COLOR-MAP configuration variable has changed slightly. See Adding Color in the ACUCOBOL-GT User’s Guide for more information.
  • Object files produced by versions of ACUCOBOL-85 prior to Version 1.3 may not be executed by the latest runtime system. These programs must be recompiled with a 1.3 (or later) compiler. This change was made to reduce the size of the runtime system and to improve its performance. You can use the -info option of ccbl to locate object files created by a pre-1.3 version of ACUCOBOL-85. These will be object files that contain a vers value of 2 or less.