Skip to content
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

Drop support for ArrayInterface 6? #20

Closed
chriselrod opened this issue Feb 20, 2023 · 6 comments
Closed

Drop support for ArrayInterface 6? #20

chriselrod opened this issue Feb 20, 2023 · 6 comments

Comments

@chriselrod
Copy link
Contributor

Rather than get these warnings:

julia> using StrideArraysCore
[ Info: Precompiling StrideArraysCore [7792a7ef-975c-4747-a70f-980b88e8d1da]
WARNING: Method definition getindex(ArrayInterfaceCore.ArrayIndex{N} where N, Union{Int64, Static.StaticInt{N} where N}, Union{Int64, Static.StaticInt{N} where N}...) in module ArrayInterface at /home/chriselrod/.julia/packages/ArrayInterface/4RbA4/src/array_index.jl:23 overwritten in module StaticArrayInterface at /home/chriselrod/.julia/packages/StaticArrayInterface/gJiae/src/array_index.jl:9.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition size(StrideArraysCore.AbstractStrideArray{T, N, R, S, X, O} where O<:Tuple{Vararg{Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N}, N}} where X<:Tuple{Vararg{Union{Nothing, Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N, StrideArraysCore.StrideReset{T} where T}, N}} where S<:Tuple{Vararg{Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N}, N}} where R where N where T) in module StrideArraysCore at /home/chriselrod/.julia/dev/StrideArraysCore/src/ptr_array.jl:463 overwritten at /home/chriselrod/.julia/dev/StrideArraysCore/src/ptr_array.jl:480.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition axes(StrideArraysCore.AbstractStrideArray{T, N, R, S, X, O} where O<:Tuple{Vararg{Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N}, N}} where X<:Tuple{Vararg{Union{Nothing, Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N, StrideArraysCore.StrideReset{T} where T}, N}} where S<:Tuple{Vararg{Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Static.StaticInt{N} where N}, N}} where R where N where T) in module StrideArraysCore at /home/chriselrod/.julia/dev/StrideArraysCore/src/ptr_array.jl:481 overwritten at /home/chriselrod/.julia/dev/StrideArraysCore/src/ptr_array.jl:482.
  ** incremental compilation may be fatally broken for this module **

I'd prefer to immediately get a compat error to find out why there is a conflict.

Is there a reason a package may want ArrayInterface 6 + StaticArrayInterface?

@ChrisRackauckas
Copy link
Member

Just for the upgrade path. We can yank v1.1 once everything is through in about a week, but I think everything does work with v6?

@chriselrod
Copy link
Contributor Author

chriselrod commented Feb 20, 2023

FWIW,I filed this issue because I added an ArrayInterface dependency to a package just so I can pin it to 7 while upgrading.

@chriselrod
Copy link
Contributor Author

chriselrod commented Feb 21, 2023

I saw you yanked the old version.
However, packages still on ArrayInterface v6 now throw an odd error message:

julia> @time using OrdinaryDiffEq
┌ Error: Error during loading of extension ArrayInterfaceGPUArraysCoreExt of ArrayInterface, use `Base.retry_load_extensions()` to retry.
└ @ Base loading.jl:1190
┌ Error: Error during loading of extension ArrayInterfaceStaticArraysCoreExt of ArrayInterface, use `Base.retry_load_extensions()` to retry.
└ @ Base loading.jl:1190
  9.975802 seconds (23.23 M allocations: 1.292 GiB, 9.59% gc time, 1.11% compilation time: 15% of which was recompilation)

With ArrayInterface v6, we shouldn't have extensions at all.

As explained in my next comment, I think this is a Pkg bug.
Or at least, I have no idea how anything we've done could cause it, and the error message is thoroughly unhelpful in explaining how if the error is indeed on our side.

@chriselrod
Copy link
Contributor Author

chriselrod commented Feb 21, 2023

julia> using StaticArrays, ArrayInterface
WARNING: using StaticArrays.pop in module Main conflicts with an existing identifier.
┌ Error: Error during loading of extension ArrayInterfaceStaticArraysCoreExt of ArrayInterface, use `Base.retry_load_extensions()` to retry.
└ @ Base loading.jl:1190

(p0) pkg> st -m ArrayInterface
Status `~/Documents/progwork/julia/env/p0/Manifest.toml`
⌅ [4fba245c] ArrayInterface v6.0.23
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`

Maybe it is a Pkg bug?
Why is it trying to load the extension? Where is the extension coming from?
Not from ArrayInterface v6.0.23...

On the plus side, the errors are non-blocking.
And because these extensions aren't supposed to be loaded anyway, that they failed to load isn't a problem. The message is just visual noise, and prompts concern that whatever made Pkg think they should be loaded is related to some other problem that could cause unforeseen issues.

@visr
Copy link

visr commented Feb 21, 2023

Maybe it is a Pkg bug? Why is it trying to load the extension?

This looks like it might be fixed by JuliaLang/julia#48703.

@chriselrod
Copy link
Contributor Author

Yes, it does. I was on a 2-day old master, and looks like it was merged yesterday. I'll rebuild.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants