Speziell zur
RTTI stelle ich mir dann die Frage, wie es mit den Stellen aussehen wird, bei denen man um
asm nicht mehr herum kommt bzgl der verschiedenen Targets.
Wie genau meinst du das? Die
RTTI Funktionalität besteht doch im Endeffekt nur aus High Level Funktionen/Methoden? Intern wird natürlich - falls nötig - für die Plattform passender Assemblercode (zum Beispiel aller Wahrscheinlichkeit nach für
RTTI.Invoke
) verwendet, aber das sollte den normalen Benutzer nicht wirklich tangieren...
Zitat von
Stevie:
Eine weitere Sache, die für mich interessant ist (im Hinblick auf eine FPC kompatible DSharp Version), inwieweit die
API dann kompatibel sein wird. Könnt ihr euch die bei Delphi abschauen (Lizenz?) oder wie läuft das dann? Was ich auf keinen Fall machen werde, ist tonnenweise ifdefs in meinem Code verstreuen, um FPC zu unterstützen.
Wir orientieren uns was Schnittstellen angeht an der Hilfe von Delphi (zum Beispiel die Delphi Referenz im Wiki von Embarcadero). Hiermit stellen wir sicher, dass einerseits so gut wie möglich Delphi Kompatibilität besteht und wir andererseits nicht Embarcaderos Copyright verletzen (Schnittstellen allein fallen ja nicht unters Copyright). Ich selbst verwende zum Beispiel genau aus diesem Grund die XE Starter für Tests, damit ich nicht in die Verführung komme in die Implementierung der
RTL zu schauen.
Die Korrektheit der Implementierung wird dann durch Tests sichergestellt, welche sowohl unter Delphi als auch unter FPC kompilieren/laufen können. Die Kompatibilät zu Delphi wird nur in Ausnahmefällen (zum Beispiel historische Gründe oder Multiplattformfähigkeit) gebrochen.
Gruß,
Sven