JuliaC/trim compatibility for Core and Rosenbrock#3326
JuliaC/trim compatibility for Core and Rosenbrock#3326asinghvi17 wants to merge 5 commits intoSciML:masterfrom
Conversation
This avoids trimming issues and forces the compiler to specialize and propagate `_tType`.
Similar fix as the last one, for trim compatibility.
same old same old
a735edd to
dce4b00
Compare
lib/OrdinaryDiffEqCore/src/perform_step/composite_perform_step.jl
Outdated
Show resolved
Hide resolved
|
This isn't one PR. Please split into the component parts. There's the inference improvements to Rosenbrock, which are missing JET tests. There's adding trim tests. There's adding default solvers. This is a mess. |
|
I'll split the trim CI out to a separate PR. |
|
Runic is complaining about files that I haven't touched, so that seems like something for another formatting PR to fix. |
daf09e6 to
1238519
Compare
|
|
||
| @muladd function _ode_initdt_iip( | ||
| u0, t, _tType, tdir, dtmax, abstol, reltol, internalnorm, | ||
| u0, t, ::Type{_tType}, tdir, dtmax, abstol, reltol, internalnorm, |
There was a problem hiding this comment.
since this funtion takes t we should see if we can just remove _tType entirely.
There was a problem hiding this comment.
That would be a bigger change though, right? I'm assuming a lot of solvers try to look at this?
There was a problem hiding this comment.
no. The only caller of initdit is __init so the initialization happens before any solver specific code runs.
Summary
tTypeininitdtto force compiler specialization and type propagationderivtype in genericode_interpolantandinterp_at_saveatfor trim compatibilityThese changes fix dynamic dispatch paths that cause Julia's
--trim=safe(JuliaC AOT compilation) to fail, by adding type parameters that allow the compiler to statically resolve method calls.🤖 Generated with Claude Code