🛠️ P3/COBOL 25.1.0-SNAPSHOT is available for preview.
Release Notes
Version 8.1

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 DECLARATIVE sections
  • [DS-1009] - NUMVAL does 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_THRU caching for based items when NUMERIC_COHERENT caching 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.sh and p3r.sh and remove p3c.exe and p3r.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.sh replacing p3c.sh and p3r.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 OF or IN to 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 VARYING items
  • [DS-1011] - Bad java generated for newEditor(Program, ByteBuffer) when partitioning in effect
  • [DS-1012] - INSPECT ... TALLYING when 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] - UNSTRING editor methods provide an "int" for pointer and tally variables
  • [DS-1020] - ACCEPT ... FROM TIME suppresses 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[] as arg, should be int...
  • [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 NPE when 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 78 values don't work for FALSE phrase of 88
  • [DS-1058] - Java compiler error when using a 78 level in a compare with reference modification
  • [DS-1059] - EXIT SECTION in SEARCH fails to reap unreachable statements following
  • [DS-1060] - FUNCTION CURRENT-DATE does not use FORCED_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 VALUE parsed incorrectly
  • [DS-1069] - AT END in SEARCH ALL statement list sometimes duplicates first statement
  • [DS-1070] - SEARCH ALL ... AT END statement 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 ON defined 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 STRING statements 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 a PIC9(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-name generates bad code if console is crt used
  • [DS-1112] - Pseudo text containing . does not work
  • [DS-1113] - COPY ... REPLACING ... throws index exception when the COPY file 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 PROCEDURE division 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-directory is 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