Release Notes - P3/COBOL Compiler - Version 7.2
✨ New Features
- [DS-663] - Support updateable and scrolling cursors with ESQL
- [DS-912] - Provide option to generate JUnit-runnable tests
- [DS-923] - Suppress unused group item generation and warn when unread group generated
- [DS-926] - Allow generation of data classes to common directory with isomorphic classes not duplicated
- [DS-980] - Optionally generate Java Bean accessors for top-level group items
- [DS-981] - Allow app server to be used for remote process invocation of COBOL programs from C
🛠️ Improvements
- [DS-405] - Need
88setter to be generated for non-COBOL convenience - [DS-830] - Add z/OS COBOL dialect
- [DS-888] - Duplicate allocation map heading
- [DS-890] - Consider compile with no files selected to be an error
- [DS-902] - Too many edited items in 01 group can hit constructor byte-code limit
- [DS-909] - Rework the generated
static main(...)to allow easy execution from Java - [DS-910] - Streamline in-process calling of a P3/COBOL program from POJO
- [DS-913] -
CBL_CHECK_FILE_EXISTshould allow missing or truncated detail area - [DS-914] - Packed decimal should allow IBM sign variants and be more thorough validating
- [DS-922] - Support
RECORD SEQUENTIALorganization as synonym forBINARY SEQUENTIAL - [DS-938] - P3 utility should return the value returned by the java command that runs the COBOL
- [DS-959] - Compile java -> class for any compiles that are error-free
- [DS-965] - Add user option for specifying (overriding) error levels
- [IDE-175] - File record areas should be treated as group items in the model
- [IDE-176] - Enhance java source and class file generation and persistence
- [IDE-178] - Set default temp directory that can be written (for Windows)
- [IDE-183] - Should prompt for unsaved dependencies when building and/or launching
- [IDE-212] - Allow changing items larger than 100 bytes in debugger
- [IDE-221] - Each model element should have an "equals" method to allow Eclipse to optimize the rendering
- [IDE-249] - Show item offset and length when hovering on parsed source item name
🐛 Bugfixes
- [DS-150] -
CANCELneeds to check for and cancel programs contained in the cancelled program - [DS-361] -
MOVEto zero length group generates bad code - [DS-766] - Trace message has bad memory address value shown
- [DS-881] - Unreferenced elementary item (with 88) causes DataAttributes with no method
- [DS-889] -
ACCEPT FROM ARGUMENT_NUMBERdoes not conform to X/Open specifications - [DS-891] - Missing configuration file does not cause error, instead uses defaults
- [DS-903] -
BX"..."with other than 2,4,8,16 bytes incorrectly typed in some cases - [DS-905] -
H"..."literals should be numeric or non-numeric based on dialect - [DS-906] - Initialization should do unsafe assignments
- [DS-911] -
78inLINKAGE SECTIONforRECURSIVEprogram generates bad code - [DS-918] -
SUM(item(ALL))function with packed arguments throws exception - [DS-928] -
MOVEto 0-length group item generates bad Java - [DS-929] - Use all available threads for batch compilation
- [DS-930] -
SORTgeneratesSortKeySafeComparator(this, ...which fails when wrapping - [DS-931] -
UNSTRINGwithout ON OVERFLOW should handle overflow by transferring control to next statement - [DS-933] -
INTEGER-PARTfunction does not take integer numerics - [DS-934] - An expression function argument which starts with a qualified symbol reference erroneously detects error
- [DS-941] -
OPEN INPUTof sequential file obtains read/write access - [DS-944] - Server does not allow overallocation of run units as it should
- [DS-945] - Relative path in debug is not correct in all cases
- [DS-947] -
INITIALIZEshould not consider redefined items subordinate to indentifier-1 as receivers - [DS-948] -
UNSTRING ... INTOshould skip any identifiers if no value is remaining after previous identifiers processed - [DS-951] - Exit from a wrapped paragraph can be ignored causing unexpected control flow before finally exiting
- [DS-952] - Zero packed-decimal values returned by
ALLsubscripting throw spurious exception (NPE) - [DS-953] -
ACCEPT ... FROM CURRENCY(DML) gives syntax error - [DS-954] -
ACCEPT/DISPLAYfails to resolve item id's that are then used in imputeSize - [DS-955] - Generating data classes smaller than existing (older) java file results in corruption and Java errors
- [DS-956] - Procedure names that form valid floating point literals are incorrectly flagged as error
- [DS-957] - NPE occurs when loading a program that references item in non-top-level filler group
- [DS-958] -
H"..."literals cause Java compilation errors when dialect is NOT RM - [DS-960] -
88conditions sometimes generate bad code - [DS-961] -
ALLOCATEidentifier does not allow for expansion due to redefinition - [DS-963] - C calling P3 via p3bridge fails when native pointer runtime option selected
- [DS-964] - Use of
H"..."in a non-numeric context and non-RM dialect generates improper code - [DS-966] - Native pointers on big-endian machines do not dereference properly
- [DS-968] - Abend output is partially sent to client and partially sent to the server when app server is used
- [DS-969] - App server program in loop cannot be aborted by client ctl-c
- [DS-971] - Getting environment variable (via
ACCEPT ... FROM ENVIRONMENTnot case-insensitive as expected - [DS-974] - Unreferenced (except for fast initialize) elementary items still have generated accessors
- [DS-975] -
INSPECT ... CHARACTERS BEFORE INITIAL ...results in fatal semantic error - [DS-977] - Specifying both the deprecated output-dir option and the
-sand-doptions does not work - [DS-978] - Embedded Java causes uncompilable
.lstfile - [DS-982] - Short literal comparisons in non-native charset are flawed due to regression in direct storage access optimization
- [DS-983] -
INSPECT ... REPLACING ... BEFORE INITIAL " "results in unexpected semantic exception - [DS-985] - Argument accessors for floating point elementary items are missing
- [DS-987] - Bad import generated when
*used in program package name - [DS-988] - p3 utility does not work with OpenJDK due to different version string
- [DS-989] - Caching is flawed when
generate-all-accessorsis used - [DS-994] - Java bean set of a decimal value takes BigDecimal but does not convert to configured decimal type
- [DS-998] - The
List<FileAssociation>cannot be serialized due to theArrays.ArrayList - [DS-999] - Paragraphs with modifiers (JAS) should return void, not the program instance
- [DS-1000] - Exec SQL does not parse correctly in IDE editor
- [DS-1003] - Debugger fails when processing exit from empty inline perform
- [DS-1005] - RM dialect appears to not allow embedded java
- [IDE-184] - Stepping over
c$dargcall while viewing arg-desc causes failure - [IDE-202] - Directory in Navigator should not appear if all its content is in build path
- [IDE-206] - Sometimes hover and hyperlinks stop working in debugger
- [IDE-229] - Subscripted function arguments cause cast exception in parser
- [IDE-230] - The
javaandexec sqlcoloring rules appear to admit things likeexec-sql-section - [IDE-231] - Builder doesn't detect
compiler.p3cchanges if indexing is disabled - [IDE-232] - Expressions and mouse-over sometimes do not match variables tab
- [IDE-233] - Debugger variables view shows 0 valued NPS items as
<not accessible> - [IDE-234] - Setting a value in the variable view appears to sometimes set, but change is not displayed
- [IDE-235] - Hovering over an ALL subscript results in class cast exception
- [IDE-237] - SD record areas should not be shown in the variable view as "expandable"
- [IDE-244] - Source tab missing from local launch page (but not from remote attach)
- [IDE-245] - Editor should be aware of user defined word boundaries and double-click should behave accordingly
- [IDE-251] - When a BS2000 project is converted to a full P3/COBOL project, breakpoints cannot be set
- [IDE-252] - Hover information not available for automatically defined items
- [IDE-256] - Watchpoints appear to never be enabled
🎉 Misc
- [DS-973] - Refactor "FastDecimal" to "CheckedDecimal"