On Friday, 24 May 2013 at 13:43:02 UTC, Dmitry Olshansky wrote:
I've found github pages to be just fine.
Then GitHub pages it is -
http://someboddy.github.io/phobos/ddocs/for-idioms/idioms.html
I've also added this link to the pull request and to the review
queue.
Turns out that doing shared classes (and singletons conversely)
has one big of disadvantage: you can't have TLS reference to
shared class instance (ditto with mutable reference to const
object).
It's a well-known problem of the way OOP is done in D - object
and reference to it are tightly coupled and qualifier applies
transitively to both.
There was a pull that allowed to separate qualifier of instance
from reference (handle) looking like this:
ref const(Object) refToConst;
ref Object mutableTlsRef;
Object mutableTlsRef; //same as above
ref const Object constRefToConst;
const Object constRefToConst; //ditto
The fact that we don't have it is part of the reason I don't
like doing OOP in D at all.
Like Jonathan M Davis said, it could easily be added as a class.
This is another example to D's flexibility - the ability to
implement such things without changing the compiler. But still -
a thing like this should be part of the language itself.
Anyways, since the implementation is so easy and short I could
tweet it, I see no reason why not to make a pull request. It's
gonna be in `std.typecons`, not in `std.idioms`, so I'll wait
with using it in `std.idioms` until it gets pulled - or gets
rejected in favor of a better(dmd) solution.