From f6c990f435bb7573d2393c207546b4e59adf8d58 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Wed, 16 Sep 2020 13:53:36 +0100 Subject: [PATCH 1/4] Make sum of bool arrays nondiffernetiable --- src/rulesets/Base/nondiff.jl | 2 ++ test/rulesets/Base/nondiff.jl | 7 +++++++ test/runtests.jl | 1 + 3 files changed, 10 insertions(+) create mode 100644 test/rulesets/Base/nondiff.jl diff --git a/src/rulesets/Base/nondiff.jl b/src/rulesets/Base/nondiff.jl index ede42ac31..b717efafd 100644 --- a/src/rulesets/Base/nondiff.jl +++ b/src/rulesets/Base/nondiff.jl @@ -340,6 +340,8 @@ VERSION >= v"1.1" && @non_differentiable splitpath(::AbstractString) @non_differentiable success(::Array{Base.Process,1}) @non_differentiable success(::Base.Process) @non_differentiable success(::Base.ProcessChain) +@non_differentiable sum(::AbstractArray{Bool}) +@non_differentiable sum(::NTuple{<:Any, Bool}) @non_differentiable supertype(::Any) @non_differentiable symlink(::AbstractString, ::AbstractString) diff --git a/test/rulesets/Base/nondiff.jl b/test/rulesets/Base/nondiff.jl new file mode 100644 index 000000000..f1061896e --- /dev/null +++ b/test/rulesets/Base/nondiff.jl @@ -0,0 +1,7 @@ +@testset "Base/nondiff.jl" begin + @testset "Sum boolean arrays" begin + rrule_test(sum, 12, (falses(5, 3), nothing)) + rrule_test(sum, 2, ([true, false, true], nothing)) + rrule_test(sum, 2, ((true, false, true), nothing)) + end +end diff --git a/test/runtests.jl b/test/runtests.jl index 740d87bca..15a60965d 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -18,6 +18,7 @@ println("Testing ChainRules.jl") @testset "ChainRules" begin @testset "rulesets" begin @testset "Base" begin + include(joinpath("rulesets", "Base", "nondiff.jl")) include(joinpath("rulesets", "Base", "base.jl")) include(joinpath("rulesets", "Base", "fastmath_able.jl")) include(joinpath("rulesets", "Base", "evalpoly.jl")) From 3d5e744787e304b83f683f1fcc0d251e1f613b29 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Tue, 29 Sep 2020 12:24:04 +0100 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: willtebbutt --- test/rulesets/Base/nondiff.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rulesets/Base/nondiff.jl b/test/rulesets/Base/nondiff.jl index f1061896e..e1c41472b 100644 --- a/test/rulesets/Base/nondiff.jl +++ b/test/rulesets/Base/nondiff.jl @@ -1,5 +1,5 @@ -@testset "Base/nondiff.jl" begin - @testset "Sum boolean arrays" begin +@testset "nondiff.jl" begin + @testset "Sum over boolean array" begin rrule_test(sum, 12, (falses(5, 3), nothing)) rrule_test(sum, 2, ([true, false, true], nothing)) rrule_test(sum, 2, ((true, false, true), nothing)) From d1bbb3de9010229f9a0ab84dea1544ff17c22724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20M=C3=BCller-Widmann?= Date: Mon, 26 Oct 2026 11:22:40 +0100 Subject: [PATCH 3/4] Fix format Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/rulesets/Base/nondiff.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rulesets/Base/nondiff.jl b/src/rulesets/Base/nondiff.jl index a3b88e1e3..8fa7bce0a 100644 --- a/src/rulesets/Base/nondiff.jl +++ b/src/rulesets/Base/nondiff.jl @@ -81,7 +81,7 @@ @non_differentiable sum(::AbstractArray{Bool}) @non_differentiable sum(::Any, ::AbstractArray{Bool}) @non_differentiable sum(::typeof(abs2), ::AbstractArray{Bool}) # avoids an ambiguity -@non_differentiable sum(::NTuple{<:Any, Bool}) +@non_differentiable sum(::NTuple{<:Any,Bool}) @non_differentiable vcat(::AbstractArray{Bool}...) @non_differentiable vec(::AbstractArray{Bool}) @non_differentiable Vector(::AbstractArray{Bool}) From 8d361d5366b77ff7776775ac2a189453c28a3aa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20M=C3=BCller-Widmann?= Date: Mon, 26 Oct 2026 12:41:05 +0100 Subject: [PATCH 4/4] Bump version from 1.74.4 to 1.74.5 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 9cf6ab670..5ef530989 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ChainRules" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.74.4" +version = "1.74.5" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"