Recent

Author Topic: Testing with 3.2.4 preparation BRANCH [[Lazarus Bugfix Release 4.8]]  (Read 358 times)

jamie

  • Hero Member
  • *****
  • Posts: 7829
For anyone wanting to additionally test the upcoming FPC 3.2.4 on Windows

Snapshot of Lazarus are available, based on
- 4.8
- FPC 3.2.4 git branch

64 bit: https://sourceforge.net/projects/lazarus-snapshots/files/Window%2064/2026-06%20Lazarus%204.8%20with%20FPC%203.2.4-branch-30dd873d32/
32 bit: https://sourceforge.net/projects/lazarus-snapshots/files/Window%2032/2026-06%20Lazarus%204.8%20with%20FPC%203.2.4-branch-30dd873d32/

Code that uses the GradientDirection is gettng confused because apparently TFPCanvas now has it and that is getting used before the define in the graphics.
I was able to fix my own app but one item "BGAGraphics" uses this for gradient and fails to build without mods.
The only true wisdom is knowing you know nothing

wp

  • Hero Member
  • *****
  • Posts: 13625
Re: Lazarus Bugfix Release 4.8
« Reply #1 on: June 12, 2026, 01:25:56 am »
Grrr... Did not notice that this change made it into FPC 3.2.4 --> you must change the version check in graphics.pas:
Code: Pascal  [Select][+][-]
  1. {$IF FPC_FullVersion >= 30204}   // was: 30301
  2. type
  3.   TGradientDirection = FPCanvas.TFPGradientDirection;
  4. const
  5.   gdVertical = FPCanvas.gdVertical;
  6.   gdHorizontal = FPCanvas.gdHorizontal;
  7. {$ELSE}
  8. type
  9.   TGradientDirection = (
  10.     gdVertical,   // Fill vertical
  11.     gdHorizontal  // Fill Horizontal
  12.   );
  13. {$IFEND}

jamie

  • Hero Member
  • *****
  • Posts: 7829
Re: Lazarus Bugfix Release 4.8
« Reply #2 on: June 12, 2026, 03:51:07 am »
Grrr... Did not notice that this change made it into FPC 3.2.4 --> you must change the version check in graphics.pas:
Code: Pascal  [Select][+][-]
  1. {$IF FPC_FullVersion >= 30204}   // was: 30301
  2. type
  3.   TGradientDirection = FPCanvas.TFPGradientDirection;
  4. const
  5.   gdVertical = FPCanvas.gdVertical;
  6.   gdHorizontal = FPCanvas.gdHorizontal;
  7. {$ELSE}
  8. type
  9.   TGradientDirection = (
  10.     gdVertical,   // Fill vertical
  11.     gdHorizontal  // Fill Horizontal
  12.   );
  13. {$IFEND}

I made the changes, seems to work in both 32 and 64 bit windows.
Thank You.

Jamie
The only true wisdom is knowing you know nothing

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 12518
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Bugfix Release 4.8
« Reply #3 on: June 12, 2026, 08:53:09 am »
Grrr... Did not notice that this change made it into FPC 3.2.4 --> you must change the version check in graphics.pas:

Actually, by now 3.2.3 has it too.

CM630

  • Hero Member
  • *****
  • Posts: 1732
  • Не съм сигурен, че те разбирам.
    • http://sourceforge.net/u/cm630/profile/
Re: Lazarus Bugfix Release 4.8
« Reply #4 on: June 12, 2026, 12:44:10 pm »
With FPC 3.2.4:
Code: Pascal  [Select][+][-]
  1. var
  2. ...
  3.   nr            : LongWord absolute nrValue;   // FPC 3.0 requires IEnumvariant.next to supply a longword variable for # returned values
  4. ...
  5.  
  6.     while oEnumWMI.Next(1, objWMI, nr) = 0 do
  7.  
  8.  
I get
Error: Incompatible type for arg no. 3: Got "LongWord", expected "PULONG"

Code: Pascal  [Select][+][-]
  1. ...
  2. var
  3. ...
  4.   oEnumWMI      : IEnumvariant;
  5. ...
  6.  
  7.  


Maybe something changed in  activex.pp, I had now issues yesterday, when I updated to official Lazarus 4.8.

Code: Pascal  [Select][+][-]
  1.    IEnumVARIANT = Interface (IUnknown)
  2.      ['{00020404-0000-0000-C000-000000000046}']
  3.      {$ifndef Call_as}
  4.       Function  Next(celt: ULONG; rgVar: POLEVARIANT;  pCeltFetched: pULONG):HResult;StdCall;
  5.      {$else}
  6.       Function  Next(celt: ULONG; rgVar: POLEVARIANT;  pCeltFetched: pULONG=nil):HResult;StdCall;
  7.      {$endif}
  8.      Function  Skip(celt: ULONG):HResult;StdCall;
  9.      Function  Reset():HResult;StdCall;
  10.      Function  Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall;
  11.      End;      

Actually there are some more issues with the attaches file.


EDIT: Also some issues with BGRACanvas, possibly TGradientDirection was renamed to TFPGradientDirection, I suppose it is the same as in Post #8.
« Last Edit: June 12, 2026, 12:59:08 pm by CM630 »
Лазар 4,8 32 bit (sometimes 64 bit); FPC3,2,2

Bart

  • Hero Member
  • *****
  • Posts: 5743
    • Bart en Mariska's Webstek
Re: Lazarus Bugfix Release 4.8
« Reply #5 on: June 12, 2026, 02:15:36 pm »
I made the changes, seems to work in both 32 and 64 bit windows.
Thank You.

Jamie

It won't work in fpc 3.2.4RC1 then (which is the last officially released RC).

Bart

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 12518
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Bugfix Release 4.8
« Reply #6 on: June 12, 2026, 02:19:59 pm »
Has anyone tried
Code: Pascal  [Select][+][-]
  1. {$if declared(TFPGradientDirection)}
  2.  

wp

  • Hero Member
  • *****
  • Posts: 13625
Re: Lazarus Bugfix Release 4.8
« Reply #7 on: June 12, 2026, 02:30:12 pm »
This is really a mess! There are branches "fixes_3_2" and "release_3_2_4_branch" (which contains TFPGradientDirection), as well as a "release_3_2_4_rc1" branch (which does not contain it). Is there anybody how knows the branch from which v3.2.4 will emerge?

I had checked the {$IF DEFINED(...)} directive already this morning when I saw that Mattias had changed my last-night's commit to {$IF FPC_FullVersion = 30203 or FPC_FullVersion >=30300} which does not work with v3.2.4. Waiting a few more hours for comments on his commit notes. If nothing happens I'll commit the {$IF DEFINED(...)} this evening.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 12518
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Bugfix Release 4.8
« Reply #8 on: June 12, 2026, 02:44:33 pm »
I had checked the {$IF DEFINED(...)} directive already this morning when I saw that Mattias had changed my last-night's commit to {$IF FPC_FullVersion = 30203 or FPC_FullVersion >=30300} which does not work with v3.2.4. Waiting a few more hours for comments on his commit notes. If nothing happens I'll commit the {$IF DEFINED(...)} this evening.

I committed the if defined, before I read this => it compiled here with older and newer fpc. So FPC picks it up (codetool may not, but codetool will work on any code using it, since it has a working definition either way)


Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 12518
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Bugfix Release 4.8
« Reply #9 on: June 12, 2026, 03:17:37 pm »
This is really a mess! There are branches "fixes_3_2" and "release_3_2_4_branch" (which contains TFPGradientDirection), as well as a "release_3_2_4_rc1" branch (which does not contain it). Is there anybody how knows the branch from which v3.2.4 will emerge?

Code: Text  [Select][+][-]
  1. |
  2. |\
  3. | \
  4. |  |
  5. |  | 3.2.0
  6. |  |
  7. |  3.2.3 aka fixes_3_2
  8. |  |
  9. |  |\
  10. |  | \
  11. |  |  |
  12. |  |  3.2.4 branch
  13. |  |  |
  14. |  |  | 3.2.4 RC 1
  15. |  |  |
  16. |  |  |  TODAY
  17. |  |  |
  18. |  |  |  RC 2 in future
  19. |  |
  20. |  |
  21. |  will become 3.2.5 (still aka fixes_3_2)
  22. |  |
  23. |
  24. 3.3.1
  25.  

At current the 3.2.3 and 3.2.4 branches are kept very close together. AFAIK more or less any merge to 3.2.3 is then also merged to 3.2.4


wp

  • Hero Member
  • *****
  • Posts: 13625
Re: Lazarus Bugfix Release 4.8
« Reply #10 on: June 12, 2026, 03:35:18 pm »
The TFPGradientDirection is in fixes_3_2. Why isn't it in the 3.2.4 branch then? Did they merge this commit to fixes_3_2 after 3.2.4 was created?

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 12518
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Bugfix Release 4.8
« Reply #11 on: June 12, 2026, 03:50:17 pm »
The TFPGradientDirection is in fixes_3_2. Why isn't it in the 3.2.4 branch then? Did they merge this commit to fixes_3_2 after 3.2.4 was created?

Are you sure it isn't?

Revision: f95a366b15ac42091fe0714447f124b5bfd8f699
Author: Michaël Van Canneyt <michael@freepascal.org>  Date: 15/05/2025 08:57:02
Message: * Gradient implementation, by Werner Pamler. Fixes issue #41257
  (cherry picked from commit 86ac47508e06bd269b21533748f1462b0ae9fe1a)

is on the branch: release_3_2_4-branch
It is however after the RC1 was done (which was long ago).



From what I understood, the decision was to "start over" => merge missing fixes, and then after that do an RC2...
So the snapshot, that I uploaded, was on the HEAD of that branch (imho little point to go for an outdated RC1).

The problem is, that version numbers (FPC_FULL_VERSION) don't cope well.
- All of this is 030204 (the RC1 and the more up to date branch are both the same number, afaik)
- and because its pre-release the fixes branch is still 3.2.3 (lower number). Only after the release it will become 3.2.5.

But, despite that, the fixes branch could already get ahead. In theory the fixes branch could get some commit, that for some reason would not go into the release branch.


 

TinyPortal © 2005-2018