GNU COBOL 2.0 C++



Remember, that the latest sources are in SourceForge SVN.


x86-64 (AMD-64) Windows (64-bit) VS2012

This build has been made on 2016/12/20 from the SVN snapshot.

This build is using VS2012 (Microsoft (R) C/C++ Optimizing Compiler Version 17.00.61030 for x64) so it's better you have it. You can download GNU Cobol CPP Windows 64-bit binaries, which include MPIR version 2.6.0, VBISAM CPP 2.0, and PDCurses 3.4.

You can get Windows x86/x64 VS2012 project files, sources and test suite for windows here.


POWER AIX 7.1 64-bit Build

This build has been made on 2016/12/20 from snapshot

This build (and all components) is made using IBM XL C/C++ for AIX, V11.1 (5724-X13) Version: 11.01.0000.0004 compiler. You can download GNU Cobol CPP AIX 64-bit binaries, which include MPIR version 2.6.0, and VBISAM 2.0.

For other pre-built packages you might want to visit IBM AIX Toolbox


Oracle SPARC Solaris - SunOS 5.11 11.2 (64-bit)

This build has been made on 2016/12/20 from snapshot

This build (and all components) is made using Oracle Solaris Studio 12.4 - Sun C 5.13 SunOS_sparc 2014/10/20 compiler. This version libraries are in /usr/local/lib/sparcv9. You can download GNU Cobol CPP Solaris 64-bit binaries, which include MPIR version 2.6.0, and VBISAM 2.0.

Here is the same build for Solaris - SunOS 5.10 compiled with Sun C 5.12.

Don't forget to include /usr/local/lib/sparcv9 into your LD_LIBRARY_PATH



The rest is in ChangeLog


01.06.2014 - codegen.cpp : Workaround for MSVC bug: http://support.microsoft.com/kb/315481

03.05.2014 - Switched to C++ version of GMP/MPIR, organized cob_decimal as a class with defined arithmetic operations.

23.10.2013 - Finally, unused duplicate names are resolved. Reverting back SQ212A test patch.

22.10.2013 - Workaround for "memory exhausted" Bison error. Unfortunately dumb bison is allocating memory on a stack and trying to increase/reallocate if necessary.
		That does not work in C++. I had to use yyoverflow to overcome this issue. This issue came out when trying to compile large program with
		too many IF-THEN-ELSE-IF.

21.10.2013 - Workaround for Microsoft MSVC (Visual Studio 2005-2010) bug "fatal error C1061: compiler limit : blocks nested too deeply"

21.09.2013 - #pragma pack fixed for Solaris

16.07.2013 - Fixes for PROCEDURE DIVISION RETURNING.

21.06.2013 - Oracle Sun C++ 5.12 SunOS_sparc passed. One bug in compiler workarounded and filed (report has been assigned an internal review ID of 2533270)
		There were bunch of tweaks in both code and autoconf.

20.06.2013 - HPUX aCC passed. Fixed several issues related to misaligned data in codegen.cpp. Also fixed introduced bug with names conflict for names like "i0".
		For sure "configure.ac" need more tweaks and need to be reviewed. Will do that after Solaris checkup.

15.06.2013 - Fixed the possible names conflict for names like "i0", "d0", "n0".

14.06.2013 - I was fighting with AIX 7.1 whole day.
		It looks we have a problem to run with a standard AIX Curses. There are issues with headers, and even after tweaking, tests were hitting SIGSEGV in wclear().
		So, I've installed pre-built ncurses from http://www.bullfreeware.com (Large Open Source Software Archive for AIX) and it seems much better.
		Fixed small issue with XLC++ strict behaviour regarding goto skipping initialization, so all tests are passing.
		Had to update autoconf/automake/libtool files with a newer one, as the previous knew nothing about AIX 7.1
		Next week if I have a time, I'll check latest Solaris/SPARC and possibly z/OS and HPUX/Itanium. Will see.

13.06.2013 - Moving toward C++ little by little. After heavy code reorganization I've decided to run all the tests again on Win and Linux and finally made a tarball.
		Patched SQ212A in order not to hit the issue, but hopefully temporarily. Adjusted autoconf files, etc.

21.05.2013 - Naming for LOCAL is done (where possible of course)

19.05.2013 - BY VALUE seems fixed. The story is that SIZE is AUTO was not implemented correctly and as a fact was not a default.
		Also passing COMP-3 and DISPLAY NUMERIC was incorrect - now implemented the way as in Merant/Microfocus - not converting to integer.
		Need more tests thou...

14.05.2013 - names are enabled for WORKING STORAGE and LINKAGE SECTION. LOCAL storage so far postponed done later.
		One test IS WAS failing due to unused duplicate names
		SQ212A.CBL    ===== compile error =====