Jump to content
Coniah

Delphi 10.4.2 first impressions

Recommended Posts

Installation went good from 10.4.1 to 10.4.2. Only problem I had, was with third party components / packages. I.e. I had to reinstall i.e. Reportbuilder 20.04 for Sydney but now it starts without any problems.

 

Anyone using 10.4 (or 10.4.2) in production environment? We're stuck at 10.3 ...

Share this post


Link to post
23 hours ago, balabuev said:

Confirmed. I can reproduce it. However in my case no stack overflow occured. IDE simply hang out (forewer) with this small popup window:

In order to get the stack overflow you've to activate the debug the IDE. Create a new empty package. In Run -> Parameters set Host application to C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\bds.exe. Run and click continue for the  Debugger exception notifications. When the second instance of the IDE appear open a project and then you can see the stack overflow.

Share this post


Link to post

@FredS Creating a new VCL project, adding your unit, and without saving the files - hovering over FormKeyDown in the implementation section - the IDE locks up.


The LSP does not show any particular activity:
image.thumb.png.3c53b106e68302053ab6827d321a09c2.png


The IDE seems to be running in a very tight loop in a single thread doing XML processing?

Callstack:
0, msxml6.dll!DllGetActivationFactory+0x36a1a
1, 0x6d6a9a500589a9b8
2, 0xffffffff00000000
3, 0x6d6a9a8a00641f44
4, 0x6d6a9a500588c0c8
5, 0x300000000
6, msxml6.dll!DllGetActivationFactory+0x36a1a (No unwind info)
7, msxml6.dll+0x79a8a (No unwind info)
8, msxml6.dll+0x791cb (No unwind info)
9, msxml6.dll+0x6002b (No unwind info)
10, msxml6.dll+0x3f4c0 (No unwind info)
11, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
12, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
13, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
14, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
15, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
16, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
17, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
18, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
19, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
20, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info)
21, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
22, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info)
23, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
24, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
25, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
26, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
27, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
28, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
29, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info)
30, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
31, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info)
32, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
33, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
34, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
35, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
36, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info)
37, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info)
38, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info)
39, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
40, xmlrtl270.bpl!XmlXmldocTXMLDocument$bdtr$qqrv+0x6f (No unwind info)
41, xmlrtl270.bpl!XmlXmldocTXMLDocument_Release$qqsv+0x33 (No unwind info)
42, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info)
43, IDELSP270.bpl!BaselspserverTLSPServerLSPServerCharEncoding$qqrp14SystemTObjectx20SystemUnicodeStringp22SystemClassesTStream+0xbd8 (No unwind info)
44, vcl270.bpl!VclFormsTApplicationIdle$qqrrx6tagMSG+0x13b (No unwind info)
45, vcl270.bpl!VclFormsTApplicationHandleMessage$qqrv+0x1c (No unwind info)
46, bds.exe!_dbk_fcall_wrapper+0x1234ad (No unwind info)
47, kernel32.dll!BaseThreadInitThunk+0x19 (No unwind info)
48, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xe4 (No unwind info)
49, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xb4 (No unwind info)
 

 

  • Thanks 1

Share this post


Link to post
Guest
On 2/28/2021 at 5:52 AM, balabuev said:

type
  TFoo = TObject;
  TBar = TDictionary<Byte, Byte>;

var
  a: TFoo; // Ctrl+Click here navigates to TFoo, despite it's an alias.
  b: TBar; // Ctrl+Click here navigates to TDictionary<> in Generics.Collections unit.

 

correct observation, for sure, is not necessary "re-define" some already "defined" or woul be?

 

"TDictionary" is a class/type or not? 

 

I need say to "IDE": Look, this here, is a type/class ok? dont break me, please!!!

 

here, right-click on "TDictionary<string, string>;" or "myTipo: TMyTipo;"  go to "Generics.Collections.pas" as expected!  --> RAD Studio 10.4.2!!! 

  •   TDictionary<TKey,TValue> = class(TEnumerable<TPair<TKey,TValue>>), line 768 from "unit System.Generics.Collections;"
implementation

{$R *.dfm}

uses
  Generics.Collections;

type
  TMyTipo = TDictionary<string, string>;

procedure TForm1.Button1Click(Sender: TObject);
var
  myTipo: TMyTipo;
begin
  myTipo := TMyTipo.Create(1);
  try
    try
      myTipo.Add('key', 'value');
      //
      ShowMessage(myTipo.Items['key']);
    except
      on E: Exception do
        ShowMessage('my error:' + sLineBreak + E.Message);
    end;
  finally
    FreeAndNil(myTipo);
  end;
end;

initialization

ReportMemoryLeaksOnShutdown := true;

finalization

end.

 

hug

Edited by Guest

Share this post


Link to post
4 hours ago, Lars Fosdal said:

Creating a new VCL project, adding your unit, and without saving the files - hovering over FormKeyDown in the implementation section - the IDE locks up.

10.4.2. looked so promising at the beginning, seems like I will wait for 10.5.

I can't event imagine how LSP would react to my projects (old, a lot of unrefactored code with beginners design).

Share this post


Link to post
10 minutes ago, Mike Torrettinni said:

10.4.2. looked so promising at the beginning, seems like I will wait for 10.5.

With 10.5 whole cycle will repeats :classic_biggrin:. So, 10.5.1 will be bugfull like hell, 10.5.2 - will look promising, 10.5.3 - slightly better.

Edited by balabuev
  • Like 1
  • Haha 1

Share this post


Link to post
2 minutes ago, balabuev said:

With 10.5 whole cycle will repeats :classic_biggrin:. So, 10.5.1 will be bugfull like hell, 10.5.2 - will look promising, 10.5.3 - slightly better.

I know, but this will be a few cycles after 10.2.3, so I will at least try 10.5 out! 😉 Last one I tried was 10.3 - no go.

Share this post


Link to post
Guest
5 hours ago, Lars Fosdal said:

@FredS Creating a new VCL project, adding your unit, and without saving the files - hovering over FormKeyDown in the implementation section - the IDE locks up.

 

on test:

  • VM with MSWindows 10 64bits - 4GB RAM and 256MB Video by VirtualBox
  • RAD Studio 10.4.2 Arch
  • VCL project testing "mouse over" types on unit "not saved on disk"
  • summary: not error happens!!! - speed regular as expected!

 

hug

Edited by Guest

Share this post


Link to post
Guest
39 minutes ago, Mike Torrettinni said:

10.4.2. looked so promising at the beginning, seems like I will wait for 10.5.

I can't event imagine how LSP would react to my projects (old, a lot of unrefactored code with beginners design).

not error for here! all expected, same using RAD10.4.2 in my VirtualBox - as above!

 

hug

Edited by Guest

Share this post


Link to post

@Mike Torrettinni 10.4.2 is a lot better than 10.4.1 in many respects. 
These are corner cases, and I expect there will be hotfixes. 

My guess is that 10.5.0 also will have issues that needs to be hotfixed - simply because exposing the IDE and compiler to real world code will uncover things that were not caught in the testing.

 

  • Like 2

Share this post


Link to post

@emailx45 Could you try not to illustrate all of your posts with images? In many cases the plain information - in this case that you could not reproduce the error - might be enough and does not bloat the view of a topic.

Share this post


Link to post
Guest
Just now, Daniel said:

@emailx45 Could you try not to illustrate all of your posts with images? In many cases the plain information - in this case that you could not reproduce the error - might be enough and does not bloat the view of a topic.

You are the boss, I, just a subject!
Will done!

 

hug

Share this post


Link to post
6 minutes ago, Lars Fosdal said:

@Mike Torrettinni 10.4.2 is a lot better than 10.4.1 in many respects. 
These are corner cases, and I expect there will be hotfixes. 

My guess is that 10.5.0 also will have issues that needs to be hotfixed - simply because exposing the IDE and compiler to real world code will uncover things that were not caught in the testing.

 

True, eventually I want to upgrade, is just a matter of a version. I don't want to stay behind too many versions.

Share this post


Link to post

After using the IDE (10.4.2) for a few days, I wouldn't be fair to say it's just more stable. All the features I'm using are working, including Debug! :classic_cheerleader:
Most debugging problem are solved, mostly 64bits.
If you have a problem LSP you can still deactivacte it. The new LSP features are working fine for me, but it might help if one deactivate it.
For instance you can disable error insight:
  image.thumb.png.2d478d7621f7169a6175fa18fc628ef2.png

And disable LSP:

image.thumb.png.c76f7343955158a7144d45352513040e.png

 

Even without those items, the IDE still has enough features to justify the migration.

 

You can call me a dreamer ( or incorrigible optimist  ), but if Emb can keep that same quality ration from 10.4 ->10.4.2, it's very likely to have a good 10.5 version.
10.4.2 is a clear improvement over 10.4.x

 

(Error insight level at "Warnings and Above")

image.thumb.png.78045db35c30c21979c7a1980088b79c.png

By hovering the mouse over the yellow line, the IDE shows the warning. Cool eh?

 

Edited by Clément
  • Like 2

Share this post


Link to post
Guest

only "me" cannot "bloat" the posts with pictures and "long list of text" ... :classic_unsure:

 

but if there was a "spoiler TAG", all would be happy. :classic_cheerleader:

 

 

hug

Edited by Guest

Share this post


Link to post

Even in Classic Code Insight mode IDE no longer completes the identifier when typing symbol character, like dot or open brace. 😭😭😭

Share this post


Link to post
7 hours ago, Lajos Juhász said:

activate the debug the IDE

Not the case here, when I first moved the cursor over I got a 'calculating..' followed by 'canceled' or maybe 'removed' then moving the cursor slightly again gives a frozen 'calculating' followed within 2 minutes by a Stack Overflow and a hard crash.

Share this post


Link to post
2 hours ago, emailx45 said:

not error for here!

Do you see the HelpInsight window come up, Including the Summary text?

 

This is the original method with the Remarks section removed using Ctrl+Shift+H:

image.thumb.png.4277ab2370426bc8ceeb6d4474dd7202.png

Edited by FredS
added image

Share this post


Link to post
8 minutes ago, balabuev said:

Even in Classic Code Insight mode IDE no longer completes the identifier when typing symbol character, like dot or open brace. 😭😭😭

It seems likely that there are certain code patterns preventing this.

I did some random spot checks in our code, and typing partial variable name[ctrl+space] or variable[dot] produces a selection very quickly.

  • Like 1

Share this post


Link to post
10 minutes ago, Lars Fosdal said:

It seems likely that there are certain code patterns preventing this.

Hmm.. I'm testing on a clear VCL project, within a simple OnCreate event handler. Trying to type Can[vas]. Nothing special.

But, it good to know, that it works for you. Can someone else check it?

Edited by balabuev

Share this post


Link to post
10 minutes ago, Lars Fosdal said:

certain code patterns preventing

That is what the LSP was supposed to solve since Godzilla, No?

Share this post


Link to post
1 minute ago, FredS said:

That is what the LSP was supposed to solve since Godzilla, No?

True, but there is almost as many code variations as there are developers.

There still may be stuff out there that doesn't work.

Share this post


Link to post
1 minute ago, Lars Fosdal said:

code variations as there are developers

But guaranteed no more than the compiler can understand.. the rest are excuses..

Share this post


Link to post

Since I don't know the intimate details of exactly how the LSP does the analysis, I can't really be that harsh in judgement.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×