Jo Dillon wrote:
I don't suppose you could give any idea how long that reimplementation is likely to take?
I'd feel much better if I knew that :-(having flu right now).
The problem is the following (I hope I do not overlook anything):
* GPI files serve to store precompiled source, so-called "tree nodes" in a file. These tree nodes form a highly recursive data structure, pointing back to itself, etc.
* Currently, some high-level tree node structures (e.g. variable and function declarations) are re-compiled rather than retrieved verbatim. The idea was to simplify the GPI file; the result is that GPC slows down when loading a GPI file.
* When one unit imports a type from another one, the inner structure of that type is copied into the outgoing GPI file. This causes incompatibilities between one and the same type, when transported through two GPI files.
The current idea to solve the problems is to simplify the GPI mechanism:
* Do not re-compile anything, but store everything verbatim.
* Do not duplicate anything, but point to another GPI file instead.
In order to make the second item work, every identifier, data type, etc. must "know" in which unit it was declared. That's a lot of work.
Any help is welcome.
Peter