Task: Investigate RFL complexity root cause
This page documents a task in the Resolve RFL complexity issues story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Analyze the root cause of Clang and MSVC compilation failures related to reflect-cpp complexity in ClientManagerTrades.cpp and propose a permanent resolution strategy.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Resolve RFL complexity issues |
| Now | Complete. |
| Waiting on | Nothing. |
| Next | None. |
| Last touched | 2026-05-23 |
Acceptance
- Root cause for Clang's "expression nesting limit" identified.
- Root cause for MSVC's "C1202" identified.
- Permanent resolution strategy (Triple Isolation) proposed.
- Investigation report published.
Plan
- Analyze compiler error logs from failed CI runs.
- Review
reflect-cppinternal headers for complexity drivers. - Map the domain types (
trade,trade_instrument) to the failure points. - Research history of previous workarounds in the codebase.
- Synthesize findings into a formal report.
PRs
| PR | Title |
|---|---|
| #805 | [doc,codegen] Minor doc fixes and uppercase UUID invariant |
Notes
- Identified that
rfl::internal::no_duplicate_field_namesis the O(N²) driver. - Identified that
trade_instrumentvariant is the primary complexity source. - Discovered that previous workarounds were reverted prematurely.
Result
- Investigation: MSVC C1202 and rfl complexity
- Strategy: TU split + Two-phase parse + Global Clang limits.
- Upstream issue reflect-cpp #350 opened.