On Wed, Apr 15, 2009 at 2:19 AM, Walter Bright <newshou...@digitalmars.com> wrote: > Tomas Lindquist Olsen wrote: >> >> After reading more, I just can't help but feel this is wrong. >> >> linux is still the only version identifier following this "logic". >> >> Comparing http://predef.sourceforge.net/preos.html and D: >> >> linux -> linux >> _WIN32 -> Win32 >> _WIN64 -> Win64 > > Microsoft predefines _WIN32 for Windows 64, too! > D: > Windows: All members of the Windows family > Win32: specific to Windows 32 > Win64: specific to Windows 64 > That seems sensible to me.
Agreed! > >> __FreeBSD__ -> FreeBSD > > The __ are ugly but necessary because of the C standard, but they are ugly > and *unnecessary* for D. Agreed! > >> __APPLE__ or __MACH__ -> OSX > > Apple has made many operating systems besides OSX, so __APPLE__ is out. I > can't even remember which OS Mach is. According to the site I linked __MACH__ and __APPLE__ are both for OSX, I guess that might be wrong, I've never really had to code for OSX. Still Apple call it "Mac OS X" so one could argue that "MacOSX" is a better identifier. > >> Even if you strip underscores, OSX and Win32/64 still don't match >> C/C++ identifiers. Why should linux be special? > > Because the gcc macro suits the need perfectly. The others don't. I simply don't agree here. To me, linux (as opposed to Linux) is a special case that I need to remember, the others follow a pattern. > >> I realise this is a minor thing probably not worth the time it gets, >> but D seems to have a tendency to throw in inconsistencies in every >> crack there is to find ... > > If gcc had any consistency, I'd use that. But it doesn't. It makes sense to > use gcc's precedent when gcc makes sense, and to diverge when gcc does not > make sense. > Maybe it makes sense to you. Not to me.