Skip to content

Commit

Permalink
Merge branch 'gc4' into gc4-ci
Browse files Browse the repository at this point in the history
  • Loading branch information
GitMensch authored Dec 6, 2024
2 parents 2f9b170 + 929f8be commit 0838b7f
Show file tree
Hide file tree
Showing 78 changed files with 50,557 additions and 4,215 deletions.
1 change: 0 additions & 1 deletion .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ jobs:
- name: bootstrap
run: |
sed -i '' 's/-undefined suppress//g' configure.ac # TODO drop
./build_aux/bootstrap install
- name: Build environment setup
Expand Down
30 changes: 17 additions & 13 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,52 @@ image: gitpod/workspace-c

tasks:

- name: setup coding environment on Ubuntu 20.04
- name: setup coding environment on Ubuntu 22.04
before: |
# note: sadly we need this to be done every time as only /workspace is kept, but linked
# against those dependencies; and also we do want to recompile after adjustments
# this can all be dropped as soon as we would use a prepared docker
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libgmp-dev libdb-dev libjson-c-dev ncurses-dev libxml2-dev \
automake libtool flex bison help2man texinfo \
lcov
# sudo apt install gettext texlive-base # for make dist (po/*, doc/gnucobol.pdf)
automake libtool flex bison help2man gettext texinfo \
lcov \
clangd bear
# sudo apt install texlive-base # for make dist (doc/gnucobol.pdf)
gp sync-done system-prepare
- name: building GnuCOBOL
init: |
mkdir -p $GITPOD_REPO_ROOTS/_build
cd $GITPOD_REPO_ROOTS/_build
mkdir -p $GITPOD_REPO_ROOTS/build
cd $GITPOD_REPO_ROOTS/build
gp sync-await system-prepare
../autogen.sh
../configure --enable-cobc-internal-checks --enable-debug --enable-code-coverage
make --jobs=$(nproc)
../configure --enable-cobc-internal-checks --enable-debug --enable-code-coverage \
CC="gcc -std=c89" CPPFLAGS="-Werror=declaration-after-statement"
bear -- make --jobs=$(nproc)
command: |
cd $GITPOD_REPO_ROOTS/_build
cd $GITPOD_REPO_ROOTS/build
gp sync-done build-finish
- name: running GnuCOBOL tests with coverage
command: |
gp sync-await build-finish
cd $GITPOD_REPO_ROOTS/_build
cd $GITPOD_REPO_ROOTS/build
half_jobs=$(( $(nproc) / 2 ))
nice make --jobs=${half_jobs} check-code-coverage TESTSUITEFLAGS="--jobs=${half_jobs}"
- name: running NIST85 tests
command: |
gp sync-await build-finish
cd $GITPOD_REPO_ROOTS/_build
cd $GITPOD_REPO_ROOTS/build
half_jobs=$(( $(nproc) / 2 ))
nice make -C tests/cobol85 --jobs=${half_jobs} test
# disabled as the download takes too long
# disabled as running that is really only useful *after*
# several adjustments to the build system -> manually
#- name: running GnuCOBOL distribution tests with testuite
# command: |
# gp sync-await build-finish
# cd $GITPOD_REPO_ROOTS/_build
# cd $GITPOD_REPO_ROOTS/build
# half_jobs=$(( $(nproc) / 2 ))
# nice make --jobs=${half_jobs} distcheck TESTSUITEFLAGS="--jobs=${half_jobs}"

Expand All @@ -58,3 +61,4 @@ vscode:
- tenninebt.vscode-koverage
- meronz.manpages
- webfreak.debug
- OCamlPro.SuperBOL
33 changes: 33 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,39 @@

* configure.ac: replace AC_ARG_VAR by AC_SUBST where appropriate

2024-05-14 David Declerck <[email protected]>

* configure.ac: update flags for building dynamic libraries on macOS
(helps fixing testsuite issues on recent macOS versions)

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

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* configure.ac: fixed duplicate note about JSON_C_C_FLAGS,
changed messages as per autoconf docs

2023-02-25 Ron Norman <[email protected]>

* configure.ac: Add check for sys/time.h
Expand Down
27 changes: 23 additions & 4 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ NEWS - user visible changes -*- outline -*-
where the old default GnuCOBOL data files could be unusable if copied between
systems of different hardware architecture.

** use the "default" -shared flag to build dynamic libraries on macOS
so as to fix testuite issues with recent macOS versions

** dialect option to allow ref-mod with zero-length (active with -std=default),
with runtime checks enabled; also set by directives
Expand Down Expand Up @@ -306,12 +308,15 @@ Open Plans:
affected programs (with OCCURS DEPENDING ON) or compile with additional
-fno-odoslide to get the same results as with older GnuCOBOL versions

** the compile flag -fdefaultbyte was moved to a dialect configuration,
** the compile flag -fdefaultbyte (initializarion for data-items without
an explicit VALUE) was moved to a dialect configuration;
while -fdefaultbyte still works as before it is now implied as binary
zero with -std=ibm/mvs/bs2000, space for -std=mf/acu/rm/realia, and
zero with -std=ibm/mvs/bs2000/realia, space for -std=mf/acu/rm, and
no defined initialization for -std=cobol85/cobol2002/cobol2014/xopen,
it is unchanged for -std=default (initialize to PICTURE/USAGE)
for compatibility to previous behavior compile with -fdefaultbyte=init
it is unchanged for -std=default (initialize to PICTURE/USAGE);
for compatibility to previous behavior compile with -fdefaultbyte=init;
note that initialization for INDEXED BY items honors the defaultbyte
configuration now, too

** the dialect configuration option larger-redefines-ok was changed to
a support option larger-redefines; if specified on the command-line
Expand Down Expand Up @@ -414,6 +419,15 @@ Open Plans:
** several bugs in COPY REPLACING / REPLACING were fixed along with adding
support for exensions related to REPLACING LEADING / TRAILING

** for PICTURE P several fixes were made, so results may vary compared with
previous versions; sources with *leading* P never worked correct before,
and *must* be recompiled after upgrading

** since its addition to GnuCOBOL ROUNDING MODE PROHIBITED just prevented
rounding; its behaviour changed to match the specification by doing that,
raising EC-SIZE-TRUNCATION and changed: not adjust the target field if
rounding would be necessary to store the data

* Listing changes

** the timestamp in the header was changed from ANSI date format like
Expand Down Expand Up @@ -514,6 +528,11 @@ Open Plans:
that this has to take both mathematical and "C compiler portability" into
account)

** variables containing PICTURE symbol P may lead to wrong results in rare
cases (especially screenio) - please send a bug report if you catch a case;
since GC 3.2 rc3 all arithmetic operations and MOVE are believed to be
correct

** 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
Expand Down
105 changes: 58 additions & 47 deletions THANKS
Original file line number Diff line number Diff line change
@@ -1,83 +1,94 @@
Previous and current project maintainers:
Past and present maintainers:

Keisuke Nishida <[email protected]>
Roger While (1950-2015)
Simon Sobisch <[email protected]>


Additional main developers with huge code and design contributions:
Other core developers with major code and design contributions

Ron Norman <[email protected]> including for, but not limited to:
- implementation and ongoing work on C-/D-/VBISAM handler
- implementation and ongoing work on ODBC/OCI handler
Ron Norman <[email protected]> including but not limited to
- Implementation and ongoing work on the C-/D-/VBISAM handler
- Implementation and ongoing work on ODBC/OCI handler
- SHARING and RETRY clause implementation
- development of Report Writer
- external EXTFH along with ADDRESS OF FH--FCD and FH--KEYDEF
- improved overal compatibility to Micro Focus COBOL
- various improvements to code generation including resolving
- Report Writer development
- Standard EXTFH together with ADDRESS OF FH--FCD and FH--KEYDEF
- Improved overal compatibility with Micro Focus COBOL
- Various improvements to code generation including resolving
constant expressions at compile time
- runtime configuration
- C-API for inspect/update COBOL data fields
- dump on abort
- Runtime configuration
- C-API to inspect/update COBOL data fields
- Dump on abort
- Performance improvements
- cobfile utility

Edward Hart <[email protected]> including for, but not limited to:
- fine-grained configuration of runtime checks
- compiler configuration, especially reserved word handling
Edward Hart <[email protected]> including but not limited to
- fine-grained configuration of run-time checks
- Compiler configuration, in particular reserved word handling
- datetime intrinsic functions
- XML GNERATE and JSON GENERATE
- initial support for internal repository (function and program prototypes)
- syntax support for standard COBOL and existing implementor extensions
- bug fixing and improving the testsuite
- XML GENERATE and JSON GENERATE
- Initial support for internal repository (function and program prototypes)
- Syntax support for standard COBOL and existing implementor extensions
- Bug fixes and test suite enhancements


Further more explicit thanks to:
We are grateful for the work of the Translation Project, its translation teams
and their individual contributors, who provide translations of user messages
for non-English speakers.

Alain Lucari <[email protected]>
Brian Tiffin <[email protected]>
David Korn <[email protected]>
Dave Pitts <[email protected]>
Joe Robbins (-2017)
Keiichi Takahashi <[email protected]>
Peg <[email protected]>
Richard Smith <[email protected]>
Thomas Biehler <[email protected]>
William M. Klein <[email protected]>
Yoshiki Kusumoto <[email protected]>
Similar thanks go to all the packagers who allow users to install GnuCOBOL from
their distributions' package management systems.

We are thankful for the work of the Translation Project, their translation
teams and their one-time contributors, providing the translation of user
messages for non-English speakers.
Also to the many people that have helped with testing this software.
We hope that everyone will continue to provide feedback. This is invaluable
to the ongoing development process.

Also to the many people that have helped out in testing this software.
We hope that everybody will continue to provide feedback. This is invaluable
to the continuing development process.

A special mention here of people who have provided exceptional support in terms
of time and resources on hardware that was not available to the developers:
Oleg Philon - For his work on the PowerPC
David Wilson - For his work on the MAC (Darwin)
A special mention here goes to people who have given exceptional support in
terms of time and resources on hardware that was not available to the
developers:
Oleg Philon - For his work on the PowerPC
David Wilson - For his work on the MAC (Darwin)
Sergey Kashyrin - For his work on:
- SUN Solaris
- IBM AIX
- HP-UX

And continuing this amazing support:
Arnold Trembley <[email protected]> - Win32 packaging and user support
Chuck Haatvedt <[email protected]> - Work on optimized BCD handling
Ludwin Janvier <[email protected]> - patches for build/packaging issues
Hans-Martin Rasch - Work on compiler syntax
Michel Gouget - Work on syntax - IS
Bill Klein - The mainstay for COBOL questions
Frank Swarbrick - Work on compiler syntax
Warren Gay - For testing systems that we didn't known that we even support!
(eg. old DEC Alpha systems)
Warren Gay - For testing systems we didn't even know we supported!
(e.g. old DEC Alpha systems)
Fabrizio Calabretta - Work on the internal EXTFH interface

Gary L. Cutler <[email protected]> and Vincent B. Coen <[email protected]> for
writing and maintaining the GnuCOBOL Programmer's Guide.

OCamlPro SAS for assigning David Declerck, Nicolas Berthier and
Fabrice Le Fessant to work for adding GCOS (Bull) support and
contributing the result.

Denis Hugonnard-Roche for ongoing additions to the internal testsuite to
improve code-coverage.
Denis Hugonnard-Roche for continuous additions to the internal test suite to
improve code coverage.


Further explicit thanks to

Alain Lucari <[email protected]>
Brian Tiffin <[email protected]>
David Korn <[email protected]>
Dave Pitts <[email protected]>
Joe Robbins (-2017)
Keiichi Takahashi <[email protected]>
Peg <[email protected]>
Richard Smith <[email protected]>
Thomas Biehler <[email protected]>
William M. Klein <[email protected]>
Yoshiki Kusumoto <[email protected]>


-------------------------------------------------------------------------------
Expand All @@ -93,7 +104,7 @@ OpenCOBOL was inspired by the TinyCOBOL project.
Thanks to the TinyCOBOL authors and maintainers.


Additional from TinCOBOL:
Additional from TinyCOBOL:

Rildo Pragana (1958-2020)

Expand Down
6 changes: 6 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,8 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/

- Rework the context-sensitive reserved words handling (or use a bigger type)

- Add --error-list -e to cobc

7.2 CHECKMEs, TODOs and #if-0'ed code

- Investigate the two CHECKMEs about bdb_close_cursor in fbdb.c:ix_bdb_write_internal
Expand All @@ -230,6 +232,8 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/

- Make field type an enum instead of a short in common.h:cob_field_attr as per TODO

- Add back the #if-0'ed code in codegen.c:output_perform_until and typeck.c: cb_emit_check_index; as this is not ISO-compliant it should have a dedicated option; also ensure it works well with the new dialect config introduced in 5087

- Check the #if-0'ed code in field.c:validate_field_value

- Check the #if-0'ed code for setting last_exception_source in common.c:cob_set_exception
Expand All @@ -243,3 +247,5 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/
- Check if should use strcpy or memcpy with computed max-length for file_open_name in fileio.c:cob_open

- Check what we should do about the casts used to remove const on open_mode in fileio.c and others (eg. in cob_file_open)

- Investigate failed manual tests "CRT STATUS clause" and "X/Open CRT STATUS clause" (see r4180)
8 changes: 6 additions & 2 deletions build_windows/ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
* makedist.cmd: first addition for CI output
* version_cobc.rc, version_libcob.rc: updated date + rev

2023-01-16 Simon Sobisch <[email protected]>

* version_cobc.rc, version_libcob.rc: updated date + rev

2022-12-17 Simon Sobisch <[email protected]>

* general for libcob+cobc: handle move of cconv module
Expand Down Expand Up @@ -43,7 +47,7 @@

2021-11-06 Simon Sobisch <[email protected]>

* config.h.in: moved references to PACKACAGE_defines after the define,
* config.h.in: moved references to PACKAGE_defines after the define,
fixing dist builds since 2020-10-27
* makedist.cmd: explicit search for "define PACKAGE_define" which fixes the
multiple results
Expand Down Expand Up @@ -346,7 +350,7 @@
version_libcob.rc, version_cobcrun.rc provided by Simon)


Copyright 2014-2021 Free Software Foundation, Inc.
Copyright 2014-2023 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification, are
permitted provided the copyright notice and this notice are preserved.
7 changes: 7 additions & 0 deletions build_windows/config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,13 @@
/* #undef HAVE_ATTRIBUTE_ALIGNED */
#endif

/* Has __attribute__((constructor)) */
#if defined(__ORANGEC__)
#define HAVE_ATTRIBUTE_CONSTRUCTOR 1
#else
/* #undef HAVE_ATTRIBUTE_CONSTRUCTOR - using DllMain */
#endif

/* Define to 1 if you have the `canonicalize_file_name' function. */
#if defined(__ORANGEC__)
#define HAVE_CANONICALIZE_FILE_NAME 1
Expand Down
Loading

0 comments on commit 0838b7f

Please sign in to comment.