Jump to content
Syntri

IDE Fix pack for Rio

Recommended Posts

@jbg  I have tested uData.pas as well as a couple of my other projects. All good.  Many thanks for this fantastic helper.

 

I am curious though.  On Friday I created a new project in Rio that was very similar to one that showed the problem.  The new one loaded without any problem.   I was in the process of trying to make the projects as similar as possible to see what was different. The sample form I was about to load up was very simple, and quite different to uData.pas. 

 

Do you know what it was that triggered the error in some conditions but not others ?

Share this post


Link to post
1 minute ago, Sue King said:

Do you know what it was that triggered the error in some conditions but not others ?

A function that converts UTF8Strings that contain only ASCII characters to UnicodeStrings used an SSE 4.1 CPU instruction. But the SSE instructions are only used if there are more than 15 characters in the UTF8String.

Share this post


Link to post

@Sue King Try to save your data module in the text format (right click - Text DFM), and then reopen with the previous version of IDEFixPack installed.

Share this post


Link to post

Wow ! I would never have found that in my attempts to see what was going wrong.  Many thanks.

Share this post


Link to post

@Kryvich  In one of my tests I opened the dfm in Notepad++, changed the encoding from UTF-8 to ANSI and made another change so that it was saved. This didn't change anything.  I normally have my dfm's as text - my issue was with a form, not a datamodule, though I doubt that makes any difference.

 

I tried converting the dfm to binary, saving and then converting back to text, but it didn't make any difference with the previous version installed.

 

I'm just happy now that I can use the pack - the IDE loads so much better.

Share this post


Link to post

@Sue King uData.dfm in binary format opens without error with any version of IDEFixPack installed. But OK...

Usually, IDEFixPack is the first plugin I install in a new version of Delphi.

Share this post


Link to post
1 hour ago, Stéphane Wierzbicki said:

Do we still need IDE fix pack for RIO 10.3.1 ?

Let's see after the installation 🙂

None of the patches fail to install. So there are no code changes in places that IDEFixPack patches.

  • Like 2
  • Thanks 1

Share this post


Link to post

@jbg thank you for the confirmation.

I less and less understand Emb. This "new" IDE is so slow, flicker everywhere... 

 

Did they use their software? They should focus on quality rather than getting us such half backed solutions... 

 

 

  • Like 3
  • Thanks 1

Share this post


Link to post
On 2/14/2019 at 8:40 PM, Stéphane Wierzbicki said:

I less and less understand Emb. This "new" IDE is so slow, flicker everywhere... 

Did they use their software? They should focus on quality rather than getting us such half backed solutions...  

I think they only test on small demo projects. I believe (since embarcadero) they really focus on quality but they are not very smart when choosing what to do.  When trying to optimize code they should choose to remove big bottlenecks that cost minutes before working on code to win milliseconds. They have difficulties priorizing things that for us look obvious.  But there is hope, they understood someone is smarter than them and asked permission to integrate some idefixpack fixes !

 

I told them, "Without IDEFixPack Delphi is llike "Turbo Pascal" without the "Turbo" ! 

 

But idefixpack will allways be needed, because it also fixes some breaking bugs that would require months of waiting for an official patch.

Edited by Lchris
  • Like 4

Share this post


Link to post

Just a note:

After updating the IDE from 10.3 to 10.3.1 with the WebInstaller you need to reinstall the IDE Fix Pack development snapshot, because the WebInstaller partly uninstalled it by removing the IDEFixPackStartup.bpl from the "Known IDE Packages" registry key.

  • Like 1
  • Thanks 5

Share this post


Link to post
5 hours ago, Lchris said:

I believe (since embarcadero) they really focus on quality but they are not very smart when choosing what to do. 

EMBT is close to the test platform Gurock and Sencha JS now, so they should better learn to eat their own dogfood.
Enjoy your meal :classic_love:

Share this post


Link to post
6 hours ago, Lchris said:

But there is hope, they understood someone is smarter than them and asked permission to integrate some idefixpack fixes !

Well yes.. but it's also sad that they couldn't (wouldn't?) fix those bugs for like a decade. And for a company selling a compiler + IDE I expect them to be able to fix such bugs themselves.

And even if they didn't know how to do it themselves, why didn't they include the IDEFixpack earlier? The IDEFixpack existed for many years before they decided to include it.

Now that they've included it, they only seem to have included very minor fixes, because you STILL need to install the 3rd party IDEFixpack for the IDE to be somewhat stable.

 

So to be honest I'm not really that hopeful anymore. I'd really like for Emba to (positively) surprise me with 10.4, but I'm not getting my hopes up.

  • Like 6

Share this post


Link to post

Here is a new development snapshot of IDE Fix Pack for Rio.

 

This version detects the WebInstaller and disables IDE Fix Pack inside the WebInstaller so that it doesn't crash the installer anymore.

 

 

fastdccD103vDev.7z

IDEFixPackD103RegDev.7z

  • Like 4
  • Thanks 11

Share this post


Link to post

Please pardon my ignorance here but I haven't 'deployed' fastdcc before.

hat is the process to deploy pls?  Do I simply run fastdcc32.exe in the file and like idefixpack it will extract and install itself, and I presume fastdcc32hok.dllx,  in the appropriate place?  I only install the 32bit stuff.

How do I check/confirm it is installed correctly?

Regards & TIA,

Ian

Share this post


Link to post
1 hour ago, Ian Branch said:

process to deploy

From: https://andy.jgknet.de/blog/ide-tools/ide-fix-pack/

 

fastdcc

There are 2 ways to use fastdcc.

1. Using fastdcc directly

  1. Extract the 7z file into your $(BDS)\bin directory.
  2. Start fastdcc32.exe as if it was dcc32.exe
    Start fastdcc64.exe as if it was dcc64.exe
    Start fastdccaarm.exe as if it was dccaarm.exe

1. Replacing dcc32.exe by fastdcc32.exe (don’t do this if you want to be able to install future RAD Studio/Delphi/C++Builder updates)

  1. Extract the 7z file into your $(BDS)\bin directory.
  2. Rename dcc32.exe, dcc32.jdbg and dcc32.de/fr/jp to dcc32compiler.exe/jdbg/de/fr/jp.
  3. Rename dcc64.exe, dcc64.jdbg and dcc64.de/fr/jp to dcc64compiler.exe/jdbg/de/fr/jp.
  4. Rename fastdcc32.exe to dcc32.exe
  5. Rename fastdcc64.exe to dcc64.exe
  6. Rename fastdcc32Hook.dll to dcc32Hook.dll
    For XE3 or newer: Rename fastdcc32Hook.dllx to dcc32Hook.dllx (“x” is necessary for Delphi’s copy protection)
  7. Rename fastdcc64Hook.dll to dcc64Hook.dll
    For XE3 or newer: Rename fastdcc64Hook.dllx to dcc64Hook.dllx
  8. Start dcc32.exe/dcc64.exe or msbuild.
  • Like 1

Share this post


Link to post

Hi FredS,

Excellent.  Thank you.

So, is the idea to get the IDE to use fastdcc32 in lieu of dcc32, or is it purely for manual calling?

If it is intended for the IDE to call, where/how is this achieved?

Regards,

Ian

Edited by Ian Branch

Share this post


Link to post
2 hours ago, Ian Branch said:

, or is it purely for manual calling?

This!

Share this post


Link to post

In practice you end up using the second version because the msbuild scripts shipped by emba have dcc32 hardcoded deep inside them.

I keep a backup of the bin directory first so I can roll back for updates.

 

 

 

  • Like 2

Share this post


Link to post
On 2/22/2019 at 5:09 AM, FredS said:

From: https://andy.jgknet.de/blog/ide-tools/ide-fix-pack/

 

fastdcc

There are 2 ways to use fastdcc.

1. Using fastdcc directly

  1. Extract the 7z file into your $(BDS)\bin directory.
  2. Start fastdcc32.exe as if it was dcc32.exe
    Start fastdcc64.exe as if it was dcc64.exe
    Start fastdccaarm.exe as if it was dccaarm.exe

1. Replacing dcc32.exe by fastdcc32.exe (don’t do this if you want to be able to install future RAD Studio/Delphi/C++Builder updates)

  1. Extract the 7z file into your $(BDS)\bin directory.
  2. Rename dcc32.exe, dcc32.jdbg and dcc32.de/fr/jp to dcc32compiler.exe/jdbg/de/fr/jp.
  3. Rename dcc64.exe, dcc64.jdbg and dcc64.de/fr/jp to dcc64compiler.exe/jdbg/de/fr/jp.
  4. Rename fastdcc32.exe to dcc32.exe
  5. Rename fastdcc64.exe to dcc64.exe
  6. Rename fastdcc32Hook.dll to dcc32Hook.dll
    For XE3 or newer: Rename fastdcc32Hook.dllx to dcc32Hook.dllx (“x” is necessary for Delphi’s copy protection)
  7. Rename fastdcc64Hook.dll to dcc64Hook.dll
    For XE3 or newer: Rename fastdcc64Hook.dllx to dcc64Hook.dllx
  8. Start dcc32.exe/dcc64.exe or msbuild.

Hmmh, the current set of files for 32bit is named slighty different, as a suffix is used:

dcc32.exe

dcc32260.de

dcc32260.dll

dcc32260.jdbg

 

What do I have to rename them to exactly?

 

Share this post


Link to post

OK, figured it out myself.

 

dcc32.exe -> dcc32compiler.exe

dcc32.de -> dcc32compiler.de

 

I've left dll and jdbg as original and it works.

Share this post


Link to post

https://andy.jgknet.de/blog/2019/03/ide-fix-pack-6-4-released/

 

Changelog

  • Fixed: Packages with duplicate units may not have caused a fatal compiler error.
  • Added: Support for Delphi 10.3 Rio
  • Added: StyleUtils.inc performance optimizations for faster UI rendering (D10.3)
  • Added: Infinite loop detection in TDebugger.UpdateEventLog
  • Added: Fix for TStringList.IndexOfName bug (RSP-21633)
  • Added: Fix for access violation in the Welcomepage JScript9.dll binding
  • Added: TCustomListBox.ResetContent is skipped if the handle isn’t created yet
  • Added: More STRINGCHECKS-free RTL code (2009/2010)
  • Added: More DFM Streaming optimizations
  • Added: RTL and DFM streaming patches to remove STRINGCHECKS (2009/2010)
  • Added: Removed VclFixPack OutputDebugString calls (2009)
  • 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
  • Added: CodeGen: Remove of some unnecessary push/pop operations
  • Added: Expression Evaluator allows array access to pointers even if the type wasn’t declared with {$POINTERMATH ON}
  • Added: Max number of constants in a function was increased from 64K to 16M (2009-XE3)
  • 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] (XE+)
  • Added: TStrings.GetDelimitedText optimization
  • Improved: Slight faster TStringList.IndexOfName optimization for sorted string lists.
  • Like 4
  • Thanks 2

Share this post


Link to post
12 minutes ago, Martin Sedgewick said:

Added: StyleUtils.inc performance optimizations for faster UI rendering (D10.3)

A little early to be sure but it appears to have solved my painting problem:

 

Thanks Emba.. err.. Andy..

 

 

  • Like 1

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

×