version(number) is completely useless
Walter Bright
newshound2 at digitalmars.com
Thu Jul 21 03:57:31 UTC 2022
On 7/19/2022 6:34 PM, Steven Schveighoffer wrote:
> The thing I miss the most for versions is a `version1 or version2` mechanism. I
> doubt we will ever convince Walter this is a good idea.
I know what will happen if that is allowed, and it is not pretty.
The idea is to encourage people to work at teasing out just what should be a
version and what shouldn't be, not have arithmetic decide what it is.
This can be faked with `static if` and some enums. Long ago, some users decided
that druntime would be better served using `static if` arithmetic on enums
instead of versions. Of course, what quickly emerged was the usual C snarl, and
nobody knew what code was being compiled (it was made even worse by mutual
dependencies). The problem was dropped in my lap, because nobody could figure it
out. I didn't even try to figure it out, I figured out what the versions should
be and removed all that `static if` nonsense.
If version arithmetic was added, it is guaranteed to produce a coding horror.
But by then it will be too late to change our minds, and you and I will be stuck
in hell.
At least using `static if` on enums as versioning I have managed to discourage,
like using operator overloading for I/O. It's also why enums cannot be set on
the command line :-)
> But in any case, we have the numeric versions, which are 100% useless (because,
> as you say, they are not scoped to any dependencies), it would make sense to at
> least make that feature useful.
Yes, the numbers are a failed idea of mine. I'd endorse deprecating them.
More information about the Digitalmars-d
mailing list