Fix bigfloat Misc/Wrappers failure and raise DifferentiationInterface floor to 0.7.15 (Downgrade Misc)#514
Merged
ChrisRackauckas merged 2 commits intoJun 23, 2026
Conversation
Contributor
Benchmark Results (Julia v1.11)Time benchmarks
Memory benchmarks
|
The `@test_broken sol4 = solve(...)` at bigfloat_test.jl:68 errored two ways:
1. On master, `@test_broken` was applied to an assignment expression. When
`solve()` returned (instead of throwing), the assignment evaluated to the
solution object — a non-Boolean — so the testset errored with "Expression
evaluated to non-Boolean".
2. The SecondOrderBVProblem with MIRKN4 and BigFloat state now solves correctly
and returns a successful retcode, so even a well-formed `@test_broken` block
errors with "Unexpected Pass".
Since the case genuinely passes now, convert it to a real `@test` asserting a
successful retcode.
Verified locally by running test/misc/bigfloat_test.jl on the failing channels:
- Julia 1.12 ("1"): BigFloat compatibility | 7 | 7 PASS
- Julia 1.10 (lts): BigFloat compatibility | 7 | 7 PASS
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0d87a97 to
954aa95
Compare
…alar BVP BoundsError)
The Downgrade Tests - Misc job tests at the dependency floors. The root
Project.toml floor was DifferentiationInterface = "0.7.13", and the
Scalar BVP tests (test/misc/scalar_tests.jl) errored there with
BoundsError: attempt to access 1-element Vector{ForwardDiff.Dual{...}} at index [2]
@ DifferentiationInterfaceForwardDiffExt/misc.jl:31
This is a bug in DifferentiationInterface 0.7.13/0.7.14: `overloaded_input_type`
for a `ForwardDiffOneArgJacobianPrep` indexes `[2]` into the dual vector and so
fails when the prepared input has a single element. Single-shooting on a scalar
BVP (u0 isa Number -> 1-element vec) hits exactly this path via
`__single_shooting_jacobian_ode_cache`. The bug is fixed in
DifferentiationInterface 0.7.15.
Verified locally on Julia 1.10 (lts) by pinning DifferentiationInterface to the
new floor 0.7.15 and running test/misc/scalar_tests.jl against the developed
root + sublibraries:
Scalar BVP tests | Pass Total Time
| 4 4 51.2s
(Reproduced the BoundsError on 0.7.13 and 0.7.14; confirmed 0.7.15+ fixes it.)
The sublibrary floors (lib/*/Project.toml) are raised from "0.7" to "0.7.15"
for the same reason and consistency.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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
Drives the BoundaryValueDiffEq.jl
masterCI toward green by fixing the failures this repo controls. Two fixes:1.
tests / Misc+tests / Wrappersroot-suite bigfloat failuretest/misc/bigfloat_test.jl:68was@test_broken sol4 = solve(prob, MIRKN4(), dt = 0.01), which failed two ways:@test_brokenapplied to an assignment: whensolve()returns, the assignment evaluates to the solution object (non-Boolean) and the testset errors withExpression evaluated to non-Boolean(the error on master).SecondOrderBVProblem+MIRKN4()+BigFloatcase now solves with a successful retcode, so even a well-formed@test_broken begin … enderrors withUnexpected Pass.Since the case genuinely passes now, converted it to a real
@test SciMLBase.successful_retcode(sol4.retcode).Verified locally (Julia 1.12 and 1.10):
BigFloat compatibility | 7 | 7PASS.2.
Downgrade Tests - Miscscalar BVPBoundsErrorThe downgrade-Misc job tests at dependency floors. With
DifferentiationInterface = "0.7.13",test/misc/scalar_tests.jlerrored:This is a bug in DifferentiationInterface 0.7.13/0.7.14:
overloaded_input_typefor aForwardDiffOneArgJacobianPrepindexes[2]into the dual vector, so it fails when the prepared input has a single element. Single-shooting on a scalar BVP (u0 isa Number→ 1-elementvec) hits exactly this via__single_shooting_jacobian_ode_cache. Fixed in DifferentiationInterface 0.7.15, so the floor is raised to0.7.15(root + all sublibraries).Verified locally on Julia 1.10 (lts) by pinning DifferentiationInterface to
0.7.15and runningtest/misc/scalar_tests.jlagainst the developed root + sublibraries:(Reproduced the
BoundsErroron 0.7.13 and 0.7.14; confirmed 0.7.15+ fixes it.)Remaining red checks — out of this repo's scope (reported, not fixed here)
tests / Wrappers(BVPSOL).Cannot find method(s) for bvpsol!— ODEInterface fails to load its Fortranbvpsolsolver in the GitHub runner environment. Verified locally on Julia 1.10 that the fullwrappers/odeinterface_tests.jlpasses (BVPSOL 4/4, COLNEW 1/1, COLNEW-multipoint 1/1) — the test code is correct; this is an ODEInterface/runner environment issue, not a repo bug.Downgrade Sublibraries / test (FIRK/MIRK).--min=@alldepsresolution isUnsatisfiablebefore any test runs. Root cause traced locally: the package requiresSciMLBase = "3", which forcesRecursiveArrayTools ≥ 4andDiffEqBase ≥ 7, but the test-dep floors predate that — and decisively,Enzyme = "0.13.33"admits only Enzyme0.13.x, every version of which capsDiffEqBase ≤ 6.190.5. So no Enzyme 0.13.x co-installs with the SciMLBase-3 / RAT-4 / DiffEqBase-7 stack at the floor. This is the fleet-wide downgrade-floor wall; resolving it requires a coordinated Enzyme major bump (with likely code adaptation) plus RAT/Rosenbrock/LinearSolve/DiffEqBase floor raises — a separate, larger change, deliberately not attempted here.ModelingToolkit.jl/All / Downstream Tests - All. ModelingToolkit's ownInterfaceItestset has 2 internal failures (1388 passed, 2 failed) — a cross-repo failure that resolves when MTK is fixed; not caused by this repo.