jbg
Members-
Content Count
69 -
Joined
-
Last visited
-
Days Won
26
Everything posted by jbg
-
IDE Fix Pack 6.4.3 breaks compilation
jbg replied to Primož Gabrijelčič's topic in Delphi Third-Party
CodeGenMod.Win32.FastFuncProlog CodeGenMod.Win32.VirtFinalSealed Those 2 patches didn't work in 10.3.2. -
IDE Fix Pack 6.4.3 breaks compilation
jbg replied to Primož Gabrijelčič's topic in Delphi Third-Party
You can try to set the IDEFixPack.DisabledPatches environment variable to a semicolon separated list of patch names. The easiest way is to open a cmd.exe and use SET IDEFixPack.DisabledPatches=CodeGenMod.Linker.CombineDllImportTab;CodeGenMod.OmitResultCopyRecord bds.exe That way you don't have to change your system and you can faster find the the broken patch. I would start by disabling all "CodeGenMod" patches first. Even if you don't use the "-x-XX" command line options the patches have to hook the compiler's code. The next step would be to use a larger block until the compiler starts working correctly (a rebuild of the project may be needed because of possible defect *.dcu files). Then you can reduce the number of disabled patches until you reach the patch or the patches that crash the compiler. Here is the list of compiler patches. CodeGenMod.Linker.CombineDllImportTab CodeGenMod.OmitResultCopyRecord CodeGenMod.Win32.FastFloat CodeGenMod.Win32.FastFuncProlog CodeGenMod.Win32.FastIntfVirtualStub CodeGenMod.Win32.OptimizedCodeGen CodeGenMod.Win32.VirtFinalSealed Compiler.BackgroundCompilerFileExists Compiler.CacheControl Compiler.CompareFileName Compiler.CRTL2010 Compiler.DbkGetFileIndex Compiler.DirectorySearch Compiler.DrcFileBuffer Compiler.Ext.LinkerOptions Compiler.FileNameStringFunctions Compiler.FileSearchCache- Compiler.FindPackage Compiler.Fixes Compiler.ImportedSymbol Compiler.KibitzCompilerImplUnitReset Compiler.KibitzGetValidSymbols Compiler.KibitzIgnoreErrors Compiler.MapFile.fprintf Compiler.MapFileBuffer Compiler.Memory.Shrink Compiler.NoUnitDiscardAfterCompile Compiler.Optimization Compiler.Package.CleanupSpeed Compiler.PrefetchToken Compiler.ReleaseUnusedMemory Compiler.ResetUnits Compiler.Scanner.GetSourceLine Compiler.SourceOutdated.1 Compiler.StrLenCalls Compiler.SymLookup Compiler.SymLookupScope Compiler.Unit.RdName Compiler.UnitBlockFreeHook Compiler.UnitFindByAlias Compiler.UnitFreeAll Compiler.UnlinkImports Compiler.WarnLoadResString Compiler.WriteCloseHandleThread ErrorInsight.SetKibitzedSinceCompiled -
If it is neither the file system nor registry accesses, then you could try to debug the Delphi IDE (with another Delphi instance) and pause the debugged IDE while it is taking its time to save the project. Then you can switch to the main-thread and look at the call stack to find out what the IDE is doing. How to debug the Delphi IDE itself.
-
What is your Windows version. I have Windows 10 1809.
-
I only have the Community Edition, but I can't reproduce this. Delphi 10.3 Update 1 (26.0.33219.4899)
-
IDE Fix Pack 6.4.2 (Rio) - not all Compiler Speed Pack x86 patches were applied....
jbg replied to santiago's topic in Delphi Third-Party
Could you have a look at the HKCU\Software\Embarcadero\BDS\20.0\Experts registry key. Maybe the CompilerSpeedPack32 is listed 2 times. -
Here is a mp4 screen recording that shows the "DLL becomes EXE" bug without an installed IDE Fix Pack. DelphiOptionsetDllToExeBug.mp4
-
No, IDE Fix Pack can't do that. You can ask that Embarcadero.
-
Repeat my steps and "After 5,select All targets"
-
That did the trick. Now I can reproduce this. "Unfortunately" this is not an IDE Fix Pack bug as I can also reproduce it without IDE Fix Pack installed.
-
I still can't reproduce this bug. I always get a DLL file. Open ProjectGroup1.groupproj Right click on Project2.dll in the ProjectManager and select "Build" to build the project Verify that the Project2.dll was created in Windows Explorer Right click on Project2.dll in the ProjectManager and select "Options..." Navigate to "Building/Delphi Compiler" Click on the "Apply..." button Click on the "..." button and open the testoptions.optset file Click on "Modify this configuration (and let the "Replace all values" in the combobox untouched) Close both dialogs with "OK" and "Save" Right click on Project2.dll in the ProjectManager and select "Build" to build the project The Project2.dll was rebuilt (but no Project2.exe was created)
-
I can't reproduce this. Can you attach a demo project(group) that I can open and test?
-
List of all uses clause items in the whole project
jbg replied to PeterPanettone's topic in GExperts
You can use TListView in a virtual mode then it is as fast as a VirtualStringTree. OwnerData = True OnData = ListView1Data procedure TForm6.Button1Click(Sender: TObject); begin ListView1.Items.Count := 100000000; end; procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem); begin Item.Caption := IntToStr(Item.Index); end; -
The newest development snapshot should fix this bug. http://andy.jgknet.de/fixpack/dev
-
And another development snapshot is available. This time the functions in StyleUtils.inc (Vcl.Styles) got optimized what makes the UI rendering faster. IDEFixPackD103RegDev.7z fastdccD103vDev.7z
-
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
-
The development snapshot of IDE Fix Pack is actually compatible with the 10.3.1 update but because the WebInstaller loads the IDE Fix Pack DLLs into the installer the crash happens. Furthermore the WebInstaller deletes some registry keys and so partly uninstalls IDE Fix Pack. The next development snapshot will detect the WebInstaller and doesn't install the patches into it. It also tells the user to reinstall IDE Fix Pack after the update.
-
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.
-
None of the patches fail to install. So there are no code changes in places that IDEFixPack patches.
-
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.
-
A new development snapshot of IDEFixPack is available. This fixes the usage of a SSE 4.1 CPU instruction ("ptest") in a code block that only checked for SSE 2. This bug caused older CPUs to throw 0xC000001D "illegal instruction" exception. IDEFixPackD103RegDev.7z fastdccD103vDev.7z
-
I don't have any processor that old, so finding the illegal instruction is like finding a needle in the haystack. Could you run the IDE with WinDbg or any other debugger attached, so you get the CPU instruction that isn't supported?
-
$C000001D is illegal instruction. What CPU do you have? Maybe there is an SSE4 or SSE4.2 instruction in IDEFixPack that isn't protected by an availability check.
-
I can't reproduce this. I've created a VCL Win32 Application and added your DataModule to the project. Closed the project, opened it and opened the DataModule. But no exception was thrown.
-
Fixed download links: IDEFixPackD103RegDev.7z fastdccD103vDev.7z