Skip to content
  • Rodrigo Mesquita's avatar
    f7cbffe2
    Refactor ModuleGraph interface · f7cbffe2
    Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
    The 'ModuleGraph' abstraction represents the relationship and strucutre
    of the modules being compiled. This structure is meant to be constructed
    once at the start of compilation, and never changed again.
    
    However, it's exposed interface was confusing and exposed too many
    footguns which led to inneficient usages of the ModuleGraph. This commit
    improves significantly the exported interface of ModuleGraph, taking
    into consideration the recent improvements around reachability queries.
    
    Since the ModuleGraph graphs and related structures (HPT, EPS) are
    performance critical in the sense that somewhat simple mistakes can
    cause bad leaks and non-linear memory usage, we want to have proper APIs
    that guide efficient usage. This is a good step in that direction.
    f7cbffe2
    Refactor ModuleGraph interface
    Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
    The 'ModuleGraph' abstraction represents the relationship and strucutre
    of the modules being compiled. This structure is meant to be constructed
    once at the start of compilation, and never changed again.
    
    However, it's exposed interface was confusing and exposed too many
    footguns which led to inneficient usages of the ModuleGraph. This commit
    improves significantly the exported interface of ModuleGraph, taking
    into consideration the recent improvements around reachability queries.
    
    Since the ModuleGraph graphs and related structures (HPT, EPS) are
    performance critical in the sense that somewhat simple mistakes can
    cause bad leaks and non-linear memory usage, we want to have proper APIs
    that guide efficient usage. This is a good step in that direction.
Loading