[fpc-devel] FPC Delphi compatibility question...

Maxim Egorov m.v.egorov at hotmail.com
Fri Jun 19 14:34:06 CEST 2009


Jonas Maebe пишет:
>
> On 19 Jun 2009, at 13:21, Florian Klaempfl wrote:
>
>> Jonas Maebe schrieb:
>>>
>>> On 19 Jun 2009, at 12:01, Maxim Egorov wrote:
>>>
>>>> It's not true in the case of functions that return dynamic arrays,
>>>> strings or interfaces. Because of these types require special
>>>> finalization and they must be initialized to nil by default.
>>>
>>> That is an implementation detail, and not something you can rely on as
>>> far as semantics are concerned.
>>
>> Variables of those types are initialized to nil at scope entry. I'd
>> consider result as variable.
>
> Yes, but as far as I am concerned that is an implementation detail 
> (it's done because otherwise you get crashes when assigning something 
> to such variables due to the way the garbage collection is 
> implemented). This means that if you have an undefined value, the 
> compiler should be free to replace this undefined value with whatever 
> it wants (since the result is semantically undefined anyway, why not 
> make it as efficient as possible?).
>
Maybe you are right. But i guess that the current FPC implementation 
allows to find such errors more quickly. So maybe it would be useful to 
save it for debug purposes.



More information about the fpc-devel mailing list