Release notes - P3/COBOL Compiler - Version 8.1
✨ New Features
- [DS-896] - Implement the 2014 partial word replacement feature of
COPY REPLACING - [DS-1055] - Provide a byte-oriented editor for viewing and changing the stored (memory) version of data items in debugger
- [DS-1090] - Allow MF-style handling of
ENTRY - [IDE-210] - For memory-based items, allow hexdump detail display alternative
- [IDE-268] - Provide option to "slice" in-scope variables shown in debugger
🛠️ Improvements
- [DS-901] - Make the debug trace capability standard (not experimental)
- [DS-925] - Standardize
DECLARATIVEsections - [DS-1009] -
NUMVALdoes not ignore meaningless alphanumeric characters (as MF apparently does) - [DS-1019] - Add Micro Focus COMP-6 support option
- [DS-1023] - Allow SQL indicator variables to be on separate line from host variable they indicate
- [DS-1028] - Should be able to dump programs in the call stack traceback only (on Abend)
- [DS-1029] - Use generated schemas to validate the option files
- [DS-1034] - Detect mal-formed configuration files
- [DS-1036] - Make it clearer that the deprecated output-dir option should not be used if either replacement option is used
- [DS-1037] - REDEFINES of 01 array element does not redefine the target
- [DS-1047] - ESQL: make statement names follow cursor qualification rules
- [DS-1050] - ESQL: Support
SET FETCHSIZE = n - [DS-1075] - Large number of externals should not cause Java bytecode limit to be reached
- [DS-1085] - Provide a way to restart the Dispatcher
- [DS-1086] - Provide method to clean up Launcher instances
- [DS-1089] - Use
WRITE_THRUcaching for based items whenNUMERIC_COHERENTcaching specified - [DS-1095] - Improve the reporting of license-related errors
- [DS-1097] - Provide option to treat out-of-bounds reference modification in a manner similar to Micro Focus*
- [DS-1100] - Elementary FILLER can cause Java constant-space overflow unnecessarily
- [DS-1101] - Debugger stack is messed up if a Java Program (user written) calls a generated COBOL program class
- [DS-1102] - Provide statement location augmentation of logged and/or thrown P3RuntimeExceptions
- [DS-1117] - Add option to mimic isCOBOL lax unsigned numeric display usage behavior
- [DS-1121] - Allow reopening of a closed run unit
- [DS-1126] - Add option for strict numeric class testing
- [DS-1054] - Combine
p3c.shandp3r.shand removep3c.exeandp3r.exe - [DS-1107] - Update documentation html for 8.1
- [DS-1110] - Upgrade to Gradle 5.0
- [DS-1122] - Update copyright notice on sources for 8.1
- [DS-1038] - Provide a map of Java class/line to COBOL file line in class_data files
- [DS-1039] - Use class_data java map to augment the Java stack traceback with COBOL file/line when appropriate
- [DS-1108] - Update doc for new
p3.shreplacingp3c.shandp3r.sh. - [DS-1123] - Implement the 2014 date/time intrinsic functions
- [DS-1124] - Implement the 2014 constant value functions
- [DS-1125] - Implement the 2014 arithmetic functions
- [IDE-186] - Detail pane of variables should show more
- [IDE-187] - Show and edit stored byte values for items in debugger variables view
- [IDE-199] - Hex value should not be prompted in the Change value variable dialog
- [IDE-236] - Code completion should allow
OForINto be configured for qualification - [IDE-243] - IDE reportedly can't install on Photon due to missing dependency
- [IDE-248] - Implement occurrence marking for paragraph and section names
- [IDE-250] - Provide a tabbed, read-only editor view of the pre-processed source
- [IDE-254] - Focus on Expressions tab in Debug perspective when Watch is used on an item
- [IDE-259] - Hovering over a reference or declaration in a copybook editor should show detail(s)
- [IDE-263] - Multiline annotation (e.g., occurrences definition) includes non-program area text
- [IDE-266] - Provide more information in the stack frame display during debugging
- [IDE-267] - Provide more information in debug stack display (such as program name/file/line)
- [IDE-275] - Switch to IDE Message Console when a build completes
- [IDE-276] - Provide a way to force user-defined words to upper/lower case (as is done for key words)
- [IDE-279] - Control IDE messages using Tracing preferences
🐛 Bugfixes
- [DS-217] - ESQL should handle BigInteger
- [DS-590] - "." at end of line with abutted tail comment should be treated as period separator
- [DS-806] - Release all statements and result sets when closing named cursors
- [DS-984] - IDE use of unified data classes results in unexpected exception in TypeWriter
- [DS-1007] - Some host variable references in ESQL do not correctly access
VARYINGitems - [DS-1011] - Bad java generated for newEditor(Program, ByteBuffer) when partitioning in effect
- [DS-1012] -
INSPECT ... TALLYINGwhen subject is signed numeric display item does not retain leading 0's - [DS-1013] - NPE during code generation when wrapping statements and NullClassFileWriter used
- [DS-1014] - Instantiating a generated group data object and forming pointer attaches a run unit
- [DS-1016] -
UNSTRINGeditor methods provide an "int" for pointer and tally variables - [DS-1020] -
ACCEPT ... FROM TIMEsuppresses leading "0" and left-justifies the time in the target item - [DS-1021] - Backup files occasionally have the checksum record corrupted upon reading
- [DS-1022] - Synchronize and void accessors generated with
int[]asarg, should beint... - [DS-1024] - ESQL prepared Statements not re-prepared when cursor is (re-)used with different parameters
- [DS-1025] - Line sequential read should return 04 if record area insufficient to store entire record
- [DS-1027] - Dump storage gets
NPEwhen debug is not set - [DS-1035] - Literal concatenation sometimes yields bogus error
- [DS-1042] - SQL indicator variable should be set to 0 for non-null numeric columns, not the last length
- [DS-1044] - Two successive call()s from java does not stack properly
- [DS-1048] - call and callCobol in RunUnit need to suspend() when returning
- [DS-1049] - Constant
78values don't work forFALSEphrase of88 - [DS-1058] - Java compiler error when using a 78 level in a compare with reference modification
- [DS-1059] -
EXIT SECTIONinSEARCHfails to reap unreachable statements following - [DS-1060] -
FUNCTION CURRENT-DATEdoes not useFORCED_DATETIME - [DS-1063] - ALL literals used in conditional and/or 88 expressions can generate bad comparisons
- [DS-1064] - Division resulting in non-terminating fraction throws exception in ConstantExpressions
- [DS-1065] - Upper-case bitwise operators are not recognized
- [DS-1067] -
INITIALIZE ... THEN TO VALUEparsed incorrectly - [DS-1069] -
AT END in SEARCH ALLstatement list sometimes duplicates first statement - [DS-1070] -
SEARCH ALL ... AT ENDstatement list generates unreachable Java in some cases - [DS-1071] -
ADD ... TO FUNCTION LENGTH(alpha-item) GIVING ...gives compile error - [DS-1074] - Fast initialize of deeply nested arrays can consume vast memory during compilation
- [DS-1077] - Class tests to not generate correct code for
OCCURS ... DEPENDING ONdefined items - [DS-1078] - IO methods generated without downcast for BigInteger and long to int for argument(s)
- [DS-1079] - Boolean expressions generate bad Java when non-integer numeric items are used
- [DS-1080] - Nested
STRINGstatements cannot catch overflow above the lowest level - [DS-1082] - Unreachable code generated when declarative section present and no procedures
PERFORMed in program - [DS-1084] - Large number of fast-initialize methods cause InitializationRunner to run out of constant space
- [DS-1091] - Java errors generated by wrapped inline PERFORM statements with
EXIT PERFORM[CYCLE] - [DS-1093] -
MOVEing a long value to aPIC9(9)item can result in uncaught Arithmetic Exception - [DS-1094] - Piped output does not flush sequestered output until next write or page advance
- [DS-1096] - Alphanumeric comparisons with 0-length items throw exception
- [DS-1105] - When perform type is
FLAT, Java errors generated - [DS-1106] -
DISPLAY x UPON environment-namegenerates bad code ifconsole is crtused - [DS-1112] - Pseudo text containing
.does not work - [DS-1113] -
COPY ... REPLACING ...throws index exception when theCOPYfile referenced has no program area - [DS-1120] -
COPY ... REPLACING ...with blank or comment lines before the terminating period cause corrupted intermediate source - [IDE-179] - Unlicensed editor allows commenting and saving
- [IDE-215] - Recompile does not remove error markers from project explorer
- [IDE-220] - Relationships view does not clear when the source file is closed
- [IDE-260] - Debug hovering over data reference does not fully qualify the value getter
- [IDE-264] - Save As... throws "disabled feature" exception
- [IDE-265] - Cannot set breakpoints in
PROCEDUREdivision copy/replacing file - [IDE-269] - IDE fails to return focus to the Turret IDE Console when output is written
- [IDE-271] - Debugger variables: 01-level filler is incorrectly displayed when other filler items with the same name are present
- [IDE-280] - Linked editor/navigator lose the link if Eclipse restarted
- [IDE-281] - Outline resets position and loses selection unnecessarily often when parser is run due to edits
- [IDE-283] - Build path filters are labeled incorrectly
- [IDE-284] - Var directory is created in project when no
source-directoryis specified, and it never goes away - [IDE-287] - No value is shown when hovering over variables in debug
- [IDE-286] - No variables shown when debugging programs with files declared