Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2012-04

disable package checking

6 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Benito van der Zander

Hi,
whenever I compile a project, it first compiles/checks the dependencies:

"Compiling package FCL 1.0.1" completed
"Compiling package LazUtils 1.0" completed
"Compiling package LCLBase 1.0.1" completed
"Compiling package LCL 1.0.1" completed

Can you disable it somehow?
It takes forever (2s) and it is almost certain that the lcl doesn't change every minute.
(It also prints "TPkgManager.CheckCompileNeedDueToDependencies State file of LCL 1.0.1 is newer than state file of Project:" to the console, and after i deleted the .compiled file it prints
"TProject.DoLoadStateFile Statefile not found: ....compiled, TMainIDE.CheckIfPackageNeedsCompilation No state file for Project" shouldn't it recreate the file? even if the project compilation fails due to errors)

Benito

Reply by email

Mattias Gaertner
to Benito van der Zander
Show quoted text 7 lines
Hi, whenever I compile a project, it first compiles/checks the dependencies: "Compiling package FCL 1.0.1" completed "Compiling package LazUtils 1.0" completed "Compiling package LCLBase 1.0.1" completed "Compiling package LCL 1.0.1" completed

It should not compile everytime. It should only check and see that everything is up to date.
What Lazarus version do you use?
With current trunk you can see the reason in View / IDE internals / What needs building. With former versions you must look at the stdout, as you have already done. What reason is given for the recompile?

Show quoted text 10 lines
Can you disable it somehow? It takes forever (2s) and it is almost certain that the lcl doesn't change every minute. (It also prints "TPkgManager.CheckCompileNeedDueToDependencies State file of LCL 1.0.1 is newer than state file of Project:" to the console, and after i deleted the .compiled file it prints "TProject.DoLoadStateFile Statefile not found: ....compiled, TMainIDE.CheckIfPackageNeedsCompilation No state file for Project" shouldn't it recreate the file? even if the project compilation fails due to errors)

Yes.
I changed it to now save the state file before compiling too to avoid building clean (-B) every time.
This has no effect on compiling packages.

Mattias

Reply by email

Benito van der Zander
to Mattias Gaertner
What Lazarus version do you use?

r36661

What reason is given for the recompile?

Target: FCL 1.0.1
Build needed.
File: /opt/lazarus/packager/registration/fcl.lpk
Note: FPC unit "/home/benito/hg/components/pascal/data/pseudoxpath.pas" is newer than state file of FCL:
unit age=04/11/12 02:23:34 PM
state file age=04/11/12 02:18:35 PM

Target: LazUtils 1.0
No build needed.
File: /opt/lazarus/components/lazutils/lazutils.lpk

Target: LCLBase 1.0.1
No build needed.
File: /opt/lazarus/lcl/lclbase.lpk

Target: LCL 1.0.1
No build needed.
File: /opt/lazarus/lcl/interfaces/lcl.lpk

Target: Project
Build needed.
File:
/home/benito/hg/components/pascal/data/examples/htmlparserExampleGUI.lpi Note: State file
"/home/benito/hg/components/pascal/data/examples/htmlparserExampleGUI.compiled" of Project is missing.

What is pseudoxpath.pas doing there? That's one of my project files.

Actually, looking in the Code Browser, it seems all my project files are listed in the FCL package!

Why could that happen?
I have the paths as -Fu options in fpc.cfg; does it read the fpc.cfg and add all files it finds from there to the fcl package?

Benito

Mattias Gaertner wrote 40 lines
On Wed, 11 Apr 2012 01:47:54 +0200 Benito van der Zander wrote: > Hi, > whenever I compile a project, it first compiles/checks the dependencies: > > "Compiling package FCL 1.0.1" completed > "Compiling package LazUtils 1.0" completed > "Compiling package LCLBase 1.0.1" completed > "Compiling package LCL 1.0.1" completed It should not compile everytime. It should only check and see that everything is up to date. What Lazarus version do you use? With current trunk you can see the reason in View / IDE internals / What needs building. With former versions you must look at the stdout, as you have already done. What reason is given for the recompile? > Can you disable it somehow? > It takes forever (2s) and it is almost certain that the lcl doesn't > change every minute. > (It also prints "TPkgManager.CheckCompileNeedDueToDependencies State > file of LCL 1.0.1 is newer than state file of Project:" to the console, > and after i deleted the .compiled file it prints > "TProject.DoLoadStateFile Statefile not found: ....compiled, > TMainIDE.CheckIfPackageNeedsCompilation No state file for Project" > shouldn't it recreate the file? even if the project compilation fails > due to errors) Yes. I changed it to now save the state file before compiling too to avoid building clean (-B) every time. This has no effect on compiling packages. Mattias -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Mattias Gaertner
to Benito van der Zander
Show quoted text 22 lines
> What Lazarus version do you use? r36661 > What reason is given for the recompile? Target: FCL 1.0.1 Build needed. File: /opt/lazarus/packager/registration/fcl.lpk Note: FPC unit "/home/benito/hg/components/pascal/data/pseudoxpath.pas" is newer than state file of FCL: unit age=04/11/12 02:23:34 PM state file age=04/11/12 02:18:35 PM [...] What is pseudoxpath.pas doing there? That's one of my project files. Actually, looking in the Code Browser, it seems all my project files are listed in the FCL package! Why could that happen? I have the paths as -Fu options in fpc.cfg; does it read the fpc.cfg and add all files it finds from there to the fcl package?

Short answer: Yes.

Long answer:
Everything in fpc.cfg is globally available and can effect any package. Just like any fpc unit.
Any unit in the global search path is treated by default as coming from FPC - as a very big package. That's why the Code Browser shows the strange information. But that is merely a glitch and not the cause of the problem.
Because a global unit has changed, the next step is to check whether a ppu file needs rebuilding. This is what the compiler is doing.

Possible solutions:
1. Put your units into a package instead of into fpc.cfg. Then the IDE knows the dependencies between the units and does not need to ask the compiler.

2. Open the package fcl.lpk and set it to update "manually".

3. Wait until the IDE can check the ppu files on its own.

Mattias

Reply by email

Benito van der Zander
to Mattias Gaertner
1. Put your units into a package instead of into fpc.cfg. Then the IDE knows the dependencies between the units and does not need to ask the compiler.

Way to much trouble, in case I need to use them in some trivial test project or compile it without Lazarus

2. Open the package fcl.lpk and set it to update "manually".

Thanks, that works

Benito

Mattias Gaertner wrote 54 lines
On Wed, 11 Apr 2012 14:34:33 +0200 Benito van der Zander wrote: >> What Lazarus version do you use? > r36661 > > >> What reason is given for the recompile? > Target: FCL 1.0.1 > Build needed. > File: /opt/lazarus/packager/registration/fcl.lpk > Note: FPC unit "/home/benito/hg/components/pascal/data/pseudoxpath.pas" > is newer than state file of FCL: > unit age=04/11/12 02:23:34 PM > state file age=04/11/12 02:18:35 PM > [...] > What is pseudoxpath.pas doing there? That's one of my project files. > > Actually, looking in the Code Browser, it seems all my project files are > listed in the FCL package! > > Why could that happen? > I have the paths as -Fu options in fpc.cfg; does it read the fpc.cfg and > add all files it finds from there to the fcl package? Short answer: Yes. Long answer: Everything in fpc.cfg is globally available and can effect any package. Just like any fpc unit. Any unit in the global search path is treated by default as coming from FPC - as a very big package. That's why the Code Browser shows the strange information. But that is merely a glitch and not the cause of the problem. Because a global unit has changed, the next step is to check whether a ppu file needs rebuilding. This is what the compiler is doing. Possible solutions: 1. Put your units into a package instead of into fpc.cfg. Then the IDE knows the dependencies between the units and does not need to ask the compiler. 2. Open the package fcl.lpk and set it to update "manually". 3. Wait until the IDE can check the ppu files on its own. Mattias -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Mattias Gaertner
to Mattias Gaertner: On Wed, 11 Apr 2012 14:34:33 +0200 Short answer: Yes. Long answer: Everything in fpc.cfg…
Show quoted text 12 lines
[...] > > What reason is given for the recompile? > > Target: FCL 1.0.1 > Build needed. > File: /opt/lazarus/packager/registration/fcl.lpk > Note: FPC unit "/home/benito/hg/components/pascal/data/pseudoxpath.pas" > is newer than state file of FCL: > unit age=04/11/12 02:23:34 PM > state file age=04/11/12 02:18:35 PM >[...] > What is pseudoxpath.pas doing there? That's one of my project files.

I added a check to ignore units not in the FPC sources.

Mattias

Reply by email