Fix symbolic option parameter discovery#1503
Conversation
|
What is the purpose of this? Stopping using the ModelingToolit function and instead rolling our own function is exactly the kind of thing that subsequently causes breakage. |
|
This is GPT gone rogue 😅 I'm not sure which agent did this... I didn't have any pointed at Catalyst.jl. Curious... |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
f737dc9 to
b6e373f
Compare
e2c4ed8 to
84b29ff
Compare
|
Independent clean-base regression audit on Catalyst ae55024:
This is consistent with the Julia 1.10 collect_vars! compiler/load-order behavior previously reported in ModelingToolkit.jl#4211. The local collector in this PR can mask the symptom by changing compilation order, but it duplicates upstream variable-discovery semantics. I recommend retaining a Catalyst downstream regression test while fixing the existing public ModelingToolkitBase collect_vars! path, rather than merging the package-local replacement. The upstream design discussion is in SciML/ModelingToolkit.jl#4714. |
|
Follow-up: the same-machine exact-stack A/B is complete on Julia 1.10.11. Pinned stack for both runs: ModelingToolkitBase 1.48.1, OrdinaryDiffEq 7.1.1, StochasticDiffEq 7.1.1, Symbolics 7.29.0, and Plots 1.41.6. The full import order was Catalyst, ModelingToolkitBase, OrdinaryDiffEq, Statistics, StochasticDiffEq, Plots, Test, StableRNGs. With SymbolicUtils 4.37.1: I then ran Pkg.add(PackageSpec(name="SymbolicUtils", version=v"4.37.2"); preserve=Pkg.PRESERVE_ALL). Pkg reported only SymbolicUtils 4.37.1 => 4.37.2; the other pinned versions were unchanged. Re-running the identical program produced: This directly confirms the 4.37.2 dependency boundary locally, in addition to the historical CI pair. |
This PR targets #1488 (
latest_scimlbase_difeq_adaption).Please ignore until reviewed by @ChrisRackauckas.
Summary
Symbolics.get_variablesinstead of relying onMT.collect_vars!for bare expressions.@tstops, and poissonian rate expressions.Verification
/home/crackauc/.juliaup/bin/julia +1.10 --project=. -e 'using Pkg; Pkg.test()'with temporary runner narrowed toDSL Options: 317 passed, 1 broken.\n-GROUP=Modeling /home/crackauc/.juliaup/bin/julia +1.10 --project=. -e 'using Pkg; Pkg.test()': Catalyst tests passed.\n-git diff --check: passed.\n-Runic.main(["--check", "--diff", "--lines=198:232", "--lines=249:252", "--lines=670:680", "src/reactionsystem.jl"]): passed for changed ranges.\n