Skip to content

God-object vertical slicing — path-specific EnergyPlusData slice + per-module sub-state split #69

Description

@Tokarzewski

Part of #64.

Problem

EnergyPlusData is in everyone's closure — it gates ~96% of compile failures, is too big to port wholesale, and impossible to avoid (every fn takes state). Porting it fully blocks everything; not porting it blocks everything.

Approach

Do not port the object — port a path-specific slice, the Route-B prune that already worked (Minimal.idf: 46→22 fields, cone 152→23):

  • Pick one runtime scenario (e.g. Minimal.idf), trace which state.dataXxx->... fields are actually read/written on that path, port only those.
  • Split the god-object into per-module sub-states (dataCoolTower, dataInput, ...) — already namespaced in C++ — so each fn pulls in only the sub-struct it uses.
  • Keep /home/bart/Github/EnergyPlus/ READ-ONLY as the oracle for the slice.

Done when

  • A minimal viable EnergyPlusData slice compiles and supports one IDF end-to-end.
  • Functions depend on per-module sub-states, not the full god-object.

Note: end-to-end-runnable for one IDF beats fully-ported-for-nothing.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions