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.
procedure RaiseGDBException(const Msg: string);
begin
DebugLn(lrsERRORInCode, Msg);
// creates an exception, that gdb catches:
DebugLn(lrsCreatingGdbCatchableError);
DumpStack;
{$ifndef HASAMIGA} // On Amiga Division by 0 is not catchable, just crash
if (length(Msg) div (length(Msg) div 10000))=0 then ;
{$endif}
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.
procedure AppendMemo(RichMemo: TRichMemo; aText: String; Colour: TColor = clDefault);
var
prms : TFontParams;
ScrollPos : integer = 0;
begin
ScrollPos := RichMemo.VertScrollBar.ScrollPos;
prms := GetFontParams(RichMemo.Font);
if (Colour <> clDefault) then prms.Color := Colour;
RichMemo.Lines.BeginUpdate;
InsertFontText(RichMemo,aText, prms);
if (stSinglePanel = True) then exit;
if ((RichMemo = frmMain.memoSend) and (stAutoScrollSend = True))
or ((RichMemo = frmMain.memoReceivedText) and (stAutoScrollReceive = True))
or ((RichMemo = frmMain.memoReceivedHex) and (stAutoScrollReceive = True))
then
begin
{$ifdef windows}SendMessage(RichMemo.handle, WM_VSCROLL, SB_BOTTOM, 0);{$endif} //TODO: Add this behaviour in Linux
end
else
begin //Prevent scroll. NOTE: This method works only when the vertical scrollbar is enabled!
RichMemo.ScrollBy(0,MaxInt);
RichMemo.ScrollBy(0,-ScrollPos);
end;
RichMemo.Lines.EndUpdate;
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
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
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
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
.png)
