From d7f2988c4f0598abdabe98f869a73ec261c476cd Mon Sep 17 00:00:00 2001 From: sf-mensch Date: Tue, 8 Dec 2020 22:35:07 +0000 Subject: [PATCH] README.md and DEPENDENCIES.md now shipped with the tarball * Makefile.am [EXTRA_DIST]: added README.md and DEPENDENCIES.md * minor text updates --- ChangeLog | 4 ++++ DEPENDENCIES | 2 +- DEPENDENCIES.md | 27 +++++++++++++++++++-------- Makefile.am | 2 +- NEWS | 23 ++++++++++++++++++----- README | 7 ++++--- README.md | 23 ++++++++++++----------- build_windows/version_cobc.rc | 4 ++-- build_windows/version_cobcrun.rc | 2 +- build_windows/version_libcob.rc | 4 ++-- libcob/common.h | 4 +++- tests/atlocal.in | 2 +- tests/atlocal_valgrind | 5 ++++- tests/atlocal_win | 8 ++++---- 14 files changed, 76 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8df2bf2d6..5c87cd28b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ +2020-12-08 Simon Sobisch + + * Makefile.am [EXTRA_DIST]: added README.md and DEPENDENCIES.md + 2020-12-07 Simon Sobisch * m4/ax_ac_define_resolved.m4: fixed resolving datarootdir diff --git a/DEPENDENCIES b/DEPENDENCIES index 87b470fa3..2a1bde415 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -106,7 +106,7 @@ The following libraries ARE required WHEN : Ncurses is distributed under a BSD style license. o PDCurses (pdcurses) for MinGW/native windows ports - https://pdcurses.org/ or https://github.com/Bill-Gray/PDCurses/ + https://pdcurses.org/ or https://github.com/Bill-Gray/PDCursesMod/ PDCurses is distributed as Public Domain. diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index 02ef682b6..b549eb8fa 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -1,5 +1,5 @@ GnuCOBOL uses other software packages, some of these are necessary, -some optional. You find a detailed list of software below. +some optional. You find a detailed list of software below. These packages provide **compile-time** and **run-time** support. That is, they include C header files that are used during GnuCOBOL's C @@ -48,15 +48,17 @@ GNU Libtool is distributed under GNU Lesser General Public License. Not Required ============ (but helpful) - + All dependencies discussed from this point forward support optional features of GnuCOBOL. ISAM Support ------------ -Indexed-Sequential file I/O (ISAM) is used. By default, absent other -`configure` options, ISAM support comes from Berkeley DB, but that's only one alternative. Choose *one* of the following: +Support for Indexed-Sequential file I/O (ISAM): By default, absent other +`configure` options, ISAM support comes from Berkeley DB, +but that's only one alternative. +Choose *one* of the following: * [Berkeley DB](https://www.oracle.com/) (libdb) 4.1 or later https://www.oracle.com/technology/products/berkeley-db/db/index.html @@ -67,11 +69,11 @@ Indexed-Sequential file I/O (ISAM) is used. By default, absent other software, or you have to pay royalty to Oracle. * [VBISAM](https://sourceforge.net/projects/vbisam/) (libvbisam) 2.0 or later - + VBISAM is distributed under GNU Lesser General Public License. * [DISAM](http://www.isamcentral.com) (libdisam) - + DISAM is distributed under the proprietary License "Byte Designs Ltd. DISAM Software License". @@ -87,8 +89,9 @@ by *one* of the following: Ncurses is distributed under a BSD style license. -* [PDCurses](https://pdcurses.org/ or https://github.com/Bill-Gray/PDCurses/) - (pdcurses) for MinGW and native windows ports +* [PDCurses](https://pdcurses.org/) or + [PDCursesMod](https://github.com/Bill-Gray/PDCursesMod/), + especially for MinGW and native windows ports PDCurses is distributed as Public Domain. @@ -97,6 +100,8 @@ by *one* of the following: XML Support ----------- +Support for GENERATE XML is provided by: + * [libxml2](http://xmlsoft.org) libxml2 is distributed under MIT License. @@ -104,7 +109,13 @@ XML Support JSON support ------------ +Support for GENERATE JSON is provided by *one* of the following: + * [cJSON](https://github.com/DaveGamble/cJSON) >= 1.3.0 - cJSON is distributed under MIT License. +* [JSON-C](https://github.com/json-c/json-c) >= 1.12 - + + JSON-C is distributed under Expat License. + diff --git a/Makefile.am b/Makefile.am index 155312eec..68bdec542 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,7 +38,7 @@ dist_noinst_SCRIPTS = autogen.sh build_aux/bootstrap po/update_linguas.sh \ # wrapper for the build environment noinst_SCRIPTS = pre-inst-env -EXTRA_DIST = gnucobol.spec DEPENDENCIES HACKING +EXTRA_DIST = gnucobol.spec DEPENDENCIES DEPENDENCIES.md README.md HACKING # add rules for code-coverage testing, as defined by AX_CODE_COVERAGE include $(top_srcdir)/aminclude_static.am diff --git a/NEWS b/NEWS index bffbf7bea..3fe8c1c61 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,7 @@ NEWS - user visible changes -*- outline -*- - GnuCOBOL 3.1.1 to be released (November 2020) - - GnuCOBOL 3.1 released (20201111) + GnuCOBOL 3.1.1 released (20201208) + GnuCOBOL 3.1 released (20201111) had issues that were fixed * New GnuCOBOL features @@ -53,6 +52,10 @@ NEWS - user visible changes -*- outline -*- ** 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 @@ -110,6 +113,10 @@ NEWS - user visible changes -*- outline -*- ** 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) @@ -156,7 +163,7 @@ NEWS - user visible changes -*- outline -*- 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. + 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. @@ -205,12 +212,18 @@ NEWS - user visible changes -*- outline -*- * possibly failing tests (false positives): * temporary path invalid * compiler outputs (assembler) - * function with variable-length RETURNING item * 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) diff --git a/README b/README index 4a294f16b..4b32ced96 100644 --- a/README +++ b/README @@ -124,9 +124,10 @@ Tests ============ - To run the internal testsuite, simply do + To verify GnuCOBOL works before installing it, run the internal + testsuite. Simply do make check - This MUST succeed - If not, please report. + This MUST succeed. Please report any failures. You may optionally perform a series of COBOL85 tests. make test @@ -137,7 +138,7 @@ Tests ** NOTE ** Running "make test" will try to download the COBOL85 - testsuite if it is missing. + testsuite if it is neither in the build-tree nor source-tree. For details see tests/cobol85/README. If you want to run both testsuites you can run diff --git a/README.md b/README.md index fdbead77e..c31e493bb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -GnuCOBOL is a free COBOL compiler licensed under the GNU Public -License (GPL). It implements a substantial part of the COBOL 85, +[GnuCOBOL}(https://www.gnu.org/software/gnucobol/) is a free +COBOL compiler licensed under the GNU Public License (GPL). +It implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014 standards, as well as many extensions included in other COBOL compilers. @@ -30,7 +31,7 @@ Requirements ============ GnuCOBOL uses other software packages, some of these are necessary, -some optional. See DEPENDENCIES for a complete list. +some optional. See DEPENDENCIES.md for a complete list. If building GnuCOBOL from source, you can choose which optional functionality to include via the configure script. When using @@ -72,19 +73,19 @@ Tests ===== To verify GnuCOBOL works before installing it, run the internal -testsuite, simply do +testsuite. Simply do * `make check > log` This MUST succeed. Please report any failures. -Also included are standard tests provided by the NIST. They are run -with +Also included are COBOL85 standard tests provided by the NIST. +They are run with * `make test > log` -If for some reason the the COBOL85 testsuite is missing, `make test` - will download it. For details see tests/cobol85/README. +If the the COBOL85 testsuite is not already in the build- or source-tree, +`make test` will download it. For details see tests/cobol85/README. ** NOTE ** The language interpreter "perl" is required to run COBOL85 tests. @@ -98,7 +99,7 @@ Installation ============ To install GnuCOBOL, including the compiler, run-time library, and - documentation, +documentation, * `make install > log` @@ -136,7 +137,6 @@ following options, * `--with-cisam` to use CISAM * `--with-disam` to use DISAM * `--with-vbisam` to use VBISAM -* `--with-index-extfh` to use an external ISAM file handler Development =========== @@ -144,7 +144,8 @@ Development If you wish to hack the GnuCOBOL source or build from version control, see HACKING. -Further information about the project, including the source code repository, history, and frequently asked questions, may be found at +Further information about the project, including the source code repository, +history, and frequently asked questions, may be found at * https://www.gnu.org/software/gnucobol/ * https://sourceforge.net/projects/gnucobol diff --git a/build_windows/version_cobc.rc b/build_windows/version_cobc.rc index f5d3caa0d..eb2c26b45 100644 --- a/build_windows/version_cobc.rc +++ b/build_windows/version_cobc.rc @@ -6,7 +6,7 @@ #define COB_WITHOUT_EXCEPTIONS #define COB_WITHOUT_JMP #include "libcob/common.h" -#define VCS_REF 4019 +#define VCS_REF 4070 #define STRINGIZE_DETAIL_(v) #v #define STRINGIZE(v) STRINGIZE_DETAIL_(v) @@ -43,7 +43,7 @@ VS_VERSION_INFO VERSIONINFO { // VALUE "Comments", "Free for general use, including commercial (distribution bound to GPL).\0" // VALUE "CompanyName", "No Company\0" - VALUE "FileDescription", PACKAGE_NAME " compiler for most COBOL dialects with lots of extensions" + VALUE "FileDescription", PACKAGE_NAME " compiler, supporting most COBOL dialects with lots of extensions" VALUE "FileVersion", STRINGIZE(__LIBCOB_VERSION)"."STRINGIZE(__LIBCOB_VERSION_MINOR)"."STRINGIZE(__LIBCOB_VERSION_PATCHLEVEL)"."STRINGIZE(VCS_REF) VALUE "InternalName", "cobc" VALUE "LegalCopyright", "Copyright (C) 2001-2020 Free Software Foundation, Inc." diff --git a/build_windows/version_cobcrun.rc b/build_windows/version_cobcrun.rc index c1fde3b4b..6e9647ceb 100644 --- a/build_windows/version_cobcrun.rc +++ b/build_windows/version_cobcrun.rc @@ -6,7 +6,7 @@ #define COB_WITHOUT_EXCEPTIONS #define COB_WITHOUT_JMP #include "libcob/common.h" -#define VCS_REF 4019 +#define VCS_REF 4070 #define STRINGIZE_DETAIL_(v) #v #define STRINGIZE(v) STRINGIZE_DETAIL_(v) diff --git a/build_windows/version_libcob.rc b/build_windows/version_libcob.rc index f0b8040e7..5fed1f714 100644 --- a/build_windows/version_libcob.rc +++ b/build_windows/version_libcob.rc @@ -6,7 +6,7 @@ #define COB_WITHOUT_EXCEPTIONS #define COB_WITHOUT_JMP #include "libcob/common.h" -#define VCS_REF 4019 +#define VCS_REF 4070 #define STRINGIZE_DETAIL_(v) #v #define STRINGIZE(v) STRINGIZE_DETAIL_(v) @@ -43,7 +43,7 @@ VS_VERSION_INFO VERSIONINFO { // VALUE "Comments", "Free for general use, including commercial (distribution bound to GPL).\0" // VALUE "CompanyName", "No Company\0" - VALUE "FileDescription", PACKAGE_NAME " Runtime supporting most COBOL dialects with lots of extensions" + VALUE "FileDescription", PACKAGE_NAME " runtime, supporting most COBOL dialects with lots of extensions" VALUE "FileVersion", STRINGIZE(__LIBCOB_VERSION)"."STRINGIZE(__LIBCOB_VERSION_MINOR)"."STRINGIZE(__LIBCOB_VERSION_PATCHLEVEL)"."STRINGIZE(VCS_REF) VALUE "InternalName", "libcob" VALUE "LegalCopyright", "Copyright (C) 2001-2020 Free Software Foundation, Inc." diff --git a/libcob/common.h b/libcob/common.h index 346b715c6..d95e5feb2 100644 --- a/libcob/common.h +++ b/libcob/common.h @@ -362,6 +362,8 @@ only usable with COB_USE_VC2013_OR_GREATER */ #else #define __i386__ #endif +#else +#define __ia64__ #endif #endif /* _MSC_VER */ @@ -2394,7 +2396,7 @@ typedef struct { COB_EXPIMP void cob_display (const int, const int, const int, ...); COB_EXPIMP void cob_dump_output (const char *); COB_EXPIMP void cob_dump_file (const char *, cob_file *); -COB_EXPIMP void cob_dump_field (const int, const char *, cob_field *, const int, const int, ...); /* 3.1 compat */ +COB_EXPIMP void cob_dump_field (const int, const char *, cob_field *, const int, const int, ...); COB_EXPIMP void cob_dump_field_ext (const int, const char *, cob_field *, const cob_uli_t, const cob_u32_t, ...); COB_EXPIMP void cob_accept (cob_field *); diff --git a/tests/atlocal.in b/tests/atlocal.in index a9a53af68..d48308768 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -211,7 +211,7 @@ else fi if test "x$MSYSTEM" != "x" -o "$OSTYPE" = "cygwin"; then # running MSYS builds as not-visible child processes result in - # "Redirection is not supported" (at least old PDcurses) + # "Redirection is not supported" (at least old PDCurses) # --> disabling the tests for this feature # ncurses is known to work as long as TERM is appropriate if test $(grep -i -c "ncurses" info.out) != 0; then diff --git a/tests/atlocal_valgrind b/tests/atlocal_valgrind index c0579f8a1..434d5c821 100644 --- a/tests/atlocal_valgrind +++ b/tests/atlocal_valgrind @@ -150,6 +150,8 @@ export PATHSEP prefix="@prefix@" exec_prefix="@exec_prefix@" +# options that are also used in pre-inst-env (always add to both) +# but not directly in the testsuite COB_CFLAGS="-I${abs_top_srcdir} @COB_CFLAGS@" COB_LIBS="-L${abs_top_builddir}/libcob/.libs @COB_LIBS@" COB_CONFIG_DIR="${abs_top_srcdir}/config" @@ -238,6 +240,7 @@ else else COB_HAS_JSON="no" fi + # see note below if test $(grep -i -c " screen .*disabled" info.out) = 0; then COB_HAS_CURSES="yes" else @@ -246,7 +249,7 @@ else fi if test "x$MSYSTEM" != "x" -o "$OSTYPE" = "cygwin"; then # running MSYS builds as not-visible child processes result in - # "Redirection is not supported" (at least old PDcurses) + # "Redirection is not supported" (at least old PDCurses) # --> disabling the tests for this feature # ncurses is known to work as long as TERM is appropriate if test $(grep -i -c "ncurses" info.out) != 0; then diff --git a/tests/atlocal_win b/tests/atlocal_win index 4a0664408..ab1c66380 100644 --- a/tests/atlocal_win +++ b/tests/atlocal_win @@ -110,14 +110,14 @@ export COB_UNIX_LF # for runtime configuration ... COB_RUNTIME_CONFIG="$(_return_path "${abs_top_srcdir}/config/runtime_empty.cfg")" export COB_RUNTIME_CONFIG -for cobenv in $(${LOCAL_ENV} ${ABS_COBCRUN} --runtime-conf \ +for cobenv in $(${LOCAL_ENV} ${COBCRUN} --runtime-conf \ | grep " env:" | cut -d: -f2 | cut -d= -f1 \ | grep -v "PATH" | grep -v "TERM"); \ do _unset_option $cobenv; \ done # prevent multiple calls by caching the output -${LOCAL_ENV} ${ABS_COBC} --info > info.out +${LOCAL_ENV} ${COBC} --info > info.out # ... and also unset for the compiler if test "$GNUCOBOL_TEST_LOCAL" != "1"; then @@ -179,7 +179,7 @@ export COB_MSG_FORMAT fi if test "x$MSYSTEM" != "x" -o "$OSTYPE" = "cygwin"; then # running MSYS builds as not-visible child processes result in - # "Redirection is not supported" (at least old PDcurses) + # "Redirection is not supported" (at least old PDCurses) # --> disabling the tests for this feature # ncurses is known to work as long as TERM is appropriate if test $(grep -i -c "ncurses" info.out) != 0; then @@ -193,7 +193,7 @@ if test "x$MSYSTEM" != "x" -o "$OSTYPE" = "cygwin"; then else COB_HAS_CURSES="no" fi -fi + rm -rf info.out