[fpc-devel] initialization order of units
J. Gareth Moreton
gareth at moreton-family.com
Fri Oct 23 01:40:44 CEST 2020
This is just my personal opinion, but I do think that using
"initialization" is risky if it uses anything outside of the unit, and
hence you should minimise any inter-dependencies. If I had to suggest a
concrete workaround, it would be a initialisation routine that you call
manually or as part of an object constructor, although it ends up
requiring a bit more work for those who use the unit.
Sorry I can't be of much more help.
Gareth aka. Kit
On 22/10/2020 22:24, Florian Klämpfl via fpc-devel wrote:
> Am 22.10.20 um 23:04 schrieb Pascal Riekenberg via fpc-devel:
>>> Jonas Maebe via fpc-devel <fpc-devel at lists.freepascal.org> hat am
>>> 22.10.2020 22:28 geschrieben:
>>>
>>> On 22/10/2020 21:35, Pascal Riekenberg via fpc-devel wrote:
>>>> Have there been any changes to the initialization order of units in
>>>> the
>>>> last 6 month?
>>>> I have a complex project with multiple units with initialization
>>>> section. And now
>>>> one of those units does not get initialized before it is used by the
>>>> initialization part of
>>>> an other unit. This worked at the beginning of the year!
>>>
>>> It might be caused the fix for
>>> https://bugs.freepascal.org/view.php?id=32352. Keep in mind that if
>>> there are uses-cycles via the implementation section, the
>>> initialisation
>>> order of the involved units is undefined.
>>
>> There it is again: my pet project: Why doesn't pascal allow circular
>> unit references (at least for classes, like forwards)!
>> I like pascal very much but this is the biggest annoyance!
>> You always have to work around this (put multiple classes in one
>> unit, create interface classes, ...). And now this:
>>
>> I have such cycles, but it worked before.
>> I removed this cycles and it worked as expected.
>>
>> Isn't there a way to force the order?
>>
>> Why isn't it initialized first even if the unit is the first after
>> Forms in the program?
>>
>> If there are uses-cycles via the implementation section why doesn't
>> fpc prioritize interface order?
>
> Basically because of this:
>
> https://bugs.freepascal.org/view.php?id=32352#c118712
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
More information about the fpc-devel
mailing list