Jump to content
Syntri

IDE Fix pack for Rio

Recommended Posts

Compilation time dropped to 44s when I used IdeFixPack from @jbg post in another topic:

When I start Delphi 10.3 I have errors from IdeFixPack:

 

image.png.65b2a61d92737fde4f72fbb749f5c660.png

 

Waiting for next version without errors! Thank's Andreas.

 

Share this post


Link to post
11 minutes ago, ŁukaszDe said:

Waiting for next version without errors!

There is no IDEFixPack for Rio, yet. There is only the "not_even_alpha" Download with the comment that you shouldn't even come near the Win64 or Android compiler if you install it. That is a work-in-progress version that I uploaded only to help to identify a specific problem.

 

 

 

  • Like 1

Share this post


Link to post
On 12/4/2018 at 6:39 PM, Kryvich said:

I measured a time to build the camera_shake.dpr project from TERRA-Engine framework in Delphi 10.2.3 and Delphi 10.3. TERRA Engine is a complex cross-platform engine, known for its cyclic unit references, and freezes in IDE.

 

Camera_shake.dpr project build time, Windows 32-bit platform:

  • Delphi 10.2.3 with IDE Fix Pack 6.3.1, Compiler Speed Pack x86 / x64 6.3.1 -- 06 min 59 sec.
  • Delphi 10.3 -- 06 min 33 sec.

I measured the time on my phone manually, so there may be some error.

  • Delphi 10.3 with IDE Fix Pack dev 2018-12-11-2343, Compiler Speed Pack x86 / x64 dev 2018-12-11-2343 -- 05 min 53 sec. :)

IDE Fix Pack is an IDE package that I always installed the very first when switching to a new version of Delphi.

Share this post


Link to post

@jbg Ok, I understand, it's not a problem. I'm mainly use 32bit compiller for windows application.

I wrote here to show that Rio needs IdeFixPack too.

Share this post


Link to post
Quote

 

Another one waiting for idefixpack here.  We were happy to learn that some of the fixes had been put into base 10.3, but clearly not any of the speed one.

 

Delphi 10.2  45 seconds

Delphi 10.3  4 minutes 3 seconds

 

It's really not usable at the moment, so we're holding off rollout until it's available.

 

Share this post


Link to post

There are still 6 patches collections (about 30 function patches) that I have to reimplement. At least the Win64 compiler doesn't crash anymore.

So it will still take a lot of time to get a usable release version.

  • Like 3
  • Thanks 9

Share this post


Link to post

In our environment the missing "TDirectoryCache" of the FixPack seems to be the main blocker. We have reported this issues already middle of Sept (https://quality.embarcadero.com/browse/RSP-21972https://quality.embarcadero.com/browse/RSP-22289). It was reproduced by EMBT but nothing happened until now.

IMO a fixpack with only this feature would improve the speed already a lot for larger projects and solves the problem of the IDE freezes we do have.

I asked EMBT several times to include such a cache into the SP1 of RIO. But no commitment yet.

 

  • Like 1

Share this post


Link to post

A new development snapshot of IDE Fix Pack for 10.3 Rio is available.

The Win64 (DCC64) and Android (DCCAARM) compiler patches should now work as excepted.

 

Changes:

  • Added: Support for Delphi 10.3 Rio
  • Added: Fix for TStringList.IndexOfName bug (RSP-21633)
  • Added: Fix for access violoation in the Welcomepage JScript9.dll binding
  • Added: TCustomListBox.ResetContent is skipped if the handle isn't created yet
  • Added: DFM Streaming optimizations
  • Added: FillChar uses Enhanced REP MOVSB/STOSB cpu feature if available for large sizes.
  • Added: Enabled CPU LOCK string assignment optimization for local variables
  • Added: -Oe (experimental optimizations) and -x-cgo compiler option extension (Remove of some unneccessary push/pop operations)
  • Added: Expression Evaluator allows array access to pointers even if the type wasn't declared with {$POINTERMATH ON}
  • Added: New compiler option extensions: -x--compileonly, -x--reslist, -x--depfile, -x--unitstats
  • Added: More performance optimization for the DCC64 compiler
  • Added: TStringBuilder.SetLength optimization [RSP-19178]
  • Added: TStrings.GetDelimitedText optimization
  • Fixed: Packages with duplicate units may not have caused a fatal compiler error.

 

IDEFixPackD103Reg64.7z

fastdccD103vDev.7z

  • Like 3
  • Thanks 26

Share this post


Link to post

Thanks Andy

 

Your contribution is invaluable 🙇‍♂️ although it's other people's job to fix all these issues

 

Thanks again

Share this post


Link to post

@jbg

Hi Andy,

 

I'm getting an error when compiling my project after installing the Delphi fix pack in Rio Community edition version:

Embarcadero® Delphi 10.3 Version 26.0.32429.4364

 

Compiler Speed Pack x86 6.4 for Delphi 10.3

 

Windows 10 version 10.0 Build 17134 64-Bit edition

 

When I run a 64-bit application under the debugger (F9) the following error pops up:

 

Debugger Assertion Failure "apiOK"

in ..\win32src\w64mgr.cpp at Line 79

[203B7664]{dbkdebugide260.bpl} Debug.TDebugKernel.msgBox (Line 5945, "Debug.pas" + 30) + $0
[2DFB6EB3]{bordbk260.dll} Unknown function at DllUnregisterServer + $5037
[2DFD37D6]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $98FE
[2E067FC9]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $9E0F1
[2DFCA660]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $788
[2DFCA6DB]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $803
[2E0617AD]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $978D5
[189FB134]{bordbk260N.dll} Unknown function at @isDbkLoggingOn$qv + $302BC
[189CDBB5]{bordbk260N.dll} Unknown function at @isDbkLoggingOn$qv + $2D3D
[18A01FB3]{bordbk260N.dll} Unknown function at POSTEDHOOKPROC + $113F
[18A0176F]{bordbk260N.dll} Unknown function at POSTEDHOOKPROC + $8FB
[50067E99]{rtl260.bpl  } System.@IntfCopy (Line 38197, "System.pas" + 6) + $0
[2E070CC5]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $A6DED
[2DFB908C]{bordbk260.dll} Unknown function at DllUnregisterServer + $7210
[2E06F91B]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $A5A43
[2E06214A]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $98272
[2E062AA4]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $98BCC
[2E0628D3]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $989FB
[2E062033]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $9815B
[2E061999]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $97AC1
[2E061521]{bordbk260.dll} Unknown function at @isDbkLoggingOn$qv + $97649
[2DFB7AEC]{bordbk260.dll} Unknown function at DllUnregisterServer + $5C70
[203B6357]{dbkdebugide260.bpl} Debug.TDebugKernel.CreateProcess (Line 5464, "Debug.pas" + 17) + $63
[0B6AE315]{IDEFixPack.dll} DbkCreateProcessWithRelHostApp.TDebugKernel_CreateProcessHook (Line 46, "DbkCreateProcessWithRelHostApp.pas" + 4) + $23
[203BDD5C]{dbkdebugide260.bpl} Debug.TProcess.CreateProcess (Line 9037, "Debug.pas" + 1) + $2D
[203C4D51]{dbkdebugide260.bpl} Debug.TDebugger.DoCreateProcess (Line 11959, "Debug.pas" + 74) + $24
[203C4EF8]{dbkdebugide260.bpl} Debug.TDebugger.CreateProcess (Line 11986, "Debug.pas" + 7) + $2F
[203C5A27]{dbkdebugide260.bpl} Debug.TDebugger.Run (Line 12395, "Debug.pas" + 23) + $33
[203C675C]{dbkdebugide260.bpl} Debug.TDebugger.Run (Line 12759, "Debug.pas" + 164) + $4D
[203C062E]{dbkdebugide260.bpl} Debug.TDebugger.Run (Line 10370, "Debug.pas" + 0) + $2
[20866811]{coreide260.bpl} DebuggerMgr.TDebuggerMgr.Run (Line 2067, "DebuggerMgr.pas" + 21) + $5
[004AE277]{bds.exe     } AppMain.TAppBuilder.RunRun (Line 3386, "AppMain.pas" + 1) + $3
[5017361B]{rtl260.bpl  } System.Classes.TBasicAction.Execute (Line 17028, "System.Classes.pas" + 7) + $3
[50CCDE62]{vcl260.bpl  } Vcl.ActnList.TCustomAction.Execute (Line 261, "Vcl.ActnList.pas" + 19) + $35
[0B6A880E]{IDEFixPack.dll} RefactoringActionUpdateFix.CustomActionExecute (Line 87, "RefactoringActionUpdateFix.pas" + 4) + $0
[50173483]{rtl260.bpl  } System.Classes.TBasicActionLink.SetAction (Line 16939, "System.Classes.pas" + 0) + $3
[50CE54EC]{vcl260.bpl  } Vcl.Controls.TControl.Click (Line 7501, "Vcl.Controls.pas" + 7) + $7
[50D644BC]{vcl260.bpl  } Vcl.ComCtrls.TToolButton.Click (Line 21635, "Vcl.ComCtrls.pas" + 0) + $0
[50CE59B7]{vcl260.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7642, "Vcl.Controls.pas" + 7) + $6
[50CE4FAA]{vcl260.bpl  } Vcl.Controls.TControl.WndProc (Line 7387, "Vcl.Controls.pas" + 91) + $6
[5005FE07]{rtl260.bpl  } System.TObject.Dispatch (Line 18332, "System.pas" + 11) + $0
[09918E3E]{themeloader260.bpl} Idetheme.Vclstylehooks.TIDEStyleHook.WndProc + $7A
[50067E88]{rtl260.bpl  } System.@IntfClear (Line 38150, "System.pas" + 10) + $0
[099188F7]{themeloader260.bpl} Idetheme.Vclstylehooks.TIDEStyleHook.HandleMessage + $B7
[50067E88]{rtl260.bpl  } System.@IntfClear (Line 38150, "System.pas" + 10) + $0
[500640D8]{rtl260.bpl  } System.@FinalizeArray (Line 32811, "System.pas" + 144) + $0
[50CE4BE4]{vcl260.bpl  } Vcl.Controls.TControl.Perform (Line 7165, "Vcl.Controls.pas" + 10) + $8
[50CE926E]{vcl260.bpl  } Vcl.Controls.GetControlAtPos (Line 9967, "Vcl.Controls.pas" + 4) + $75
[50CE9336]{vcl260.bpl  } Vcl.Controls.TWinControl.ControlAtPos (Line 9990, "Vcl.Controls.pas" + 13) + $E
[50CE4BE4]{vcl260.bpl  } Vcl.Controls.TControl.Perform (Line 7165, "Vcl.Controls.pas" + 10) + $8
[50CE9404]{vcl260.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 10014, "Vcl.Controls.pas" + 15) + $29
[50CE9A0C]{vcl260.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10191, "Vcl.Controls.pas" + 112) + $6
[50D665E9]{vcl260.bpl  } Vcl.ComCtrls.TToolBar.UpdateButtonState (Line 22913, "Vcl.ComCtrls.pas" + 11) + $27
[50D6662A]{vcl260.bpl  } Vcl.ComCtrls.TToolBar.UpdateButtonStates (Line 22924, "Vcl.ComCtrls.pas" + 3) + $4
[50D69060]{vcl260.bpl  } Vcl.ComCtrls.TToolBar.WndProc (Line 24514, "Vcl.ComCtrls.pas" + 104) + $6
[50CE9178]{vcl260.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9944, "Vcl.Controls.pas" + 3) + $6
[50174370]{rtl260.bpl  } System.Classes.CalcJmpOffset (Line 17554, "System.Classes.pas" + 0) + $0
[50E3E7A7]{vcl260.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10724, "Vcl.Forms.pas" + 23) + $1
[50E3E7EA]{vcl260.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10754, "Vcl.Forms.pas" + 1) + $4
[50E3EB1D]{vcl260.bpl  } Vcl.Forms.TApplication.Run (Line 10892, "Vcl.Forms.pas" + 26) + $3
[00517FFA]{bds.exe     } bds.bds (Line 214, "" + 7) + $7

Uninstalling the IDE-fix pack (ouch, that hurts) resolves the issue.

Edited by Johan Bontes

Share this post


Link to post

How is it that one independent programmer has to improve Delphi IDE for over 10 years?
Basically hacking them without access to sources?
Delphi which subsequent versions are released for a large amount of money at least every year.

  • Like 1

Share this post


Link to post
10 minutes ago, miab said:

How is it that one independent programmer has to improve Delphi IDE for over 10 years?
Basically hacking them without access to sources?
Delphi which subsequent versions are released for a large amount of money at least every year.

As has been clarified by Hick Hodges a few times before (when he was working for Emba), all is exactly as Andy wants it.

And he does have access to the source as per agreement.

And no he does not get paid (as far as we know) and (as far as we know) that's how he wants it.

This point keep coming up again and again and it's getting rather old, just be happy with the work Andy is doing and take your blessings where you can get them.

 

Yes Emba should do more, better, faster etc but it is as it is.

Edited by Johan Bontes
  • Thanks 1

Share this post


Link to post
22 minutes ago, Johan Bontes said:

As has been clarified by Hick Hodges a few times before (when he was working for Emba), all is exactly as Andy wants it.

And he does have access to the source as per agreement.

From what Andreas writes, he does not have access to IDE sources:
https://twitter.com/AndyHTech/status/1084150052560519168
But that is not the point.
Why, in the case of a dozen paid editions and a dozen fix releases, Emba does not introduce these changes?

  • Like 1

Share this post


Link to post

He should receive some payment. He keeps customers happy in a business that it is not his.

 

But it's not us to judge what Andy should do. :classic_biggrin:

 

We're just happy for his contribution and we acknowledge this

Share this post


Link to post

AFAIK Andy would rather get no money than having to submit to some of the issues he has with the contract(s) that would come with it.

  • Like 1

Share this post


Link to post
53 minutes ago, Sherlock said:

AFAIK Andy would rather get no money than having to submit to some of the issues he has with the contract(s) that would come with it.

Not just contracts. Don't underestimate the hassle of declaring taxes and associated stuff for what essentially would still be pocket money.

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

×