-
Content Count
2195 -
Joined
-
Last visited
-
Days Won
113
Anders Melander last won the day on March 7
Anders Melander had the most liked content!
Community Reputation
1589 ExcellentTechnical Information
-
Delphi-Version
Delphi 11 Alexandria
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
This one maybe: https://blog.synopse.info/?post/2011/04/14/Enhanced-logging-in-SynCommons via: https://stackoverflow.com/a/7216537/2249664
-
The accepted answer to that question doesn't involve exceptions; It redirects the assertion handler to another function which then has access to the unit name and line number.
-
No, it's just begun. Okay, I'll stop now. I think I got my point across 🙂
-
Yeah but have you looked into install.bat (warning: have the suicide prevention hotline on speed dial if you do): :: compile installer echo. echo =================================================================== echo Compiling JediInstaller... build\dcc32ex.exe %INSTALL_VERBOSE% --runtime-package-rtl --runtime-package-vcl -q -dJCLINSTALL -E..\bin -I..\source\include -U..\source\common;..\source\windows JediInstaller.dpr if ERRORLEVEL 1 goto FailedCompile :: New Delphi versions output "This product doesn't support command line compiling" and then exit with ERRORLEVEL 0 if not exist ..\bin\JediInstaller.exe goto FailedCompile echo. echo =================================================================== echo Launching JCL installer... ::start ..\bin\JediInstaller.exe %* if not exist ..\bin\JCLCmdStarter.exe goto FailStart ..\bin\JCLCmdStarter.exe ..\bin\JediInstaller.exe %* if ERRORLEVEL 1 goto FailStart goto FINI
-
I'm not sure but I think it needs to be installed using some sort of installer which then generates the include file based on something, something, whatever, at this point I gave up and deleted everything.
-
That's funny. Almost all my problems with JCL and JVCL was caused by the fact that I installed them in the first place. Easily solvable though 🙂
-
Interesting take on Binary search (FYI)
Anders Melander replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Wow. That's a nice resource! -
Hmm. It seems to be doing odd/even rounding: FastTrunc(0.5) = 0 FastTrunc(1.5) = 2 FastTrunc(2.5) = 2 FastTrunc(3.5) = 4 Ah, it's the fluff. I got the logic mixed up: // Do we need to change anything? TEST EAX, MXCSR_ROUND_DOWN JNZ @SetMXCSR TEST EAX, MXCSR_ROUND_UP JZ @SkipSetMXCSR // Skip expensive LDMXCSR @SetMXCSR: [...] Yet again, the duck provides the answer.
-
So I have the following function which is supposed to truncate a Single using the SSE CVTTSS2SI instruction. Pretty simple except for all the MXCSR fluff. Yes, I know I could just use the SSE4.1 ROUNDSS instruction, which does all of the below in a single instruction, but that's not relevant to this. Anyway, the problem is that my function doesn't always agree with System.Trunc (which is implemented with the x87 instruction FISTP). I guess that is to expected in some case due to the difference in precision (80 vs 32 bits) but as far as I can tell that is not the problem I'm encountering here - and I would also only expect it to manifest as a problem in rounding and not truncation. Specifically I have the value -2343.5 System.Trunc(-2343.5) = -2343 FastTrunc(-2343.5)=-2344 Given that truncation is supposed to round towards zero, I believe that System.Trunc is correct. But then why is CVTTTSS2SI not doing that? function FastTrunc_SSE2(Value: Single): Integer; var SaveMXCSR: Cardinal; NewMXCSR: Cardinal; const // SSE MXCSR rounding modes MXCSR_ROUND_MASK = $FFFF9FFF; MXCSR_ROUND_NEAREST = $00000000; MXCSR_ROUND_DOWN = $00002000; MXCSR_ROUND_UP = $00004000; MXCSR_ROUND_TRUNC = $00006000; asm XOR ECX, ECX // Save current rounding mode STMXCSR SaveMXCSR // Load rounding mode MOV EAX, SaveMXCSR // Do we need to change anything? TEST EAX, MXCSR_ROUND_DOWN JNZ @SetMXCSR TEST EAX, MXCSR_ROUND_UP JZ @SkipSetMXCSR // Skip expensive LDMXCSR @SetMXCSR: // Save current rounding mode in ECX and flag that we need to restore it MOV ECX, EAX // Set rounding mode to truncation AND EAX, MXCSR_ROUND_MASK OR EAX, MXCSR_ROUND_TRUNC // Set new rounding mode MOV NewMXCSR, EAX LDMXCSR NewMXCSR @SkipSetMXCSR: {$if defined(TARGET_x86)} MOVSS XMM0, Value {$ifend} // Round/Trunc CVTSS2SI EAX, XMM0 // Restore rounding mode // Did we modify it? TEST ECX, ECX JZ @SkipRestoreMXCSR // Skip expensive LDMXCSR // Restore old rounding mode LDMXCSR SaveMXCSR @SkipRestoreMXCSR: end;
-
What new features would you like to see in Delphi 13?
Anders Melander replied to PeterPanettone's topic in Delphi IDE and APIs
Nonsense. Windows developers have been able to create professionally looking applications that for decades without the aid of layout controls. The main reason for amateurish looking applications is amateurish developers. The DevExpress layout control is tightly coupled to the rest of their library but even if it had been possible to separate it from the rest then it would be a terrible idea. Embarcadero does not have the resources or expertise to maintain and evolve something as complex as TdxLayoutControl. Just look at the state of the 3rd party libraries they already have incorporated into Delphi. I wouldn't mind a rudimentary layout control as a part of the VCL but if they can't even get something as simple as TGridPanel to work properly then I think it's better they not even try. -
Probably not but I have never tested with a map file produced by C++ Builder and it looks like the format differs slightly from that of Delphi. The segment/module list of a Delphi map file looks like this: Detailed map of segments 0001:00000000 0000FED4 C=CODE S=.text G=(none) M=System ACBP=A9 0001:0000FED4 00000C9C C=CODE S=.text G=(none) M=SysInit ACBP=A9 0001:00010B70 0000373C C=CODE S=.text G=(none) M=System.Types ACBP=A9 0001:000142AC 000007E8 C=CODE S=.text G=(none) M=System.UITypes ACBP=A9 0001:00014A94 00001E04 C=CODE S=.text G=(none) M=Winapi.Windows ACBP=A9 0001:00016898 000003A8 C=CODE S=.text G=(none) M=System.SysConst ACBP=A9 [...] As you can see there's no path in the module names. If you create a bug report at the map2pdb issue tracker and attach the map file (zipped) I will take a look at it.
-
What new features would you like to see in Delphi 13?
Anders Melander replied to PeterPanettone's topic in Delphi IDE and APIs
I think you'll have to wait a bit; It's only just entered puberty. 13 years old.... -
MAP2PDB - Profiling with VTune
Anders Melander replied to Anders Melander's topic in Delphi Third-Party
There used to be a link to download previous versions (which is how I managed to use it with Windows 7 at that time), but apparently they've removed that ability: https://community.intel.com/t5/Analyzers/where-can-I-download-an-older-version-vtune/m-p/1561574#M24281 😞 -
MAP2PDB - Profiling with VTune
Anders Melander replied to Anders Melander's topic in Delphi Third-Party
VTune only supports Intel hardware as it relies on certain CPU features that are only available on Intel CPUs. At least that what they claim: https://www.intel.com/content/www/us/en/developer/articles/system-requirements/vtune-profiler-system-requirements.html Maybe you can get an older version of VTune to work. For example the current version of VTune doesn't support hardware assisted profiling on my (admittedly pretty old) processor. -
https://stackexchange.com/sites