IDE Fix Pack 5.0 – released

By | August 1, 2012

The last official release of IDE Fix Pack was in April and since then I added some new optimizations, IDE bug fixes and fixed IDE Fix Pack bugs.

Version 5.0 doesn’t contain the “Disable package cache” patch anymore. I got too many reports about misbehaving components, double listing of about texts in the Splash screen and IDE crashes due to misbehaving packages. (What will the component vendors do if Embarcadero suddenly removes the cache themself? Depending on the load order and packages that aren’t loaded is no good strategy)

The “Ignore errors when kibitzing” patch that was only available for Delphi 2009/2010 was changed so that it doesn’t lead the  XE and XE2 compiler into an infinite loop anymore. This patch makes it possible for CodeInsight to work despite errors in the code.

When you’ve pressed Ctrl+F12 (Unit…) or Ctrl+Shift+F12 (Forms..) in a large project the first time, the IDE can became blocked for a while. That is because when the VCL searches for the menu item with the matching shortcut, it has to check the shortcut of “Show HelpInsight” (Ctrl+Shift+H). And the TAction behind that menu item invokes the ErrorInsight parser in the main thread in its OnUpdate handler that is called before the shortcut is compared. I added a patch that prevents that scenario. Furthermore I also added a patch that does the same with the “Refactor” menu item’s shortcut handling.

The new version gives the Delphi linker a performance boost for code that uses a lot of different generics instantiations. So if you have 100 different units with 100 different TObjn (where n is 1..100) and you use TList<TObjn> you won’t have to wait that long anymore for the linker phase to complete.

Download:

Name IDE Version File Size Downloads Added
IDE Fix Pack 6.4.2 2009 (UP4) IDEFixPack2009Reg64.2.7z 242.75 KB 5652 times 2019-03-23
IDE Fix Pack 6.4.2 2010 (UP5) IDEFixPack2010Reg64.2.7z 237.09 KB 6464 times 2019-03-23
IDE Fix Pack 6.4.2 XE (UP1) IDEFixPackXEReg64.2.7z 221.38 KB 3996 times 2019-03-23
IDE Fix Pack 6.4.2 XE2 (UP4+HF1) IDEFixPackXE2Reg64.2.7z 316.78 KB 4409 times 2019-03-23
IDE Fix Pack 6.4.2 XE3 (UP2) IDEFixPackXE3Reg64.2.7z 257.4 KB 3547 times 2019-03-23
IDE Fix Pack 6.4.2 XE4 (UP1) IDEFixPackXE4Reg64.2.7z 260.1 KB 3162 times 2019-03-23
IDE Fix Pack 6.4.2 XE5 (UP2) IDEFixPackXE5Reg64.2.7z 257.7 KB 3643 times 2019-03-23
IDE Fix Pack 6.4.2 XE6 (UP1) IDEFixPackXE6Reg64.2.7z 423 KB 3339 times 2019-03-23
IDE Fix Pack 6.4.2 XE7 (UP1) IDEFixPackXE7Reg64.2.7z 429.48 KB 4503 times 2019-03-23
IDE Fix Pack 6.4.2 XE8 (UP1) IDEFixPackXE8Reg64.2.7z 431.7 KB 3794 times 2019-03-23
IDE Fix Pack 6.4.2 10 Seattle (RTM/UP1) IDEFixPackD10Reg64.2.7z 428.33 KB 5274 times 2019-03-23
IDE Fix Pack 6.4.2 10.1 Berlin IDEFixPackD101Reg64.2.7z 430.65 KB 5862 times 2019-03-23
IDE Fix Pack 6.4.2 10.2 (RTM/UP1/2/3) IDEFixPackD102Reg64.2.7z 426.27 KB 9285 times 2019-03-23
IDE Fix Pack 6.4.4 10.3 (RTM/UP1/2/3) IDEFixPackD103Reg64.4.7z 444.98 KB 17680 times 2019-08-01

Changelog

  • Fixed: RC files couldn’t be opened by double clicking in the ProjectManager
  • Fixed: Random order of BuildConfiguration tags in the dproj file
  • Added: Much improved linker performance if generics are used
  • Added: Parser for Find Unit (for Symbol) can be canceled by pressing ESC
  • Added: Refactor actions are only available after the parser has finished
  • Added: Refactor actions don’t start the parser if the user pressed an unrelated shortcut
  • Added: ObjectTextToBinary performance optimization for Linker and the FormDesigner
  • Added: Compile Dialog accepts the cancel button when only up-to-date DCU files are loaded but no actual unit compilation is done
  • Added: Protect the editor from CnWizard’s access from Application.OnIdle (random AVs when closing tabs)
  • Added: comp32x.dll keeps file handles open that shouldn’t belong to the debugger instance (debugging the IDE that debugs a program => program’s EXE is locked when compiling it the second time) (XE2)
  • Added: Fix for compiler bug where a memory allocator returned an invalid address due to an overflow
  • Added: Enabled “Ignore errors when kibitzing” patch for XE+, 2009/2010 already had it enabled (XE/XE2)
  • Added: Fix for QC#82199: Saving from the DFM as text editor truncates the PAS file by the number of Unicode chars (2009/2010)
  • Added: Fix for IDE removing form-unit from project when switching from DFM Text editor to FormDesigner with errors in the DFM
  • Removed: DisablePackageCache patch (too many component vendors now depend on not loading all packages)

25 thoughts on “IDE Fix Pack 5.0 – released

  1. Edwin Yip | dev of LIVEditor

    Hi Andy,
    Excellent! I assume you are not in the Delphi team and you should not have access to the source code of the IDE, it’s amazing that you can do so many wonderful hackings into the IDE.

    It’ll be interesting to know what techniques and tools do you use for analyzing the inner workings of the Delphi IDE, for example, how can you find out about the OnUpdate handler of the Action behind the shortcut of “Show HelpInsight”, as you stated above?

    Thanks!

    1. Andreas Hausladen Post author

      Start the IDE with an attached debugger, open a large project and press Ctrl+F12. While the IDE is busy switch to the debugger, pause the process and have a look at the call stack 😉

  2. Joe

    I’m getting the following error twice on every startup of XE2:

    Not all compiler speed pack x86 patches were applied. Failed patches:
    failed: CodeInsight ignore errors [Compiler.KibitzIgnoreErrors]

      1. David Heffernan

        Is there anything that those of us using XE2 update 3 can do? I can’t find any older versions of IDEFixPack. All the links seem to be for 5.0. Can I safely ignore the startup errors? Is there any way to disable them?

        Thanks!

        1. Andreas Hausladen Post author

          I don’t have Update 3 anymore, so I can’t test IDE Fix Pack with it. But if there are error messages from IDE Fix Pack, that tells you that a list of patches could not be applied, I can not tell you that the IDE/Compiler will work without errors.

          1. David Heffernan

            Would it be possible for me to get hold of an older version of IDEFixPack?

          2. David Heffernan

            Just got back from my hols and installed 4.6.6. Thanks a million!

      1. BBQ

        By “years ago” didn’t you mean “a year ago”? 🙂 I’d like IDE Fix Pack for Delphi 7 myself too.

        1. Andreas Hausladen Post author

          I already had discontinued DelphiSpeedUp when I thought that it might be worth to back-port some compiler performance patches from the Compiler Speed Pack.
          DelphiSpeedUp is actually the IDEFixPack for Delphi 7.

  3. Krystian

    Full build of single big project in D2009 (on SDD, i5-2500K 3.3GHz, 16GB, AV off):
    – Time Elapsed 00:01:26.81 – without IDE FixPack
    – Time Elapsed 00:00:19.61 – with IDE FixPack

    So IDE Fix Pack saves >1min. on every build (also saves my sanity ;).
    I’m making about 10-100 (or sometimes more) builds a day, so … I’ve made donation again!
    Thanks for supporting D2009 in new IDE Fix Pack’s!

  4. Pingback: Delphi 2010 ru » Blog Archive » IDE Fix Pack 5.0

  5. Pingback: Neues aus Delphi Land - TechBloggers

  6. David Heffernan

    Thanks a lot Andy. I really appreciate this.

  7. Brian

    Hi Andy
    Certainly greatly speeds up the switching between form and code in Firemonkey 🙂
    Do you know what causes the “ghosting” of some objects on a Firemonkey Form?
    (e.g a button (you only see a dotted outline when you click where it would be on the form (otherwise its invisible)
    I used to be able to fix it by simplying going to Tools, options, then click on OK then restart DElphi XE2
    but now that is not working…not sure why
    Thanks
    Brian

  8. Brian

    just a follow up..un installing then re installing Tchart pro fixed the ghosting problem I had 🙂

  9. Peter

    Hello Andy,
    thanks for your great work again!!

    Is there any chance, you might look at a bug introduced with XE2?
    I reported about this issue in QC 106925. It leads to a freezing IDE and loss of all unsaved changes whenever you derive a generic class while code completion is enabled.
    I know, your’re not paid for your work but EMBA won’t release a Update 5, I guess, respectively it’s called XE3.
    So, it would be really great! Unfortunately my skills far from helping oneself.
    If you’ve no time or are not interested in solving EMBAs problems, it’s OK, too. It’s just a question.

    Thank you very much!

Comments are closed.