Skip to content

Commit aae032a

Browse files
committed
Remove Compat.jl dependency
1 parent f8d1397 commit aae032a

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

Project.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ version = "1.7.1"
55

66
[deps]
77
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
8-
Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
98
EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
109

1110
[weakdeps]
@@ -18,7 +17,6 @@ ADTypesEnzymeCoreExt = "EnzymeCore"
1817

1918
[compat]
2019
ChainRulesCore = "1.0.2"
21-
Compat = "3.47, 4.10"
2220
EnzymeCore = "0.5.3,0.6,0.7"
2321
julia = "1.6"
2422

src/ADTypes.jl

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
module ADTypes
77

88
using Base: @deprecate
9-
using Compat: @compat # for `public`
109

1110
"""
1211
AbstractADType
@@ -47,28 +46,42 @@ export AutoChainRules,
4746
AutoTapir,
4847
AutoTracker,
4948
AutoZygote
50-
@compat public AbstractMode
51-
@compat public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode
52-
@compat public mode
53-
@compat public Auto
5449

5550
# Sparse Automatic Differentiation
5651
export AutoSparse
57-
@compat public dense_ad
5852

5953
# Sparsity detection
6054
export AbstractSparsityDetector
6155
export jacobian_sparsity, hessian_sparsity
62-
@compat public sparsity_detector
63-
@compat public NoSparsityDetector
64-
@compat public KnownJacobianSparsityDetector, KnownHessianSparsityDetector
6556

6657
# Matrix coloring
6758
export AbstractColoringAlgorithm
6859
export column_coloring, row_coloring, symmetric_coloring
69-
@compat public coloring_algorithm
70-
@compat public NoColoringAlgorithm
7160

7261
# legacy exports are taken care of by @deprecated
7362

63+
# Define public interface
64+
# To avoid a dependency on Compat.jl, this uses a trick suggested by Lilith Hafner:
65+
# https://discourse.julialang.org/t/is-compat-jl-worth-it-for-the-public-keyword/119041/2
66+
if VERSION >= v"1.11.0-DEV.469"
67+
# Automatic Differentiation
68+
eval(Meta.parse("public AbstractMode"))
69+
eval(Meta.parse("public ForwardMode, ReverseMode, ForwardOrReverseMode, SymbolicMode"))
70+
eval(Meta.parse("public mode"))
71+
eval(Meta.parse("public Auto"))
72+
73+
# Sparse Automatic Differentiation
74+
eval(Meta.parse("public dense_ad"))
75+
76+
# Sparsity detection
77+
eval(Meta.parse("public sparsity_detector"))
78+
eval(Meta.parse("public NoSparsityDetector"))
79+
eval(Meta.parse("public KnownJacobianSparsityDetector"))
80+
eval(Meta.parse("public KnownHessianSparsityDetector"))
81+
82+
# Matrix coloring
83+
eval(Meta.parse("public NoColoringAlgorithm"))
84+
eval(Meta.parse("public coloring_algorithm"))
85+
end
86+
7487
end

0 commit comments

Comments
 (0)