Fix minimum version bounds and NullParameters bug#29
Draft
ChrisRackauckas-Claude wants to merge 1 commit into
Draft
Fix minimum version bounds and NullParameters bug#29ChrisRackauckas-Claude wants to merge 1 commit into
ChrisRackauckas-Claude wants to merge 1 commit into
Conversation
| first and then use that to create `ODEProblem`s. | ||
| """ | ||
| function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = NullParameters()) | ||
| function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = DiffEqBase.NullParameters()) |
Member
There was a problem hiding this comment.
Suggested change
| function DiffEqBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = DiffEqBase.NullParameters()) | |
| function SciMLBase.ODEProblem(sys::FSPSystem, u0, tint, pmap = SciMLBase.NullParameters()) |
| Return a `SteadyStateProblem` for use in `DifferentialEquations. | ||
| """ | ||
| function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = NullParameters()) | ||
| function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = DiffEqBase.NullParameters()) |
Member
There was a problem hiding this comment.
Suggested change
| function DiffEqBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = DiffEqBase.NullParameters()) | |
| function SciMLBase.SteadyStateProblem(sys::FSPSystem, u0, pmap = SciMLBase.NullParameters()) |
- Update DiffEqBase minimum version from 6 to 6.165
- Catalyst 15 requires DiffEqBase >= 6.165, so the previous bound was too low
- Fix unqualified NullParameters reference in build_rhs.jl and build_rhs_ss.jl
- NullParameters is not exported from DiffEqBase, so it must be qualified as
DiffEqBase.NullParameters()
Note: Tests require MacroTools >= 0.5.17 (unreleased) or master for Julia 1.12
compatibility due to MethodList API changes in Julia 1.12.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2efc907 to
52a5873
Compare
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.
Summary
Two genuine fixes that let FiniteStateProjection build and pass its test suite on Julia 1.10 through 1.12:
NullParametersqualification (build_rhs.jl,build_rhs_ss.jl) —NullParametersis not exported from DiffEqBase, so the unqualified default-argument reference (pmap = NullParameters()) is anUndefVarErrorwaiting to happen. Qualified asDiffEqBase.NullParameters().DiffEqBase compat floor — bumped to
6.165to match what Catalyst 15 actually requires transitively, so the stated minimum is resolvable.Julia 1.12
MacroTools.prettifycrash (build_rhs.jl,build_rhs_ss.jl) — the RHS builders piped the generated expression throughMacroTools.prettify, which callsunresolve→unresolve1(f::Function) = methods(f).mt.name. On Julia 1.12 this throwsFieldError: type Base.MethodList has no field mtbecause themtfield was removed. The latest registered MacroTools (0.5.16) still contains this unguarded code; the upstream fix (Fix Julia 1.12 compatibility for MethodList API change FluxML/MacroTools.jl#217) is merged tomasteronly and has not been released (masterProject.tomlstill says0.5.16).Rather than block on an unreleased upstream package, this fixes the real cause in-repo: the
unresolvepass only rewrites interpolatedFunctionvalues to their symbolic names for display — it is unnecessary for expressions compiled via@RuntimeGeneratedFunction. A localprettify_rhsapplies the same cosmetic transforms (flatten,resyntax,alias_gensyms) but skipsunresolve, so FSP works on Julia 1.12 with any MacroTools 0.5.x.Verification (run locally)
Pkg.test()— Telegraph 17/17, FeedbackLoop 12/12, BirthDeath2D 18/18, "tests passed". (Previously errored with theBase.MethodListFieldError.)Pkg.test()— Telegraph 17/17, FeedbackLoop 12/12, BirthDeath2D 18/18, "tests passed". No regression.This PR should be ignored until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code