Changes Affecting Version 6.0

The following paragraphs describe changes that can affect programs originally written with ACUCOBOL-GT Version 6.0.

Compiler Changes

Two compilation switches provide compatibility with Version 6.0:

-C60    Causes the compiler to generate code according to the rules used by Version 6.0.
-Z60 Creates object code that can be run with a Version 6.0 runtime.

Alignment of Literals

The compiler uses a new algorithm for aligning literals in memory. The alignment is the smaller of the alignment specified by the -Da option (which has a default value of 4) or the largest power of 2 that is less than or equal to the literal's size. For example, a literal that requires 3 bytes of memory will have an alignment of 2. You can use the --noAlignLit option to turn off the new algorithm. See Data Storage Options in the ACUCOBOL-GT User's Guide, for additional information on --noAlignLit.

Runtime Changes

  • In Version 6.0 and earlier, the WIN$PRINTER functions WINPRINT-PRINT-BITMAP, WINPRINT-SET-CURSOR, and WINPRINT-GRAPH-DRAW, ignored the form feed status of a pending print job, causing images or text to print on the wrong page. In Version 6.1 and later, calls to these functions automatically test for a pending form feed before printing.
  • In Version 6.1, when a program is compiled with the -Cp switch and run on an HP e3000, all OPEN OUTPUT statements create MPE files. In prior versions, byte stream files were created.
  • In Version 6.0 and earlier, if a program argument was preceded by a double dash (two dashes) it was effectively treated as if preceded by a single dash. For example, runcbl --dle errfile iobench was executed as if it were runcbl -dle errfile iobench. Beginning with Version 6.1, an argument preceded by two dashes generates a runtime startup error, unless you specifically modify exam_args (in sub.c) to ignore command-line errors.