TLBB: The Last Big Breakage

luka8088 luka8088 at owave.net
Sun Mar 16 05:25:05 PDT 2014


On 16.3.2014. 5:08, Andrei Alexandrescu wrote:
> D1's approach to multithreading was wanting. D2 executed a big departure
> from that with the shared qualifier and the default-thread-local
> approach to data.
> 
> We think this is a win, but D2 inherited a lot of D1's thread-related
> behavior by default, and some of the rules introduced by TDPL
> (http://goo.gl/9gtH0g) remained in the "I have a dream" stage.
> 
> Fixing that has not gained focus until recently, when e.g.
> https://github.com/D-Programming-Language/dmd/pull/3067 has come about.
> There is other more stringent control of shared members, e.g.
> "synchronized" is all or none, "synchronized" only makes direct member
> variables unshared, and more.
> 
> This will statically break code. It will refuse to compile code that is
> incorrect, but also plenty of code that is correct; the compiler will
> demand extra guarantees from user code, be they in the form of casts and
> stated assumptions.
> 
> I believe this is a bridge we do need to cross. One question is how we
> go about it: all at once, or gradually?
> 
> 
> Andrei
> 

+1 on fixing this!



More information about the Digitalmars-d mailing list