digitalmars.D.bugs - [Issue 4377] New: Support __gshared for easier D 2 compatibility
- d-bugmail puremagic.com (37/37) Jun 23 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4377
http://d.puremagic.com/issues/show_bug.cgi?id=4377 Summary: Support __gshared for easier D 2 compatibility Product: D Version: D1 Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: torhu yahoo.com It be would nice if D 1.x compilers accepted the __gshared keyword. The need for this comes up a lot when trying to make code that is ported from C work with both D 1 and D 2. Or even Java, this is an issue for DWT too. One typical example that won't work in D 2 is this: --- int x = 1; int y = 2; struct S { int* ptr; } S[2] s = [{ &x }, { &y }]; --- Because the addresses of x and y are not known at link time in D 2, they are not accepted in static initializers. x and y would typically be structs or function pointers, and the whole thing would be a lot more complex than this example. And there would be a whole lot of this stuff in the file too. Slapping a "__gshared:" on top of the file is an easy fix, but then it won't compile with D 1.x compilers. I know there are several ways to make this work, but none of them are that nice. Using lots of big string mixins or moving all the initializers into module constructors? Ugh. Since __gshared starts with two underscores, it shouldn't conflict with user code either. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 23 2010