On Friday, 13 July 2012 at 01:22:59 UTC, Jonathan M Davis wrote:
There's big difference between a library and a the language
itself.
Surely that's a non sequitur... Aren't we modifying druntime here?
What part of this has to do with the _language_? Isn't druntime a
library?
Also, why can't you tell the user, "it's open-source! If it
doesn't suit your needs, go modify it! Removing const is trivial!"
What makes it so easy to say that about every library /except/
druntime?
You mean, "how do you choose *not* to use opEquals()?"?
Yes. Restrictions placed on Object affect _everyone_ using the
language, whereas restrictions placed on a particular library
only affect the users of that library. So, Object needs to be
able to work without forcing const on anyone using it, whereas
a 3rd library doesn't necessarily need to.
1. Again, see above -- Object is also in a library. Why doesn't
the reasoning apply there? It's trivial to remove const from the
library and recompile it -- _FAR_ easier than it is to modify any
arbitrary library. (Speaking of which, thanks for making it so
easy to modify & recompile druntime!)
2. Isn't it kinda /trivial/ to avoid opEquals? Just don't use it.
Make up your own method. What's wrong with this?