Conversation
|
will need SciML/SciMLBase.jl#1159 to fully work |
|
Since you are already working on the logging system, is there any chance that we can have additional logging messages for the time integration loop at trace level to debug issues in the timestepping itself? Or is that too costly? |
|
We are splitting that to a different step. First let's get the infrastructure together, then add new messages.
Never! If it's super costly, just put it in the All preset only. Semi? |
|
At this point anything that was behind a Currently, the For the Linear solves and Nonlinear solves I set verbose to |
|
is this ready to review? |
|
Yep, ready to be looked at. |
|
Lots of test failures |
|
Yes, because I'm using |
ca97de9 to
2566850
Compare
|
There are a lot of ERROR: LoadError: Unsatisfiable requirements detected for package OrdinaryDiffEqCore [bbf590c4]:
OrdinaryDiffEqCore [bbf590c4] log:
├─possible versions are: 1.0.0-1.36.0 or uninstalled
└─restricted to versions 1.37.0-1 by OrdinaryDiffEq [1dea7af3] — no versions left
└─OrdinaryDiffEq [1dea7af3] log:
├─possible versions are: 6.103.0 or uninstalled
└─OrdinaryDiffEq [1dea7af3] is fixed to version 6.103.0which is weird because I bumped OrdinaryDiffEq to 1.37 in this PR, is CI not using the versions in this PR? |
Adds @static if compatibility to support both old and new versions of OrdinaryDiffEqCore before and after PR SciML/OrdinaryDiffEq.jl#2895. The PR adds typeof(verbose) as a type parameter to DEOptions. This change makes DelayDiffEq.jl robust to this API change by detecting at compile time which version of DEOptions is available and using the appropriate constructor. Implementation: - Adds _count_deoptions_typeparams() to count type parameters - Uses DEOPTIONS_HAS_VERBOSE_TYPEPARAM constant for compile-time detection - Old version (OrdinaryDiffEqCore ≤ 1.36): 20 type parameters - New version (OrdinaryDiffEqCore ≥ 1.37): 21 type parameters Benefits: - Zero runtime overhead (@static if is compile-time) - Automatic version detection - Backward and forward compatible - No version number checking needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Adds @static if compatibility to support both old and new versions of OrdinaryDiffEqCore before and after PR SciML/OrdinaryDiffEq.jl#2895. The PR adds typeof(verbose) as a type parameter to DEOptions. This change makes DelayDiffEq.jl robust to this API change by detecting at compile time which version of DEOptions is available and using the appropriate constructor. Implementation: - Adds _count_deoptions_typeparams() to count type parameters - Uses DEOPTIONS_HAS_VERBOSE_TYPEPARAM constant for compile-time detection - Old version (OrdinaryDiffEqCore ≤ 1.36): 20 type parameters - New version (OrdinaryDiffEqCore ≥ 1.37): 21 type parameters Benefits: - Zero runtime overhead (@static if is compile-time) - Automatic version detection - Backward and forward compatible - No version number checking needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Adds @static if compatibility to support both old and new versions of OrdinaryDiffEqCore before and after PR SciML/OrdinaryDiffEq.jl#2895. The PR adds typeof(verbose) as a type parameter to DEOptions. This change makes DelayDiffEq.jl robust to this API change by detecting at compile time which version of DEOptions is available and using the appropriate constructor. Implementation: - Adds _count_deoptions_typeparams() to count type parameters - Uses DEOPTIONS_HAS_VERBOSE_TYPEPARAM constant for compile-time detection - Old version (OrdinaryDiffEqCore ≤ 1.36): 20 type parameters - New version (OrdinaryDiffEqCore ≥ 1.37): 21 type parameters Benefits: - Zero runtime overhead (@static if is compile-time) - Automatic version detection - Backward and forward compatible - No version number checking needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
|
LTS ignores sources |
| @@ -0,0 +1,9 @@ | |||
| # Controlling Solver Verbosity | |||
There was a problem hiding this comment.
DiffEqDocs needs a PR that explains it in more detail how it's a solver-package specific thing.
There was a problem hiding this comment.
Actually it makes it a bit rough for it to be solver-specific... since then you cannot do things in benchmarks and optimization more generally.
lib/OrdinaryDiffEqBDF/Project.toml
Outdated
| TruncatedStacktraces = "1.4" | ||
| SciMLBase = "2.99" | ||
| OrdinaryDiffEqCore = "1.29.0" | ||
| OrdinaryDiffEqCore = "1.37.0" |
|
Is there anything I can do about errors like this? Failed to precompile OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a] to "/home/chrisrackauckas/.julia/compiled/v1.12/OrdinaryDiffEqAdamsBashforthMoulton/jl_QB6FLI".
ERROR: LoadError: Error opening package file /home/chrisrackauckas/.julia/compiled/v1.12/OrdinaryDiffEqCore/SoYJU_894Ui.so: /home/chrisrackauckas/.julia/compiled/v1.12/OrdinaryDiffEqCore/SoYJU_894Ui.so: cannot open shared object file: No such file or directory |
2b9767b to
9ee7c80
Compare
|
@ChrisRackauckas I think this is ready, but it's hard to tell with all of the test failures. Most of them are because LTS doesn't use sources, some are from JET, and some are failures to open .so files. But I went through as many of the legitimate failures that I could find and fixed them. I also bumped all of minor versions of every subpackage to reflect that. The biggest issue here turned out to be that in order to get the Linear and Nonlinear verbosity objects to the linear and nonlinear caches I had to add an argument to every But yeah not sure if it's mergable in this state. |
Yes, make the downstream PRs. But this should be easy to make backwards compatible with just the standard tricks right? Just make verbose be the last argument and make a dispatch that has a default |
5d4ac8c to
24113fd
Compare
|
this branch is already very far behind, continuing in the other PR |
…L#2895) ## Summary This PR builds on SciML#2895 and completes the backwards compatibility layer for the verbosity system, addressing comments about downstream package compatibility. ## Key Addition: Backwards Compatibility for alg_cache Added backwards compatibility fallbacks in OrdinaryDiffEqCore/src/deprecated.jl that allow downstream packages (DelayDiffEq, PositiveIntegrators, ProbNumDiffEq, etc.) to continue working without immediate updates. ### Changes Made - Added verbose parameter threading through alg_cache functions - Added ODEVerbosity type for controlling verbosity - Added @SciMLMessage macro usage for controllable warnings - Added backwards compatibility fallbacks in deprecated.jl - Updated solve interface to pass verbose to integrators ### How the Fallbacks Work | Scenario | Fallback Used | Result | |----------|---------------|--------| | Old code calls alg_cache without verbose | Fallback | Adds ODEVerbosity(), calls new signature | | __init calls alg_cache with verbose on downstream alg | Direct/Fallback | Works correctly | ### Why This Makes It Non-Breaking - Downstream packages don't need to update immediately - Once they add the verbose parameter, they get full verbosity support - No version bump to 3.0 required - this is backwards compatible 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
…ty_backwards_compat Complete backwards compatibility for verbosity system (builds on #2895)
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
Add any other context about the problem here.