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.

Reply via email to