[fpc-devel] Announcement: Free Pascal CompilerDelphi XEPortProject (type override idea)
Skybuck Flying
skybuck2000 at hotmail.com
Thu Apr 14 16:10:26 CEST 2011
----- Original Message -----
From: "Hans-Peter Diettrich" <DrDiettrich1 at aol.com>
To: "FPC developers' list" <fpc-devel at lists.freepascal.org>
Sent: Thursday, 14 April, 2011 15:12 PM
Subject: Re: [fpc-devel] Announcement: Free Pascal CompilerDelphi
XEPortProject
> Skybuck Flying schrieb:
>
>> Anyway if somebody could take a look at all of this and make some sense
>> of it that would be great/nice, saves me some time and could clear some
>> confusion (?) ;)
>
> Before looking at your code, I'd know the role that your project plays at
> all. Is it only about making the FPC code compilable by Delphi, as the
> first stage in the FPC bootstrap?
Yes.
Plan is as follows:
1. Compile free pascal compiler sources without free pascal rtl and instead
use a "bootstrapping rtl".
The bootstrapping rtl is a mix of Delphi's own RTL (which is implicitly
present and doesn't require any additional files/sources) and any RTL
inconsistencies/extensions placed in my own "mini extension RTL" which is
currently simply called unit_skybuck_types.pas LOL.
2. Once free pascal compiler is compiled towards an executable by Delphi it
should then be possible to compile Free Pascal's own RTL with Free Pascal.
An alternative idea could be to start working on compiling the Free Pascal
RTL with Delphi as well.
This would be possible by renaming all conflicting files, so at least no
unit name conflicts like system.pas.
However if this would work is doubtfull because of potential "type
conflicts" but perhaps Delphi allows types to be "overriden" or "redeclared"
or "overloaded".
That in itself could actually be an interesting language feature/extension.
(I shall post this idea later on on usenet as well)
Such a language feature would be nice to solve unit type conflicts, for
example some unit defined TSomething and now another unit wants to define
TSomething as well, however because the unit scope is in affect this is not
an issue...
For other units it's also not an issue because they could simply write:
unit1.TSomething and unit2.TSomething however that does require putting the
unit name in front of it.
Perhaps a type override could specify which TSomething to prevail for
example:
uses
unit1;
unit2;
type
TSomething = unit2.TSomething; override;
Then in the rest of the unit TSomething from unit2 would be used without
having to write Unit2.TSomething all the time.
It could also have written the following:
TSomething = SomethingElse; override;
This will override the type from unit1 and unit2 so that unit3 can use that
namespace/type for itself.
3. Once the RTL is compiled use the original RTL sources and/or RTL binaries
to recompile the free pascal compiler so it's fully self-hosting and
self-compiling.
(Etc)
(I am a little bit exciting about this potential new language feature so I
am cutting this short, but this is basically the plan ;) =D).
> In this case it would be easier to use an older Delphi commandline
> compiler, from the time before the Ansi-To-Unicode move, or simply an
I don't do command line compiling, I hate it, working with the command line
is freaking slow.
I don't think ansi will be much of a problem, it's kinda cool to have a
unicode compiler...
Perhaps it will be the first in the world, or perhaps not... who knows (for
real lol) ?
> legacy FPC. You also could try to make the FPC sources compile by gcc -
The whole idea is to not require FPC to do any development, all development
done on/in Delphi IDE and then final stage compile with FPC for
non-supported-delphi-platforms.
GNU Compilers are slow, furthermore they are not object-oriented as far as I
know/last time I checked so they totally out-of-the-question.
The least I would want is record with properties support, not yet sure if
Free Pascal has that record-language-feature but if not then Tobject could
be used for that.
And thus oo needed.
Furthermore class support is nice.
> but I'd delay any such attempts to the time, when there doesn't exist any
> immediately applicable compiler any more.
Let me know if there is a "pascal to c" converter or "object pascal to c
converter" or "object/pascal to cuda/opencl/glsl/cg converter" because as
far as I know it don't exist or it's really shitty (delphi to c converter).
In other words the time for me has already come to attempt it ;) =D and thus
this project came to be ! ;) =D and ofcourse it will be most handy for the
future.
And now I go post that language/type override idea ;)
Bye,
Skybuck.
More information about the fpc-devel
mailing list