Hi,
A while back, when Frank released gpc-20030507, he noted that there were a few changes that we wouldn't like, especially regarding external function references.
Well ok, the first release forced me to add 'name' to all my external Pascal routines since the default was now all lowercase (even though Pascal routines are defined with an initial uppercase letter - a strange mismatch it seems). Although a nuisance, I accepted this was just a case of getting over the bit I wouldn't like. Of course, 'name' isn't in gpc-2.1, so everyone else running our software had to upgrade to 20030507 too. Having now done the upgrade to 20030830, I started getting errors due to duplicated unit declarations in the INTERFACE and IMPLEMENTATION blocks (for what reason?). Anyway, I deleted the duplication, only to discover that 20030507 required the duplication, so again, all of our machines had to be upgraded to 20030830.
Whilst I'm getting very good at rebuilding gpc, I would hope future gpc releases will focus on bug-fixes and ensuring backward compiler compatibility, thus removing the need to match our software to a precise compiler version.
Sorry for the moan, we're all always busy - keep up the good work (especially if you can fix the module global string declaration bug!!).
Regards
David Wood QinetiQ Farnborough
The Information contained in this E-Mail and any subsequent correspondence is private and is intended solely for the intended recipient(s). For those other than the recipient any disclosure, copying, distribution, or any action taken or omitted to be taken in reliance on such information is prohibited and may be unlawful.
Emails and other electronic communication with QinetiQ may be monitored. Calls to our Customer Contact Centre may be recorded for quality control, regulatory and monitoring purposes.
Wood David wrote:
A while back, when Frank released gpc-20030507, he noted that there were a few changes that we wouldn't like, especially regarding external function references.
Well ok, the first release forced me to add 'name' to all my external Pascal routines since the default was now all lowercase (even though Pascal routines are defined with an initial uppercase letter - a strange mismatch it seems).
Yes, an intentional one. Regular Pascal routines mustn't conflict at link time with, e.g., libc routines. For `external' without `name' we can't assume much in general at all, but they're more likely to be used to match C routines than other Pascal routines (where unit/module exports are available instead).
Although a nuisance, I accepted this was just a case of getting over the bit I wouldn't like. Of course, 'name' isn't in gpc-2.1, so everyone else running our software had to upgrade to 20030507 too.
In some cases you can help with a conditional (I recently posted an example from the GRX units).
Having now done the upgrade to 20030830, I started getting errors due to duplicated unit declarations in the INTERFACE and IMPLEMENTATION blocks (for what reason?). Anyway, I deleted the duplication, only to discover that 20030507 required the duplication, so again, all of our machines had to be upgraded to 20030830.
Sorry for the moan, we're all always busy - keep up the good work (especially if you can fix the module global string declaration bug!!).
Sorry, which problems exactly are you referring to (test program names if available, or demo code)?
Frank
Wood David wrote: [snip]
Having now done the upgrade to 20030830, I started getting errors due to duplicated unit declarations in the INTERFACE and IMPLEMENTATION blocks (for what reason?).
The reason for the change was, I think, to fix a bug in GPC's handling of Extended Pascal's requirement in paragraph 6.2.2.12, "Each defining-point that has as a region a module-heading shall also have as a region the module-block that is associated with that module-heading."
The bug was discussed a few months ago under the subject `EP question (was: gpc-20030507 -'.
If I'm not mistaken, GPC treats unit INTERFACE and IMPLEMENTATION blocks in a manner similar to module-headings and module-blocks so a bug-fix for modules ends up "fixing" units also.
Whilst I'm getting very good at rebuilding gpc, I would hope future gpc releases will focus on bug-fixes and ensuring backward compiler compatibility, thus removing the need to match our software to a precise compiler version.
Sometimes bug-fixes and ensuring backward compiler compatibility are mutually exclusive goals which is probably the case with your duplicated unit declarations difficulties.
Gale Paeper gpaeper@empirenet.com