Context
The C++ runtime in cpp/ still carries naming from its origin project (SPQSP_PDAC GPU ABM, see paper.md:49):
CancerVCT namespace wraps everything emitted by codegen (ODE_system, QSPParam) and everything in qsp_sim_core (TrajectoryWriter, EvolveOpts, evolve_to_diagnosis, etc.). The name no longer describes the package — qsp-codegen is a generic SBML→C++ codegen and runtime, not a cancer-VCT framework.
- PDAC-specific references in code comments (e.g.
cpp/src/CVODEBase.cpp:264, cpp/include/qsp_sim_core/model_hooks.h:6, the new trajectory_writer.h/qsp_sim_main.cpp comments pointing at `pdac-build/evolve_to_diagnosis`). These are legitimate "example consumer" context but should be reviewed for whether they belong in a generic runtime header or should be reframed as "e.g. an oncology model that tracks tumor diameter".
Why this isn't a one-line rename
The namespace name is emitted into every generated file (`src/qsp_codegen/codegen.py` lines 1233, 1276, 1302, 1313, 1398, 1414, 2122, 2132, 2139, 2160, 2175, 2217). Downstream consumers (pdac-build and any others) have:
- Generated headers that declare `namespace CancerVCT { class ODE_system ... }`.
- Hand-written C++ (e.g. `pdac-build/cpp/sim/evolve_to_diagnosis.cpp`) that uses `CancerVCT::` symbols.
- Possibly Python bindings that reference the mangled symbol names.
A rename has to be a coordinated cutover across qsp-codegen + every consumer in the same release.
Proposal
- Pick a new namespace name (candidates: `qsp_sim_core`, `qsp`, `qspcodegen`).
- Update both the codegen string emitters and the hand-written runtime headers.
- Coordinate the pdac-build cutover (re-codegen + sed pass over hand-written consumer code) in the same PR window.
- Reframe PDAC-specific comments in generic headers to be model-agnostic where they're not actually example-driven documentation.
Out of scope
- Paper mentions of SPQSP_PDAC are intentional origin context (paper.md:49) — leave those.
Context
The C++ runtime in
cpp/still carries naming from its origin project (SPQSP_PDAC GPU ABM, see paper.md:49):CancerVCTnamespace wraps everything emitted by codegen (ODE_system,QSPParam) and everything inqsp_sim_core(TrajectoryWriter,EvolveOpts,evolve_to_diagnosis, etc.). The name no longer describes the package — qsp-codegen is a generic SBML→C++ codegen and runtime, not a cancer-VCT framework.cpp/src/CVODEBase.cpp:264,cpp/include/qsp_sim_core/model_hooks.h:6, the newtrajectory_writer.h/qsp_sim_main.cppcomments pointing at `pdac-build/evolve_to_diagnosis`). These are legitimate "example consumer" context but should be reviewed for whether they belong in a generic runtime header or should be reframed as "e.g. an oncology model that tracks tumor diameter".Why this isn't a one-line rename
The namespace name is emitted into every generated file (`src/qsp_codegen/codegen.py` lines 1233, 1276, 1302, 1313, 1398, 1414, 2122, 2132, 2139, 2160, 2175, 2217). Downstream consumers (pdac-build and any others) have:
A rename has to be a coordinated cutover across qsp-codegen + every consumer in the same release.
Proposal
Out of scope