May 29, 2020
In RAD Studio 10.4 Embarcadero resolved a very large number of internal and customer reported issues. Here is some more information.
RAD Studio 10.4 has a nice set of new features, now covered in several blog post and in the announcement webinar (the replay is available at https://www.youtube.com/watch?v=-rTLEXLVueQ).
The 10.4 release also addressed a large number of issues, including fixes for over 700 publicly reported issues on Quality Portal (QP). You can see a (partial) list of the fixed issues in the product documentation at: http://docwiki.embarcadero.com/RADStudio/Sydney/en/New_features_and_customer_reported_issues_fixed_in_RAD_Studio_10.4
The large number of issues resolved is also visible in the Created vs. Resolved chart (limited to bugs) on QP:
This is a continuously updated graph that you can see in one of the QP dashboards at https://quality.embarcadero.com/secure/Dashboard.jspa?selectPageId=13100
Finally, this is a breakdown of portion of the bug reports and new feature requests addressed in 10.4. The items are grouped by product area, with some of the categories overlapping (for example Compiler and Tools includes C++ and Delphi compiler issues, but also Linker issues) and issues possibly listed in more than one category:
posted by
marcocantu @ 5:04AM | 7 Comments
[0 Pending]
Record Number of Issues Addressed in RAD Studio 10.4
Impressive. Great work my friend!
Just take a look to that one, have 4 years and 82
votes . Maybe is time to take care of that?
https://quality.embarcadero.com/browse/RSP-13370
Best regards
Comment by German Pablo Gentile on May 29, 08:41
Record Number of Issues Addressed in RAD Studio 10.4
New issue with getir:
1) The getit server is unavailable messge for patches.
2) When trying to install any package I get:
Cannot load data from the server: "Radstudio.json" metafile does not
exist.
So no Sydney for me, since I depend on a lot of these packages...
Comment by Maarten Hennekam on May 31, 02:46
Record Number of Issues Addressed in RAD Studio 10.4
Ok found the solution:
GetItCmd.exe -c=useonline
This solved the problem. A bit vague for a new installation...
Comment by Maarten Hennekam on May 31, 03:07
Record Number of Issues Addressed in RAD Studio 10.4
When 10.4 community edition release?
Comment by gta on June 5, 12:26
Record Number of Issues Addressed in RAD Studio 10.4
How many are resolved vs won't fix?
Comment by Peter Monkness
[]
on July 9, 23:57
Record Number of Issues Addressed in RAD Studio 10.4
In the numbers of issues addressed we exclude what we mark
won't fix or duplicate issues.
This is the data for QP issues resolved in 10.4 -- it is public, you
can query JIRA:
Fixed = 823
Cannot Reproduce = 198
Total we consider addressed = 1021 (the over thousands "claim")
Won't fix = 86
Duplicate = 205
No Longer Applies = 111
Test Case Error = 79
Works as expected = 87
Total items resolved = 1589
Comment by Marco Cantu
[http://www.marcocantu.com]
on July 10, 00:07
Record Number of Issues Addressed in RAD Studio 10.4
The delphi compiler does not generate rex prefix in some instructions when the optimizations are enabled.
Here test file:
// The program should write a number from 0 to 15 for each procedure.
{$IFDEF DCC}{$APPTYPE CONSOLE}{$ENDIF}
type
TPoint = packed record
X,Y:LongInt;
end;
WideRec = packed record
Lo,Hi:System.Word;
end;
TDrawBuffer = array[0..256*2-1] of LongInt;
type
O = object
Size:TPoint;
Color2Display:Byte;
constructor Init;
procedure Draw1; virtual;
procedure Draw2; virtual;
procedure WriteLine(X, Y, W, H: Integer; var Buf);
end;
procedure MoveChar(var Dst; C:Char; Attr:System.Word; Cnt:LongInt);
begin
end;
procedure MoveXChar(var Dst; C:Char; Attr:System.Word; Cnt:LongInt);
begin
Write(Attr:3);
{// Should be from 0 to 15}
end;
procedure O.WriteLine(X, Y, W, H: Integer; var Buf);
begin
end;
procedure MoveColor(var Buf; Num:LongInt; Attr:Byte);
begin
end;
constructor O.Init;
begin
end;
{$IFDEF DCC}{$O-}{$ENDIF}
Procedure O.Draw1;
var B : TDrawBuffer;
I,J,C : Byte;
begin
MoveChar(B, ' ', $70, Size.X);
for I := 0 to Size.Y do
begin
If Color2Display <> 0 then
MoveChar(B, ' ', Color2Display shl 4, Size.X) else
MoveChar(B, #219,
{Color2Display shl 4}0, Size.X);
if (I>0) and (I<5) then
for J := 0 to 3 do
begin
C := (I-1) * 4 + J;
MoveXChar(B[J*3 + 5], #219, C, 3);
if C = Byte(Color2display) then
begin
WideRec(B[J*3+1 + 5]).Lo := $25D8;
if C = 0 then WideRec(B[J*3+1 + 5]).Hi := $70;
end;
end;
WriteLine(0, I, Size.X, 1, B);
end;
If Color2Display = 0 then
begin
MoveColor(B, Size.X, 0);
WriteLine(0, Size.Y-1, Size.X, 1, B);
end;
end;
{$IFDEF DCC}{$O+}{$ENDIF}
Procedure O.Draw2;
var B : TDrawBuffer;
I,J,C : Byte;
begin
MoveChar(B, ' ', $70, Size.X);
for I := 0 to Size.Y do
begin
If Color2Display <> 0 then
MoveChar(B, ' ', Color2Display shl 4, Size.X) else
MoveChar(B, #219, {Color2Display shl 4}
0, Size.X);
if (I>0) and (I<5) then
for J := 0 to 3 do
begin
C := (I-1) * 4 + J;
MoveXChar(B[J*3 + 5], #219, C, 3);
if C = Byte(Color2display) then
begin
WideRec(B[J*3+1 + 5]).Lo := $25D8;
if C = 0 then WideRec(B[J*3+1 + 5]).Hi := $70;
end;
end;
WriteLine(0, I, Size.X, 1, B);
end;
If Color2Display = 0 then
begin
MoveColor(B, Size.X, 0);
WriteLine(0, Size.Y-1, Size.X, 1, B);
end;
end;
var
I:O;
begin
I.Init;
I.Size.X:=10;
I.Size.Y:=10;
I.Color2Display:=7;
I.Draw1;
{// not optimized draw}
WriteLn;
I.Draw2;
{// optimized draw}
end.
Comment by CandyMan on July 10, 06:49
There are currently 0 pending (unapproved) messages.