I'm pretty sure I don't have the stuff I was looking for any more, so all I can do is say where (from memory) I was able to get to. After all, I'm the one complaining and somewhat brashly...
Basically, I had the full set of FPC versions from the earliest (published) v2, and a substantial number of (PDF?) RTL etc. manuals that accompanied them. Working from those I was able to generate ASCII files in a consistent format (ps2ascii?) and extract a brief summary: I vaguely recall that I had to look at a couple of possible fields.
From the summary lines, I generated a permuted index (ptx?) such that if I started of with say
Eof Check for end of file
Filepos Position in file
Seek Set file position
SeekEof Set file position to end of file
I got an old-school UNIX-style list
Eof: | Check for end of file
FilePos: | Position in file
Seek: | Set file position
SeekEof: | Set file position to end of file
Eof: Check for | end of file
SeekEof: Set file position to | end of file
Eof: Check for end of | file
FilePos: Position in | file
Seek: Set | file position
SeekEof Set | file position to end of file
SeekEof: Set file position to end of | file
Seek: Set file | position
SeekEof: Set file | position to end of file
This does obviously need a lot of "stop words" ** : I've had to tweak that a lot manually in lieu of what I did years ago. But if you focus on the index position marked by | you will see that it groups all file operations together, all position operations together and so on.
I might have stopped with a textfile, or I might have generated an output PDF... I really don't remember.
I went on from there trying to generate a "this was added in version..." document, but that might have been when I got bogged down in file formats and the requirement of matching files and utilities... again, this was some years ago and I don't remember.
Disagree. The actual problem is that the RTL/FCL indexing is crap.
Specific points: A large number of fields, constants etc. are highly relevant but not indexed. This also applies in spades to helpers: a few days ago somebody was insisting that /of/ /course/ you'd use the string .Contains helper for something BUT unless you already know that TStringHelper is in SysUtils it's quite simply not indexed.
Those should be fixable.
More difficult, is the number of places that a function has a parameter that is passed as an integer (i.e. unindexable), when it should be an indexable enumeration. For example, fpRecv() at
https://www.freepascal.org/docs-html/current/rtl/sockets/fprecv.html has a flags field described as an integer when it should be a set, or at the very least a type that can be indexed with links to its constituent values. There's better examples where only a small number of values are acceptable but the field is still described as an integer, but I feel I've made my point.
I accept that that probably can't be fixed by indexing without a substantial amount of work in the RTL/FCL sources, either to change the types or to add annotations.
My apologies to all for the rant, but I really feel it needed to be said.
MarkMLl
Updated with footnote:
** This is actually an area where an "AI" trained in the computing domain if not the specific language (Pascal in our case) could be useful: recognising that "End of file" is a specific term of art and indexing appropriately.