[Crossposted to delphi.non-technical, as parts of the topic also should be interesting to non-Kylix users, follow-up set to kylix.non-technial]
INTRODUCTION
As some of you may know, I'm the author of CrossKylix (http://crosskylix.untergrund.net), an add-in for Delphi 6/7/2005 that allows crosscompiling Delphi applications to Linux.
In addition to the CrossKylix project, which still is maintained and supported, I've recently launched a sister project called CrossFPC.
ABOUT CROSSFPC
CrossFPC is an IDE addin for Delphi 6/7/2005 (and future versions) that allows to use the FreePascal compiler as a compile target inside the Delphi IDE.
CrossFPC was born out of the need to get more target platforms supported for Delphi applications, and also to future-proof the Linux target in case Borlands decides not to update Kylix in the future. The goal is to enable cross-compilation using the FPC compiler with none to minimal required changes in application code.
STATUS OF CROSSFPC
Currently the main focus is to use CrossFPC to cross-compile Delphi applications to Linux, more or less the same way as CrossKylix does, but this time using the FPC compiler.
To make this possible I'm closely working together with the FPC team, who are doing a great job at making FPC more compatible and helping me out. There also is a small collection of Kylix compatibility units.
The current status of the project is that CrossFPC is able to cross-compile console applications to Linux. The resulting binaries are stable and run fine on all Linux distributions. Most non-visual parts of the Delphi/Kylix RTL/VCL/CLX are working already. Currently still missing is support for GUI applications and database stuff (dbexpress).
ROADMAP
Here is a vague road-map for CrossFPC:
- Within next 4 weeks: Release a public beta that supports cross-compiling non-visual applications to Linux.
- Within next 2 months: Release a public beta that supports cross-compiling non-visual applications including database support to Linux.
- Within next 3 months: Release a public beta that also supports cross-compiling non-visual applications to 64 Bit Linux (AMD64)
- Within next 6 months: Release a version that supports CLX/FreeCLX visual applications.
- Long-term: Possibly support Win64, MacOS X, FreeBSD, Solaris and others as cross-compile target platforms. This mostly depends on if I find maintainers for these platforms.
HELP WANTED
I'm looking for motivated helpers for the project. The main areas of work are improving the compatibility of several FPC units with their Delphi/Kylix counterparts and writing "glue" units where needed. To help you should be really experienced with low-level Delphi/Kylix code, and Linux. Right now I'm looking for someone who will work on the compatibility of the libc and database units. If you think you have got the time, energy and will to contribute to this project, please mail me at sc...@untergrund.net. Delphi/Kylix third-party tool vendors who wish to add support for CrossFPC to their product(s) also are welcome to join the internal beta-test.
WHERE TO GET MORE INFORMATION / DOWNLOAD
Nowhere. CrossFPC is not yet available to the public, but only to the development team. As soon a public beta is ready, there will be an announcement. Please do not mail me about how to get a copy of CrossFPC, you won't get one unless you join the development team.
DISCLAIMER / LICENSE / LEGAL STUFF
This project is not supported by, endorsed by or in any way related to Borland. The project is copyrighted by Simon Kissel and licensed under a BSD license. The CrossFPC distribution includes libraries copyrighted by the FreePascal team and licensed under LGPL and GPL. CrossFPC includes glibc libaries licensed under GPL. The licenses used within CrossFPC does not restrict the usage or distribution of compiled applications. CrossFPC does not include Borland-copyrighted source material. A licensed copy of Borlands Delphi product is required to use CrossFPC.
> To make this possible I'm closely working together with the FPC team, who are doing a great > job at making FPC more compatible and helping me out. There also is a small collection of > Kylix compatibility units.
Sounds like a good idea to make FPC more Delphi compatible. I remember that Andreas was trying to achieve this, but the FPC team was not very fond of this idea (afaik).
For me personally, the CrossXXX approach is not very interesting by itself, because I'm on Linux only. But once FPC is more compatible, why not write a nice little Opensource Kylix-IDE replacement without Wine dependencies?
> For me personally, the CrossXXX approach is not very interesting by > itself, because I'm on Linux only. But once FPC is more compatible, why > not write a nice little Opensource Kylix-IDE replacement without Wine > dependencies?
IMO Simon's idea is better/easier to achieve, we stay on existing & stable IDE expanding only compiler/linker support. Btw. There is a Lazarus project, a Delphi-like clone based on FPC.
> Sounds like a good idea to make FPC more Delphi compatible. > I remember that Andreas was trying to achieve this, but the FPC team was > not very fond of this idea (afaik).
We are now all working together happily.
> For me personally, the CrossXXX approach is not very interesting by > itself, because I'm on Linux only. But once FPC is more compatible, why > not write a nice little Opensource Kylix-IDE replacement without Wine > dependencies?
Yes. The outcome of the CrossFPC project will also benefit other projects. The compatibility/glue units produced of course also will be usefull without the CrossFPC IDE plugin.
Very nice idea! CrossFPC will open new wide horizons to Delphi such as very well operating system line up. For me it's brilliant since OP is my primary language. I'm not experienced on low-level Delphi/Kylix code that I'm thinking of and I'm afraid I can't help much, buf If you'll need some higher-level stuff count me in.
theo wrote: > Sounds like a good idea to make FPC more Delphi compatible. > I remember that Andreas was trying to achieve this, but the FPC team was > not very fond of this idea (afaik).
No I never tried this. What I had done was to port the LCL (Lazarus Class Library) to Delphi.
> IMO Simon's idea is better/easier to achieve, we stay on existing & stable > IDE
Of course. Writing an IDE on Linux is a different project. I just wanted to say that Simon's idea and (later) a Linux-IDE would make the whole thing future proof on Linux.
> expanding only compiler/linker support. Btw. There is a Lazarus project, a > Delphi-like > clone based on FPC.
Lazarus can only be as good as the LCL. And it will have the GTK-Look on Linux for the foreseeable future.
I think I know what I had done. And that was compiling the LCL with Delphi 6. One of the main reason why the FPC and Lazarus team rejected the LCL for Delphi was that the Delphi port required many IFDEFs.
> I think I know what I had done. And that was compiling the LCL with Delphi > 6. One of the main reason why the FPC and Lazarus team rejected the LCL > for Delphi was that the Delphi port required many IFDEFs.
Sorry, I've just read that post again. You're right, of course ;-)
What you say about writing some kind of parser/state-machine which will take Delphi code and translate it to FPC-friendly (or make FPC more Delphi complatible). At this point we don't need to make any changes in code, and CrossFPC will be rather universal. IMO we should stay on Delphi syntax which is de facto standard in OP world.
Simon Kissel wrote: > CrossFPC is an IDE addin for Delphi 6/7/2005 (and future versions) > that allows to use the FreePascal compiler as a compile target inside the > Delphi IDE.
While this is an interesting idea there is one big problem with this (as well as with crosskylix): No source level debugger support. As long as I can't just use the debugger within the Delphi IDE debugging a program running on a different platform this won't be much more than just that: An interesting idea. (And of course I would like to ditch Windows completely and develop with Kylix (or Delphi 2005 for Linux) for other platforms as well.
btw: Is there Eclipse support for Object Pascal yet?
> What you say about writing some kind of parser/state-machine > which will take Delphi code and translate it to FPC-friendly > (or make FPC more Delphi complatible). At this point we > don't need to make any changes in code, and CrossFPC > will be rather universal. IMO we should stay on Delphi syntax > which is de facto standard in OP world.
That would be a step back. The goal is to simply compile Delphi code with FPC. No parser/state-machine/translation needed.
> > CrossFPC is an IDE addin for Delphi 6/7/2005 (and future versions) > > that allows to use the FreePascal compiler as a compile target inside the > > Delphi IDE.
> While this is an interesting idea there is one big problem with this (as > well as with crosskylix): No source level debugger support. As long as I > can't just use the debugger within the Delphi IDE debugging a program > running on a different platform this won't be much more than just that: An > interesting idea.
Actually this is very well doable. All that's needed is a remote debugger on Linux. From Delphi 2005 on there also is a clean interface to integrate this.
I've not come round to do more on this than some basic testing, but it's doable.
Right now the option to use gdb (which support Pascal these days) on the target platform exists.
> (And of course I would like to ditch Windows completely > and develop with Kylix (or Delphi 2005 for Linux) for other platforms as > well.
Well, neither CrossFPC nor CrossKylix is meant for you then. Only Borland could help you on the topic of a new Kylix version.
And this thread isn't really about "How nice would the world be if Borland listened to its Linux customers".
On 2005-05-08, Piotr Szturmaj <gacek...@tlen.pl> wrote:
>>That would be a step back. The goal is to simply compile >>Delphi code with FPC. No parser/state-machine/translation needed.
> Yes, the goal is to compile without code change but FCP must be complatible > with Delphi.
So the may push of efforts should be directed in that direction, not in the direction of temporary ugly hacks as translations.
No real common errors are left on the pure parser level. New ones that emerge are dealt with swiftly.
The remaining problems are nearly all deep internal or missing RTL routines - an issue with VMT layout, which is important for COM interfaces, - resources need to be implemented for non windows targets. And compatible. - while there is a reasonably initial implementation of variants, more needs to be done, - vararrays support is new and not complete. - custom variants are missing.
Problem is a bit that FPC core are not really into COM and variants, so work only progresses slowly, as issues are discovered one at a time. Also working cleanroom slows progres of course.
This could be accelerated by sb with a good general knowledge about OLE/COM and variants and customvariants to help enhance the variants unit and provide an initial implementation of custom variants.
On 2005-05-08, Thomas Mueller <s...@dummzeuch.de> wrote:
> Simon Kissel wrote:
>> CrossFPC is an IDE addin for Delphi 6/7/2005 (and future versions) >> that allows to use the FreePascal compiler as a compile target inside the >> Delphi IDE.
> While this is an interesting idea there is one big problem with this (as > well as with crosskylix): No source level debugger support.
Not Cross OS. One can debug the binaries with any GDB or -frontend though, this however requires src on system.
FPC and Lazarus are debugged that way. And while not as easy as Delphi by a mile, it goes a long way with some practice.
I think Lazarus could be used to debug crossfpc programs on the target host directly, but though harsher, the commandline gdb use is probably more stable.
> As long as I can't just use the debugger within the Delphi IDE debugging a > program running on a different platform this won't be much more than just > that: An interesting idea. (And of course I would like to ditch Windows > completely and develop with Kylix (or Delphi 2005 for Linux) for other > platforms as well.
> btw: Is there Eclipse support for Object Pascal yet?
Does Eclipse provide cross-debugging at all?
I tried searching on eclipse.org, but found nothing. There used to be a kdevelop thingy though, but IIRC it was very basic only.
On 2005-05-07, Andreas Hausladen <AndreasDOTHausla...@gNOMAILmx.de> wrote:
> theo wrote:
>> Of course. Writing an IDE on Linux is a different project.
> KDevelop, Eclipse. Both have a plugin interface.
But is that suitable to something like Delphi? From what I have seen from those I somewhat doubt that.
One of the things I always miss with a lot of packages is that they separate designing a form from programming the handlers. So I from any GUI I require that to work like Delphi (or JBuilder) does.
So roughly the add a button, click the button, program the handler routine. Without much ado or naming steps.
but why not just go for the development of lazarus? this is what i see:
for CrossFPC, one needs a licensed Delphi. it's goal is the make Delphi will run on platforms that fpc runs on. the job here is to transport fpc to Delphi.
but for lazarus, the focus would be on creating components (and documentation) to meet industrial needs or catch up with Delphi achievements.
more so, among those who invested with the price tag that Delphi comes with, who would be interested in the project, given that most of them have bought delphi as it by itself is already capable of fulfilling their needs?
finally, wouldn't it be better to use the skills in improving lazarus to immitate some of delphi's features rather than to try to get delphi get what lazarus (or fpc) already has? in this way, lazarus users would be more interested when compared to the already delphi buyers/users.