It would be nice to be able to add global versions via pragma, like:
pragma(version, "my_global_version");
I understand the reasons behind the current version system, but sometimes
it's very handy for a library to have a single version to turn on a bunch
of others.
Perhaps if the version is only set after the pragma (not forward
referenced) it will still be easy for tools to use.
Example:
version(WINNT_5_1)
{
pragma(version, "supports_opacity");
pragma(version, "supports_mouse_tracking");
pragma(version, "supports_visual_styles");
// ...
}
It could go on and on for different versions and features. Do we really
want to put all those versions on the command line?
The version numbers like version=5 could work here, but it just doesn't
cut it; I think those version numbers should be left to the end
application, not libraries.

It would be nice to be able to add global versions via pragma, like:
pragma(version, "my_global_version");
I understand the reasons behind the current version system, but
sometimes it's very handy for a library to have a single version to
turn on a bunch of others.
Perhaps if the version is only set after the pragma (not forward
referenced) it will still be easy for tools to use.
Example:
version(WINNT_5_1)
{
pragma(version, "supports_opacity");
pragma(version, "supports_mouse_tracking");
pragma(version, "supports_visual_styles");
// ...
}
It could go on and on for different versions and features. Do we really
want to put all those versions on the command line?
The version numbers like version=5 could work here, but it just doesn't
cut it; I think those version numbers should be left to the end
application, not libraries.

It would be nice to be able to add global versions via pragma, like:
pragma(version, "my_global_version");
I understand the reasons behind the current version system, but sometimes
it's very handy for a library to have a single version to turn on a bunch
of others.
Perhaps if the version is only set after the pragma (not forward
referenced) it will still be easy for tools to use.
Example:
version(WINNT_5_1)
{
pragma(version, "supports_opacity");
pragma(version, "supports_mouse_tracking");
pragma(version, "supports_visual_styles");
// ...
}
It could go on and on for different versions and features. Do we really
want to put all those versions on the command line?

Setting/changing trans-file parsing properties like version inside of
your source code raises a big issue.
Either the parsing depends on the order those files are parsed or
all currently parsed files have to be reparsed
(risking circular - read: endless - reparsing).
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFCOGdk3w+/yD4P9tIRAjkhAKCxDoaJ8/Y2sSnHpMUBRkanJWfOfgCcCjLn
CjzxSwMJ4DCq2yYe1Bn3tak=
=8zDH
-----END PGP SIGNATURE-----

Setting/changing trans-file parsing properties like version inside of
your source code raises a big issue.
Either the parsing depends on the order those files are parsed or
all currently parsed files have to be reparsed
(risking circular - read: endless - reparsing).

Ahh.. gotcha. Just ignore my previous response then. I didn't even think about
the compilation-order dependency that this would generate.
- EricAnderton at yahoo

It would be nice to be able to add global versions via pragma, like:
pragma(version, "my_global_version");
I understand the reasons behind the current version system, but sometimes
it's very handy for a library to have a single version to turn on a bunch
of others.
Perhaps if the version is only set after the pragma (not forward
referenced) it will still be easy for tools to use.

No need to use a pragma. We already use public/private for import, so why not
for version and debug too?

public version = foo;
public debug = bar;

..as the default use of version is already 'private' in a sense. Also, it
makes the behavior *very* explicit (which I think is why they're 'private' now).
- EricAnderton at yahoo