The Curiouser and Curiouser Case of Case-Insensitive Tweaks

Recent commits to the DWScript repository doubled the compiler performance when compiling many small scripts, like happens in the unit tests suites.

This started from a first profiling run where the memory allocations around the UnicodeLowerCase function came out as top bottlenecks.

Thing is, Pascal being a case-insensitive language, there are lots of case-insensitive comparisons, lookups, searches and hashes, and turns out a key hash code was computed with code like


DWScript update for Delphi 12

DWScript has been updated for Delphi 12 support, there are only minor changes required and they are in the DWScript repository.

On a side note, the Delphi 12 IDE definitely feels more snappy when navigating code or invoking code insight (ctrl+space) on large projects (more than 2 MLOC), which is nice!

SamplingProfiler 23.8.21

SamplingProfiler 23.8.21 is now available. This version is all about cosmetic fixes:

  • Display Delphi internal version number for unknown Delphi versions instead of defaulting to ‘XE2’
  • Replaced old directory browser in search paths dialog
  • Minor HDPI fixes

Also the zip only includes the 64bit version now (which should work with 32bit executables).

FocusFusion 1.4.0 – fixes and speedups

FocusFusion 1.4.0 update is now available in the Windows Store. This version fixes two issues introduced with 1.3.7: the wavelet focus stacking being cropped too tight and small rendering artefacts.

There were also small performance improvements around memory management and caching for up to 10% faster fusion. This version also introduces the use of fused multiply-add CPU instructions (FMA) whenever available, but a the moment with zero improvements unless you have very, very fast main memory.

DWScript now support Delphi 11.3 Alexandria

Latest commits in the DWScript repository bring compatibility with Delphi 11.3 Alexandria.

There were very few changes required, and a couple bugs were fixed in the process. One test (stack overflow) had to be tweaked, apparently the new compiler uses more stack space, which caused one of the unit tests to fail in the “wrong “place.

All in all the 11.3 IDE and compiler appear way more stable, and AVX2/FMA support is nice… hopefully will get support in the CPU debugger as well soon 🙂