Vielleicht sollte man doch mal einen Fork von FPC erstellen, wo man direkt vom aktuellen Delphi migrieren kann. Ist das alles wirklich so komplex?
Ein Fork würde dir da nicht all zu viel nützen, da dennoch viele der aktuellen Delphi Features erst implementiert werden müssten. Hier ist die Liste derer, die ich weiß ("*" bedeutet, dass daran aktuell mehr oder weniger aktiv gearbeitet wird):
- Delphi kompatible Generics*
- Extended RTTI (+ RTTI Unit mit deren ganzen Spielereien)
- Anonymous Functions*
- Attributes*
- Dynamic Runtime Packages
- Unicode-fähige RTL/FCL* (damit wir bestimmte Plattformen von String=AnsiString auf String=UnicodeString umstellen können)
- Units der RTL/FCL Delphi kompatibel erweitern (z.B. Unit SyncObjs)
Da ist es geschickter diese gleich in FPC statt in einem Fork zu implementieren, dann haben alle was davon... Die Arbeit sich in FPC reinzuarbeiten hätte man so oder so und wir akzeptieren übrigens durchaus Patches für solche Features oder richten einen
SVN Branch ein, wo man sich austoben kann (die Anonymous Functions werden zum Beispiel von jemanden implementiert, der kein Core Entwickler ist). Man sollte nur ein paar Kleinigkeiten beachten, aber ansonsten hat man da relativ freie Hand.
Zitat von
sh17:
RemObjects schaffen das ja auch. Und wieviel arbeiten dort am Compiler? Wieviele Plattformen unterstützen die?
Wichtigster Punkt: Sie werden dafür bezahlt an sowas zu arbeiten. Im Gegensatz dazu arbeiten wir alle in unserer Freizeit als Hobby an FPC. Zu den unterstützten Plattformen von Oxygene (bitte korrigiert mich, falls ich falsch liege) zählen .NET, JVM und iOS (inwieweit hier Native kompiliert wird und ob i386 auch unterstützt wird kann ich nicht sagen).
Im Gegensatz dazu unterstützt Free Pascal die folgenden Plattformen:
- i386
- x86_64
- PowerPC(64)
- Sparc(64)
- Mips(64) (in Entwicklung)
- AVR (16 bit)
- AVR (32 bit) (in Entwicklung)
- M68k (inklusive Coldfire) (in Entwicklung)
- JVM/Dalvik
- ARM
- AArch64 (aka ARM 64) (in Entwicklung)
und die folgenden Betriebssysteme:
- Win32
- Win64
- WinCE
- DOS
- OS/2
- Linux
- FreeBSD
- NetBSD
- OpenBSD
- AIX
- Mac OS
- Mac OS X
- Amiga
- MorphOS
- Haiku
- Native NT API
- GameBoy Advance
- Nintendo DS
- Wii
- Android (native + Dalvik)
- Solaris
- Embedded (Entwicklung direkt auf der CPU)
Theoretisch haben wir noch ein paar weitere Betriebssysteme, aber deren Zustand weiß ich gerade nicht (Netware, QNX, BeOS, Watcom, PalmOS, Symbian).
Gruß,
Sven