https://issues.dlang.org/show_bug.cgi?id=17775
--- Comment #4 from Jonathan M Davis <issues.dl...@jmdavisprog.com> --- (In reply to ZombineDev from comment #3) > I agree that it's quite annoying. Perhaps we can add another predefined > constant like __IS_DEV_VERSION__ which would evaluate to true iff the > ddmd.globals.global._version has any non-digit character after the minor > version (or simply if its length is > 8)? The problem with that is that then you're testing specifically for dmd master not that the code is newer than a particular release. If a change is made in dmd master that's going to go in the next release, and __VERSION__ in dmd master is the version of the next release, then you can check __VERSION__, and the code will continue to do the right thing once dmd master becomes the next release, but if you're checking __IS_DEV_VERSION__, then that doesn't work. You'd have to change your code to use __VERSION__ once the next release is out. While I can understand that with however the version numbers are currently being generated, there may be issues having __VERSION__ be the number of the next release in master rather than the current reelase, I really think that if you consider what __VERSION__ is for, it really doesn't make sense for it to give the same number as the most recent release for master. That destroys its ability to be used for what it's designed for when dmd master is involved. --