Changes between Version 21 and Version 22 of Commentary/Compiler/RecompilationAvoidance


Ignore:
Timestamp:
May 5, 2011 11:52:51 PM (3 years ago)
Author:
dterei
Comment:

Elaboraete more on export list hash

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/RecompilationAvoidance

    v21 v22  
    169169     ''export-list hash'' and ''decls''. 
    170170   * The ''export-list hash'', which depends on the contents of the 
    171      export list (a hash of ''exports''), the ''orphan hash'' (see [#Orphans Orphans]) and the package dependencies (see [#Packageversionchanges Package Version Changes]). 
     171     export list (a hash of ''exports''), the ''orphan hash'' (see [#Orphans Orphans])  
     172     and the package dependencies (see [#Packageversionchanges Package Version Changes]). 
     173     The export-list hash only depends on the names of the exports for the modules. The 
     174     types of these exports are ignored in calculating the hash. Only a change of name 
     175     or removal or addition of an export will change the hash. Not a type change of 
     176     definition change. 
    172177   * The ''orphan hash'', which depends on all the orphan 
    173178     instances/rules in the, and the orphan hashes of all orphan 
     
    374379depends on `D.h`.  And consequently, the ABI hash has changed, and so 
    375380has the interface hash (although the export hash and orphan hash are 
    376 still the same). 
     381still the same). Note that it is significant that we used '-O' here. 
     382If we hadn't used '-O' then a change of a definition doesn't change 
     383any of the hashes because of the lack of inlining. 
    377384 
    378385Why did the fingerprint for `D.f` have to change?  This is vital,