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.
1. 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 -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/, 7977168E GPC To-Do list, latest features, fixed bugs: http://www.gnu-pascal.de/todo.html GPC download signing key: ACB3 79B2 7EB2 B7A7 EFDE D101 CD02 4C9D 0FE0 E5E8