Codegen robustness + usability features, and CancerVCT->qsp_sim_core rename (#19) - #31
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bundles three things developed and validated together.
Fixes —
nthroot+ broadened<ci>operator coverage (was a silent/* unknown op */→ Jacobian crash); dynamic-volumeAUX_VARuse-before-def ordering fix. Both were latent and surfaced porting a TNBC model.Features — codegen-time generated-code validation;
qsp-codegen verifyself-test (codegen + build + parity in one command);generatenow emits a runnableparam_all.xml;<functionDefinition>inlining; converter / validation / funcdef / event tests; README quickstart + a supported-SBML-features section.Rename (addresses #19) —
CancerVCT→qsp_sim_corein 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).