Skip to content

Commit

Permalink
Merge branch 'gnucobol-3.x' into gcos4gnucobol-3.x
Browse files Browse the repository at this point in the history
  • Loading branch information
lefessan committed Aug 15, 2023
2 parents 0ab36fd + 3d6c538 commit c0d64ad
Show file tree
Hide file tree
Showing 36 changed files with 3,360 additions and 284 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

2023-07-28 Simon Sobisch <[email protected]>

* configure.ac: check for mousemask and mmask_t

2023-07-24 Simon Sobisch <[email protected]>

* configure.ac: fix for resolving COBCRUN_NAME
Expand Down
63 changes: 33 additions & 30 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
NEWS - user visible changes -*- outline -*-

GnuCOBOL 3.2 (20230728)
GnuCOBOL 3.2rc1 (20230118)
GnuCOBOL 3.2rc2 (20230210)
GnuCOBOL 3.2 to be done end of July 2023

planned for final:
* extending testsuite and documentation
* investigation of code analysis tools and user feedback


* New GnuCOBOL features

** Support for LINE SEQUENTIAL file type as per COBOL 2022
** Support for LINE SEQUENTIAL file type as per COBOL 2023
* OPEN INPUT-OUTPUT and REWRITE are allowed (note that INPUT-OUTPUT
leads to slower IO for LINE SEQUENTIAL files)
* validation of data on (RE-)WRITE and READ, active by default,
Expand All @@ -21,31 +16,31 @@ NEWS - user visible changes -*- outline -*-

BIT-OF, BIT-TO-CHAR, HEX-OF, HEX-TO-CHAR

** Support for COBOL 2022 directive COBOL-WORDS
** Support for COBOL 2023 directive COBOL-WORDS

** Support for bit operations according to COBOL 2022 with MF compatibility
** Support for bit operations according to COBOL 2023 with MF compatibility

** Support for additional $SET directives: ODOSLIDE

** Support for the EXTFH interface was heavily improved, now also supporting
FH--FCD and FH--KEYDEF, fixed use of different attributes and changing
** Support for the EXTFH has been greatly enhanched and now includes support
for FH--FCD and FH--KEYDEF, fixed use of different attributes and changing
pointers and now supports - for 32-bit builds - an internal conversion
between FCD2 and FCD3 for cases where existing programs are coded with FCD2

** OCCURS with multiple VALUEs supported (BS2000 format without FROM/TO)
** OCCURS with multiple VALUEs supported (BS2000 format, FROM and TO pending)

** new function to call COBOL from C that won't exit the program in case
** new function to call COBOL from C that doesn't abort the program in case
of runtime errors or STOP RUN: cob_call_with_exception_check()

** Support for GCOS 7 (Bull) dialect, including:
** Support for the GCOS 7 (Bull) dialect, including:
* PICTURE strings with L character (variable length fields)
* CONTROL DIVISION with SUBSTITUTION SECTION (full support) and DEFAULT
SECTION (partial support)

** Multiple sequential files may be concatenated by specifying multiple
files with a separator in its ASSIGN name (either directly or via
** Multiple sequential files can be concatenated by specifying multiple
files with a separator in the ASSIGN name (either directly or via
environment), see the new runtime options
COB_SEQ_CONCAT_NAME (defaulting to false) and COB_SEQ_CONCAT_SEP
COB_SEQ_CONCAT_NAME (defaults to false) and COB_SEQ_CONCAT_SEP

** Initial "testing support" of CODE-SET clause to convert between ASCII and
EBCDIC on READ/WRITE/REWRITE for sequential and line-sequential files
Expand All @@ -58,17 +53,14 @@ NEWS - user visible changes -*- outline -*-
[core-]dump and stacktrace) with "STOP ERROR" statement or by
CALL "CBL_RUNTIME_ERROR"

** COB_PHYSICAL_CANCEL may now be configured as "never" to prevent unloading,
** COB_PHYSICAL_CANCEL can now be configured as "never" to prevent unloading
of COBOL modules, both on CANCEL and on process exit, which is useful for
analysis tools like callgrind or perf to keep all symbols until the end of
the COBOL process

** the system function x'91' was extended to support more functions
analysis tools such as callgrind or perf to keep all symbols until the end
of the COBOL process

** TODO - More to document before 3.2 final
** the system function x'91' has been extended to support more functions


* Changes that potentially effects existing programs:
* Changes that potentially effect existing programs:

** ALLOCATE statement: earlier versions of GnuCOBOL initialized the memory
(to binary zero) if the INITIALIZED clause was not specified,
Expand Down Expand Up @@ -100,7 +92,7 @@ NEWS - user visible changes -*- outline -*-
in case of "overflowing" records previous versions of GnuCOBOL cut the
data, set io status 00 and skipped the file until the next line
terminator is found;
the default changed (per COBOL 2022 and other compilers) so the data is
the default changed (per COBOL 2023 and other compilers) so the data is
returned as "multiple" records and a warning (status 06) is issued;
setting COB_LS_SPLIT = false will have the old behaviour of truncating
the record, but will now set status 04
Expand Down Expand Up @@ -169,10 +161,10 @@ NEWS - user visible changes -*- outline -*-
if you set those via COB_SWITCH environment variables you need to adjust
their numbers

* Changes that potentially effects recompilation of existing programs:
* Changes that potentially effect recompilation of existing programs:

** the reserved word list and intrinsic functions was updated, especially
to cater for new features of COBOL 2022; if compiling with any non-strict
to cater for new features of COBOL 2023; if compiling with any non-strict
dialect you may need to unreserve any conflicting words / functions

** in 64-bit environments, the default size for BY VALUE parameters has changed:
Expand Down Expand Up @@ -264,6 +256,13 @@ NEWS - user visible changes -*- outline -*-
clause for VALUE clause; this is applied to IBM dialects, if you want
the previous behavior compile with -fno-init-justified

** depending on the new dialect option "using-optional" (included in the
the default dialect), checks for arguments not passed are now done (only)
on CALL, not on their (possibly many) references; if you want the old
"postponed" check either specify the parameter as OPTIONAL or use
-fusing-optional=skip; note: the non-strict dialects will raise a warning
on the first use of this feature, then automatically enable it

** the dialect configuration option larger-redefines-ok was replaced by
the support option larger-redefines; if specified on the command-line
it is now -f[no-]larger-redefines instead of -f[no-]larger-redefines-ok,
Expand Down Expand Up @@ -377,7 +376,7 @@ NEWS - user visible changes -*- outline -*-
and reserved words updated for the dialects "acu" (to ACUCOBOL-GT 10.4),
"ibm" (to Enterprise COBOL 6.3) and "mf" (to Micro Focus Visual COBOL 6.0)

** for all "lax" updates SYNC was handled even if commonly ignored by the strict
** for all "lax" varants SYNC was handled even if commonly ignored by the strict
dialects, this was fixed so SYNC is ignored depending on the dialect

** COBOL programs compiled with versions before GnuCOBOL 3 that used files with
Expand Down Expand Up @@ -437,6 +436,10 @@ NEWS - user visible changes -*- outline -*-
** quotes around filenames and parts that are resolved by environment variables
are internally ignored

** the exception check for EC-PROGRAM-ARG-MISMATCH is now generated, validating
that non-optional PROCEDURE DIVISION USING items are passed and that their
size in the caller is at least as big as in the program

** in case of any runtime features being used that are not available an error
is generated during compile (may be reduced to a warning by -Wunsupported
or be suppressed by -Wno-unsupported) and if the feature is actually used
Expand Down Expand Up @@ -559,7 +562,7 @@ For more known issues see the bug tracker.
** JSON GENERATE statement
(note: runtime support needs additional library cJSON or JSON-C)

** CONTINUE AFTER statement (COBOL 2022) implemented, also handle fractions
** CONTINUE AFTER statement (COBOL 2023) implemented, also handle fractions
of seconds in C$SLEEP now

** TYPEDEF and SAME AS (COBOL 2002) implemented, including the MicroFocus
Expand Down
10 changes: 10 additions & 0 deletions build_windows/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,9 @@
/* #undef HAVE_ATTRIBUTE_CONSTRUCTOR - using DllMain */
#endif

/* Has __attribute__((pure)) */
/* #undef HAVE_ATTRIBUTE_PURE */

/* Define to 1 if you have the `canonicalize_file_name' function. */
#if defined(__ORANGEC__)
#define HAVE_CANONICALIZE_FILE_NAME 1
Expand Down Expand Up @@ -596,6 +599,13 @@
/* #undef HAVE_MOUSEINTERVAL */
#endif

/* curses has mousemask function and mmask_t definition */
#if CONFIGURED_CURSES != NOCURSES
#define HAVE_MOUSEMASK 1
#else
/* #undef HAVE_MOUSEMASK */
#endif

/* Define to 1 if you have the <mpir.h> header file. */
#if USED_MATHLIB == MATHLIB_MPIR
#define HAVE_MPIR_H 1
Expand Down
20 changes: 20 additions & 0 deletions cobc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@

2023-07-26 Simon Sobisch <[email protected]>

* typeck.c (search_set_keys): improving SEARCH ALL syntax checks

2023-07-25 Simon Sobisch <[email protected]>

* codegen.c (output_entry_function): if COBOL CALL convention is
used, then only use local pointers for specifying not-passed
arguments, improving support for omission of trailing (optional)
parameters in CALL
* config.def, codegen.c, typeck.c: added using-optional dialect option;
if set to "ok" the check for not-passed arguments will only be done
on program entry for all parameters not explicit specified as OPTIONAL
* parser.y (_procedure_optional): added checks for cb_using_optional,
if OPTIONAL used and set to "warning", then reset it to "ok" after first
warning
* codegen.c (output_entry_function): generate checks for
EC-PROGRAM-ARG-MISMATCH validating that non-optional arguments are
passed and if passed then checks its minimal size

2023-07-24 Simon Sobisch <[email protected]>

* parser.y (entry_statement): don't check parameter address
Expand Down
Loading

0 comments on commit c0d64ad

Please sign in to comment.