diff --git a/Project.toml b/Project.toml index 8ce41f62..a74baaff 100644 --- a/Project.toml +++ b/Project.toml @@ -16,11 +16,12 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [extensions] -StructArraysAdaptExt = "Adapt" -StructArraysGPUArraysCoreExt = ["GPUArraysCore", "KernelAbstractions"] -StructArraysLinearAlgebraExt = "LinearAlgebra" -StructArraysSparseArraysExt = "SparseArrays" -StructArraysStaticArraysExt = "StaticArrays" +AdaptExt = "Adapt" +GPUArraysCoreExt = "GPUArraysCore" +KernelAbstractionsExt = "KernelAbstractions" +LinearAlgebraExt = "LinearAlgebra" +SparseArraysExt = "SparseArrays" +StaticArraysExt = "StaticArrays" [compat] Adapt = "4" diff --git a/ext/StructArraysAdaptExt.jl b/ext/AdaptExt.jl similarity index 87% rename from ext/StructArraysAdaptExt.jl rename to ext/AdaptExt.jl index f717f882..15017f4c 100644 --- a/ext/StructArraysAdaptExt.jl +++ b/ext/AdaptExt.jl @@ -1,4 +1,4 @@ -module StructArraysAdaptExt +module AdaptExt # Use Adapt allows for automatic conversion of CPU to GPU StructArrays using Adapt, StructArrays diff --git a/ext/GPUArraysCoreExt.jl b/ext/GPUArraysCoreExt.jl new file mode 100644 index 00000000..91f7a001 --- /dev/null +++ b/ext/GPUArraysCoreExt.jl @@ -0,0 +1,8 @@ +module GPUArraysCoreExt + +using StructArrays +import GPUArraysCore + +StructArrays.always_struct_broadcast(::GPUArraysCore.AbstractGPUArrayStyle) = true + +end # module diff --git a/ext/StructArraysGPUArraysCoreExt.jl b/ext/KernelAbstractionsExt.jl similarity index 77% rename from ext/StructArraysGPUArraysCoreExt.jl rename to ext/KernelAbstractionsExt.jl index 5b46ffaf..12ca1307 100644 --- a/ext/StructArraysGPUArraysCoreExt.jl +++ b/ext/KernelAbstractionsExt.jl @@ -1,11 +1,9 @@ -module StructArraysGPUArraysCoreExt +module KernelAbstractionsExt using StructArrays -using StructArrays: map_params, array_types using Base: tail -import GPUArraysCore import KernelAbstractions as KA function KA.get_backend(x::T) where {T<:StructArray} @@ -23,6 +21,4 @@ function KA.get_backend(x::T) where {T<:StructArray} return backend end -StructArrays.always_struct_broadcast(::GPUArraysCore.AbstractGPUArrayStyle) = true - end # module diff --git a/ext/StructArraysLinearAlgebraExt.jl b/ext/LinearAlgebraExt.jl similarity index 95% rename from ext/StructArraysLinearAlgebraExt.jl rename to ext/LinearAlgebraExt.jl index 6699d858..f2e439e2 100644 --- a/ext/StructArraysLinearAlgebraExt.jl +++ b/ext/LinearAlgebraExt.jl @@ -1,4 +1,4 @@ -module StructArraysLinearAlgebraExt +module LinearAlgebraExt using StructArrays using LinearAlgebra diff --git a/ext/StructArraysSparseArraysExt.jl b/ext/SparseArraysExt.jl similarity index 89% rename from ext/StructArraysSparseArraysExt.jl rename to ext/SparseArraysExt.jl index f6dfd0bf..00dc998f 100644 --- a/ext/StructArraysSparseArraysExt.jl +++ b/ext/SparseArraysExt.jl @@ -1,4 +1,4 @@ -module StructArraysSparseArraysExt +module SparseArraysExt using StructArrays: StructArray, components, createinstance import SparseArrays: sparse, issparse diff --git a/ext/StructArraysStaticArraysExt.jl b/ext/StaticArraysExt.jl similarity index 99% rename from ext/StructArraysStaticArraysExt.jl rename to ext/StaticArraysExt.jl index 503fc248..ca8a1ea6 100644 --- a/ext/StructArraysStaticArraysExt.jl +++ b/ext/StaticArraysExt.jl @@ -1,4 +1,4 @@ -module StructArraysStaticArraysExt +module StaticArraysExt using StructArrays using StaticArrays: StaticArray, FieldArray, tuple_prod, SVector, MVector, SOneTo, HeterogeneousShapeTuple diff --git a/test/runtests.jl b/test/runtests.jl index d97b89b5..9ec78d51 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,4 +1,12 @@ using StructArrays +using Test +import KernelAbstractions as KA + +@testset "KernelAbstractions without GPUArraysCore" begin + s = StructArray(a=[1, 2], b=[3, 4]) + @test (@inferred KA.get_backend(s)) == KA.CPU() +end + using StructArrays: staticschema, iscompatible, _promote_typejoin, append!! using OffsetArrays: OffsetArray, OffsetVector, OffsetMatrix using StaticArrays @@ -8,12 +16,10 @@ using Adapt: adapt, Adapt using ConstructionBase: constructorof, setproperties, getproperties, getfields using JLArrays using LinearAlgebra -using Test using SparseArrays using InfiniteArrays import Aqua -import KernelAbstractions as KA import Tables, PooledArrays, WeakRefStrings using Documenter: doctest