pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/lang/gnucobol gnucobol: update to 3.1.1.
details: https://anonhg.NetBSD.org/pkgsrc/rev/c1ccdafb6c18
branches: trunk
changeset: 443333:c1ccdafb6c18
user: fcambus <fcambus%pkgsrc.org@localhost>
date: Thu Dec 10 18:09:34 2020 +0000
description:
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).
diffstat:
lang/gnucobol/Makefile | 9 +++++----
lang/gnucobol/distinfo | 10 +++++-----
2 files changed, 10 insertions(+), 9 deletions(-)
diffs (43 lines):
diff -r 88efd10e707a -r c1ccdafb6c18 lang/gnucobol/Makefile
--- a/lang/gnucobol/Makefile Thu Dec 10 17:45:47 2020 +0000
+++ b/lang/gnucobol/Makefile Thu Dec 10 18:09:34 2020 +0000
@@ -1,12 +1,12 @@
-# $NetBSD: Makefile,v 1.7 2020/05/23 13:06:37 rillig Exp $
+# $NetBSD: Makefile,v 1.8 2020/12/10 18:09:34 fcambus Exp $
#
-DISTNAME= gnucobol-2.2
+DISTNAME= gnucobol-3.1.1
CATEGORIES= lang
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=open-cobol/}
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=gnucobol/}
MAINTAINER= rodo%bloerp.de@localhost
-HOMEPAGE= https://open-cobol.sourceforge.io/
+HOMEPAGE= https://gnucobol.sourceforge.io/
COMMENT= Open-source COBOL compiler
LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3
@@ -22,6 +22,7 @@
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --with-db
INFO_FILES= yes
+TEST_TARGET= check
SUBST_CLASSES+= bdb
SUBST_MESSAGE.bdb= Detect pkgsrc Berkeley DB library
diff -r 88efd10e707a -r c1ccdafb6c18 lang/gnucobol/distinfo
--- a/lang/gnucobol/distinfo Thu Dec 10 17:45:47 2020 +0000
+++ b/lang/gnucobol/distinfo Thu Dec 10 18:09:34 2020 +0000
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.5 2017/12/17 04:54:15 ryoon Exp $
+$NetBSD: distinfo,v 1.6 2020/12/10 18:09:34 fcambus Exp $
-SHA1 (gnucobol-2.2.tar.gz) = 23a45625d23700593b5eea09f8f52dd628b9bcf5
-RMD160 (gnucobol-2.2.tar.gz) = ec17eca4de2e2b9b129b38f5ed260fcf27f4a71a
-SHA512 (gnucobol-2.2.tar.gz) = 2ac209af6c7251b3fc5a7b8a2cfe490bfea16640dbf4d56d79708d688d99c4bfd577ff3f9523962392e81ebe0efea6985b964449c44a4cfa6af5119d1c1bab56
-Size (gnucobol-2.2.tar.gz) = 2660284 bytes
+SHA1 (gnucobol-3.1.1.tar.gz) = 33aed5de75a8f44405ebc49fcbe3174042ed98a8
+RMD160 (gnucobol-3.1.1.tar.gz) = d1e67b053819a660cdfd55b193171a9745fd33bd
+SHA512 (gnucobol-3.1.1.tar.gz) = 568285f584df9184dfea31ea067226e19af20df8e8321ab06767f9ed8b7cb7f1726bcbc86557bd76ac37e62a3ce3065292a38994b04bc072c449a8510c33790e
+Size (gnucobol-3.1.1.tar.gz) = 3867529 bytes
Home |
Main Index |
Thread Index |
Old Index