[fpc-pascal]Synapse for FPC

Lukas Gebauer gebylist at mlp.cz
Thu Jul 24 08:44:14 CEST 2003


> > But is is not easy! I create my code on Delphi3, and it working on
> > all higher versions without any modification!
> And does it work on lower versions without any modification? Otherwise
> you still don't support multiple versions.

what? I support Delphi 3, 4, 5, 6 and 7... is is not multiple
versions? And for this support I not need any IFDEFS!

I maybe also supports Delphi 2, but I not tested this for long time,
I cannot confirm this. I cannot support Delphi 1, because delphi 1 is
for ANOTHER operating system platform. (It is for Win16, not for
Win32!)

> > It is same for Kylixes!
> > I have only one version of sources, and this sources working under
> > Kylix with very small modifications. It is very easy!
> Hmm, I actually saw a lot of ifdef linux in synapse :-) More than ever
> will be needed for e.g. FPC/win32 :-)

Look to this deeply. Lot of LINUX IFDEFS is for FPC! Otherwise LINUX
IFDEFS is in synsock.pas, because this unit hides platform differents
on sockets for rest of my library. Other IFDEFS is minor!

(and this is for huge platform differents, for example: Linux compute
checksum of ICMPv6, but under Windows must compute by your
hands...etc. Sorry, but create special library for platform
independent ICMPv6 checksum computing is not right way.. it only
create tons of other units... ;-()

> > When I porting Synapse into FPC, then i find lot of incompatibilities
> > between Win32FPC and LinuxFPC. For example, look to Kylix
> > sysutils.pas... in FPC is not here lot of stuffs!
> Stuff that was there in D3? Don't forget that basically the _fixes_ (1.0.x)
> branch delphi compability is roughly D2-D4 level! (though michael added
> quite some later stuff from time to time from later 1.0.x versions)

I know, some stuffs from newer versions is added by my requests.
;-)))
But when I porting Synapse to FPC, I found lot of incompatibilities
with my D3 (and with all higher versiopns of Delphi too!)...

For little example: On Delphi workd exists structure TSystemTime.
Thjis is defined in Windows.pas, and all related time functions on
delphi using this structure. For example, lot of functions inside
sysutils.pas. it allows get system time by Win32 API call and then
you can handle returned value by lot of functions in Sysutils.pas.
This is great...

Now Look to FPC: windows.pas have one TSystemTime record... and
sysutils using another TSystemTime structure. Two different
structures with same name! Now I must get system time by API call, I
must CONVERT IT to another structure... and then I can continue.

All this and similar problems is reported by me to Michael. He really
very help me with porting of Synapse by adding lot of stuffs, what is
missing and I need it.

> Also keep in mind that FPC is aiming for much more platforms than Delphi
> ever will. That's a strength of FPC, but no strength comes without
> compromises.

I know, it is not easy.

here is tw ways, and both is needed:

1. easy to create multipltforms programs. You need lot of platform
independent units.

2. but someone not need multiplatform compatibility, they need use
existing code from delphi. For delphi exists very lot of code, Delphi
is biggest pascal community on world, I think.

I say, multiplatform compatibility is important, but compatibility
with delphi is important too! Maximum compatbility with Delphi is
very strategic.

> We have no other choice, since we all have day jobs.
[...]
I know, you not need taling me about hard live in opensource
community. I am opensource developer too, I have same problems as
you. ;-)

[...]
> I'd suggest to leave the combination of win32 and Delphi intact. FPC's
> win32api can better be brought in sync with Delphi's in time, there is not
> much reason not to. I would move it to use includefiles to make readability
> of the synsock file a bit better.

As I say here before, I PLAN to rewrite my synsock! You not need
convincing me aboyt thinks what I know. ;-) I only explain here, why
it is not yet rewrited.



--
Lukas Gebauer.

E-mail: gebauerl at mlp.cz
http://www.ararat.cz/synapse/ - Ararat Synapse - TCP/IP Lib.




More information about the fpc-pascal mailing list