Raise downgrade floors in ModelingToolkitBase (FunctionWrappers/ImplicitDiscreteSolve/OffsetArrays/BipartiteGraphs)#4677
Merged
ChrisRackauckas merged 1 commit intoJun 28, 2026
Conversation
The Downgrade lanes failed at the min-version floors because several
deps resolved below the version where the API actually used by
ModelingToolkitBase exists:
- FunctionWrappers 1.1.2: 1.1.0/1.1.1 produce "Module IR does not
contain specified entry function" when precompiling
FunctionWrappersWrappers' compile workload; fixed in 1.1.2.
- ImplicitDiscreteSolve 2.1.2: 2.1.0/2.1.1 reference the two-parameter
OrdinaryDiffEqCore.CommonControllerOptions{T, NLPType} in controller.jl
but allowed OrdinaryDiffEqCore as low as 4.1, where that type has one
parameter, giving "too many parameters for type". 2.1.2 raised its
own OrdinaryDiffEqCore floor to 4.4.0.
- OffsetArrays 1.3.0: OffsetArrays.Origin (used in @recompile_invalidations)
was added in 1.3.0.
- BipartiteGraphs 0.1.3: BipartiteGraphs.HyperGraph (used in
connectiongraph.jl) was added in 0.1.3.
Verified on Julia 1.10 (lts) by running julia-downgrade-compat's
downgrade.jl at the new floors and precompiling: ModelingToolkitBase
loads cleanly for both the sublibrary downgrade (DowngradeSublibraries)
and the root downgrade graph (InterfaceI).
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
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
The
DowngradeandDowngradeSublibrarieslanes are red on master. Both fail at the minimum-version floors: severallib/ModelingToolkitBasedependencies resolve below the version where the API that ModelingToolkitBase actually uses exists, so precompile dies.This PR raises four
[compat]lower bounds inlib/ModelingToolkitBase/Project.tomlto the minimal versions that actually work.Root causes (each reproduced + fixed locally on Julia 1.10 / lts)
FunctionWrappers1.11.1.2FunctionWrappers1.1.0/1.1.1 produceModule IR does not contain specified entry functionwhenFunctionWrappersWrappers'@compile_workloadruns. Isolated: FWW 1.0.0 + FW 1.1.1 → FAIL; FWW 1.0.0 + FW 1.1.2 → OK. The fix is inFunctionWrappers, not FWW.ImplicitDiscreteSolve0.1.2, 1, 20.1.2, 1, 2.1.2OrdinaryDiffEqCore.CommonControllerOptions{T, NLPType}incontroller.jl:50but had a too-looseOrdinaryDiffEqCorecompat (4.1.0 - 4), allowing OrdinaryDiffEqCore 4.3.0 where that type has only one parameter →too many parameters for type. IDS 2.1.2 raised its own OrdinaryDiffEqCore floor to4.4.0(where the 2nd param exists). This was theDowngrade / InterfaceIfailure.OffsetArrays11.3.0OffsetArrays.Origin(used in@recompile_invalidations) was added in 1.3.0; the downgrade picked 1.0.1 →UndefVarError: Origin not defined.BipartiteGraphs0.1.00.1.3BipartiteGraphs.HyperGraph(used insystems/connectiongraph.jl) was added in 0.1.3; the downgrade picked 0.1.1 →UndefVarError: HyperGraph not defined.Verification
On Julia 1.10 (lts), ran
julia-actions/julia-downgrade-compat'sdowngrade.jlat the new floors and precompiled:lib/ModelingToolkitBase): resolves to FunctionWrappers 1.1.3, OffsetArrays 1.3.0, BipartiteGraphs 0.1.4, ImplicitDiscreteSolve 2.1.2 / OrdinaryDiffEqCore 4.5.0;ModelingToolkitBaseprecompiles + loads cleanly..): root min-resolution lands on ImplicitDiscreteSolve 2.0.0 (old single-param controller, no error) + OrdinaryDiffEqCore 4.0.0;ModelingToolkitBaseprecompiles + loads cleanly in the root downgrade graph.Only
lib/ModelingToolkitBase/Project.tomlis changed (no Manifest, no source).Please ignore until reviewed by @ChrisRackauckas.