[fpc-devel] Generics.Collections as package for Lazarus or package for FPC RTL

Juha Manninen juha.manninen62 at gmail.com
Wed Jan 27 13:39:00 CET 2016

On Wed, Jan 27, 2016 at 1:14 PM, Maciej Izak <hnb.code at gmail.com> wrote:
> http://stackoverflow.com/questions/17951412/what-does-the-default-tarray-sort-comparator-actually-do-and-when-would-you-use

The Delphi code listed there looks implementation specific, too,
although I don't understand many details.

    pinfo := @VtableInfo[intf, info^.Kind];
    Result := pinfo^.Data;
    if ifSelector in pinfo^.Flags then
      Result := TTypeInfoSelector(Result)(info, size);
    if ifVariableSize in pinfo^.Flags then
      Result := MakeInstance(Result, size);

> Development process of Generics.* takes almost 2-3 years (most of time takes
> to create bug reports and finding workarounds... Even now I have a lot of
> not reported generics bugs). Without Sven cooperation whole investments
> would be impossible :).

Wow, it is a big task!
Anyway my common sense says that it can now be included in FPC trunk
as a package (not part of RTL).
In the worst case scenario only Generics.Collections lib breaks when
compiler internals change, and then Maciej will fix it.
A temporary copy is needed anyway in Lazarus sources, as Ondrej wrote.
We did the same thing with AdvancedIPC.
If the temporary copy works with FPC 3.0, then it can be used in
Lazarus IDE sources sooner.
If FPC trunk features are required, then it will take rather long.


More information about the fpc-devel mailing list