[fpc-pascal] Windows unit and SyncObjs unit clash

Tomas Hajny XHajT03 at mbox.vol.cz
Thu Mar 27 11:03:24 CET 2008


On Wed, March 26, 2008 14:43, Marco van de Voort wrote:
>> On Wed, 26 Mar 2008, Graeme Geldenhuys wrote:
>>
>> > On 26/03/2008, Michael Van Canneyt <michael at freepascal.org> wrote:
>> > >
>> > > Yes, use fully qualified names.
>> > >
>> > >  windows.tcriticalsection.
>> > >  syncobjs.tcriticalsection.
>> >
>> >
>> > Why doesn't Delphi compiler complain about it?  A quick search
>> > revealed that Delphi's Windows.pas unit doesn't contain a
>> > TCriticalSection type definition, so why does FPC's Windows.pas unit?
>> > Why must FPC have two TCriticalSection type definitions?
>>
>> It was translated automatically with the h2pas tool, probably with the
>> -t
>> option, which prepends a T to all types. For backwards compatibility we
>> cannot revert this.
>
> Hmm, didn't older (<6) versions simply have this, and did synobjs get
> introduced later? In that case, if Delphi can break compat, so can we.

Maybe we could mark the declaration in unit Windows deprecated and later
remove in 2.5.x (or whatever that becomes)?

Tomas





More information about the fpc-pascal mailing list