On Sunday, 10 November 2013 at 19:47:16 UTC, Walter Bright wrote:
It's long been recognized that using global variables to
communicate between interfaces is a bad idea. And it isn't even
supported for dlls, because the proposed solution to making
them work is to wrap them with a function (much like D
properties).
We'd be going out of our way to support a recognized bad
paradigm. There is currently no existing D code that requires
this. If we add it, then we'd be stuck with supporting it for
backwards compatibility. If we don't add it, and it becomes
some sort of crisis that it isn't supported, we can add it in
later without breaking things.
Yes, data interfaces (be it TLS or __gshared) are bad and make it
more difficult to maintain a stable ABI. I also agree that TLS
accesses shouldn't be a big problem.