Adriaan van Os wrote:
Frank Heckenbach wrote:
- new options `--[no-]propagate-units' (on by default with `--mac-pascal', off in other dialects) (fjf987*.pas) (M)
Here are some additional notes about the --[no-]propagate-units flag.
- Compilation speed
In GPC, loading .gpi files is a recursive process of order O (2). This means that:
Please note that this applies to the number of units, not the number of declarations. So it's mainly a problem for projects with hundreds of units (which seems to be common on Mac Pascal for historical reasons, but which I don't see often elsewhere).
And, BTW, it's recursive only when using automake. With GP (or any self-made Makefile etc.) it's iterative. Of course, this doesn't change the O(n^2) time requirements, but cuts down on memory requirements (which are, I think O(n^2) with automake in the worst case, mostly(*) O(n) otherwise, again measured in the number of units).
(*) which means there is a very small O(n^2) factor in GP for the dependency information, but there don't have to be O(n^2) gpi file contents in memory at one time, as can happen with recursive automake (O(n) compilations running, each loading O(n) interfaces)
Frank