[phobos] Proposed feature: print cycle when a module cyclic dependency is detected

Steve Schveighoffer schveiguy at yahoo.com
Tue Jun 22 06:24:54 PDT 2010


I just realized that this patch isn't good enough (it does not print modules which have no constructors/destructors but which import other modules), I'm working on a better one.

But it's definitely possible.  So assume I will have a patch shortly, does the concept seem worthy?

-Steve



----- Original Message ----
> From: Steve Schveighoffer <schveiguy at yahoo.com>
> To: Phobos <phobos at puremagic.com>
> Sent: Tue, June 22, 2010 8:59:23 AM
> Subject: [phobos] Proposed feature: print cycle when a module cyclic dependency is detected
> 
> Hi all,

Recently, I had an issue when developing std.process.  I 
> inadvertently caused a cyclic dependency in modules.  However, the error 
> was not enough to find the problem:

object.Exception: Cyclic dependency 
> in module std.stdio

The problem is, this is the *end* of the cycle, not 
> the source.  I actually hadn't changed the imports of std.stdio.

So 
> I improved the module constructor function to automatically print all modules 
> involved in the cycle, in the order they were imported.  Attached is the 
> patch.  The function should not adversely affect the runtime in normal 
> operation, since the changes I made only occur when a terminating exception is 
> about to be thrown anyways.  Do people agree this is a worthy improvement 
> to the runtime?  Anyone see any issues with the patch? If everyone likes, 
> I'll commit.

-Steve


      


More information about the phobos mailing list