On Mon, 21 Mar 2011 18:45:23 -0400, Nick Sabalausky <[email protected]> wrote:

"Steven Schveighoffer" <[email protected]> wrote in message
news:op.vso2wwsweav7ka@steve-laptop...

If you are interested, the code that runs the static ctors is in druntime,
not the compiler.

Yea, I had a feeling druntime would be involved since the cycles get
reported at runtime. Thanks for confirming, though.

In any case, I think you could do something repulsive like naming your
module nodeps_x instead of x, and have the cycle detection skip over that
module when detecting cycles.  Bottom line is, there is no valid static
data before static ctors run, so you must figure out how to get the info
to the cycle detection routine without static data.

I'm not very familiar with how druntime works. Are you implying that sending information from a pragma to druntime would inherently require using valid
static data from a static ctor?

No, I was saying if you want a stop-gap solution that does not involve modifying the compiler, you have to use what the compiler gives you. Namely, what is in the ModuleInfo. You can't rely on something like a static initializer.

If you have a pragma, no changes to druntime are necessary, it already has the capability of skipping modules marked with the standalone flag.

I take it that the answer from the-powers-that-be to the question "Is there
a chance that a stop-gap solution might be accepted?" is "no comment"? If
there's any worry about a "there's a chance of it" being misinterpreted as a
promise for inclusion, I can assure that I'm an adult and do know the
difference between "yes" and "maybe".

I think a pragma or an annotation would be considered by the powers-that-be. No response from Walter is usually a good sign that he's not adamantly against it ;)

-Steve

Reply via email to