Log message:
gnucobol: update to 3.2.
ChangeLog:
2023-07-28 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac, NEWS: updated for 3.2
* configure.ac: check for mousemask and mmask_t
2023-07-24 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: fix for resolving COBCRUN_NAME
2023-05-25 Chuck Haatvedt <chuck.haatvedt+cobol@gmail.com>
* configure.ac: added test for HAVE_RESIZE_TERM function
2023-04-25 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: try to error on warnings during checks, cleanup of resulting
unexpected test failures
* configure.ac: drop deprecated-non-prototype warning in clang
* configure.ac: add LIBCOB_LIBS while checking for libraries
* configure.ac: added check for HAVE_ATTRIBUTE_CONSTRUCTOR
2023-04-05 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: pass --enable-debug to autoconf generated files as
COB_ENABLE_DEBUG, currently used for running extra test cycles in
the test suite
2023-03-03 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: allow specification of XML2_CONFIG (only used if
pkg-config module libxml-2.0 is not available)
* configure.ac: check all used headers of libxml-2.0,
warn user if not found
* improve multiple header header check via AC_CHECK_HEADERS according
to docs (cJSON, json-c and curses)
2023-02-27 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: fixed duplicate note about JSON_C_C_FLAGS,
changed messages as per autoconf docs
2023-02-19 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: minor adjustment for bdb library lookup
2023-02-10 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: fixed adjusted hack for AIX 64bit OBJECT_MODE
and added 32bit pendant
* configure.ac, NEWS: updated for 3.2rc-2
2023-02-09 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: : search for json-c header in its common
default directory json-c/json.h
2023-01-18 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac, NEWS, gnucobol.spec: updated for 3.2rc-1
2023-01-16 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: adjusted hack for AIX 64bit OBJECT_MODE
2023-01-14 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: fix to use pdcurses when libcurses was verified
2023-01-05 Simon Sobisch <simonsobisch@gnu.org>
* Makefile.am (CODE_COVERAGE_IGNORE_PATTERN): add some .def files
that have shown to be not useful for code coverage
2022-12-12 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: check for and substitute PERL/perl
2022-12-02 Simon Sobisch <simonsobisch@gnu.org>
* Makefile.am: tarstamp.h may now be created on base of VCSDATE or
FILEDATE, to override specify VCSDATE/FILEDATE=false or with an
actual value
* Makefile.am: tarstamp.h creation more portable, using fallback
of current date
2022-12-01 Simon Sobisch <simonsobisch@gnu.org>
* Makefile.am: fixed dependencies, especially for tarstamp.h
2022-11-04 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: support BDB_CFLAGS to specify necessary flags like
non-default include directory
* configure.ac: drop check for PDC_free_memory_allocations as that
function was removed from PDCursesMod
2022-10-22 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: version 3.2-preview
2022-10-18 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: cache several checks, also allowing to override its results
via gc_cv_keyword_inline, gc_cv_time_timezone, gc_cv_designated_inits,
gc_cv_attribute_alligned, gc_cv_attribute_pure, gc_cv_gcc_pipe
* configure.ac: check ncurses.h also for ncursesw (fixing OpenBSD builds)
* Makefile.am (CODE_COVERAGE_IGNORE_PATTERN): ignore generated files
2022-10-04 Simon Sobisch <simonsobisch@gnu.org>
* HACKING: add notes for testing compatibility with GnuCOBOL modules
generated by an earlier version of GnuCOBOL
2022-09-21 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: dropped extra check for GCC as done internally
2022-09-08 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: cleanup curses library check
2022-07-27 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: check for ncursesw first, then ncurses;
in case of ncurses check for ncurses.h again
2022-07-10 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: check for PDC_free_memory_allocations
2022-07-06 Nicolas Berthier <nicolas.berthier@ocamlpro.com>
* configure.ac: Check for __attribute__((pure))
2022-06-06 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac (COB_CFLAGS): handle -ggdb options correctly
2022-05-31 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac (COB_CFLAGS): handle optimization options -Oz and -Ofast,
don't remove leading -O of unknown options
2022-05-04 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: test for basic MAKE functionality
* configure.ac: style change when testing for not set/empty variable
2022-04-29 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: check for -pipe option for compilers that claim to be GCC,
as this isn't available on all of these and not on all environments
* configure.ac: added check for BDB_LIBS, allowing to explicit specify
link options necessary for BDB, library used; if not set use old
logic of deriving the library name from BDB version (db.h)
* configure.ac: experimental checking for XCurses
2022-03-29 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: dropped obsolete AC_PROG_CC_STD, AC_HEADER_STDC as
already included in AC_PROG_CC and assumed otherwise
2022-03-11 Simon Sobisch <simonsobisch@gnu.org>
* Makefile.am: targets to create binary distributions
2022-01-03 Simon Sobisch <simonsobisch@gnu.org>
* general: revert change 2019-06-05 - all header files that are included
from the system use <include.h>, "local.h" is used otherwise \
with the
exceptions of to-be-installed headers which include files that have a
local reference to each other after installation (common.h +
and exceptions.def)
2021-12-30 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: early check for usable LDFLAGS + LIBS
* configure.ac: option to add MATH_LIBRARY for necessary math functions
(for systems that don't include those in their C library) to LIBCOB_LIBS
* configure.ac: only set -g to COB_DEBUG_FLAGS when tested to work
2021-11-02 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: use `dnl` comments in all places that are not intended be
included in the generated configure script, fixing spurious warnings
about potentially undefined macros;
* configure.ac: copyright notice in generated script
* m4/libtool.m4: updated from libtool, with additions for netbsd from Debian
(Debian 993872) and Johan Anderholm (patch #39)
2021-10-11 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: requiring libtool 2.2 via LT_PREREQ,
specify use of ar-lib for systems that may need it via AM_PROG_AR
* configure.ac: moved sys/time.h to optional headers
* configure.ac: check for more BDB library names (Win32 common names)
2021-10-08 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: dropped portibility warnings for automake because
of false-positives, only define specific names we want instead
"everything that automake has"
* configure.ac: explicit check for bison/flex
* m4/ax_prog_bison.m4, m4/ax_prog_flex.m4: new files from the
GNU Autoconf Archive
2021-10-04 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: cleanup for math library check fixing #559
* configure.ac: removed check for dladdr as we don't use it
* configure.ac: removed math library as not necessary anymore,
see related #702
2021-09-15 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: allow local cJSON to be used during cross-compile
and simplified size checks, based on patches of Helmut Grohne
(Debian 993872) and Johan Anderholm (patch #39)
2021-04-07 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: check for CC when applying aix hack additional to CFLAGS
* configure.ac: ncurses test: check for ncurses.h, not curses.h
2021-03-07 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: new COBC_CPPFLAGS will be used in cobc generation
* configure.ac: version 3.2-dev
|
Log message:
gnucobol: update to 3.1.1.
Pkgsrc changes:
- Follow redirects (open-cobol -> gnucobol) for MASTER_SITES and HOMEPAGE
- Add a test target
ChangeLog:
GnuCOBOL 3.1.1 released (20201208)
GnuCOBOL 3.1 released (20201111) had issues that were fixed
* New GnuCOBOL features
** XML GENERATE statement
(note: runtime support needs additional library libxml2)
** JSON GENERATE statement
(note: runtime support needs additional library cJSON or JSON-C)
** CONTINUE AFTER statement (COBOL 202x) implemented, also handle fractions
of seconds in C$SLEEP now
** TYPEDEF and SAME AS (COBOL 2002) implemented, including the MicroFocus
and RM/COBOL variants
** >>TURN (COBOL 2002) directive implemented, allowing some exception checks
to be turned on/off per source as desired
** Improved support for different compiler extensions (ACUCOBOL, IBM,
Fujitsu, MicroFocus COBOL, Microsoft COBOL, RM/COBOL, CA Realia and more)
** file handling: include support for a callable EXTFH interface also provided
by several compilers including Micro Focus
This allows users to insert an external file handler while retaining
all of the normal COBOL I/O functions with a possible callback to libcob.
To have the compiled program call `yourfh()` for file I/O use:
`cobc -fcallfh=yourfh`
In turn `yourfh()` may call `EXTFH()` to use I/O functions from GnuCOBOL.
The external file handler can also be directly invoked from COBOL, too,
using `CALL "EXTFH"`.
** Note: Not each flag contained in the FCD3 is handled already **
** file handling: added support for [RE]WRITE FILE file FROM source
** file handling: name mapping adjusted (improved MF and ACU-compatibility):
entries starting with a period or number are not resolved any more,
periods in the external identifier are always replaced by underscore
-> MY.FILE is resolved by DD_MY_FILE, dd_MY_FILE, MIFILE now;
prefixes "-F " and "-D " are removed from external names;
if filename is not absolute after translation, COB_FILE_PATH is now
still applied;
File name mapping now applies both to COBOL statements and CALLable
CBL_ and C$ file routines.
** Screen I/O: initial mouse support (for details see runtime.cfg),
use of CURSOR clause in SPECIAL-NAMES for positioning on ACCEPT
** on abort a stack trace will be genereated, this can be suppressed by
runtime configuration option COB_STRACK_TRACE
** the dump that is generated on abort (depending on -fdump at compile-time)
was heavily improved and combines consecutive identical OCCURS items,
leading to smaller dump files
** changes in handling COPY statement:
* copybook names that contain an extension aren't searched with additional
extensions [as post-rc1-change this may be set to old behaviour by
defining COB_MULTI_EXTENSION when building GnuCOBOL/cobc]
* library names are now tested for environment "COB_COPY_LIB_libname",
allowing the directory to specified externally (also as no-directory
by exporting with empty value) and has a fallback (with a warning) to
be effectively ignored (as previous versions did this)
* Removed functions
** SCREEN SECTION, REPORT-WRITER module: removed non-standard extension
"LINE / COL signed-integer" (inadvertently available since 2.2/3.0rc1);
which will now raise an error "unsigned integer expected";
if used replace by standard "LINE / COL +/- integer"
* Obsolete features (will be removed in the next version if no explicit user
requests are raised)
** support for Borland C compiler and linker
** -fif-cutoff flag for cobc (currently disabled, see entry below in 3.0rc1)
** old OpenCOBOL-only-EXTFH
* Changes to the COBOL compiler (cobc) options:
** new options:
-f[no]-ec=exception-name to tune the exception checks similar to the >>TURN
directive, you may also leave out the "EC-" prefix here, example to
enable all checks but disable all bound checks but OCCURS DEPENDING ON:
cobc -debug -fno-ec=bound -fec=bound-odo
** adjustments to warning options:
-Wextra "new" option to enable every possible warning that is not \
dialect
specific (this option used to be called -W)
-Wadditional new warning group for all warnings that don't have a group
on their own
-Wno-error and -Wno-error=<warning> to treat (specific \
<warning>s) not as error
-Wdangling-text for raising the warning "source text after program \
area",
not included in -Wall any more
-Wno-ignored-error allows to suppress messages that normally would be an
error and are only allowed because they are never executed
-Wimplicit-define and -Wcorresponding are now enabled by default
-f[no]-diagnostics-show-option, enabled by default, shows the
command line option responsible for the diagnostic message
extra information to a warning (or error) is now marked as "note:"
** the interal Xref got a huge speedup, has all references in ascending order
now and includes the total amount of direct references
** the interal listing got a speedup and has all error references in
ascending order now
** cobc -g (and configure --enable-debug) use the most expressive
debugging options available on the system
** cobc -g now auto-includes references to the COBOL source file and to
all ENTRY and SECTION elements to ease source level debugging
* Changes in the COBOL runtime (libcob)
** Messages from the COBOL runtime are also translated now (if installed).
To prevent this disable translations in general with using the configure
option --disable-nls (or by deactivating ENABLE_NLS in config.h).
** libcob.h does no longer auto-include gmp.h (behavior since 2.x), if you link
against libcob and need cob_decimal include gmp.h/mpir.h yourself before;
otherwise you do not need it in your include path any more
** execution times of INSPECT and INITIALIZE with OCCURS were heavily cut down
** convenience functions for direct C access to COBOL fields and for debugging
were added, see new C-API documentation
** first-time file-locking under Win32
** Breaking change: previously the return-code of registered error handlers
(by CBL_ERROR_PROC) were ignored. This was changed according to the
documentation for CBL_ERROR_PROC -> a RETURN-VALUE of ZERO skips further
error handlers to be called, including the internal one.
* New build features
** Running the internal tests by make check now fails if the testsuite has any
unexpected result.
** The modules and test programs in the NIST COBOL-85 test suite (tests/cobol85)
may now be build and/or tested and/or the test results checked separately.
You now may also run the tests with a previous installed version of GnuCOBOL
(or a version specified by a manual temporary setup).
For details see tests/cobol85/README.
** new configure option --with-math=ARG to specify which math multiple precision
library is to be used, where ARG may be: check (default), gmp, mpir
** new configure options --with-xml2 / -without-xml2 to explicit force/disable
XML runtime support, otherwise it will be included if found as working
** new configure option --with-json / -without-json to explicit force/disable
JSON runtime support, otherwise it will be included if found as working
Note: As a special case you may built-in cJSON by placing its source in
the folder "libcob". If it is included there, this version will be \
compiled
into libcob. It may be enforced with --with-json=local,
like --with-json=cjson and --with-json=json-c enforce the given library.
** To adjust the build system for GMP/MPIR you may use the new variables
GMP_CFLAGS / MPIR_CFLAGS and GMP_LIBS / MPIR_LIBS.
If unset configure will try pkg-config.
** To adjust configure to use libxml2 you may use the new variables XML2_CFLAGS
and XML2_LIBS. If unset configure will use pkg-config / xml2-config.
** To adjust configure to use libcjson you may use the new variables CJSON_CFLAGS
and CJSON_LIBS, similar JSON_C_CFLAGS and JSON_C_LIBS for libjson-c.
If unset configure will use pkg-config.
** new configure option --enable-hardening to either enable GNU C's
hardening options or leave as-is, or disable (which previous versions
effectively did)
** build system: defaults.h is not created or included any more, all configure
provided defines are now found in the single header config.h
** Any time after `make` you can call `pre-inst-env` script to use the still-
uninstalled binaries. Samples:
pre-inst-env cobc -xj prog.cob
pre-inst-env cobcrun -M prog start
pre-inst-env may also be called without parameters to start a new shell
session with the environment adjusted to use the uninstalled version.
* Too much bug fixes to list here (please check ChangeLogs for full details),
includes the following CVEs:
** compiler (may be triggered with special crafted source files)
CVE-2019-14468, CVE-2019-14486, CVE-2019-14528, CVE-2019-14541,
CVE-2019-16396, CVE-2019-16395
* GnuCOBOL's getopt implementation honors POSIXLY_CORRECT now:
if set to any value the option parsing in cobc, cobcrun and CBL_GC_GETOPT
stops at the first nonoption, otherwise it stays with the old behaviour and
re-orders nonoptions to the end)
* Known issues in 3.1
** testsuite:
* if built with vbisam, cisam or disam, depending on the version used, some
tests will lead to UNEXPECTED PASS, while others may fail
* possibly failing tests (false positives):
* temporary path invalid
* compiler outputs (assembler)
* compile from stdin
* NIST: OBNC1M.CBL false positive (the test runner uses a nonportable way of
emulating a program kill)
** the recent additions of ">> TURN" and "variable LIKE \
variable" may not work
as expected in all cases
** features that are known to not be portable to every environment yet
(especially when using a different compiler than GCC)
* function with variable-length RETURNING item
* USAGE POINTER, which may need to be manually aligned
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GnuCOBOL 3.0-rc1 released (20180422)
* New GnuCOBOL features
** REPORTWRITER module added
** INDEXED file handling: added support for sparse and split keys
** file handling: added support for [RE]WRITE FILE file FROM source
** DISPLAY ... UPON PRINTER may be redirected to an external command
(new runtime configuration COB_DISPLAY_PRINT_PIPE) or appended to a file
(new runtime configuration COB_DISPLAY_PRINT_FILE, which takes precedence)
** XML GENERATE statement
(note: runtime support needs additional library libxml2)
** JSON GENERATE statement
(note: runtime support needs additional library cJSON)
** Improved support for different compiler extensions (ACUCOBOL, IBM,
Fujitsu, MicroFocus COBOL, Microsoft COBOL, RM/COBOL and more)
** Parser support for many features of different compilers, for example
PIC 1 / USAGE BIT, ACUCOBOL extensions for graphical controls
VALIDATE statement and much more.
Most of them will be fully implemented in a later version...
** Option to dump (partial) data of modules on abort.
Use new cobc option -fdump=<scope> to prepare the module and optional
use new runtime configuration options COB_DUMP_FILE and COB_DUMP_WIDTH
to adjust the dump.
** C interface: new functions cob_set_runtime_option / cob_get_runtime_option
to set/get special runtime options (currently FILE * for trace and printer
output) or to reload the runtime configuration after changing environment
** file handling: include support for a callable EXTFH interface also provided
by several compilers including Micro Focus
This allows users to insert an external file handler while retaining
all of the normal COBOL I/O functions with a possible callback to libcob.
To have the compiled program call `yourfh()` for file I/O use:
`cobc -fcallfh=yourfh`
In turn `yourfh()` may call `EXTFH()` to use I/O functions from GnuCOBOL.
The external file handler can also be directly invoked from COBOL, too,
using `CALL "EXTFH"`.
** Note: Not all flags contained in the FCD3 are handled already **
* Changed cobc options:
** The option -debug (runtime checks) no longer implies -ftrace (option to
trace program flow of the generated module with COB_SET_TRACE).
You may specify -ftrace[all] along -debug if you want to use this feature.
** The option -E (preprocess file) does not imply an output file any more.
If no output file is explicit specified with -o filename.i the output will
be written to stdout (behavior of versions 1.1 is restored).
Requesting output to stdout explicit by using a dash as output name is
also possible.
** Changed options for listing:
The option -tsymbols was replaced by -ftsymbols and therefore can now also
be explicit deactivated by specifying -fno-tsymbols.
New options for suppressing (or explicit requesting) parts of the listing:
-fno-theader suppress all headers from listing while keeping page breaks
-fno-tmessages suppress warning and error summary from listing
-fno-tsource suppress actual source from listing (for example to only
produce the cross-reference)
** The option -fif-cutoff (option to change generated C sources to use
a label + goto for nested if/else) was deactivated to allow the C compiler
to fully control the program flow.
** Please report if you have a need for this option as it will be **
** removed permanently in the next release of GnuCOBOL otherwise. **
* Changes in the COBOL runtime (libcob)
** updated exception handling, GnuCOBOL now only cleans raised exceptions when
requested by SET LAST EXCEPTION TO OFF
** The standard-format for program tracing was changed and is now adjustable
by the runtime configuration option COB_TRACE_FORMAT.
* New build features
** New test suite for manual tests (especially SCREEN I/O),
run with `make checkmanual`.
Note: You may want to adjust the test runner tests/run_prog_manual.sh which
defaults to xterm in GUI environments and screen in terminal environments.
** new configure option --enable-debug-log to allow *internal* tracing
of GnuCOBOL (intended for developers of GnuCOBOL only)
* Too much bug fixes to list here (please check ChangeLogs for full details).
|