Interactive COBOL Release Notes 5.12 11-Feb-2016 The release notes are organized primarily by version number, from newest to oldest. Within each version section, there are four subsections: "New Features", "Important Changes", "Known Problems", and "Bug Fixes". ********************************************************** NOTICE: Previous ICOBOL 5 Beta versions should be uninstalled before installing a final ICOBOL 5. ********************************************************** **** Revision 5.12 **** Bug Fixes in 5.12 ------------------ 1. Under Windows, Flexus SP2 and QPR have been updated. For more see the readsp2.txt. Changes and New features in 5.12 -------------------------------- 1. Under Windows, icinfo should be able to detect Windows 8.1 and Windows 10 versions. 2. An environment variable was added to control the connection timeout in the IC_SEND_MAIL builtin and the default timeout was changed from "wait forever" to 45 seconds. Use ICSMTPTIMEOUT=nnn where nnn is in 10ths of seconds ranging from 1 to 65535, with 65535 meaning "wait forever". 3. The connection algorithm in the IC_SEND_MAIL builtin was changed to implement a retry algorithm FOR INSECURE SOCKETS ONLY. The algorithm starts with a short timeout and progressively increases each time it fails until the total timeout period has elapsed. 4. A new environment variable was added in Windows that affects how the keyboard handler in icrun(w) and icrunrc interprets the Del key on the numeric keypad when NumLock is on (the key labeled with a period above the word 'Del' on a US keyboard). By setting the environment variable ICVKDECIMAL to a different character, the specified character will be returned instead of a period. Command Prompt example: > SET ICVKDECIMAL=, > icrun will now return a comma instead of a period in ICOBOL screens. **** Revision 5.11 **** Bug Fixes in 5.11 ------------------ 1. The runtime system and icsort had a bug that could cause the program to "core dump" when performing sorts that required multiple merge passes. 2. The compiler was not correctly reporting cases where indivdual data records or the combined size of all data exceeded the system limit of 16 MB. This would result in an Internal Error in the compiler during the data allocation phase. 3. When iclog was used to enable or diable logging, some parts of the file headers were not being updated correctly, resulting in corrupted headers. 4. The iclog utility was not correctly decoding the compressed log records when applying them, leading to a corrupt data file 5. When iclog was being used to enable or disable logging and certain errors occured during the process, the .xl file was being left "open" in the shared area, requiring icexec to be restarted. 6. When iccheck was being used to check a file with logging enabled, it was incorrectly reporting some inconsistency errors when in fact the file was good. Changes and New features in 5.11 -------------------------------- 1. Under Windows, the Sentinel Driver has been updated to version 7.5.9. **** Revision 5.10 **** Bug Fixes in 5.10 ----------------- 1. Under Windows, ICEDCFW in System Configuration, System paramters was not always detecting changes. 2. The runtime system had a bug when fetching the value of 8-byte COMP-5 data items, resulting in bad data. (8-byte items have 10-18 decimal digits.) The bug affects version 4.80-4.87 and 5.00 - 5.09. Example: PIC S9(15)V99 COMP-5. Changes and New features in 5.10 -------------------------------- None. **** Revision 5.09 **** Bug Fixes in 5.09 ----------------- 1. Under Windows, icinfo help had a misspelled word, and was incorrectly looking for icrun.dll instead of icrun32.dll. 2. Under Windows, some SP2 and FormPrint fixes. Changes and New features in 5.09 -------------------------------- 1. Two new builtin calls were added: IC_LEFT and IC_RIGHT. The IC_LEFT builtin trims leading and trailing white space the source argument and stores it left-justified in the destination argument, while the IC_RIGHT stores it right-justified in the destination argument. The syntax is: CALL "IC_LEFT" USING source, destination or CALL "IC_RIGHT" USING source, destination Where source is a PIC X(n) and holds the string to trimmed and moved. destination is a PIC X(n) to receive the trimmed and justifed string. Use of either builtin requires version 5.09 or greater of the runtime. Any error will result in a non-zero exception status and the ON EXCEPTION clause, if present, to be executed. **** Revision 5.08 **** Bug Fixes in 5.08 ----------------- 1. The Windows runtime system would sometimes fail to start and return: Error: Access to the file or device is denied (oserr=5): Signal Event Changes and New features in 5.08 -------------------------------- 1. The Windows installer was changed to not install icexec and icsvcmgr when just the ODBC driver is installed. **** Revision 5.07 **** Bug Fixes in 5.07 ----------------- 1. ICPERMIT was not correctly returning license options for ICOBOL 4 client requests. **** Revision 5.06 **** Bug Fixes in 5.06 ----------------- 1. On 64-bit systems, the runtime was not properly resolving EXTERNAL data items with the result that changes to an external item were not reflected in all the programs that referenced the item. 2. The ICPCQDIR environment variable was not being processed correctly with the result that print files were being created in the current working directory rather than the directory specified by ICPCQDIR. **** Revision 5.05 **** Bug Fixes in 5.05 ----------------- 1. Under Windows, ICPERMIT could not authorize via a parallel port device. Would get Device not found, errnum=0. 2. ICCREATE was setting the Relative flag on an Indexed create resulting in an unusable file. 3. ISQL with EXECUTE USING could use the wrong data length when setting column values. 4. ICODBCDR could cause a memory fault or crash when setting data into columns, e.g., with an INSERT that used parameters. This bug was introduced in 4.80 and 5.00. 5. Under Linux, ICRUNRS was not correctly cleaning up its device resources in the shared area, which could eventually lead to an inability to start new runtimes. **** Revision 5.04 **** Bug Fixes in 5.04 ----------------- 1. When using a ICOBOL 2 .cx files loading a 3-byte signed COMP value was not working. PIC S9(5) COMP, PIC S9(6) COMP 2. Fixes to ICREORG for some conversions from and to rev 5 and 6 files. Changes and New features in 5.04 -------------------------------- 1. ICREVUP has been enhanced to support converting version 5 and 6 ICISAM files to revision 7 or 8. (8 is the default). When provided an argument with a .xd extension, icrevup will first look to see if the file is a rev 5 or 6 file, then rename the file with a .bu extension as name.bu.xd/.nx. Then the file will be converted to a rev 7 or 8 file with the original name. Finally the .bu files will be renaned to .xd5/.nx5 or .xd6/.nx6. Linux hard links will be broken. Syntax: icrevup [option]... argument... -a[:aflag] Audit to icrevup.lg -A path[:aflag] Audit to path, or path\icrevup.lg if path is a directory -h | -? Display help text -q Quiet operation -r Always replace existing files (.cfi, .tdi, .pti files) -M cffile Use Master Console information from cf file when processing .td files -V 7|8 Target version for Indexed and Relative ISAM files (default is version 8) arg Pathname (with extension) to the file to convert. Wildcards are allowed. Example: icrevup -V 7 *.xd would convert all rev5 and rev6 ICISAM files in the current directory to rev7 files and leave the old files as name.xd5/nx5 or name.xd6/nx6. **** Revision 5.03 **** Bug Fixes in 5.03 ----------------- 1. Minor updates in the Windows installer including handling upgrades from ICOBOL 2 and 3 properly. 2. Under Windows, ICINFO was not printing out disk space correctly for >1TB drives. 3. The sample Logon program was not showing disk space correctly for >1TB drives. 4. The runtime system was not correctly handling the EXTEND option for disk files associated with a PCQ. Changes and New features in 5.03 -------------------------------- 1. The IC_SEND_MAIL builtin has been enhanced to support email addresses as "Sample Name ". **** Revision 5.02 **** Bug Fixes --------- 1. The documentation for ICSDMODE was showing "drawlines" as an option instead of "linedraw". 2. Various fixes in ICCREATE, ICCHECK, and ICFIXUP for creating, detecting, and fixing isam files. **** Revision 5.01 **** Bug Fixes --------- 1. ICCHECK could erroneously report "Node entry count is too big" on the .nx file and mark the file as unreliable. **** Revision 5.00 **** New Features ------------ 1. Native 64-bit support ICOBOL 5 now provides native support for both 64-bit and 32-bit operating environments using Microsoft Windows and various distributions of Linux (Intel). 2. Files larger than 4 GB ICOBOL 5 now provides support for files that are larger than 4GB for standard INDEXED, RELATIVE and SEQUENTIAL file formats. The enhanced INDEXED and RELATIVE files will now handle up 4 billion (4 giga-) records. These files are implemented as ICISAM version 8. ICISAM version 8 is now the default version that is created. Version 8 files cannot be carried back to an earlier version of ICOBOL (4.xx or before). Version 8 ICISAM files use a larger index node size - 4096 bytes instead of 2048 bytes. As a result, the underlying buffer manager uses an increased buffer size of 4096 bytes. 3. Shared area revision 5.00 executables require the shared area provided by an ICEXEC 5.00 or greater and will not run with earlier revision executables or with an earlier revision shared area. The new shared area format was required in order to support ICISAM version 8 and also larger sequential files. 4. Folder layouts As each new major version of Windows has arrived, the security on the "Program Files" and "Windows" folders has continued to become more and more restrictive. As a result, some changes have been made in the the way files are installed and run so that it is never necessary to modify the files in the installation folder. File are no longer copied to the Windows directory. These changes are the next logical step in a process that was begun in ICOBOL 4.70. This has the added advantage that version upgrades can be installed without worrying about over-writing a modified file. A similar change was made to the default folder layout in Linux. Over time the layout of most Linux systems has changed as well. The folder layout in ICOBOL is designed to be more consistent with current Linux conventions. Some changes have been made to isolate system configuration information from the installation to make version upgrades much simpler. On both platforms the examples folder now has several sub-folders to help organize the many examples. Also, the sample programs that used to be in the main installation folder (e.g., logon.cx) are now located in the programs sub-folder under examples. On both platforms the surrogates used by icnetd have now been moved to a sub-folder named icnet. This includes the files were previously in the tcs sub-folder (which no longer exists). 5. New installers The Windows installer has been updated with a new look and with fewer screens to go through. In addition, the documentation has been incorporated into the master installer is is no longer a separate installer. As always, all of the documentation is available directly from the website. The installer will automatically detect whether Windows is 32-bit or 64-bit and install the correct 32-bit or 64-bit version of ICOBOL. The three Windows installers are: a. "Master" installer (win5nn.exe). This installer contains the entire Windows product. It can be used to install the runtime environment, development tools, client-server support, the licensing server, documentation, the ODBC driver, and the Thin Client. It is used mainly by developers and for installation on servers. If in doubt, download this one. b. "Runtime" installer (win5nnr.exe). This installer contains just the runtime environment and the licensing server. This installer is sufficient to install most single-PC client systems that have an ICOBOL application installed local to the PC. c. "ThinClient" installer (win5nntc.exe). This installer contains just the Thin Client software. It is all that is needed to install the client piece that communicates with a server where the ICOBOL application is installed. ICOBOL for Linux comes packaged as a compress tar file (.tgz) as before. In Linux, it is up to the user to select the appropriate 32-bit or 64-bit package for the operating system - and so there is a 32 or 64 in the package name. There are 4 Linux packages: a. "Master" package (ln32.5nn.tgz or ln64.5nn.tgz) This package contains the entire product. If in doubt, download this one. b. "ThinClient" package (ln32.5nntc.tgz or ln64.5nntc.tgz) This package contains just the Thin Client software. It is all that is needed to install the client piece that communicates with a server where the ICOBOL application is installed. c. "ODBC" package (ln32.5nnodbc.tgz or ln64.5nnodbc.tgz) This package contains just the ODBC driver. It can be used in cases where the ICOBOL data files are being accessed on another server via client-server. When using ODBC with local files, the Master package is more appropriate. d. "Info" package (ln32.5nninfo.tgz or ln64.5nninfo.tgz) This package is simply a compressed copy of the icinfo utility. When using the MAC protection method, it is helpful to download the package and run icinfo to determine the MAC address of the system to be licensed. Once the package is downloaded and extracted, there are shell scripts to assist with the product installation. These scripts have been overhauled to install ICOBOL using the new folder layout and to provide for easier updates in the future. The init script used to control the ICOBOL service daemons has also been modified to separate out the daemon confuration information and to integrate better with Linux system management tools, such as the 'service' utility. 6. Log files location and logging mode. The ICOBOL services in Windows are now installed and configured to use ProgramData\ICOBOL for their log files and for the licensing failsafe file. Since ProgramData is a hidden directory in Windows, the installer creates a Start-Menu shortcut to this folder called "Log Folder". We also changed the default log mode from "b" (create a backup) to "da" (create a date-stamped name and append). This change has the potential to use more storage for the logs, but it' has the advantage that it keeps more history, especially if a service is restarted multiple times over a short period of time. 7. Windows PATH setting The installer now adds the ICOBOL installation folder to the System PATH environment variable. On a 64-bit system the x86 sub-folder is also added (after the main folder). The value of PATH being used by programs or services that are already running, and so, at a minimum it is suggested that you log off and log back in after the install is complete in order to load the new value of PATH. 8. The ACCEPT FROM ENVIRONMENT has additional systems codes that allow the ICOBOL application program to determine the type of platform on which it is running. The sample logon program shipped ICOBOL has been updated to display these new codes. 01 ENV-STRUCTURE. 02 SYSTEM-CODE PIC 99. 88 IC-AOSVS VALUE IS 01. 88 IC-AOSVSII VALUE IS 04. 88 IC-MSDOS VALUE IS 30. 88 IC-386UNIX VALUE IS 31. 88 IC-DGUX-88K VALUE IS 34. 88 IC-AIX-RS VALUE IS 39. 88 IC-SUN-SPARC VALUE IS 40. 88 IC-HPUX-PA-RISC VALUE IS 41. 88 IC-MOTOROLA-88K VALUE IS 43. 88 IC-STRATUS-860 VALUE IS 44. 88 IC-LINUX-INTEL32 VALUE IS 45. (old IC-LINUX-INTEL) 88 IC-DGUX-INTEL VALUE IS 47. 88 IC-SCO-UNIX-INTEL VALUE IS 48. 88 IC-UNIXWARE-INTEL VALUE IS 49. 88 IC-MACOSX VALUE IS 51. | 88 IC-LINUX-INTEL64 VALUE IS 52. 88 IC-WINDOWS-9X VALUE IS 60. 88 IC-WINDOWS-32 VALUE IS 61. (old IC-WINDOWS-NT-INTEL) | 88 IC-WINDOWS-64 VALUE IS 62. 9. Enhanced ICSORT and the SORT verb in COBOL The ICSORT utility as well as the internal sort/merge facilities can now handle files larger than 4GB. In addition, ICSORT has been enhanced to allow a much larger in-memory work area (-M option). 10. Enhanced ICINFO Under Windows, icinfo now has a new option: -F exefile that shows the binary file type of the executable 'exefile' as either Windows 32 bit or Windows 64 bit. The option is mutually exclusive with the -G and -N options. 11. Enhanced PDF options The configuration for PDF forms has been enhanced to provide some new capabilities related to using background forms. When you enable a background form (i.e. you enter a value for Background Form name) there are a couple of new entries that appear. UseOnce: Y/N (Default is N) Y=use the background form one time (ReuseLastPage appears) N=old behavior (MultiPart appears as before) ReuseLastPage: Y/N Y=once the form has been used, reuse the last page of the form for all the remaining pages. When used with a 1-page form, the effect is the same as UseOnce=N. N=once the form is used, print remaining pages with no form. ReuseLastPage is useful to have a unique first page. Example: a 2 page invoice form where the first page has customer and shipping information at the top followed by a boxed-in table with columns for the ordered items; and, the second page has an expanded table outline, but no special information. With both settings set to Y, this will create a multi-page invoice with a custom first page. 12. Ability to generate password-protected PDF files. The extended open options have been extended to include password strings to produce a password-protected PDF file. 13. Enhanced IC_PDF_PRINT The IC_PDF_PRINT builtin has been enhanced with an optional argument with the password strings to produce a password-protected PDF file. 14. Enhanced IC_SEND_MAIL The IC_SEND_MAIL builtin has been enhanced to support TLS/SSL connections and additional secure username/password logins. There is a new environment variable, ICSMTPSSLPORT that is used to specify the port to use for an SSL connection to the mail server. Important Changes ----------------- 1. Supported Windows and Linux versions. ICOBOL 5 is built for Windows Vista and up (desktop OS line) and for Windows Server 2008 and up (server OS line). This is due primarily to the end of extended support for previous versions such as Windows XP. ICOBOL 5 is built for Linux kernels 2.6.18 and up (Red Hat Enterprise Linux 4 and up). 2. Supported ICISAM versions ICOBOL 5 no longer supports the old Data General compatible file formats - ICISAM versions 5 and 6. The icreorg utility can still read and write these versions, so it is possible to import and export them if necessary. However, they are no longer supported by the runtime system or by the various ICISAM file utilities such as iccheck, icfixup, icstat, and icsort. If your system still has version 5 or 6 files, you will have to use icreorg to upgrade them to version 7 or 8. By default, when ICOBOL 5 creates a version 7 ICISAM file, it creates it as version 7.10 rather than 7.00. The version 7.10 files are supported by earlier versions of ICOBOL. 3. Toolsets used to build ICOBOL 5 ICOBOL 5 for Windows is built using Microsoft Visual Studio 2012 Professional, with the exception of ICIDE, which is still built using Microsoft Visual Studio .NET 2003. ICOBOL 5 for Linux is built on Centos 5.10 (Community version of RedHat Enterprise Linux) using gcc 4.1.2 for Linux kernels 2.6.18 and up. 4. Program titles show bit width The program title and revision line that is displayed by each of the ICOBOL execuatble programs now incorporates its bit width along with the operating system, e.g., (Windows (32-bit)) instead of (Windows). Several of the shortcuts created in Windows also have the bit width in the shortcut name. 5. Shared library names Many of the shared libraries (.so's/.dll's) now have a 32 or 64 in the name to indicate the bit width of the code in them. Where it was not possible to rename them, and where both the 32-bit and 64-bit versions are needed, the 32-bit versions are isolated in a sub-folder named x86. Under Windows, due to Microsoft requirements, icodbcsu.dll and icodbc32.dll were not renamed and must use the x86 folder when both versions are present. 6. ICCHECK and ICFIXUP The iccheck and icfixup utilities underwent a major overhaul due to adding support for version 8 ICISAM files and discontinuing support for version 5 and 6 ICISAM files. These changes affected some of the messages that are displayed and the order of messages. 7. Upgraded SSL librraries ICOBOL is now built with the OpenSSL libraries version 1.0.1g. In addition the OpenSSL libraries are built WITHOUT support for certain proprietary or restricted algorithms, such as IDEA, RC% and MDC2. These libraries are used by the ICWEBMSG utility and by the ICOBOL Runtime. 8. The facilities to access ICOBOL ICISAM files from other programming languages (called the User Library or ICAPI) and the ability to integrate custom calls into the runtime (called the link kit) are no longer part of the standard release, but they are still available. Please contact Sales for assistance if either of these are needed. 9. ICREVW dropped We have dropped the GUI version of icrev from the product since all of its function is avaliable via the context menus in Windows Explorer. 10. ICSVCMGR.EXE dropped We have dropped the ICSVCMGR.EXE utility from the Windows release. This was a command-line utility to manipulate services, not the GUI Service Manager. Typically situations that could not be handled by the GUI Services Manager or the Windows Service Manager indicated that the installation was broken to the point where a re-install was a better option, making this utility unecessary. 11. ICLIB (.cl) only for programs The ICOBOL library facility in ICOBOL 3 and 4 was capable of packaging more than just program files, for example, an indexed file. However, it was rarely, if ever used for other types of files. Due in part to some technical reasons related to version 8 ICISAM and the change to a 4096 byte buffer size, it was no longer practical to support these other types of files in an ICOBOL library (.cl) file. One result of this is that ICOBOL libraries can no longer be specified as elements in ICDATAPATH - they can only be specified in ICCODEPATH. 12. Older ICNETD protocols no longer supported Support for certain older ICNETD protocols has been dropped. In general this means that ICOBOL 5 ICNETD does not support client requests from ICOBOL 2 or ICOBOL 3 clients; nor can ICOBOL 5 act as a client to those systems as servers. 13. Windows Networking Settings By default, Windows sets several parameters in its networking that can yield a slight performance improvement, but they also make certain network file operations unreliable. These setting can lead to file corruption in ICISAM files that are used over a Windows network share. The installer continues to set those parameters to values that make the network reliable for ICISAM file access. The parameters in the registry that will be modified are: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ Parameters\EnableOpLocks which we will be set to 0 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\ Parameters\UseOpportunisticLocking which we will be set to 0 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\ Parameters\UseLockReadUnlock which we will be set to 0 14. Version 7 ICISAM 4GB setting The System screen in ICCONFIG and ICEDCFW has an option to enable the 4GB file size flag when creating version 7 ICISAM files. Prior to ICOBOL 5 the default setting when creating a new configuration file was "disabled". This has been changed so that the default is now "enabled". 15. Support for Btrieve files was dropped from the Windows product. 16. Support for C-ISAM files was dropped from the Linux product. 17. TranSoft U-FOS support is only supported on 32-bit Linux. 18. The -G 6 option was removed from the compiler and ICIDE 19. Changes have been made to the way certain components are licensed in order to provide better value and simpler licensing. For example, the WATCH, PDF, and CROSS options are now bundled as part of the system, and the runtime system no longer requires an additional license in order to access the ISQL features of the language. Known Problems -------------- Bug Fixes --------- End of Release Notes