newsGnuCOBOL (formerly OpenCOBOL) - News


GnuCOBOL 2.2 released!

Item posted by Edward Hart <edwardhart> on Thu 07 Sep 2017 11:42:02 AM UTC.

Dear GnuCOBOL users,

after almost 7 years of continual improvement and refinements since
OpenCOBOL version 1.1 and 3 years after the release of GnuCOBOL 1.1,
the GnuCOBOL team is proud to announce the formal release of
GnuCOBOL 2.2.
We now reached a substantial coverage of COBOL 85, 2002, 2014 standard
and X/Open COBOL, supporting many extensions from IBM COBOL, MicroFocus
COBOL, ACUCOBOL-GT and others.

As always - more information can be found at:

Official source kits can be downloaded from:

Here's a list of the highlights of this release, especially for people
that still use one of the last releases (OpenCOBOL 1.1 which is still
included in many package managers or GnuCOBOL 1.1):

> * New GnuCOBOL features (too much to list)
> ** User Defined Functions, FUNCTION-ID.
> ** New intrinsic functions
>   ABSOLUTE-VALUE                   alias for ABS
>   CURRENCY-SYMBOL                  CURRENCY-SYMBOL of the current program
>   FORMATTED-CURRENT-DATE           ISO 8601 datetime function
>   FORMATTED-DATE                   ISO 8601 datetime function
>   FORMATTED-DATETIME               ISO 8601 datetime function
>   FORMATTED-TIME                   ISO 8601 datetime function
>   TEST-FORMATTED-DATETIME          ISO 8601 datetime function
>   INTEGER-OF-FORMATTED-DATE        date to integer
>   HIGHEST-ALGEBRAIC                now implemented
>   LOWEST-ALGEBRAIC                 now implemented
>   LOCALE-COMPARE                   now implemented
>   NUMVAL-F                         now implemented
>   TEST-NUMVAL                      now implemented
>   TEST-NUMVAL-C                    now implemented
>   TEST-NUMVAL-F                    now implemented
>   LENGTH-AN                        alias for BYTE-LENGTH
>   MODULE-CALLER-ID                 return the name of the caller
>   MODULE-DATE                      current module: compilation date
>   MODULE-TIME                      current module: compilation time
>   MODULE-FORMATTED-DATE            current module: formatted datetime
>   MODULE-ID                        current module: PROGRAM-ID
>   MODULE-PATH                      current module: path on compile time
>   MODULE-SOURCE                    current module: name on compile time
>   MONETARY-DECIMAL-POINT           LOCALE based fiscal decimal point
>   MONETARY-THOUSANDS-SEPARATOR     LOCALE based fiscal visual grouping
> separator
>   Note:
>   The functions that are actually available as intrinsic functions depend
>   on the -std used. Function names that aren't marked as intrinsic functions
>   by the current -std can be used freely as user defined words or
>   even as user defined functions.
> ** New system functions
>   C$CALLEDBY                       return the name of the caller
>   CBL_GC_FORK                      fork current process (not on Windows)
>   CBL_GC_WAITPID                   wait for process to end
>   CBL_GC_GETOPT  (CBL_OC_GETOPT)   comand lineoption parser for COBOL
>   CBL_GC_PRINTABLE (C$PRINTABLE)   check if character is printable
>   CBL_GC_HOSTED (CBL_OC_HOSTED)    provides access to C extern variables,
>                                    like stdin, errno
>   CBL_GET_SCR_SIZE                 get current terminal size - if any
>   CBL_READ_KBD_CHAR                get character from terminal
>   CBL_SET_CSR_POS                  set current position on terminal
>   x'E4'                            clear terminal screen
>   x'E5'                            ring the bell
> ** many new / extended COBOL statements from COBOL2002/2014 and extensions
>    from different COBOL dialects
> ** more SWITCHes: from SWITCH-01 to SWITCH-36 and its variants from many
>    COBOL dialects
> ** more IEEE numeric types added, FLOAT-DECIMAL-16, FLOAT-DECIMAL-34, etc
> ** more literal types added, numeric boolean etc.
> ** most of the COBOL 2014 spec Compiler Directive Facility is in
> ** optional: stricter syntax checks
> ** refactored and extended compiler and runtime messages with available
>    translations (currently to Spanish, Portuguese and Dutch, partial to
> German)
> ** screen IO: many extended ACCEPT DISPLAY and SCREEN SECTION changes
> ** Direct call interface for C:
>   SIZE of parameters specified for CALL ... BY VALUE
>   RETURN NOTHING for calling void functions
>   RETURN ADDRESS OF VAR for calling functions returning a pointer
>   PROCEDURE DIVISION RETURNING OMITTED -> callable as void function
> ** Much, much more!
> * New cobc options:
> ** New -std options:
>   cobol2014       COBOL 2014 Standard
>   xopen           X/Open COBOL Standard
>   mf-strict       Micro Focus COBOL compatibility   - strict
>   ibm-strict      IBM COBOL compatibility           - strict
>   ibm-strict      MVS/VM COBOL compatibility        - strict
>   acu             ACUCOBOL-GT compatibility
>   acu-strict      ACUCOBOL-GT compatibility         - strict
>   bs2000          BS2000 COBOL compatibility (back again)
>   bs2000-strict   BS2000 COBOL compatibility        - strict
>   rm              RM-COBOL compatibility
>   rm-strict       RM-COBOL compatibility            - strict
>   Note:
>   The GnuCOBOL compiler tries to limit both the feature-set and reserved words
>   to the specified compiler when the "strict" dialects are used.
>   COBOL sources compiled with these dialects are therefore likely to compile
>   with the specified compiler and vice versa: sources that were compiled on
>   the specified compiler should compile without any issues with GnuCOBOL.
>   With the "non-strict" dialects GnuCOBOL will activate the complete
>   feature-set where it doesn't directly conflict with the specified dialect,
>   including reserved words and GnuCOBOL specific extensions.
>   COBOL sources compiled with these dialects therefore may work only
>   with GnuCOBOL. COBOL sources may need a change because of rich feature-set
>   and reserved words in GnuCOBOL, otherwise offending words may be removed
>   by `-fno-reserved=word`.
>   COBOL-85, X/Open COBOL, COBOL 2002 and COBOL 2014 are always "strict".
> ** New listing options:
>   -t listing, -T wide listing, --tlines=lines, lines per page of listing
>   -Xref
>   Note: -P, generate preprocessor listing, is still available (and improved)
> ** All compiler configuration flags may be set on command line
>    to override a specific setting of the current -std, see cobc --help
> ** All Warnings can be explicit enabled/disabled or even marked as error,
>    see cobc --help
>   -Wunreachable report on possible unreachable statements
> ** Options for the C compiler/linker:
>   -K <entry>, compile entry point as static (resolve at link time)
>   -A, add options to C compile phase
>   -Q, add options to C link phase
> ** Miscellaneous
>   -i -info, display build/environment
>   -D define symbol for Compiler Directive Facility
>   -j -job=args, run job after compile
>   input filename of '-' reads source from standard in
>   For more: see cobc --help
> * New cobcrun options:
>   -i -info, display build/environment
>   -r -runtime-env, display runtime configuration
>   -c -config, set runtime config from file
>   -M -module, set path/module name when looking for entry
> * New build features
>   make test      downloads NIST testsuite if necessary
>                  now usable with parallel builds (make -j4 test)
>   make checkall  runs both the internal an NIST testsuite
> ** testsuite defaults to coloured output
> ** Windows(tm) Visual Studio build support files added,
>    options to validate the software generated with VS against both test suites
> ** removed maintainer mode - if files need a rebuild because of a change
>    they are always rebuild
> ** help2man, bison and flex are checked during configure,
>    if they need to be invoked and are missing a useful error message is given
> ** All files created by GnuCOBOL runtime use the same file permission settings
>    now: COB_FILE_MODE which was changed to 0666
> ** changed unix package name from "gnu-cobol" to "gnucobol"

While many people have contributed special thanks go to Ron Norman, Edward Hart, Brian Tiffin, Dave Pitts, and Sergey Kashyrin and to everyone reporting issues and making suggestions.

Happy coding,

Back to the top

Powered by Savane 3.13-b921.
Corresponding source code