The Lazarus team is glad to announce Lazarus FreePascal IDE 4.4

1 hour ago 2

Author Topic: Lazarus Bugfix Release 4.4  (Read 3349 times)

The Lazarus team is glad to announce Lazarus 4.4.

This is a bugfix release and was built with FPC 3.2.2.

Here is the list of changes for Lazarus and Free Pascal:
https://wiki.lazarus.freepascal.org/Lazarus_4.0_release_notes
https://wiki.lazarus.freepascal.org/User_Changes_3.2.2

Here is the list of fixes for Lazarus 4.x:
https://gitlab.com/freepascal.org/lazarus/lazarus/-/commits/fixes_4/

The release is available for download at:
https://download.lazarus-ide.org/

Choose your CPU, OS, distro and then the "Lazarus 4.4" directory.

Checksums for the SourceForge files:
https://www.lazarus-ide.org/index.php?page=checksums#4_4

Minimum requirements:

Windows:
  2k, 32 or 64bit, Qt, Qt5, Qt6 (64bit only)

FreeBSD/Linux:
  gtk 2.24 for gtk2, qt4.5 for qt, qt5.6 for qt5, Qt6.2 for qt6, 32 or 64bit.

Mac OS X:
  Cocoa (64bit) 10.12, Carbon (32bit) 10.5 to 10.14, Qt and Qt5 (32 or 64bit), Qt6 (64bit only).

The gitlab page:
https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/lazarus_4_4

Download mirrors:
https://sourceforge.net/projects/lazarus/files/
ftp://ftp.freepascal.org/pub/lazarus/releases/

« Last Edit: November 10, 2025, 08:18:54 pm by mattias »

Logged


Logged


Logged


Is my perception of time out of wack or is Lazarus 4.4 noticeably faster to build and subsequently compile ?

I either case, thanks folks !

Davo

Logged


I was thinking when I meet Lazarus, was in release 0.9.x. I can't imagine the effort that made the Lazarus team, since this days.
Thank you very much!
/BlueIcaro

Logged


I installed the 32bit version of Lazarus 4.4.
An app started crashing in I way I have not seen it crash before.

The error is in LazTracer.pas, it complains about division by zero.

  1. procedure RaiseGDBException(const Msg: string);

  2. begin

  3.   DebugLn(lrsERRORInCode, Msg);

  4.   // creates an exception, that gdb catches:

  5.   DebugLn(lrsCreatingGdbCatchableError);

  6.   DumpStack;

  7.   {$ifndef HASAMIGA} // On Amiga Division by 0 is not catchable, just crash

  8.   if (length(Msg) div (length(Msg) div 10000))=0 then ;

  9.   {$endif}

  10. end;  

I still have the 64 bit Lazarus 4.2 and I cannot make the app crash with it.

I have a TPairSplitter with two RichMemos on each side. When I move the slitter when updating the RichMemos the crash occurs.
I will write more when I have more info.

Edit: I have successfully crashed the app on the 4.2 when doing the same, but I got the error in control.inc, procedure TControl.EnableAutoSizing   .
(message is Tcontrol.EnableAutoSizing pssReceived:TPairSplitter: missing DisableAutosizing).

Edit2: I also got the division by zero in the 4.2, so it should not be something changed in 4.4.

But after division by zero the app cannot resume work, while after EnableAutoSizing   it keeps on working, I just click "Ok".
 

« Last Edit: November 11, 2025, 01:00:32 pm by CM630 »

Logged

Лазар 4,2 32 bit (sometimes 64 bit); FPC3,2,2


The division by zero is simple a very old way to raise an exception.

GDB (when that was the only debugger we had) does not know Pascal exceptions, and initially it did not stop for them. So instead a div-zero was used.

But that aside, I don't know what then causes the splitter to trigger it

Logged


Does the crash also happen when you have a normal TSplitter and the two RichMemos on both sides of it, one left-aligned, the other one client-aligned? I am asking because TPairSplitter does not exist in delphi and thus may be used less than TSplitter and get less testing and less attention by the developers.

Logged


This is how I have arranged them (I think I have not used splitters before).
Maybe it would be better to create another thread, since I succeeded in reproducing it in Larus 4.2, too?
There, I could export some parts of the app, too.
Also, another thing happened - after moving the splitter continually, it stayed at (visibly) 50 % and then it could not be moved anymore.

This is the routine I use to add text in the Memos. I wonder if the SendMessage could be involved somehow.

  1. procedure AppendMemo(RichMemo: TRichMemo; aText: String; Colour: TColor = clDefault);

  2. var

  3.   prms : TFontParams;

  4.   ScrollPos : integer = 0;

  5. begin

  6.   ScrollPos := RichMemo.VertScrollBar.ScrollPos;

  7.   prms := GetFontParams(RichMemo.Font);

  8.   if (Colour <> clDefault) then prms.Color := Colour;

  9.   RichMemo.Lines.BeginUpdate;

  10.   InsertFontText(RichMemo,aText, prms);

  11.   if (stSinglePanel = True) then exit;

  12.   if ((RichMemo = frmMain.memoSend) and (stAutoScrollSend = True))

  13.   or ((RichMemo = frmMain.memoReceivedText) and (stAutoScrollReceive = True))

  14.   or ((RichMemo = frmMain.memoReceivedHex) and (stAutoScrollReceive = True))

  15.     then

  16.     begin

  17.       {$ifdef windows}SendMessage(RichMemo.handle, WM_VSCROLL, SB_BOTTOM, 0);{$endif} //TODO: Add this behaviour in Linux

  18.     end

  19.   else

  20.     begin //Prevent scroll. NOTE: This method works only when the vertical scrollbar is enabled!

  21.       RichMemo.ScrollBy(0,MaxInt);

  22.       RichMemo.ScrollBy(0,-ScrollPos);

  23.     end;

  24.     RichMemo.Lines.EndUpdate;

  25. end;  

« Last Edit: November 11, 2025, 02:54:06 pm by CM630 »

Logged

Лазар 4,2 32 bit (sometimes 64 bit); FPC3,2,2


« Last Edit: November 11, 2025, 04:16:21 pm by baldzhang »

Logged


Logged


>Does this question belong here or do I need to post it in a bug forum?

Pls ask this at the "Packages and Libraries" part of the forum.
I will help.

« Last Edit: November 11, 2025, 07:32:29 pm by AlexTP »

Logged


Maybe it would be better to create another thread, since I succeeded in reproducing it in Larus 4.2, too?

It seems that the moderators can move all comments into a separate thread themselves.

Logged


Thanks.
I again can`t to compile with some additional components. On Laz 4.20 From some time after apear I was can to install him?

Logged


Thanks.
I again can`t to compile with some additional components. On Laz 4.20 From some time after apear I was can to install him?

I don't know about the error message, the folder looks correct, so I wouldn't expect to need to "clean up ideintf" => but hard to say, without reproducing it (and I am not going to download it now).

I found a version of the package => https://github.com/fluisgirardi/pascalscada_v0/blob/master/pascalscada.lpk

If it is this, then in the required section, I do not see the "IdeIntf" package. It could be required indirectly, I tried to trace the nested requirements... I didn't see it, but could have missed it.

Have you tried adding it? As requirement for the package? (If it is indeed missing, then thats for the author to add)

Logged


Read Entire Article