On 15 Nov 2002 at 18:51, Frank Heckenbach wrote:
The `gpc1' spec was removed, not specs processing in general.
My apologies for the confusing wording. I was trying to recall the Changelog entry from memory.
The specs are meant for the global defaults, not for per-user settings etc. The difference may be hard to understand to a Windows user, but please try. ;-)
Actually, I understand quite well.
A global unit path might be alright, but not a local path for personal units etc. (I can't tell from your information which one you mean)...
Global paths in all cases.
...and certainly not a dialect option.
I do not want to debate philosophy, but I disagree with your statement. Dialect is something I do want to set on a global basis. It does no good when five members of a team are developing an Extended Pascal program if the sixth has been unintentionally using GNU Pascal dialect options (because the compiler has been defaulting to GP dialect) and so produces a program section incompatible with EP. GPC used to provide separate drivers so that, e.g., one could delete all but the EP (default) driver to ensure that users wouldn't accidentally put the compiler in GNU Pascal mode. That had been eliminated, so I fell back on configuring the spec to default to EP, and now that too has been eliminated.
Consider the case when you (or some other user, maybe someone who picks up your specs from the list or so) compiles a package downloaded from the net and gets mysterious errors because the package doesn't assume such local options.
Such errors usually don't mystify me, because I explicitly add "--gnu- pascal" to the compiler invocation when attempting to use GPC-related packages. The point is that we want to use EP company-wide and don't want someone accidentally producing invalid EP (but valid GNU Pascal) because of the compiler defaults. It is perfectly acceptable for a user to override the EP default by specifying, e.g., "--gnu-pascal" on the command line, but we don't want GPC accepting anything other than EP unless asked for explicitly by user action.
Therefore, invoking `gpc' should exhibit the default behaviour, and the specs are meant to guarantee this on various systems....
It's fine that many, or perhaps most folks want to default to GNU Pascal, and it's fine that the specs supplied with GPC default as you wish. That isn't what we're trying to achieve, however.
...rather than for local changes.
"Local," in this case, meaning "company-wide."
So I really recommend doing something "on top of" the gpc executable, e.g. a little wrapper script (batch file under Dos/Windows)....
The problem with little wrapper scripts is that they can be bypassed unintentionally (e.g., someone forgets to use "our-gpc" and uses "gpc" directly, or changes their local PATH so that the wrapper directory appears after the GPC directory, etc.).
Everything you change locally in the compiler driver, specs etc. will later come to bite you ...
Thank you for the warning.
-- Dave