You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 11, 2025. It is now read-only.
Hierarchical schematics in KiCad support forming a DAG structure by having two schematics sharing a common parent depend on the same child again (forming a diamond inheritance structure of sorts). Internally the kicad_rs tooling (and our data structures) still treat schematics as a tree, which means that shared child schematics (under diamond inheritance) are processed and saved as many times as they are referred to from different parent schematics. Functionally it doesn't make a big difference right now since parent schematics aren't allowed to update children (to not break the DAG), but especially with complex functions (such as vdiv) in common child schematics processing times might become an issue later on. We need to implement support for loading in each schematic file only once and using references to form an internal DAG for referring to them, specifically after racklet/electronics-prototyping#25, which enables preliminary DAG support, gets merged.
Hierarchical schematics in KiCad support forming a DAG structure by having two schematics sharing a common parent depend on the same child again (forming a diamond inheritance structure of sorts). Internally the
kicad_rstooling (and our data structures) still treat schematics as a tree, which means that shared child schematics (under diamond inheritance) are processed and saved as many times as they are referred to from different parent schematics. Functionally it doesn't make a big difference right now since parent schematics aren't allowed to update children (to not break the DAG), but especially with complex functions (such asvdiv) in common child schematics processing times might become an issue later on. We need to implement support for loading in each schematic file only once and using references to form an internal DAG for referring to them, specifically after racklet/electronics-prototyping#25, which enables preliminary DAG support, gets merged.