[Lazarus] Runtime package (manual compilation only) forced to re-compile by a design time dependant package?

patspiper patspiper at gmail.com
Fri Apr 19 15:49:06 CEST 2013


On 17/04/13 18:32, Mattias Gaertner wrote:

> Yes, it was more a reflex than a well thought answer.
> Manually compiled packages do not follow the recommendations. So I
> guess it will be hard to write an analyzer that gives the right
> advice.
> For packages that share source directories the advice is easy, but
> maybe not pleasant.
I would suggest checking the package and perhaps projects as well 
against bad practices, and warn accordingly. the below is an initial 
list that I could think of:
- If the package is marked as anything other than 'rebuild automatically'
- If the package or project share the same folder as a required package
- If the package uses units or include files that are not included 
explicitly in the package. This is because any change to such code 
should trigger the need for recompilation. Unlisted code files are not 
checked as far as I understand.

>> Hence, the cycle was to inspect IDE internals, rebuild the
>> IDE, and check the messages window. So I had an insight on what was
>> supposed to be recompiled and most importantly why, and compared that
>> with the actual compilation.
>>> You can see in the stdout log, why something was compiled.
>> I believe the terminal (from which I launch startlazarus) is incapable
>> of buffering so many lines. Are you referring to that terminal log, or
>> to piping the output to a log file?
> You can pass --debug-log=log.txt as parameter.
I have that already as an option in my Lazarus launch script, but it 
requires a re-launch of the IDE. I use it for extreme cases.
> Or use a better terminal. ;)
I use the Ubuntu default Gnome Terminal, and have just discovered (now) 
that its history capacity is configurable! Anyway, what terminal flavour 
do you recommend?
>
>
>>>> This relates
>>>> mostly to user packages sharing the same folder thus forcing unnecessary
>>>> units recompilation, include files not listed explicitly in packages and
>>>> thus not causing automatic recompilation, etc...
>>> What has this to do with inherited compilation needs?
>>> Maybe you want a best practices analyzer for projects/packages?
>> Not to that extent, but I find the IDE internals to be a good learning
>> aid, and gives a good insight on the internals under the hood. It helps
>> as well in debugging issues which might stem from bad practices,
>> misunderstanding of the package mechanism, or plain bugs.
> Yes, and when such dialog matures enough it becomes a normal dialog.
> Like the "Package links".
Exactly.

Stephano




More information about the Lazarus mailing list