digitalmars.D - Feature request: global versions
- Vathix (20/20) Mar 16 2005 It would be nice to be able to add global versions via pragma, like:
- xs0 (9/34) Mar 16 2005 Hmm, I think you can do
- Vathix (2/9) Mar 16 2005 But they're not global, they will only be set in that module.
- Thomas Kuehne (14/31) Mar 16 2005 -----BEGIN PGP SIGNED MESSAGE-----
- pragma (4/9) Mar 16 2005 Ahh.. gotcha. Just ignore my previous response then. I didn't even thi...
- pragma (6/15) Mar 16 2005 No need to use a pragma. We already use public/private for import, so w...
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.
Mar 16 2005
Hmm, I think you can do version(WINNT_5_1) { version=supports_opacity; version=supports_mouse_tracking; // etc } xs0 Vathix wrote: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.
Mar 16 2005
On Wed, 16 Mar 2005 17:37:02 +0100, xs0 <xs0 xs0.com> wrote:Hmm, I think you can do version(WINNT_5_1) { version=supports_opacity; version=supports_mouse_tracking; // etc }But they're not global, they will only be set in that module.
Mar 16 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Vathix schrieb am Wed, 16 Mar 2005 11:28:56 -0500: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-----
Mar 16 2005
In article <4k5mg2-cvj.ln1 lnews.kuehne.cn>, Thomas Kuehne says...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
Mar 16 2005
In article <opsnqn2irtkcck4r 24-49-100-147.kntnny.adelphia.net>, Vathix says...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
Mar 16 2005