fix: remove invalidating ::Any methods#346
fix: remove invalidating ::Any methods#346AayushSabharwal wants to merge 2 commits intoJuliaAlgebra:mainfrom
::Any methods#346Conversation
src/comparison.jl
Outdated
| Base.isequal(α, q::RationalPoly) = isequal(α * q.den, q.num) | ||
| Base.isequal(q::RationalPoly, α) = isequal(α, q) | ||
| Base.isequal(α::Union{Number,MA.AbstractMutable,AbstractArray}, q::RationalPoly) = isequal(α * q.den, q.num) | ||
| Base.isequal(q::RationalPoly, α::Union{Number,MA.AbstractMutable,AbstractArray}) = isequal(α, q) |
There was a problem hiding this comment.
Define this Union as a const const _Constant
9738765 to
ed52a33
Compare
|
Is the support of |
|
No, that part is fine. The only other invalidations from this dependency tree are |
ed52a33 to
167d238
Compare
|
Can we merge this? I ran into the same invalidation problem. Here's some concrete data from a MultivariatePolynomials causes 1,551 method invalidations
This PR's approach of using |
|
As this is a breaking change, I plan to incorporate it into the next breaking release. The plan is as follows:
I did two bad design decisions in MultivariatePolynomials:
When writing StarAlgebras with @kalmarek , we learned from these mistakes and didn't repoduce them. I released StarAlgebras 2 days ago so I can now use it as backend for MultivariatePolynomials and that will automatically solve this issue. |
|
That sounds great! :) |
I also removed the
::Nothingmethod since it was invalidating, and if I understand correctly it was necessary due to the::Anymethods.