From 38a88585aa97d3f8aa9f7bd4c0a1e5e5f4c5a6f8 Mon Sep 17 00:00:00 2001 From: Oliver Schulz Date: Fri, 12 Sep 2025 15:29:36 +0200 Subject: [PATCH 1/2] Support ADTypes.NoAutoDiff --- DifferentiationInterface/src/utils/check.jl | 8 ++++++++ DifferentiationInterface/test/Core/ZeroBackends/test.jl | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/DifferentiationInterface/src/utils/check.jl b/DifferentiationInterface/src/utils/check.jl index 9e0510533..1772558a0 100644 --- a/DifferentiationInterface/src/utils/check.jl +++ b/DifferentiationInterface/src/utils/check.jl @@ -16,9 +16,17 @@ function check_available(backend::MixedMode) check_available(reverse_backend(backend)) end +@static if isdefined(ADTypes, :NoAutoDiff) + check_available(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) +end + """ check_inplace(backend) Check whether `backend` supports differentiation of in-place functions and return a `Bool`. """ check_inplace(backend::AbstractADType) = Bool(inplace_support(backend)) + +@static if isdefined(ADTypes, :NoAutoDiff) + check_inplace(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) +end diff --git a/DifferentiationInterface/test/Core/ZeroBackends/test.jl b/DifferentiationInterface/test/Core/ZeroBackends/test.jl index 396e7d455..4a7ecb3ad 100644 --- a/DifferentiationInterface/test/Core/ZeroBackends/test.jl +++ b/DifferentiationInterface/test/Core/ZeroBackends/test.jl @@ -10,6 +10,11 @@ using Test LOGGING = get(ENV, "CI", "false") == "false" +if isdefined(ADTypes, :NoAutoDiff) + @test_throws NoAutoDiffSelectedError check_available(NoAutoDiff()) + @test_throws NoAutoDiffSelectedError check_inplace(NoAutoDiff()) +end + zero_backends = [AutoZeroForward(), AutoZeroReverse()] for backend in zero_backends From 393039801b5aa9dbc6b998f2452e79b9cc9386a0 Mon Sep 17 00:00:00 2001 From: Oliver Schulz Date: Thu, 18 Sep 2025 13:42:14 +0200 Subject: [PATCH 2/2] Require ADTypes v1.17 for NoAutoDiff --- DifferentiationInterface/Project.toml | 2 +- DifferentiationInterface/src/utils/check.jl | 8 ++------ DifferentiationInterface/test/Core/ZeroBackends/test.jl | 6 ++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/DifferentiationInterface/Project.toml b/DifferentiationInterface/Project.toml index 372a97de8..3654bf71f 100644 --- a/DifferentiationInterface/Project.toml +++ b/DifferentiationInterface/Project.toml @@ -56,7 +56,7 @@ DifferentiationInterfaceTrackerExt = "Tracker" DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] [compat] -ADTypes = "1.17.0" +ADTypes = "1.18.0" ChainRulesCore = "1.23.0" DiffResults = "1.1.0" Diffractor = "=0.2.6" diff --git a/DifferentiationInterface/src/utils/check.jl b/DifferentiationInterface/src/utils/check.jl index 1772558a0..ed11dd10a 100644 --- a/DifferentiationInterface/src/utils/check.jl +++ b/DifferentiationInterface/src/utils/check.jl @@ -16,9 +16,7 @@ function check_available(backend::MixedMode) check_available(reverse_backend(backend)) end -@static if isdefined(ADTypes, :NoAutoDiff) - check_available(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) -end +check_available(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) """ check_inplace(backend) @@ -27,6 +25,4 @@ Check whether `backend` supports differentiation of in-place functions and retur """ check_inplace(backend::AbstractADType) = Bool(inplace_support(backend)) -@static if isdefined(ADTypes, :NoAutoDiff) - check_inplace(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) -end +check_inplace(::ADTypes.NoAutoDiff) = throw(ADTypes.NoAutoDiffSelectedError()) diff --git a/DifferentiationInterface/test/Core/ZeroBackends/test.jl b/DifferentiationInterface/test/Core/ZeroBackends/test.jl index 4a7ecb3ad..771d265c5 100644 --- a/DifferentiationInterface/test/Core/ZeroBackends/test.jl +++ b/DifferentiationInterface/test/Core/ZeroBackends/test.jl @@ -10,10 +10,8 @@ using Test LOGGING = get(ENV, "CI", "false") == "false" -if isdefined(ADTypes, :NoAutoDiff) - @test_throws NoAutoDiffSelectedError check_available(NoAutoDiff()) - @test_throws NoAutoDiffSelectedError check_inplace(NoAutoDiff()) -end +@test_throws NoAutoDiffSelectedError check_available(NoAutoDiff()) +@test_throws NoAutoDiffSelectedError check_inplace(NoAutoDiff()) zero_backends = [AutoZeroForward(), AutoZeroReverse()]