Recent

Author Topic: [SOLVED] Is this a 1.8 RC4 bug?  (Read 1514 times)

EganSolo

  • Sr. Member
  • ****
  • Posts: 290
[SOLVED] Is this a 1.8 RC4 bug?
« on: August 19, 2017, 07:49:40 am »
Now this is weird:
  • I just upgraded from 1.6.4 to 1.8 RC4 64 bit. I'm on Windows 10.
  • I had an older version of the RegExp unit which was included in one of my packages. I removed it since it has been available for a while in fpc.
  • I try to recompile a GUI test application for my own package. This gui test app does not use SynEdit and does not use RegExp. This is important for the next step.
  • The compilation fails with the following two messages:
    • Warning: Recompiling SynEditSearch, checksum changed for RegExpr
    • synedit.pp(87,17) Fatal: Cannot find SynEditSearch used by SynEdit, incompatible ppu=C:\lazarus\components\synedit\units\x86_64-win64\win32\syneditsearch.ppu, package SynEdit
  • I'm not including SynEdit into my application. Still, I recompiled the SynEdit package: it recompiles without a hitch. I cleaned-up and rebuilt Lazarus and the error still persists.
  • I've cleaned-up the win32\ folder and recompiled. No dice.

I'm not using RegExp, SynEdit package compiles just fine but when I try to compile my program, I get that error.

Just for kicks, here's the body of the main program
Code: Pascal  [Select][+][-]
  1. program aiUtilsTestProject;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. uses
  6.   Interfaces, Forms, GuiTestRunner, fpcunittestrunner, Test_aiStringList;
  7.  
  8. {$R *.res}
  9.  
  10. begin
  11.   {$IfDef MemLeaksOn}
  12.    SetHeapTraceOutput('C:\Dev\dev-bin\MemLeak\aiUtilsTestProject.trc');
  13.   {$EndIf}
  14.   Application.Initialize;
  15.   Application.CreateForm(TGuiTestRunner, TestRunner);
  16.   Application.Run;
  17. end.
  18.  

Any suggestion?
« Last Edit: August 19, 2017, 07:57:47 am by EganSolo »

EganSolo

  • Sr. Member
  • ****
  • Posts: 290
Re: Is this a 1.8 RC4 bug?
« Reply #1 on: August 19, 2017, 07:57:16 am »
This is weird but it's not a bug.
I still don't understand why but somehow the compilation process grabbed my old copy of RegExpr even though I had excluded it from my package and dumped it into the x64 folder for the project. Then somehow, and I stil don't know why, the compiler decided to recompile part of SynEdit even though I'm not using it (but then maybe the gui for the Test framework uses it?).

What's odd is that I did several compile clean but the cleaning process did not delete the offending .ppo file from the directory. Once I took it out manually, the program recompiled just fine.

So, yeah, it's a solution without comprehension... but I'll take it over being stuck.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4467
  • I like bugs.
Re: Is this a 1.8 RC4 bug?
« Reply #2 on: August 19, 2017, 11:12:53 am »
What's odd is that I did several compile clean but the cleaning process did not delete the offending .ppo file from the directory. Once I took it out manually, the program recompiled just fine.
It was the right solution. Usually the "Clean all" checkbox in Configure "Build Lazarus" window does the job.
In general, it is better to fully uninstall old and then install new when changing a major version. IIRC the Windows installer has an option for it.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

 

TinyPortal © 2005-2018