-
-
Notifications
You must be signed in to change notification settings - Fork 210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression: Problem with indexing of JumpProblem #2838
Comments
Yeah, |
Glad to hear that it is under control. I am a bit confused though, was this feature intentionally withdrawn for now? Maybe more importantly, it is intended to re introduce this type of indexing? |
It wasn't intentionally withdrawn, just that it was in a way inevitable. It's a problem sort of unique to Julia. There are two ways out of this:
julia> subtypes(SciMLBase.AbstractSciMLProblem)
5-element Vector{Any}:
SciMLBase.AbstractDEProblem
SciMLBase.AbstractEnsembleProblem
SciMLBase.AbstractIntegralProblem
SciMLBase.AbstractLinearProblem
SciMLBase.AbstractOptimizationProblem
julia> subtypes(SciMLBase.AbstractDEProblem)
9-element Vector{Any}:
SciMLBase.AbstractDAEProblem
SciMLBase.AbstractDDEProblem
SciMLBase.AbstractJumpProblem
SciMLBase.AbstractNoiseProblem
SciMLBase.AbstractNonlinearProblem
SciMLBase.AbstractODEProblem
SciMLBase.AbstractPDEProblem
SciMLBase.AbstractRODEProblem
SciMLBase.AbstractSDDEProblem |
This sort of thing crops up a lot in Julia, where you want a subtype to just wrap another type and yet forwarding the method can lead to unintentional ambiguities down the line, despite the fact that no semantic guarantees were broken |
got it, makes sense. thanks again for helping improve the indexing test :) |
We might want to do something of the sort. In particular, some AbstractConcreteSciMLProblem or something, and then better define the interface on that, where everything has a |
Changing the type hierarchy is breaking, though? |
No, we'd keep AbstractSciMLProblem the same, we'd just add something below it that makes more assumptions and update the dispatches to those that require those assumptions. AbstractConcreteSciMLProblem <: AbstractSciMLProblem is assumed. |
If |
Hmm... we'd need to hash out the whole plan, but I think it would be good to spend the time to do this and then actually define what these abstract types stand for. |
@AayushSabharwal did this get addressed? |
No. I think the easiest solution is for JumpProcesses to not implement |
SciML/JumpProcesses.jl#469 is merged |
Sorry all, I somehow missed this discussion (otherwise I would have updated JumpProcesses for this long ago). Feel free to ping me on such issues in the future! |
In all fairness, I should've made the PR when this issue was opened. |
Also one case which did not work still does.
The text was updated successfully, but these errors were encountered: