Compiler Suite Release Notes Version 4.11.1
Note
Upgrading to a Major Release (2.0, 3.0, 4.0, etc…) requires recompilation of all programs. Minor Releases (3.x, 4.x, etc…) document recently added features in maintenance releases (3.x.x, 4.x.x, etc…). In exceptional cases, a minor release may contain updates that may require recompilation of all programs. Where this is the case, an Important note will be highlighted in the Release Notes.
Introduction
There are two versions of COBOL-IT in active release.
Version | Description |
---|---|
4.11 | This is the current COBOL-IT release. All new features will be based on this release. |
3.21 | This is the maintained COBOL-IT release. Only critical issues will be fixed in this release. |
Older supported releases:
Version | Description |
---|---|
4.2 | This is the previous release on the current branch. The latest hotfix is 4.2.7. |
3.11 | This is the previous release on the maintained branch. The latest hotfix is 3.11.1. |
4.0
Note
Version 4.0 is a major release. Upgrading to a major release requires recompilation of all programs. Users upgrading to version 4.0 from a previous release are required to recompile and advised to test their complete system prior to implementing in production.
New: Version 4
4.11.1
Windows Installations
For this release, the MSI installers have been limited to the Visual Studio 2022 versions.
cobol-it-4.11.1-32-x86-vc2022-windows-enterprise-setup.msi
cobol-it-4.11.1-64-x64-vc2022-windows-enterprise-setup.msi
4.11
This major release contains new features and corrects a number of issues.
Feature | Description |
---|---|
Embedded SQL | The existing SQL separate product CitSQL has been replaced by a new SQL component as an integral part of the standard COBOL-IT distribution. This addition aims to ensure seamless compatibility with the latest platforms and databases while bringing forth several enhancements over the current implementation. Existing SQL functionality CitSQL is now End of Life. |
Visual Studio 2022 | COBOL-IT now supports Visual Studio 2022. |
DISAM Performance Improvements | DISAM file read performance is now 21% faster, write performance is 31% faster, and rewrite performance is 86% faster than version 4.2 when using the default LOCK MODE. Some antivirus utilities affect DISAM write and rewrite performance. If you are seeing very slow DISAM write and rewrite times, please try disabling your virus scanner before repeating the test. |
Record and File Locking Improvements | EXCLUSIVE LOCK MODE: Previously, this lock mode would unnecessarily lock each record on a rewrite/update operation, and would fail to release the unnecessary lock. This has been corrected. AUTOMATIC LOCK MODE: Without the MULTIPLE modifier, AUTOMATIC LOCK MODE should hold only a single lock at a time. The locks were not being released. The previous locks are now released when a new lock is initiated.READ WITH WAIT: The wait was being ignored. This has been corrected. LOCK ON MULTIPLE RECORDS: The MULTIPLE modifier was being ignored. It is now parsed correctly and represented in the open mode flag for the file. |
Windows Installation | The Windows installers have been upgraded. Previously, there was a single executable installer for 32-bit and 64-bit that contained separate installers for each Visual Studio version. Beginning with this release, there are separate MSI installers for each combination of version number, 32 or 64-bit, and supported Visual Studio version. The installation programs have been renamed to make it easy to install the desired version: cobol-it-4.11-32-x86-vc2015-windows-enterprise-328422-setup.msi cobol-it-4.11-32-x86-vc2017-windows-enterprise-328422-setup.msi cobol-it-4.11-32-x86-vc2019-windows-enterprise-328422-setup.msi cobol-it-4.11-32-x86-vc2022-windows-enterprise-328422-setup.msi cobol-it-4.11-64-x64-vc2015-windows-enterprise-328422-setup.msi cobol-it-4.11-64-x64-vc2017-windows-enterprise-328422-setup.msi cobol-it-4.11-64-x64-vc2019-windows-enterprise-328422-setup.msi cobol-it-4.11-64-x64-vc2022-windows-enterprise-328422-setup.msi |
4.1.9
Support of MS Visual Studio 2017/2019
ID: 1150219381
Version 4.1.9 of the COBOL-IT Compiler Suite includes VS 2017 in Windows installation and support. This enhancement has also been applied to Version 3.10.70.
Support of Linux Red-Hat 8.x
ID : 1150236325
Version 4.1.9 of the COBOL-IT Compiler Suite supports Linux Redhat 8.x.
4.1.5
Internal and Default Entry Point for EXTSM changed to CIT_EXTSM
ID : 1150242699
With the release of Version 4, the use-extsm
compiler flag was deprecated, as EXTSM
is used by default. With this change, the compiler would report -use-extsm
no longer supported, and the ability to indicate your own external sort module handler was lost.
Both of these conditions have been corrected.
In version 4.1.5, the -use-extsm <EXTSM entry name>
compiler flag is again supported.
In version 4.1.5, the internal and default entry point has been renamed CIT_EXTSM
.
You may link an external lib containing "EXTSM" and use the compiler flag -use-extsm=EXTSM
to use the external library.
4.1.1
-fstrict-compare-low compiler flag
ID: 1150223735
-fstrict-compare-low
determines how display numeric variables with low values compare to other values. Combining it with the move-picx-to-pic9:raw
setting simulates the behaviour of the VAX/VMS compiler.
Note
The behavior of the VAX/VMS compiler is that the comparison of display-numeric with low-values against anything that is not low-values fails.
As an example:
Configuration
-------------
move-picx-to-pic9: raw
strict-compare-low: yes
-------------
Consider the following case:
01 REC.
03 Lz_TEMP1 PIC XX.
03 Lz_TEMP2 PIC 99.
01 Lz_TEMP3 PIC S9(2) COMP VALUE 0.
-------------
MOVE LOW-VALUES TO REC
IF Lz_TEMP2 = LOW-VALUES THEN DISPLAY "Lz_TEMP2 equals LOW-VALUES.".
IF Lz_TEMP2 = SPACES THEN DISPLAY "Lz_TEMP2 equals SPACES.".
IF Lz_TEMP2 = ZEROES THEN DISPLAY "Lz_TEMP2 equals ZEROES.".
IF Lz_TEMP2 = Lz_TEMP3 THEN DISPLAY "Lz_TEMP2 equals TEMP3.".
Using the configuration above, this code mimics the behavior of the VAX/VMS compiler, returning:
Lz_TEMP2 equals LOW-VALUES.
By default, the behavior of the COBOL-IT compiler returns:
Lz_TEMP2 equals LOW-VALUES.
Lz_TEMP2 equals ZEROES.
Lz_TEMP2 equals TEMP3.
Trace log update for extfh
ID: 1150218973
The format of the trace log for extfh has been modified slightly. When the file status is “0”, the word “error” is no longer included in the log file.
Instead of:
XXX: libcob: opening {file_name_ error status = 0
the message now reads:
XXX: libcob: opening {file_name} status = 0
4.1.0
Recompilation of all source files required
COBOL-IT Version 4.0 is a major release of the COBOL-IT Compiler Suite. As a result, the adoption of COBOL-IT Version 4.0 requires that all source files in the Customer’s application be recompiled. Most critical among the new features is the replacement of the VBISAM indexed file system engine with the D-ISAM indexed file engine. For more details, please see Introduction to DISAM, including Migration Guidelines.
D-ISAM Support
The VBISAM engine has been deprecated and replaced by the D-ISAM indexed file engine. The D-ISAM engine is more stable and more widely used than the VBISAM engine and is fully compatible with IBM C-ISAM 7.2.
Unfortunately, VBISAM files are not readable by D-ISAM and will require conversion. Conversion can be done using CitSORT, or by writing a program that uses the COB_EXTFH
environment variable to direct the runtime to use the VBISAM Extfh driver (on READ
s) or the D-ISAM Extfh driver (on WRITE
s) in your conversion.
Note
The runtime will use the same EXTFH setting throughout a single runtime session. Recommended practice to convert a file from VBISAM to DISAM is to create two separate processes. The first process should be designed to READ
the existing VBISAM file and WRITE
each record into SEQUENTIAL
file format. The second process should be designed to READ
the resulting SEQUENTIAL
file, and WRITE
each record into DISAM file format. Please see Introduction to DISAM, including Migration Guidelines for more details.
-fvbisam
The -fvbisam
compiler flag forces use of the VBISAM Extfh indexed file engine.
vbisam: [yes/no]
Default is:
vb isam : no no.
The vbisam
compiler configuration flag when set to yes, forces use of the VBISAM Extfh indexed file engine.
-fdisam
The -disam
compiler is no longer required. The DISAM Extfh indexed file engine is used by default.
disam: [yes/no]
Default is:
disam : yesyes.
The default for the disamcompiler configuration flag has been changed to yes.
Changes to licensing
COBOL-IT has made changes to licensing to all products, effective with the the release of COBOL-IT Compiler Suite version 4.0 (and later). With the release of COBOL-IT Compiler Suite version 4.0, separate license files are required for each product/platform pairing. As a consequence, users can no longer use the same license for multiple products, on multiple platforms; users deploying multiple products require multiple license files.
Default location:
The default location for COBOL-IT product license files in %COBOLITDIR%
(Windows) and $DEFAULT_CITDIR
(Linux). For COBOL-IT Compiler Suite version 4, the default installation directory is /opt/cobol-it4-64
(Linux).
Default naming convention:
License files located in the default location named citlicense.xml
, or with names prefixed by cit-license-
and with the .xml
extension will be validated by COBOL-IT products.
Using COBOLIT_LICENSE
to reference single or multiple license files:
For cases where different naming conventions are used, or where license files are not stored in the default installation directory, the user should use the COBOLIT_LICENSE
environment variable to indicate the full path(es) and name(s) of their license file(s).
Note that when indicating multiple license files, the semicolon “ ; ” separator is used. In Linux, the list of license files is started and finished with single-quote marks “ ‘ “. The single-quote is located on the same key as the double-quote on most keyboards.
As examples (Linux):
>export COBOLIT_LICENSE=/opt/cobol-it4-64/compilerlic.xml
>export COBOLIT_LICENSE=’/opt/cobol-it4-64/compilerlic.xml;/opt/cobol-it4-64/citsqllic.xml’
New: Version 3
3.21
This major release contains new features and corrects a number of issues.
Feature | Description |
---|---|
Embedded SQL | The existing SQL separate product CitSQL has been replaced by a new SQL component as an integral part of the standard COBOL-IT distribution. This addition aims to ensure seamless compatibility with the latest platforms and databases while bringing forth several enhancements over the current implementation. Existing SQL functionality CitSQL is now End of Life. |
Visual Studio 2022 | COBOL-IT now supports Visual Studio 2022. |
Windows Installation | The Windows installers have been upgraded. Previously, there was a single executable installer for 32-bit and 64-bit that contained separate installers for each Visual Studio version. Beginning with this release, there are separate MSI installers for each combination of version number, 32 or 64-bit, and supported Visual Studio version. The installation programs have been renamed to make it easy to install the desired version: cobol-it-3.21-32-x86-vc2015-windows-enterprise-328540-setup.msi cobol-it-3.21-32-x86-vc2017-windows-enterprise-328540-setup.msi cobol-it-3.21-32-x86-vc2019-windows-enterprise-328540-setup.msi cobol-it-3.21-32-x86-vc2022-windows-enterprise-328540-setup.msi cobol-it-3.21-64-x64-vc2015-windows-enterprise-328540-setup.msi cobol-it-3.21-64-x64-vc2017-windows-enterprise-328540-setup.msi cobol-it-3.21-64-x64-vc2019-windows-enterprise-328540-setup.msi cobol-it-3.21-64-x64-vc2022-windows-enterprise-328540-setup.msi |
Fixes: Version 4
4.11.1
This release corrects the following issues.
Issue | Description |
---|---|
406167 | Do not attempt flush files opened for INPUT with fsync() . This operation results in an internal error state that is subsequently ignored. Also correct the documentation to state that CLOSE UNIT and CLOSE REEL follow the COBOL standard and do not actually close the file. |
515040 | Updated the COBOL language parser to handle the EVALUATE statement correctly: a WHEN clause after WHEN OTHER now generates this error: Error: syntax error, unexpected WHEN .A compilation error is also generated if a nested EVALUATE does not terminate with an END-EVALUATE . This decision ensures consistency across COBOL dialects and promotes code readability. |
543001 | Make the SORT-RETURN special register available to program that calls a user defined sort module: on error. The SORT-RETURN register is now available in both the COBOL program that contains the SORT statement and also in the COBOL program that contains the CALL "EXTSM" statement. This handles the case where an EXTSM module is specified on the command line or in configuration. |
544017 | The compiler now correctly diagnoses un-subscripted array references in all of the SCREEN section clauses except for the USING clause, where it is supported. Furthermore, if a SCREEN definition specifies the OCCURS clause, the compiler also correctly diagnoses if the LINE and COLUMN clauses are not relative. |
544099 | Add an option to leave programs open after the STOP RUN statement. This makes COBOL-IT termination work like 3.10.35 and earlier, and specifically allows Oracle Tuxedo ART programs to call shutdown functions like ART_BATCH_EXIT in the C runtime exit() routine after STOP RUN . To leave the programs open, set COB_SKIP_CLOSE_ALL_HANDLES=Y in the program environment. |
628019 | Validity checks on reference modification of data items within condition statements (specifically IF, PERFORM, and EVALUATE) are now properly generated such that they are not evaluated if a previous test precludes the data item from being evaluated, that is via a short-circuit evaluation. Such as: 01 REF-MOD PIC X(4). MOVE 5 TO I. IF I < 5 AND REF-MOD(I:1) = SPACE If this conditional expression is fully evaluated and reference checking was enabled, the COBOL program would fault, even though the IF statement is already checking the bounds. Since I < 5 is already FALSE, the entire condition is already FALSE no matter the result of the REF-MOD(I:1) = SPACE expression. The COBOL program was already properly performing the short-circuit evaluation but the reference check was not part of that generated code. |
652135 | The cobcdb program now enables the -y and the --tty options. The documentation was also updated to indicate the other alternative flags for the cobcdb options and enabled both the short and long options for cobcdb. |
653114 | Corrected an issue with the implementation of the -Os size optimization flag when dealing with calls using fields declared in the linkage section. |
653150 | Updated the COBOL-IT Debugger Guide to document the parameters of the List command in the "Debugger Commands" section. |
663042 | Updated the COBOL-IT Debugger's Users Guide's Debugger Commands section to include undocumented commands. Some of these commands are for internal use, but all are documented for completion sake. |
4.11
This release corrects the following issues.
Issue | Description |
---|---|
420025 | When a SORT operation fails because of insufficient disk space, the SORT-RETURN register is now set to 16 . Previously, the SORT-RETURN register was not being set. |
510042 508053 | Don't throw an exception if the SORT input file is missing or cannot be opened if the SELECT contains FILE STATUS . This allows the SORT-RETURN register to be examined, but note that FILE STATUS is still not set. A work-around is to provide DECLARATIVES for the file, or check to see if the file is missing before invoking SORT . This emulates the version 3 behavior which also does not set FILE STATUS but uses the presence/absence of this phrase to determine if an exception should be issued. This, along with 420025 fixes issue 508053. |
417001 | When a file is closed, the file handler now sets the pointer to the file handle structure that is visible in the FCD to NULL . |
414084 | Fixed a problem where STOP RUN was failing to close open files. |
446035 | The FILE STATUS was not being set if an internal SORT phrase fails with an I/O error. |
382071 | Allow the COB_EXTFH environment variable and other environment variables exist but be set to an empty value. If empty, they will be treated as if they did not exist and the defaults will be used. This fixes an issue where the value of the environment variable would be set to an empty or blank string and generate an error that the "" library could not be found. |
448072 | Fixed issue with -g COBOL debug mode that did not free memory. |
103174 | Documentation: the description of SET Format 4 repeats Format 3 text. |
105132 | Fixed issue with 78 level data item if incorrectly given a typedef type. |
110100 | Fixed a runtime exception that could occur when calling a subprogram with a name that starts with a digit. |
138288 | A COBOL program using a SORT verb can now properly located the CIT_EXTSM module. |
170046 | The Add/Remove Programs or Programs and Features Windows applications now shows all simultaneously installed versions of COBOL-IT, instead of just the last installation. COBOL-IT can be uninstalled from within this window and the specific installation to be removed can be chosen. Automated removal is also possible using WMIC or other Windows tooling. As a consequence, an UNINSTALL.EXE is no longer created in the installation directory. |
173052 | The COBOL-IT Start Menu folders have been reorganized for clarity and to reduce clutter. Right-clicking on a start menu entry offers the usual options and the Uninstall option. |
175040 | Issue with $SET CONSTANT "..." where the string contained a space has been resolved. |
176041 | Fixed a bug when calling a COBOL program whose ID started with a digit. |
181090 | Fixed a code generation problem on the AIX platform where the xlc C compiler optimizer decided that a move from a comp type to a formatted field was unnecessary. This was caused by a union that was confusing the optimizer. |
183077 | Fixed a bug in CBL_GET_CURRENT_DIR that resulted in an error because of an incorrect value passed as the length of the directory name. |
193030 | Problematic RSE Git feature deprecated and removed from Developer Studio in favor of Eclipse-provided Git. |
193091 | Fixed issue with the allocation of memory for the key containing multiple parts that caused a segmentation fault. |
202074 | If multiple versions of Visual Studio or the Microsoft Visual C tools are installed, the setenv_cobolit.bat script, referenced by the desktop icon, would choose the most recent version but always the same as or higher than the version of COBOL-IT that was being installed. The script will now set up the proper version of Visual Studio or the Visual C tools, and only choose the next-highest version if the version that matches the COBOL-IT installation is missing. |
204032 | The reference manuals now document how to use the $SET statement to configure the compiler within the COBOL source. |
204124 | Fixed issue in 3.x source that was assigning sysout file to the cob_file_error during a display. A subsequent check in the code would cause the program to terminate because the cob_file_error was not specified in a select statement. The solution was to guard against setting the cob_file_error in this case. |
204195 | The COBOL-IT compiler no longer crashes when compiling a COBOL program with an END PROGRAM clause without a program name. |
244111 | Fix for external SORT statement input procedure. If an external sort routine is used and the input procedure overrides the file assigned in the giving clause, the program will recognize this modification and adjust the output file accordingly. |
259006 | Updated libexpat version 2.1.0 to 2.4.9 for security fixes. |
286070 | Fixed a problem in cobcdb, with thread race conditions during program termination that either caused all output not to be written, or could sometimes cause the debugger to hang. |
363224 | The filename-mapping flag was being overridden and the external-mapping flag was not being passed appropriately when files were marked external. Both of these were fixed and now the behavior matches what we see in the 4.x code which we decided was behaving appropriately. |
380024 | The COBOL-IT Getting Started Guide now describes how to use the install.sh script. |
384009 | The ISAM file header now includes the creation date when creating a variable length record file. |
4.2.7
Issue | Description |
---|---|
543001 | Make the SORT-RETURN special register available to program that calls a user defined sort module: on error. The SORT-RETURN register is now available in both the COBOL program that contains the SORT statement and also in the COBOL program that contains the CALL "EXTSM" statement. This handles the case where an EXTSM module is specified on the command line or in configuration. |
4.2.6
Issue | Description |
---|---|
448072 | Fixed an issue with -g COBOL debug mode that did not free memory. |
446035 | The FILE STATUS was not being set if an internal SORT phrase fails with an I/O error. |
510042 508053 | Don't throw an exception If the SORT input file is missing or cannot be opened if the SELECT contains FILE STATUS . This allows the SORT-RETURN register to be examined, but note that FILE STATUS is still not set. A work-around is to provide DECLARATIVES for the file, or check to see if the file is missing before invoking SORT . This emulates the version 3 behavior which also does not set FILE STATUS but uses the presence/absence of this phrase to determine if an exception should be issued. This, along with 420025 fixes issue 508053. |
4.2.5
Issue | Description |
---|---|
420025 | When a SORT operation fails because of insufficient disk space, the SORT-RETURN register is now set to 16 . Previously, the SORT-RETURN register was not being set. |
417001 | When a file is closed, the file handler now sets the pointer to the file handle structure that is visible in the FCD to NULL . |
414084 | Fixed a problem where STOP RUN was failing to close open files. |
4.2.4
Issue | Description |
---|---|
402177 | Fixed a memory leak in the COBOL-IT SORT statement, where memory was being allocated during the SORT comparison but was not being freed on all paths out of the function. This caused large amounts of memory to be allocated and not freed until the run-unit terminated. |
405148 407124 | Reconfigured the test for a over/underflow in a write statement to be detected by the file handler instead of the bit of code that calls the file handle. |
408027 | Corrected a problem in SORT that prevented a SORT DEFINITION (SD) from being used for more than one consecutive SORT operation. |
4.2.3
Issue | Description |
---|---|
384034 | Fixed the file creation date in header of variable-length indexed files. |
4.2.2
Issue | Description |
---|---|
306127 | Corrected a problem where, when a COBOL source file contains two COBOL programs and one calls the other, and when the source file is compiled with the -fnull-param and -fstatic-call options, the generated C program has a syntax error on Linux. |
313036 | The COBOL-IT compiler now properly emits the initialization of Numeric Display fields, when the parent group has been initialized using binary zeros (LOW-VALUES) . For most of the numeric types, a field of binary zeros is indeed a zero, and when optimization is enabled during the compilation of the source module, the compiler will skip the initialization of field with a VALUE of 0 because the group was initialized to binary zeros already. However, this is not the case for Numeric Display fields, as a zero is the character 0. |
318054 | Issue concerning out of range OCCURS DEPENDING ON has been resolved. |
344031 | The compiler option -frefcheck-prior-statement from 3.1.072 and later is now available in 4.10. This option allows reference and boundary checks to be disabled before statement execution by setting this option to 0. |
384035 | Fixed the file creation date in header of variable length indexed file. |
375044 | Corrected a problem where a VBISAM indexed file with duplicate prime keys, and the last two record in the file's prime key are duplicate, when the current record position is the last record, a READ NEXT will not detect the EOF condition, but will instead return the last record again. |
4.2.1
Issue | Description |
---|---|
138288 | A COBOL program using a SORT verb can now properly located the CIT_EXTSM module. |
203142 | CITSORT will now properly sort a line sequential file with empty lines into a binary sequential file. |
207015 | A problem with converting VMS data into a numeric edited field was fixed if the undocumented displayalphanumeric-vms:yes option is set. |
231017 | COBOL-IT now correctly computes the scale when an integer literal is added to PIC S9(11)v9(7) COMP field. |
259114 | The 64-bit COBOL-IT Windows installations now contain a 64-bit Report Writer. Previously, they contained a 32-bit Report Writer. |
4.2.0
This major release corrects a number of issues.
Issue | Description |
---|---|
113015 | The setenv_cobolit.bat files in the installation directories have been completely rewritten. The script now finds the specified Visual Studio installation in the proper way, rather than using the default installation locations.The previous scripts contained a PAUSE that prevented Developer Studio from using the script. A PAUSE is no longer required because the new batch files leave the console window open, and return an errorlevel on failure, along with displaying the cause of the error. |
121057 | The cobc compiler will now recognize and compile .cpp files on the command line by passing the names to the underlying C/C++ compiler. Previously, .cpp files were processed as if they were COBOL source files. |
181038 | Fixed issue with ROLLBACK of transaction. This appeared to be failing on 32 bit Linux tests only, but that it was passing on other systems was really just luck or a quirk in how the pointer values are assigned. |
198057 | Added the initialization of key buffer array in generated C code. The absence of this initialization was causing failures on AIX under some circumstances. |
118049 | Starting in the Microsoft C version delivered with Visual Studio 2015, direct calls from COBOL to printf() fail because the Microsoft C compiler generates calls to printf() inline instead of using an imported library function. In addition, there is no longer a printf() entry point in the Microsoft C libraries. To work around this, we are now providing a library, winstdio_dll.dll that implements the missing entry points. There are two solutions: 1. At the start of the COBOL program, before the first DISPLAY or stdio call, insert this call: CALL "WINSTDIO_DLL.DLL". This loads the DLL that provides the definitions for printf() and other standard IO functions. 2. Add WINSTDIO_DLL to the COB_PRE_LOAD environment variable. This must be set before the COBOL program is launched. Once WINSTDIO_DLL.DLL is loaded, the entry points like printf() will be available to the COBOL program. |
4.1.8
Using little-endian byte order for variable-length record size
ID: 1150248981
When working with sequential files with variable format records, the representation of the small record size (< 4096 bytes
) used a big-endian byte ordering, but the representation of the large record size (>=4096 bytes
) used the little-endian ordering. This could cause problems in some situations.
This has been corrected.
4.1.6
Offset of [PIC S9(9) COMP Field]
out of bounds anomaly
ID: 1150242407
It was possible for a reference modification reference to the first byte of a PIC S9(9) COMP
field
to be incorrectly interpreted in an OR
clause contained within a PERFORM VARYING
clause, causing an Offset out of bounds error to be reported. This error did not occur un version 3.10.60.
This has been corrected.
4.1.2
Debugger does not work in DECLARATIVES SECTION
ID: 1150234527
The Debugger would automatically stop when entering the DECLARATIVES SECTION
of a program.
This has been corrected.
4.1.1
REPLACE statement causes debugger to lose position in source
ID: 1150223049
When using a REPLACE
statement to replace content in a copy book, or in the Procedure Division, and when another copy book is placed after the REPLACE
statement, the COBOL-IT Debugger could miscalculate the line number on which it was executing.
This has been corrected.
out of bounds error with Optimize -O/-O2 option
ID: 1150222119
When using the -O
compiler flag in conjunction with -g
and EC-BOUND-REF-MOD:yes
, it was possible to have an indexed out of bounds error returned.
This has been corrected.
Fixes: Version 3
3.22
This release corrects the following issue.
Issue | Description |
---|---|
544099 | Add an option to leave programs open after the STOP RUN statement. This makes COBOL-IT termination work like 3.10.35 and earlier, and specifically allows Oracle Tuxedo ART programs to call shutdown functions like ART_BATCH_EXIT in the C runtime exit() routine after STOP RUN . To leave the programs open, set COB_SKIP_CLOSE_ALL_HANDLES=Y in the program environment. |
3.21.1
This release corrects the following issue.
Issue | Description |
---|---|
544099 | Add an option to leave programs open after the STOP RUN statement. This makes COBOL-IT termination work like 3.10.35 and earlier, and specifically allows Oracle Tuxedo ART programs to call shutdown functions like ART_BATCH_EXIT in the C runtime exit() routine after STOP RUN . To leave the programs open, set COB_SKIP_CLOSE_ALL_HANDLES=Y in the program environment. |
3.21
This release corrects the following issues.
Issue | Description |
---|---|
382071 | Allow the COB_EXTFH environment variable and other environment variables exist but be set to an empty value. If empty, they will be treated as if they did not exist and the defaults will be used. This fixes an issue where the value of the environment variable would be set to an empty or blank string and generate an error that the "" library could not be found. |
526090 | On Windows, link EXTSM (the SORT access method) into libcobit_dll.dll . This makes it possible to CALL "EXTSM" using opcode, fcd in a COBOL program, providing direct acess to SORT . Note that version 4 already has this functionality, as does version 3 on UNIX. |
306127 | Corrected a problem where, when a COBOL source file contains two COBOL programs and one calls the other, and when the source file is compiled with the -fnull-param and -fstatic-call options, the generated C program has a syntax error on Linux. |
313036 | The COBOL-IT compiler now properly emits the initialization of Numeric Display fields, when the parent group has been initialized using binary zeros (LOW-VALUES) . For most of the numeric types, a field of binary zeros is indeed a zero, and when optimization is enabled during the compilation of the source module, the compiler will skip the initialization of field with a VALUE of 0 because the group was initialized to binary zeros already. However, this is not the case for Numeric Display fields, as a zero is the character 0. |
318054 | Issue concerning out of range OCCURS DEPENDING ON has been resolved. |
375044 | Corrected a problem where a VBISAM indexed file with duplicate prime keys, and the last two record in the file's prime key are duplicate, when the current record position is the last record, a READ NEXT will not detect the EOF condition, but will instead return the last record again. |
384034 | Fixed the file creation date in header of variable length indexed file. |
105132 | Fixed issue with 78 level data item if incorrectly given a typedef type. |
170046 | The Add/Remove Programs or Programs and Features Windows applications now shows all simultaneously installed versions of COBOL-IT, instead of just the last installation. COBOL-IT can be uninstalled from within this window and the specific installation to be removed can be chosen. Automated removal is also possible using WMIC or other Windows tooling. As a consequence, an UNINSTALL.EXE is no longer created in the installation directory. |
173052 | The COBOL-IT Start Menu folders have been reorganized for clarity and to reduce clutter. Right-clicking on a start menu entry offers the usual options and the Uninstall option. |
202074 | If multiple versions of Visual Studio or the Microsoft Visual C tools are installed, the setenv_cobolit.bat script, referenced by the desktop icon, would choose the most recent version but always the same as or higher than the version of COBOL-IT that was being installed. The script will now set up the proper version of Visual Studio or the Visual C tools, and only choose the next-highest version if the version that matches the COBOL-IT installation is missing. |
204124 | Fixed issue in 3.x source that was assigning sysout file to the cob_file_error during a display. A subsequent check in the code would cause the program to terminate because the cob_file_error was not specified in a select statement. The solution was to guard against setting the cob_file_error in this case. |
204195 | The COBOL-IT compiler no longer crashes when compiling a COBOL program with an END PROGRAM clause without a program name. |
259006 | Updated libexpat version 2.1.0 to 2.4.9 for security fixes. |
363224 | The filename-mapping flag was being overridden and the external-mapping flag was not being passed appropriately when files were marked external. Both of these were fixed and now the behavior matches what we see in the 4.x code which we decided was behaving appropriately. |
384009 | The ISAM file header now includes the creation date when creating a variable length record file. |
204007 | An intermittent problem in the v3 64-bit cobc compiler that caused a failure when compiling a program with a REPORT section has been corrected. |
374018 | Issue preventing the successful processing of a SORT using file when using an external sort module was corrected. The previous error would have resulted in a null fill output/giving file from the sort. |
3.11.1
Issue | Description |
---|---|
203142 | CITSORT will now properly sort a line sequential file with empty lines into a binary sequential file. |
207015 | A problem with converting VMS data into a numeric edited field was fixed if the undocumented displayalphanumeric-vms:yes option is set. |
231017 | COBOL-IT now correctly computes the scale when an integer literal is added to PIC S9(11)v9(7) COMP field. |
259114 | The 64-bit COBOL-IT Windows installations now contain a 64-bit Report Writer. Previously, they contained a 32-bit Report Writer. |
244111 | Fix for external SORT statement input procedure. If an external sort routine is used and the input procedure overrides the file assigned in the giving clause, the program will recognize this modification and adjust the output file accordingly. |
3.11.0
Issue | Description |
---|---|
113015 | The setenv_cobolit.bat files in the installation directories have been completely rewritten. The script now finds the specified Visual Studio installation in the proper way, rather than using the default installation locations.The previous scripts contained a PAUSE that prevented Developer Studio from using the script. A PAUSE is no longer required because the new batch files leave the console window open, and return an errorlevel on failure, along with displaying the cause of the error. |
Legal Notice
For information about legal notices, trademarks, disclaimers, warranties, export and other use restrictions, U.S. Government rights, patent policy, and FIPS compliance, see https://www.microfocus.com/about/legal/.
© Copyright 2024 Micro Focus or one of its affiliates.
The only warranties for products and services of Micro Focus and its affiliates and licensors ("Micro Focus") are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice.
This documentation is derived from COBOL-IT Source code, parts of which are derived from OpenCOBOL.
Copyright (C) 2002-2007 Keisuke Nishida
Copyright (C) 2007 Roger While
Third-Party Notices
Additional third-party notices, including copyrights and software license texts, can be found in a 'Third-Party-License-File' file in the root directory of the software.