GnuCOBOL (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:
https://www.gnu.org/software/gnucobol/
Official source kits can be downloaded from:
https://ftp.gnu.org/gnucobol/
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_GC_NANOSLEEP CBL_OC_NANOSLEEP
> 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:
> CALL-CONVENTIONS for CALLs and PROCEDURE DIVISION
> 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,
Simon
Powered by Savane 3.14-3b9d.
Corresponding source code