Skip to content

Revert AutoSpecialize default for SciMLFunction constructors#1299

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:revert-autospecialize-default
Mar 30, 2026
Merged

Revert AutoSpecialize default for SciMLFunction constructors#1299
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:revert-autospecialize-default

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Mar 29, 2026

Summary

  • Reverts only the ODEFunction, SplitFunction, and DynamicalODEFunction convenience constructors back to FullSpecialize (from Use DEFAULT_SPECIALIZATION for all SciMLFunction constructors #1298)
  • All other function types (NonlinearFunction, SDEFunction, DiscreteFunction, DAEFunction, RODEFunction, etc.) keep DEFAULT_SPECIALIZATION as intended
  • Bumps version to 2.153.1

The ODEFunction change exposed multiple breaking issues in OrdinaryDiffEq.jl CI:

  1. BigFloat tableau c promotes t past FunctionWrapper signatures — requires tableau constructors to take separate state/time types
  2. GradientTracer type not in wrapper signatures — AutoSparse sparsity detection passes tracer types through the wrapped function
  3. MatrixOperator jac_prototype causes promote_opUnion{}promote_f can't handle operator-based Jacobians
  4. Hard DAE numerical accuracy regression — wrapping changes numerical path for DAE + callback problems

Deferring ODEFunction AutoSpecialize default to v4 where these can be addressed properly.

Test plan

  • OrdinaryDiffEq.jl CI should return to green once this is released
  • Other function types remain on DEFAULT_SPECIALIZATION and are unaffected

Only reverts ODEFunction, SplitFunction, and DynamicalODEFunction
back to FullSpecialize. Other function types (NonlinearFunction,
SDEFunction, DiscreteFunction, etc.) keep DEFAULT_SPECIALIZATION
from SciML#1298.

The ODEFunction change exposed multiple issues in OrdinaryDiffEq.jl:
- BigFloat tableau c promotes t past FunctionWrapper signatures
- GradientTracer types not in wrapper signatures (AutoSparse)
- MatrixOperator jac_prototype causes promote_op → Union{}
- Hard DAE numerical accuracy regression

Deferring ODEFunction AutoSpecialize default to v4.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude force-pushed the revert-autospecialize-default branch from 2715c0c to a5c2176 Compare March 30, 2026 08:16
@ChrisRackauckas ChrisRackauckas merged commit ce5e7c5 into SciML:master Mar 30, 2026
49 of 61 checks passed
ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/SciMLBase.jl that referenced this pull request Mar 30, 2026
Change ODEFunction, SplitFunction, and DynamicalODEFunction convenience
constructors to use DEFAULT_SPECIALIZATION (AutoSpecialize) instead of
FullSpecialize. This was reverted from v2 (SciML#1299) due to downstream
issues that need to be fixed in OrdinaryDiffEq.jl v7.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/OrdinaryDiffEq.jl that referenced this pull request Apr 2, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 7, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 9, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
termi-official pushed a commit to termi-official/OrdinaryDiffEq.jl that referenced this pull request Apr 10, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 10, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 11, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 11, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 11, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 12, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 12, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 12, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 12, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 12, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 15, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 15, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 15, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 15, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 16, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 16, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 16, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 20, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas added a commit to SciML/OrdinaryDiffEq.jl that referenced this pull request Apr 21, 2026
OrdinaryDiffEq v7 needs FunctionWrappersWrappers v1 for proper fallback
support with GradientTracer and other type-wrapping edge cases
(see SciML/SciMLBase.jl#1299 and SciML/SciMLBase.jl#1300).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants