doy,

Sorry for the late reply; $work just kicking my ass a bit.

> I just released circular::require to CPAN to help diagnose these kinds
> of issues:
> http://search.cpan.org/~doy/circular-require-0.01/lib/circular/require.pm

Wow ... you cranked that out super-fast!  I did take a look at it and
it looks *extremely* useful, so thank you so much for taking the time.
 What I think I'm going to try to do is integrate it somehow into our
Moose policy module (that is, we have a "Company::Moose" that we
include that brings in MXD, sets up type constraints, alises a few
useful methods, etc).  That way, every time you use Moose at our
company, you'll get this protection.

> Keep in mind that not all circular dependencies like this are
> necessarily bad (there are a few within Moose, for instance), but if you
> notice them in your own code, and you didn't put them there
> intentionally, this can be a good indicator of possible problems.

Yes, that'll be the tricky bit.  I've already tried to expunge the
circular references in our own code though (Class::MOP::load_class is
particularly awesome for this purpose, and is the main method I alias
into our Company::Moose namespace), so I think it should be possible
to set it up so it only turns on circular reference checking after all
the main Moose stuff is loaded, and then anything after that is
theoretically our problem.

Thanks again for your help.


            -- Buddy

Reply via email to