Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ibm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: IBM Power & Z

on:
pull_request:
branches: [ gcos4gnucobol-3.x ]
branches: [ gc4 ]
# manual run in actions tab - for all branches
workflow_dispatch:

Expand Down
20 changes: 20 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@

2025-07-28 Simon Sobisch <simonsobisch@gnu.org>

* configure.ac: check timezone and designated initializers with -Werror
* m4/ax_code_coverage.m4, m4/ax_check_define.m4:
updated from autoconf-archive
* Makefile.am (CODE_COVERAGE_LCOV_OPTIONS_DEFAULT): silence some warnings
in lcov2

update gettext infrastructure from gnulib
* m4/gettext.m4, m4/intlmacosx.m4, m4/progtest.m4: updated
* m4/build-to-host.m4, m4/host-cpu-c-abi.m4, m4/intl-thread-locale.m4:
added
* m4/glibc2.m4, m4/glibc21.m4, m4/intdiv0.m4, m4/intl.m4, m4/intldir.m4,
m4/intmax.m4, m4/uintmax_t.m4: removed

2025-06-02 Simon Sobisch <simonsobisch@gnu.org>

* configure.ac: make signal.h optional again, even if this configuration
will fail some tests

2025-05-13 David Declerck <david.declerck@ocamlpro.com>

* configure.ac: testing working diff with the option to override by DIFF
Expand Down
5 changes: 4 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,16 @@ EXTRA_DIST = gnucobol.spec DEPENDENCIES DEPENDENCIES.md README.md HACKING
include $(top_srcdir)/aminclude_static.am

clean-local: code-coverage-clean
dist-clean-local: code-coverage-dist-clean
distclean-local: code-coverage-dist-clean

CODE_COVERAGE_BRANCH_COVERAGE=1
CODE_COVERAGE_IGNORE_PATTERN= \
"*/cobc/pplex.c" "*/cobc/ppparse.c" "*/cobc/scanner.c" "*/cobc/parser.c" \
"*/cobc/config.def" "*/cobc/warning.def" \
"*/libcob/statement.def"
# silence some warnings in lcov2
CODE_COVERAGE_LCOV_OPTIONS_DEFAULT= \
--ignore-errors source --rc geninfo_unexecuted_blocks=1

# files shipped with the package that should be 755'ed:
FILES_TO_BE_EXECUTABLE = $(dist_noinst_SCRIPTS) \
Expand Down
47 changes: 42 additions & 5 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Open Plans:

** cobc now checks for binary and multi-byte encoded files and early exit
parsing those; the error output for format errors (for example invalid
indicator column) is now limitted to 5 per source file
indicator column) is now limited to 5 per source file

** support the COLLATING SEQUENCE clause on indexed files
(currently only with the BDB backend)
Expand All @@ -111,11 +111,32 @@ Open Plans:
customization can be done using COB_PROF_FILE, COB_PROF_MAX_DEPTH and
COB_PROF_FORMAT

** initial support for XML PARSE
while this feature is not implemented fully and some events are not
implemented yet, we'd like you to test this feature already;
note that for the XML-EVENT EXCEPTION, the stored exception-values in
XML-CODE and XML-TEXT registers differ from other implementations

** new runtime configuration COB_HIDE_CURSOR, allows to hide the cursor during
extended ScreenIO operations

** added multiple window functionality with new system function CBL_GC_WINDOW

** New system functions

CBL_OPEN_VFILE opens a "virtual file" (heap)
CBL_WRITE_VFILE writes bytes to heap; offset 4 byte binary
CBL_READ_VFILE reads bytes from heap; offset 4 byte binary
CBL_CLOSE_VFILE closes the heap handle
CBL_GC_OPEN_VFILE64 opens a "virtual file" (heap)
CBL_GC_WRITE_VFILE64 writes bytes to heap; offset 8 byte binary
CBL_GC_READ_VFILE64 reads bytes from heap; offset 8 byte binary
CBL_GC_CLOSE_VFILE64 closes the heap handle
The VFILE functions provide functionality consistent with Microfocus /
Fujitsu, but the heap is never paged to disk.
The VFILE64 functions are a GnuCOBOL extension to allow for access beyond the
4 GB offset when using the 64 bit environment.

more work in progress

* Changes that potentially effect recompilation of existing programs:
Expand Down Expand Up @@ -154,7 +175,7 @@ Open Plans:
to this compiler option.

** output of unlimited errors may be requested by -fmax-errors=0,
to stop compiliation at first error use -Wfatal-errors
to stop compilation at first error use -Wfatal-errors
** default value for -fmax-errors was changed from 128 to 20

** New option -fdiagnostics-absolute-paths to print the full path of
Expand Down Expand Up @@ -205,7 +226,7 @@ Open Plans:
package manager version)

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

** "make checkmanual" was extended to be also usable with tmux and
allows to override the test runner and to attach for screen/tmux sessions,
Expand Down Expand Up @@ -279,8 +300,8 @@ For more known issues see the bug tracker.

** 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 enhanced 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

Expand Down Expand Up @@ -327,6 +348,19 @@ For more known issues see the bug tracker.
this isn't done anymore so if you need the memory to be initialized
specify that explicit in the source and recompile

** variable-length RECORD SEQUENTIAL files, data validation on READ:
the length of the record as stored in the file is now checked for correct
format and is then compared against the record size defined in the program;
if the minimal record size specified is bigger, then the data is only
written up to the record length for that record, the other data is
undefined and io status 04 returned; if the record length is bigger than
the record size the record from the file is truncated, io status 04 set
and the following READ will start at the next record;
additionally on OPEN the length of the first record is read and if it
isn't within the above rules, an io status 39 is returned; as the default
format "COB_VARSEQ_TYPE = 0" contains two NULL bytes this will likely
make most LINE SEQUENTIAL files not declared as this type fail on OPEN

** LINE SEQUENTIAL files, data validation: in case of bad printable data
(less than SPACE) a READ may result in io status 09 and WRITE may error
with io status 71; see the new runtime option COB_LS_VALIDATE to disable
Expand Down Expand Up @@ -569,6 +603,9 @@ For more known issues see the bug tracker.
** new compiler command line option to list the known runtime exception names
and fatality `cobc --list-exceptions`

** new compiler command line option to output the exact version number
`cobc -dumpversion`

** new compiler command line option -ftcmd to enable printing of the command
line in the source listing, -fno-timestamp to suppress printing of the time
and -ftittle to set a title instead of GnuCOBOL and version (_ chars are
Expand Down
5 changes: 5 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -263,3 +263,8 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/
- Check use of new integer optimization in cb_build_optim_sub and cb_build_optim_add - those may be slower than cob_add_packed_int/cob_add_packed_int64

- If there's a reasonable performance benefit for the integer optimizations for BCD/DISPLAY: add an option -funsigned-zero which never stores a sign in those (or in one of those, depending on a perf stat result) to provide the option to still use this optimization


For vfile routines: document return-codes per fileio.c and different
handling of cancel and heap-status variable used in CBL_OPEN_VFILE only
and no use of backup file, limitation of i/o area length.
2 changes: 1 addition & 1 deletion bin/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ cobfile_LDADD =$(COMMON_LIBS)
include $(top_srcdir)/aminclude_static.am

clean-local: code-coverage-clean
dist-clean-local: code-coverage-dist-clean
distclean-local: code-coverage-dist-clean

CODE_COVERAGE_BRANCH_COVERAGE=1
CODE_COVERAGE_LCOV_OPTIONS = --no-external
Expand Down
5 changes: 5 additions & 0 deletions build_aux/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@

2025-07-28 Simon Sobisch <simonsobisch@gnu.org>

* config.guess, config.sub, texinfo.tex: updated to recent versions from
https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/

2025-02-13 Simon Sobisch <simonsobisch@gnu.org>

* pre-inst-env.in: drop COB_ON_CYGWIN as it is set via atlocal for
Expand Down
17 changes: 10 additions & 7 deletions build_aux/config.guess
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2024 Free Software Foundation, Inc.
# Copyright 1992-2025 Free Software Foundation, Inc.

# shellcheck disable=SC2006,SC2268 # see below for rationale

timestamp='2024-07-27'
timestamp='2025-07-10'

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
Copyright 1992-2024 Free Software Foundation, Inc.
Copyright 1992-2025 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
Expand Down Expand Up @@ -1597,8 +1597,11 @@ EOF
*:Unleashed:*:*)
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
;;
*:Ironclad:*:*)
GUESS=$UNAME_MACHINE-unknown-ironclad
x86_64:[Ii]ronclad:*:*|i?86:[Ii]ronclad:*:*)
GUESS=$UNAME_MACHINE-pc-ironclad-mlibc
;;
*:[Ii]ronclad:*:*)
GUESS=$UNAME_MACHINE-unknown-ironclad-mlibc
;;
esac

Expand Down Expand Up @@ -1808,8 +1811,8 @@ fi
exit 1

# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-format: "%Y-%02m-%02d"
# time-stamp-end: "'"
# End:
28 changes: 19 additions & 9 deletions build_aux/config.sub
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2024 Free Software Foundation, Inc.
# Copyright 1992-2025 Free Software Foundation, Inc.

# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale

timestamp='2024-05-27'
timestamp='2025-07-10'

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)

Copyright 1992-2024 Free Software Foundation, Inc.
Copyright 1992-2025 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
Expand Down Expand Up @@ -145,6 +145,7 @@ case $1 in
| kfreebsd*-gnu* \
| knetbsd*-gnu* \
| kopensolaris*-gnu* \
| ironclad-* \
| linux-* \
| managarm-* \
| netbsd*-eabi* \
Expand Down Expand Up @@ -242,7 +243,6 @@ case $1 in
| rombug \
| semi \
| sequent* \
| siemens \
| sgi* \
| siemens \
| sim \
Expand All @@ -261,7 +261,7 @@ case $1 in
basic_machine=$field1-$field2
basic_os=
;;
zephyr*)
tock* | zephyr*)
basic_machine=$field1-unknown
basic_os=$field2
;;
Expand Down Expand Up @@ -1194,7 +1194,7 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
arm64-* | aarch64le-*)
arm64-* | aarch64le-* | arm64_32-*)
cpu=aarch64
;;

Expand Down Expand Up @@ -1321,6 +1321,7 @@ case $cpu-$vendor in
| i960 \
| ia16 \
| ia64 \
| intelgt \
| ip2k \
| iq2000 \
| javascript \
Expand Down Expand Up @@ -1522,6 +1523,10 @@ EOF
kernel=nto
os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
;;
ironclad*)
kernel=ironclad
os=`echo "$basic_os" | sed -e 's|ironclad|mlibc|'`
;;
linux*)
kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
Expand Down Expand Up @@ -1976,6 +1981,7 @@ case $os in
| atheos* \
| auroraux* \
| aux* \
| banan_os* \
| beos* \
| bitrig* \
| bme* \
Expand Down Expand Up @@ -2022,7 +2028,6 @@ case $os in
| ios* \
| iris* \
| irix* \
| ironclad* \
| isc* \
| its* \
| l4re* \
Expand Down Expand Up @@ -2118,6 +2123,7 @@ case $os in
| sysv* \
| tenex* \
| tirtos* \
| tock* \
| toppers* \
| tops10* \
| tops20* \
Expand Down Expand Up @@ -2214,6 +2220,8 @@ case $kernel-$os-$obj in
;;
uclinux-uclibc*- | uclinux-gnu*- )
;;
ironclad-mlibc*-)
;;
managarm-mlibc*- | managarm-kernel*- )
;;
windows*-msvc*-)
Expand Down Expand Up @@ -2249,6 +2257,8 @@ case $kernel-$os-$obj in
;;
*-eabi*- | *-gnueabi*-)
;;
ios*-simulator- | tvos*-simulator- | watchos*-simulator- )
;;
none--*)
# None (no kernel, i.e. freestanding / bare metal),
# can be paired with an machine code file format
Expand Down Expand Up @@ -2347,8 +2357,8 @@ echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
exit

# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-format: "%Y-%02m-%02d"
# time-stamp-end: "'"
# End:
Loading
Loading