IDE Fix Pack 6.0 BETA

By | December 19, 2015

The IDE Fix Pack 6.0 BETA for XE2-10Seattle focuses on the Win64 compiler’s compile speed. It not only uses SSE2-SSE4.1 instructions to increase the compiler’s performance but it also optimizes for the most common cases. Micro optimizations are used for tight loops and functions that are called a million times.

Even with this patch the Win64 compiler isn’t on par with the Win32 compiler’s speed, but the difference isn’t that huge any more and there are still some possible optimization. But it takes a lot of time to analyze those and write the patches. And I if I would hold back the version 6.0 till all of those are completed, you will never see a version 6.0.

Because those changes to the compiler may intro bugs, I’m not releasing a gold version but a BETA version. That means that this isn’t meant for production use.

Don’t forgot: I’m not Embarcadero and I’m not fixing somebody’s pet bug. This BETA is all about the Win64 compiler speed optimizations. So please don’t report bugs (in the comments, at Google+, email) that aren’t related to the Win64 compiler speed optimizations. If the compiler outputs defect code with and without my patches, I won’t (and can’t) help you.

BETA Download:

Name IDE Version File Size Downloads Added

19 thoughts on “IDE Fix Pack 6.0 BETA

    1. Andreas Hausladen Post author

      You can report them in the comments here or in the comments in Google+ or write me an email. But I hope there aren’t any in the Win64 compiler optimizations.

      1. David Novo

        We have a bug that seems to exist in the previous few versions of IDE fixpack since 5.8 (the earliest I noticed it) and persists in the latest beta. We are using Delphi XE7 Update 1.

        If you compile our application in 32 bit with IDE fixpack on or off it compiles fine (although much faster if its on). If you compile in 64 bit without IDE fixpack it compiles fine (albeit quite slowly, it takes about 5 minutes to compile). If you compile in 64 bit with IDE fix pack we get
        [dcc64 Fatal Error] Signature Unit.pas(213): out of memory. It used to compile fine and took just 2 minutes.

        If it very consistent on that line of code, even though that class is perfectly fine and compiles in all other cases described above. Strangely, sometimes if you just change the unit a bit (i.e. adding a blank line, reordering some of the variable declarations) you can get it to compile. But maybe the next day, or on another developers machine, it wont compile any longer.

        If you are interested in pursuing this, I can arrange for you to have access to a VM with our infrastructure setup , please just contact me directly at the email address that I submitted with this post. I have no simple reproduction case. Our program is > 1M lines of code with fairly heavy use of generics, anonymous methods etc (although the class it it dying on is quite simple) so I have no way to simply reproduce it for you.

        1. Alex

          Hello,

          We have the exact same bug since we migrate to Delphi 10 (seattle) and the last stable IDE Fix pack.
          We get a out of memory error when compiling in 64 bits, always in the same file and same line.
          The package is about 95 000 lines and 5Mo of code.
          I’ll try to reproduce the case in a small project to send it to you.

  1. Uwe Schuster

    XE2 is unsupported, but in case anyone else does see something similar.

    It hangs (probably forever) while compiling a project with nothing but FastMM4 for Win64 with the XE2 IDE, while it compiles with XE6 and 10 Seattle. I have tried to compile XanaNews for Win64 and could repeat it with an empty project.

    1. Andreas Hausladen Post author

      I may drop the XE2 support for those patches because XE2 is the only version for which I had to add $IF conditions. All other Delphi versions don’t need $IF conditions (what means that the code snippets that I patch haven’t changed since XE3).

  2. Ich will meinen Namen nicht sagen

    “Don’t forgot: I’m not Embarcadero and I’m not fixing somebody’s pet bug.”
    Really? I heard you are!

  3. Pete

    Hi Andreas,

    thanks for your continuous support of the IDE.

    Merry Christmas!

  4. Günther Schoch

    Hello Andy

    first of all: Great job!
    We do have some external build scripts for our products and I switched one of them to the new BETA 6.0.

    Embarcadero Delphi for Win64 compiler version 30.0
    1003418 lines, 45.69 seconds, 27003712 bytes code, 2020160 bytes data.

    Compiler Speed Pack – Compiler patches applied.
    Embarcadero Delphi for Win64 compiler version 30.0
    1003418 lines, 24.71 seconds, 27003712 bytes code, 2020160 bytes data.

    gives pretty much a feeling on the speed increase!

    best regards and happy new year

    Günther

    1. Peter

      Does EMBA know about that patches? Why do we have still bottlenecks with every new compiler release?

      1. Andreas Hausladen Post author

        If they read my blog, or follow my Twitter account or read the announcements on Google+, then they would know. Otherwise: No.

        > Why do we have still bottlenecks with every new compiler release?

        Because it may be a business decision or lack of man power or both to not make the compilers faster. Supporting many platforms can bind a lot of man power.

        1. Peter

          I fear, I have to wait for Delphi 20.
          You are “one” person!? I understand, you are equal to 10 men (power) 😉

  5. Patrick van Logchem

    Hi Andy, if I may, here a bug report on IDEFixPackXE2Reg60beta2 (applied to Delphi XE2 16.0.4358.45540);

    When I compile my 64 bit app with it, my application crashes on the first call to VirtualAlloc (from System.InitUnits > GetMem > FastMM4 AllocNewSequentialFeedMediumPool). The CPU View shows this call overwrites the returnadress on the stack with $14000, resulting in a non-recovarable application crash.

    Switching back to IDEFixPackXE2Reg594 fixes this issue.

    Regards,
    Patrick

    1. Andreas Hausladen Post author

      That’s why it is a BETA version. And my feeling tells me that I should disable all 6.0 patches for XE2 and XE3 as both seems to have too many differences to the XE8 compiler (the one that I did my research on and used to implement the patches).

  6. arwan

    it works on my rad xe4 within windows 10, but unfortunatelly all third party components are missing, how do i restored those components?

    Thank You

    1. Andreas Hausladen Post author

      What do you mean with “all third party components are missing”? IDE Fix Pack doesn’t make your components vanish.

Comments are closed.