View Issue Details

IDProjectCategoryView StatusLast Update
0034899PackagesPackagespublic2019-10-13 09:31
ReporterZeljko AvramovicAssigned ToJuha Manninen 
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Platform32bit Lazarus 2.0 RC3, FPC 3.0.5OSWindowsOS Version10 x64
Product Version2.0RC3Product Build 
Target VersionFixed in Version 
Summary0034899: Docked form editor does not work
Descriptionsparta_DockedFormEditor breaks and does not allow any further rebuilding of IDE
Steps To ReproduceInstall sparta_DockedFormEditor as one of the first packages in docked IDE. Next install 10-15 packages via OPM, and at one moment you will not be able to rebuild IDE because of the following error:

"sparta_multiplyresizer.pas(80,12) Fatal: Cannot find sparta_MultiplyResizer used by sparta_MDI, incompatible ppu=C:\Prg\Lazarus\FixesAll\lazarus\components\sparta\mdi\lib\i386-win32\sparta_multiplyresizer.ppu, package sparta_MDI"

After uninstalling all sparta packages problem was gone and I could continue with other packages, but embedded form editing is lost. Once this problem shows, it is always reproducible when sparta_DockedFormEditor package installation is tried.

sparta_DockedFormEditor is not the only package that suffers from this problem, as I have seen some others with the same behavior (incompatible ppu) - but it is the most important one since without it we do not have embedded form editor.
Additional InformationGenerics.Collections package is suspected for this behavior:

https://forum.lazarus.freepascal.org/index.php/topic,43665.msg308105.html#msg308105
https://forum.lazarus.freepascal.org/index.php/topic,43665.msg308523.html#msg308523
Tags2.0, build all, packages
Fixed in Revisionr62042
LazTarget-
WidgetsetWin32/Win64
Attached Files

Relationships

related to 0035721 resolvedJuha Manninen Can't install sparta_DockedFormEditor 

Activities

Akira1364

2019-01-19 23:33

reporter   ~0113497

Last edited: 2019-01-19 23:54

View 4 revisions

One thing to point out here is that the Lazarus package version of Generics.Collections needs to be gotten rid of completely at some point soon-ish anyways, because Generics.Collections has been a part of trunk FPC for quite a while now.

The Lazarus version is also AFAIK rather outdated compared to the trunk version (which works perfectly fine with Sparta Docked Form Editor, in my experience.)

For now, you might want to try replacing the files in the "generics" subdirectory of the "sparta" directory with the up-to-date ones from the trunk "rtl-generics" package.

Also I feel like this is more likely to be an issue with generics in general in the older version of FPC, that has been fixed in trunk at some point since.

Zeljko Avramovic

2019-01-20 02:56

reporter   ~0113508

Last edited: 2019-01-20 02:58

View 3 revisions

I replaced all generics.*.pas files from \lazarus\components\sparta\generics\source with \fpcsrc\packages\rtl-generics\src ones from trunk downloaded at the beginning of December, and after manual successful recompiling of sparta_generics.lpk, sparta_mdi.lpk, and sparta_dockedformeditor.lpk, I added sparta_dockedformeditor package to IDE and tried IDE clean rebuild but error was the same (incompatible ppu):
...
Warning: Recompiling sparta_MultiplyResizer, checksum changed for Generics.Collections
sparta_multiplyresizer.pas(80,12) Fatal: Cannot find sparta_MultiplyResizer used by sparta_MDI, incompatible ppu=C:\PRG\Lazarus\FixesAll\lazarus\components\sparta\mdi\lib\i386-win32\sparta_multiplyresizer.ppu, package sparta_MDI

First thing I do on fresh Lazarus is to add anchor docking package and sparta docked form editor. That goes well and embedded form editor works. But after installing more and more packages, at one moment (maybe at installing something that uses generics?) I am not able to rebuild the IDE any more because of the reported error. If I uninstall sparta docked form editor package I can rebuild IDE and continue with installation of other packages.

Btw. I wanted to change severity for this issue from minor to something heavier, but couldn't find the way.

Juha Manninen

2019-01-22 08:16

developer   ~0113562

Does FPC 3.0.5 have Generics.Collections?

I guess conditional compilation must be added for Generics.Collections.
It should be used from FPC library when available.

Zeljko Avramovic

2019-07-05 15:26

reporter   ~0117083

Last edited: 2019-07-05 15:29

View 3 revisions

UPDATE: Workaround found.

"incompatible ppu" error comes after already having tons of packages and then trying to add some new package. IDE refuses rebuilding with "incompatible ppu" error for some old package that previously worked. It was sometimes already mentioned Sparta package, sometimes BGRAbitmap, and sometimes some other package. Once an error shows for some package it stays with that package. It goes away only if errored package is uninstalled, but pretty soon after adding more packages some other old package goes into error, and it has to be uninstalled too. Workaround is found that so far worked each time I tried (about 25-30 times). Workaround is to enter "Configure Build Lazarus" IDE form, check "Clean common files" (it does not work with "Automatically" or "Clean All"), check "Switch after building to automatically", and build IDE. After that I can continue adding packages normally. When "incompatible ppu" error shows again (after adding 10-15 packages) I repeat the procedure and everything goes back to normal.

P.S.: This work around was tested on Win10x64 32-bit Lazarus 2.0.3 and FPC 3.2.0 fixes. IDE building options were -O2 -g- -Xs -CpPENTIUM4 -CfSSE3.

Zeljko Avramovic

2019-09-13 09:41

reporter   ~0118057

Last edited: 2019-09-13 09:42

View 3 revisions

Here is the summary of "Incompatible PPU" bug, with latest update shown at https://forum.lazarus.freepascal.org/index.php/topic,34297.msg333479.html#msg333479:

- I have some NewPackage that uses already compiled/installed OldPackage. When I try to install NewPackage Lazarus complains that PPU from OldPackage is not compatible. It happens first time after adding about 1/3 of the OPM packages that can be installed with current LAZ/FPC combo. Then I have to manually apply workaround to be able to continue installation of packages. Then after 5-10 packages it strikes again and the same workaround helps again. It repeats like that. PPU bug seams to prefer some packages just a little bit, but there is no rule and affected package may be random. Bug seams to strike earlier if I use -O3 instead of -O2. My "optimal" compile switches are "-O2 -g- -Xs -CpPENTIUMM -CfSSE3" but bug shows even with no optimization at all.
- Here is the mentioned workaround: https://forum.lazarus.freepascal.org/index.php/topic,43646.msg326093.html#msg326093
- Here is some relevant discussion from long time ago: https://forum.lazarus.freepascal.org/index.php/topic,43665.msg308117.html#msg308117

My latest test was on LAZ trunk and FPC trunk. Before that with LAZ trunk and FPC 3.2.0. All the same. It was also tested with official LAZ, and also with LAZ fixes and FPC fixes and the only difference is that I had to patch FPC 3.0.4 or 3.0.5 first to remove 2GB Win32 limit because that limit was hitting before PPU bug showed. All tests were run on Win10x64 and all tested LAZ and FPC were 32bit.

Juha Manninen

2019-10-13 09:31

developer   ~0118547

I renamed the local copy of Generics.Collections as sparta_Generics.Collections. It should solve the name clash.
With FPC 3.2.0 or higher Generics.Collections comes directly from its sources.
Please test.

Issue History

Date Modified Username Field Change
2019-01-19 00:49 Zeljko Avramovic New Issue
2019-01-19 23:33 Akira1364 Note Added: 0113497
2019-01-19 23:36 Akira1364 Note Edited: 0113497 View Revisions
2019-01-19 23:37 Akira1364 Note Edited: 0113497 View Revisions
2019-01-19 23:54 Akira1364 Note Edited: 0113497 View Revisions
2019-01-20 02:56 Zeljko Avramovic Note Added: 0113508
2019-01-20 02:58 Zeljko Avramovic Note Edited: 0113508 View Revisions
2019-01-20 02:58 Zeljko Avramovic Note Edited: 0113508 View Revisions
2019-01-22 08:16 Juha Manninen Note Added: 0113562
2019-07-05 15:26 Zeljko Avramovic Note Added: 0117083
2019-07-05 15:27 Zeljko Avramovic Note Edited: 0117083 View Revisions
2019-07-05 15:29 Zeljko Avramovic Note Edited: 0117083 View Revisions
2019-09-13 09:41 Zeljko Avramovic Note Added: 0118057
2019-09-13 09:41 Zeljko Avramovic Note Edited: 0118057 View Revisions
2019-09-13 09:42 Zeljko Avramovic Note Edited: 0118057 View Revisions
2019-09-13 09:45 Zeljko Avramovic Tag Attached: 2.0
2019-09-13 09:45 Zeljko Avramovic Tag Attached: packages
2019-09-13 09:45 Zeljko Avramovic Tag Attached: build all
2019-10-06 10:49 Juha Manninen Relationship added related to 0035721
2019-10-13 09:28 Juha Manninen Assigned To => Juha Manninen
2019-10-13 09:28 Juha Manninen Status new => assigned
2019-10-13 09:31 Juha Manninen Status assigned => resolved
2019-10-13 09:31 Juha Manninen Resolution open => fixed
2019-10-13 09:31 Juha Manninen Fixed in Revision => r62042
2019-10-13 09:31 Juha Manninen LazTarget => -
2019-10-13 09:31 Juha Manninen Widgetset Win32/Win64 => Win32/Win64
2019-10-13 09:31 Juha Manninen Note Added: 0118547