-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
remove type parameter from AbstractTriangular #26307
Conversation
Looks like the old version is still used a couple of places |
Looks like there are still some there 😄 |
Bump |
I searched the whole Julia project for
If the type gets removed, this would need to be replaced by a Then the first and the last lines here: julia/stdlib/SparseArrays/src/sparsevector.jl Lines 1026 to 1031 in 1be1deb
There are some tests in |
Since the second parameter does get used in other place, maybe it would be a better option to keep it but relax or remove the restriction? |
Once JuliaSparse/SparseArrays.jl#329 is merged and the stdlib is bumped, this PR should pass tests and we can run a pkgeval test. |
The failing tests are unrelated. Let's run a pkgevaluation. @nanosoldier |
Your package evaluation job has completed - possible new issues were detected. |
This needs JuliaArrays/StaticArrays.jl#1136 to be merged and released, and then another pkgeval run. |
@nanosoldier |
Your package evaluation job has completed - possible new issues were detected. |
I think you should make |
Interesting idea. And EDIT: BTW, I'm not argueing against subtyping, I'm argueing in favor of developing nice APIs for these abstract types and reduce the code in packages. |
Ha good question. In ArrayLayouts.jl both So perhaps ignore my suggestion (for now). |
@nanosoldier |
Your package evaluation job has completed - possible new issues were detected. |
@nanosoldier |
Your package evaluation job has completed - possible new issues were detected. |
The remaining failures are either due to compat restrictions on FillArrays.jl or on ArrayInterface.jl, and (seemingly) mostly indirectly, so for different reasons. They are also stuck at different minor version in the v0.x series, so it's a nightmare to track all that down. Some maintainers accept the changes but then don't release the update... So, what's the policy for situations like this? A bit of a relief could be to have a FillArrays@v0.12.x backport, because some have already missed the v0.13 bump. |
Sorry for the "review spam", but I'm trying to push this towards a decision. The current state is that this PR breaks packages that have very old compat restrictions, mostly, if not all, related to StaticArrays.jl (v0.12, so they missed v0.13, not to mention the upgrade to v1.x). Would it be acceptable to still merge this? If not, we should perhaps close this, or do we have some infrastructure to nudge package maintainers to upgrade their compat entries? |
We do have some infrastructure for that: you can make a PR to the General repo that adds a compat bound to StaticArrays <v0.12 that restricts it to julia <v1.10 |
That means we can safely merge this and then look for somebody who knows how to do registry manipulations? 😉 |
@KristofferC I'm merging this, and suggest we backport this to v1.10. In the backport (if we do it), we need to add a note the NEWS.md: * The abstract type `AbstractTriangular` now only has one type parameter `T`, indicating its
`eltype`. The second parameter `S<:AbstractMatrix` used to encode the type information on
the data container. To refer to the union of `[Unit][Upper/Lower]Triangular` types,
use `LinearAlgebra.UpperOrLowerTriangular` ([#26307]). How do we do that? Open a PR against the backport branch that adds only the NEWS entry? |
This also seems to have broken ArrayLayouts, and thus ArrayInterface, which a significant number (250+) of packages relies on. |
Probably just needs this line to 4 different overloads ( |
I'm very sorry, I must have overlooked that in the pkgeval runs. As indicated in the news entry, we need to replace Also, I realized that I might have merged this too early. Should we revert this, reland it and run pkgeval after the registry PRs are merged? Then the pkgeval picture should be much clearer (many packages with very old compat bounds will simply stop to work on v1.10/11). Sorry again!!! |
It isn't used anywhere, and is annoyingly constrained: I came across it while trying to implement a packed triangular, where the backing store is a vector.