Hi,
as you might know, GPC supports "defines" for two purposes, as conditionals for `ifdef' etc. (like some other Pascal compilers do), and as macros (like the C preprocessor).
However, currently they're case-sensitive (like in C) which is different from other Pascal compilers (e.g., Borland Pascal) and generally not very "Pascalish", so I want to introduce case-insensitive defines. But there are also a few valid uses for case-sensitive defines, so I'd like to keep both.
Actually, I've already done most of the work. The question that remains is about the syntax. Currently, GPC understands:
#define foo -- inherited from the C preprocessor, but not recommended
{$d foo} -- we plan to change this. More precisely, we want to drop all the one-letter directives except those compatible to BP as well as $M (not the same as in BP, but no problem as it will only write a harmless message for the BP memory directives which are unnecessary in GPC) and $W (warnings -- quite widely used).
{$define foo} -- this is what BP uses.
So for BP compatibility, we should probably make {$define} case-insensitive, and rename {$d} to something longer and leave it case-sensitive.
Any suggestions? I thought of maybe {$def}, but this wouldn't make the difference to {$define} very clear. OTOH, something like {$define-case-sensitive} would make it clear, but it's very long. Peter has suggested {$cdefine} (c for `C' or for `case'). We're not very fond of either of them, perhaps someone has got a better idea...
Frank