On 03/09/2010 03:35 PM, Justin Johansson wrote:
#3 problems with circular module references.  I forget some of the detail but 
think, if I
recall correctly, that it was to do with static class members so had to pull a 
lot of source
code into one big file .. then leading to problem #4


Justin Johansson


I hate the restriction on modules with static constructors and cyclic dependencies. IMO it's the most patronizing 'feature' D has. A year or so ago I ran into this issue during my first (and last) big project in D. Just last week I started working on it again and replaced everything that got initialized in a static constructor with stuff akin to

static Foobar foobar(){
  static Foobar _foobar;
  static bool inited = false;
  if(!inited){
    _foobar = new Foobar();
    _foobar.init();
    inited = true;
  }
  return _foobar;
}


(on a side note, string mixins are turning out to be quite handy)

It killed the cyclic dependency problems, but I expect this pattern isn't a good thing to have littered all over the place.

Reply via email to