On 7/1/15 6:25 PM, Jonathan M Davis via Digitalmars-d-learn wrote:
On Wednesday, July 01, 2015 08:52:38 Steven Schveighoffer via 
Digitalmars-d-learn wrote:
The runtime cannot introspect the code to detect the circular
dependency, so it makes a conservative decision. I'm waiting on an
introduction of RTInfo for modules [1] to allow us to mark static ctors
as standalone, then we can probably fix this problem through a sort of
"trust the programmer" mechanism.

I wouldn't mind that, but Walter shot that idea down previously when I was
arguing for adding a way to the language to tell the compiler that a static
constructor didn't depend on anything else. He didn't want a "trust the
programmer" mechanism in this case. I don't remember what his arguments were
though.

With RTInfo for modules, we don't need any additional language support.

In Dconf '14, Walter said it was a good idea to add the RTInfo support for modules. I don't know if he voiced an opinion on the usage of it for flagging whether the static ctors are all standalone.

But with support for modifying the runtime to reflect compile-time traits, we can at least play around with it.

There are some things that are so obviously not dependent on anything (like initializing an AA), it's really quite annoying to have the runtime conservatively flag those as error.

-Steve

Reply via email to