Changeset 1404

Show
Ignore:
Timestamp:
01/22/10 01:52:47 (2 years ago)
Author:
walter
Message:

bringing up to date

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docsrc/attribute.dd

    r1372 r1404  
    2424    $(LINK2 #shared, $(B shared)) 
    2525    $(LINK2 #immutable, $(B immutable)) 
    26  
     26    $(LINK2 #inout, $(B inout)) 
     27    $(LINK2 #disable, $(B @disable)) 
    2728) 
    2829 
     
    3738    ) 
    3839 
    39 <pre> 
    40 attribute declaration;      affects the declaration 
    41  
    42 attribute:          affects all declarations until the end of 
    43                 the current scope 
     40--- 
     41attribute declaration;      // affects the declaration 
     42 
     43attribute:          // affects all declarations until the end of 
     44                // the current scope 
    4445    declaration; 
    4546    declaration; 
    4647    ... 
    4748 
    48 attribute           affects all declarations in the block 
     49attribute           // affects all declarations in the block 
    4950{ 
    5051    declaration; 
     
    5253    ... 
    5354} 
    54 </pre> 
     55--- 
    5556 
    5657    $(P For attributes with an optional else clause:) 
    5758 
    58 <pre> 
     59--- 
    5960attribute 
    6061    declaration; 
     
    6263    declaration; 
    6364 
    64 attribute           affects all declarations in the block 
     65attribute           // affects all declarations in the block 
    6566{ 
    6667    declaration; 
     
    7475    ... 
    7576} 
    76 </pre> 
     77--- 
    7778 
    7879<h2>$(LNAME2 linkage, Linkage Attribute)</h2> 
     
    356357 
    357358<h2>$(LNAME2 shared, shared Attribute)</h2> 
     359 
     360<h2>$(LNAME2 inout, inout Attribute)</h2> 
     361 
     362<h2>$(LNAME2 disable, @disable Attribute)</h2> 
     363 
     364    $(P A reference to a declaration marked with the $(CODE @disable) attribute causes 
     365    a compile time error. 
     366    This can be used to explicitly disallow certain operations or overloads 
     367    at compile time rather than relying on generating a runtime error. 
     368    ) 
     369 
     370--- 
     371struct T 
     372{ 
     373    @disable this(this) { }   // disabling this makes T not copyable 
     374} 
     375 
     376struct S 
     377{ 
     378    T t;        // uncopyable member makes S also not copyable 
     379} 
     380 
     381@disable void foo() { } 
     382 
     383void main() 
     384{ 
     385    S s; 
     386    S t = s;    // error, S is not copyable 
     387    foo();      // error, foo is disabled 
     388} 
     389--- 
    358390) 
    359391 
  • trunk/docsrc/changelog.d

    r1258 r1404  
    55 
    66$(UL  
     7    $(NEW1 055) 
     8    $(NEW1 054) 
     9    $(NEW1 053) 
     10    $(NEW1 052) 
     11    $(NEW1 051) 
     12    $(NEW1 050) 
     13    $(NEW1 049) 
     14    $(NEW1 048) 
    715    $(NEW1 047) 
    816    $(NEW1 046) 
     
    6674) 
    6775 
    68 $(VERSION 047, July 7, 2009, =================================================, 
     76$(VERSION 055, Jan 1, 2010, =================================================, 
     77 
     78    $(WHATSNEW 
     79    $(LI Add $(B -map) command line switch) 
     80    $(LI Delegates and function pointers may be used in CTFE) 
     81    $(LI Delegate literals and function literals may be used in CTFE) 
     82    $(LI Lazy function parameters may now be used in CTFE) 
     83    $(LI Slicing of char[] arrays may now be used in CTFE) 
     84    ) 
     85    $(BUGSFIXED 
     86    $(LI $(CPPBUGZILLA 48): Internal error: cgreg 784) 
     87    $(LI $(BUGZILLA 1298): CTFE: tuple foreach bugs) 
     88    $(LI $(BUGZILLA 1790): CTFE: foreach(Tuple) won't compile if Tuple contains string) 
     89    $(LI $(BUGZILLA 2101): CTFE: Please may I use mutable arrays at compile time?) 
     90    $(LI Partial fix for $(BUGZILLA 3569), stops the stack overflow) 
     91    $(LI $(BUGZILLA 3663): struct forward reference regresssion) 
     92    $(LI $(BUGZILLA 3664): struct forward declaration causes enum to conflict with itself) 
     93    $(LI $(BUGZILLA 3674): forward reference error with multiple overloads with same name) 
     94    $(LI $(BUGZILLA 3719): forward references can cause out-of-memory error) 
     95    $(LI $(BUGZILLA 3726): Regression: ICE(mangle.c 81): struct forward reference with static this) 
     96    ) 
     97
     98 
     99$(VERSION 054, Dec 30, 2009, =================================================, 
     100 
     101    $(WHATSNEW 
     102    ) 
     103    $(BUGSFIXED 
     104    $(LI $(CPPBUGZILLA 45): Internal error: cgcod 1594) 
     105    $(LI $(CPPBUGZILLA 46): Constant folding with long doubles) 
     106    $(LI $(NG_digitalmars_D 103391): D1 garbage collector + threads + malloc = garbage?) 
     107    $(LI $(BUGZILLA 282): Bizarre circular import nested name invisibility issue) 
     108    $(LI $(BUGZILLA 390): Cannot forward reference enum nested in struct) 
     109    $(LI $(BUGZILLA 400): forward reference error; no propety X for type Y (struct within struct)) 
     110    $(LI $(BUGZILLA 1160): enums can not be forward referenced) 
     111    $(LI $(BUGZILLA 1564): Forward reference error for enum in circular import) 
     112    $(LI $(BUGZILLA 2029): Typesafe variadic functions don't work in CTFE) 
     113    $(LI $(BUGZILLA 2816): Sudden-death static assert is not very useful) 
     114    $(LI $(BUGZILLA 3455): Some Unicode characters not allowed in identifiers) 
     115    $(LI $(BUGZILLA 3575): CTFE: member structs not initialized correctly) 
     116    $(LI $(BUGZILLA 3584): DeclDef rule is missing entries) 
     117    $(LI $(BUGZILLA 3585): Duplicate clauses in EqualExpression and RelExpression rules) 
     118    $(LI $(BUGZILLA 3587): Aggregate rule references undefined Tuple) 
     119    $(LI $(BUGZILLA 3588): WithStatement rule references unspecified Symbol) 
     120    $(LI $(BUGZILLA 3589): BaseClassList and InterfaceClasses rules are incorrect, missing ',') 
     121    $(LI $(BUGZILLA 3590): FunctionParameterList rule is missing) 
     122    $(LI $(BUGZILLA 3591): TemplateIdentifier rule is misspelled) 
     123    $(LI $(BUGZILLA 3592): ClassTemplateDeclaration and FunctionTemplateDeclaration rules are unreferenced) 
     124    $(LI $(BUGZILLA 3593): IntegerExpression rule unspecified) 
     125    $(LI $(BUGZILLA 3594): AsmPrimaryExp rule references unspecified rules) 
     126    $(LI $(BUGZILLA 3595): Several rules are missing ':' after rule name) 
     127    $(LI $(BUGZILLA 3601): Debug and Release builds of DMD produce different object files) 
     128    $(LI $(BUGZILLA 3611): Enum forward referencing regression) 
     129    $(LI $(BUGZILLA 3612): ExpressionList is undefined) 
     130    $(LI $(BUGZILLA 3617): CTFE: wrong code for if(x) where x is int or smaller) 
     131    $(LI $(BUGZILLA 3628): can't cast null to int) 
     132    $(LI $(BUGZILLA 3633): Optimizer causes access violation) 
     133    $(LI $(BUGZILLA 3645): manifest constant (enum) crashes dmd) 
     134    ) 
     135
     136 
     137$(VERSION 053, Dec 3, 2009, =================================================, 
     138 
     139    $(WHATSNEW 
     140    ) 
     141    $(BUGSFIXED 
     142    $(LI $(BUGZILLA 111): appending a dchar to a char[]) 
     143    $(LI $(BUGZILLA 370): Compiler stack overflow on recursive typeof in function declaration.) 
     144    $(LI $(BUGZILLA 2229): ICE(template.c) instantiating an invalid variadic template with more than one argument) 
     145    $(LI $(BUGZILLA 2967): spec does not mention that inline asm is a valid "return" statement) 
     146    $(LI $(BUGZILLA 3115): &gt;&gt;&gt; and &gt;&gt;&gt;= generate wrong code) 
     147    $(LI $(BUGZILLA 3171): % not implemented correctly for floats) 
     148    $(LI $(BUGZILLA 3381): [tdpl] Incorrect assessment of overriding in triangular-shaped hierarchy) 
     149    $(LI $(BUGZILLA 3469): ICE(func.c): Regression. Calling non-template function as a template, from another module) 
     150    $(LI $(BUGZILLA 3495): Segfault(typinf.c) instantiating D variadic function with too few arguments) 
     151    $(LI $(BUGZILLA 3496): ICE(cgelem.c, optimizer bug) cast(void *)(x&1)== null.) 
     152    $(LI $(BUGZILLA 3502): Fix for dropped Mac OS X 10.5) 
     153    $(LI $(BUGZILLA 3521): Optimized code access popped register) 
     154    $(LI $(BUGZILLA 3540): Another DWARF line number fix) 
     155    ) 
     156
     157 
     158$(VERSION 052, Nov 12, 2009, =================================================, 
     159 
     160    $(WHATSNEW 
     161    $(LI OSX versions 10.5 and older are no longer supported.) 
     162    ) 
     163    $(BUGSFIXED 
     164    $(LI Works on OSX 10.6 now.) 
     165    ) 
     166
     167 
     168$(VERSION 051, Nov 5, 2009, =================================================, 
     169 
     170    $(WHATSNEW 
     171    ) 
     172    $(BUGSFIXED 
     173    $(LI Problem with complicated array op expressions) 
     174    $(LI $(BUGZILLA 195): DDoc generates bad output when example contains "protected" attribute) 
     175    $(LI $(BUGZILLA 424): Unexpected OPTLINK Termination at EIP=0044C37B (too many fixups)) 
     176    $(LI $(BUGZILLA 874): Bad codegen: wrong value variable in tuple foreach, D1 only) 
     177    $(LI $(BUGZILLA 1117): ddoc generates corrupted docs if code examples contain attributes with colons) 
     178    $(LI $(BUGZILLA 1812): DDOC - Unicode identifiers are not correctly marked.) 
     179    $(LI $(BUGZILLA 2862): ICE(template.c) using type tuple as function argument) 
     180    $(LI $(BUGZILLA 3292): ICE(todt.c) when using a named mixin with an initializer as template alias parameter) 
     181    $(LI $(BUGZILLA 3397): Unintended function call to static opCall) 
     182    $(LI $(BUGZILLA 3401): Compiler crash on invariant + method overload) 
     183    $(LI $(BUGZILLA 3422): ICE(cgcod.c) Structs with default initializers bigger than register size cannot be default parameters) 
     184    $(LI $(BUGZILLA 3426): ICE(optimize.c): struct literal with cast, as function default parameter.) 
     185    $(LI $(BUGZILLA 3432): ICE(e2ir.c): casting template expression) 
     186    ) 
     187
     188 
     189$(VERSION 050, Oct 14, 2009, =================================================, 
     190 
     191    $(WHATSNEW 
     192    $(LI Use $(B -X) to generate JSON files.) 
     193    ) 
     194    $(BUGSFIXED 
     195    $(LI Fold in patch from $(BUGZILLA 1170)) 
     196    $(LI $(BUGZILLA 923): No constant folding for template value default arguments, D1 only) 
     197    $(LI $(BUGZILLA 1534): Can't mix in a case statement.) 
     198    $(LI $(BUGZILLA 2423): Erroneous unreachable statement warning) 
     199    $(LI $(BUGZILLA 3392): a cast of this to void in tango.core.Thread is not allowed) 
     200    ) 
     201
     202 
     203$(VERSION 049, Oct 11, 2009, =================================================, 
     204 
     205    $(WHATSNEW 
     206    ) 
     207    $(BUGSFIXED 
     208    $(LI $(BUGZILLA 258): Undefined identifier error for circular import) 
     209    $(LI $(BUGZILLA 928): nested struct definition in unittest section of a templated class, hangs DMD) 
     210    $(LI $(BUGZILLA 1140): ICE(cod1.c) casting last function parameter to 8 byte value) 
     211    $(LI $(BUGZILLA 1592): dmd fail to resolve class symbol when i put files in a package) 
     212    $(LI $(BUGZILLA 1787): Compiler segfaults on circular references.) 
     213    $(LI $(BUGZILLA 1897): ICE(template.c) with tuple delegate) 
     214    $(LI $(BUGZILLA 1934): ICE(e2ir.c) using static array as AA key) 
     215    $(LI $(BUGZILLA 2229): ICE(template.c) instantiating an invalid variadic template with more than one argument) 
     216    $(LI $(BUGZILLA 2687): ICE(statement.c): tuple foreach in an erroneous template.) 
     217    $(LI $(BUGZILLA 2773): ICE(go.c) array assignment through a pointer, only with -O.) 
     218    $(LI $(BUGZILLA 2829): ICE(expression.c) static array block-initialized in struct literal) 
     219    $(LI $(BUGZILLA 2851): Segfault(expression.c) using C-style struct initializer with too few arguments) 
     220    $(LI $(BUGZILLA 3006): ICE(e2ir.c, tocsym.c) template module using array operation) 
     221    $(LI $(BUGZILLA 3041): Array slices can be compared to their element type: bad codegen or ICE) 
     222    $(LI $(BUGZILLA 3101): Stack overflow: declaring aggregate member twice with static if) 
     223    $(LI $(BUGZILLA 3174): ICE(mtype.c): Compiler crash or compiler error with auto returns and const / immutable / invarient / pure) 
     224    $(LI $(BUGZILLA 3176): Compiler hangs on poorly formed mixin in variadic template) 
     225    $(LI $(BUGZILLA 3261): compiler crash with mixin and forward reference) 
     226    $(LI $(BUGZILLA 3286): Default parameter prevents to resolve inter-module circular dependency) 
     227    $(LI $(BUGZILLA 3301): Undefined identifier error dependent on order of imports when a circular import is involved) 
     228    $(LI $(BUGZILLA 3325): ICE(func.c) function literal with post-contract) 
     229    $(LI $(BUGZILLA 3343): Crash by "auto main(){}") 
     230    $(LI $(BUGZILLA 3344): ICE(e2ir.c) returning an invalid function from main()) 
     231    $(LI $(BUGZILLA 3357): ICE(cod1.c) using 'in' with a static char array as AA key) 
     232    $(LI $(BUGZILLA 3366): Segfault(declaration.c) variadic template with unmatched constraint) 
     233    $(LI $(BUGZILLA 3374): [tdpl] ICE(init.c): Associative array type not inferred) 
     234    ) 
     235
     236 
     237$(VERSION 048, Oct 5, 2009, =================================================, 
     238 
     239    $(WHATSNEW 
     240    $(LI Compiler now detects some cases of illegal null dereferencing when compiled with -O) 
     241    $(LI $(BUGZILLA 2905): Faster +-*/ involving a floating-pointing literal) 
     242    ) 
     243    $(BUGSFIXED 
     244    $(LI gdb stack trace should work now) 
     245    $(LI $(BUGZILLA 302): in/out contract inheritance yet to be implemented) 
     246    $(LI $(BUGZILLA 718): ICE(cgcod.c) with int /= cast(creal)) 
     247    $(LI $(BUGZILLA 814): lazy argument + variadic arguments = segfault) 
     248    $(LI $(BUGZILLA 1168): Passing a .stringof of an expression as a template value parameter results in the string of the type) 
     249    $(LI $(BUGZILLA 1571): Segfault(class.c) const on function parameters not carried through to .di file) 
     250    $(LI $(BUGZILLA 1731): forward reference of function type alias resets calling convention) 
     251    $(LI $(BUGZILLA 2202): Error getting type of non-static member of a class) 
     252    $(LI $(BUGZILLA 2469): ICE(cod1.c) arbitrary struct accepted as struct initializer) 
     253    $(LI $(BUGZILLA 2697): Cast of float function return to ulong or uint gives bogus value) 
     254    $(LI $(BUGZILLA 2702): Struct initialisation silently inserts deadly casts) 
     255    $(LI $(BUGZILLA 2839): ICE(cgcs.c) with int /= imaginary) 
     256    $(LI $(BUGZILLA 3049): ICE(cod4.c) or segfault: Array operation on void[] array) 
     257    $(LI $(BUGZILLA 3059): Nonsensical complex op= should be illegal) 
     258    $(LI $(BUGZILLA 3160): ICE(cgcod.c 1511-D1) or bad code-D2 returning string from void main) 
     259    $(LI $(BUGZILLA 3304): Segfault using 'is' with a pointer enum.) 
     260    $(LI $(BUGZILLA 3305): Segfault(expression.c) with recursive struct template alias expressions) 
     261    $(LI $(BUGZILLA 3335): minor warning cleanups) 
     262    $(LI $(BUGZILLA 3336): ICE(glue.c) declaring AA with tuple key, only with -g) 
     263    $(LI $(BUGZILLA 3353): storage class of a member function is propagated to default arguments) 
     264    ) 
     265
     266 
     267$(VERSION 047, Sep 2, 2009, =================================================, 
    69268 
    70269    $(WHATSNEW 
     
    84283    $(LI CTFE error messages now explain why the function could not be 
    85284    interpreted at compile time) 
    86     $(LI Improved exception message for assert(0) in Windows -release builds) 
    87285    ) 
    88286    $(BUGSFIXED 
     
    93291    $(LI $(BUGZILLA 1948): CTFE fails when mutating a struct in an array) 
    94292    $(LI $(BUGZILLA 1950): CTFE doesn't work correctly for structs passed by ref) 
    95     $(LI $(BUGZILLA 2398): writef("%x") for a pointer is always uppercase) 
    96293    $(LI $(BUGZILLA 2569): static arrays in CTFE functions don't compile) 
     294    $(LI $(BUGZILLA 2575): gdb can not show code) 
    97295    $(LI $(BUGZILLA 2604): DW_TAG_module and GDB) 
    98296    $(LI $(BUGZILLA 2940): null is null cannot be evaluated at compile time) 
    99297    $(LI $(BUGZILLA 2960): CTFE rejects static array to dynamic array casts) 
     298    $(LI $(BUGZILLA 3039): -vtls compiler flag not listed in man file) 
     299    $(LI $(BUGZILLA 3165): What kind of integer division does D use?) 
     300    $(LI $(BUGZILLA 3166): "positive" -> "non-negative" in modulo operator description) 
     301    $(LI $(BUGZILLA 3168): Declaring structs as incomplete types no longer works) 
    100302    $(LI $(BUGZILLA 3170): Forward reference of nested class fails if outer class is not plain) 
    101     $(LI $(BUGZILLA 3186): Declaring structs as incomplete types no longer works) 
     303    $(LI $(BUGZILLA 3183): Spec of align attribute needs work) 
     304    $(LI $(BUGZILLA 3186): corrections for http://www.digitalmars.com/d/2.0/dmd-osx.html) 
    102305    $(LI $(BUGZILLA 3192): asm in a anonymous delegate crash the compiler) 
    103306    $(LI $(BUGZILLA 3196): Segfault(mtype.c) after almost any error involving a delegate literal) 
     
    117320    $(LI $(BUGZILLA 106): template - mixin sequence) 
    118321    $(LI $(BUGZILLA 810): Cannot forward reference template) 
    119     $(LI $(BUGZILLA 852): Various errors with static initialization of structs and arrays
     322    $(LI $(BUGZILLA 852): ICE(toir.c) using local class in non-static nested function in nested static function
    120323    $(LI $(BUGZILLA 854): TypeTuple in anonymous delegate causes ice in glue.c) 
    121324    $(LI $(BUGZILLA 1054): regression: circular aliases cause compiler stack overflow) 
     
    11961399 
    11971400    BUGZILLA = <a href="http://d.puremagic.com/issues/show_bug.cgi?id=$0">Bugzilla $0</a> 
     1401    CPPBUGZILLA = <a href="http://bugzilla.digitalmars.com/issues/show_bug.cgi?id=$0">Bugzilla $0</a> 
    11981402    DSTRESS = dstress $0 
    11991403    BUGSFIXED = <h4>Bugs Fixed</h4> $(UL $0 ) 
  • trunk/docsrc/changelog.dd

    r1398 r1404  
    5757 
    5858    $(WHATSNEW 
    59     ) 
    60     $(BUGSFIXED 
     59    $(LI Added shared static constructors/destructors, regular static 
     60    constructors/destructors now deal with TLS) 
     61    $(LI Add $(B -map) command line switch) 
     62    $(LI Add $(LINK2 attribute.html#deprecated, $(B @disable)) attribute) 
     63    $(LI $(BUGZILLA 3556): version(CTFE)) 
     64    $(LI Delegates and function pointers may be used in CTFE) 
     65    $(LI Delegate literals and function literals may be used in CTFE) 
     66    $(LI Lazy function parameters may now be used in CTFE) 
     67    $(LI Slicing of char[] arrays may now be used in CTFE) 
     68    ) 
     69    $(BUGSFIXED 
     70    $(LI Added TLS support for OSX) 
     71    $(LI $(CPPBUGZILLA 47): Internal error: cg87 3316) 
     72    $(LI $(BUGZILLA 1298): CTFE: tuple foreach bugs) 
     73    $(LI $(BUGZILLA 1790): CTFE: foreach(Tuple) won't compile if Tuple contains string) 
     74    $(LI $(BUGZILLA 2101): CTFE: Please may I use mutable arrays at compile time?) 
     75    $(LI $(BUGZILLA 3535): struct constructors don't work in CTFE) 
     76    $(LI Partial fix for $(BUGZILLA 3569), stops the stack overflow) 
     77    $(LI $(BUGZILLA 3600): template instantiation with empty tuple) 
     78    $(LI $(BUGZILLA 3660): Templates and shared functions don't mix) 
    6179    $(LI $(BUGZILLA 3663): struct forward reference regresssion) 
    6280    $(LI $(BUGZILLA 3664): struct forward declaration causes enum to conflict with itself) 
     81    $(LI $(BUGZILLA 3671): x^^3 gives wrong result when x is a floating-point literal) 
     82    $(LI $(BUGZILLA 3674): forward reference error with multiple overloads with same name) 
     83    $(LI $(BUGZILLA 3675): Regression: Struct literals cannot be initialized with another struct literal) 
     84    $(LI $(BUGZILLA 3719): forward references can cause out-of-memory error) 
     85    $(LI $(BUGZILLA 3726): Regression: ICE(mangle.c 81): struct forward reference with static this) 
    6386    ) 
    6487) 
  • trunk/docsrc/cpp0x.dd

    r1378 r1404  
    475475$(SECTION3 $(LNAME2 defaulted, Defaulted and Deleted Functions), 
    476476 
    477     $(P $(LINK2 $(NDOCS)2007/n2346.html, N2346): TBD 
    478     ) 
    479  
    480 
     477    $(P $(LINK2 $(NDOCS)/2007/n2326.html#delete, N2326): 
     478    D alows individual functions to be marked as $(LINK2 attribute.html#disable, disabled). 
     479    ) 
     480 
     481
     482 
    481483 
    482484$(SECTION3 $(LNAME2 unions, Unrestricted Unions), 
  • trunk/docsrc/faq.dd

    r1242 r1404  
    2222    $(LI I suggested a great feature. Why was the suggestion ignored?) 
    2323 
    24     $(LI Why const and invariant?) 
    25  
    26     $(LI Why the *names* const and invariant?) 
    27  
    28     $(LI How exactly is invariant related to multicores?) 
    29  
    30     $(LI Ok, I'm fine with invariant for safe data sharing among threads. But why do we need the uninformative const?) 
    31  
    32     $(LI Why are invariant strings favored in D 2.0?) 
     24    $(LI Why const and immutable?) 
     25 
     26    $(LI Why the $(I names) const and immutable?) 
     27 
     28    $(LI How exactly is immutable related to multicores?) 
     29 
     30    $(LI Ok, I'm fine with immutable for safe data sharing among threads. But why do we need the uninformative const?) 
     31 
     32    $(LI Why are immutable strings favored in D 2.0?) 
    3333 
    3434    $(LI I want to contribute to D 2.0. How can I effect that?) 
     
    3636    $(ITEMR case_range, Why doesn't the case range statement 
    3737     use the $(TT case X..Y:) syntax?) 
     38 
     39    $(ITEMR shared_guarantees, What guarantees is shared supposed to provide?) 
     40 
     41    $(ITEMR shared_synchronized, What does shared have to do with synchronization?) 
     42 
     43    $(ITEMR shared_memory_barriers, What does shared have to do with memory barriers?) 
     44 
     45    $(ITEMR casting_to_shared, What are the semantics of casting FROM unshared TO shared?) 
     46 
     47    $(ITEMR casting_from_shared, What are the semantics of casting FROM shared TO unshared?) 
    3848 
    3949    ) 
     
    97107    ) 
    98108 
     109$(ITEM shared_guarantees, What guarantees is shared supposed to provide?) 
     110 
     111    $(P Shared means that multiple threads can access the data. The guarantee is that if it is 
     112    not shared, and not immutable, that only the current thread can see it. 
     113    ) 
     114 
     115$(ITEM shared_synchronized, What does shared have to do with synchronization?) 
     116 
     117    $(P Only shared data can be synchronized. It makes no sense to synchronize thread local 
     118    data. 
     119    ) 
     120 
     121$(ITEM shared_memory_barriers, What does shared have to do with memory barriers?) 
     122 
     123    $(P Reading/writing shared data emits memory barriers to ensure sequential consistency (not 
     124    implemented). 
     125    ) 
     126 
     127$(ITEM casting_to_shared, What are the semantics of casting FROM unshared TO shared?) 
     128 
     129    $(P Make sure there are no other unshared references to that same data. 
     130    ) 
     131 
     132$(ITEM casting_from_shared, What are the semantics of casting FROM shared TO unshared?) 
     133 
     134    $(P Make sure there are no other shared references to that same data. 
     135    ) 
     136 
    99137$(ITEM q1, Why the name D?) 
    100138 
     
    632670 
    633671    $(LI C++ overloads based on const and volatile. D overloads 
    634     based on const and invariant.) 
     672    based on const and immutable.) 
    635673 
    636674    $(LI C++ overloads operators in significantly different ways - for 
     
    665703    $(LI C++ name mangling depends on const and volatile being type 
    666704    modifiers. 
    667     D name mangling depends on const and invariant being type modifiers. 
     705    D name mangling depends on const and immutable being type modifiers. 
    668706    D's const is also transitive, unlike C++. One cannot have a const 
    669707    pointer to mutable in D. 
  • trunk/docsrc/function.dd

    r1399 r1404  
    15241524---- 
    15251525 
    1526 <h2>$(LNAME2 interpretation, Compile Time Function Execution)</h2> 
     1526<h2>$(LNAME2 interpretation, Compile Time Function Execution (CTFE))</h2> 
    15271527 
    15281528    $(P A subset of functions can be executed at compile time. 
     
    15491549        $(LI const variables initialized with a member of 
    15501550        this list) 
     1551        $(LI delegates) 
     1552        $(LI pointers to functions) 
     1553        $(LI delegate literals) 
     1554        $(LI function literals) 
    15511555        ) 
    15521556    ) 
    15531557 
    1554     $(LI function parameters may not be C-style variadic, 
    1555     or $(B lazy)) 
     1558    $(LI function parameters may not be C-style variadic) 
    15561559 
    15571560    $(LI the function may not be synchronized) 
     
    15601563        $(UL 
    15611564        $(LI throw exceptions) 
    1562         $(LI use pointers, delegates, or classes) 
     1565        $(LI use pointers or classes) 
    15631566        $(LI reference any global state or variables) 
    15641567        $(LI reference any local static variables) 
    1565         $(LI new or delete) 
     1568        $(LI delete) 
    15661569        $(LI call any function that is not 
    15671570        executable at compile time) 
  • trunk/docsrc/index.dd

    r1364 r1404  
    7575    ) 
    7676 
     77$(COMMENT 
    7778    $(LI Gnu D compiler $(LINK2 http://dgcc.sourceforge.net/, gdc) 
    7879    for several platforms, including 
     
    8081    $(LINK2 http://gdcmac.sourceforge.net/, Mac OS X) 
    8182    for D versions 1.030 and 2.014. 
     83    ) 
     84) 
     85    $(LI Gnu D compiler $(LINK2 http://bitbucket.org/goshawk/gdc/wiki/Home, gdc). 
    8286    ) 
    8387 
  • trunk/docsrc/win32.mak

    r1162 r1404  
    2222    final-const-invariant.dd const.dd traits.dd COM.dd cpp_interface.dd \ 
    2323    hijack.dd const3.dd features2.dd safed.dd cpp0x.dd const-faq.dd \ 
    24     concepts.dd memory-safe-d.dd d-floating-point.dd 
    25  
    26 DDOC=macros.ddoc doc.ddoc 
     24    concepts.dd memory-safe-d.dd d-floating-point.dd \ 
     25    migrate-to-shared.dd D1toD2.dd unittest.dd 
     26 
     27DDOC=macros.ddoc windows.ddoc doc.ddoc 
    2728 
    2829IMG=dmlogo.gif cpp1.gif d002.ico c1.gif d3.gif d4.gif d5.gif favicon.gif 
     
    4950    hijack.html const3.html features2.html safed.html cpp0x.html const-faq.html \ 
    5051    dmd-windows.html dmd-linux.html dmd-osx.html dmd-freebsd.html \ 
    51     concepts.html memory-safe-d.html d-floating-point.html 
     52    concepts.html memory-safe-d.html d-floating-point.html \ 
     53    migrate-to-shared.html D1toD2.html unittest.html 
    5254 
    5355 
     
    116118ctod.html : $(DDOC) ctod.dd 
    117119 
     120D1toD2.html : $(DDOC) D1toD2.dd 
     121 
    118122d-floating-point.html : $(DDOC) d-floating-point.dd 
    119123 
     
    184188memory-safe-d.html : $(DDOC) memory-safe-d.dd 
    185189 
     190migrate-to-shared.html : $(DDOC) migrate-to-shared.dd 
     191 
    186192mixin.html : $(DDOC) mixin.dd 
    187193 
     
    226232type.html : $(DDOC) type.dd 
    227233 
     234unittest.html : $(DDOC) unittest.dd 
     235 
    228236variadic-function-templates.html : $(DDOC) variadic-function-templates.dd 
    229237 
     
    234242wc.html : $(DDOC) wc.dd 
    235243 
    236 windbg.html : $(DDOC) windbg.dd 
    237  
    238 windows.html : $(DDOC) windows.dd 
     244windbg.html : $(DDOC) windows.ddoc windbg.dd 
     245 
     246windows.html : $(DDOC) windows.ddoc windows.dd 
    239247 
    240248zip: