Skip to content
  • Matthew Pickering's avatar
    b15fca2b
    iface: Store logical parts of ModIface together · b15fca2b
    Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
    The ModIface structure is divided into several logical parts:
    
    1. mi_mod_info: Basic module metadata (name, version, etc.)
    
    2. mi_public: The public interface of the module (the ABI), which includes:
       - Exports, declarations, fixities, warnings, annotations
       - Class and type family instances
       - Rewrite rules and COMPLETE pragmas
       - Safe Haskell and package trust information
       - ABI hashes for recompilation checking
    
    4. mi_self_recomp: Information needed for self-recompilation checking
       (see Note [Self recompilation information in interface files])
    
    5. mi_simplified_core: Optional simplified Core for bytecode generation
       (only present when -fwrite-if-simplified-core is enabled)
    
    6. mi_docs: Optional documentation (only present when -haddock is enabled)
    
    7. mi_top_env: Information about the top-level environment of the original source
    
    8. mi_ext_fields: Additional fields for extensibility
    
    This structure helps organize the interface data according...
    b15fca2b
    iface: Store logical parts of ModIface together
    Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
    The ModIface structure is divided into several logical parts:
    
    1. mi_mod_info: Basic module metadata (name, version, etc.)
    
    2. mi_public: The public interface of the module (the ABI), which includes:
       - Exports, declarations, fixities, warnings, annotations
       - Class and type family instances
       - Rewrite rules and COMPLETE pragmas
       - Safe Haskell and package trust information
       - ABI hashes for recompilation checking
    
    4. mi_self_recomp: Information needed for self-recompilation checking
       (see Note [Self recompilation information in interface files])
    
    5. mi_simplified_core: Optional simplified Core for bytecode generation
       (only present when -fwrite-if-simplified-core is enabled)
    
    6. mi_docs: Optional documentation (only present when -haddock is enabled)
    
    7. mi_top_env: Information about the top-level environment of the original source
    
    8. mi_ext_fields: Additional fields for extensibility
    
    This structure helps organize the interface data according...
Loading