Skip to content

Codegen robustness + usability features, and CancerVCT->qsp_sim_core rename (#19) - #31

Merged
jeliason merged 1 commit into
mainfrom
feat/codegen-usability-and-ns-rename
Jun 2, 2026
Merged

Codegen robustness + usability features, and CancerVCT->qsp_sim_core rename (#19)#31
jeliason merged 1 commit into
mainfrom
feat/codegen-usability-and-ns-rename

Conversation

@jeliason

@jeliason jeliason commented Jun 2, 2026

Copy link
Copy Markdown
Member

Bundles three things developed and validated together.

Fixesnthroot + broadened <ci> operator coverage (was a silent /* unknown op */ → Jacobian crash); dynamic-volume AUX_VAR use-before-def ordering fix. Both were latent and surfaced porting a TNBC model.

Features — codegen-time generated-code validation; qsp-codegen verify self-test (codegen + build + parity in one command); generate now emits a runnable param_all.xml; <functionDefinition> inlining; converter / validation / funcdef / event tests; README quickstart + a supported-SBML-features section.

Rename (addresses #19)CancerVCTqsp_sim_core in the emitter + runtime. Consumer cutover (qspio-pdac, pdac-bed) coordinated in the same window; SPQSP_PDAC + the pdac-build variants are deferred.

Validated: 33 tests pass; a TNBC C++↔MATLAB parity passes clean; the PDAC parity profile is unchanged by the rename (pre-existing GVAX-scenario dosing failures are independent — tracked separately).

…rename

Fixes:
- MathML->C++: handle SimBiology's <ci>nthroot</ci> and broaden the
  <ci>-exported operator set (log2/log10, ceiling, hyperbolic/inverse-trig).
  Unknown operators now raise a clear, named error instead of emitting a
  /* unknown op */ comment that later crashed the Jacobian sympify.
- Seed dynamic compartment volumes into the assignment-rule emission closure
  so a concentration rule-species in a growing compartment no longer references
  an undefined AUX_VAR_* in the generated C++.

Features:
- validate_generated_cpp: catch AUX_VAR_* use-before-definition at codegen
  time with a located error instead of an opaque downstream C++ compile error.
- qsp-codegen verify: one-command codegen + build + MATLAB-parity self-test.
  CLI now uses generate/verify subcommands; legacy --sbml/--out-dir still works.
- generate also emits a complete, runnable param_all.xml (run qsp_sim with no
  hand-editing and no qsp-refresh-param-xml merge step).
- Inline SBML <functionDefinition> lambdas at their call sites.
- Tests for the MathML converter, generated-code validation, functionDefinition
  inlining, and event parsing; README quickstart + supported-SBML-features.

Rename (addresses #19):
- Rename the C++ namespace CancerVCT -> qsp_sim_core in the codegen emitter
  and the qsp_sim_core runtime. Consumer cutover (qspio-pdac, pdac-bed) lands
  alongside. SPQSP_PDAC and the pdac-build variants are deferred follow-ups.
@jeliason
jeliason merged commit 7b23839 into main Jun 2, 2026
2 checks passed
@jeliason
jeliason deleted the feat/codegen-usability-and-ns-rename branch June 2, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant