Version Identifiers for Platforms / Architectures not supported by DMD
Nick Sabalausky
a at a.a
Mon Nov 7 05:20:42 PST 2011
"Walter Bright" <newshound2 at digitalmars.com> wrote in message
news:j9784p$24tu$1 at digitalmars.com...
>
> Based on my research:
>
> _WIN32 Microsoft NT, Windows 95, Windows 98, Win32s,
> Windows 2000
> _WIN64 Windows for AMD64
> linux Linux
> __APPLE__ Mac OSX
> __FreeBSD__ FreeBSD
> __OpenBSD__ OpenBSD
> __sun&&__SVR4 Solaris, OpenSolaris (yes, both macros are
> necessary)
>
> Hence FreeBSD rather than freebsd or Freebsd. The underscores just looked
> awful :-) and are unnecessary for D since the version tags are in a
> separate namespace.
>
> Had to come up with one for Solaris.
>
> APPLE is hopelessly generic, considering Apple has produced many operating
> systems.
>
> __WINDOWS__ is not what DMC uses. See
>
> http://www.digitalmars.com/ctg/predefined.html
>
You're completely contradicting your claim here of having used the gcc
idents. Obviously you changed the idents, and you had a reason for each one.
There's pretty damn good reason for changing "linux" too.
At least Phobos is finally ditching the absolutely rediculous philosophy of
"always use naming conventions from random other places, and don't ever even
think about being internally-consistent".
> Some people have protested that I have "trivialized" Linux by using
> "linux", but I am perplexed why that's ok for gcc but not for D.
>
Strawman.
> And finally, there is no such thing as a "sane" version identifier scheme.
> For one thing, OS vendors do not pick sane names. OS/2 is not an
> identifier. Neither is OS X. Nor is GNU/Linux. Nor do the OS vendors pick
> any sane identifiers for their own systems (look at what Sun did).
You're really stretching to say those aren't "sane" names. They're just
names, they're not even intended to be identifiers. To make identifiers
*for* them, removing the illegal chars (and using a non-schizophrenic casing
scheme) is an obvious and non-problematic solution. Picking *ONE* of them to
be lowercased instead of upper camel cased like the rest (or any other
inconsistent casing) isn't merely "not sane", it's also completely
unnecessary.
>
> Even if someone comes up with a naming scheme for D that most agree is
> sane, intuitive, and attractive, switching to it would again silently
> break a large swath of existing D code. D cannot advance by constantly
> breaking things.
Adding "Linux" as a preferred alternative to "linux" will not break large
swaths of code.
More information about the Digitalmars-d
mailing list