Skip to content

Commit 8021ff1

Browse files
Add ReverseDiff weak dep
with backwards compatibility. Comes from SciMLSensitivity.jl back compat split.
1 parent 2e3e3d4 commit 8021ff1

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

Project.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
2020
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
2121
ZygoteRules = "700de1a5-db45-46bc-99cf-38207098b444"
2222

23+
[weakdeps]
24+
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
25+
26+
[extensions]
27+
RecursiveArrayToolsReverseDiffExt = "ReverseDiff"
28+
2329
[compat]
2430
Adapt = "3"
2531
ArrayInterfaceCore = "0.1.1"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module RecursiveArrayToolsReverseDiffExt
2+
3+
function RecursiveArrayTools.recursivecopy!(b::AbstractArray{T, N},
4+
a::AbstractArray{T2, N}) where {
5+
T <:
6+
Tracker.TrackedArray,
7+
T2 <:
8+
Tracker.TrackedArray,
9+
N}
10+
@inbounds for i in eachindex(a)
11+
b[i] = copy(a[i])
12+
end
13+
end
14+
15+
end

src/RecursiveArrayTools.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ function ChainRulesCore.rrule(T::Type{<:GPUArraysCore.AbstractGPUArray},
4242
T(xs), ȳ -> (NoTangent(), ȳ)
4343
end
4444

45+
import Requires
46+
function __init__()
47+
@static if !isdefined(Base, :get_extension)
48+
Requires.@require ReverseDiff="37e2e3b7-166d-5795-8a7a-e32c996b4267" begin include("../ext/RecursiveArrayToolsReverseDiffExt.jl") end
49+
end
50+
end
51+
4552
export VectorOfArray, DiffEqArray, AbstractVectorOfArray, AbstractDiffEqArray,
4653
AllObserved, vecarr_to_vectors, tuples
4754

0 commit comments

Comments
 (0)