Peter N Lewis wrote:
The change is relatively localized, but it does change the entire compilation loop, unsurprisingly, with just a few changes elsewhere. One thing I've noticed is that I use some {$L file.c} directives in my code. gp (as shipped) indicates that these "included files" don't have any dependency issues, but as far as I can see, they in fact do have dependency issues in that they must be compiled before the source file that includes them or gpc will error out, so they act as an implementation dependency. Is that correct or am I confused about it?
I have gp in my own subversion repository now, so I can track my changes. I have essentially four changes:
- gp case insensitive issue. Causes needless recompiling on a case
insensitive file system when source files have cased names (like MacTypes.p). This may become more of an issue if Apple actually moves to more emphasis on a case sensitive version of HFS+, because Mac Pascal programers generally do use such case names, and we'll have to come up with a solution that works with them even on a case sensitive file system, even if it means enforcing case sensitivity in unit names.
- --print-output output file. This adds support for outputing the
--print-* data to a file. I use this as part of a Make depend process in that gp can output the list of dependencies to a file while still outputing progress information to stdout
- BasicProgress, which adds support for outputing Make-like progress,
eg "Compiling MacTypes.p" at verbose level 1.
- -j4, which adds support for 4 simultaneous compiles during build,
allowing the compiles to terminate cleanly after one of them errors, supporting dependency for $L files.
The build time improvements that I see with Peter's gp are astonishing, here is an example:
* powerpc-apple-darwin7, single core, single CPU, 1.8 GHz PowerPC G5 build time with standard gp: 1 hour 30 minutes build time with Peter's gp (-j4): 37 minutes
* i686-apple-darwin8, dual core, single CPU, 3.6 GHz Pentium 4 build time with standard gp: 30 minutes build time with Peter's gp (-j4): 11 minutes
That's 2.4 to 2.7 times faster.
Regards,
Adriaan van Os