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

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 88 setter 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_EXIST should allow missing or truncated detail area
  • [DS-914] - Packed decimal should allow IBM sign variants and be more thorough validating
  • [DS-922] - Support RECORD SEQUENTIAL organization as synonym for BINARY 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] - CANCEL needs to check for and cancel programs contained in the cancelled program
  • [DS-361] - MOVE to 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_NUMBER does 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] - 78 in LINKAGE SECTION for RECURSIVE program generates bad code
  • [DS-918] - SUM(item(ALL)) function with packed arguments throws exception
  • [DS-928] - MOVE to 0-length group item generates bad Java
  • [DS-929] - Use all available threads for batch compilation
  • [DS-930] - SORT generates SortKeySafeComparator(this, ... which fails when wrapping
  • [DS-931] - UNSTRING without ON OVERFLOW should handle overflow by transferring control to next statement
  • [DS-933] - INTEGER-PART function does not take integer numerics
  • [DS-934] - An expression function argument which starts with a qualified symbol reference erroneously detects error
  • [DS-941] - OPEN INPUT of 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] - INITIALIZE should not consider redefined items subordinate to indentifier-1 as receivers
  • [DS-948] - UNSTRING ... INTO should 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 ALL subscripting throw spurious exception (NPE)
  • [DS-953] - ACCEPT ... FROM CURRENCY (DML) gives syntax error
  • [DS-954] - ACCEPT/DISPLAY fails 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] - 88 conditions sometimes generate bad code
  • [DS-961] - ALLOCATE identifier 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 ENVIRONMENT not 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 -s and -d options does not work
  • [DS-978] - Embedded Java causes uncompilable .lst file
  • [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-accessors is 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 the Arrays.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$darg call 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 java and exec sql coloring rules appear to admit things like exec-sql-section
  • [IDE-231] - Builder doesn't detect compiler.p3c changes 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"