Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Announcing CrossFPC / looking for helpers

95 views
Skip to first unread message

Simon Kissel

unread,
May 6, 2005, 6:32:14 PM5/6/05
to
[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.

Simon Kissel

theo

unread,
May 7, 2005, 1:09:53 PM5/7/05
to

>
> 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?

Piotr Szturmaj

unread,
May 7, 2005, 1:20:33 PM5/7/05
to
> 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.


Simon Kissel

unread,
May 7, 2005, 1:32:59 PM5/7/05
to
Theo,

> 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.

Simon

Piotr Szturmaj

unread,
May 7, 2005, 1:34:28 PM5/7/05
to
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.


Andreas Hausladen

unread,
May 7, 2005, 1:33:31 PM5/7/05
to
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.


--
Regards,

Andreas Hausladen
(http://www.kylix-patch.de.vu - unofficial Kylix 3 patches)
(http://andy.jgknet.de/blog)

theo

unread,
May 7, 2005, 1:39:13 PM5/7/05
to
Piotr Szturmaj schrieb:

>
>
> 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.

theo

unread,
May 7, 2005, 1:44:11 PM5/7/05
to
Andreas Hausladen schrieb:
> theo wrote:

>
>
> No I never tried this. What I had done was to port the LCL (Lazarus Class
> Library) to Delphi.
>
>

No, the other way round. Weren't you trying to compile the Borland
sources with FPC?
Correct me if I'm wrong.

Andreas Hausladen

unread,
May 7, 2005, 2:00:11 PM5/7/05
to
theo wrote:

> No, the other way round.

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.

theo

unread,
May 7, 2005, 2:03:25 PM5/7/05
to
Andreas Hausladen schrieb:

> theo wrote:
>
>
>>No, the other way round.
>
>
> 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 ;-)

Andreas Hausladen

unread,
May 7, 2005, 2:01:35 PM5/7/05
to
theo wrote:

> Of course. Writing an IDE on Linux is a different project.

KDevelop, Eclipse. Both have a plugin interface.

Piotr Szturmaj

unread,
May 7, 2005, 2:07:46 PM5/7/05
to
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.

Just my thoughts.


Thomas Mueller

unread,
May 8, 2005, 12:20:02 PM5/8/05
to
Hello Simon,

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?

twm

Simon Kissel

unread,
May 8, 2005, 2:50:55 PM5/8/05
to

That would be a step back. The goal is to simply compile
Delphi code with FPC. No parser/state-machine/translation needed.

Simon

Simon Kissel

unread,
May 8, 2005, 2:48:36 PM5/8/05
to
> > 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".

Simon

Piotr Szturmaj

unread,
May 8, 2005, 3:16:11 PM5/8/05
to
>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.


Marco van de Voort

unread,
May 8, 2005, 5:22:28 PM5/8/05
to

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.

Marco van de Voort

unread,
May 8, 2005, 5:31:34 PM5/8/05
to
On 2005-05-08, Thomas Mueller <sp...@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.

Marco van de Voort

unread,
May 10, 2005, 7:42:28 AM5/10/05
to
On 2005-05-07, Andreas Hausladen <AndreasDO...@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.

tony

unread,
May 15, 2005, 10:33:14 PM5/15/05
to
Would this be for console based apps only? or would I be able to compile
apps with forms as well?

This would allow 64bit compiling as well correct?

Simon Kissel

unread,
May 16, 2005, 10:40:30 AM5/16/05
to
> Would this be for console based apps only? or would I be able to compile
> apps with forms as well?

The goal is to allow - using the FreeCLX project - to also allow compilation of VCL
forms applications, yes.

> This would allow 64bit compiling as well correct?

Yes, if FreeCLX gets ported to 64bit, this also would be possible.

Simon

Aki

unread,
May 17, 2005, 1:22:33 AM5/17/05
to
the project sounds nice.

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.

just a thought...

0 new messages