On 11/29/12 6:44 AM, foobar wrote:
On Thursday, 29 November 2012 at 10:25:40 UTC, Walter Bright wrote:
On 11/29/2012 6:40 PM, Jacob Carlborg wrote:
On 2012-11-29 03:00, Walter Bright wrote:

An attribute would bring along with it the notion of having some static
constructors care about dependencies and others not. A pragma would be
global to the module.

Why can't the attribute be global to the module?


Because attributes attach to the declarations they enclose. A global
attribute would be something else.

What's wrong with attaching the annotation to the module declaration?
i.e.
@no_circular_ctors module foobar;

I think this entire approach is unprincipled (aside from solving a problem that's not urgent and not important). We shouldn't focus on the _syntax_ of the completely unprincipled approach, but instead on improving it.

A possibly better approach would be e.g. to do a simple analysis of the static constructor's use of symbols, and use that set to decide whether two static constructors must be ordered or not.


Andrei


Reply via email to