Skip to content

Commit 146d031

Browse files
authored
Fix warnings (#143)
* Remove duplicated method definitions This PR fixes the following warning ```julia [ Info: Precompiling ForwardDiff2 [994df76e-a4c1-5e1f-bd5c-23b9b5303d4f] WARNING: Method definition rrule(typeof(Base.sum), AbstractArray{#s695, N} where N where #s695<:Real) in module ChainRules at /home/scheme/.julia/dev/ChainRules/src/rulesets/Base/mapreduce.jl:61 overwritten at /home/scheme/.julia/dev/ChainRules/src/rulesets/Base/mapreduce.jl:76. ** incremental compilation may be fatally broken for this module ** WARNING: Method definition rrule(typeof(Base.sum), AbstractArray{#s695, N} where N where #s695<:Real) in module ChainRules at /home/scheme/.julia/dev/ChainRules/src/rulesets/Base/mapreduce.jl:61 overwritten at /home/scheme/.julia/dev/ChainRules/src/rulesets/Base/mapreduce.jl:76. ** incremental compilation may be fatally broken for this module ** ``` * Fix NaNMath and SpecialFunctions warnings ```julia julia> using NaNMath, SpecialFunctions ┌ Warning: Error requiring NaNMath from ChainRules: │ LoadError: UndefVarError: SpecialFunctions not defined │ Stacktrace: │ [1] include at ./boot.jl:328 [inlined] │ [2] include_relative(::Module, ::String) at ./loading.jl:1105 │ [3] include at ./Base.jl:31 [inlined] │ [4] include(::String) at /home/scheme/.julia/dev/ChainRules/src/ChainRules.jl:1 │ [5] top-level scope at /home/scheme/.julia/dev/ChainRules/src/ChainRules.jl:45 │ [6] eval at ./boot.jl:330 [inlined] │ [7] eval at /home/scheme/.julia/dev/ChainRules/src/ChainRules.jl:1 [inlined] │ [8] (::ChainRules.var"#867#873")() at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:67 │ [9] err(::ChainRules.var"#867#873", ::Module, ::String) at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:38 │ [10] #866 at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:66 [inlined] │ [11] withpath(::ChainRules.var"#866#872", ::String) at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:28 │ [12] (::ChainRules.var"#865#871")() at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:65 │ [13] #invokelatest#1 at ./essentials.jl:709 [inlined] │ [14] invokelatest at ./essentials.jl:708 [inlined] │ [15] #3 at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:19 [inlined] │ [16] iterate at ./generator.jl:47 [inlined] │ [17] _collect(::Array{Function,1}, ::Base.Generator{Array{Function,1},Requires.var"#3#4"}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:635 │ [18] map at ./array.jl:564 [inlined] │ [19] loadpkg(::Base.PkgId) at /home/scheme/.julia/packages/Requires/9Jse8/src/require.jl:19 │ [20] #invokelatest#1 at ./essentials.jl:709 [inlined] │ [21] invokelatest at ./essentials.jl:708 [inlined] │ [22] require(::Base.PkgId) at ./loading.jl:925 │ [23] require(::Module, ::Symbol) at ./loading.jl:917 │ [24] eval(::Module, ::Any) at ./boot.jl:330 │ [25] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.3/REPL/src/REPL.jl:86 │ [26] run_backend(::REPL.REPLBackend) at /home/scheme/.julia/packages/Revise/S7mrl/src/Revise.jl:1057 │ [27] (::Revise.var"#85#87"{REPL.REPLBackend})() at ./task.jl:333 │ in expression starting at /home/scheme/.julia/dev/ChainRules/src/rulesets/packages/NaNMath.jl:4 └ @ Requires ~/.julia/packages/Requires/9Jse8/src/require.jl:40 ``` * New patch release * Add NaNMath.tan rule back * Revert "Fix NaNMath and SpecialFunctions warnings" This reverts commit 40382c6. * Remove glue modules
1 parent d39e82c commit 146d031

File tree

5 files changed

+3
-21
lines changed

5 files changed

+3
-21
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ChainRules"
22
uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2"
3-
version = "0.2.4"
3+
version = "0.2.5"
44

55
[deps]
66
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"

src/ChainRules.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,10 @@ include("rulesets/LinearAlgebra/factorization.jl")
4343
function __init__()
4444
@require NaNMath="77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" begin
4545
include("rulesets/packages/NaNMath.jl")
46-
using .NaNMathGlue
4746
end
4847

4948
@require SpecialFunctions="276daf66-3868-5448-9aa4-cd146d93841b" begin
5049
include("rulesets/packages/SpecialFunctions.jl")
51-
using .SpecialFunctionsGlue
5250
end
5351
end
5452

src/rulesets/Base/mapreduce.jl

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@ function frule(::typeof(sum), x)
5757
return sum(x), sum_pushforward
5858
end
5959

60-
function rrule(::typeof(sum), x::AbstractArray{<:Real})
61-
function sum_pullback(ȳ)
62-
return (NO_FIELDS, @thunk(fill(ȳ, size(x))))
63-
end
64-
return sum(x), sum_pullback
65-
end
66-
6760
function rrule(::typeof(sum), f, x::AbstractArray{<:Real}; dims=:)
6861
y, mr_pullback = rrule(mapreduce, f, Base.add_sum, x; dims=dims)
6962
function sum_pullback(ȳ)
@@ -73,7 +66,7 @@ function rrule(::typeof(sum), f, x::AbstractArray{<:Real}; dims=:)
7366
end
7467

7568
function rrule(::typeof(sum), x::AbstractArray{<:Real}; dims=:)
76-
y, inner_pullback = rrule(sum, identity, x; dims=dims)
69+
y, inner_pullback = rrule(sum, identity, x; dims=dims)
7770
function sum_pullback(ȳ)
7871
return NO_FIELDS, last(inner_pullback(ȳ))
7972
end

src/rulesets/packages/NaNMath.jl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
module NaNMathGlue
21
using ChainRulesCore
3-
using ..NaNMath
4-
using ..SpecialFunctions
52

63
@scalar_rule(NaNMath.sin(x), NaNMath.cos(x))
74
@scalar_rule(NaNMath.cos(x), -NaNMath.sin(x))
85
@scalar_rule(NaNMath.asin(x), inv(NaNMath.sqrt(1 - NaNMath.pow(x, 2))))
96
@scalar_rule(NaNMath.acos(x), -inv(NaNMath.sqrt(1 - NaNMath.pow(x, 2))))
107
@scalar_rule(NaNMath.acosh(x), inv(NaNMath.sqrt(NaNMath.pow(x, 2) - 1)))
8+
@scalar_rule(NaNMath.tan(x), 1 + Ω^2)
119
@scalar_rule(NaNMath.atanh(x), inv(1 - NaNMath.pow(x, 2)))
1210
@scalar_rule(NaNMath.log(x), inv(x))
1311
@scalar_rule(NaNMath.log2(x), inv(x) / NaNMath.log(oftype(x, 2)))
@@ -22,5 +20,3 @@ using ..SpecialFunctions
2220
@scalar_rule(NaNMath.min(x, y),
2321
(ifelse((y < x) | (signbit(y) > signbit(x)), ifelse(isnan(y), One(), Zero()), ifelse(isnan(x), Zero(), One())),
2422
ifelse((y < x) | (signbit(y) > signbit(x)), ifelse(isnan(y), Zero(), One()), ifelse(isnan(x), One(), Zero()))))
25-
26-
end #module

src/rulesets/packages/SpecialFunctions.jl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
module SpecialFunctionsGlue
21
using ChainRulesCore
3-
using ..SpecialFunctions
4-
52

63
@scalar_rule(SpecialFunctions.erf(x), (2 / sqrt(π)) * exp(-x * x))
74
@scalar_rule(SpecialFunctions.erfc(x), -(2 / sqrt(π)) * exp(-x * x))
@@ -78,5 +75,3 @@ end
7875
if isdefined(SpecialFunctions, :loggamma)
7976
@scalar_rule(SpecialFunctions.loggamma(x), SpecialFunctions.digamma(x))
8077
end
81-
82-
end #module

0 commit comments

Comments
 (0)