Skip to content

Commit ae038d8

Browse files
authored
refactor: move StdLibs into extensions (#508)
1 parent bafa3cc commit ae038d8

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

Project.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
name = "KernelAbstractions"
22
uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
33
authors = ["Valentin Churavy <[email protected]> and contributors"]
4-
version = "0.9.23"
4+
version = "0.9.24"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
88
Atomix = "a9b6321e-bd34-4604-b9c9-b65b8de01458"
99
EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
1010
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
11-
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1211
MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
1312
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
1413
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
15-
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
1614
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1715
UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
1816
UnsafeAtomics = "013be700-e6cd-48c3-b4a1-df204f14c38f"
@@ -36,9 +34,15 @@ julia = "1.6"
3634

3735
[extensions]
3836
EnzymeExt = "EnzymeCore"
37+
LinearAlgebraExt = "LinearAlgebra"
38+
SparseArraysExt = "SparseArrays"
3939

4040
[extras]
4141
EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
42+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
43+
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
4244

4345
[weakdeps]
4446
EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
47+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
48+
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

ext/LinearAlgebraExt.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module LinearAlgebraExt
2+
3+
using KernelAbstractions: KernelAbstractions
4+
if isdefined(Base, :get_extension)
5+
using LinearAlgebra: Tridiagonal, Diagonal
6+
else
7+
using ..LinearAlgebra: Tridiagonal, Diagonal
8+
end
9+
10+
KernelAbstractions.get_backend(A::Diagonal) = KernelAbstractions.get_backend(A.diag)
11+
KernelAbstractions.get_backend(A::Tridiagonal) = KernelAbstractions.get_backend(A.d)
12+
13+
end

ext/SparseArraysExt.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module SparseArraysExt
2+
3+
using KernelAbstractions: KernelAbstractions
4+
if isdefined(Base, :get_extension)
5+
using SparseArrays: AbstractSparseArray, rowvals
6+
else
7+
using ..SparseArrays: AbstractSparseArray, rowvals
8+
end
9+
10+
function KernelAbstractions.get_backend(A::AbstractSparseArray)
11+
return KernelAbstractions.get_backend(rowvals(A))
12+
end
13+
14+
end

src/KernelAbstractions.jl

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ import PrecompileTools
1212
import Atomix: @atomic, @atomicswap, @atomicreplace
1313
import UnsafeAtomics
1414

15-
using LinearAlgebra
1615
using MacroTools
17-
using SparseArrays
1816
using StaticArrays
1917
using Adapt
2018

@@ -467,10 +465,6 @@ function get_backend end
467465
# Should cover SubArray, ReshapedArray, ReinterpretArray, Hermitian, AbstractTriangular, etc.:
468466
get_backend(A::AbstractArray) = get_backend(parent(A))
469467

470-
get_backend(A::AbstractSparseArray) = get_backend(rowvals(A))
471-
get_backend(A::Diagonal) = get_backend(A.diag)
472-
get_backend(A::Tridiagonal) = get_backend(A.d)
473-
474468
get_backend(::Array) = CPU()
475469

476470
# Define:

0 commit comments

Comments
 (0)