View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0034899||Packages||Packages||public||2019-01-19 00:49||2019-10-13 09:31|
|Reporter||Zeljko Avramovic||Assigned To||Juha Manninen|
|Platform||32bit Lazarus 2.0 RC3, FPC 3.0.5||OS||Windows||OS Version||10 x64|
|Product Version||2.0RC3||Product Build|
|Target Version||Fixed in Version|
|Summary||0034899: Docked form editor does not work|
|Description||sparta_DockedFormEditor breaks and does not allow any further rebuilding of IDE|
|Steps To Reproduce||Install 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 Information||Generics.Collections package is suspected for this behavior:|
|Tags||2.0, build all, packages|
|Fixed in Revision||r62042|
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.
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.
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.
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.
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.
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.
|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|