Hallo,
als ich mir die aktuelle Version von Lazarus mit Free Pascal 2.2.4 (beides Open Source Software) installierte, kam ich auf die verrückte Idee, zu versuchen, damit den XProfan-Interpreter zu kompilieren. Wenn das ginge, könnte man eventuell ja den Source des Interpreters auch als Open Source frei geben ...
Den Compiler auf möglichst große Delphi Kompatibilität eingestellt und los geht's ... bis zur ersten Fehlermeldung.
So 100%ig kompatibel ist es denn doch nicht. Ein Beispiel: Bei einigen API-Funktionen, wo Delphi eine Struktur per Referenz erwartet (also die Struktur selbst als Parameter geschrieben werden muss), erwartet Free Pascal einen Zeiger auf diese Struktur. Im Einzelfall kein Akt, da es meist reicht ein @ vor den Namen zu setzen, aber in der Masse doch eher mühsam. Die FTP-Bibliotheken wollen überhaupt nicht, also wird FTP erst mal auskommentiert. Die OBJ-Dateien der PNG-Bibliothek gehen auch nicht. Ok, PNG wird zurück gestellt. Das gleiche Schicksal ereilt noch das Speichern als JPG.
Viele Stunden und einige Fallstricke später: PROFAN.EXE erfolgreich erzeugt. Und was für eine PROFAN.EXE: Trotz Angabe des Release-Modus ohne Debuginfos ist die Datei stolze 14 MB groß! Sei's drum! Beim Aufruf erscheint der Dateiauswahl Dialog und nach Auswahl einer PRF-Datei ... stürzt das Programm ab. Der Versuch mit anderen Dateien zeigt: Einige kleine Test-Programme, die nur aus CLS, PRINT, WAIT, etc bestehen, laufen wie erwartet, größere Programme mit Zugriff auf Variablen rauchen einfach ab.
Ok, sehr aufbauend war dieser Ausflug vorerst nicht, aber nach dem Release von XProfan 12 werde ich mich der Sache noch mal annehmen. Vielleicht gibt es ja irgendwann den XProfan-Interpreter als Open Source mit Quellcode ... (Ok, einige Sachen, wie z.B. die dBase-Unterstützung müssen dann aus lizenzrechtlichen Gründen außen vor bleiben. Hier hatte ich ein Softwarepaket hinzugekauft, das ich natürlich nicht weitergeben darf.)
Aber jetzt kümmere ich mich erst mal wieder um XProfan 12. Die nächste Subscriptionsversion soll noch diese Woche fertig werden.
Gruß
Roland