Ein Beitrag von Uwe Rittmeyer, Senior Consultant & P3/COBOL Product Specialist bei EasiRun.
P3/COBOL erscheint diesmal in zwei Versionen: 17.1 setzt weiterhin Java 17 als Mindestanforderung, 25.0 verlangt Java 25 (LTS). Die Sprachfeatures aus 17.1 stehen auch in 25.0 zur Verfügung, der Unterschied liegt in der Java-Ebene darunter. Beide Versionen sind ab sofort zum Download verfügbar.
Wir freuen uns, Ihnen beide Releases gemeinsam vorzustellen. Während der Fertigstellung von 17.1 erschien Java 25 als LTS. Viele von Ihnen haben uns nach dem aktuellen LTSStand gefragt, weil Sicherheits- und Compliance-Vorgaben daran hängen. Deshalb liefern wir 25.0 direkt mit.
Welche Version passt zu Ihnen
- Sind Sie vorerst an Java 17 oder 21 gebunden, etwa durch interne Freigaben oder angeschlossene Systeme, nehmen Sie 17.1.
- Können Sie auf Java 25 gehen, nehmen Sie 25.0.
- 17.1 ist die letzte Version mit Java 17 als Mindestanforderung, für die 17er-Reihe folgen künftig nur noch Hotfixes.
Neu in 17.1
Compiler
- vollständige NATIONAL-Unterstützung nach INCITS/ISO/IEC 1989:2014, einschließlich GROUP-USAGE IS NATIONAL
- Cursor-Deklarationen im Oracle-Pro*SQL-Stil für positioned UPDATE und DELETE
- EXPORT akzeptiert AS TEXT und unterdrückt den XML-Deklarationskopf
- <long-arithmetic-safety> heißt jetzt <integer-arithmetic-safety>
Runtime
- der Zugriff auf Speicher außerhalb des Java-Heaps setzt die Foreign Function and Memory API voraus, der Weg über sun.misc.Unsafe entfällt
- neue Laufzeitoption <native-access-enabled>, sie muss auf true stehen, damit COBOL- CALL s in native Bibliotheken möglich sind
IDE
- Debug-Hover mit Qualifizierungspfad, Remote-Debugging mit getrennten Ports über die Laufzeitoption debug-ports
- SELECT-Einträge mit externen Dateinamen und Zuordnungszielen, Screen-Section-Datenelemente in der Programmgliederung
- synthetische Debugger-Einträge für Dateinamen, dynamische Ziele und Dateistatus zeigen Vorkommen und Definitionen
- eingebetteter Java-Code wird als Java geparst, die Syntaxhervorhebung stammt aus dem integrierten Parser
- der Standard-Dialekt behandelt COBOL-2000-DML-Schlüsselwörter nicht mehr als reservierte Wörter
Getestet mit Java 21 und 25, geprüft mit Eclipse Temurin, Azul Zulu, Oracle JDK und IBM OpenJDK.
Neu in 25.0
Plattform
- Compiler und Runtime setzen Java 25 (LTS) oder neuer voraus, Bytecode-Zielversion ist Java 25
- getestet mit Eclipse Temurin und Azul Zulu unter Windows, Linux und macOS
- Java 17 und Java 21 werden nicht mehr unterstützt
Runtime
- die native Anbindung läuft vollständig über die Foreign Function and Memory API: externe CALL s, Prozessumgebung und der optionale native Dateizugriff
- JNA wird nicht mehr mitgeliefert, jna – und jna-platform -JARs gehören aus eigenen Classpaths und Startskripten entfernt
- native-access-enabled , external-call-strategy und external-librarydirectories bleiben unverändert
- Ressourcen werden über java.lang.ref.Cleaner freigegeben, die Flags für das Incubating-FFM-Modul und –enable-preview entfallen
Compiler
- fehlende Potenz-Signaturen in CobolMath bei integer-arithmetic-safety=SAFE ergänzt
- eingebettetes SQL: COBOL-Zeilenkommentare werden in Cursor-Deklarationen aus SELECT-Anweisungen entfernt
In beiden Versionen setzen die Eclipse-Startkonfigurationen die JVM-Optionen automatisch.
Weitere Informationen finden Sie in den Release Notes.
Was das für Ihre Installation bedeutet
Am COBOL-Quellcode sind in der Regel keine Änderungen nötig, der Aufwand liegt in der Java-Umgebung. Der deutlichste Unterschied betrifft die native Anbindung: 25.0 wickelt sie vollständig über die FFM API ab und liefert JNA nicht mehr mit, in 17.1 gilt das nur für den Speicherzugriff außerhalb des Java-Heaps. Für 25.0 zeigt JAVA_HOME künftig auf eine Installation ab Java 25. Wer native CALL s einsetzt, setzt in beiden Versionen nativeaccess-enabled auf true . Wir empfehlen den Wechsel auf 25.0, mit Planungsvorlauf: Eine neue Java-Laufzeitumgebung gehört mit Ihrem Betrieb abgestimmt.
Mehr zum Produkt: P3/COBOL.