| Thread overview | 
|---|
March 16, 2005 Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
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.
 | ||||
March 16, 2005 Re: Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to Vathix  | 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.
 | |||
March 16, 2005 Re: Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to xs0  | 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.
 | |||
March 16, 2005 Re: Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to Vathix  | -----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-----  | |||
March 16, 2005 Re: Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to Vathix  | 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  | |||
March 16, 2005 Re: Feature request: global versions | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to Thomas Kuehne  | 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  | |||
Copyright © 1999-2021 by the D Language Foundation
 
Permalink
Reply