Add compatibility layer for OrdinaryDiffEqCore DEOptions API change #337
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
Adds
@static ifcompatibility layer to support both old and new versions of OrdinaryDiffEqCore before and after PR SciML/OrdinaryDiffEq.jl#2895.This PR makes DelayDiffEq.jl robust to the upcoming API change in OrdinaryDiffEqCore that adds
typeof(verbose)as a type parameter toDEOptions.Changes
Detection Mechanism
_count_deoptions_typeparams()function to count type parameters inDEOptionsDEOPTIONS_HAS_VERBOSE_TYPEPARAMconstant for compile-time detectiontypeof(verbose))Implementation
Uses
@static ifto conditionally constructDEOptionswith or without thetypeof(verbose)type parameter based on the detected version.Benefits
@static ifis evaluated at compile timeTesting
✅ Compiled successfully with OrdinaryDiffEqCore v1.36.0
✅ Correctly detected old version (20 parameters)
✅ DDE solver smoke test passed
✅ Zero runtime overhead verified
Compatibility
This change maintains compatibility with:
Related
🤖 Generated with Claude Code