Studie: Rexx auf Qt portieren

(DE) Projekte für OS/2, eCS und ArcaOS
(EN) OS/2, eCS and ArcaOS related projects
User avatar
LotharS
Posts: 965
Joined: Sun 29. Dec 2013, 20:07
Location: Düsseldorf

Studie: Rexx auf Qt portieren

Post by LotharS »

Nach einigen Anläufen konnte ich mein Projekt der Art Rexx->Qt auf endlich einen ersten Meilenstein bringen: lziqt40, "liesmich.txt" eingeschlossen.
Resultat ist zwar exemplarisch und höchstens "alpha", aber funktioniert...

(1) Die Idee: Meine kleine Anwendung LSZipWizard - trotz .exe ja doch ein Script - auf irgendwas Compilierbares zu bringen. Erste Schritte auf Basis VACPP3.08 schafften sogar ein funktionierendes Bildchen. Immerhin: Ein Warp4-Notebook und DnD-Events klappten; das Kernproblem: Umleitung von StdOut/StdErr nach Cmd-Aufruf - in Rexx ein Einzeiler! - habe ich dank Lars' Beispiel zu DosExecPgm() hinbekommen. Aber ohne echte IDE (etwa wie eclipse) und Debugger weiter für mich hoffnungslos. VACPP4.x sah mir noch schlimmer aus.

(2) Da wurde Qt interessant: Eine IDE Qt-Creator inkl. QtDesigner, ordentlichem Editor und -eigentlich- eingebautem Debugger. Allerdings: in ArcaOS nur auf altem Qt4 und ohne Debugger, einen "versprochenen" Qt5-Creator gibt's bis heute noch nicht. Aber mein Linux hatte alles!

(3) Statt DosExecPgm() fand ich im Netz einen entsprechenden Code mit QProcess::start(), was mein o.a. Kernproblem löste. Endlos weitere dringende Fragen fand ich irgendwie im Netz und der Qt-Doku gut erklärt, zwar alles für "Linux" aber ok...

(4) Habe deshalb begonnen, meinen Rexx-Code schritt---weise möglichst "1:1" auf Linux-Qt zu portieren (andernorts bekäme man dafür einen jecken Verdienstorden :lol:). Natürlich jede Zeile angefasst, aber zum Glück war mein Rexx-Code bereits stark modularisiert und zeigte sich das Event-Handling in meinem VisproRexx ziemlich ähnlich dem in Qt (oder manchmal doch notify vs. VACPP-connect()). Das Rück-Portieren auf ArcaOS-Qt4 war mit Hilfe von #define-Makros (und reichlich Debug...) zu >90% sehr einfach, allerdings vereinzelt nur mit Hilfe Standard-C++ und Toolkit-API (und immer wieder Danke an Lars! :) ). Und profitiert hat zwischendurch rückwärts mein Rexx :|. Endresultat sh. oben, leistet fast das Gleiche wie's Rexx-Original.

An eine breite Veröffentlichung dieser Studie denke ich nicht, das Rexx-Original tut halt echteres "OS/2" und für eine weitere HLP-Doku und Pflege hab' ich keine Lust... Bin aber auf Wunsch gern bereit, über Source-Code (oder Teile daraus) zu reden, hab' ja dauernd selbst profitiert...

Vor allem bitte seid jetzt Ihr dran, ähnliche Projekte zu starten. :D

P.S.: Konnte die Zeit gut nutzen, ohne von Migration auf ArcaOS5.1.null gestört zu werden. Beide Announcements kreuzen sich gerade :P