They did not compile. Didn't you get the forum PM?
I checked and I did get it, and seeing it jogged my memory, I got it 10 mins before I went off for a long weekend. I planned to reply later but forgot completely.
It is simply a matter of enabling delphi mode. Apparently I added a "uses sysutils;" in delphi at some point, and because the $mode was below it, it was skipped. Some of the demoes might still need delphi mode manually.
The new archive (still
here) fixes that and synchronizes the generics version (genlight) with current SVN.
In practice I nowadays mostly use the generics version, but my datasets are smaller atm, so if there is a performance difference it matters less. I would be obliged if you benchmarked both. Genlight works a bit like generics.collections, so should be easy to test.
As said basically it is a generic tstringlist alike, but with one level extra indirection (to avoid too slow ordered insertion) and that keys can also be different from strings. Even then, keys are still ordered (which is useful for e.g. tdatetime ranges)
The original design aspect was to avoid tstringlist ordered insertion performance wall, where insertions/second totally breaks down with several hundred thousands of strings, and quick iteration as secondary case. But a tree was too memory hungry (application was then still 32-bit, and index overhead had to be limited).
Lookup was also important (because of the ordered insertion alone), but not as important as iteration as long as it was decent.
The procedural version was the core of my first production 64-bit program back somewhere in the 2002-2005 period.